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

Unified Diff: blimp/engine/session/blimp_engine_session.cc

Issue 1986883002: blimp: Update page load status update indicator to use first paint. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressed comments. Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: blimp/engine/session/blimp_engine_session.cc
diff --git a/blimp/engine/session/blimp_engine_session.cc b/blimp/engine/session/blimp_engine_session.cc
index 3bf21099009ceb698e7e80c39e1545b96c552d6e..ec594fb3b61f27e3e7a97dbccf0e67991f049d58 100644
--- a/blimp/engine/session/blimp_engine_session.cc
+++ b/blimp/engine/session/blimp_engine_session.cc
@@ -208,6 +208,7 @@ BlimpEngineSession::BlimpEngineSession(
settings_manager_(settings_manager),
settings_feature_(settings_manager_),
render_widget_feature_(settings_manager_),
+ page_load_tracker_(this),
net_components_(
new EngineNetworkComponents(net_log,
QuitCurrentMessageLoopClosure())) {
@@ -578,33 +579,6 @@ void BlimpEngineSession::NavigationStateChanged(
net::CompletionCallback());
}
-void BlimpEngineSession::LoadProgressChanged(
- content::WebContents* source, double progress) {
- if (source != web_contents_.get())
- return;
-
- bool page_load_completed = (progress == 1.0);
-
- // If the client has been notified of a page load completed change, avoid
- // sending another message. For the first navigation, the initial value used
- // by the client is already false.
- if (last_page_load_completed_value_ == page_load_completed)
- return;
-
- NavigationMessage* navigation_message = nullptr;
- std::unique_ptr<BlimpMessage> message =
- CreateBlimpMessage(&navigation_message, kDummyTabId);
- navigation_message->set_type(NavigationMessage::NAVIGATION_STATE_CHANGED);
- NavigationStateChangeMessage* details =
- navigation_message->mutable_navigation_state_changed();
- details->set_page_load_completed(page_load_completed);
-
- navigation_message_sender_->ProcessMessage(std::move(message),
- net::CompletionCallback());
-
- last_page_load_completed_value_ = page_load_completed;
-}
-
void BlimpEngineSession::RenderViewCreated(
content::RenderViewHost* render_view_host) {
render_widget_feature_.OnRenderWidgetCreated(kDummyTabId,
@@ -626,6 +600,47 @@ void BlimpEngineSession::RenderViewDeleted(
render_view_host->GetWidget());
}
+void BlimpEngineSession::DidStartProvisionalLoadForFrame(
+ content::RenderFrameHost* render_frame_host,
+ const GURL& validated_url,
+ bool is_error_page,
+ bool is_iframe_srcdoc) {
+ page_load_tracker_.DidStartProvisionalLoadForFrame(render_frame_host);
+}
+
+void BlimpEngineSession::DidFinishLoad(
+ content::RenderFrameHost* render_frame_host,
+ const GURL& validated_url) {
+ page_load_tracker_.DidFinishLoad(render_frame_host);
+}
+
+void BlimpEngineSession::DidFailLoad(
+ content::RenderFrameHost* render_frame_host,
+ const GURL& validated_url,
+ int error_code,
+ const base::string16& error_description,
+ bool was_ignored_by_handler) {
+ page_load_tracker_.DidFailLoad(render_frame_host);
+}
+
+void BlimpEngineSession::DidFirstPaintAfterLoad(
+ content::RenderWidgetHost* render_widget_host) {
+ page_load_tracker_.DidFirstPaintAfterLoad(render_widget_host);
+}
+
+void BlimpEngineSession::SendPageLoadStatusUpdate(bool load_status) {
+ NavigationMessage* navigation_message = nullptr;
+ std::unique_ptr<BlimpMessage> message =
+ CreateBlimpMessage(&navigation_message, kDummyTabId);
+ navigation_message->set_type(NavigationMessage::NAVIGATION_STATE_CHANGED);
+ NavigationStateChangeMessage* details =
+ navigation_message->mutable_navigation_state_changed();
+ details->set_page_load_completed(load_status);
+
+ navigation_message_sender_->ProcessMessage(std::move(message),
+ net::CompletionCallback());
+}
+
void BlimpEngineSession::PlatformSetContents(
std::unique_ptr<content::WebContents> new_contents) {
new_contents->SetDelegate(this);

Powered by Google App Engine
This is Rietveld 408576698