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

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

Issue 12313067: Prevent bindings escalation on an existing NavigationEntry (attempt 3). (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 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
Index: content/browser/web_contents/navigation_entry_impl.cc
diff --git a/content/browser/web_contents/navigation_entry_impl.cc b/content/browser/web_contents/navigation_entry_impl.cc
index 750480c2f1143d9a004ec10d2b56db5a807e7425..dafc2e097f7719b052858b2815e96008dfc4a3c0 100644
--- a/content/browser/web_contents/navigation_entry_impl.cc
+++ b/content/browser/web_contents/navigation_entry_impl.cc
@@ -21,6 +21,8 @@ static int GetUniqueIDInConstructor() {
namespace content {
+int NavigationEntryImpl::kInvalidBindings = -1;
+
NavigationEntry* NavigationEntry::Create() {
return new NavigationEntryImpl();
}
@@ -37,6 +39,7 @@ NavigationEntryImpl* NavigationEntryImpl::FromNavigationEntry(
NavigationEntryImpl::NavigationEntryImpl()
: unique_id_(GetUniqueIDInConstructor()),
site_instance_(NULL),
+ bindings_(kInvalidBindings),
page_type_(PAGE_TYPE_NORMAL),
update_virtual_url_with_url_(false),
page_id_(-1),
@@ -59,6 +62,7 @@ NavigationEntryImpl::NavigationEntryImpl(SiteInstanceImpl* instance,
bool is_renderer_initiated)
: unique_id_(GetUniqueIDInConstructor()),
site_instance_(instance),
+ bindings_(kInvalidBindings),
page_type_(PAGE_TYPE_NORMAL),
url_(url),
referrer_(referrer),
@@ -149,6 +153,13 @@ void NavigationEntryImpl::set_site_instance(SiteInstanceImpl* site_instance) {
site_instance_ = site_instance;
}
+void NavigationEntryImpl::SetBindings(int bindings) {
+ // Ensure this is set to a valid value, and that it stays the same once set.
+ CHECK_NE(bindings, kInvalidBindings);
+ CHECK(bindings_ == kInvalidBindings || bindings_ == bindings);
+ bindings_ = bindings;
+}
+
const string16& NavigationEntryImpl::GetTitleForDisplay(
const std::string& languages) const {
// Most pages have real titles. Don't even bother caching anything if this is
« no previous file with comments | « content/browser/web_contents/navigation_entry_impl.h ('k') | content/browser/web_contents/render_view_host_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698