5829616: MPArch based GuestViews basic implementation

Refs: https://chromium-review.googlesource.com/c/chromium/src/+/5829616
This commit is contained in:
David Sanders
2024-10-29 11:23:27 -07:00
parent f396860717
commit b95772daa3
2 changed files with 28 additions and 28 deletions

View File

@@ -80,10 +80,10 @@ index b078a4a06c7b3f767e2e01f0bef2ba440f729620..0459568581a3073333ae6afabd3680f2
content::WebContents* source,
const content::OpenURLParams& params,
diff --git a/chrome/browser/ui/browser.cc b/chrome/browser/ui/browser.cc
index 611f0bed5b91768697bda05a241e999bfe8ec940..9638c9fc8c8a6b7b75f0205209bfea37c84162a1 100644
index 79aa2a6d2862aaa1a7c4cd11dce3046d60ef3a01..063edd1bf8aadf2ff35a5c549642661759ee3a7e 100644
--- a/chrome/browser/ui/browser.cc
+++ b/chrome/browser/ui/browser.cc
@@ -2127,12 +2127,11 @@ bool Browser::IsWebContentsCreationOverridden(
@@ -2131,12 +2131,11 @@ bool Browser::IsWebContentsCreationOverridden(
content::SiteInstance* source_site_instance,
content::mojom::WindowContainerType window_container_type,
const GURL& opener_url,
@@ -99,10 +99,10 @@ index 611f0bed5b91768697bda05a241e999bfe8ec940..9638c9fc8c8a6b7b75f0205209bfea37
WebContents* Browser::CreateCustomWebContents(
diff --git a/chrome/browser/ui/browser.h b/chrome/browser/ui/browser.h
index 768005a53814baa52aa68227ce3291c88f266279..9f6102939365ba7e7a5fdf72c12ecb73b3b2a686 100644
index 7b1c8c4c103611dad82e791f47ee97864ce309d4..8ce16d833262f6dde156c6e5038072f2d4c07661 100644
--- a/chrome/browser/ui/browser.h
+++ b/chrome/browser/ui/browser.h
@@ -973,8 +973,7 @@ class Browser : public TabStripModelObserver,
@@ -977,8 +977,7 @@ class Browser : public TabStripModelObserver,
content::SiteInstance* source_site_instance,
content::mojom::WindowContainerType window_container_type,
const GURL& opener_url,
@@ -218,10 +218,10 @@ index c6838c83ef971b88769b1f3fba8095025ae25464..2da6a4e08340e72ba7de5d03444c2f17
content::WebContents* AddNewContents(
content::WebContents* source,
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
index 7d17fd9d0f5c0fa47772f5400adc6f76c9b20a18..a3d0121e4247068af6dad435861aeb2c99eadbe8 100644
index e252f8e62e92f2a4b8baa6901f3d6c4d3600075c..e438e56c0f5d636ddba9c7c25086c2e80de3263f 100644
--- a/content/browser/web_contents/web_contents_impl.cc
+++ b/content/browser/web_contents/web_contents_impl.cc
@@ -4683,8 +4683,7 @@ FrameTree* WebContentsImpl::CreateNewWindow(
@@ -4783,8 +4783,7 @@ FrameTree* WebContentsImpl::CreateNewWindow(
if (delegate_ && delegate_->IsWebContentsCreationOverridden(
source_site_instance, params.window_container_type,
@@ -260,21 +260,21 @@ index cbec82fe1fbc43c188ac9c0cf318ee49aa83c503..9daed06017f4a586e34f1e47dc85b9e6
// Allow delegate to creates a custom WebContents when
// WebContents::CreateNewWindow() is called. This function is only called
diff --git a/extensions/browser/guest_view/app_view/app_view_guest.cc b/extensions/browser/guest_view/app_view/app_view_guest.cc
index 88797d9c7fe13236e3dd5364efe6eeaab4d14005..2fb903362359d7f4f0fdf182650dca9e4fc17386 100644
index b02090784eee44027fa50d29dfdb045fe01be65e..3a54dc7f8541aa65c29252163f9bae8f1ca9f180 100644
--- a/extensions/browser/guest_view/app_view/app_view_guest.cc
+++ b/extensions/browser/guest_view/app_view/app_view_guest.cc
@@ -142,8 +142,7 @@ bool AppViewGuest::IsWebContentsCreationOverridden(
@@ -145,8 +145,7 @@ bool AppViewGuest::IsWebContentsCreationOverridden(
content::SiteInstance* source_site_instance,
content::mojom::WindowContainerType window_container_type,
const GURL& opener_url,
- const std::string& frame_name,
- const GURL& target_url) {
+ const content::mojom::CreateNewWindowParams& params) {
return true;
}
CHECK(!base::FeatureList::IsEnabled(features::kGuestViewMPArch));
return true;
diff --git a/extensions/browser/guest_view/app_view/app_view_guest.h b/extensions/browser/guest_view/app_view/app_view_guest.h
index cb4241744b7c8ee4803de5ff5ccdefcae61cb02f..390ff1e3840f245b302aad460fc00cb4ea3e68b2 100644
index 82b2161b6fd04c34ad7423729e24bd6385b2ec3d..edb83f9d135b7dc9d6ba6bb7716cc24ea6d9123f 100644
--- a/extensions/browser/guest_view/app_view/app_view_guest.h
+++ b/extensions/browser/guest_view/app_view/app_view_guest.h
@@ -10,6 +10,7 @@
@@ -296,21 +296,21 @@ index cb4241744b7c8ee4803de5ff5ccdefcae61cb02f..390ff1e3840f245b302aad460fc00cb4
content::RenderFrameHost* opener,
content::SiteInstance* source_site_instance,
diff --git a/extensions/browser/guest_view/extension_options/extension_options_guest.cc b/extensions/browser/guest_view/extension_options/extension_options_guest.cc
index d95bac440585edf562e0c518fdfec4efb04b0812..adb453cb4959a9fd29e87474587bf801f055a028 100644
index 960327ffe666f0dbb95f128e6356f9dd95b2379d..57a9ee4890cae70dc2cee45028994634a1b74abc 100644
--- a/extensions/browser/guest_view/extension_options/extension_options_guest.cc
+++ b/extensions/browser/guest_view/extension_options/extension_options_guest.cc
@@ -220,8 +220,7 @@ bool ExtensionOptionsGuest::IsWebContentsCreationOverridden(
@@ -240,8 +240,7 @@ bool ExtensionOptionsGuest::IsWebContentsCreationOverridden(
content::SiteInstance* source_site_instance,
content::mojom::WindowContainerType window_container_type,
const GURL& opener_url,
- const std::string& frame_name,
- const GURL& target_url) {
+ const content::mojom::CreateNewWindowParams& params) {
CHECK(!base::FeatureList::IsEnabled(features::kGuestViewMPArch));
// This method handles opening links from within the guest. Since this guest
// view is used for displaying embedded extension options, we want any
// external links to be opened in a new tab, not in a new guest view so we
diff --git a/extensions/browser/guest_view/extension_options/extension_options_guest.h b/extensions/browser/guest_view/extension_options/extension_options_guest.h
index 2ee922084c82edb7e49ec1c894b517b88f56f54d..9c12c8e9bab2ac59b16cb4a638e099cafc4cb36f 100644
index 29646283d0219f637ec243474d26d831be48c12a..0f5a88970946015647e9d0b6e0da1bd81a1402ba 100644
--- a/extensions/browser/guest_view/extension_options/extension_options_guest.h
+++ b/extensions/browser/guest_view/extension_options/extension_options_guest.h
@@ -66,8 +66,7 @@ class ExtensionOptionsGuest
@@ -324,21 +324,21 @@ index 2ee922084c82edb7e49ec1c894b517b88f56f54d..9c12c8e9bab2ac59b16cb4a638e099ca
content::RenderFrameHost* opener,
content::SiteInstance* source_site_instance,
diff --git a/extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.cc b/extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.cc
index 0f89bd701547a23f184bb3a544ca43a762fb9676..24684e17df399efb1f7ad028d4cc1ef332718e93 100644
index 6ce54fc40f122fb13a4464817a1b5f1d095d060a..427eaa324d0d7485caa42d63c12ce8bb0e6b64f7 100644
--- a/extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.cc
+++ b/extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.cc
@@ -388,8 +388,7 @@ bool MimeHandlerViewGuest::IsWebContentsCreationOverridden(
@@ -418,8 +418,7 @@ bool MimeHandlerViewGuest::IsWebContentsCreationOverridden(
content::SiteInstance* source_site_instance,
content::mojom::WindowContainerType window_container_type,
const GURL& opener_url,
- const std::string& frame_name,
- const GURL& target_url) {
+ const content::mojom::CreateNewWindowParams& params) {
return true;
}
CHECK(!base::FeatureList::IsEnabled(features::kGuestViewMPArch));
return true;
diff --git a/extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.h b/extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.h
index f0b71aba6dfb4682ce2e5b4c834b2526dcacb75c..d4b1857ca468ff97914d91d0c31298b73577547f 100644
index dd0a81a7f358611a05ae45b6c57e9dfc98642894..81e799bb2ce8baab8deb779d97c5481fa7a78948 100644
--- a/extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.h
+++ b/extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.h
@@ -177,8 +177,7 @@ class MimeHandlerViewGuest

View File

@@ -9,10 +9,10 @@ is needed for OSR.
Originally landed in https://github.com/electron/libchromiumcontent/pull/226.
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
index a3d0121e4247068af6dad435861aeb2c99eadbe8..3d4860e0578d9c127e19b5d146c208e2f0165de8 100644
index e438e56c0f5d636ddba9c7c25086c2e80de3263f..4f5861f52faf12a2be31637f729284f87fad241b 100644
--- a/content/browser/web_contents/web_contents_impl.cc
+++ b/content/browser/web_contents/web_contents_impl.cc
@@ -3658,6 +3658,13 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params,
@@ -3755,6 +3755,13 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params,
params.main_frame_name, GetOpener(), primary_main_frame_policy,
base::UnguessableToken::Create());
@@ -26,7 +26,7 @@ index a3d0121e4247068af6dad435861aeb2c99eadbe8..3d4860e0578d9c127e19b5d146c208e2
std::unique_ptr<WebContentsViewDelegate> delegate =
GetContentClient()->browser()->GetWebContentsViewDelegate(this);
@@ -3668,6 +3675,7 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params,
@@ -3765,6 +3772,7 @@ void WebContentsImpl::Init(const WebContents::CreateParams& params,
view_ = CreateWebContentsView(this, std::move(delegate),
&render_view_host_delegate_view_);
}
@@ -35,11 +35,11 @@ index a3d0121e4247068af6dad435861aeb2c99eadbe8..3d4860e0578d9c127e19b5d146c208e2
CHECK(view_.get());
diff --git a/content/public/browser/web_contents.h b/content/public/browser/web_contents.h
index f9fc2fb410269602794ca79095338503bc27bc3f..2fc7d6f8a3359e7d4f35af4073c4e28aebd094c8 100644
index a0a13547fe05410525ff122ba08600997c2e2bc8..b1b0be781a7b480dff896d9e34e41048908d61df 100644
--- a/content/public/browser/web_contents.h
+++ b/content/public/browser/web_contents.h
@@ -110,10 +110,13 @@ class BrowserContext;
class BrowserPluginGuestDelegate;
@@ -111,10 +111,13 @@ class BrowserPluginGuestDelegate;
class GuestPageHolder;
class RenderFrameHost;
class RenderViewHost;
+class RenderViewHostDelegateView;
@@ -52,7 +52,7 @@ index f9fc2fb410269602794ca79095338503bc27bc3f..2fc7d6f8a3359e7d4f35af4073c4e28a
class WebUI;
struct DropData;
struct MHTMLGenerationParams;
@@ -274,6 +277,10 @@ class WebContents : public PageNavigator, public base::SupportsUserData {
@@ -275,6 +278,10 @@ class WebContents : public PageNavigator, public base::SupportsUserData {
network::mojom::WebSandboxFlags starting_sandbox_flags =
network::mojom::WebSandboxFlags::kNone;