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

Side by Side Diff: chrome/browser/extensions/extension_dom_ui.cc

Issue 1940002: Prevent chrome extension URL overrides from applying in incognito mode. (Closed)
Patch Set: Created 10 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/extensions/extension_dom_ui.h" 5 #include "chrome/browser/extensions/extension_dom_ui.h"
6 6
7 #include <set> 7 #include <set>
8 8
9 #include "base/file_path.h" 9 #include "base/file_path.h"
10 #include "base/file_util.h" 10 #include "base/file_util.h"
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after
156 // static 156 // static
157 void ExtensionDOMUI::RegisterUserPrefs(PrefService* prefs) { 157 void ExtensionDOMUI::RegisterUserPrefs(PrefService* prefs) {
158 prefs->RegisterDictionaryPref(kExtensionURLOverrides); 158 prefs->RegisterDictionaryPref(kExtensionURLOverrides);
159 } 159 }
160 160
161 // static 161 // static
162 bool ExtensionDOMUI::HandleChromeURLOverride(GURL* url, Profile* profile) { 162 bool ExtensionDOMUI::HandleChromeURLOverride(GURL* url, Profile* profile) {
163 if (!url->SchemeIs(chrome::kChromeUIScheme)) 163 if (!url->SchemeIs(chrome::kChromeUIScheme))
164 return false; 164 return false;
165 165
166 // Even when the extensions service is enabled by default, it's still 166 // We can't handle chrome-extension URLs in incognito mode.
167 // disabled in incognito mode. 167 if (profile->IsOffTheRecord())
168 ExtensionsService* service = profile->GetExtensionsService();
169 if (!service)
170 return false; 168 return false;
171 169
172 const DictionaryValue* overrides = 170 const DictionaryValue* overrides =
173 profile->GetPrefs()->GetDictionary(kExtensionURLOverrides); 171 profile->GetPrefs()->GetDictionary(kExtensionURLOverrides);
174 std::string page = url->host(); 172 std::string page = url->host();
175 ListValue* url_list; 173 ListValue* url_list;
176 if (!overrides || !overrides->GetList(UTF8ToWide(page), &url_list)) 174 if (!overrides || !overrides->GetList(UTF8ToWide(page), &url_list))
177 return false; 175 return false;
178 176
177 ExtensionsService* service = profile->GetExtensionsService();
179 if (!service->is_ready()) { 178 if (!service->is_ready()) {
180 // TODO(erikkay) So far, it looks like extensions load before the new tab 179 // TODO(erikkay) So far, it looks like extensions load before the new tab
181 // page. I don't know if we have anything that enforces this, so add this 180 // page. I don't know if we have anything that enforces this, so add this
182 // check for safety. 181 // check for safety.
183 NOTREACHED() << "Chrome URL override requested before extensions loaded"; 182 NOTREACHED() << "Chrome URL override requested before extensions loaded";
184 return false; 183 return false;
185 } 184 }
186 185
187 while (url_list->GetSize()) { 186 while (url_list->GetSize()) {
188 Value* val; 187 Value* val;
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after
342 341
343 Extension* extension = service->GetExtensionByURL(page_url); 342 Extension* extension = service->GetExtensionByURL(page_url);
344 if (!extension) 343 if (!extension)
345 return NULL; 344 return NULL;
346 345
347 // TODO(arv): Move this off of the UI thread and onto the File thread. If 346 // TODO(arv): Move this off of the UI thread and onto the File thread. If
348 // possible to do this asynchronously, use ImageLoadingTracker. 347 // possible to do this asynchronously, use ImageLoadingTracker.
349 return ReadFileData(extension->GetIconPath( 348 return ReadFileData(extension->GetIconPath(
350 Extension::EXTENSION_ICON_BITTY).GetFilePathOnAnyThreadHack()); 349 Extension::EXTENSION_ICON_BITTY).GetFilePathOnAnyThreadHack());
351 } 350 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698