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

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

Issue 12210048: Prevent bindings escalation on an existing NavigationEntry (attempt 2). (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 44dc6e593f4ebda5fcc5c3ad625f2cb1ffb591f6..ec78d07fbf93a8eb72e6380486fd309225453f52 100644
--- a/content/browser/web_contents/navigation_entry_impl.cc
+++ b/content/browser/web_contents/navigation_entry_impl.cc
@@ -20,6 +20,8 @@ static int GetUniqueIDInConstructor() {
namespace content {
+int NavigationEntryImpl::kInvalidBindings = -1;
+
NavigationEntry* NavigationEntry::Create() {
return new NavigationEntryImpl();
}
@@ -36,6 +38,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),
@@ -58,6 +61,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),
@@ -148,6 +152,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

Powered by Google App Engine
This is Rietveld 408576698