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

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

Issue 425303002: Move extension notifications to extensions/browser/notification_types.h (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: (extension-notifications) rebase Created 6 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 | 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 <vector> 7 #include <vector>
8 8
9 #include "apps/metrics_names.h" 9 #include "apps/metrics_names.h"
10 #include "base/auto_reset.h" 10 #include "base/auto_reset.h"
(...skipping 236 matching lines...) Expand 10 before | Expand all | Expand 10 after
247 highlight_app_id_ = *content::Details<const std::string>(details).ptr(); 247 highlight_app_id_ = *content::Details<const std::string>(details).ptr();
248 if (has_loaded_apps_) 248 if (has_loaded_apps_)
249 SetAppToBeHighlighted(); 249 SetAppToBeHighlighted();
250 return; 250 return;
251 } 251 }
252 252
253 if (ignore_changes_ || !has_loaded_apps_) 253 if (ignore_changes_ || !has_loaded_apps_)
254 return; 254 return;
255 255
256 switch (type) { 256 switch (type) {
257 case chrome::NOTIFICATION_EXTENSION_LOADED_DEPRECATED: { 257 case extensions::NOTIFICATION_EXTENSION_LOADED_DEPRECATED: {
258 const Extension* extension = 258 const Extension* extension =
259 content::Details<const Extension>(details).ptr(); 259 content::Details<const Extension>(details).ptr();
260 if (!extension->is_app()) 260 if (!extension->is_app())
261 return; 261 return;
262 262
263 if (!extensions::ui_util::ShouldDisplayInNewTabPage( 263 if (!extensions::ui_util::ShouldDisplayInNewTabPage(
264 extension, Profile::FromWebUI(web_ui()))) { 264 extension, Profile::FromWebUI(web_ui()))) {
265 return; 265 return;
266 } 266 }
267 267
268 scoped_ptr<base::DictionaryValue> app_info(GetAppInfo(extension)); 268 scoped_ptr<base::DictionaryValue> app_info(GetAppInfo(extension));
269 if (app_info.get()) { 269 if (app_info.get()) {
270 visible_apps_.insert(extension->id()); 270 visible_apps_.insert(extension->id());
271 271
272 ExtensionPrefs* prefs = 272 ExtensionPrefs* prefs =
273 ExtensionPrefs::Get(extension_service_->profile()); 273 ExtensionPrefs::Get(extension_service_->profile());
274 base::FundamentalValue highlight( 274 base::FundamentalValue highlight(
275 prefs->IsFromBookmark(extension->id()) && 275 prefs->IsFromBookmark(extension->id()) &&
276 attempted_bookmark_app_install_); 276 attempted_bookmark_app_install_);
277 attempted_bookmark_app_install_ = false; 277 attempted_bookmark_app_install_ = false;
278 web_ui()->CallJavascriptFunction("ntp.appAdded", *app_info, highlight); 278 web_ui()->CallJavascriptFunction("ntp.appAdded", *app_info, highlight);
279 } 279 }
280 280
281 break; 281 break;
282 } 282 }
283 case chrome::NOTIFICATION_EXTENSION_UNLOADED_DEPRECATED: 283 case extensions::NOTIFICATION_EXTENSION_UNLOADED_DEPRECATED:
284 case chrome::NOTIFICATION_EXTENSION_UNINSTALLED_DEPRECATED: { 284 case extensions::NOTIFICATION_EXTENSION_UNINSTALLED_DEPRECATED: {
285 const Extension* extension = NULL; 285 const Extension* extension = NULL;
286 bool uninstalled = false; 286 bool uninstalled = false;
287 if (type == chrome::NOTIFICATION_EXTENSION_UNINSTALLED_DEPRECATED) { 287 if (type == extensions::NOTIFICATION_EXTENSION_UNINSTALLED_DEPRECATED) {
288 extension = content::Details<const Extension>(details).ptr(); 288 extension = content::Details<const Extension>(details).ptr();
289 uninstalled = true; 289 uninstalled = true;
290 } else { // NOTIFICATION_EXTENSION_UNLOADED_DEPRECATED 290 } else { // NOTIFICATION_EXTENSION_UNLOADED_DEPRECATED
291 if (content::Details<UnloadedExtensionInfo>(details)->reason == 291 if (content::Details<UnloadedExtensionInfo>(details)->reason ==
292 UnloadedExtensionInfo::REASON_UNINSTALL) { 292 UnloadedExtensionInfo::REASON_UNINSTALL) {
293 // Uninstalls are tracked by 293 // Uninstalls are tracked by
294 // NOTIFICATION_EXTENSION_UNINSTALLED_DEPRECATED. 294 // NOTIFICATION_EXTENSION_UNINSTALLED_DEPRECATED.
295 return; 295 return;
296 } 296 }
297 extension = content::Details<extensions::UnloadedExtensionInfo>( 297 extension = content::Details<extensions::UnloadedExtensionInfo>(
(...skipping 14 matching lines...) Expand all
312 visible_apps_.erase(extension->id()); 312 visible_apps_.erase(extension->id());
313 313
314 web_ui()->CallJavascriptFunction( 314 web_ui()->CallJavascriptFunction(
315 "ntp.appRemoved", 315 "ntp.appRemoved",
316 *app_info, 316 *app_info,
317 base::FundamentalValue(uninstalled), 317 base::FundamentalValue(uninstalled),
318 base::FundamentalValue(!extension_id_prompting_.empty())); 318 base::FundamentalValue(!extension_id_prompting_.empty()));
319 } 319 }
320 break; 320 break;
321 } 321 }
322 case chrome::NOTIFICATION_EXTENSION_LAUNCHER_REORDERED: { 322 case chrome::NOTIFICATION_APP_LAUNCHER_REORDERED: {
323 const std::string* id = 323 const std::string* id =
324 content::Details<const std::string>(details).ptr(); 324 content::Details<const std::string>(details).ptr();
325 if (id) { 325 if (id) {
326 const Extension* extension = 326 const Extension* extension =
327 extension_service_->GetInstalledExtension(*id); 327 extension_service_->GetInstalledExtension(*id);
328 if (!extension) { 328 if (!extension) {
329 // Extension could still be downloading or installing. 329 // Extension could still be downloading or installing.
330 return; 330 return;
331 } 331 }
332 332
333 base::DictionaryValue app_info; 333 base::DictionaryValue app_info;
334 CreateAppInfo(extension, 334 CreateAppInfo(extension,
335 extension_service_, 335 extension_service_,
336 &app_info); 336 &app_info);
337 web_ui()->CallJavascriptFunction("ntp.appMoved", app_info); 337 web_ui()->CallJavascriptFunction("ntp.appMoved", app_info);
338 } else { 338 } else {
339 HandleGetApps(NULL); 339 HandleGetApps(NULL);
340 } 340 }
341 break; 341 break;
342 } 342 }
343 case chrome::NOTIFICATION_EXTENSION_INSTALL_ERROR: { 343 case extensions::NOTIFICATION_EXTENSION_INSTALL_ERROR: {
344 CrxInstaller* crx_installer = content::Source<CrxInstaller>(source).ptr(); 344 CrxInstaller* crx_installer = content::Source<CrxInstaller>(source).ptr();
345 if (!Profile::FromWebUI(web_ui())->IsSameProfile( 345 if (!Profile::FromWebUI(web_ui())->IsSameProfile(
346 crx_installer->profile())) { 346 crx_installer->profile())) {
347 return; 347 return;
348 } 348 }
349 // Fall through. 349 // Fall through.
350 } 350 }
351 case chrome::NOTIFICATION_EXTENSION_LOAD_ERROR: { 351 case extensions::NOTIFICATION_EXTENSION_LOAD_ERROR: {
352 attempted_bookmark_app_install_ = false; 352 attempted_bookmark_app_install_ = false;
353 break; 353 break;
354 } 354 }
355 default: 355 default:
356 NOTREACHED(); 356 NOTREACHED();
357 } 357 }
358 } 358 }
359 359
360 void AppLauncherHandler::FillAppDictionary(base::DictionaryValue* dictionary) { 360 void AppLauncherHandler::FillAppDictionary(base::DictionaryValue* dictionary) {
361 // CreateAppInfo and ClearOrdinals can change the extension prefs. 361 // CreateAppInfo and ClearOrdinals can change the extension prefs.
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
449 base::Closure callback = base::Bind( 449 base::Closure callback = base::Bind(
450 &AppLauncherHandler::OnExtensionPreferenceChanged, 450 &AppLauncherHandler::OnExtensionPreferenceChanged,
451 base::Unretained(this)); 451 base::Unretained(this));
452 extension_pref_change_registrar_.Init( 452 extension_pref_change_registrar_.Init(
453 ExtensionPrefs::Get(profile)->pref_service()); 453 ExtensionPrefs::Get(profile)->pref_service());
454 extension_pref_change_registrar_.Add( 454 extension_pref_change_registrar_.Add(
455 extensions::pref_names::kExtensions, callback); 455 extensions::pref_names::kExtensions, callback);
456 extension_pref_change_registrar_.Add(prefs::kNtpAppPageNames, callback); 456 extension_pref_change_registrar_.Add(prefs::kNtpAppPageNames, callback);
457 457
458 registrar_.Add(this, 458 registrar_.Add(this,
459 chrome::NOTIFICATION_EXTENSION_LOADED_DEPRECATED, 459 extensions::NOTIFICATION_EXTENSION_LOADED_DEPRECATED,
460 content::Source<Profile>(profile));
461 registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_UNLOADED_DEPRECATED,
462 content::Source<Profile>(profile));
463 registrar_.Add(this,
464 chrome::NOTIFICATION_EXTENSION_UNINSTALLED_DEPRECATED,
465 content::Source<Profile>(profile)); 460 content::Source<Profile>(profile));
466 registrar_.Add(this, 461 registrar_.Add(this,
467 chrome::NOTIFICATION_EXTENSION_LAUNCHER_REORDERED, 462 extensions::NOTIFICATION_EXTENSION_UNLOADED_DEPRECATED,
463 content::Source<Profile>(profile));
464 registrar_.Add(this,
465 extensions::NOTIFICATION_EXTENSION_UNINSTALLED_DEPRECATED,
466 content::Source<Profile>(profile));
467 registrar_.Add(this,
468 chrome::NOTIFICATION_APP_LAUNCHER_REORDERED,
468 content::Source<AppSorting>( 469 content::Source<AppSorting>(
469 ExtensionPrefs::Get(profile)->app_sorting())); 470 ExtensionPrefs::Get(profile)->app_sorting()));
470 registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_INSTALL_ERROR, 471 registrar_.Add(this,
471 content::Source<CrxInstaller>(NULL)); 472 extensions::NOTIFICATION_EXTENSION_INSTALL_ERROR,
472 registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_LOAD_ERROR, 473 content::Source<CrxInstaller>(NULL));
473 content::Source<Profile>(profile)); 474 registrar_.Add(this,
475 extensions::NOTIFICATION_EXTENSION_LOAD_ERROR,
476 content::Source<Profile>(profile));
474 } 477 }
475 478
476 has_loaded_apps_ = true; 479 has_loaded_apps_ = true;
477 } 480 }
478 481
479 void AppLauncherHandler::HandleLaunchApp(const base::ListValue* args) { 482 void AppLauncherHandler::HandleLaunchApp(const base::ListValue* args) {
480 std::string extension_id; 483 std::string extension_id;
481 CHECK(args->GetString(0, &extension_id)); 484 CHECK(args->GetString(0, &extension_id));
482 double source = -1.0; 485 double source = -1.0;
483 CHECK(args->GetDouble(1, &source)); 486 CHECK(args->GetDouble(1, &source));
(...skipping 355 matching lines...) Expand 10 before | Expand all | Expand 10 after
839 Browser* browser = chrome::FindBrowserWithWebContents( 842 Browser* browser = chrome::FindBrowserWithWebContents(
840 web_ui()->GetWebContents()); 843 web_ui()->GetWebContents());
841 extension_uninstall_dialog_.reset( 844 extension_uninstall_dialog_.reset(
842 extensions::ExtensionUninstallDialog::Create( 845 extensions::ExtensionUninstallDialog::Create(
843 extension_service_->profile(), 846 extension_service_->profile(),
844 browser->window()->GetNativeWindow(), 847 browser->window()->GetNativeWindow(),
845 this)); 848 this));
846 } 849 }
847 return extension_uninstall_dialog_.get(); 850 return extension_uninstall_dialog_.get();
848 } 851 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/webui/extensions/extension_settings_handler.cc ('k') | chrome/browser/ui/webui/policy_ui.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698