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
<message name="IDS_EXTENSION_PROMPT_STORE_LINK" desc="Anchor text for link to Chrome Web Store in app or extension installation dialog">
View details
</message>
<message name="IDS_EXTENSION_PROMPT_SCOPES_HEADING" desc="Heading above the OAuth2 scopes permissions.">
The app wants these scopes:
<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.">
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>
<if expr="pp_ifdef('android')">
......@@ -16,6 +16,7 @@
#include "chrome/browser/extensions/bundle_installer.h"
#include "chrome/browser/extensions/extension_install_dialog.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/signin/token_service.h"
#include "chrome/browser/signin/token_service_factory.h"
......@@ -30,6 +31,7 @@
#include "chrome/common/extensions/extension_switch_utils.h"
#include "chrome/common/extensions/permissions/permission_set.h"
#include "chrome/common/extensions/url_pattern.h"
#include "chrome/common/pref_names.h"
#include "content/public/browser/page_navigator.h"
#include "grit/chromium_strings.h"
#include "grit/generated_resources.h"
......@@ -78,6 +80,14 @@ static const int kPermissionsHeaderIds[
IDS_EXTENSION_PROMPT_WILL_NOW_HAVE_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 {
......@@ -86,12 +96,13 @@ const int kIconSize = 69;
} // namespace
ExtensionInstallPrompt::Prompt::Prompt(PromptType type)
ExtensionInstallPrompt::Prompt::Prompt(Profile* profile, PromptType type)
: type_(type),
extension_(NULL),
bundle_(NULL),
average_rating_(0.0),
rating_count_(0) {
rating_count_(0),
profile_(profile) {
}
ExtensionInstallPrompt::Prompt::~Prompt() {
......@@ -118,7 +129,6 @@ void ExtensionInstallPrompt::Prompt::SetInlineInstallWebstoreData(
}
string16 ExtensionInstallPrompt::Prompt::GetDialogTitle() const {
int resource_id = kTitleIds[type_];
if (type_ == INSTALL_PROMPT) {
......@@ -162,8 +172,14 @@ string16 ExtensionInstallPrompt::Prompt::GetPermissionsHeading() const {
}
string16 ExtensionInstallPrompt::Prompt::GetOAuthHeading() const {
// TODO(estade): this should change based on type_.
return l10n_util::GetStringUTF16(IDS_EXTENSION_PROMPT_SCOPES_HEADING);
string16 username(ASCIIToUTF16("username@example.com"));
// |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(
......@@ -270,7 +286,7 @@ ExtensionInstallPrompt::ExtensionInstallPrompt(
extension_(NULL),
install_ui_(ExtensionInstallUI::Create(profile)),
delegate_(NULL),
prompt_(UNSET_PROMPT_TYPE),
prompt_(profile, UNSET_PROMPT_TYPE),
prompt_type_(UNSET_PROMPT_TYPE),
ALLOW_THIS_IN_INITIALIZER_LIST(tracker_(this)) {
}
......
......@@ -61,7 +61,7 @@ class ExtensionInstallPrompt : public ImageLoadingTracker::Observer,
// that logic.
class Prompt {
public:
explicit Prompt(PromptType type);
Prompt(Profile* profile, PromptType type);
~Prompt();
void SetPermissions(const std::vector<string16>& permissions);
......@@ -137,6 +137,8 @@ class ExtensionInstallPrompt : public ImageLoadingTracker::Observer,
// Range is kMinExtensionRating to kMaxExtensionRating
double average_rating_;
int rating_count_;
Profile* profile_;
};
static const int kMinExtensionRating = 0;
......
......@@ -343,7 +343,10 @@ void WebstoreInlineInstaller::OnWebstoreParseSuccess(
manifest_.reset(manifest);
icon_ = icon;
Profile* profile = Profile::FromBrowserContext(
web_contents()->GetBrowserContext());
ExtensionInstallPrompt::Prompt prompt(
profile,
ExtensionInstallPrompt::INLINE_INSTALL_PROMPT);
prompt.SetInlineInstallWebstoreData(localized_user_count_,
average_rating_,
......
......@@ -109,7 +109,9 @@ class MockExtensionInstallPromptDelegate
TEST_F(ExtensionInstallDialogControllerTest, BasicsNormalCancel) {
MockExtensionInstallPromptDelegate delegate;
ExtensionInstallPrompt::Prompt prompt(ExtensionInstallPrompt::INSTALL_PROMPT);
ExtensionInstallPrompt::Prompt prompt(
NULL, ExtensionInstallPrompt::INSTALL_PROMPT);
std::vector<string16> permissions;
permissions.push_back(UTF8ToUTF16("warning 1"));
prompt.SetPermissions(permissions);
......@@ -165,7 +167,7 @@ TEST_F(ExtensionInstallDialogControllerTest, BasicsNormalOK) {
MockExtensionInstallPromptDelegate delegate;
ExtensionInstallPrompt::Prompt prompt(
ExtensionInstallPrompt::INSTALL_PROMPT);
NULL, ExtensionInstallPrompt::INSTALL_PROMPT);
std::vector<string16> permissions;
permissions.push_back(UTF8ToUTF16("warning 1"));
prompt.SetPermissions(permissions);
......@@ -193,7 +195,7 @@ TEST_F(ExtensionInstallDialogControllerTest, MultipleWarnings) {
MockExtensionInstallPromptDelegate delegate2;
ExtensionInstallPrompt::Prompt one_warning_prompt(
ExtensionInstallPrompt::INSTALL_PROMPT);
NULL, ExtensionInstallPrompt::INSTALL_PROMPT);
std::vector<string16> permissions;
permissions.push_back(UTF8ToUTF16("warning 1"));
one_warning_prompt.SetPermissions(permissions);
......@@ -201,7 +203,7 @@ TEST_F(ExtensionInstallDialogControllerTest, MultipleWarnings) {
one_warning_prompt.set_icon(icon_);
ExtensionInstallPrompt::Prompt two_warnings_prompt(
ExtensionInstallPrompt::INSTALL_PROMPT);
NULL, ExtensionInstallPrompt::INSTALL_PROMPT);
permissions.push_back(UTF8ToUTF16("warning 2"));
two_warnings_prompt.SetPermissions(permissions);
two_warnings_prompt.set_extension(extension_.get());
......@@ -245,7 +247,7 @@ TEST_F(ExtensionInstallDialogControllerTest, BasicsSkinny) {
// No warnings should trigger skinny prompt.
ExtensionInstallPrompt::Prompt no_warnings_prompt(
ExtensionInstallPrompt::INSTALL_PROMPT);
NULL, ExtensionInstallPrompt::INSTALL_PROMPT);
no_warnings_prompt.set_extension(extension_.get());
no_warnings_prompt.set_icon(icon_);
......@@ -289,7 +291,7 @@ TEST_F(ExtensionInstallDialogControllerTest, BasicsInline) {
// No warnings should trigger skinny prompt.
ExtensionInstallPrompt::Prompt inline_prompt(
ExtensionInstallPrompt::INLINE_INSTALL_PROMPT);
NULL, ExtensionInstallPrompt::INLINE_INSTALL_PROMPT);
inline_prompt.SetInlineInstallWebstoreData("1,000", 3.5, 200);
inline_prompt.set_extension(extension_.get());
inline_prompt.set_icon(icon_);
......@@ -342,7 +344,7 @@ TEST_F(ExtensionInstallDialogControllerTest, OAuthIssues) {
MockExtensionInstallPromptDelegate delegate;
ExtensionInstallPrompt::Prompt prompt(
ExtensionInstallPrompt::INSTALL_PROMPT);
NULL, ExtensionInstallPrompt::INSTALL_PROMPT);
std::vector<string16> permissions;
permissions.push_back(UTF8ToUTF16("warning 1"));
prompt.SetPermissions(permissions);
......
......@@ -84,7 +84,7 @@ class ExtensionInstallDialog {
public:
ExtensionInstallDialog(gfx::NativeWindow parent,
content::PageNavigator* navigator,
ExtensionInstallPrompt::Delegate *delegate,
ExtensionInstallPrompt::Delegate* delegate,
const ExtensionInstallPrompt::Prompt& prompt);
private:
~ExtensionInstallDialog();
......
......@@ -240,7 +240,8 @@ ExtensionInstallDialogView::ExtensionInstallDialogView(
int column_set_id = 0;
views::ColumnSet* column_set = layout->AddColumnSet(column_set_id);
int left_column_width = prompt.GetPermissionCount() > 0 ?
int left_column_width =
prompt.GetPermissionCount() + prompt.GetOAuthIssueCount() > 0 ?
kPermissionsLeftColumnWidth : kNoPermissionsLeftColumnWidth;
if (is_bundle_install())
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