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

Unified Diff: content/browser/web_contents/web_contents_impl.cc

Issue 161113002: Fix pushState causing stop/reload button and favicon to flicker. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 10 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
« no previous file with comments | « content/browser/web_contents/web_contents_impl.h ('k') | content/common/frame_messages.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/browser/web_contents/web_contents_impl.cc
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
index 02838bc8b8fdff01042036b2c6d1d1ad3a65dc9b..b0d31a136cfac7c5d6296248ad9d680c295f4a00 100644
--- a/content/browser/web_contents/web_contents_impl.cc
+++ b/content/browser/web_contents/web_contents_impl.cc
@@ -2553,6 +2553,7 @@ void WebContentsImpl::ActivateAndShowRepostFormWarningDialog() {
// loading, or done loading.
void WebContentsImpl::SetIsLoading(RenderViewHost* render_view_host,
bool is_loading,
+ bool to_different_document,
LoadNotificationDetails* details) {
if (is_loading == is_loading_)
return;
@@ -2570,9 +2571,11 @@ void WebContentsImpl::SetIsLoading(RenderViewHost* render_view_host,
is_loading_ = is_loading;
waiting_for_response_ = is_loading;
- if (delegate_)
- delegate_->LoadingStateChanged(this);
- NotifyNavigationStateChanged(INVALIDATE_TYPE_LOAD);
+ if (to_different_document) {
sky 2014/02/13 22:25:26 Seems like the delegate/observers should be told t
+ if (delegate_)
+ delegate_->LoadingStateChanged(this);
+ NotifyNavigationStateChanged(INVALIDATE_TYPE_LOAD);
+ }
std::string url = (details ? details->url.possibly_invalid_spec() : "NULL");
if (is_loading) {
@@ -2837,7 +2840,7 @@ void WebContentsImpl::RenderViewTerminated(RenderViewHost* rvh,
}
ClearPowerSaveBlockers(rvh);
- SetIsLoading(rvh, false, NULL);
+ SetIsLoading(rvh, false, true, NULL);
NotifyDisconnected();
SetIsCrashed(status, error_code);
GetView()->OnTabCrashed(GetCrashedStatus(), crashed_error_code_);
@@ -2955,8 +2958,10 @@ void WebContentsImpl::RequestMove(const gfx::Rect& new_bounds) {
delegate_->MoveContents(this, new_bounds);
}
-void WebContentsImpl::DidStartLoading(RenderFrameHost* render_frame_host) {
- SetIsLoading(render_frame_host->GetRenderViewHost(), true, NULL);
+void WebContentsImpl::DidStartLoading(RenderFrameHost* render_frame_host,
+ bool to_different_document) {
+ SetIsLoading(render_frame_host->GetRenderViewHost(), true,
+ to_different_document, NULL);
}
void WebContentsImpl::DidStopLoading(RenderFrameHost* render_frame_host) {
@@ -2981,7 +2986,8 @@ void WebContentsImpl::DidStopLoading(RenderFrameHost* render_frame_host) {
controller_.GetCurrentEntryIndex()));
}
- SetIsLoading(render_frame_host->GetRenderViewHost(), false, details.get());
+ SetIsLoading(render_frame_host->GetRenderViewHost(), false, true,
+ details.get());
}
void WebContentsImpl::DidCancelLoading() {
« no previous file with comments | « content/browser/web_contents/web_contents_impl.h ('k') | content/common/frame_messages.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698