summaryrefslogtreecommitdiffstats
path: root/chrome/browser/ui/cocoa
diff options
context:
space:
mode:
authormihaip@chromium.org <mihaip@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-09-02 18:20:24 +0000
committermihaip@chromium.org <mihaip@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-09-02 18:20:24 +0000
commit122e8dfabc4eff6875e41009a0b4195290743e33 (patch)
tree489764393824ff646c47682ba3aff2df95037055 /chrome/browser/ui/cocoa
parent86d67adb3cc099cc16cee194a4e4457df8d79c05 (diff)
downloadchromium_src-122e8dfabc4eff6875e41009a0b4195290743e33.zip
chromium_src-122e8dfabc4eff6875e41009a0b4195290743e33.tar.gz
chromium_src-122e8dfabc4eff6875e41009a0b4195290743e33.tar.bz2
Implement inline install UI for views.
To make this easier, the extension install dialog was changed from doing layout by hand to using GridLayout (thus no longer necessitating overrides of GetPreferredSize/Layout or lots of math). To lessen the repeated logic between the inline install UIs, ExtensionInstallUI::Prompt was beefed up to return formatted data directly (and in the case of rating stars, include the logic for which ones to show). Also includes some other tweaks: - Rename inline install dialog to "Add to Chrome" and the install button in it to "Add" - Use the final webstore JSON data URLs R=asargent@chromium.org BUG=93380 TEST=no Review URL: http://codereview.chromium.org/7826029 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@99407 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/ui/cocoa')
-rw-r--r--chrome/browser/ui/cocoa/extensions/extension_install_dialog_controller.mm29
-rw-r--r--chrome/browser/ui/cocoa/extensions/extension_install_dialog_controller_unittest.mm18
2 files changed, 26 insertions, 21 deletions
diff --git a/chrome/browser/ui/cocoa/extensions/extension_install_dialog_controller.mm b/chrome/browser/ui/cocoa/extensions/extension_install_dialog_controller.mm
index 5877481..cd383ee 100644
--- a/chrome/browser/ui/cocoa/extensions/extension_install_dialog_controller.mm
+++ b/chrome/browser/ui/cocoa/extensions/extension_install_dialog_controller.mm
@@ -67,7 +67,7 @@ void OffsetControlVertically(NSControl* control, CGFloat amount) {
// We use a different XIB in the case of no permission warnings, that is a
// little bit more nicely laid out.
- if (prompt.permissions.empty()) {
+ if (prompt.GetPermissionCount() == 0) {
nibpath = [base::mac::MainAppBundle()
pathForResource:@"ExtensionInstallPromptNoWarnings"
ofType:@"nib"];
@@ -83,27 +83,26 @@ void OffsetControlVertically(NSControl* control, CGFloat amount) {
icon_ = *icon;
delegate_ = delegate;
- title_.reset(
- [l10n_util::GetNSStringF(ExtensionInstallUI::kHeadingIds[prompt.type],
- UTF8ToUTF16(extension->name())) retain]);
- subtitle_.reset(
- [l10n_util::GetNSString(ExtensionInstallUI::kWarningIds[prompt.type])
- retain]);
- button_.reset([l10n_util::GetNSString(
- ExtensionInstallUI::kButtonIds[prompt.type]) retain]);
- int cancel_id = ExtensionInstallUI::kAbortButtonIds[prompt.type];
- cancel_button_.reset([l10n_util::GetNSString(
- cancel_id > 0 ? cancel_id : IDS_CANCEL) retain]);
+ title_.reset([base::SysUTF16ToNSString(
+ prompt.GetHeading(extension->name())) retain]);
+ subtitle_.reset([base::SysUTF16ToNSString(
+ prompt.GetPermissionsHeader()) retain]);
+ button_.reset([base::SysUTF16ToNSString(
+ prompt.GetAcceptButtonLabel()) retain]);
+ NSString* cancel_button_label = prompt.HasAbortButtonLabel() ?
+ base::SysUTF16ToNSString(prompt.GetAbortButtonLabel()) :
+ l10n_util::GetNSString(IDS_CANCEL);
+ cancel_button_.reset([cancel_button_label retain]);
// We display the permission warnings as a simple text string, separated by
// newlines.
- if (!prompt.permissions.empty()) {
+ if (prompt.GetPermissionCount()) {
string16 joined_warnings;
- for (size_t i = 0; i < prompt.permissions.size(); ++i) {
+ for (size_t i = 0; i < prompt.GetPermissionCount(); ++i) {
if (i > 0)
joined_warnings += UTF8ToUTF16("\n\n");
- joined_warnings += prompt.permissions[i];
+ joined_warnings += prompt.GetPermission(i);
}
warnings_.reset(
diff --git a/chrome/browser/ui/cocoa/extensions/extension_install_dialog_controller_unittest.mm b/chrome/browser/ui/cocoa/extensions/extension_install_dialog_controller_unittest.mm
index 4a175b0..c29cbf6 100644
--- a/chrome/browser/ui/cocoa/extensions/extension_install_dialog_controller_unittest.mm
+++ b/chrome/browser/ui/cocoa/extensions/extension_install_dialog_controller_unittest.mm
@@ -108,7 +108,9 @@ TEST_F(ExtensionInstallDialogControllerTest, BasicsNormalCancel) {
new MockExtensionInstallUIDelegate);
ExtensionInstallUI::Prompt prompt(ExtensionInstallUI::INSTALL_PROMPT);
- prompt.permissions.push_back(UTF8ToUTF16("warning 1"));
+ std::vector<string16> permissions;
+ permissions.push_back(UTF8ToUTF16("warning 1"));
+ prompt.SetPermissions(permissions);
scoped_nsobject<ExtensionInstallDialogController>
controller([[ExtensionInstallDialogController alloc]
@@ -140,7 +142,7 @@ TEST_F(ExtensionInstallDialogControllerTest, BasicsNormalCancel) {
EXPECT_TRUE([controller warningsField] != nil);
EXPECT_NSEQ([[controller warningsField] stringValue],
- base::SysUTF16ToNSString(prompt.permissions[0]));
+ base::SysUTF16ToNSString(prompt.GetPermission(0)));
EXPECT_TRUE([controller warningsBox] != nil);
@@ -164,7 +166,9 @@ TEST_F(ExtensionInstallDialogControllerTest, BasicsNormalOK) {
new MockExtensionInstallUIDelegate);
ExtensionInstallUI::Prompt prompt(ExtensionInstallUI::INSTALL_PROMPT);
- prompt.permissions.push_back(UTF8ToUTF16("warning 1"));
+ std::vector<string16> permissions;
+ permissions.push_back(UTF8ToUTF16("warning 1"));
+ prompt.SetPermissions(permissions);
scoped_nsobject<ExtensionInstallDialogController>
controller([[ExtensionInstallDialogController alloc]
@@ -192,12 +196,14 @@ TEST_F(ExtensionInstallDialogControllerTest, MultipleWarnings) {
ExtensionInstallUI::Prompt one_warning_prompt(
ExtensionInstallUI::INSTALL_PROMPT);
- one_warning_prompt.permissions.push_back(UTF8ToUTF16("warning 1"));
+ std::vector<string16> permissions;
+ permissions.push_back(UTF8ToUTF16("warning 1"));
+ one_warning_prompt.SetPermissions(permissions);
ExtensionInstallUI::Prompt two_warnings_prompt(
ExtensionInstallUI::INSTALL_PROMPT);
- two_warnings_prompt.permissions.push_back(UTF8ToUTF16("warning 1"));
- two_warnings_prompt.permissions.push_back(UTF8ToUTF16("warning 2"));
+ permissions.push_back(UTF8ToUTF16("warning 2"));
+ two_warnings_prompt.SetPermissions(permissions);
scoped_nsobject<ExtensionInstallDialogController>
controller1([[ExtensionInstallDialogController alloc]