| OLD | NEW |
| 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/dom_ui/app_launcher_handler.h" | 5 #include "chrome/browser/dom_ui/app_launcher_handler.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 #include <vector> | 8 #include <vector> |
| 9 | 9 |
| 10 #include "base/metrics/histogram.h" | 10 #include "base/metrics/histogram.h" |
| (...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 150 dom_ui_->RegisterMessageCallback("launchApp", | 150 dom_ui_->RegisterMessageCallback("launchApp", |
| 151 NewCallback(this, &AppLauncherHandler::HandleLaunchApp)); | 151 NewCallback(this, &AppLauncherHandler::HandleLaunchApp)); |
| 152 dom_ui_->RegisterMessageCallback("setLaunchType", | 152 dom_ui_->RegisterMessageCallback("setLaunchType", |
| 153 NewCallback(this, &AppLauncherHandler::HandleSetLaunchType)); | 153 NewCallback(this, &AppLauncherHandler::HandleSetLaunchType)); |
| 154 dom_ui_->RegisterMessageCallback("uninstallApp", | 154 dom_ui_->RegisterMessageCallback("uninstallApp", |
| 155 NewCallback(this, &AppLauncherHandler::HandleUninstallApp)); | 155 NewCallback(this, &AppLauncherHandler::HandleUninstallApp)); |
| 156 dom_ui_->RegisterMessageCallback("hideAppsPromo", | 156 dom_ui_->RegisterMessageCallback("hideAppsPromo", |
| 157 NewCallback(this, &AppLauncherHandler::HandleHideAppsPromo)); | 157 NewCallback(this, &AppLauncherHandler::HandleHideAppsPromo)); |
| 158 dom_ui_->RegisterMessageCallback("createAppShortcut", | 158 dom_ui_->RegisterMessageCallback("createAppShortcut", |
| 159 NewCallback(this, &AppLauncherHandler::HandleCreateAppShortcut)); | 159 NewCallback(this, &AppLauncherHandler::HandleCreateAppShortcut)); |
| 160 dom_ui_->RegisterMessageCallback("reorderApps", |
| 161 NewCallback(this, &AppLauncherHandler::HandleReorderApps)); |
| 160 } | 162 } |
| 161 | 163 |
| 162 void AppLauncherHandler::Observe(NotificationType type, | 164 void AppLauncherHandler::Observe(NotificationType type, |
| 163 const NotificationSource& source, | 165 const NotificationSource& source, |
| 164 const NotificationDetails& details) { | 166 const NotificationDetails& details) { |
| 165 if (ignore_changes_) | 167 if (ignore_changes_) |
| 166 return; | 168 return; |
| 167 | 169 |
| 168 switch (type.value) { | 170 switch (type.value) { |
| 169 case NotificationType::EXTENSION_LOADED: | 171 case NotificationType::EXTENSION_LOADED: |
| 170 case NotificationType::EXTENSION_UNLOADED: | 172 case NotificationType::EXTENSION_UNLOADED: |
| 173 case NotificationType::EXTENSION_LAUNCHER_REORDERED: |
| 171 if (dom_ui_->tab_contents()) | 174 if (dom_ui_->tab_contents()) |
| 172 HandleGetApps(NULL); | 175 HandleGetApps(NULL); |
| 173 break; | 176 break; |
| 174 case NotificationType::PREF_CHANGED: { | 177 case NotificationType::PREF_CHANGED: { |
| 175 if (!dom_ui_->tab_contents()) | 178 if (!dom_ui_->tab_contents()) |
| 176 break; | 179 break; |
| 177 | 180 |
| 178 DictionaryValue dictionary; | 181 DictionaryValue dictionary; |
| 179 FillAppDictionary(&dictionary); | 182 FillAppDictionary(&dictionary); |
| 180 dom_ui_->CallJavascriptFunction(L"appsPrefChangeCallback", dictionary); | 183 dom_ui_->CallJavascriptFunction(L"appsPrefChangeCallback", dictionary); |
| (...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 250 FillAppDictionary(&dictionary); | 253 FillAppDictionary(&dictionary); |
| 251 dom_ui_->CallJavascriptFunction(L"getAppsCallback", dictionary); | 254 dom_ui_->CallJavascriptFunction(L"getAppsCallback", dictionary); |
| 252 | 255 |
| 253 // First time we get here we set up the observer so that we can tell update | 256 // First time we get here we set up the observer so that we can tell update |
| 254 // the apps as they change. | 257 // the apps as they change. |
| 255 if (registrar_.IsEmpty()) { | 258 if (registrar_.IsEmpty()) { |
| 256 registrar_.Add(this, NotificationType::EXTENSION_LOADED, | 259 registrar_.Add(this, NotificationType::EXTENSION_LOADED, |
| 257 NotificationService::AllSources()); | 260 NotificationService::AllSources()); |
| 258 registrar_.Add(this, NotificationType::EXTENSION_UNLOADED, | 261 registrar_.Add(this, NotificationType::EXTENSION_UNLOADED, |
| 259 NotificationService::AllSources()); | 262 NotificationService::AllSources()); |
| 263 registrar_.Add(this, NotificationType::EXTENSION_LAUNCHER_REORDERED, |
| 264 NotificationService::AllSources()); |
| 260 } | 265 } |
| 261 if (pref_change_registrar_.IsEmpty()) { | 266 if (pref_change_registrar_.IsEmpty()) { |
| 262 pref_change_registrar_.Init( | 267 pref_change_registrar_.Init( |
| 263 extensions_service_->extension_prefs()->pref_service()); | 268 extensions_service_->extension_prefs()->pref_service()); |
| 264 pref_change_registrar_.Add(ExtensionPrefs::kExtensionsPref, this); | 269 pref_change_registrar_.Add(ExtensionPrefs::kExtensionsPref, this); |
| 265 } | 270 } |
| 266 } | 271 } |
| 267 | 272 |
| 268 void AppLauncherHandler::HandleLaunchApp(const ListValue* args) { | 273 void AppLauncherHandler::HandleLaunchApp(const ListValue* args) { |
| 269 std::string extension_id; | 274 std::string extension_id; |
| (...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 380 extensions_service_->GetExtensionById(extension_id, false); | 385 extensions_service_->GetExtensionById(extension_id, false); |
| 381 CHECK(extension); | 386 CHECK(extension); |
| 382 | 387 |
| 383 Browser* browser = BrowserList::GetLastActive(); | 388 Browser* browser = BrowserList::GetLastActive(); |
| 384 if (!browser) | 389 if (!browser) |
| 385 return; | 390 return; |
| 386 browser->window()->ShowCreateChromeAppShortcutsDialog( | 391 browser->window()->ShowCreateChromeAppShortcutsDialog( |
| 387 browser->profile(), extension); | 392 browser->profile(), extension); |
| 388 } | 393 } |
| 389 | 394 |
| 395 void AppLauncherHandler::HandleReorderApps(const ListValue* args) { |
| 396 std::vector<std::string> extension_ids; |
| 397 for (size_t i = 0; i < args->GetSize(); ++i) { |
| 398 std::string value; |
| 399 if (args->GetString(i, &value)) |
| 400 extension_ids.push_back(value); |
| 401 } |
| 402 |
| 403 extensions_service_->extension_prefs()->SetAppLauncherOrder(extension_ids); |
| 404 } |
| 405 |
| 390 // static | 406 // static |
| 391 void AppLauncherHandler::RecordWebStoreLaunch(bool promo_active) { | 407 void AppLauncherHandler::RecordWebStoreLaunch(bool promo_active) { |
| 392 if (!promo_active) return; | 408 if (!promo_active) return; |
| 393 | 409 |
| 394 UMA_HISTOGRAM_ENUMERATION(extension_misc::kAppsPromoHistogram, | 410 UMA_HISTOGRAM_ENUMERATION(extension_misc::kAppsPromoHistogram, |
| 395 extension_misc::PROMO_LAUNCH_WEB_STORE, | 411 extension_misc::PROMO_LAUNCH_WEB_STORE, |
| 396 extension_misc::PROMO_BUCKET_BOUNDARY); | 412 extension_misc::PROMO_BUCKET_BOUNDARY); |
| 397 } | 413 } |
| 398 | 414 |
| 399 // static | 415 // static |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 448 | 464 |
| 449 void AppLauncherHandler::UninstallDefaultApps() { | 465 void AppLauncherHandler::UninstallDefaultApps() { |
| 450 DefaultApps* default_apps = extensions_service_->default_apps(); | 466 DefaultApps* default_apps = extensions_service_->default_apps(); |
| 451 const ExtensionIdSet& app_ids = default_apps->default_apps(); | 467 const ExtensionIdSet& app_ids = default_apps->default_apps(); |
| 452 for (ExtensionIdSet::const_iterator iter = app_ids.begin(); | 468 for (ExtensionIdSet::const_iterator iter = app_ids.begin(); |
| 453 iter != app_ids.end(); ++iter) { | 469 iter != app_ids.end(); ++iter) { |
| 454 if (extensions_service_->GetExtensionById(*iter, true)) | 470 if (extensions_service_->GetExtensionById(*iter, true)) |
| 455 extensions_service_->UninstallExtension(*iter, false); | 471 extensions_service_->UninstallExtension(*iter, false); |
| 456 } | 472 } |
| 457 } | 473 } |
| OLD | NEW |