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

Issue 1986883002: blimp: Update page load status update indicator to use first paint. (Closed)

Created:
4 years, 7 months ago by Khushal
Modified:
4 years, 6 months ago
CC:
chromium-reviews, mlamouri+watch-content_chromium.org, anandc+watch-blimp_chromium.org, maniscalco+watch-blimp_chromium.org, sriramsr+watch-blimp_chromium.org, nasko+codewatch_chromium.org, jam, nyquist+watch-blimp_chromium.org, marcinjb+watch-blimp_chromium.org, jessicag+watch-blimp_chromium.org, kmarshall+watch-blimp_chromium.org, creis+watch_chromium.org, piman+watch_chromium.org, mkwst+moarreviews-renderer_chromium.org, darin-cc_chromium.org, cc-bugs_chromium.org, dtrainor+watch-blimp_chromium.org, David Trainor- moved to gerrit
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

blimp: Update page load status update indicator to use first paint. The Blimp client uses the load progress status from the engine to indicate page load progress for a navigation. While this signal informs us whether the engine has downloaded all the resources for a page, it can not be used reliably to indicate whether the client has received any frames/compositor commits for this navigation. This change uses 2 signals on the engine to indicate to the client whether a navigation is complete: 1) When the engine is finished loading all the resources for the main frame. 2) When the first paint has been performed for the main frame after a navigation. The first paint implies a commit message has been sent to the client. The renderer uses compositor's SwapPromises to tie events, like the first paint, with CompositorFrames and delivers them together to the browser. Since Blimp uses the remote server LayerTreeHost on the engine, which does not produce compositor frames and has no output surface, the renderer now sends these messages after activation instead when using remote compositing. Also, the remote compositor will activate these promises immediately after sending the commit message. BUG=603220 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel Committed: https://crrev.com/f3b62b6ed72d6405728899bf76aea9add6aee5fa Cr-Commit-Position: refs/heads/master@{#396290}

Patch Set 1 #

Total comments: 4

Patch Set 2 : Addressed comments. #

Total comments: 6

Patch Set 3 : Addressed Wez's comments. #

Total comments: 5

Patch Set 4 : Update comment. #

Patch Set 5 : Rebase. #

Patch Set 6 : Fix test. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+287 lines, -38 lines) Patch
M blimp/engine/BUILD.gn View 1 2 1 chunk +2 lines, -0 lines 0 comments Download
M blimp/engine/session/blimp_engine_session.h View 1 2 3 4 5 chunks +10 lines, -7 lines 0 comments Download
M blimp/engine/session/blimp_engine_session.cc View 1 2 3 4 3 chunks +27 lines, -27 lines 0 comments Download
A blimp/engine/session/page_load_tracker.h View 1 2 1 chunk +82 lines, -0 lines 0 comments Download
A blimp/engine/session/page_load_tracker.cc View 1 2 1 chunk +103 lines, -0 lines 0 comments Download
M cc/trees/layer_tree_host.h View 1 2 3 4 1 chunk +5 lines, -1 line 0 comments Download
M cc/trees/layer_tree_host.cc View 1 2 3 4 2 chunks +6 lines, -1 line 0 comments Download
M cc/trees/layer_tree_host_unittest_serialization.cc View 1 2 3 4 5 1 chunk +2 lines, -1 line 0 comments Download
M cc/trees/remote_channel_main.cc View 1 1 chunk +14 lines, -1 line 0 comments Download
M content/browser/renderer_host/render_widget_host_delegate.h View 1 chunk +5 lines, -0 lines 0 comments Download
M content/browser/renderer_host/render_widget_host_impl.cc View 1 2 3 4 1 chunk +3 lines, -0 lines 0 comments Download
M content/browser/web_contents/web_contents_impl.h View 1 2 3 4 1 chunk +1 line, -0 lines 0 comments Download
M content/browser/web_contents/web_contents_impl.cc View 1 2 3 4 1 chunk +6 lines, -0 lines 0 comments Download
M content/public/browser/web_contents_observer.h View 1 2 3 1 chunk +4 lines, -0 lines 0 comments Download
M content/renderer/gpu/queue_message_swap_promise.cc View 2 chunks +17 lines, -0 lines 0 comments Download

Messages

Total messages: 50 (16 generated)
Khushal
+wez for blimp/ +vmpstr for cc/ +sievers for content/ Need to add tests for the ...
4 years, 7 months ago (2016-05-17 18:51:32 UTC) #3
Khushal
4 years, 7 months ago (2016-05-17 18:54:41 UTC) #4
Khushal
+Matt to see how close this is to the progress bar for Clank.
4 years, 7 months ago (2016-05-18 01:26:26 UTC) #7
vmpstr
https://codereview.chromium.org/1986883002/diff/1/cc/trees/remote_channel_main.cc File cc/trees/remote_channel_main.cc (right): https://codereview.chromium.org/1986883002/diff/1/cc/trees/remote_channel_main.cc#newcode188 cc/trees/remote_channel_main.cc:188: // Activate the swap promises after the commit is ...
4 years, 7 months ago (2016-05-18 18:05:59 UTC) #8
mdjones
In general, this implementation isn't too different to what we now do for chrome on ...
4 years, 7 months ago (2016-05-18 20:30:01 UTC) #9
Khushal
https://codereview.chromium.org/1986883002/diff/1/blimp/engine/session/page_load_tracker.cc File blimp/engine/session/page_load_tracker.cc (right): https://codereview.chromium.org/1986883002/diff/1/blimp/engine/session/page_load_tracker.cc#newcode39 blimp/engine/session/page_load_tracker.cc:39: client_->SendPageLoadStatusUpdate(false); On 2016/05/18 20:30:00, mdjones wrote: > This call ...
4 years, 7 months ago (2016-05-18 21:16:58 UTC) #10
Khushal
On 2016/05/18 20:30:01, mdjones wrote: > In general, this implementation isn't too different to what ...
4 years, 7 months ago (2016-05-18 21:22:46 UTC) #11
Khushal
friendly ping. This is for a critical bug. Would be great to get a quick ...
4 years, 7 months ago (2016-05-19 17:28:01 UTC) #12
no sievers
On 2016/05/19 17:28:01, Khushal wrote: > friendly ping. > > This is for a critical ...
4 years, 7 months ago (2016-05-19 18:16:13 UTC) #13
Khushal
On 2016/05/19 18:16:13, sievers wrote: > On 2016/05/19 17:28:01, Khushal wrote: > > friendly ping. ...
4 years, 7 months ago (2016-05-19 19:03:42 UTC) #14
no sievers
On 2016/05/19 19:03:42, Khushal wrote: > On 2016/05/19 18:16:13, sievers wrote: > > On 2016/05/19 ...
4 years, 7 months ago (2016-05-19 19:33:47 UTC) #15
vmpstr
cc lgtm
4 years, 7 months ago (2016-05-19 20:20:33 UTC) #17
Ted C
On 2016/05/19 19:33:47, sievers wrote: > On 2016/05/19 19:03:42, Khushal wrote: > > On 2016/05/19 ...
4 years, 7 months ago (2016-05-19 20:58:55 UTC) #18
Khushal
On 2016/05/19 19:33:47, sievers wrote: > On 2016/05/19 19:03:42, Khushal wrote: > > On 2016/05/19 ...
4 years, 7 months ago (2016-05-19 22:03:26 UTC) #19
Wez
https://codereview.chromium.org/1986883002/diff/20001/blimp/engine/session/blimp_engine_session.h File blimp/engine/session/blimp_engine_session.h (right): https://codereview.chromium.org/1986883002/diff/20001/blimp/engine/session/blimp_engine_session.h#newcode174 blimp/engine/session/blimp_engine_session.h:174: content::RenderWidgetHost* render_widget_host) override; Why not make the PageLoadTracker a ...
4 years, 7 months ago (2016-05-24 01:42:17 UTC) #20
Khushal
Thanks Wez! https://codereview.chromium.org/1986883002/diff/20001/blimp/engine/session/blimp_engine_session.h File blimp/engine/session/blimp_engine_session.h (right): https://codereview.chromium.org/1986883002/diff/20001/blimp/engine/session/blimp_engine_session.h#newcode174 blimp/engine/session/blimp_engine_session.h:174: content::RenderWidgetHost* render_widget_host) override; On 2016/05/24 01:42:17, Wez ...
4 years, 7 months ago (2016-05-24 18:28:10 UTC) #21
nasko
The content/ parts look fine to me. Adding kenrb@, since he wrote this code and ...
4 years, 7 months ago (2016-05-24 21:39:22 UTC) #23
Wez
lgtm https://codereview.chromium.org/1986883002/diff/40001/blimp/engine/session/blimp_engine_session.h File blimp/engine/session/blimp_engine_session.h (right): https://codereview.chromium.org/1986883002/diff/40001/blimp/engine/session/blimp_engine_session.h#newcode201 blimp/engine/session/blimp_engine_session.h:201: std::unique_ptr<PageLoadTracker> page_load_tracker_; nit: You could re-use the tracker ...
4 years, 7 months ago (2016-05-25 03:33:11 UTC) #24
Khushal
https://codereview.chromium.org/1986883002/diff/40001/blimp/engine/session/blimp_engine_session.h File blimp/engine/session/blimp_engine_session.h (right): https://codereview.chromium.org/1986883002/diff/40001/blimp/engine/session/blimp_engine_session.h#newcode201 blimp/engine/session/blimp_engine_session.h:201: std::unique_ptr<PageLoadTracker> page_load_tracker_; On 2016/05/25 03:33:10, Wez wrote: > nit: ...
4 years, 7 months ago (2016-05-25 04:24:23 UTC) #25
nasko
https://codereview.chromium.org/1986883002/diff/40001/blimp/engine/session/blimp_engine_session.h File blimp/engine/session/blimp_engine_session.h (right): https://codereview.chromium.org/1986883002/diff/40001/blimp/engine/session/blimp_engine_session.h#newcode201 blimp/engine/session/blimp_engine_session.h:201: std::unique_ptr<PageLoadTracker> page_load_tracker_; On 2016/05/25 04:24:23, Khushal wrote: > On ...
4 years, 7 months ago (2016-05-25 11:46:50 UTC) #26
Khushal
Thanks nasko. Friendly ping to kenrb@ to take a look as well. :) https://codereview.chromium.org/1986883002/diff/40001/content/public/browser/web_contents_observer.h File ...
4 years, 6 months ago (2016-05-26 01:43:00 UTC) #27
kenrb
lgtm One thing to be cautious about is to not assume that you receive the ...
4 years, 6 months ago (2016-05-26 15:47:08 UTC) #28
nasko
Thanks Ken! Stampity stamp LGTM.
4 years, 6 months ago (2016-05-26 16:02:53 UTC) #29
Khushal
On 2016/05/26 15:47:08, kenrb wrote: > lgtm > > One thing to be cautious about ...
4 years, 6 months ago (2016-05-26 16:12:41 UTC) #30
kenrb
On 2016/05/26 16:12:41, Khushal wrote: > On 2016/05/26 15:47:08, kenrb wrote: > > lgtm > ...
4 years, 6 months ago (2016-05-26 16:58:11 UTC) #31
Khushal
On 2016/05/26 16:58:11, kenrb wrote: > On 2016/05/26 16:12:41, Khushal wrote: > > On 2016/05/26 ...
4 years, 6 months ago (2016-05-26 17:22:02 UTC) #32
Khushal
Thanks Ken!
4 years, 6 months ago (2016-05-26 17:24:43 UTC) #33
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1986883002/60001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1986883002/60001
4 years, 6 months ago (2016-05-26 17:25:13 UTC) #36
commit-bot: I haz the power
Try jobs failed on following builders: ios-device on tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/ios-device/builds/11978) ios-device-gn on tryserver.chromium.mac (JOB_FAILED, ...
4 years, 6 months ago (2016-05-26 17:27:30 UTC) #38
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1986883002/80001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1986883002/80001
4 years, 6 months ago (2016-05-26 19:26:27 UTC) #41
commit-bot: I haz the power
Try jobs failed on following builders: mac_chromium_compile_dbg_ng on tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/mac_chromium_compile_dbg_ng/builds/210071)
4 years, 6 months ago (2016-05-26 19:39:03 UTC) #43
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1986883002/100001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1986883002/100001
4 years, 6 months ago (2016-05-26 19:56:01 UTC) #46
commit-bot: I haz the power
Committed patchset #6 (id:100001)
4 years, 6 months ago (2016-05-26 21:54:36 UTC) #48
commit-bot: I haz the power
4 years, 6 months ago (2016-05-26 21:55:36 UTC) #50
Message was sent while issue was closed.
Patchset 6 (id:??) landed as
https://crrev.com/f3b62b6ed72d6405728899bf76aea9add6aee5fa
Cr-Commit-Position: refs/heads/master@{#396290}

Powered by Google App Engine
This is Rietveld 408576698