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

Unified Diff: chrome/browser/extensions/extension_install_ui.cc

Issue 333015: o Cleans up canonical extension_install_ui.cc to avoid #ifdefs when feasible.... (Closed) Base URL: http://src.chromium.org/svn/trunk/src/
Patch Set: '' Created 11 years, 2 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/extensions/extension_install_ui.cc
===================================================================
--- chrome/browser/extensions/extension_install_ui.cc (revision 30026)
+++ chrome/browser/extensions/extension_install_ui.cc (working copy)
@@ -10,6 +10,7 @@
#include "app/resource_bundle.h"
#include "base/file_util.h"
#include "base/rand_util.h"
+#include "base/utf_string_conversions.h"
#include "chrome/browser/browser_list.h"
#include "chrome/browser/browser_window.h"
#include "chrome/browser/extensions/theme_installed_infobar_delegate.h"
@@ -20,21 +21,13 @@
#include "grit/chromium_strings.h"
#include "grit/generated_resources.h"
-#if defined(OS_WIN)
-#include "app/win_util.h"
-#elif defined(OS_MACOSX)
-#include "base/scoped_cftyperef.h"
-#include "base/sys_string_conversions.h"
-#include <CoreFoundation/CFUserNotification.h>
-#elif defined(TOOLKIT_GTK)
+#if defined(TOOLKIT_GTK)
#include "chrome/browser/extensions/gtk_theme_installed_infobar_delegate.h"
#include "chrome/browser/gtk/gtk_theme_provider.h"
#endif
namespace {
-#if defined(OS_WIN) || defined(TOOLKIT_GTK)
-
static std::wstring GetInstallWarning(Extension* extension) {
// If the extension has a plugin, it's easy: the plugin has the most severe
// warning.
@@ -80,8 +73,6 @@
return l10n_util::GetString(IDS_EXTENSION_PROMPT_WARNING_NEW_BROWSER);
}
-#endif
-
} // namespace
ExtensionInstallUI::ExtensionInstallUI(Profile* profile)
@@ -89,8 +80,7 @@
#if defined(TOOLKIT_GTK)
,previous_use_gtk_theme_(false)
#endif
-{
-}
+{}
void ExtensionInstallUI::ConfirmInstall(Delegate* delegate,
Extension* extension,
@@ -117,7 +107,6 @@
return;
}
-#if defined(OS_WIN) || defined(TOOLKIT_GTK)
if (!install_icon) {
install_icon = ResourceBundle::GetSharedInstance().GetBitmapNamed(
IDR_DEFAULT_EXTENSION_ICON_128);
@@ -126,54 +115,6 @@
ShowExtensionInstallPrompt(profile_, delegate, extension, install_icon,
GetInstallWarning(extension));
-#elif defined(OS_MACOSX)
- // TODO(port): Implement nicer UI.
- // Using CoreFoundation to do this dialog is unimaginably lame but will do
- // until the UI is redone.
- scoped_cftyperef<CFStringRef> confirm_title(base::SysWideToCFStringRef(
- l10n_util::GetString(IDS_EXTENSION_PROMPT_TITLE)));
-
- // Build the confirmation prompt, including a heading, a random humorous
- // warning, and a severe warning.
- const string16& confirm_format(ASCIIToUTF16("$1\n\n$2\n\n$3"));
- std::vector<string16> subst;
- subst.push_back(l10n_util::GetStringFUTF16(IDS_EXTENSION_PROMPT_HEADING,
- UTF8ToUTF16(extension->name())));
- string16 warnings[] = {
- l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_WARNING_1),
- l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_WARNING_2),
- l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_WARNING_3)
- };
- subst.push_back(warnings[base::RandInt(0, arraysize(warnings) - 1)]);
- subst.push_back(l10n_util::GetStringUTF16(
- IDS_EXTENSION_PROMPT_WARNING_SEVERE));
- scoped_cftyperef<CFStringRef> confirm_prompt(base::SysUTF16ToCFStringRef(
- ReplaceStringPlaceholders(confirm_format, subst, NULL)));
-
- scoped_cftyperef<CFStringRef> confirm_cancel(base::SysWideToCFStringRef(
- l10n_util::GetString(IDS_EXTENSION_PROMPT_CANCEL_BUTTON)));
-
- CFOptionFlags response;
- CFUserNotificationDisplayAlert(
- 0, kCFUserNotificationCautionAlertLevel,
- NULL, // TODO(port): show the install_icon instead of a default.
- NULL, NULL, // Sound URL, localization URL.
- confirm_title,
- confirm_prompt,
- NULL, // Default button.
- confirm_cancel,
- NULL, // Other button.
- &response);
- if (response == kCFUserNotificationAlternateResponse) {
- delegate->AbortInstall();
- } else {
- delegate->ContinueInstall();
- }
-#else
- // TODO(port): Implement some UI.
- NOTREACHED();
- delegate->ContinueInstall();
-#endif // OS_*
}
void ExtensionInstallUI::OnInstallSuccess(Extension* extension) {
@@ -183,24 +124,7 @@
void ExtensionInstallUI::OnInstallFailure(const std::string& error) {
DCHECK(ui_loop_ == MessageLoop::current());
-#if defined(OS_WIN)
- win_util::MessageBox(NULL, UTF8ToWide(error), L"Extension Install Error",
- MB_OK | MB_SETFOREGROUND);
-#elif defined(OS_MACOSX)
- // There must be a better way to do this, for all platforms.
- scoped_cftyperef<CFStringRef> message_cf(
- base::SysUTF8ToCFStringRef(error));
- CFOptionFlags response;
- CFUserNotificationDisplayAlert(
- 0, kCFUserNotificationNoteAlertLevel, NULL, NULL, NULL,
- CFSTR("Extension Install Error"), message_cf,
- NULL, NULL, NULL, &response);
-#else
- GtkWidget* dialog = gtk_message_dialog_new(NULL, GTK_DIALOG_MODAL,
- GTK_MESSAGE_ERROR, GTK_BUTTONS_OK, "%s", error.c_str());
- g_signal_connect(dialog, "response", G_CALLBACK(gtk_widget_destroy), NULL);
- gtk_widget_show_all(dialog);
-#endif
+ ShowExtensionInstallError(error);
}
void ExtensionInstallUI::OnOverinstallAttempted(Extension* extension) {
@@ -230,18 +154,22 @@
}
// Then either replace that old one or add a new one.
- InfoBarDelegate* new_delegate =
-#if defined(TOOLKIT_GTK)
- new GtkThemeInstalledInfoBarDelegate(
- tab_contents,
- new_theme->name(), previous_theme_id_, previous_use_gtk_theme_);
-#else
- new ThemeInstalledInfoBarDelegate(tab_contents,
- new_theme->name(), previous_theme_id_);
-#endif
+ InfoBarDelegate* new_delegate = GetNewInfoBarDelegate(new_theme,
+ tab_contents);
if (old_delegate)
tab_contents->ReplaceInfoBar(old_delegate, new_delegate);
else
tab_contents->AddInfoBar(new_delegate);
}
+
+InfoBarDelegate* ExtensionInstallUI::GetNewInfoBarDelegate(
+ Extension* new_theme, TabContents* tab_contents) {
+#if defined(TOOLKIT_GTK)
+ return new GtkThemeInstalledInfoBarDelegate(tab_contents, new_theme->name(),
+ previous_theme_id_, previous_use_gtk_theme_);
+#else
+ return new ThemeInstalledInfoBarDelegate(tab_contents, new_theme->name(),
+ previous_theme_id_);
+#endif
+}
« no previous file with comments | « chrome/browser/extensions/extension_install_ui.h ('k') | chrome/browser/gtk/extension_install_prompt_gtk.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698