| 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 <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 147 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 158 if (extension->HasAPIPermission( | 158 if (extension->HasAPIPermission( |
| 159 extensions::APIPermission::kAppNotifications)) { | 159 extensions::APIPermission::kAppNotifications)) { |
| 160 value->SetBoolean("notifications_disabled", | 160 value->SetBoolean("notifications_disabled", |
| 161 prefs->IsAppNotificationDisabled(extension->id())); | 161 prefs->IsAppNotificationDisabled(extension->id())); |
| 162 } | 162 } |
| 163 | 163 |
| 164 if (notification) | 164 if (notification) |
| 165 value->Set("notification", SerializeNotification(*notification)); | 165 value->Set("notification", SerializeNotification(*notification)); |
| 166 | 166 |
| 167 ExtensionSorting* sorting = prefs->extension_sorting(); | 167 ExtensionSorting* sorting = prefs->extension_sorting(); |
| 168 StringOrdinal page_ordinal = sorting->GetPageOrdinal(extension->id()); | 168 syncer::StringOrdinal page_ordinal = sorting->GetPageOrdinal(extension->id()); |
| 169 if (!page_ordinal.IsValid()) { | 169 if (!page_ordinal.IsValid()) { |
| 170 // Make sure every app has a page ordinal (some predate the page ordinal). | 170 // Make sure every app has a page ordinal (some predate the page ordinal). |
| 171 // The webstore app should be on the first page. | 171 // The webstore app should be on the first page. |
| 172 page_ordinal = extension->id() == extension_misc::kWebStoreAppId ? | 172 page_ordinal = extension->id() == extension_misc::kWebStoreAppId ? |
| 173 sorting->CreateFirstAppPageOrdinal() : | 173 sorting->CreateFirstAppPageOrdinal() : |
| 174 sorting->GetNaturalAppPageOrdinal(); | 174 sorting->GetNaturalAppPageOrdinal(); |
| 175 sorting->SetPageOrdinal(extension->id(), page_ordinal); | 175 sorting->SetPageOrdinal(extension->id(), page_ordinal); |
| 176 } | 176 } |
| 177 value->SetInteger("page_index", | 177 value->SetInteger("page_index", |
| 178 sorting->PageStringOrdinalAsInteger(page_ordinal)); | 178 sorting->PageStringOrdinalAsInteger(page_ordinal)); |
| 179 | 179 |
| 180 StringOrdinal app_launch_ordinal = | 180 syncer::StringOrdinal app_launch_ordinal = |
| 181 sorting->GetAppLaunchOrdinal(extension->id()); | 181 sorting->GetAppLaunchOrdinal(extension->id()); |
| 182 if (!app_launch_ordinal.IsValid()) { | 182 if (!app_launch_ordinal.IsValid()) { |
| 183 // Make sure every app has a launch ordinal (some predate the launch | 183 // Make sure every app has a launch ordinal (some predate the launch |
| 184 // ordinal). The webstore's app launch ordinal is always set to the first | 184 // ordinal). The webstore's app launch ordinal is always set to the first |
| 185 // position. | 185 // position. |
| 186 app_launch_ordinal = extension->id() == extension_misc::kWebStoreAppId ? | 186 app_launch_ordinal = extension->id() == extension_misc::kWebStoreAppId ? |
| 187 sorting->CreateFirstAppLaunchOrdinal(page_ordinal) : | 187 sorting->CreateFirstAppLaunchOrdinal(page_ordinal) : |
| 188 sorting->CreateNextAppLaunchOrdinal(page_ordinal); | 188 sorting->CreateNextAppLaunchOrdinal(page_ordinal); |
| 189 sorting->SetAppLaunchOrdinal(extension->id(), app_launch_ordinal); | 189 sorting->SetAppLaunchOrdinal(extension->id(), app_launch_ordinal); |
| 190 } | 190 } |
| 191 value->SetString("app_launch_ordinal", app_launch_ordinal.ToString()); | 191 value->SetString("app_launch_ordinal", app_launch_ordinal.ToInternalValue()); |
| 192 } | 192 } |
| 193 | 193 |
| 194 void AppLauncherHandler::RegisterMessages() { | 194 void AppLauncherHandler::RegisterMessages() { |
| 195 registrar_.Add(this, chrome::NOTIFICATION_APP_INSTALLED_TO_NTP, | 195 registrar_.Add(this, chrome::NOTIFICATION_APP_INSTALLED_TO_NTP, |
| 196 content::Source<WebContents>(web_ui()->GetWebContents())); | 196 content::Source<WebContents>(web_ui()->GetWebContents())); |
| 197 | 197 |
| 198 web_ui()->RegisterMessageCallback("getApps", | 198 web_ui()->RegisterMessageCallback("getApps", |
| 199 base::Bind(&AppLauncherHandler::HandleGetApps, | 199 base::Bind(&AppLauncherHandler::HandleGetApps, |
| 200 base::Unretained(this))); | 200 base::Unretained(this))); |
| 201 web_ui()->RegisterMessageCallback("launchApp", | 201 web_ui()->RegisterMessageCallback("launchApp", |
| (...skipping 443 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 645 } | 645 } |
| 646 | 646 |
| 647 void AppLauncherHandler::HandleSetPageIndex(const ListValue* args) { | 647 void AppLauncherHandler::HandleSetPageIndex(const ListValue* args) { |
| 648 ExtensionSorting* extension_sorting = | 648 ExtensionSorting* extension_sorting = |
| 649 extension_service_->extension_prefs()->extension_sorting(); | 649 extension_service_->extension_prefs()->extension_sorting(); |
| 650 | 650 |
| 651 std::string extension_id; | 651 std::string extension_id; |
| 652 double page_index; | 652 double page_index; |
| 653 CHECK(args->GetString(0, &extension_id)); | 653 CHECK(args->GetString(0, &extension_id)); |
| 654 CHECK(args->GetDouble(1, &page_index)); | 654 CHECK(args->GetDouble(1, &page_index)); |
| 655 const StringOrdinal& page_ordinal = | 655 const syncer::StringOrdinal& page_ordinal = |
| 656 extension_sorting->PageIntegerAsStringOrdinal( | 656 extension_sorting->PageIntegerAsStringOrdinal( |
| 657 static_cast<size_t>(page_index)); | 657 static_cast<size_t>(page_index)); |
| 658 | 658 |
| 659 // Don't update the page; it already knows the apps have been reordered. | 659 // Don't update the page; it already knows the apps have been reordered. |
| 660 AutoReset<bool> auto_reset(&ignore_changes_, true); | 660 AutoReset<bool> auto_reset(&ignore_changes_, true); |
| 661 extension_sorting->SetPageOrdinal(extension_id, page_ordinal); | 661 extension_sorting->SetPageOrdinal(extension_id, page_ordinal); |
| 662 } | 662 } |
| 663 | 663 |
| 664 void AppLauncherHandler::HandleSaveAppPageName(const ListValue* args) { | 664 void AppLauncherHandler::HandleSaveAppPageName(const ListValue* args) { |
| 665 string16 name; | 665 string16 name; |
| (...skipping 14 matching lines...) Expand all Loading... |
| 680 CHECK(args->GetString(0, &url)); | 680 CHECK(args->GetString(0, &url)); |
| 681 GURL launch_url(url); | 681 GURL launch_url(url); |
| 682 | 682 |
| 683 string16 title; | 683 string16 title; |
| 684 CHECK(args->GetString(1, &title)); | 684 CHECK(args->GetString(1, &title)); |
| 685 | 685 |
| 686 double page_index; | 686 double page_index; |
| 687 CHECK(args->GetDouble(2, &page_index)); | 687 CHECK(args->GetDouble(2, &page_index)); |
| 688 ExtensionSorting* extension_sorting = | 688 ExtensionSorting* extension_sorting = |
| 689 extension_service_->extension_prefs()->extension_sorting(); | 689 extension_service_->extension_prefs()->extension_sorting(); |
| 690 const StringOrdinal& page_ordinal = | 690 const syncer::StringOrdinal& page_ordinal = |
| 691 extension_sorting->PageIntegerAsStringOrdinal( | 691 extension_sorting->PageIntegerAsStringOrdinal( |
| 692 static_cast<size_t>(page_index)); | 692 static_cast<size_t>(page_index)); |
| 693 | 693 |
| 694 Profile* profile = Profile::FromWebUI(web_ui()); | 694 Profile* profile = Profile::FromWebUI(web_ui()); |
| 695 FaviconService* favicon_service = | 695 FaviconService* favicon_service = |
| 696 FaviconServiceFactory::GetForProfile(profile, Profile::EXPLICIT_ACCESS); | 696 FaviconServiceFactory::GetForProfile(profile, Profile::EXPLICIT_ACCESS); |
| 697 if (!favicon_service) { | 697 if (!favicon_service) { |
| 698 LOG(ERROR) << "No favicon service"; | 698 LOG(ERROR) << "No favicon service"; |
| 699 return; | 699 return; |
| 700 } | 700 } |
| (...skipping 239 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 940 | 940 |
| 941 ExtensionInstallPrompt* AppLauncherHandler::GetExtensionInstallPrompt() { | 941 ExtensionInstallPrompt* AppLauncherHandler::GetExtensionInstallPrompt() { |
| 942 if (!extension_install_ui_.get()) { | 942 if (!extension_install_ui_.get()) { |
| 943 Browser* browser = browser::FindBrowserWithWebContents( | 943 Browser* browser = browser::FindBrowserWithWebContents( |
| 944 web_ui()->GetWebContents()); | 944 web_ui()->GetWebContents()); |
| 945 extension_install_ui_.reset( | 945 extension_install_ui_.reset( |
| 946 chrome::CreateExtensionInstallPromptWithBrowser(browser)); | 946 chrome::CreateExtensionInstallPromptWithBrowser(browser)); |
| 947 } | 947 } |
| 948 return extension_install_ui_.get(); | 948 return extension_install_ui_.get(); |
| 949 } | 949 } |
| OLD | NEW |