Commit fc507794 authored by estade@chromium.org's avatar estade@chromium.org

Update oauth strings for extension install UI

BUG=130206

Review URL: https://chromiumcodereview.appspot.com/10828198

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@151755 0039d316-1c4b-4281-b951-d872f2087c98
parent c8bcb21e
...@@ -4395,8 +4395,14 @@ Update checks have repeatedly failed for the extension "<ph name="EXTENSION_NAME ...@@ -4395,8 +4395,14 @@ Update checks have repeatedly failed for the extension "<ph name="EXTENSION_NAME
<message name="IDS_EXTENSION_PROMPT_STORE_LINK" desc="Anchor text for link to Chrome Web Store in app or extension installation dialog"> <message name="IDS_EXTENSION_PROMPT_STORE_LINK" desc="Anchor text for link to Chrome Web Store in app or extension installation dialog">
View details View details
</message> </message>
<message name="IDS_EXTENSION_PROMPT_SCOPES_HEADING" desc="Heading above the OAuth2 scopes permissions."> <message name="IDS_EXTENSION_PROMPT_OAUTH_HEADER" desc="A line of explanatory text that precedes all GAIA account permissions that an extension requests. This is shown during installation.">
The app wants these scopes: On your <ph name="ACCOUNT_EMAIL">$1<ex>user@example.com</ex></ph> account, it can:
</message>
<message name="IDS_EXTENSION_PROMPT_OAUTH_REENABLE_HEADER" desc="A line of explanatory text that precedes all GAIA account permissions that an extension requests. This is shown when an app is being re-enabled after new permissions have been requested.">
On your <ph name="ACCOUNT_EMAIL">$1<ex>user@example.com</ex></ph> account, it can now:
</message>
<message name="IDS_EXTENSION_PROMPT_OAUTH_PERMISSIONS_HEADER" desc="A line of explanatory text that precedes all GAIA account permissions that an extension might request. This is shown when an app requests permissions which are optional.">
On your <ph name="ACCOUNT_EMAIL">$1<ex>user@example.com</ex></ph> account, it could:
</message> </message>
<if expr="pp_ifdef('android')"> <if expr="pp_ifdef('android')">
...@@ -16,6 +16,7 @@ ...@@ -16,6 +16,7 @@
#include "chrome/browser/extensions/bundle_installer.h" #include "chrome/browser/extensions/bundle_installer.h"
#include "chrome/browser/extensions/extension_install_dialog.h" #include "chrome/browser/extensions/extension_install_dialog.h"
#include "chrome/browser/extensions/extension_install_ui.h" #include "chrome/browser/extensions/extension_install_ui.h"
#include "chrome/browser/prefs/pref_service.h"
#include "chrome/browser/profiles/profile.h" #include "chrome/browser/profiles/profile.h"
#include "chrome/browser/signin/token_service.h" #include "chrome/browser/signin/token_service.h"
#include "chrome/browser/signin/token_service_factory.h" #include "chrome/browser/signin/token_service_factory.h"
...@@ -30,6 +31,7 @@ ...@@ -30,6 +31,7 @@
#include "chrome/common/extensions/extension_switch_utils.h" #include "chrome/common/extensions/extension_switch_utils.h"
#include "chrome/common/extensions/permissions/permission_set.h" #include "chrome/common/extensions/permissions/permission_set.h"
#include "chrome/common/extensions/url_pattern.h" #include "chrome/common/extensions/url_pattern.h"
#include "chrome/common/pref_names.h"
#include "content/public/browser/page_navigator.h" #include "content/public/browser/page_navigator.h"
#include "grit/chromium_strings.h" #include "grit/chromium_strings.h"
#include "grit/generated_resources.h" #include "grit/generated_resources.h"
...@@ -78,6 +80,14 @@ static const int kPermissionsHeaderIds[ ...@@ -78,6 +80,14 @@ static const int kPermissionsHeaderIds[
IDS_EXTENSION_PROMPT_WILL_NOW_HAVE_ACCESS_TO, IDS_EXTENSION_PROMPT_WILL_NOW_HAVE_ACCESS_TO,
IDS_EXTENSION_PROMPT_WANTS_ACCESS_TO, IDS_EXTENSION_PROMPT_WANTS_ACCESS_TO,
}; };
static const int kOAuthHeaderIds[
ExtensionInstallPrompt::NUM_PROMPT_TYPES] = {
IDS_EXTENSION_PROMPT_OAUTH_HEADER,
0, // Inline installs don't show OAuth permissions.
0, // Bundle installs don't show OAuth permissions.
IDS_EXTENSION_PROMPT_OAUTH_REENABLE_HEADER,
IDS_EXTENSION_PROMPT_OAUTH_PERMISSIONS_HEADER,
};
namespace { namespace {
...@@ -86,12 +96,13 @@ const int kIconSize = 69; ...@@ -86,12 +96,13 @@ const int kIconSize = 69;
} // namespace } // namespace
ExtensionInstallPrompt::Prompt::Prompt(PromptType type) ExtensionInstallPrompt::Prompt::Prompt(Profile* profile, PromptType type)
: type_(type), : type_(type),
extension_(NULL), extension_(NULL),
bundle_(NULL), bundle_(NULL),
average_rating_(0.0), average_rating_(0.0),
rating_count_(0) { rating_count_(0),
profile_(profile) {
} }
ExtensionInstallPrompt::Prompt::~Prompt() { ExtensionInstallPrompt::Prompt::~Prompt() {
...@@ -118,7 +129,6 @@ void ExtensionInstallPrompt::Prompt::SetInlineInstallWebstoreData( ...@@ -118,7 +129,6 @@ void ExtensionInstallPrompt::Prompt::SetInlineInstallWebstoreData(
} }
string16 ExtensionInstallPrompt::Prompt::GetDialogTitle() const { string16 ExtensionInstallPrompt::Prompt::GetDialogTitle() const {
int resource_id = kTitleIds[type_]; int resource_id = kTitleIds[type_];
if (type_ == INSTALL_PROMPT) { if (type_ == INSTALL_PROMPT) {
...@@ -162,8 +172,14 @@ string16 ExtensionInstallPrompt::Prompt::GetPermissionsHeading() const { ...@@ -162,8 +172,14 @@ string16 ExtensionInstallPrompt::Prompt::GetPermissionsHeading() const {
} }
string16 ExtensionInstallPrompt::Prompt::GetOAuthHeading() const { string16 ExtensionInstallPrompt::Prompt::GetOAuthHeading() const {
// TODO(estade): this should change based on type_. string16 username(ASCIIToUTF16("username@example.com"));
return l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_SCOPES_HEADING); // |profile_| can be NULL in unit tests.
if (profile_) {
username = UTF8ToUTF16(profile_->GetPrefs()->GetString(
prefs::kGoogleServicesUsername));
}
int resource_id = kOAuthHeaderIds[type_];
return l10n_util::GetStringFUTF16(resource_id, username);
} }
void ExtensionInstallPrompt::Prompt::AppendRatingStars( void ExtensionInstallPrompt::Prompt::AppendRatingStars(
...@@ -270,7 +286,7 @@ ExtensionInstallPrompt::ExtensionInstallPrompt( ...@@ -270,7 +286,7 @@ ExtensionInstallPrompt::ExtensionInstallPrompt(
extension_(NULL), extension_(NULL),
install_ui_(ExtensionInstallUI::Create(profile)), install_ui_(ExtensionInstallUI::Create(profile)),
delegate_(NULL), delegate_(NULL),
prompt_(UNSET_PROMPT_TYPE), prompt_(profile, UNSET_PROMPT_TYPE),
prompt_type_(UNSET_PROMPT_TYPE), prompt_type_(UNSET_PROMPT_TYPE),
ALLOW_THIS_IN_INITIALIZER_LIST(tracker_(this)) { ALLOW_THIS_IN_INITIALIZER_LIST(tracker_(this)) {
} }
......
...@@ -61,7 +61,7 @@ class ExtensionInstallPrompt : public ImageLoadingTracker::Observer, ...@@ -61,7 +61,7 @@ class ExtensionInstallPrompt : public ImageLoadingTracker::Observer,
// that logic. // that logic.
class Prompt { class Prompt {
public: public:
explicit Prompt(PromptType type); Prompt(Profile* profile, PromptType type);
~Prompt(); ~Prompt();
void SetPermissions(const std::vector<string16>& permissions); void SetPermissions(const std::vector<string16>& permissions);
...@@ -137,6 +137,8 @@ class ExtensionInstallPrompt : public ImageLoadingTracker::Observer, ...@@ -137,6 +137,8 @@ class ExtensionInstallPrompt : public ImageLoadingTracker::Observer,
// Range is kMinExtensionRating to kMaxExtensionRating // Range is kMinExtensionRating to kMaxExtensionRating
double average_rating_; double average_rating_;
int rating_count_; int rating_count_;
Profile* profile_;
}; };
static const int kMinExtensionRating = 0; static const int kMinExtensionRating = 0;
......
...@@ -343,7 +343,10 @@ void WebstoreInlineInstaller::OnWebstoreParseSuccess( ...@@ -343,7 +343,10 @@ void WebstoreInlineInstaller::OnWebstoreParseSuccess(
manifest_.reset(manifest); manifest_.reset(manifest);
icon_ = icon; icon_ = icon;
Profile* profile = Profile::FromBrowserContext(
web_contents()->GetBrowserContext());
ExtensionInstallPrompt::Prompt prompt( ExtensionInstallPrompt::Prompt prompt(
profile,
ExtensionInstallPrompt::INLINE_INSTALL_PROMPT); ExtensionInstallPrompt::INLINE_INSTALL_PROMPT);
prompt.SetInlineInstallWebstoreData(localized_user_count_, prompt.SetInlineInstallWebstoreData(localized_user_count_,
average_rating_, average_rating_,
......
...@@ -109,7 +109,9 @@ class MockExtensionInstallPromptDelegate ...@@ -109,7 +109,9 @@ class MockExtensionInstallPromptDelegate
TEST_F(ExtensionInstallDialogControllerTest, BasicsNormalCancel) { TEST_F(ExtensionInstallDialogControllerTest, BasicsNormalCancel) {
MockExtensionInstallPromptDelegate delegate; MockExtensionInstallPromptDelegate delegate;
ExtensionInstallPrompt::Prompt prompt(ExtensionInstallPrompt::INSTALL_PROMPT); ExtensionInstallPrompt::Prompt prompt(
NULL, ExtensionInstallPrompt::INSTALL_PROMPT);
std::vector<string16> permissions; std::vector<string16> permissions;
permissions.push_back(UTF8ToUTF16("warning 1")); permissions.push_back(UTF8ToUTF16("warning 1"));
prompt.SetPermissions(permissions); prompt.SetPermissions(permissions);
...@@ -165,7 +167,7 @@ TEST_F(ExtensionInstallDialogControllerTest, BasicsNormalOK) { ...@@ -165,7 +167,7 @@ TEST_F(ExtensionInstallDialogControllerTest, BasicsNormalOK) {
MockExtensionInstallPromptDelegate delegate; MockExtensionInstallPromptDelegate delegate;
ExtensionInstallPrompt::Prompt prompt( ExtensionInstallPrompt::Prompt prompt(
ExtensionInstallPrompt::INSTALL_PROMPT); NULL, ExtensionInstallPrompt::INSTALL_PROMPT);
std::vector<string16> permissions; std::vector<string16> permissions;
permissions.push_back(UTF8ToUTF16("warning 1")); permissions.push_back(UTF8ToUTF16("warning 1"));
prompt.SetPermissions(permissions); prompt.SetPermissions(permissions);
...@@ -193,7 +195,7 @@ TEST_F(ExtensionInstallDialogControllerTest, MultipleWarnings) { ...@@ -193,7 +195,7 @@ TEST_F(ExtensionInstallDialogControllerTest, MultipleWarnings) {
MockExtensionInstallPromptDelegate delegate2; MockExtensionInstallPromptDelegate delegate2;
ExtensionInstallPrompt::Prompt one_warning_prompt( ExtensionInstallPrompt::Prompt one_warning_prompt(
ExtensionInstallPrompt::INSTALL_PROMPT); NULL, ExtensionInstallPrompt::INSTALL_PROMPT);
std::vector<string16> permissions; std::vector<string16> permissions;
permissions.push_back(UTF8ToUTF16("warning 1")); permissions.push_back(UTF8ToUTF16("warning 1"));
one_warning_prompt.SetPermissions(permissions); one_warning_prompt.SetPermissions(permissions);
...@@ -201,7 +203,7 @@ TEST_F(ExtensionInstallDialogControllerTest, MultipleWarnings) { ...@@ -201,7 +203,7 @@ TEST_F(ExtensionInstallDialogControllerTest, MultipleWarnings) {
one_warning_prompt.set_icon(icon_); one_warning_prompt.set_icon(icon_);
ExtensionInstallPrompt::Prompt two_warnings_prompt( ExtensionInstallPrompt::Prompt two_warnings_prompt(
ExtensionInstallPrompt::INSTALL_PROMPT); NULL, ExtensionInstallPrompt::INSTALL_PROMPT);
permissions.push_back(UTF8ToUTF16("warning 2")); permissions.push_back(UTF8ToUTF16("warning 2"));
two_warnings_prompt.SetPermissions(permissions); two_warnings_prompt.SetPermissions(permissions);
two_warnings_prompt.set_extension(extension_.get()); two_warnings_prompt.set_extension(extension_.get());
...@@ -245,7 +247,7 @@ TEST_F(ExtensionInstallDialogControllerTest, BasicsSkinny) { ...@@ -245,7 +247,7 @@ TEST_F(ExtensionInstallDialogControllerTest, BasicsSkinny) {
// No warnings should trigger skinny prompt. // No warnings should trigger skinny prompt.
ExtensionInstallPrompt::Prompt no_warnings_prompt( ExtensionInstallPrompt::Prompt no_warnings_prompt(
ExtensionInstallPrompt::INSTALL_PROMPT); NULL, ExtensionInstallPrompt::INSTALL_PROMPT);
no_warnings_prompt.set_extension(extension_.get()); no_warnings_prompt.set_extension(extension_.get());
no_warnings_prompt.set_icon(icon_); no_warnings_prompt.set_icon(icon_);
...@@ -289,7 +291,7 @@ TEST_F(ExtensionInstallDialogControllerTest, BasicsInline) { ...@@ -289,7 +291,7 @@ TEST_F(ExtensionInstallDialogControllerTest, BasicsInline) {
// No warnings should trigger skinny prompt. // No warnings should trigger skinny prompt.
ExtensionInstallPrompt::Prompt inline_prompt( ExtensionInstallPrompt::Prompt inline_prompt(
ExtensionInstallPrompt::INLINE_INSTALL_PROMPT); NULL, ExtensionInstallPrompt::INLINE_INSTALL_PROMPT);
inline_prompt.SetInlineInstallWebstoreData("1,000", 3.5, 200); inline_prompt.SetInlineInstallWebstoreData("1,000", 3.5, 200);
inline_prompt.set_extension(extension_.get()); inline_prompt.set_extension(extension_.get());
inline_prompt.set_icon(icon_); inline_prompt.set_icon(icon_);
...@@ -342,7 +344,7 @@ TEST_F(ExtensionInstallDialogControllerTest, OAuthIssues) { ...@@ -342,7 +344,7 @@ TEST_F(ExtensionInstallDialogControllerTest, OAuthIssues) {
MockExtensionInstallPromptDelegate delegate; MockExtensionInstallPromptDelegate delegate;
ExtensionInstallPrompt::Prompt prompt( ExtensionInstallPrompt::Prompt prompt(
ExtensionInstallPrompt::INSTALL_PROMPT); NULL, ExtensionInstallPrompt::INSTALL_PROMPT);
std::vector<string16> permissions; std::vector<string16> permissions;
permissions.push_back(UTF8ToUTF16("warning 1")); permissions.push_back(UTF8ToUTF16("warning 1"));
prompt.SetPermissions(permissions); prompt.SetPermissions(permissions);
......
...@@ -84,7 +84,7 @@ class ExtensionInstallDialog { ...@@ -84,7 +84,7 @@ class ExtensionInstallDialog {
public: public:
ExtensionInstallDialog(gfx::NativeWindow parent, ExtensionInstallDialog(gfx::NativeWindow parent,
content::PageNavigator* navigator, content::PageNavigator* navigator,
ExtensionInstallPrompt::Delegate *delegate, ExtensionInstallPrompt::Delegate* delegate,
const ExtensionInstallPrompt::Prompt& prompt); const ExtensionInstallPrompt::Prompt& prompt);
private: private:
~ExtensionInstallDialog(); ~ExtensionInstallDialog();
......
...@@ -240,8 +240,9 @@ ExtensionInstallDialogView::ExtensionInstallDialogView( ...@@ -240,8 +240,9 @@ ExtensionInstallDialogView::ExtensionInstallDialogView(
int column_set_id = 0; int column_set_id = 0;
views::ColumnSet* column_set = layout->AddColumnSet(column_set_id); views::ColumnSet* column_set = layout->AddColumnSet(column_set_id);
int left_column_width = prompt.GetPermissionCount() > 0 ? int left_column_width =
kPermissionsLeftColumnWidth : kNoPermissionsLeftColumnWidth; prompt.GetPermissionCount() + prompt.GetOAuthIssueCount() > 0 ?
kPermissionsLeftColumnWidth : kNoPermissionsLeftColumnWidth;
if (is_bundle_install()) if (is_bundle_install())
left_column_width = kBundleLeftColumnWidth; left_column_width = kBundleLeftColumnWidth;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment