Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(91)

Issue 2411793008: Adds BeginFrameControl via DevTools.

Created:
4 years, 2 months ago by Eric Seckler
Modified:
3 years, 7 months ago
Reviewers:
brianderson, enne (OOO)
CC:
chromium-reviews, qsr+mojo_chromium.org, viettrungluu+watch_chromium.org, nasko+codewatch_chromium.org, yzshen+watch_chromium.org, sievers+watch_chromium.org, apavlov+blink_chromium.org, darin (slow to review), caseq+blink_chromium.org, Aaron Boodman, jam, abarth-chromium, jbauman+watch_chromium.org, darin-cc_chromium.org, devtools-reviews_chromium.org, blink-reviews, kalyank, mlamouri+watch-content_chromium.org, creis+watch_chromium.org, tdresser+watch_chromium.org, lushnikov+blink_chromium.org, piman+watch_chromium.org, danakj+watch_chromium.org, Ian Vollick, tfarina, dtapuska+chromiumwatch_chromium.org, pfeldman+blink_chromium.org, cc-bugs_chromium.org, scheduler-bugs_chromium.org, pfeldman, kozyatinskiy+blink_chromium.org
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Adds BeginFrameControl via DevTools. This provides control over rendering, primarily for use in headless chrome. See http://bit.ly/bfc-v1 for detailed requirements; to sum up: - Normal BeginFrameSources are deactivated. - DevTools initiates each BeginFrame (and may wait for it to be drawn). - Essentially mimic a synchronous renderer, i.e. a BeginFrame causes a new main frame and leads to a successful commit of this frame to the browser display. - Plan for future support of OOPIFs. This first prototype approaches the problem as follows: - We assume that every page has its own window and that we are on Aura. - This allows us to replace the window's (i.e. the Aura display's) BeginFrameSource with a BFS that we control via DevTools. - On DevTools' SendBeginFrame, we force the RenderView to redraw and the renderer compositor to produce a new main frame. We also ensure that this frame is successfully drawn in the BeginFrame issued by SendBeginFrame. - We ensure that the DisplayScheduler waits for the commit of the renderer's new main frame before drawing in response to the BeginFrame. For this purpose, we track this frame using a latency info. For OOPIF, we would need to force each RenderFrame to redraw and track their frames in the browser, also via latency infos. DO NOT SUBMIT: prototype only, multiple TODOs, missing tests. BUG=646774 CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_precise_blink_rel

Patch Set 1 : First prototype. #

Patch Set 2 : BFC prototype v2 with allow_latency_opts and waiting for BFOs. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+761 lines, -53 lines) Patch
M cc/ipc/begin_frame_args.mojom View 1 1 chunk +1 line, -0 lines 0 comments Download
M cc/ipc/begin_frame_args_struct_traits.h View 1 2 chunks +5 lines, -0 lines 0 comments Download
M cc/ipc/cc_param_traits_macros.h View 1 1 chunk +1 line, -0 lines 0 comments Download
M cc/output/begin_frame_args.h View 1 1 chunk +2 lines, -1 line 0 comments Download
M cc/output/begin_frame_args.cc View 1 3 chunks +5 lines, -4 lines 0 comments Download
M cc/scheduler/scheduler.cc View 1 3 chunks +11 lines, -0 lines 0 comments Download
M cc/scheduler/scheduler_state_machine.h View 1 3 chunks +5 lines, -0 lines 0 comments Download
M cc/scheduler/scheduler_state_machine.cc View 1 7 chunks +55 lines, -12 lines 0 comments Download
M cc/surfaces/BUILD.gn View 1 1 chunk +2 lines, -0 lines 0 comments Download
M cc/surfaces/display.h View 1 4 chunks +9 lines, -2 lines 0 comments Download
M cc/surfaces/display.cc View 1 4 chunks +14 lines, -9 lines 0 comments Download
A cc/surfaces/display_begin_frame_source.h View 1 1 chunk +68 lines, -0 lines 0 comments Download
A cc/surfaces/display_begin_frame_source.cc View 1 1 chunk +135 lines, -0 lines 0 comments Download
M cc/surfaces/display_scheduler.h View 1 4 chunks +13 lines, -6 lines 0 comments Download
M cc/surfaces/display_scheduler.cc View 1 9 chunks +69 lines, -12 lines 0 comments Download
M cc/surfaces/display_scheduler_unittest.cc View 1 1 chunk +2 lines, -0 lines 0 comments Download
M content/browser/BUILD.gn View 1 2 chunks +1 line, -1 line 0 comments Download
M content/browser/compositor/gpu_process_transport_factory.h View 1 1 chunk +3 lines, -0 lines 0 comments Download
M content/browser/compositor/gpu_process_transport_factory.cc View 1 2 chunks +13 lines, -1 line 0 comments Download
M content/browser/devtools/protocol/emulation_handler.h View 1 5 chunks +27 lines, -2 lines 0 comments Download
M content/browser/devtools/protocol/emulation_handler.cc View 1 4 chunks +211 lines, -1 line 0 comments Download
M content/browser/renderer_host/render_widget_host_view_aura.cc View 1 1 chunk +3 lines, -0 lines 0 comments Download
M content/browser/web_contents/web_contents_view.h View 2 chunks +8 lines, -0 lines 0 comments Download
M content/browser/web_contents/web_contents_view_android.h View 1 1 chunk +1 line, -0 lines 0 comments Download
M content/browser/web_contents/web_contents_view_android.cc View 1 1 chunk +4 lines, -0 lines 0 comments Download
M content/browser/web_contents/web_contents_view_aura.h View 1 1 chunk +1 line, -0 lines 0 comments Download
M content/browser/web_contents/web_contents_view_aura.cc View 1 1 chunk +4 lines, -0 lines 0 comments Download
M content/browser/web_contents/web_contents_view_child_frame.h View 1 1 chunk +1 line, -0 lines 0 comments Download
M content/browser/web_contents/web_contents_view_child_frame.cc View 1 chunk +4 lines, -0 lines 0 comments Download
M content/browser/web_contents/web_contents_view_guest.h View 1 chunk +1 line, -0 lines 0 comments Download
M content/browser/web_contents/web_contents_view_guest.cc View 1 chunk +4 lines, -0 lines 0 comments Download
M content/browser/web_contents/web_contents_view_mac.h View 1 1 chunk +1 line, -0 lines 0 comments Download
M content/browser/web_contents/web_contents_view_mac.mm View 1 1 chunk +4 lines, -0 lines 0 comments Download
M content/browser/web_contents/web_contents_view_mus.h View 1 chunk +1 line, -0 lines 0 comments Download
M content/browser/web_contents/web_contents_view_mus.cc View 1 1 chunk +4 lines, -0 lines 0 comments Download
M services/ui/ws/gpu_compositor_frame_sink.cc View 1 1 chunk +1 line, -2 lines 0 comments Download
M third_party/WebKit/Source/core/inspector/browser_protocol.json View 1 2 chunks +44 lines, -0 lines 0 comments Download
M ui/aura/mus/mus_context_factory.h View 1 1 chunk +3 lines, -0 lines 0 comments Download
M ui/compositor/compositor.h View 1 3 chunks +9 lines, -0 lines 0 comments Download
M ui/compositor/compositor.cc View 1 1 chunk +5 lines, -0 lines 0 comments Download
M ui/compositor/test/in_process_context_factory.h View 1 1 chunk +3 lines, -0 lines 0 comments Download
M ui/views/mus/surface_context_factory.h View 1 1 chunk +3 lines, -0 lines 0 comments Download

Messages

Total messages: 39 (26 generated)
Eric Seckler
Hi Brian and Dana, This is a first attempt at making rendering controllable through DevTools ...
4 years, 2 months ago (2016-10-14 14:39:27 UTC) #23
danakj
-danakj +enne
4 years, 2 months ago (2016-10-14 21:07:51 UTC) #27
enne (OOO)
At the top level, being able to switch out the BeginFrameSource that the DisplayScheduler is ...
4 years, 2 months ago (2016-10-19 21:40:24 UTC) #29
Eric Seckler
Thanks for the feedback, Adrienne :) On 2016/10/19 21:40:24, enne wrote: > At the top ...
4 years, 2 months ago (2016-10-20 11:31:07 UTC) #30
brianderson
Sorry for the slow response. This was a lot to go over and I was ...
4 years, 1 month ago (2016-10-26 20:27:41 UTC) #31
Sami
On 2016/10/26 20:27:41, brianderson wrote: > Sorry for the slow response. This was a lot ...
4 years, 1 month ago (2016-10-27 12:31:50 UTC) #32
Eric Seckler
Following up on our chat last week, I've updated the design doc (http://bit.ly/bfc-v1). It also ...
4 years, 1 month ago (2016-11-07 16:40:03 UTC) #33
Eric Seckler
On 2016/11/07 16:40:03, Eric Seckler wrote: > Following up on our chat last week, I've ...
4 years, 1 month ago (2016-11-08 18:57:51 UTC) #34
enne (OOO)
Re: visual state callback instead of sequence numbers. As long as brianderson is ok with ...
4 years, 1 month ago (2016-11-10 19:46:40 UTC) #35
Eric Seckler
Thanks for the feedback, Adrienne :) It sounds like for chrome's use cases, sequence numbers ...
4 years, 1 month ago (2016-11-11 17:00:08 UTC) #36
Eric Seckler
Here's an update -- for documentary purposes, no action required. TLDR: We have a proof-of-concept ...
4 years, 1 month ago (2016-11-22 15:58:20 UTC) #37
Dan Montz
On 2016/11/22 15:58:20, Eric Seckler wrote: > Here's an update -- for documentary purposes, no ...
3 years, 7 months ago (2017-05-02 23:31:02 UTC) #38
Eric Seckler
3 years, 7 months ago (2017-05-03 07:23:07 UTC) #39
On 2017/05/02 23:31:02, dan.montz wrote:
> Are the DevTool commands for BeginFrameControl available now?  I see there
> hasn't been an update in a over 5 months.

We're not quite there yet, but actively working on it. Feel free to follow along
on the bug (https://crbug.com/646774) and its blockers.

Powered by Google App Engine
This is Rietveld 408576698