commit | 4ac09b7fc3abe50520e0fb7b3bd8c67056d047b9 | [log] [tgz] |
---|---|---|
author | Ehsan Karamad <ekaramad@chromium.org> | Sun Feb 03 03:03:08 2019 |
committer | Ehsan Karamad <ekaramad@chromium.org> | Sun Feb 03 03:03:08 2019 |
tree | 632976f813ffe1a5a4ad3bce8a220a3301f3bbca | |
parent | 24082dd1de6114e5143f0c77691ca19c51bfd445 [diff] |
Reuse RemoteFrameView in plugin elements During lazy reattach, a plugin element disposes of its current OwnedEmbeddedContentView. For frames, this means the FrameView is disposed of. After update, if the plugin requests a frame again, it will: 1- Create a LocalFrameView in case the target frame is local. This happens when DocumentLoader commits. 2- Does nothing if target frame is remote, in which case the plugin element appears frozen. An attempt to properly detach the ContentFrame during plugin updates (which would omit this problem altogether) was tried in an earlier attempt (CL 996314). It turns out detaching the frame during either update or reattach phase could synchronously run scripts which rely on the frame (often through window proxy) and detaching the frame in those cases is not safe (hence 996314 got reverted). A proper clean up fix for plugins is still a work in progress. This CL instead aims at fixing some of the more blatant OOPIF plugin elements bugs. Essentially most of these bugs occur due to losing ECV during reattaching. This change fixes the issue by reinserting the RemoteFrameView when plugin is updated (into a frame type). TBR=ekaramad@chromium.org (cherry picked from commit 830c8fce7fd31522bb848a24ea69ff2b77c7ce2f) Bug: 781880, 908271 Change-Id: I9e723434d44f8b8c330aa66981c17bc479c753f5 Reviewed-on: https://chromium-review.googlesource.com/c/1341137 Commit-Queue: Ehsan Karamad <ekaramad@chromium.org> Reviewed-by: Alex Moshchuk <alexmos@chromium.org> Reviewed-by: Daniel Cheng <dcheng@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#626624} Reviewed-on: https://chromium-review.googlesource.com/c/1451135 Reviewed-by: Ehsan Karamad <ekaramad@chromium.org> Cr-Commit-Position: refs/branch-heads/3683@{#147} Cr-Branched-From: e51029943e0a38dd794b73caaf6373d5496ae783-refs/heads/master@{#625896}
Chromium is an open-source browser project that aims to build a safer, faster, and more stable way for all users to experience the web.
The project's web site is https://www.chromium.org.
Documentation in the source is rooted in docs/README.md.
Learn how to Get Around the Chromium Source Code Directory Structure .