#include "base/prefs/pref_service.h"
#include "base/strings/utf_string_conversions.h"
#include "chrome/browser/infobars/confirm_infobar_delegate.h"
-#include "chrome/browser/infobars/infobar.h"
#include "chrome/browser/infobars/infobar_service.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/tab_contents/tab_util.h"
#include "chrome/browser/ui/website_settings/permission_bubble_manager.h"
#include "chrome/browser/ui/website_settings/permission_bubble_request.h"
#include "chrome/common/pref_names.h"
+#include "components/infobars/core/infobar.h"
#include "content/public/browser/browser_thread.h"
#include "content/public/browser/navigation_details.h"
#include "content/public/browser/web_contents.h"
ChromeQuotaPermissionContext* context,
const GURL& origin_url,
int64 requested_quota,
+ bool user_gesture,
const std::string& display_languages,
const content::QuotaPermissionContext::PermissionCallback& callback);
GURL origin_url_;
std::string display_languages_;
int64 requested_quota_;
+ bool user_gesture_;
content::QuotaPermissionContext::PermissionCallback callback_;
DISALLOW_COPY_AND_ASSIGN(QuotaPermissionRequest);
ChromeQuotaPermissionContext* context,
const GURL& origin_url,
int64 requested_quota,
+ bool user_gesture,
const std::string& display_languages,
const content::QuotaPermissionContext::PermissionCallback& callback)
: context_(context),
origin_url_(origin_url),
display_languages_(display_languages),
requested_quota_(requested_quota),
+ user_gesture_(user_gesture),
callback_(callback) {}
QuotaPermissionRequest::~QuotaPermissionRequest() {}
}
bool QuotaPermissionRequest::HasUserGesture() const {
- // TODO(gbillock): plumb this through
- return false;
+ return user_gesture_;
}
GURL QuotaPermissionRequest::GetRequestingHostname() const {
// ConfirmInfoBarDelegate:
virtual bool ShouldExpireInternal(
- const content::LoadCommittedDetails& details) const OVERRIDE;
+ const NavigationDetails& details) const OVERRIDE;
virtual base::string16 GetMessageText() const OVERRIDE;
virtual bool Accept() OVERRIDE;
virtual bool Cancel() OVERRIDE;
}
bool RequestQuotaInfoBarDelegate::ShouldExpireInternal(
- const content::LoadCommittedDetails& details) const {
+ const NavigationDetails& details) const {
return false;
}
}
void ChromeQuotaPermissionContext::RequestQuotaPermission(
- const GURL& origin_url,
- quota::StorageType type,
- int64 requested_quota,
+ const content::StorageQuotaParams& params,
int render_process_id,
- int render_view_id,
const PermissionCallback& callback) {
- if (type != quota::kStorageTypePersistent) {
+ if (params.storage_type != quota::kStorageTypePersistent) {
// For now we only support requesting quota with this interface
// for Persistent storage type.
callback.Run(QUOTA_PERMISSION_RESPONSE_DISALLOW);
content::BrowserThread::PostTask(
content::BrowserThread::UI, FROM_HERE,
base::Bind(&ChromeQuotaPermissionContext::RequestQuotaPermission, this,
- origin_url, type, requested_quota, render_process_id,
- render_view_id, callback));
+ params, render_process_id, callback));
return;
}
content::WebContents* web_contents =
- tab_util::GetWebContentsByID(render_process_id, render_view_id);
+ tab_util::GetWebContentsByID(render_process_id,
+ params.render_view_id);
if (!web_contents) {
// The tab may have gone away or the request may not be from a tab.
LOG(WARNING) << "Attempt to request quota tabless renderer: "
- << render_process_id << "," << render_view_id;
+ << render_process_id << "," << params.render_view_id;
DispatchCallbackOnIOThread(callback, QUOTA_PERMISSION_RESPONSE_CANCELLED);
return;
}
PermissionBubbleManager* bubble_manager =
PermissionBubbleManager::FromWebContents(web_contents);
bubble_manager->AddRequest(new QuotaPermissionRequest(this,
- origin_url, requested_quota,
+ params.origin_url, params.requested_size, params.user_gesture,
Profile::FromBrowserContext(web_contents->GetBrowserContext())->
GetPrefs()->GetString(prefs::kAcceptLanguages),
callback));
if (!infobar_service) {
// The tab has no infobar service.
LOG(WARNING) << "Attempt to request quota from a background page: "
- << render_process_id << "," << render_view_id;
+ << render_process_id << "," << params.render_view_id;
DispatchCallbackOnIOThread(callback, QUOTA_PERMISSION_RESPONSE_CANCELLED);
return;
}
RequestQuotaInfoBarDelegate::Create(
- infobar_service, this, origin_url, requested_quota,
+ infobar_service, this, params.origin_url, params.requested_size,
Profile::FromBrowserContext(web_contents->GetBrowserContext())->
GetPrefs()->GetString(prefs::kAcceptLanguages),
callback);