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); |