|
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
|
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
|
Total messages: 39 (26 generated)
|