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

Unified Diff: content/browser/frame_host/navigation_entry_impl.h

Issue 1415603018: OOPIF: Support session restore by combining/splitting frame states. Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Clean up and fix bugs Created 5 years 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: content/browser/frame_host/navigation_entry_impl.h
diff --git a/content/browser/frame_host/navigation_entry_impl.h b/content/browser/frame_host/navigation_entry_impl.h
index 8d97ef39871055859583b4c36a48b7e4d78c0423..b009b70da4c136e17d8c1285dbc9e745ece5aa10 100644
--- a/content/browser/frame_host/navigation_entry_impl.h
+++ b/content/browser/frame_host/navigation_entry_impl.h
@@ -13,6 +13,7 @@
#include "content/browser/frame_host/frame_tree_node.h"
#include "content/browser/site_instance_impl.h"
#include "content/common/frame_message_enums.h"
+#include "content/common/page_state_serialization.h"
#include "content/public/browser/favicon_status.h"
#include "content/public/browser/global_request_id.h"
#include "content/public/browser/navigation_entry.h"
@@ -186,7 +187,7 @@ class CONTENT_EXPORT NavigationEntryImpl
SiteInstanceImpl* site_instance,
const GURL& url,
const Referrer& referrer,
- const PageState& page_state);
+ const ExplodedFrameState& frame_state);
// Returns the FrameNavigationEntry corresponding to |frame_tree_node|, if
// there is one in this NavigationEntry.
@@ -201,6 +202,11 @@ class CONTENT_EXPORT NavigationEntryImpl
FrameNavigationEntry* GetFrameEntryByUniqueName(
const std::string& unique_name) const;
+ // In OOPIF modes, this updates the cached copy of the full PageState whenever
+ // a frame's individual state changes. Keeping a cached copy is necessary to
+ // be able to return a const ref from GetPageState.
+ void UpdatePageState();
+
void set_unique_id(int unique_id) {
unique_id_ = unique_id;
}
@@ -394,6 +400,12 @@ class CONTENT_EXPORT NavigationEntryImpl
base::Time timestamp_;
int http_status_code_;
+ // In default Chrome, this is the PageState reported from the renderer. In
+ // OOPIF modes, this is a cached copy of the PageState generated from the
+ // various FrameNavigationEntry::frame_states. In either case, it is persisted
+ // to support session/tab restore.
+ PageState page_state_;
+
// This member is not persisted with session restore because it is transient.
// If the post request succeeds, this field is cleared since the same
// information is stored in |content_state_| above. It is also only shallow
« no previous file with comments | « content/browser/frame_host/navigation_controller_impl.cc ('k') | content/browser/frame_host/navigation_entry_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698