| 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 <stddef.h> | 7 #include <stddef.h> |
| 8 | 8 |
| 9 #include <vector> | 9 #include <vector> |
| 10 | 10 |
| (...skipping 321 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 332 NOTREACHED(); | 332 NOTREACHED(); |
| 333 } | 333 } |
| 334 } | 334 } |
| 335 | 335 |
| 336 void AppLauncherHandler::OnExtensionLoaded( | 336 void AppLauncherHandler::OnExtensionLoaded( |
| 337 content::BrowserContext* browser_context, | 337 content::BrowserContext* browser_context, |
| 338 const Extension* extension) { | 338 const Extension* extension) { |
| 339 if (!ShouldShow(extension)) | 339 if (!ShouldShow(extension)) |
| 340 return; | 340 return; |
| 341 | 341 |
| 342 scoped_ptr<base::DictionaryValue> app_info(GetAppInfo(extension)); | 342 std::unique_ptr<base::DictionaryValue> app_info(GetAppInfo(extension)); |
| 343 if (!app_info.get()) | 343 if (!app_info.get()) |
| 344 return; | 344 return; |
| 345 | 345 |
| 346 visible_apps_.insert(extension->id()); | 346 visible_apps_.insert(extension->id()); |
| 347 ExtensionPrefs* prefs = ExtensionPrefs::Get(extension_service_->profile()); | 347 ExtensionPrefs* prefs = ExtensionPrefs::Get(extension_service_->profile()); |
| 348 base::FundamentalValue highlight(prefs->IsFromBookmark(extension->id()) && | 348 base::FundamentalValue highlight(prefs->IsFromBookmark(extension->id()) && |
| 349 attempted_bookmark_app_install_); | 349 attempted_bookmark_app_install_); |
| 350 attempted_bookmark_app_install_ = false; | 350 attempted_bookmark_app_install_ = false; |
| 351 web_ui()->CallJavascriptFunction("ntp.appAdded", *app_info, highlight); | 351 web_ui()->CallJavascriptFunction("ntp.appAdded", *app_info, highlight); |
| 352 } | 352 } |
| (...skipping 359 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 712 | 712 |
| 713 Profile* profile = Profile::FromWebUI(web_ui()); | 713 Profile* profile = Profile::FromWebUI(web_ui()); |
| 714 favicon::FaviconService* favicon_service = | 714 favicon::FaviconService* favicon_service = |
| 715 FaviconServiceFactory::GetForProfile(profile, | 715 FaviconServiceFactory::GetForProfile(profile, |
| 716 ServiceAccessType::EXPLICIT_ACCESS); | 716 ServiceAccessType::EXPLICIT_ACCESS); |
| 717 if (!favicon_service) { | 717 if (!favicon_service) { |
| 718 LOG(ERROR) << "No favicon service"; | 718 LOG(ERROR) << "No favicon service"; |
| 719 return; | 719 return; |
| 720 } | 720 } |
| 721 | 721 |
| 722 scoped_ptr<AppInstallInfo> install_info(new AppInstallInfo()); | 722 std::unique_ptr<AppInstallInfo> install_info(new AppInstallInfo()); |
| 723 install_info->title = title; | 723 install_info->title = title; |
| 724 install_info->app_url = launch_url; | 724 install_info->app_url = launch_url; |
| 725 install_info->page_ordinal = page_ordinal; | 725 install_info->page_ordinal = page_ordinal; |
| 726 | 726 |
| 727 favicon_service->GetFaviconImageForPageURL( | 727 favicon_service->GetFaviconImageForPageURL( |
| 728 launch_url, | 728 launch_url, |
| 729 base::Bind(&AppLauncherHandler::OnFaviconForApp, | 729 base::Bind(&AppLauncherHandler::OnFaviconForApp, |
| 730 base::Unretained(this), | 730 base::Unretained(this), |
| 731 base::Passed(&install_info)), | 731 base::Passed(&install_info)), |
| 732 &cancelable_task_tracker_); | 732 &cancelable_task_tracker_); |
| (...skipping 15 matching lines...) Expand all Loading... |
| 748 void AppLauncherHandler::HandlePageSelected(const base::ListValue* args) { | 748 void AppLauncherHandler::HandlePageSelected(const base::ListValue* args) { |
| 749 double index_double; | 749 double index_double; |
| 750 CHECK(args->GetDouble(0, &index_double)); | 750 CHECK(args->GetDouble(0, &index_double)); |
| 751 int index = static_cast<int>(index_double); | 751 int index = static_cast<int>(index_double); |
| 752 | 752 |
| 753 PrefService* prefs = Profile::FromWebUI(web_ui())->GetPrefs(); | 753 PrefService* prefs = Profile::FromWebUI(web_ui())->GetPrefs(); |
| 754 prefs->SetInteger(prefs::kNtpShownPage, APPS_PAGE_ID | index); | 754 prefs->SetInteger(prefs::kNtpShownPage, APPS_PAGE_ID | index); |
| 755 } | 755 } |
| 756 | 756 |
| 757 void AppLauncherHandler::OnFaviconForApp( | 757 void AppLauncherHandler::OnFaviconForApp( |
| 758 scoped_ptr<AppInstallInfo> install_info, | 758 std::unique_ptr<AppInstallInfo> install_info, |
| 759 const favicon_base::FaviconImageResult& image_result) { | 759 const favicon_base::FaviconImageResult& image_result) { |
| 760 scoped_ptr<WebApplicationInfo> web_app(new WebApplicationInfo()); | 760 std::unique_ptr<WebApplicationInfo> web_app(new WebApplicationInfo()); |
| 761 web_app->title = install_info->title; | 761 web_app->title = install_info->title; |
| 762 web_app->app_url = install_info->app_url; | 762 web_app->app_url = install_info->app_url; |
| 763 | 763 |
| 764 if (!image_result.image.IsEmpty()) { | 764 if (!image_result.image.IsEmpty()) { |
| 765 WebApplicationInfo::IconInfo icon; | 765 WebApplicationInfo::IconInfo icon; |
| 766 icon.data = image_result.image.AsBitmap(); | 766 icon.data = image_result.image.AsBitmap(); |
| 767 icon.width = icon.data.width(); | 767 icon.width = icon.data.width(); |
| 768 icon.height = icon.data.height(); | 768 icon.height = icon.data.height(); |
| 769 web_app->icons.push_back(icon); | 769 web_app->icons.push_back(icon); |
| 770 } | 770 } |
| (...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 863 this)); | 863 this)); |
| 864 } | 864 } |
| 865 return extension_uninstall_dialog_.get(); | 865 return extension_uninstall_dialog_.get(); |
| 866 } | 866 } |
| 867 | 867 |
| 868 void AppLauncherHandler::AppRemoved(const Extension* extension, | 868 void AppLauncherHandler::AppRemoved(const Extension* extension, |
| 869 bool is_uninstall) { | 869 bool is_uninstall) { |
| 870 if (!ShouldShow(extension)) | 870 if (!ShouldShow(extension)) |
| 871 return; | 871 return; |
| 872 | 872 |
| 873 scoped_ptr<base::DictionaryValue> app_info(GetAppInfo(extension)); | 873 std::unique_ptr<base::DictionaryValue> app_info(GetAppInfo(extension)); |
| 874 if (!app_info.get()) | 874 if (!app_info.get()) |
| 875 return; | 875 return; |
| 876 | 876 |
| 877 web_ui()->CallJavascriptFunction( | 877 web_ui()->CallJavascriptFunction( |
| 878 "ntp.appRemoved", *app_info, base::FundamentalValue(is_uninstall), | 878 "ntp.appRemoved", *app_info, base::FundamentalValue(is_uninstall), |
| 879 base::FundamentalValue(!extension_id_prompting_.empty())); | 879 base::FundamentalValue(!extension_id_prompting_.empty())); |
| 880 } | 880 } |
| 881 | 881 |
| 882 bool AppLauncherHandler::ShouldShow(const Extension* extension) const { | 882 bool AppLauncherHandler::ShouldShow(const Extension* extension) const { |
| 883 if (ignore_changes_ || !has_loaded_apps_ || !extension->is_app()) | 883 if (ignore_changes_ || !has_loaded_apps_ || !extension->is_app()) |
| 884 return false; | 884 return false; |
| 885 | 885 |
| 886 Profile* profile = Profile::FromWebUI(web_ui()); | 886 Profile* profile = Profile::FromWebUI(web_ui()); |
| 887 return extensions::ui_util::ShouldDisplayInNewTabPage(extension, profile); | 887 return extensions::ui_util::ShouldDisplayInNewTabPage(extension, profile); |
| 888 } | 888 } |
| OLD | NEW |