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

Side by Side Diff: chrome/browser/ui/webui/ntp/app_launcher_handler.cc

Issue 9340007: Make the Chrome Web Store Icon Syncable (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: Removing braces Created 8 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 unified diff | Download patch | Annotate | Revision Log
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/ui/webui/ntp/app_launcher_handler.h" 5 #include "chrome/browser/ui/webui/ntp/app_launcher_handler.h"
6 6
7 #include <string> 7 #include <string>
8 #include <vector> 8 #include <vector>
9 9
10 #include "base/auto_reset.h" 10 #include "base/auto_reset.h"
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
90 DictionaryValue* dictionary = new DictionaryValue(); 90 DictionaryValue* dictionary = new DictionaryValue();
91 dictionary->SetString("title", notification.title()); 91 dictionary->SetString("title", notification.title());
92 dictionary->SetString("body", notification.body()); 92 dictionary->SetString("body", notification.body());
93 if (!notification.link_url().is_empty()) { 93 if (!notification.link_url().is_empty()) {
94 dictionary->SetString("linkUrl", notification.link_url().spec()); 94 dictionary->SetString("linkUrl", notification.link_url().spec());
95 dictionary->SetString("linkText", notification.link_text()); 95 dictionary->SetString("linkText", notification.link_text());
96 } 96 }
97 return dictionary; 97 return dictionary;
98 } 98 }
99 99
100 // static
101 bool AppLauncherHandler::IsAppExcludedFromList(const Extension* extension) {
102 // The Cloud Print app should never be displayed in the NTP.
103 if (!extension->is_app() ||
104 (extension->id() == extension_misc::kCloudPrintAppId)) {
105 return true;
106 }
107 return false;
108 }
109
110 void AppLauncherHandler::CreateAppInfo(const Extension* extension, 100 void AppLauncherHandler::CreateAppInfo(const Extension* extension,
111 const AppNotification* notification, 101 const AppNotification* notification,
112 ExtensionService* service, 102 ExtensionService* service,
113 DictionaryValue* value) { 103 DictionaryValue* value) {
114 bool enabled = service->IsExtensionEnabled(extension->id()) && 104 bool enabled = service->IsExtensionEnabled(extension->id()) &&
115 !service->GetTerminatedExtension(extension->id()); 105 !service->GetTerminatedExtension(extension->id());
116 bool icon_big_exists = true; 106 bool icon_big_exists = true;
117 // Instead of setting grayscale here, we do it in apps_page.js. 107 // Instead of setting grayscale here, we do it in apps_page.js.
118 GURL icon_big = 108 GURL icon_big =
119 ExtensionIconSource::GetIconURL(extension, 109 ExtensionIconSource::GetIconURL(extension,
(...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after
344 334
345 void AppLauncherHandler::FillAppDictionary(DictionaryValue* dictionary) { 335 void AppLauncherHandler::FillAppDictionary(DictionaryValue* dictionary) {
346 // CreateAppInfo and ClearOrdinals can change the extension prefs. 336 // CreateAppInfo and ClearOrdinals can change the extension prefs.
347 AutoReset<bool> auto_reset(&ignore_changes_, true); 337 AutoReset<bool> auto_reset(&ignore_changes_, true);
348 338
349 ListValue* list = new ListValue(); 339 ListValue* list = new ListValue();
350 const ExtensionSet* extensions = extension_service_->extensions(); 340 const ExtensionSet* extensions = extension_service_->extensions();
351 ExtensionSet::const_iterator it; 341 ExtensionSet::const_iterator it;
352 for (it = extensions->begin(); it != extensions->end(); ++it) { 342 for (it = extensions->begin(); it != extensions->end(); ++it) {
353 const Extension* extension = *it; 343 const Extension* extension = *it;
354 if (!IsAppExcludedFromList(extension)) { 344 if (extension->ShouldDisplayInLauncher()) {
355 DictionaryValue* app_info = GetAppInfo(extension); 345 DictionaryValue* app_info = GetAppInfo(extension);
356 list->Append(app_info); 346 list->Append(app_info);
357 } else { 347 } else {
358 // This is necessary because in some previous versions of chrome, we set a 348 // This is necessary because in some previous versions of chrome, we set a
359 // page index for non-app extensions. Old profiles can persist this error, 349 // page index for non-app extensions. Old profiles can persist this error,
360 // and this fixes it. This caused GetNaturalAppPageIndex() to break 350 // and this fixes it. This caused GetNaturalAppPageIndex() to break
361 // (see http://crbug.com/98325) before it was an ordinal value. 351 // (see http://crbug.com/98325) before it was an ordinal value.
362 ExtensionSorting* sortings = 352 ExtensionSorting* sortings =
363 extension_service_->extension_prefs()->extension_sorting(); 353 extension_service_->extension_prefs()->extension_sorting();
364 if (sortings->GetPageOrdinal(extension->id()).IsValid()) 354 if (sortings->GetPageOrdinal(extension->id()).IsValid())
365 sortings->ClearOrdinals(extension->id()); 355 sortings->ClearOrdinals(extension->id());
366 } 356 }
367 } 357 }
368 358
369 extensions = extension_service_->disabled_extensions(); 359 extensions = extension_service_->disabled_extensions();
370 for (it = extensions->begin(); it != extensions->end(); ++it) { 360 for (it = extensions->begin(); it != extensions->end(); ++it) {
371 if (!IsAppExcludedFromList(*it)) { 361 if ((*it)->ShouldDisplayInLauncher()) {
372 DictionaryValue* app_info = new DictionaryValue(); 362 DictionaryValue* app_info = new DictionaryValue();
373 CreateAppInfo(*it, 363 CreateAppInfo(*it,
374 NULL, 364 NULL,
375 extension_service_, 365 extension_service_,
376 app_info); 366 app_info);
377 list->Append(app_info); 367 list->Append(app_info);
378 } 368 }
379 } 369 }
380 370
381 extensions = extension_service_->terminated_extensions(); 371 extensions = extension_service_->terminated_extensions();
382 for (it = extensions->begin(); it != extensions->end(); ++it) { 372 for (it = extensions->begin(); it != extensions->end(); ++it) {
383 if (!IsAppExcludedFromList(*it)) { 373 if ((*it)->ShouldDisplayInLauncher()) {
384 DictionaryValue* app_info = new DictionaryValue(); 374 DictionaryValue* app_info = new DictionaryValue();
385 CreateAppInfo(*it, 375 CreateAppInfo(*it,
386 NULL, 376 NULL,
387 extension_service_, 377 extension_service_,
388 app_info); 378 app_info);
389 list->Append(app_info); 379 list->Append(app_info);
390 } 380 }
391 } 381 }
392 382
393 dictionary->Set("apps", list); 383 dictionary->Set("apps", list);
(...skipping 600 matching lines...) Expand 10 before | Expand all | Expand 10 after
994 984
995 void AppLauncherHandler::UninstallDefaultApps() { 985 void AppLauncherHandler::UninstallDefaultApps() {
996 AppsPromo* apps_promo = extension_service_->apps_promo(); 986 AppsPromo* apps_promo = extension_service_->apps_promo();
997 const ExtensionIdSet& app_ids = apps_promo->old_default_apps(); 987 const ExtensionIdSet& app_ids = apps_promo->old_default_apps();
998 for (ExtensionIdSet::const_iterator iter = app_ids.begin(); 988 for (ExtensionIdSet::const_iterator iter = app_ids.begin();
999 iter != app_ids.end(); ++iter) { 989 iter != app_ids.end(); ++iter) {
1000 if (extension_service_->GetExtensionById(*iter, true)) 990 if (extension_service_->GetExtensionById(*iter, true))
1001 extension_service_->UninstallExtension(*iter, false, NULL); 991 extension_service_->UninstallExtension(*iter, false, NULL);
1002 } 992 }
1003 } 993 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/webui/ntp/app_launcher_handler.h ('k') | chrome/common/extensions/extension.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698