Chrome Apps Webview (Guest View) MPArch Migration

374 views
Skip to first unread message

Kevin McNee

unread,
Nov 23, 2022, 5:10:47 PM11/23/22
to Chromium Embedders

Hello, Chromium Embedders.


We intend to migrate the implementation of Chrome Apps Webview (and Guest Views in general) to the Multiple Page Architecture (MPArch).


The current architecture involves representing a Guest View as a WebContents and embedding that inside another WebContents. The MPArch project aims to unify the implementations of features involving nesting pages inside other pages. Guest View is one such feature.


See the design doc for details on the migration. In summary, a guest will no longer be associated with an inner WebContents, but rather with a guest specific class which internally owns a FrameTree and gives content embedders access to relevant functionality (e.g. access to the guest’s NavigationController).


Note that there are two intentional behaviour changes that will come before this migration, and will roll out behind a temporary opt-out flag and enterprise policy. The first is that a <webview> will no longer show SSL error interstitials, and will instead use a plain error page. The latter does not give the option to unsafely proceed. The second is a limitation on cross-WebContents <webview> newwindow usage. See the design doc for details.


Other than those two cases, <webview> users shouldn’t experience any disruptions. However, downstream C++ code that interacts with <webview>s could require updates. Of particular note here is Electron, which uses its own calls to AttachInnerWebContents (github) which will need to change.


As of this writing, the MPArch implementation has not yet been introduced to the code base. See the implementation meta bug for updates. We’ll also make updates to this thread, once the implementation is far enough along. Also note that you can expect that <webview> site isolation will have launched before these changes take effect.


Please let us know of any concerns.


Thanks.


Kevin McNee

unread,
Mar 14, 2023, 1:37:35 PM3/14/23
to Chromium Embedders, Kevin McNee
Hello.

The two intentional behaviour changes, which precede the migration, will be rolling out in M113. This rollout is controlled by the following flag: chrome://flags/#enable-webview-tag-mparch-behavior . The temporary enterprise policy escape hatch is named ChromeAppsWebViewPermissiveBehaviorAllowed. We aim to remove the flag and policy in M117.

Kevin McNee

unread,
Jun 5, 2023, 4:21:09 PM6/5/23
to Chromium Embedders, Kevin McNee
Hello.

An update on the intentional behaviour changes: The changes did not end up rolling out in M113. We've been reconsidering the change to SSL error interstitial usage in webview, given the risk of breakage. We will no longer be proceeding with that part of the change. We are proceeding with the newwindow change which is now targeting M116 with the flag removal happening in M122.
Reply all
Reply to author
Forward
0 new messages