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

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

Issue 10837044: Correct const accessors in base/values.(h|cc), Part II (ListValue) (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: David's comments Created 8 years, 4 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) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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_web_ui.h" 5 #include "chrome/browser/extensions/extension_web_ui.h"
6 6
7 #include <set> 7 #include <set>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/string_util.h" 10 #include "base/string_util.h"
(...skipping 214 matching lines...) Expand 10 before | Expand all | Expand 10 after
225 profile->GetPrefs()->GetDictionary(kExtensionURLOverrides); 225 profile->GetPrefs()->GetDictionary(kExtensionURLOverrides);
226 std::string page = url->host(); 226 std::string page = url->host();
227 const ListValue* url_list; 227 const ListValue* url_list;
228 if (!overrides || !overrides->GetList(page, &url_list)) 228 if (!overrides || !overrides->GetList(page, &url_list))
229 return false; 229 return false;
230 230
231 ExtensionService* service = profile->GetExtensionService(); 231 ExtensionService* service = profile->GetExtensionService();
232 232
233 size_t i = 0; 233 size_t i = 0;
234 while (i < url_list->GetSize()) { 234 while (i < url_list->GetSize()) {
235 Value* val = NULL; 235 const Value* val = NULL;
236 url_list->Get(i, &val); 236 url_list->Get(i, &val);
237 237
238 // Verify that the override value is good. If not, unregister it and find 238 // Verify that the override value is good. If not, unregister it and find
239 // the next one. 239 // the next one.
240 std::string override; 240 std::string override;
241 if (!val->GetAsString(&override)) { 241 if (!val->GetAsString(&override)) {
242 NOTREACHED(); 242 NOTREACHED();
243 UnregisterChromeURLOverride(page, profile, val); 243 UnregisterChromeURLOverride(page, profile, val);
244 continue; 244 continue;
245 } 245 }
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
358 // Insert the override at the front of the list. Last registered override 358 // Insert the override at the front of the list. Last registered override
359 // wins. 359 // wins.
360 page_overrides->Insert(0, new StringValue(iter->second.spec())); 360 page_overrides->Insert(0, new StringValue(iter->second.spec()));
361 } 361 }
362 } 362 }
363 363
364 // static 364 // static
365 void ExtensionWebUI::UnregisterAndReplaceOverride(const std::string& page, 365 void ExtensionWebUI::UnregisterAndReplaceOverride(const std::string& page,
366 Profile* profile, 366 Profile* profile,
367 ListValue* list, 367 ListValue* list,
368 Value* override) { 368 const Value* override) {
369 size_t index = 0; 369 size_t index = 0;
370 bool found = list->Remove(*override, &index); 370 bool found = list->Remove(*override, &index);
371 if (found && index == 0) { 371 if (found && index == 0) {
372 // This is the active override, so we need to find all existing 372 // This is the active override, so we need to find all existing
373 // tabs for this override and get them to reload the original URL. 373 // tabs for this override and get them to reload the original URL.
374 base::Callback<void(WebContents*)> callback = 374 base::Callback<void(WebContents*)> callback =
375 base::Bind(&UnregisterAndReplaceOverrideForWebContents, page, profile); 375 base::Bind(&UnregisterAndReplaceOverrideForWebContents, page, profile);
376 ExtensionTabUtil::ForEachTab(callback); 376 ExtensionTabUtil::ForEachTab(callback);
377 } 377 }
378 } 378 }
379 379
380 // static 380 // static
381 void ExtensionWebUI::UnregisterChromeURLOverride(const std::string& page, 381 void ExtensionWebUI::UnregisterChromeURLOverride(const std::string& page,
382 Profile* profile, Value* override) { 382 Profile* profile,
383 const Value* override) {
383 if (!override) 384 if (!override)
384 return; 385 return;
385 PrefService* prefs = profile->GetPrefs(); 386 PrefService* prefs = profile->GetPrefs();
386 DictionaryPrefUpdate update(prefs, kExtensionURLOverrides); 387 DictionaryPrefUpdate update(prefs, kExtensionURLOverrides);
387 DictionaryValue* all_overrides = update.Get(); 388 DictionaryValue* all_overrides = update.Get();
388 ListValue* page_overrides; 389 ListValue* page_overrides;
389 if (!all_overrides->GetList(page, &page_overrides)) { 390 if (!all_overrides->GetList(page, &page_overrides)) {
390 // If it's being unregistered, it should already be in the list. 391 // If it's being unregistered, it should already be in the list.
391 NOTREACHED(); 392 NOTREACHED();
392 return; 393 return;
(...skipping 27 matching lines...) Expand all
420 } 421 }
421 422
422 // static 423 // static
423 void ExtensionWebUI::GetFaviconForURL(Profile* profile, 424 void ExtensionWebUI::GetFaviconForURL(Profile* profile,
424 FaviconService::GetFaviconRequest* request, const GURL& page_url) { 425 FaviconService::GetFaviconRequest* request, const GURL& page_url) {
425 // tracker deletes itself when done. 426 // tracker deletes itself when done.
426 ExtensionWebUIImageLoadingTracker* tracker = 427 ExtensionWebUIImageLoadingTracker* tracker =
427 new ExtensionWebUIImageLoadingTracker(profile, request, page_url); 428 new ExtensionWebUIImageLoadingTracker(profile, request, page_url);
428 tracker->Init(); 429 tracker->Init();
429 } 430 }
OLDNEW
« no previous file with comments | « chrome/browser/extensions/extension_web_ui.h ('k') | chrome/browser/extensions/webstore_inline_installer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698