Android WebView multiprocess: Inputs go to the wrong compositor under certain circumstances. |
||
Issue descriptionInputs can go to a wrong compositor when a new RVH (that contains the new compositor) is constructed but never swapped to be the current RVH. This could happen when the new domain that the webview tries to navigate to has an SSL error. Steps to reproduce: 1. enable multi process in Developer Options. 2. go to https://www.google.com 3. go to https://www.google.co --- this page has an SSL error. 4. observe that what ever action you do on https://www.google.co is fed into the compositor that holds https://www.google.com. The reason is because we currently hook the "compositor change" signal to RWHVA::SetContentViewCore, which is called in RWHVA constructor. Unfortunately, a RWHVA does not always end up being swapped to be current, as is seen in our SSL error case. The proposal is to make android_webview::BrowserViewRenderer a contents::WebContentsObserver that listens to RenderViewHostChanged. In the mean time, we don't want to make any timing relationships between RenderViewHostChanged and the new compositor being constructed.
,
Jun 21 2016
Thankyou, hush@ Verified this fix on latest N with latest Webview on Nexus 5X. Steps: 1. Go to nytimes.com 2. Then go to https://www.google.co in the address bar 3. Verify that the page still stays at nytimes.com and we can still interact with the page, like clicking on the links etc
,
Jun 22 2016
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/48891cc12ea4cdeb20c1ce8e8555e1ff6267007b commit 48891cc12ea4cdeb20c1ce8e8555e1ff6267007b Author: hush <hush@chromium.org> Date: Wed Jun 22 01:16:25 2016 Add a BrowserViewRenderer unittest for compositor switch logic BUG= 616955 Review-Url: https://codereview.chromium.org/2078383004 Cr-Commit-Position: refs/heads/master@{#401154} [modify] https://crrev.com/48891cc12ea4cdeb20c1ce8e8555e1ff6267007b/android_webview/browser/browser_view_renderer.h [modify] https://crrev.com/48891cc12ea4cdeb20c1ce8e8555e1ff6267007b/android_webview/browser/browser_view_renderer_unittest.cc [modify] https://crrev.com/48891cc12ea4cdeb20c1ce8e8555e1ff6267007b/android_webview/browser/test/rendering_test.cc [modify] https://crrev.com/48891cc12ea4cdeb20c1ce8e8555e1ff6267007b/android_webview/browser/test/rendering_test.h [modify] https://crrev.com/48891cc12ea4cdeb20c1ce8e8555e1ff6267007b/content/public/test/test_synchronous_compositor_android.cc [modify] https://crrev.com/48891cc12ea4cdeb20c1ce8e8555e1ff6267007b/content/public/test/test_synchronous_compositor_android.h
,
Jun 24 2016
|
||
►
Sign in to add a comment |
||
Comment 1 by bugdroid1@chromium.org
, Jun 17 2016