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

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

Issue 1944013003: Move ownership of source SiteInstance to the FrameNavigationEntry. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Another round of review comments addressed. 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: 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 2e40e67098d6bce721bb60f9a96acc6fbe1c370c..8b5066e3e5dc986eab8195128327c4e715567084 100644
--- a/content/browser/frame_host/navigation_entry_impl.h
+++ b/content/browser/frame_host/navigation_entry_impl.h
@@ -177,7 +177,9 @@ class CONTENT_EXPORT NavigationEntryImpl
// Once a navigation entry is committed, we should no longer track several
// pieces of non-persisted state, as documented on the members below.
- void ResetForCommit();
+ // |frame_entry| is the FrameNavigationEntry for the frame that committed
+ // the navigation. It can be null.
+ void ResetForCommit(FrameNavigationEntry* frame_entry);
// Exposes the tree of FrameNavigationEntries that make up this joint session
// history item.
@@ -194,15 +196,17 @@ class CONTENT_EXPORT NavigationEntryImpl
// NavigationEntries) is updated with the given parameters.
// Does nothing if there is no entry already and |url| is about:blank, since
// that does not count as a real commit.
- void AddOrUpdateFrameEntry(FrameTreeNode* frame_tree_node,
- int64_t item_sequence_number,
- int64_t document_sequence_number,
- SiteInstanceImpl* site_instance,
- const GURL& url,
- const Referrer& referrer,
- const PageState& page_state,
- const std::string& method,
- int64_t post_id);
+ void AddOrUpdateFrameEntry(
+ FrameTreeNode* frame_tree_node,
+ int64_t item_sequence_number,
+ int64_t document_sequence_number,
+ SiteInstanceImpl* site_instance,
+ scoped_refptr<SiteInstanceImpl> source_site_instance,
+ const GURL& url,
+ const Referrer& referrer,
+ const PageState& page_state,
+ const std::string& method,
+ int64_t post_id);
// Returns the FrameNavigationEntry corresponding to |frame_tree_node|, if
// there is one in this NavigationEntry.
@@ -224,10 +228,12 @@ class CONTENT_EXPORT NavigationEntryImpl
}
// The |source_site_instance| is used to identify the SiteInstance of the
- // frame that initiated the navigation.
- void set_source_site_instance(SiteInstanceImpl* source_site_instance);
- SiteInstanceImpl* source_site_instance() const {
- return source_site_instance_.get();
+ // frame that initiated the navigation. It is set on the
+ // FrameNavigationEntry for the main frame.
+ void set_source_site_instance(
+ scoped_refptr<SiteInstanceImpl> source_site_instance) {
+ root_node()->frame_entry->set_source_site_instance(
+ source_site_instance.get());
}
// Remember the set of bindings granted to this NavigationEntry at the time
@@ -418,9 +424,6 @@ class CONTENT_EXPORT NavigationEntryImpl
// This member is not persisted with session restore.
std::string extra_headers_;
- // This member is cleared in |ResetForCommit| and not persisted.
- scoped_refptr<SiteInstanceImpl> source_site_instance_;
-
// Used for specifying base URL for pages loaded via data URLs. Only used and
// persisted by Android WebView.
GURL base_url_for_data_url_;
« 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