diff options
author | mihaip@chromium.org <mihaip@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-09-02 18:20:24 +0000 |
---|---|---|
committer | mihaip@chromium.org <mihaip@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-09-02 18:20:24 +0000 |
commit | 122e8dfabc4eff6875e41009a0b4195290743e33 (patch) | |
tree | 489764393824ff646c47682ba3aff2df95037055 /chrome/browser/ui/cocoa | |
parent | 86d67adb3cc099cc16cee194a4e4457df8d79c05 (diff) | |
download | chromium_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.mm | 29 | ||||
-rw-r--r-- | chrome/browser/ui/cocoa/extensions/extension_install_dialog_controller_unittest.mm | 18 |
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] |