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

Unified Diff: chrome/browser/ui/webui/ntp/app_launcher_handler.cc

Issue 9116037: [NTP4] Make TilePage and CardSlider evented to simplify code and fix page switcher bug (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase + event order change Created 8 years, 11 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 side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/webui/ntp/app_launcher_handler.cc
diff --git a/chrome/browser/ui/webui/ntp/app_launcher_handler.cc b/chrome/browser/ui/webui/ntp/app_launcher_handler.cc
index 5f3684b9afd5cb2e1e4a1e64068ed5353596e0a0..6cd16b614c6c81e1a8275d7ad4f3d2dfa25ed8f1 100644
--- a/chrome/browser/ui/webui/ntp/app_launcher_handler.cc
+++ b/chrome/browser/ui/webui/ntp/app_launcher_handler.cc
@@ -78,7 +78,8 @@ AppLauncherHandler::AppLauncherHandler(ExtensionService* extension_service)
: extension_service_(extension_service),
ignore_changes_(false),
attempted_bookmark_app_install_(false),
- has_loaded_apps_(false) {
+ has_loaded_apps_(false),
+ uninstall_from_page_(false) {
}
AppLauncherHandler::~AppLauncherHandler() {}
@@ -305,8 +306,10 @@ void AppLauncherHandler::Observe(int type,
content::Details<UnloadedExtensionInfo>(details)->reason ==
extension_misc::UNLOAD_REASON_UNINSTALL));
if (app_info.get()) {
+ scoped_ptr<base::FundamentalValue> from_page(
+ Value::CreateBooleanValue(uninstall_from_page_));
web_ui()->CallJavascriptFunction(
- "ntp4.appRemoved", *app_info, *uninstall_value);
+ "ntp4.appRemoved", *app_info, *uninstall_value, *from_page);
}
break;
}
@@ -314,7 +317,7 @@ void AppLauncherHandler::Observe(int type,
// The promo may not load until a couple seconds after the first NTP view,
// so we listen for the load notification and notify the NTP when ready.
case chrome::NOTIFICATION_WEB_STORE_PROMO_LOADED:
- // TODO(estade): try to get rid of this inefficient operation.
+ // TODO(estade): Try to get rid of this inefficient operation.
HandleGetApps(NULL);
break;
case chrome::NOTIFICATION_PREF_CHANGED: {
@@ -329,7 +332,7 @@ void AppLauncherHandler::Observe(int type,
crx_installer->profile())) {
return;
}
- // Fall Through.
+ // Fall through.
}
case chrome::NOTIFICATION_EXTENSION_LOAD_ERROR: {
attempted_bookmark_app_install_ = false;
@@ -620,6 +623,9 @@ void AppLauncherHandler::HandleUninstallApp(const ListValue* args) {
AutoReset<bool> auto_reset(&ignore_changes_, true);
ExtensionUninstallAccepted();
} else {
+ // We don't use an AutoReset<bool> here as the uninstall dialog runs in a
Evan Stade 2012/01/17 19:45:29 the uninstall dialog runs in the UI thread, same a
Dan Beam 2012/01/18 00:07:23 Done. (removed because of following review comment
+ // different thread so it's not sync.
+ uninstall_from_page_ = true;
Evan Stade 2012/01/17 19:45:29 I don't see why you need this new boolean. What is
Dan Beam 2012/01/17 21:33:09 Done.
GetExtensionUninstallDialog()->ConfirmUninstall(extension);
}
}
@@ -842,6 +848,11 @@ void AppLauncherHandler::RegisterUserPrefs(PrefService* pref_service) {
PrefService::UNSYNCABLE_PREF);
}
+void AppLauncherHandler::CleanupAfterUninstall() {
+ uninstall_from_page_ = false;
+ extension_id_prompting_ = "";
Evan Stade 2012/01/17 19:45:29 .clear()
Dan Beam 2012/01/18 00:04:27 Done.
+}
+
// static
void AppLauncherHandler::RecordWebStoreLaunch(bool promo_active) {
UMA_HISTOGRAM_ENUMERATION(extension_misc::kAppLaunchHistogram,
@@ -927,12 +938,11 @@ void AppLauncherHandler::ExtensionUninstallAccepted() {
extension_service_->UninstallExtension(extension_id_prompting_,
false /* external_uninstall */, NULL);
-
- extension_id_prompting_ = "";
+ CleanupAfterUninstall();
}
void AppLauncherHandler::ExtensionUninstallCanceled() {
- extension_id_prompting_ = "";
+ CleanupAfterUninstall();
}
void AppLauncherHandler::InstallUIProceed() {
@@ -969,7 +979,7 @@ void AppLauncherHandler::InstallUIAbort(bool user_initiated) {
ExtensionService::RecordPermissionMessagesHistogram(
extension, histogram_name.c_str());
- ExtensionUninstallCanceled();
+ CleanupAfterUninstall();
}
ExtensionUninstallDialog* AppLauncherHandler::GetExtensionUninstallDialog() {

Powered by Google App Engine
This is Rietveld 408576698