OOPIF: CrossProcessFrameConnector::OnVisibilityChanged needs to notify all descendants in the tree |
||||||
Issue descriptionWhen a RemoteFrame is set to 'display: none' the renderer sends an IPC and the browser notifies the child renderer that it doesn't need to produce frames anymore through ViewMsg_WasHidden. However, when we have nested cross-origin iframes, all nested children should be notified when setting the visibility, since they also don't need to render.
,
Jul 17 2017
This issue has been Available for over a year. If it's no longer important or seems unlikely to be fixed, please consider closing it out. If it is important, please re-triage the issue. Sorry for the inconvenience if the bug really should have been left as Available. If you change it back, also remove the "Hotlist-Recharge-Cold" label. For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
,
Jul 17 2017
This is still an issue. The IPC in the original comment was wrong, the correct one is FrameHostMsg_VisibilityChanged, which triggers the ViewMsg_WasHidden/WasShown.
,
Jul 27 2017
I agree with comment #3 that this is still an issue (I verified locally). I can take a look at this soon.
,
Aug 21 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/2075c7ed7438b0b0796f29ec3a88e14ffeba51ff commit 2075c7ed7438b0b0796f29ec3a88e14ffeba51ff Author: EhsanK <ekaramad@chromium.org> Date: Mon Aug 21 02:42:39 2017 Show/Hide RenderWidgetHostViews under an OOPIF when its Frame Owner becomes Visible/Hidden Right now changing the visibility state of a cross-origin iframe will lead to calls to RenderWidgetHostView::Show/Hide on its corresponding view. Therefore, when hiding a frame the RenderWidget will stop generating compositor frames. However, when the iframe itself has nested cross-origin frames, the current calls to Hide() and Show() are not replicated for their views. This CL adds the missing code to inform the subviews about changes in the visibility state. The CL also modifies the existing test for visibility change a test to further verify that hiding a cross origin iframe will also hide any child view nested within it. Bug: 628704 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_site_isolation Change-Id: I3589d1e90ae7ee8bfdb654625c451cc0e6704785 Reviewed-on: https://chromium-review.googlesource.com/599006 Commit-Queue: Ehsan Karamad <ekaramad@chromium.org> Reviewed-by: Alex Moshchuk <alexmos@chromium.org> Reviewed-by: Ken Buchanan <kenrb@chromium.org> Reviewed-by: Lucas Gadani <lfg@chromium.org> Cr-Commit-Position: refs/heads/master@{#495861} [modify] https://crrev.com/2075c7ed7438b0b0796f29ec3a88e14ffeba51ff/content/browser/frame_host/cross_process_frame_connector.cc [modify] https://crrev.com/2075c7ed7438b0b0796f29ec3a88e14ffeba51ff/content/browser/frame_host/cross_process_frame_connector.h [modify] https://crrev.com/2075c7ed7438b0b0796f29ec3a88e14ffeba51ff/content/browser/frame_host/render_frame_host_impl.cc [modify] https://crrev.com/2075c7ed7438b0b0796f29ec3a88e14ffeba51ff/content/browser/frame_host/render_frame_host_impl.h [modify] https://crrev.com/2075c7ed7438b0b0796f29ec3a88e14ffeba51ff/content/browser/renderer_host/frame_connector_delegate.h [modify] https://crrev.com/2075c7ed7438b0b0796f29ec3a88e14ffeba51ff/content/browser/renderer_host/render_widget_host_view_child_frame.cc [modify] https://crrev.com/2075c7ed7438b0b0796f29ec3a88e14ffeba51ff/content/browser/renderer_host/render_widget_host_view_child_frame_unittest.cc [modify] https://crrev.com/2075c7ed7438b0b0796f29ec3a88e14ffeba51ff/content/browser/site_per_process_browsertest.cc [modify] https://crrev.com/2075c7ed7438b0b0796f29ec3a88e14ffeba51ff/content/browser/web_contents/web_contents_impl.cc [modify] https://crrev.com/2075c7ed7438b0b0796f29ec3a88e14ffeba51ff/content/browser/web_contents/web_contents_impl.h
,
Sep 29 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/ef59187a703146dc49481629842004c39734f310 commit ef59187a703146dc49481629842004c39734f310 Author: Igor Eremeev <myrth@yandex-team.ru> Date: Fri Sep 29 00:25:42 2017 Fix a typo that caused child views to stay visible after hide. R=ekaramad@chromium.org,lfg@chromium.org BUG= 628704 Change-Id: I88b95a335e8f97ef5076329a49b52d482fe297f4 Reviewed-on: https://chromium-review.googlesource.com/690348 Reviewed-by: Bo <boliu@chromium.org> Commit-Queue: Bo <boliu@chromium.org> Cr-Commit-Position: refs/heads/master@{#505228} [modify] https://crrev.com/ef59187a703146dc49481629842004c39734f310/content/browser/web_contents/web_contents_impl.cc
,
Sep 29 2017
,
Nov 8 2017
This bug is fixed per comment #5. |
||||||
►
Sign in to add a comment |
||||||
Comment 1 by lfg@chromium.org
, Jul 15 2016