| Index: chrome/browser/content_settings/permission_context_base.cc
|
| diff --git a/chrome/browser/content_settings/permission_context_base.cc b/chrome/browser/content_settings/permission_context_base.cc
|
| index 585d802a41a0ce2bfb091bb49570df9ece089737..e82419df72ffd51cc2978ed1b961365f00de9f4d 100644
|
| --- a/chrome/browser/content_settings/permission_context_base.cc
|
| +++ b/chrome/browser/content_settings/permission_context_base.cc
|
| @@ -29,7 +29,7 @@ PermissionContextBase::PermissionContextBase(
|
| }
|
|
|
| PermissionContextBase::~PermissionContextBase() {
|
| - DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI));
|
| + DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
|
| }
|
|
|
| void PermissionContextBase::RequestPermission(
|
| @@ -38,7 +38,7 @@ void PermissionContextBase::RequestPermission(
|
| const GURL& requesting_frame,
|
| bool user_gesture,
|
| const BrowserPermissionCallback& callback) {
|
| - DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI));
|
| + DCHECK_CURRENTLY_ON(content::BrowserThread::UI);
|
|
|
| DecidePermission(web_contents,
|
| id,
|
| @@ -48,6 +48,25 @@ void PermissionContextBase::RequestPermission(
|
| callback);
|
| }
|
|
|
| +void PermissionContextBase::CancelPermissionRequest(
|
| + content::WebContents* web_contents,
|
| + const PermissionRequestID& id) {
|
| + DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI));
|
| +
|
| + if (PermissionBubbleManager::Enabled()) {
|
| + PermissionBubbleRequest* cancelling =
|
| + pending_bubbles_.get(id.ToString());
|
| + if (cancelling != NULL && web_contents != NULL &&
|
| + PermissionBubbleManager::FromWebContents(web_contents) != NULL) {
|
| + PermissionBubbleManager::FromWebContents(web_contents)->
|
| + CancelRequest(cancelling);
|
| + }
|
| + return;
|
| + }
|
| +
|
| + GetQueueController()->CancelInfoBarRequest(id);
|
| +}
|
| +
|
| void PermissionContextBase::DecidePermission(
|
| content::WebContents* web_contents,
|
| const PermissionRequestID& id,
|
| @@ -58,7 +77,8 @@ void PermissionContextBase::DecidePermission(
|
| DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI));
|
|
|
| ContentSetting content_setting =
|
| - profile_->GetHostContentSettingsMap()->GetContentSetting(
|
| + profile_->GetHostContentSettingsMap()
|
| + ->GetContentSettingAndMaybeUpdateLastUsage(
|
| requesting_origin, embedder_origin, permission_type_, std::string());
|
| switch (content_setting) {
|
| case CONTENT_SETTING_BLOCK:
|
|
|