chore_provide_iswebcontentscreationoverridden_with_full_params.patch 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423
  1. From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
  2. From: Andy Locascio <[email protected]>
  3. Date: Wed, 9 Sep 2020 16:56:06 -0700
  4. Subject: chore: provide IsWebContentsCreationOverridden with full params
  5. Pending upstream patch, this gives us fuller access to the window.open params
  6. so that we will be able to decide whether to cancel it or not.
  7. diff --git a/chrome/browser/media/offscreen_tab.cc b/chrome/browser/media/offscreen_tab.cc
  8. index bfcdf050e603b953d15a0898200c8f031a1f84c6..b1f163b6da4d2197d404a5a0fbd31a5b346d3d69 100644
  9. --- a/chrome/browser/media/offscreen_tab.cc
  10. +++ b/chrome/browser/media/offscreen_tab.cc
  11. @@ -286,8 +286,7 @@ bool OffscreenTab::IsWebContentsCreationOverridden(
  12. content::SiteInstance* source_site_instance,
  13. content::mojom::WindowContainerType window_container_type,
  14. const GURL& opener_url,
  15. - const std::string& frame_name,
  16. - const GURL& target_url) {
  17. + const content::mojom::CreateNewWindowParams& params) {
  18. // Disallow creating separate WebContentses. The WebContents implementation
  19. // uses this to spawn new windows/tabs, which is also not allowed for
  20. // offscreen tabs.
  21. diff --git a/chrome/browser/media/offscreen_tab.h b/chrome/browser/media/offscreen_tab.h
  22. index 0163968067f2607507493a5e0816aa814de3ba0b..34b94af6a4e3f031a35520fde4173e186ebec0b7 100644
  23. --- a/chrome/browser/media/offscreen_tab.h
  24. +++ b/chrome/browser/media/offscreen_tab.h
  25. @@ -107,8 +107,7 @@ class OffscreenTab final : public ProfileObserver,
  26. content::SiteInstance* source_site_instance,
  27. content::mojom::WindowContainerType window_container_type,
  28. const GURL& opener_url,
  29. - const std::string& frame_name,
  30. - const GURL& target_url) final;
  31. + const content::mojom::CreateNewWindowParams& params) override;
  32. void EnterFullscreenModeForTab(
  33. content::RenderFrameHost* requesting_frame,
  34. const blink::mojom::FullscreenOptions& options) final;
  35. diff --git a/chrome/browser/ui/ash/keyboard/chrome_keyboard_web_contents.cc b/chrome/browser/ui/ash/keyboard/chrome_keyboard_web_contents.cc
  36. index 28cd699814f32a7a569d63936b9544567a66d9c4..fd461fa448d983481dc4c0c7d03b1945a7a13c46 100644
  37. --- a/chrome/browser/ui/ash/keyboard/chrome_keyboard_web_contents.cc
  38. +++ b/chrome/browser/ui/ash/keyboard/chrome_keyboard_web_contents.cc
  39. @@ -79,8 +79,7 @@ class ChromeKeyboardContentsDelegate : public content::WebContentsDelegate,
  40. content::SiteInstance* source_site_instance,
  41. content::mojom::WindowContainerType window_container_type,
  42. const GURL& opener_url,
  43. - const std::string& frame_name,
  44. - const GURL& target_url) override {
  45. + const content::mojom::CreateNewWindowParams& params) override {
  46. return true;
  47. }
  48. diff --git a/chrome/browser/ui/ash/web_view/ash_web_view_impl.cc b/chrome/browser/ui/ash/web_view/ash_web_view_impl.cc
  49. index 05fa4a72491658b542804912b0509089b9604e20..1304ed22fe3d1ae080cff3d085567c3d873daf51 100644
  50. --- a/chrome/browser/ui/ash/web_view/ash_web_view_impl.cc
  51. +++ b/chrome/browser/ui/ash/web_view/ash_web_view_impl.cc
  52. @@ -118,10 +118,9 @@ bool AshWebViewImpl::IsWebContentsCreationOverridden(
  53. content::SiteInstance* source_site_instance,
  54. content::mojom::WindowContainerType window_container_type,
  55. const GURL& opener_url,
  56. - const std::string& frame_name,
  57. - const GURL& target_url) {
  58. + const content::mojom::CreateNewWindowParams& params) {
  59. if (params_.suppress_navigation) {
  60. - NotifyDidSuppressNavigation(target_url,
  61. + NotifyDidSuppressNavigation(params.target_url,
  62. WindowOpenDisposition::NEW_FOREGROUND_TAB,
  63. /*from_user_gesture=*/true);
  64. return true;
  65. diff --git a/chrome/browser/ui/ash/web_view/ash_web_view_impl.h b/chrome/browser/ui/ash/web_view/ash_web_view_impl.h
  66. index b078a4a06c7b3f767e2e01f0bef2ba440f729620..0459568581a3073333ae6afabd3680f25b9196e4 100644
  67. --- a/chrome/browser/ui/ash/web_view/ash_web_view_impl.h
  68. +++ b/chrome/browser/ui/ash/web_view/ash_web_view_impl.h
  69. @@ -59,8 +59,7 @@ class AshWebViewImpl : public ash::AshWebView,
  70. content::SiteInstance* source_site_instance,
  71. content::mojom::WindowContainerType window_container_type,
  72. const GURL& opener_url,
  73. - const std::string& frame_name,
  74. - const GURL& target_url) override;
  75. + const content::mojom::CreateNewWindowParams& params) override;
  76. content::WebContents* OpenURLFromTab(
  77. content::WebContents* source,
  78. const content::OpenURLParams& params,
  79. diff --git a/chrome/browser/ui/browser.cc b/chrome/browser/ui/browser.cc
  80. index 979ed55d272c9f6e6b6498b01fc4c9b07b93ffe3..3f47784a7b10c2874fb691657dcb9b2c3c12cedb 100644
  81. --- a/chrome/browser/ui/browser.cc
  82. +++ b/chrome/browser/ui/browser.cc
  83. @@ -2118,12 +2118,11 @@ bool Browser::IsWebContentsCreationOverridden(
  84. content::SiteInstance* source_site_instance,
  85. content::mojom::WindowContainerType window_container_type,
  86. const GURL& opener_url,
  87. - const std::string& frame_name,
  88. - const GURL& target_url) {
  89. + const content::mojom::CreateNewWindowParams& params) {
  90. return window_container_type ==
  91. content::mojom::WindowContainerType::BACKGROUND &&
  92. ShouldCreateBackgroundContents(source_site_instance, opener_url,
  93. - frame_name);
  94. + params.frame_name);
  95. }
  96. WebContents* Browser::CreateCustomWebContents(
  97. diff --git a/chrome/browser/ui/browser.h b/chrome/browser/ui/browser.h
  98. index 7b1c8c4c103611dad82e791f47ee97864ce309d4..8ce16d833262f6dde156c6e5038072f2d4c07661 100644
  99. --- a/chrome/browser/ui/browser.h
  100. +++ b/chrome/browser/ui/browser.h
  101. @@ -977,8 +977,7 @@ class Browser : public TabStripModelObserver,
  102. content::SiteInstance* source_site_instance,
  103. content::mojom::WindowContainerType window_container_type,
  104. const GURL& opener_url,
  105. - const std::string& frame_name,
  106. - const GURL& target_url) override;
  107. + const content::mojom::CreateNewWindowParams& params) override;
  108. content::WebContents* CreateCustomWebContents(
  109. content::RenderFrameHost* opener,
  110. content::SiteInstance* source_site_instance,
  111. diff --git a/chrome/browser/ui/media_router/presentation_receiver_window_controller.cc b/chrome/browser/ui/media_router/presentation_receiver_window_controller.cc
  112. index 58506f1c2e9e20c77cd26172e6b52e71ffb8e515..052c00d29e3f517440e28f56cf61fd33655e2804 100644
  113. --- a/chrome/browser/ui/media_router/presentation_receiver_window_controller.cc
  114. +++ b/chrome/browser/ui/media_router/presentation_receiver_window_controller.cc
  115. @@ -203,8 +203,7 @@ bool PresentationReceiverWindowController::IsWebContentsCreationOverridden(
  116. content::SiteInstance* source_site_instance,
  117. content::mojom::WindowContainerType window_container_type,
  118. const GURL& opener_url,
  119. - const std::string& frame_name,
  120. - const GURL& target_url) {
  121. + const content::mojom::CreateNewWindowParams& params) {
  122. // Disallow creating separate WebContentses. The WebContents implementation
  123. // uses this to spawn new windows/tabs, which is also not allowed for
  124. // local presentations.
  125. diff --git a/chrome/browser/ui/media_router/presentation_receiver_window_controller.h b/chrome/browser/ui/media_router/presentation_receiver_window_controller.h
  126. index ca72b324bf7c3b81ac94b53f0ff454d2df177950..d60ef3075d126e2bbd50c8469f2bf67cfa05c6f7 100644
  127. --- a/chrome/browser/ui/media_router/presentation_receiver_window_controller.h
  128. +++ b/chrome/browser/ui/media_router/presentation_receiver_window_controller.h
  129. @@ -105,8 +105,7 @@ class PresentationReceiverWindowController final
  130. content::SiteInstance* source_site_instance,
  131. content::mojom::WindowContainerType window_container_type,
  132. const GURL& opener_url,
  133. - const std::string& frame_name,
  134. - const GURL& target_url) override;
  135. + const content::mojom::CreateNewWindowParams& params) override;
  136. // The profile used for the presentation.
  137. raw_ptr<Profile, DanglingUntriaged> otr_profile_;
  138. diff --git a/chrome/browser/ui/views/hats/hats_next_web_dialog.cc b/chrome/browser/ui/views/hats/hats_next_web_dialog.cc
  139. index bd31ef4d919c9ddce958024a93edf1aab44436b6..6b7c5c7b2dd0fa83797ef57a34f7eb9969779488 100644
  140. --- a/chrome/browser/ui/views/hats/hats_next_web_dialog.cc
  141. +++ b/chrome/browser/ui/views/hats/hats_next_web_dialog.cc
  142. @@ -97,8 +97,7 @@ class HatsNextWebDialog::HatsWebView : public views::WebView {
  143. content::SiteInstance* source_site_instance,
  144. content::mojom::WindowContainerType window_container_type,
  145. const GURL& opener_url,
  146. - const std::string& frame_name,
  147. - const GURL& target_url) override {
  148. + const content::mojom::CreateNewWindowParams& params) override {
  149. return true;
  150. }
  151. content::WebContents* CreateCustomWebContents(
  152. diff --git a/components/embedder_support/android/delegate/web_contents_delegate_android.cc b/components/embedder_support/android/delegate/web_contents_delegate_android.cc
  153. index bcc4841d7f953805f615b3fe5dd252216aa5e482..76a88284aa409b1458ce5f723a1445bd4b184573 100644
  154. --- a/components/embedder_support/android/delegate/web_contents_delegate_android.cc
  155. +++ b/components/embedder_support/android/delegate/web_contents_delegate_android.cc
  156. @@ -183,14 +183,13 @@ bool WebContentsDelegateAndroid::IsWebContentsCreationOverridden(
  157. content::SiteInstance* source_site_instance,
  158. content::mojom::WindowContainerType window_container_type,
  159. const GURL& opener_url,
  160. - const std::string& frame_name,
  161. - const GURL& target_url) {
  162. + const content::mojom::CreateNewWindowParams& params) {
  163. JNIEnv* env = AttachCurrentThread();
  164. ScopedJavaLocalRef<jobject> obj = GetJavaDelegate(env);
  165. if (obj.is_null())
  166. return false;
  167. ScopedJavaLocalRef<jobject> java_gurl =
  168. - url::GURLAndroid::FromNativeGURL(env, target_url);
  169. + url::GURLAndroid::FromNativeGURL(env, params.target_url.spec());
  170. return !Java_WebContentsDelegateAndroid_shouldCreateWebContents(env, obj,
  171. java_gurl);
  172. }
  173. diff --git a/components/embedder_support/android/delegate/web_contents_delegate_android.h b/components/embedder_support/android/delegate/web_contents_delegate_android.h
  174. index 6c89a03712b9449e1a7b0e38ed9d019b30029c15..50b324ef3f1163e462ad145e58b42bf3fd053a0a 100644
  175. --- a/components/embedder_support/android/delegate/web_contents_delegate_android.h
  176. +++ b/components/embedder_support/android/delegate/web_contents_delegate_android.h
  177. @@ -82,8 +82,7 @@ class WebContentsDelegateAndroid : public content::WebContentsDelegate {
  178. content::SiteInstance* source_site_instance,
  179. content::mojom::WindowContainerType window_container_type,
  180. const GURL& opener_url,
  181. - const std::string& frame_name,
  182. - const GURL& target_url) override;
  183. + const content::mojom::CreateNewWindowParams& params) override;
  184. void CloseContents(content::WebContents* source) override;
  185. void SetContentsBounds(content::WebContents* source,
  186. const gfx::Rect& bounds) override;
  187. diff --git a/components/offline_pages/content/background_loader/background_loader_contents.cc b/components/offline_pages/content/background_loader/background_loader_contents.cc
  188. index 072e7d0dde701a8f2d1de2704c8a056363324390..9e5ace2b1f32d5e5c542439f5365f9d9458cbf37 100644
  189. --- a/components/offline_pages/content/background_loader/background_loader_contents.cc
  190. +++ b/components/offline_pages/content/background_loader/background_loader_contents.cc
  191. @@ -85,8 +85,7 @@ bool BackgroundLoaderContents::IsWebContentsCreationOverridden(
  192. content::SiteInstance* source_site_instance,
  193. content::mojom::WindowContainerType window_container_type,
  194. const GURL& opener_url,
  195. - const std::string& frame_name,
  196. - const GURL& target_url) {
  197. + const content::mojom::CreateNewWindowParams& params) {
  198. // Background pages should not create other webcontents/tabs.
  199. return true;
  200. }
  201. diff --git a/components/offline_pages/content/background_loader/background_loader_contents.h b/components/offline_pages/content/background_loader/background_loader_contents.h
  202. index c6838c83ef971b88769b1f3fba8095025ae25464..2da6a4e08340e72ba7de5d03444c2f17250c5eca 100644
  203. --- a/components/offline_pages/content/background_loader/background_loader_contents.h
  204. +++ b/components/offline_pages/content/background_loader/background_loader_contents.h
  205. @@ -66,8 +66,7 @@ class BackgroundLoaderContents : public content::WebContentsDelegate {
  206. content::SiteInstance* source_site_instance,
  207. content::mojom::WindowContainerType window_container_type,
  208. const GURL& opener_url,
  209. - const std::string& frame_name,
  210. - const GURL& target_url) override;
  211. + const content::mojom::CreateNewWindowParams& params) override;
  212. content::WebContents* AddNewContents(
  213. content::WebContents* source,
  214. diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
  215. index e252f8e62e92f2a4b8baa6901f3d6c4d3600075c..e438e56c0f5d636ddba9c7c25086c2e80de3263f 100644
  216. --- a/content/browser/web_contents/web_contents_impl.cc
  217. +++ b/content/browser/web_contents/web_contents_impl.cc
  218. @@ -4783,8 +4783,7 @@ FrameTree* WebContentsImpl::CreateNewWindow(
  219. if (delegate_ && delegate_->IsWebContentsCreationOverridden(
  220. source_site_instance, params.window_container_type,
  221. - opener->GetLastCommittedURL(), params.frame_name,
  222. - params.target_url)) {
  223. + opener->GetLastCommittedURL(), params)) {
  224. auto* web_contents_impl =
  225. static_cast<WebContentsImpl*>(delegate_->CreateCustomWebContents(
  226. opener, source_site_instance, is_new_browsing_instance,
  227. diff --git a/content/public/browser/web_contents_delegate.cc b/content/public/browser/web_contents_delegate.cc
  228. index 94202a07c8774a9ad62938506b22ea3f72916372..3069d732ed336fdaf8fed231bdd0407d0a1b2f75 100644
  229. --- a/content/public/browser/web_contents_delegate.cc
  230. +++ b/content/public/browser/web_contents_delegate.cc
  231. @@ -152,8 +152,7 @@ bool WebContentsDelegate::IsWebContentsCreationOverridden(
  232. SiteInstance* source_site_instance,
  233. mojom::WindowContainerType window_container_type,
  234. const GURL& opener_url,
  235. - const std::string& frame_name,
  236. - const GURL& target_url) {
  237. + const mojom::CreateNewWindowParams& params) {
  238. return false;
  239. }
  240. diff --git a/content/public/browser/web_contents_delegate.h b/content/public/browser/web_contents_delegate.h
  241. index cbec82fe1fbc43c188ac9c0cf318ee49aa83c503..9daed06017f4a586e34f1e47dc85b9e6e5136097 100644
  242. --- a/content/public/browser/web_contents_delegate.h
  243. +++ b/content/public/browser/web_contents_delegate.h
  244. @@ -345,8 +345,7 @@ class CONTENT_EXPORT WebContentsDelegate {
  245. SiteInstance* source_site_instance,
  246. mojom::WindowContainerType window_container_type,
  247. const GURL& opener_url,
  248. - const std::string& frame_name,
  249. - const GURL& target_url);
  250. + const mojom::CreateNewWindowParams& params);
  251. // Allow delegate to creates a custom WebContents when
  252. // WebContents::CreateNewWindow() is called. This function is only called
  253. diff --git a/extensions/browser/guest_view/app_view/app_view_guest.cc b/extensions/browser/guest_view/app_view/app_view_guest.cc
  254. index b02090784eee44027fa50d29dfdb045fe01be65e..3a54dc7f8541aa65c29252163f9bae8f1ca9f180 100644
  255. --- a/extensions/browser/guest_view/app_view/app_view_guest.cc
  256. +++ b/extensions/browser/guest_view/app_view/app_view_guest.cc
  257. @@ -145,8 +145,7 @@ bool AppViewGuest::IsWebContentsCreationOverridden(
  258. content::SiteInstance* source_site_instance,
  259. content::mojom::WindowContainerType window_container_type,
  260. const GURL& opener_url,
  261. - const std::string& frame_name,
  262. - const GURL& target_url) {
  263. + const content::mojom::CreateNewWindowParams& params) {
  264. CHECK(!base::FeatureList::IsEnabled(features::kGuestViewMPArch));
  265. return true;
  266. diff --git a/extensions/browser/guest_view/app_view/app_view_guest.h b/extensions/browser/guest_view/app_view/app_view_guest.h
  267. index 82b2161b6fd04c34ad7423729e24bd6385b2ec3d..edb83f9d135b7dc9d6ba6bb7716cc24ea6d9123f 100644
  268. --- a/extensions/browser/guest_view/app_view/app_view_guest.h
  269. +++ b/extensions/browser/guest_view/app_view/app_view_guest.h
  270. @@ -10,6 +10,7 @@
  271. #include "base/containers/id_map.h"
  272. #include "base/values.h"
  273. #include "components/guest_view/browser/guest_view.h"
  274. +#include "content/common/frame.mojom-shared.h"
  275. #include "extensions/browser/guest_view/app_view/app_view_guest_delegate.h"
  276. #include "extensions/browser/lazy_context_task_queue.h"
  277. @@ -73,8 +74,7 @@ class AppViewGuest : public guest_view::GuestView<AppViewGuest> {
  278. content::SiteInstance* source_site_instance,
  279. content::mojom::WindowContainerType window_container_type,
  280. const GURL& opener_url,
  281. - const std::string& frame_name,
  282. - const GURL& target_url) final;
  283. + const content::mojom::CreateNewWindowParams& params) final;
  284. content::WebContents* CreateCustomWebContents(
  285. content::RenderFrameHost* opener,
  286. content::SiteInstance* source_site_instance,
  287. diff --git a/extensions/browser/guest_view/extension_options/extension_options_guest.cc b/extensions/browser/guest_view/extension_options/extension_options_guest.cc
  288. index 960327ffe666f0dbb95f128e6356f9dd95b2379d..57a9ee4890cae70dc2cee45028994634a1b74abc 100644
  289. --- a/extensions/browser/guest_view/extension_options/extension_options_guest.cc
  290. +++ b/extensions/browser/guest_view/extension_options/extension_options_guest.cc
  291. @@ -240,8 +240,7 @@ bool ExtensionOptionsGuest::IsWebContentsCreationOverridden(
  292. content::SiteInstance* source_site_instance,
  293. content::mojom::WindowContainerType window_container_type,
  294. const GURL& opener_url,
  295. - const std::string& frame_name,
  296. - const GURL& target_url) {
  297. + const content::mojom::CreateNewWindowParams& params) {
  298. CHECK(!base::FeatureList::IsEnabled(features::kGuestViewMPArch));
  299. // This method handles opening links from within the guest. Since this guest
  300. diff --git a/extensions/browser/guest_view/extension_options/extension_options_guest.h b/extensions/browser/guest_view/extension_options/extension_options_guest.h
  301. index 29646283d0219f637ec243474d26d831be48c12a..0f5a88970946015647e9d0b6e0da1bd81a1402ba 100644
  302. --- a/extensions/browser/guest_view/extension_options/extension_options_guest.h
  303. +++ b/extensions/browser/guest_view/extension_options/extension_options_guest.h
  304. @@ -66,8 +66,7 @@ class ExtensionOptionsGuest
  305. content::SiteInstance* source_site_instance,
  306. content::mojom::WindowContainerType window_container_type,
  307. const GURL& opener_url,
  308. - const std::string& frame_name,
  309. - const GURL& target_url) final;
  310. + const content::mojom::CreateNewWindowParams& params) final;
  311. content::WebContents* CreateCustomWebContents(
  312. content::RenderFrameHost* opener,
  313. content::SiteInstance* source_site_instance,
  314. 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
  315. index 6ce54fc40f122fb13a4464817a1b5f1d095d060a..427eaa324d0d7485caa42d63c12ce8bb0e6b64f7 100644
  316. --- a/extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.cc
  317. +++ b/extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.cc
  318. @@ -418,8 +418,7 @@ bool MimeHandlerViewGuest::IsWebContentsCreationOverridden(
  319. content::SiteInstance* source_site_instance,
  320. content::mojom::WindowContainerType window_container_type,
  321. const GURL& opener_url,
  322. - const std::string& frame_name,
  323. - const GURL& target_url) {
  324. + const content::mojom::CreateNewWindowParams& params) {
  325. CHECK(!base::FeatureList::IsEnabled(features::kGuestViewMPArch));
  326. return true;
  327. 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
  328. index dd0a81a7f358611a05ae45b6c57e9dfc98642894..81e799bb2ce8baab8deb779d97c5481fa7a78948 100644
  329. --- a/extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.h
  330. +++ b/extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.h
  331. @@ -177,8 +177,7 @@ class MimeHandlerViewGuest
  332. content::SiteInstance* source_site_instance,
  333. content::mojom::WindowContainerType window_container_type,
  334. const GURL& opener_url,
  335. - const std::string& frame_name,
  336. - const GURL& target_url) override;
  337. + const content::mojom::CreateNewWindowParams& params) override;
  338. content::WebContents* CreateCustomWebContents(
  339. content::RenderFrameHost* opener,
  340. content::SiteInstance* source_site_instance,
  341. diff --git a/fuchsia_web/webengine/browser/frame_impl.cc b/fuchsia_web/webengine/browser/frame_impl.cc
  342. index 2052ea2d325cf7b6c4c831d92fc493528746d343..04949a2c52feef18f21e10e8f4c5dcea38042b5e 100644
  343. --- a/fuchsia_web/webengine/browser/frame_impl.cc
  344. +++ b/fuchsia_web/webengine/browser/frame_impl.cc
  345. @@ -574,8 +574,7 @@ bool FrameImpl::IsWebContentsCreationOverridden(
  346. content::SiteInstance* source_site_instance,
  347. content::mojom::WindowContainerType window_container_type,
  348. const GURL& opener_url,
  349. - const std::string& frame_name,
  350. - const GURL& target_url) {
  351. + const content::mojom::CreateNewWindowParams& params) {
  352. // Specify a generous upper bound for unacknowledged popup windows, so that we
  353. // can catch bad client behavior while not interfering with normal operation.
  354. constexpr size_t kMaxPendingWebContentsCount = 10;
  355. diff --git a/fuchsia_web/webengine/browser/frame_impl.h b/fuchsia_web/webengine/browser/frame_impl.h
  356. index 6d1f959d85f7c96d5d9ac84d4ae7831bec5cc706..682ff6a2f4cbde454c1ab06db43dd1281275dc14 100644
  357. --- a/fuchsia_web/webengine/browser/frame_impl.h
  358. +++ b/fuchsia_web/webengine/browser/frame_impl.h
  359. @@ -306,8 +306,7 @@ class WEB_ENGINE_EXPORT FrameImpl : public fuchsia::web::Frame,
  360. content::SiteInstance* source_site_instance,
  361. content::mojom::WindowContainerType window_container_type,
  362. const GURL& opener_url,
  363. - const std::string& frame_name,
  364. - const GURL& target_url) override;
  365. + const content::mojom::CreateNewWindowParams& params) override;
  366. void WebContentsCreated(content::WebContents* source_contents,
  367. int opener_render_process_id,
  368. int opener_render_frame_id,
  369. diff --git a/headless/lib/browser/headless_web_contents_impl.cc b/headless/lib/browser/headless_web_contents_impl.cc
  370. index d9c8efd5dfadddc923c9bf4abc21c029ed9f842e..efb45a765c1a2cace1d4ae5dca344e7542f66bfd 100644
  371. --- a/headless/lib/browser/headless_web_contents_impl.cc
  372. +++ b/headless/lib/browser/headless_web_contents_impl.cc
  373. @@ -207,8 +207,7 @@ class HeadlessWebContentsImpl::Delegate : public content::WebContentsDelegate {
  374. content::SiteInstance* source_site_instance,
  375. content::mojom::WindowContainerType window_container_type,
  376. const GURL& opener_url,
  377. - const std::string& frame_name,
  378. - const GURL& target_url) override {
  379. + const content::mojom::CreateNewWindowParams& params) override {
  380. return headless_web_contents_->browser_context()
  381. ->options()
  382. ->block_new_web_contents();
  383. diff --git a/ui/views/controls/webview/web_dialog_view.cc b/ui/views/controls/webview/web_dialog_view.cc
  384. index fde8b6ded980b38cfbeb44acfd5f8c6b05b5fef8..7f6e2e4b4b413014e42aa428477d151b41fc4503 100644
  385. --- a/ui/views/controls/webview/web_dialog_view.cc
  386. +++ b/ui/views/controls/webview/web_dialog_view.cc
  387. @@ -449,8 +449,7 @@ bool WebDialogView::IsWebContentsCreationOverridden(
  388. content::SiteInstance* source_site_instance,
  389. content::mojom::WindowContainerType window_container_type,
  390. const GURL& opener_url,
  391. - const std::string& frame_name,
  392. - const GURL& target_url) {
  393. + const content::mojom::CreateNewWindowParams& params) {
  394. if (delegate_)
  395. return delegate_->HandleShouldOverrideWebContentsCreation();
  396. return false;
  397. diff --git a/ui/views/controls/webview/web_dialog_view.h b/ui/views/controls/webview/web_dialog_view.h
  398. index 5ffd43b4907b7083c5fe0eb30279c75aac1a1800..2caa4140f2dca8c81e24d3738800fc0bce40287a 100644
  399. --- a/ui/views/controls/webview/web_dialog_view.h
  400. +++ b/ui/views/controls/webview/web_dialog_view.h
  401. @@ -167,8 +167,7 @@ class WEBVIEW_EXPORT WebDialogView : public ClientView,
  402. content::SiteInstance* source_site_instance,
  403. content::mojom::WindowContainerType window_container_type,
  404. const GURL& opener_url,
  405. - const std::string& frame_name,
  406. - const GURL& target_url) override;
  407. + const content::mojom::CreateNewWindowParams& params) override;
  408. void RequestMediaAccessPermission(
  409. content::WebContents* web_contents,
  410. const content::MediaStreamRequest& request,