| 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 da841da04ba9822298635707c3de75a936dd6ed7..593b28c5daa8f02189b2f8d5be1e98e5c94eda96 100644
|
| --- a/content/browser/web_contents/web_contents_impl.cc
|
| +++ b/content/browser/web_contents/web_contents_impl.cc
|
| @@ -4207,8 +4207,9 @@ void WebContentsImpl::DocumentOnLoadCompleted(
|
| NotificationService::NoDetails());
|
| }
|
|
|
| -void WebContentsImpl::UpdateStateForFrame(RenderFrameHost* render_frame_host,
|
| - const PageState& page_state) {
|
| +void WebContentsImpl::UpdateStateForFrame(
|
| + RenderFrameHost* render_frame_host,
|
| + const ExplodedFrameState& frame_state) {
|
| DCHECK(SiteIsolationPolicy::UseSubframeNavigationEntries());
|
|
|
| // The state update affects the last NavigationEntry associated with the given
|
| @@ -4234,10 +4235,14 @@ void WebContentsImpl::UpdateStateForFrame(RenderFrameHost* render_frame_host,
|
| if (frame_entry->site_instance() != rfhi->GetSiteInstance())
|
| return;
|
|
|
| - if (page_state == frame_entry->page_state())
|
| - return; // Nothing to update.
|
| + PageState old_page_state = entry->GetPageState();
|
| +
|
| + frame_entry->set_frame_state(frame_state);
|
| + entry->UpdatePageState();
|
| +
|
| + if (entry->GetPageState() == old_page_state)
|
| + return; // No reason to notify.
|
|
|
| - frame_entry->set_page_state(page_state);
|
| controller_.NotifyEntryChanged(entry);
|
| }
|
|
|
|
|