OLD | NEW |
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 141 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
152 GURL icon_small = extensions::ExtensionIconSource::GetIconURL( | 152 GURL icon_small = extensions::ExtensionIconSource::GetIconURL( |
153 extension, | 153 extension, |
154 extension_misc::EXTENSION_ICON_BITTY, | 154 extension_misc::EXTENSION_ICON_BITTY, |
155 ExtensionIconSet::MATCH_BIGGER, | 155 ExtensionIconSet::MATCH_BIGGER, |
156 false, | 156 false, |
157 &icon_small_exists); | 157 &icon_small_exists); |
158 value->SetString("icon_small", icon_small.spec()); | 158 value->SetString("icon_small", icon_small.spec()); |
159 value->SetBoolean("icon_small_exists", icon_small_exists); | 159 value->SetBoolean("icon_small_exists", icon_small_exists); |
160 value->SetInteger("launch_container", | 160 value->SetInteger("launch_container", |
161 extensions::AppLaunchInfo::GetLaunchContainer(extension)); | 161 extensions::AppLaunchInfo::GetLaunchContainer(extension)); |
162 ExtensionPrefs* prefs = service->extension_prefs(); | 162 ExtensionPrefs* prefs = ExtensionPrefs::Get(service->profile()); |
163 value->SetInteger("launch_type", extensions::GetLaunchType(prefs, extension)); | 163 value->SetInteger("launch_type", extensions::GetLaunchType(prefs, extension)); |
164 value->SetBoolean("is_component", | 164 value->SetBoolean("is_component", |
165 extension->location() == extensions::Manifest::COMPONENT); | 165 extension->location() == extensions::Manifest::COMPONENT); |
166 value->SetBoolean("is_webstore", | 166 value->SetBoolean("is_webstore", |
167 extension->id() == extension_misc::kWebStoreAppId); | 167 extension->id() == extension_misc::kWebStoreAppId); |
168 | 168 |
169 AppSorting* sorting = prefs->app_sorting(); | 169 AppSorting* sorting = prefs->app_sorting(); |
170 syncer::StringOrdinal page_ordinal = sorting->GetPageOrdinal(extension->id()); | 170 syncer::StringOrdinal page_ordinal = sorting->GetPageOrdinal(extension->id()); |
171 if (!page_ordinal.IsValid()) { | 171 if (!page_ordinal.IsValid()) { |
172 // Make sure every app has a page ordinal (some predate the page ordinal). | 172 // Make sure every app has a page ordinal (some predate the page ordinal). |
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
264 return; | 264 return; |
265 | 265 |
266 PrefService* prefs = Profile::FromWebUI(web_ui())->GetPrefs(); | 266 PrefService* prefs = Profile::FromWebUI(web_ui())->GetPrefs(); |
267 if (!ShouldDisplayInNewTabPage(extension, prefs)) | 267 if (!ShouldDisplayInNewTabPage(extension, prefs)) |
268 return; | 268 return; |
269 | 269 |
270 scoped_ptr<base::DictionaryValue> app_info(GetAppInfo(extension)); | 270 scoped_ptr<base::DictionaryValue> app_info(GetAppInfo(extension)); |
271 if (app_info.get()) { | 271 if (app_info.get()) { |
272 visible_apps_.insert(extension->id()); | 272 visible_apps_.insert(extension->id()); |
273 | 273 |
274 ExtensionPrefs* prefs = extension_service_->extension_prefs(); | 274 ExtensionPrefs* prefs = |
| 275 ExtensionPrefs::Get(extension_service_->profile()); |
275 scoped_ptr<base::FundamentalValue> highlight( | 276 scoped_ptr<base::FundamentalValue> highlight( |
276 base::Value::CreateBooleanValue( | 277 base::Value::CreateBooleanValue( |
277 prefs->IsFromBookmark(extension->id()) && | 278 prefs->IsFromBookmark(extension->id()) && |
278 attempted_bookmark_app_install_)); | 279 attempted_bookmark_app_install_)); |
279 attempted_bookmark_app_install_ = false; | 280 attempted_bookmark_app_install_ = false; |
280 web_ui()->CallJavascriptFunction( | 281 web_ui()->CallJavascriptFunction( |
281 "ntp.appAdded", *app_info, *highlight); | 282 "ntp.appAdded", *app_info, *highlight); |
282 } | 283 } |
283 | 284 |
284 break; | 285 break; |
(...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
457 FillAppDictionary(&dictionary); | 458 FillAppDictionary(&dictionary); |
458 web_ui()->CallJavascriptFunction("ntp.getAppsCallback", dictionary); | 459 web_ui()->CallJavascriptFunction("ntp.getAppsCallback", dictionary); |
459 | 460 |
460 // First time we get here we set up the observer so that we can tell update | 461 // First time we get here we set up the observer so that we can tell update |
461 // the apps as they change. | 462 // the apps as they change. |
462 if (!has_loaded_apps_) { | 463 if (!has_loaded_apps_) { |
463 base::Closure callback = base::Bind( | 464 base::Closure callback = base::Bind( |
464 &AppLauncherHandler::OnExtensionPreferenceChanged, | 465 &AppLauncherHandler::OnExtensionPreferenceChanged, |
465 base::Unretained(this)); | 466 base::Unretained(this)); |
466 extension_pref_change_registrar_.Init( | 467 extension_pref_change_registrar_.Init( |
467 extension_service_->extension_prefs()->pref_service()); | 468 ExtensionPrefs::Get(profile)->pref_service()); |
468 extension_pref_change_registrar_.Add( | 469 extension_pref_change_registrar_.Add( |
469 extensions::pref_names::kExtensions, callback); | 470 extensions::pref_names::kExtensions, callback); |
470 extension_pref_change_registrar_.Add(prefs::kNtpAppPageNames, callback); | 471 extension_pref_change_registrar_.Add(prefs::kNtpAppPageNames, callback); |
471 | 472 |
472 registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_LOADED, | 473 registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_LOADED, |
473 content::Source<Profile>(profile)); | 474 content::Source<Profile>(profile)); |
474 registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_UNLOADED, | 475 registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_UNLOADED, |
475 content::Source<Profile>(profile)); | 476 content::Source<Profile>(profile)); |
476 registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_UNINSTALLED, | 477 registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_UNINSTALLED, |
477 content::Source<Profile>(profile)); | 478 content::Source<Profile>(profile)); |
478 registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_LAUNCHER_REORDERED, | 479 registrar_.Add(this, |
479 content::Source<AppSorting>( | 480 chrome::NOTIFICATION_EXTENSION_LAUNCHER_REORDERED, |
480 extension_service_->extension_prefs()->app_sorting())); | 481 content::Source<AppSorting>( |
| 482 ExtensionPrefs::Get(profile)->app_sorting())); |
481 registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_INSTALL_ERROR, | 483 registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_INSTALL_ERROR, |
482 content::Source<CrxInstaller>(NULL)); | 484 content::Source<CrxInstaller>(NULL)); |
483 registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_LOAD_ERROR, | 485 registrar_.Add(this, chrome::NOTIFICATION_EXTENSION_LOAD_ERROR, |
484 content::Source<Profile>(profile)); | 486 content::Source<Profile>(profile)); |
485 } | 487 } |
486 | 488 |
487 has_loaded_apps_ = true; | 489 has_loaded_apps_ = true; |
488 } | 490 } |
489 | 491 |
490 void AppLauncherHandler::HandleLaunchApp(const base::ListValue* args) { | 492 void AppLauncherHandler::HandleLaunchApp(const base::ListValue* args) { |
(...skipping 145 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
636 if (i > 0) | 638 if (i > 0) |
637 CHECK(app_order->GetString(i - 1, &predecessor_to_moved_ext)); | 639 CHECK(app_order->GetString(i - 1, &predecessor_to_moved_ext)); |
638 if (i + 1 < app_order->GetSize()) | 640 if (i + 1 < app_order->GetSize()) |
639 CHECK(app_order->GetString(i + 1, &successor_to_moved_ext)); | 641 CHECK(app_order->GetString(i + 1, &successor_to_moved_ext)); |
640 break; | 642 break; |
641 } | 643 } |
642 } | 644 } |
643 | 645 |
644 // Don't update the page; it already knows the apps have been reordered. | 646 // Don't update the page; it already knows the apps have been reordered. |
645 base::AutoReset<bool> auto_reset(&ignore_changes_, true); | 647 base::AutoReset<bool> auto_reset(&ignore_changes_, true); |
646 extension_service_->extension_prefs()->SetAppDraggedByUser(dragged_app_id); | 648 ExtensionPrefs::Get(extension_service_->profile()) |
| 649 ->SetAppDraggedByUser(dragged_app_id); |
647 extension_service_->OnExtensionMoved(dragged_app_id, | 650 extension_service_->OnExtensionMoved(dragged_app_id, |
648 predecessor_to_moved_ext, | 651 predecessor_to_moved_ext, |
649 successor_to_moved_ext); | 652 successor_to_moved_ext); |
650 } | 653 } |
651 | 654 |
652 void AppLauncherHandler::HandleSetPageIndex(const base::ListValue* args) { | 655 void AppLauncherHandler::HandleSetPageIndex(const base::ListValue* args) { |
653 AppSorting* app_sorting = | 656 AppSorting* app_sorting = |
654 extension_service_->extension_prefs()->app_sorting(); | 657 ExtensionPrefs::Get(extension_service_->profile())->app_sorting(); |
655 | 658 |
656 std::string extension_id; | 659 std::string extension_id; |
657 double page_index; | 660 double page_index; |
658 CHECK(args->GetString(0, &extension_id)); | 661 CHECK(args->GetString(0, &extension_id)); |
659 CHECK(args->GetDouble(1, &page_index)); | 662 CHECK(args->GetDouble(1, &page_index)); |
660 const syncer::StringOrdinal& page_ordinal = | 663 const syncer::StringOrdinal& page_ordinal = |
661 app_sorting->PageIntegerAsStringOrdinal(static_cast<size_t>(page_index)); | 664 app_sorting->PageIntegerAsStringOrdinal(static_cast<size_t>(page_index)); |
662 | 665 |
663 // Don't update the page; it already knows the apps have been reordered. | 666 // Don't update the page; it already knows the apps have been reordered. |
664 base::AutoReset<bool> auto_reset(&ignore_changes_, true); | 667 base::AutoReset<bool> auto_reset(&ignore_changes_, true); |
(...skipping 18 matching lines...) Expand all Loading... |
683 std::string url; | 686 std::string url; |
684 CHECK(args->GetString(0, &url)); | 687 CHECK(args->GetString(0, &url)); |
685 GURL launch_url(url); | 688 GURL launch_url(url); |
686 | 689 |
687 base::string16 title; | 690 base::string16 title; |
688 CHECK(args->GetString(1, &title)); | 691 CHECK(args->GetString(1, &title)); |
689 | 692 |
690 double page_index; | 693 double page_index; |
691 CHECK(args->GetDouble(2, &page_index)); | 694 CHECK(args->GetDouble(2, &page_index)); |
692 AppSorting* app_sorting = | 695 AppSorting* app_sorting = |
693 extension_service_->extension_prefs()->app_sorting(); | 696 ExtensionPrefs::Get(extension_service_->profile())->app_sorting(); |
694 const syncer::StringOrdinal& page_ordinal = | 697 const syncer::StringOrdinal& page_ordinal = |
695 app_sorting->PageIntegerAsStringOrdinal(static_cast<size_t>(page_index)); | 698 app_sorting->PageIntegerAsStringOrdinal(static_cast<size_t>(page_index)); |
696 | 699 |
697 Profile* profile = Profile::FromWebUI(web_ui()); | 700 Profile* profile = Profile::FromWebUI(web_ui()); |
698 FaviconService* favicon_service = | 701 FaviconService* favicon_service = |
699 FaviconServiceFactory::GetForProfile(profile, Profile::EXPLICIT_ACCESS); | 702 FaviconServiceFactory::GetForProfile(profile, Profile::EXPLICIT_ACCESS); |
700 if (!favicon_service) { | 703 if (!favicon_service) { |
701 LOG(ERROR) << "No favicon service"; | 704 LOG(ERROR) << "No favicon service"; |
702 return; | 705 return; |
703 } | 706 } |
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
845 ExtensionUninstallDialog* AppLauncherHandler::GetExtensionUninstallDialog() { | 848 ExtensionUninstallDialog* AppLauncherHandler::GetExtensionUninstallDialog() { |
846 if (!extension_uninstall_dialog_.get()) { | 849 if (!extension_uninstall_dialog_.get()) { |
847 Browser* browser = chrome::FindBrowserWithWebContents( | 850 Browser* browser = chrome::FindBrowserWithWebContents( |
848 web_ui()->GetWebContents()); | 851 web_ui()->GetWebContents()); |
849 extension_uninstall_dialog_.reset( | 852 extension_uninstall_dialog_.reset( |
850 ExtensionUninstallDialog::Create(extension_service_->profile(), | 853 ExtensionUninstallDialog::Create(extension_service_->profile(), |
851 browser, this)); | 854 browser, this)); |
852 } | 855 } |
853 return extension_uninstall_dialog_.get(); | 856 return extension_uninstall_dialog_.get(); |
854 } | 857 } |
OLD | NEW |