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: |