Commit 34734c86 authored by Michael Thiessen's avatar Michael Thiessen Committed by Commit Bot

Fix missing user gesture on new window navigations for <a> and <svg>-<a>

Bug: 993149
Change-Id: I0d2cb6238d3adf421f074c74124191898f901af7
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1758923
Commit-Queue: Michael Thiessen <mthiesse@chromium.org>
Reviewed-by: default avatarYaron Friedman <yfriedman@chromium.org>
Reviewed-by: default avatarNate Chapin <japhet@chromium.org>
Cr-Commit-Position: refs/heads/master@{#688180}
parent 1fd7658c
......@@ -27,7 +27,6 @@ import org.junit.runner.RunWith;
import org.chromium.base.ApiCompatibilityUtils;
import org.chromium.base.test.util.CallbackHelper;
import org.chromium.base.test.util.CommandLineFlags;
import org.chromium.base.test.util.DisabledTest;
import org.chromium.base.test.util.RetryOnFailure;
import org.chromium.chrome.browser.ChromeActivity;
import org.chromium.chrome.browser.ChromeSwitches;
......@@ -414,7 +413,6 @@ public class UrlOverridingTest {
@Test
@SmallTest
@RetryOnFailure
@DisabledTest(message = "crbug.com/993149")
public void testOpenWindowFromLinkUserGesture() throws InterruptedException {
boolean opensNewTab =
!(mActivityTestRule.getActivity().getCurrentTabModel() instanceof SingleTabModel);
......@@ -425,7 +423,6 @@ public class UrlOverridingTest {
@Test
@SmallTest
@RetryOnFailure
@DisabledTest(message = "crbug.com/993149")
public void testOpenWindowFromSvgUserGesture() throws InterruptedException {
boolean opensNewTab =
!(mActivityTestRule.getActivity().getCurrentTabModel() instanceof SingleTabModel);
......
......@@ -442,6 +442,7 @@ void HTMLAnchorElement::HandleClick(Event& event) {
}
request.SetRequestContext(mojom::RequestContextType::HYPERLINK);
request.SetHasUserGesture(LocalFrame::HasTransientUserActivation(frame));
const AtomicString& target = getAttribute(kTargetAttr);
FrameLoadRequest frame_request(&GetDocument(), request);
frame_request.SetNavigationPolicy(NavigationPolicyFromEvent(&event));
......
......@@ -133,14 +133,18 @@ void SVGAElement::DefaultEventHandler(Event& event) {
target = AtomicString("_blank");
event.SetDefaultHandled();
if (!GetDocument().GetFrame())
return;
FrameLoadRequest frame_request(
&GetDocument(), ResourceRequest(GetDocument().CompleteURL(url)));
frame_request.SetNavigationPolicy(NavigationPolicyFromEvent(&event));
frame_request.SetTriggeringEventInfo(
event.isTrusted() ? WebTriggeringEventInfo::kFromTrustedEvent
: WebTriggeringEventInfo::kFromUntrustedEvent);
if (!GetDocument().GetFrame())
return;
frame_request.GetResourceRequest().SetHasUserGesture(
LocalFrame::HasTransientUserActivation(GetDocument().GetFrame()));
Frame* frame = GetDocument()
.GetFrame()
->Tree()
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment