Index: chrome/browser/chrome_quota_permission_context.cc |
diff --git a/chrome/browser/chrome_quota_permission_context.cc b/chrome/browser/chrome_quota_permission_context.cc |
index 10a65100af3cdcb415c830edd7c42d9c51bf670d..4c51d9fe01469b47163f8457ef0d14500e017f0a 100644 |
--- a/chrome/browser/chrome_quota_permission_context.cc |
+++ b/chrome/browser/chrome_quota_permission_context.cc |
@@ -37,11 +37,9 @@ |
namespace { |
-#if defined(OS_ANDROID) |
-// If the site requested larger quota than this threshold, show a different |
-// message to the user. |
+// On Android, if the site requested larger quota than this threshold, show a |
+// different message to the user. |
const int64_t kRequestLargeQuotaThreshold = 5 * 1024 * 1024; |
-#endif |
// QuotaPermissionRequest --------------------------------------------- |
@@ -50,6 +48,7 @@ class QuotaPermissionRequest : public PermissionRequest { |
QuotaPermissionRequest( |
ChromeQuotaPermissionContext* context, |
const GURL& origin_url, |
+ bool is_large_quota_request_, |
const content::QuotaPermissionContext::PermissionCallback& callback); |
~QuotaPermissionRequest() override; |
@@ -57,6 +56,9 @@ class QuotaPermissionRequest : public PermissionRequest { |
private: |
// PermissionRequest: |
IconId GetIconId() const override; |
+#if defined(OS_ANDROID) |
+ base::string16 GetMessageText() const override; |
+#endif |
base::string16 GetMessageTextFragment() const override; |
GURL GetOrigin() const override; |
void PermissionGranted() override; |
@@ -65,8 +67,9 @@ class QuotaPermissionRequest : public PermissionRequest { |
void RequestFinished() override; |
PermissionRequestType GetPermissionRequestType() const override; |
- scoped_refptr<ChromeQuotaPermissionContext> context_; |
- GURL origin_url_; |
+ const scoped_refptr<ChromeQuotaPermissionContext> context_; |
+ const GURL origin_url_; |
+ const bool is_large_quota_request_; |
content::QuotaPermissionContext::PermissionCallback callback_; |
DISALLOW_COPY_AND_ASSIGN(QuotaPermissionRequest); |
@@ -75,10 +78,15 @@ class QuotaPermissionRequest : public PermissionRequest { |
QuotaPermissionRequest::QuotaPermissionRequest( |
ChromeQuotaPermissionContext* context, |
const GURL& origin_url, |
+ bool is_large_quota_request, |
const content::QuotaPermissionContext::PermissionCallback& callback) |
: context_(context), |
origin_url_(origin_url), |
- callback_(callback) {} |
+ is_large_quota_request_(is_large_quota_request), |
+ callback_(callback) { |
+ // Suppress unused private field warning on desktop |
+ (void)is_large_quota_request_; |
+} |
QuotaPermissionRequest::~QuotaPermissionRequest() {} |
@@ -91,6 +99,17 @@ PermissionRequest::IconId QuotaPermissionRequest::GetIconId() const { |
#endif |
} |
+#if defined(OS_ANDROID) |
+base::string16 QuotaPermissionRequest::GetMessageText() const { |
+ // If the site requested larger quota than this threshold, show a different |
+ // message to the user. |
+ return l10n_util::GetStringFUTF16( |
+ (is_large_quota_request_ ? IDS_REQUEST_LARGE_QUOTA_INFOBAR_QUESTION |
+ : IDS_REQUEST_QUOTA_INFOBAR_QUESTION), |
+ url_formatter::FormatUrlForSecurityDisplay(origin_url_)); |
+} |
+#endif |
+ |
base::string16 QuotaPermissionRequest::GetMessageTextFragment() const { |
return l10n_util::GetStringUTF16(IDS_REQUEST_QUOTA_PERMISSION_FRAGMENT); |
} |
@@ -268,8 +287,10 @@ void ChromeQuotaPermissionContext::RequestQuotaPermission( |
PermissionRequestManager* permission_request_manager = |
PermissionRequestManager::FromWebContents(web_contents); |
if (permission_request_manager) { |
- permission_request_manager->AddRequest( |
- new QuotaPermissionRequest(this, params.origin_url, callback)); |
+ bool is_large_quota_request = |
+ params.requested_size > kRequestLargeQuotaThreshold; |
+ permission_request_manager->AddRequest(new QuotaPermissionRequest( |
+ this, params.origin_url, is_large_quota_request, callback)); |
return; |
} |
#if defined(OS_ANDROID) |