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

Unified Diff: chrome/browser/extensions/extension_dom_ui.cc

Issue 276074: Fix chrome_url_overides to work with packed extensions. (Closed)
Patch Set: review Created 11 years, 2 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
« no previous file with comments | « chrome/browser/extensions/extension_dom_ui.h ('k') | chrome/common/extensions/extension.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/extensions/extension_dom_ui.cc
diff --git a/chrome/browser/extensions/extension_dom_ui.cc b/chrome/browser/extensions/extension_dom_ui.cc
index a3e9ad25eaf598fb85f6b8ad7a29a4193b1b7ff6..3661d6dd6a369d5ce2bb5e5c41c7433c11968694 100644
--- a/chrome/browser/extensions/extension_dom_ui.cc
+++ b/chrome/browser/extensions/extension_dom_ui.cc
@@ -138,8 +138,8 @@ bool ExtensionDOMUI::HandleChromeURLOverride(GURL* url, Profile* profile) {
// static
void ExtensionDOMUI::RegisterChromeURLOverrides(
- Profile* profile, const DictionaryValue* new_overrides) {
- if (!new_overrides)
+ Profile* profile, const Extension::URLOverrideMap& overrides) {
+ if (overrides.empty())
return;
PrefService* prefs = profile->GetPrefs();
@@ -148,19 +148,13 @@ void ExtensionDOMUI::RegisterChromeURLOverrides(
// For each override provided by the extension, add it to the front of
// the override list if it's not already in the list.
- DictionaryValue::key_iterator iter = new_overrides->begin_keys();
- for (;iter != new_overrides->end_keys(); ++iter) {
- Value* val;
- new_overrides->Get(*iter, &val);
- std::string string_val;
- if (!val->GetAsString(&string_val)) {
- NOTREACHED();
- continue;
- }
+ Extension::URLOverrideMap::const_iterator iter = overrides.begin();
+ for (;iter != overrides.end(); ++iter) {
+ const std::wstring key = UTF8ToWide((*iter).first);
ListValue* page_overrides;
- if (!all_overrides->GetList(*iter, &page_overrides)) {
+ if (!all_overrides->GetList(key, &page_overrides)) {
page_overrides = new ListValue();
- all_overrides->Set(*iter, page_overrides);
+ all_overrides->Set(key, page_overrides);
} else {
// Verify that the override isn't already in the list.
ListValue::iterator i = page_overrides->begin();
@@ -170,7 +164,7 @@ void ExtensionDOMUI::RegisterChromeURLOverrides(
NOTREACHED();
continue;
}
- if (override_val == string_val)
+ if (override_val == (*iter).first)
break;
}
// This value is already in the list, leave it alone.
@@ -179,7 +173,7 @@ void ExtensionDOMUI::RegisterChromeURLOverrides(
}
// Insert the override at the front of the list. Last registered override
// wins.
- page_overrides->Insert(0, val->DeepCopy());
+ page_overrides->Insert(0, new StringValue((*iter).second.spec()));
}
}
@@ -226,27 +220,24 @@ void ExtensionDOMUI::UnregisterChromeURLOverride(const std::string& page,
// static
void ExtensionDOMUI::UnregisterChromeURLOverrides(
- Profile* profile, const DictionaryValue* new_overrides) {
- if (!new_overrides)
+ Profile* profile, const Extension::URLOverrideMap& overrides) {
+ if (overrides.empty())
return;
PrefService* prefs = profile->GetPrefs();
DictionaryValue* all_overrides =
prefs->GetMutableDictionary(kExtensionURLOverrides);
- DictionaryValue::key_iterator iter = new_overrides->begin_keys();
- for (; iter != new_overrides->end_keys(); ++iter) {
- Value* val;
- if (!new_overrides->Get(*iter, &val)) {
- NOTREACHED();
- return;
- }
+ Extension::URLOverrideMap::const_iterator iter = overrides.begin();
+ for (;iter != overrides.end(); ++iter) {
+ std::wstring page = UTF8ToWide((*iter).first);
ListValue* page_overrides;
- if (!all_overrides->GetList(*iter, &page_overrides)) {
+ if (!all_overrides->GetList(page, &page_overrides)) {
// If it's being unregistered, it should already be in the list.
NOTREACHED();
continue;
} else {
- UnregisterAndReplaceOverride(WideToUTF8(*iter), profile, page_overrides,
- val);
+ StringValue override((*iter).second.spec());
+ UnregisterAndReplaceOverride((*iter).first, profile,
+ page_overrides, &override);
}
}
}
« no previous file with comments | « chrome/browser/extensions/extension_dom_ui.h ('k') | chrome/common/extensions/extension.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698