New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 780556 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Sep 24
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Windows , Chrome , Mac
Pri: 2
Type: Bug

Blocked on:
issue 772432
issue 811414

Blocking:
issue 696617
issue 848778
issue 601584



Sign in to add a comment

User activation propagation for OOPIFs

Project Member Reported by mustaq@chromium.org, Nov 1 2017

Issue description

When propagating user activation info upwards (to the root of the frame tree), we need to handle OOPIFs separately.  Currently we store the state in the (Local or Remote) Frame object:
https://cs.chromium.org/chromium/src/third_party/WebKit/Source/core/frame/Frame.h?rcl=3b3b962ba23345f74077ef9799a7ecd1717d7945&l=222
(as we have been doing for the sticky frame states for media).

For each RemoteFrame on the way, we need to dispatch the info to the remote-frame's own process (more precisely, to the LocalFrame object in that process).

The end result is that user APIs will always check user activation bits in its own LocalFrame object.

This solution would involve two IPCs during propagation: (a) current frame sending an IPC to the RenderFrameProxyHost of the remote frame, then (b) the RFH sending an IPC to its own renderer.

I am assuming this is the best way since we are doing the same for focus change messages:
https://cs.chromium.org/chromium/src/content/common/frame_messages.h?rcl=007b1b422927617cf05ccb7189051232d71a30db&l=1674
https://cs.chromium.org/chromium/src/content/common/frame_messages.h?rcl=59fdf5ee92ccdb5fa8123d50a1f92699846f1da9&l=1010

 
Description: Show this description
Labels: UserActivation

Comment 3 by mustaq@chromium.org, Nov 29 2017

Status: Started (was: Assigned)
Finally started today.

Comment 5 by mustaq@chromium.org, Feb 12 2018

Blockedon: 811414

Comment 6 by mustaq@chromium.org, Feb 12 2018

Blocking: 696617

Comment 7 by mustaq@chromium.org, Feb 28 2018

Here is the design we are planning to implement (including alternatives):
https://docs.google.com/document/d/1Dd6RVLM2B6jHlaFGuZO-SMK-5tG-7Jdqv0CU3plUfXE/edit?usp=sharing
Blockedon: 789591
Blockedon: 772432
Blockedon: -789591
Blocking: 789591
We are blocking beta trial ( Issue 789591 ) on OOPIF instead, because of our emphasis on OOPIFs.
Blocking: 601584
Project Member

Comment 12 by bugdroid1@chromium.org, Mar 20 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/583ccb116526f71caaa43362550b3ba2b842073b

commit 583ccb116526f71caaa43362550b3ba2b842073b
Author: Mustaq Ahmed <mustaq@google.com>
Date: Tue Mar 20 18:50:24 2018

Untangle LocalFrame vs RemoteFrame for UserActivationV2 callers.

It is a cleanup-only change (no functional changes), to ease an
upcoming CL that adds OOPIF support with UAv2.

- Splits existing IPC calls from RenderFrameHost to RenderFrame
into two: the existing IPC message is now reserved for state
update calls from a rendererer, while a new one is added for user
activation notifications initiated from the browser side (used
with Android voice search).

- Removes |RemoteFrame| params from user activation entry-points
and clarifies comments to guarantee that those methods are for
|LocalFrame|s only.

Bug:  780556 
Change-Id: Id69f52b6b2482520001fc903ab787d24a69d6fa5
Reviewed-on: https://chromium-review.googlesource.com/956011
Reviewed-by: Ted Choc <tedchoc@chromium.org>
Reviewed-by: Alex Moshchuk <alexmos@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Commit-Queue: Mustaq Ahmed <mustaq@chromium.org>
Cr-Commit-Position: refs/heads/master@{#544456}
[modify] https://crrev.com/583ccb116526f71caaa43362550b3ba2b842073b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/LocationBarLayout.java
[modify] https://crrev.com/583ccb116526f71caaa43362550b3ba2b842073b/content/browser/frame_host/render_frame_host_android.cc
[modify] https://crrev.com/583ccb116526f71caaa43362550b3ba2b842073b/content/browser/frame_host/render_frame_host_android.h
[modify] https://crrev.com/583ccb116526f71caaa43362550b3ba2b842073b/content/browser/frame_host/render_frame_host_impl.cc
[modify] https://crrev.com/583ccb116526f71caaa43362550b3ba2b842073b/content/browser/frame_host/render_frame_host_impl.h
[modify] https://crrev.com/583ccb116526f71caaa43362550b3ba2b842073b/content/common/frame_messages.h
[modify] https://crrev.com/583ccb116526f71caaa43362550b3ba2b842073b/content/public/android/java/src/org/chromium/content/browser/framehost/RenderFrameHostImpl.java
[modify] https://crrev.com/583ccb116526f71caaa43362550b3ba2b842073b/content/public/android/java/src/org/chromium/content_public/browser/RenderFrameHost.java
[modify] https://crrev.com/583ccb116526f71caaa43362550b3ba2b842073b/content/public/test/android/javatests/src/org/chromium/content/browser/test/mock/MockRenderFrameHost.java
[modify] https://crrev.com/583ccb116526f71caaa43362550b3ba2b842073b/content/renderer/render_frame_impl.cc
[modify] https://crrev.com/583ccb116526f71caaa43362550b3ba2b842073b/content/renderer/render_frame_impl.h
[modify] https://crrev.com/583ccb116526f71caaa43362550b3ba2b842073b/third_party/WebKit/Source/core/exported/WebFrame.cpp
[modify] https://crrev.com/583ccb116526f71caaa43362550b3ba2b842073b/third_party/WebKit/Source/core/exported/WebFrameTest.cpp
[modify] https://crrev.com/583ccb116526f71caaa43362550b3ba2b842073b/third_party/WebKit/Source/core/exported/WebRemoteFrameImpl.cpp
[modify] https://crrev.com/583ccb116526f71caaa43362550b3ba2b842073b/third_party/WebKit/Source/core/exported/WebUserGestureIndicator.cpp
[modify] https://crrev.com/583ccb116526f71caaa43362550b3ba2b842073b/third_party/WebKit/Source/core/frame/Frame.cpp
[modify] https://crrev.com/583ccb116526f71caaa43362550b3ba2b842073b/third_party/WebKit/Source/core/frame/Frame.h
[modify] https://crrev.com/583ccb116526f71caaa43362550b3ba2b842073b/third_party/WebKit/Source/core/frame/WebLocalFrameImpl.cpp
[modify] https://crrev.com/583ccb116526f71caaa43362550b3ba2b842073b/third_party/WebKit/Source/core/frame/WebLocalFrameImpl.h
[modify] https://crrev.com/583ccb116526f71caaa43362550b3ba2b842073b/third_party/WebKit/Source/modules/permissions/Permissions.cpp
[modify] https://crrev.com/583ccb116526f71caaa43362550b3ba2b842073b/third_party/WebKit/Source/modules/webaudio/BaseAudioContextTest.cpp
[modify] https://crrev.com/583ccb116526f71caaa43362550b3ba2b842073b/third_party/WebKit/public/web/WebFrame.h
[modify] https://crrev.com/583ccb116526f71caaa43362550b3ba2b842073b/third_party/WebKit/public/web/WebLocalFrame.h
[modify] https://crrev.com/583ccb116526f71caaa43362550b3ba2b842073b/third_party/WebKit/public/web/WebRemoteFrame.h

Comment 13 by creis@chromium.org, Mar 21 2018

Cc: alex...@chromium.org nasko@chromium.org creis@chromium.org
Components: Internals>Sandbox>SiteIsolation
Labels: OS-Chrome OS-Linux OS-Mac OS-Windows
Adding SiteIsolation label.
Project Member

Comment 14 by bugdroid1@chromium.org, Mar 27 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/eeed7dfe9a57495020586b071c56dec3590f83fb

commit eeed7dfe9a57495020586b071c56dec3590f83fb
Author: Mustaq Ahmed <mustaq@google.com>
Date: Tue Mar 27 20:16:52 2018

Make activation notification to other processes unconditional

We originally had the notification conditional on whether the current
frame had been activated before or not.  This works fine for the sticky
activation bit but for the transient bit (which can expire or get
consumed), other processes should be notified at every user activation.

Bug:  780556 ,  775930 
Change-Id: I902129651504371bad0b9ab841e65b223bee46b4
Reviewed-on: https://chromium-review.googlesource.com/973507
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Mounir Lamouri <mlamouri@chromium.org>
Commit-Queue: Mustaq Ahmed <mustaq@chromium.org>
Cr-Commit-Position: refs/heads/master@{#546229}
[modify] https://crrev.com/eeed7dfe9a57495020586b071c56dec3590f83fb/third_party/WebKit/Source/core/exported/LocalFrameClientImpl.cpp
[modify] https://crrev.com/eeed7dfe9a57495020586b071c56dec3590f83fb/third_party/WebKit/Source/core/exported/LocalFrameClientImpl.h
[modify] https://crrev.com/eeed7dfe9a57495020586b071c56dec3590f83fb/third_party/WebKit/Source/core/frame/Frame.cpp
[modify] https://crrev.com/eeed7dfe9a57495020586b071c56dec3590f83fb/third_party/WebKit/Source/core/frame/LocalFrameClient.h

Cc: dcheng@chromium.org
Looks like we need to tweak the design proposed in #c7 above because renderer-side activation states fails in certain OOPIF cases.  For example, the following browser_tests fail because consecutive postMessages in renderer(s) can go ahead of the IPCs sent between renderers.
  ChromeSitePerProcessTest.PostMessageSendsSecondPostMessageWithUserGesture
  ChromeSitePerProcessTest.TwoPostMessagesToDifferentSitesWithSameUserGesture

Here is Daniel's proposal to move old user activation code (v1) to browser side to fix similar problems:
https://docs.google.com/document/d/1SuuaGe-d64FEz0ZMGu5FAEEJtMSvL77YGz4V9J1NUwo/edit?ts=5aa6d38c#heading=h.7nki9mck5t64

We met f2f during Blinkon to find a middle ground since fixing the old code looks like a wasted effort (we expect a lot of test regressions similar to ones we are facing for v2).

Now it seems that we can incrementally fix UAv2 OOPIF failures as follows (affecting only a portion of v1):

1. Move all activation consumption code to the browser side.  This would affect both v1 and v2 but only a handful of APIs rely on consumption so handling regressions should be relatively easy.

2. Gradually move activation notification for only UAv2 to the browser side.  This would affect many APIs, and Issue 826293 could be a blocker.  I believe the end result should be simpler than what we have today because most of the notification code today are there because of token-passing behavior of v1 (which should be gone in v2).

3. Once v1 and v2 notifications are completely isolated (in renderer and browser respectively), it should be easy to get rid of v1.

Last week we were able to fix most of the site-isolation browser test failures we had (and also pass an old failure) except one: TwoPostMessagesToDifferentSitesWithSameUserGesture.  It turned out that our design (crrev.com/c//967260) can't fix this important case unless we move activation consumption to browser-side.

Last Friday, dcheng@, alexmos@ and I met and agreed to proceed with the plan in #c15 above.


FYI: here is our new proposed design (which makes #c7 above obsolete):
https://docs.google.com/document/d/1XL3vCedkqL65ueaGVD-kfB5RnnrnTaxLc7kmU91oerg/edit?usp=sharing

Comment 18 by ojan@chromium.org, May 8 2018

Cc: -ojan@chromium.org
Project Member

Comment 19 by bugdroid1@chromium.org, May 9 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/eedcfc98122b6e8364f309685f4e57fd412364be

commit eedcfc98122b6e8364f309685f4e57fd412364be
Author: Mustaq Ahmed <mustaq@google.com>
Date: Wed May 09 17:34:53 2018

Removed activation consumption from MessagingApiTest.

As part of our User Activation v2 work (to replace old
UserGestureIndicator-based code), we are moving all
activation consumption calls to the browser side to
avoid possible double consumptions with OOPIFs.  This
CL replaces one consumption call with a fixed inactivate
state.

Bug:  780556 
Cq-Include-Trybots: master.tryserver.chromium.linux:closure_compilation
Change-Id: Idef304c1d58ccab3d981084c48e61c3d1b6a1ef9
Reviewed-on: https://chromium-review.googlesource.com/1045272
Commit-Queue: Mustaq Ahmed <mustaq@chromium.org>
Reviewed-by: Devlin <rdevlin.cronin@chromium.org>
Reviewed-by: Noel Gordon <noel@chromium.org>
Cr-Commit-Position: refs/heads/master@{#557232}
[modify] https://crrev.com/eedcfc98122b6e8364f309685f4e57fd412364be/chrome/browser/extensions/extension_browsertest.cc
[modify] https://crrev.com/eedcfc98122b6e8364f309685f4e57fd412364be/chrome/browser/extensions/extension_browsertest.h
[modify] https://crrev.com/eedcfc98122b6e8364f309685f4e57fd412364be/chrome/browser/extensions/extension_messages_apitest.cc
[modify] https://crrev.com/eedcfc98122b6e8364f309685f4e57fd412364be/extensions/browser/browsertest_util.cc
[modify] https://crrev.com/eedcfc98122b6e8364f309685f4e57fd412364be/extensions/browser/browsertest_util.h
[modify] https://crrev.com/eedcfc98122b6e8364f309685f4e57fd412364be/extensions/common/api/test.json
[modify] https://crrev.com/eedcfc98122b6e8364f309685f4e57fd412364be/extensions/renderer/resources/test_custom_bindings.js
[modify] https://crrev.com/eedcfc98122b6e8364f309685f4e57fd412364be/extensions/renderer/user_gestures_native_handler.cc
[modify] https://crrev.com/eedcfc98122b6e8364f309685f4e57fd412364be/extensions/renderer/user_gestures_native_handler.h
[modify] https://crrev.com/eedcfc98122b6e8364f309685f4e57fd412364be/ui/file_manager/externs/chrome_test.js

Blocking: 848778
Labels: -Pri-3 Pri-2
This is blocking  Issue 789591  a while already, should have bumped up the priority before.
Project Member

Comment 22 by bugdroid1@chromium.org, Jun 5 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c4cb716e319efaa1c2582565c5f18965dfa39366

commit c4cb716e319efaa1c2582565c5f18965dfa39366
Author: Mustaq Ahmed <mustaq@google.com>
Date: Tue Jun 05 16:28:36 2018

Add browser-side activation state with sync across OOPIFs.

In this CL we added replicated activation state in the
browser process, and fixed propagation in the frame trees
across all renderer processes.  We substituted
the IPCs Frame*Msg_SetHasReceivedUserGesture (used for
notifying activation only) with ones that communicate both
notification & consumption of user activations.

- Lack of browser-side activation states made it
impossible to avoid race conditions with cross-process
postMessages.  All ChromeSitePerProcessTests now pass with
UAv2 (including one that was disabled before).

- Previously, Frame::NotifyUserActivation didn't propagate
the notification across renderers after the first
activation, making the transient bit unavailable after the
first successful consumption during the frame's lifetime.

- Frame::ConsumeTransientUserActivation was incomplete for
OOPIFs, didn't update RemoteFrames in other renderers.
Also fixed a bug (not consuming across the frame tree)
that can be exploited to consume multiple times from
different frames.

Design doc:
https://docs.google.com/document/d/1XL3vCedkqL65ueaGVD-kfB5RnnrnTaxLc7kmU91oerg

Bug:  780556 ,  775930 
Change-Id: I3ea0f5f9d314f6a8bfd88b3bcf8c12700c560cc7
Reviewed-on: https://chromium-review.googlesource.com/967260
Commit-Queue: Mustaq Ahmed <mustaq@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Avi Drissman <avi@chromium.org>
Reviewed-by: Alex Moshchuk <alexmos@chromium.org>
Cr-Commit-Position: refs/heads/master@{#564530}
[modify] https://crrev.com/c4cb716e319efaa1c2582565c5f18965dfa39366/chrome/browser/chrome_site_per_process_browsertest.cc
[modify] https://crrev.com/c4cb716e319efaa1c2582565c5f18965dfa39366/content/browser/frame_host/frame_tree_node.cc
[modify] https://crrev.com/c4cb716e319efaa1c2582565c5f18965dfa39366/content/browser/frame_host/frame_tree_node.h
[modify] https://crrev.com/c4cb716e319efaa1c2582565c5f18965dfa39366/content/browser/frame_host/render_frame_host_impl.cc
[modify] https://crrev.com/c4cb716e319efaa1c2582565c5f18965dfa39366/content/browser/frame_host/render_frame_host_impl.h
[modify] https://crrev.com/c4cb716e319efaa1c2582565c5f18965dfa39366/content/browser/frame_host/render_frame_host_manager.cc
[modify] https://crrev.com/c4cb716e319efaa1c2582565c5f18965dfa39366/content/browser/frame_host/render_frame_host_manager.h
[modify] https://crrev.com/c4cb716e319efaa1c2582565c5f18965dfa39366/content/browser/web_contents/web_contents_impl.cc
[modify] https://crrev.com/c4cb716e319efaa1c2582565c5f18965dfa39366/content/common/frame.mojom
[modify] https://crrev.com/c4cb716e319efaa1c2582565c5f18965dfa39366/content/common/frame_messages.h
[modify] https://crrev.com/c4cb716e319efaa1c2582565c5f18965dfa39366/content/renderer/render_frame_impl.cc
[modify] https://crrev.com/c4cb716e319efaa1c2582565c5f18965dfa39366/content/renderer/render_frame_impl.h
[modify] https://crrev.com/c4cb716e319efaa1c2582565c5f18965dfa39366/content/renderer/render_frame_proxy.cc
[modify] https://crrev.com/c4cb716e319efaa1c2582565c5f18965dfa39366/content/renderer/render_frame_proxy.h
[modify] https://crrev.com/c4cb716e319efaa1c2582565c5f18965dfa39366/content/renderer/render_view_impl.cc
[modify] https://crrev.com/c4cb716e319efaa1c2582565c5f18965dfa39366/third_party/blink/common/BUILD.gn
[rename] https://crrev.com/c4cb716e319efaa1c2582565c5f18965dfa39366/third_party/blink/common/frame/user_activation_state.cc
[add] https://crrev.com/c4cb716e319efaa1c2582565c5f18965dfa39366/third_party/blink/common/frame/user_activation_state_unittest.cc
[modify] https://crrev.com/c4cb716e319efaa1c2582565c5f18965dfa39366/third_party/blink/public/common/BUILD.gn
[add] https://crrev.com/c4cb716e319efaa1c2582565c5f18965dfa39366/third_party/blink/public/common/frame/user_activation_state.h
[add] https://crrev.com/c4cb716e319efaa1c2582565c5f18965dfa39366/third_party/blink/public/common/frame/user_activation_update_type.h
[modify] https://crrev.com/c4cb716e319efaa1c2582565c5f18965dfa39366/third_party/blink/public/web/web_local_frame_client.h
[modify] https://crrev.com/c4cb716e319efaa1c2582565c5f18965dfa39366/third_party/blink/public/web/web_remote_frame.h
[modify] https://crrev.com/c4cb716e319efaa1c2582565c5f18965dfa39366/third_party/blink/renderer/core/exported/local_frame_client_impl.cc
[modify] https://crrev.com/c4cb716e319efaa1c2582565c5f18965dfa39366/third_party/blink/renderer/core/exported/local_frame_client_impl.h
[modify] https://crrev.com/c4cb716e319efaa1c2582565c5f18965dfa39366/third_party/blink/renderer/core/exported/web_remote_frame_impl.cc
[modify] https://crrev.com/c4cb716e319efaa1c2582565c5f18965dfa39366/third_party/blink/renderer/core/exported/web_remote_frame_impl.h
[modify] https://crrev.com/c4cb716e319efaa1c2582565c5f18965dfa39366/third_party/blink/renderer/core/frame/BUILD.gn
[modify] https://crrev.com/c4cb716e319efaa1c2582565c5f18965dfa39366/third_party/blink/renderer/core/frame/frame.cc
[modify] https://crrev.com/c4cb716e319efaa1c2582565c5f18965dfa39366/third_party/blink/renderer/core/frame/frame.h
[modify] https://crrev.com/c4cb716e319efaa1c2582565c5f18965dfa39366/third_party/blink/renderer/core/frame/frame_test.cc
[modify] https://crrev.com/c4cb716e319efaa1c2582565c5f18965dfa39366/third_party/blink/renderer/core/frame/local_frame_client.h
[delete] https://crrev.com/0ae4e766b88f7359be42bc796b9fab36369ab28f/third_party/blink/renderer/core/frame/user_activation_state.h

Project Member

Comment 23 by bugdroid1@chromium.org, Jun 6 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a6f9732fa453c84db446c9b4966ba24eb271da59

commit a6f9732fa453c84db446c9b4966ba24eb271da59
Author: Mustaq Ahmed <mustaq@google.com>
Date: Wed Jun 06 19:37:11 2018

Fix RFH::OnUpdateUserActivationState for deleted RFH case.

Bug:  780556 
Change-Id: Ic1feadf01adc9ea60b9246c57e503b29e801e305
Reviewed-on: https://chromium-review.googlesource.com/1089117
Commit-Queue: Mustaq Ahmed <mustaq@chromium.org>
Reviewed-by: Alex Moshchuk <alexmos@chromium.org>
Cr-Commit-Position: refs/heads/master@{#565003}
[modify] https://crrev.com/a6f9732fa453c84db446c9b4966ba24eb271da59/content/browser/frame_host/render_frame_host_impl.cc

Project Member

Comment 24 by bugdroid1@chromium.org, Jun 7 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/76c2f43123883edb51d00c221a421b822ba98c9d

commit 76c2f43123883edb51d00c221a421b822ba98c9d
Author: Mustaq Ahmed <mustaq@google.com>
Date: Thu Jun 07 20:48:01 2018

UAv2: skip IPCs to the browser when it has been updated already.

Bug:  780556 
Change-Id: Iee5496e123f8969cc68ce774ad339d4c90f7c7f0
Reviewed-on: https://chromium-review.googlesource.com/1085248
Commit-Queue: Mustaq Ahmed <mustaq@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Alex Moshchuk <alexmos@chromium.org>
Cr-Commit-Position: refs/heads/master@{#565398}
[modify] https://crrev.com/76c2f43123883edb51d00c221a421b822ba98c9d/content/browser/frame_host/render_frame_host_manager.h
[modify] https://crrev.com/76c2f43123883edb51d00c221a421b822ba98c9d/content/renderer/render_view_impl.cc
[modify] https://crrev.com/76c2f43123883edb51d00c221a421b822ba98c9d/third_party/blink/public/common/BUILD.gn
[add] https://crrev.com/76c2f43123883edb51d00c221a421b822ba98c9d/third_party/blink/public/common/frame/user_activation_update_source.h
[modify] https://crrev.com/76c2f43123883edb51d00c221a421b822ba98c9d/third_party/blink/public/common/frame/user_activation_update_type.h
[modify] https://crrev.com/76c2f43123883edb51d00c221a421b822ba98c9d/third_party/blink/public/web/web_user_gesture_indicator.h
[modify] https://crrev.com/76c2f43123883edb51d00c221a421b822ba98c9d/third_party/blink/renderer/core/exported/web_user_gesture_indicator.cc
[modify] https://crrev.com/76c2f43123883edb51d00c221a421b822ba98c9d/third_party/blink/renderer/core/frame/frame.cc
[modify] https://crrev.com/76c2f43123883edb51d00c221a421b822ba98c9d/third_party/blink/renderer/core/frame/frame.h

Blocking: -789591
We are done with most of Step 1 as in #c15 above.  Hence removing blocked  Issue 789591  as we are going ahead with a field trial.

We plan to finish Step 1 and start Step 2 this quarter.

It seems Step 1 in #c15 is more involved, not all callers can move the consumption to the browser process.

E.g. we recently added a new consumption call in FrameLoader::StartNavigation (crrev.com/c/1232200) where a blocking call seem unacceptable.

Given that the basic OOPIF support for UAv2 is done already, we will close this bug and track the remaining steps (Step2, Step 3) in #c15 through a new bug.

Status: Fixed (was: Started)
Filed  Issue 888608  to track remaining UAv2 work on untrusted browsers.

Sign in to add a comment