OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
43 #include "webkit/glue/window_open_disposition.h" | 43 #include "webkit/glue/window_open_disposition.h" |
44 | 44 |
45 namespace { | 45 namespace { |
46 | 46 |
47 // The URL prefixes used by the NTP to signal when the web store or an app | 47 // The URL prefixes used by the NTP to signal when the web store or an app |
48 // has launched so we can record the proper histogram. | 48 // has launched so we can record the proper histogram. |
49 const char* kPingLaunchAppByID = "record-app-launch-by-id"; | 49 const char* kPingLaunchAppByID = "record-app-launch-by-id"; |
50 const char* kPingLaunchWebStore = "record-webstore-launch"; | 50 const char* kPingLaunchWebStore = "record-webstore-launch"; |
51 const char* kPingLaunchAppByURL = "record-app-launch-by-url"; | 51 const char* kPingLaunchAppByURL = "record-app-launch-by-url"; |
52 | 52 |
53 const char* kChromeWebStoreUrl = "https://chrome.google.com/webstore/"; | |
54 | |
55 const UnescapeRule::Type kUnescapeRules = | 53 const UnescapeRule::Type kUnescapeRules = |
56 UnescapeRule::NORMAL | UnescapeRule::URL_SPECIAL_CHARS; | 54 UnescapeRule::NORMAL | UnescapeRule::URL_SPECIAL_CHARS; |
57 | 55 |
58 extension_misc::AppLaunchBucket ParseLaunchSource( | 56 extension_misc::AppLaunchBucket ParseLaunchSource( |
59 const std::string& launch_source) { | 57 const std::string& launch_source) { |
60 int bucket_num = extension_misc::APP_LAUNCH_BUCKET_INVALID; | 58 int bucket_num = extension_misc::APP_LAUNCH_BUCKET_INVALID; |
61 base::StringToInt(launch_source, &bucket_num); | 59 base::StringToInt(launch_source, &bucket_num); |
62 extension_misc::AppLaunchBucket bucket = | 60 extension_misc::AppLaunchBucket bucket = |
63 static_cast<extension_misc::AppLaunchBucket>(bucket_num); | 61 static_cast<extension_misc::AppLaunchBucket>(bucket_num); |
64 CHECK(bucket < extension_misc::APP_LAUNCH_BUCKET_BOUNDARY); | 62 CHECK(bucket < extension_misc::APP_LAUNCH_BUCKET_BOUNDARY); |
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
224 } | 222 } |
225 | 223 |
226 void AppLauncherHandler::FillAppDictionary(DictionaryValue* dictionary) { | 224 void AppLauncherHandler::FillAppDictionary(DictionaryValue* dictionary) { |
227 ListValue* list = new ListValue(); | 225 ListValue* list = new ListValue(); |
228 const ExtensionList* extensions = extensions_service_->extensions(); | 226 const ExtensionList* extensions = extensions_service_->extensions(); |
229 ExtensionList::const_iterator it; | 227 ExtensionList::const_iterator it; |
230 for (it = extensions->begin(); it != extensions->end(); ++it) { | 228 for (it = extensions->begin(); it != extensions->end(); ++it) { |
231 // Don't include the WebStore. | 229 // Don't include the WebStore. |
232 // The WebStore launcher gets special treatment in ntp/apps.js. | 230 // The WebStore launcher gets special treatment in ntp/apps.js. |
233 if ((*it)->is_app() && | 231 if ((*it)->is_app() && |
234 (*it)->GetFullLaunchURL().spec() != kChromeWebStoreUrl) { | 232 (*it)->id() != extension_misc::kWebStoreAppId) { |
235 DictionaryValue* app_info = new DictionaryValue(); | 233 DictionaryValue* app_info = new DictionaryValue(); |
236 CreateAppInfo(*it, extensions_service_->extension_prefs(), app_info); | 234 CreateAppInfo(*it, extensions_service_->extension_prefs(), app_info); |
237 list->Append(app_info); | 235 list->Append(app_info); |
238 } | 236 } |
239 } | 237 } |
240 | 238 |
241 extensions = extensions_service_->disabled_extensions(); | 239 extensions = extensions_service_->disabled_extensions(); |
242 for (it = extensions->begin(); it != extensions->end(); ++it) { | 240 for (it = extensions->begin(); it != extensions->end(); ++it) { |
243 if ((*it)->is_app() && | 241 if ((*it)->is_app() && |
244 (*it)->GetFullLaunchURL().spec() != kChromeWebStoreUrl) { | 242 (*it)->id() != extension_misc::kWebStoreAppId) { |
245 DictionaryValue* app_info = new DictionaryValue(); | 243 DictionaryValue* app_info = new DictionaryValue(); |
246 CreateAppInfo(*it, extensions_service_->extension_prefs(), app_info); | 244 CreateAppInfo(*it, extensions_service_->extension_prefs(), app_info); |
247 list->Append(app_info); | 245 list->Append(app_info); |
248 } | 246 } |
249 } | 247 } |
250 | 248 |
251 dictionary->Set("apps", list); | 249 dictionary->Set("apps", list); |
252 | 250 |
253 #if defined(OS_MACOSX) | 251 #if defined(OS_MACOSX) |
254 // App windows are not yet implemented on mac. | 252 // App windows are not yet implemented on mac. |
(...skipping 399 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
654 | 652 |
655 void AppLauncherHandler::UninstallDefaultApps() { | 653 void AppLauncherHandler::UninstallDefaultApps() { |
656 AppsPromo* apps_promo = extensions_service_->apps_promo(); | 654 AppsPromo* apps_promo = extensions_service_->apps_promo(); |
657 const ExtensionIdSet& app_ids = apps_promo->old_default_apps(); | 655 const ExtensionIdSet& app_ids = apps_promo->old_default_apps(); |
658 for (ExtensionIdSet::const_iterator iter = app_ids.begin(); | 656 for (ExtensionIdSet::const_iterator iter = app_ids.begin(); |
659 iter != app_ids.end(); ++iter) { | 657 iter != app_ids.end(); ++iter) { |
660 if (extensions_service_->GetExtensionById(*iter, true)) | 658 if (extensions_service_->GetExtensionById(*iter, true)) |
661 extensions_service_->UninstallExtension(*iter, false, NULL); | 659 extensions_service_->UninstallExtension(*iter, false, NULL); |
662 } | 660 } |
663 } | 661 } |
OLD | NEW |