Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
fix: add patch to route mouse event navigations through the WebConten…
…tsDelegate (#22202)
- Loading branch information
1 parent
3d45f0a
commit ed58168
Showing
2 changed files
with
35 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
34 changes: 34 additions & 0 deletions
34
patches/chromium/fix_route_mouse_event_navigations_through_the_web_contents_delegate.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 | ||
From: Samuel Attard <sattard@slack-corp.com> | ||
Date: Fri, 14 Feb 2020 13:35:47 -0800 | ||
Subject: fix: route mouse event navigations through the web_contents delegate | ||
|
||
This ensures that embedders can handle browser-side mouse navigations | ||
themselves. We need this so that we can correctly ensure that processes | ||
are not restarted for in-document navigations. | ||
|
||
Refs: https://chromium-review.googlesource.com/c/chromium/src/+/1769525 | ||
|
||
This patch can be removed once app.allowRendererProcessReuse is forced | ||
to true as then Chromiums assumptions around processes become correct. | ||
|
||
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc | ||
index 70d735dcc38734edaaf6221cd40c49beb6d2e37e..9cd7368966c20b9e9306c41e455c002d686d3013 100644 | ||
--- a/content/browser/web_contents/web_contents_impl.cc | ||
+++ b/content/browser/web_contents/web_contents_impl.cc | ||
@@ -2347,11 +2347,13 @@ bool WebContentsImpl::HandleMouseEvent(const blink::WebMouseEvent& event) { | ||
WebContentsImpl* outermost = GetOutermostWebContents(); | ||
if (event.button == blink::WebPointerProperties::Button::kBack && | ||
outermost->controller_.CanGoBack()) { | ||
- outermost->controller_.GoBack(); | ||
+ if (delegate_->OnGoToEntryOffset(-1)) | ||
+ outermost->controller_.GoBack(); | ||
return true; | ||
} else if (event.button == blink::WebPointerProperties::Button::kForward && | ||
outermost->controller_.CanGoForward()) { | ||
- outermost->controller_.GoForward(); | ||
+ if (delegate_->OnGoToEntryOffset(1)) | ||
+ outermost->controller_.GoForward(); | ||
return true; | ||
} | ||
} |