Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2385)

Unified Diff: chrome/browser/permissions/permission_manager.cc

Issue 1767423002: [Do not commit] Track revocations in content_settings::Observer (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/permissions/permission_manager.h ('k') | chrome/browser/permissions/permission_uma_util.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/permissions/permission_manager.cc
diff --git a/chrome/browser/permissions/permission_manager.cc b/chrome/browser/permissions/permission_manager.cc
index c1a719a45241bd34562014df15d8fad512357426..3dfdc0ab73a4226f91e7bea146034c3d738e9662 100644
--- a/chrome/browser/permissions/permission_manager.cc
+++ b/chrome/browser/permissions/permission_manager.cc
@@ -12,6 +12,7 @@
#include "chrome/browser/permissions/permission_context.h"
#include "chrome/browser/permissions/permission_context_base.h"
#include "chrome/browser/permissions/permission_request_id.h"
+#include "chrome/browser/permissions/permission_uma_util.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/tab_contents/tab_util.h"
#include "components/content_settings/core/browser/host_content_settings_map.h"
@@ -198,6 +199,7 @@ struct PermissionManager::Subscription {
PermissionManager::PermissionManager(Profile* profile)
: profile_(profile),
weak_ptr_factory_(this) {
+ HostContentSettingsMapFactory::GetForProfile(profile_)->AddObserver(this);
}
PermissionManager::~PermissionManager() {
@@ -351,8 +353,6 @@ int PermissionManager::SubscribePermissionStatusChange(
const GURL& requesting_origin,
const GURL& embedding_origin,
const base::Callback<void(PermissionStatus)>& callback) {
- if (subscriptions_.IsEmpty())
- HostContentSettingsMapFactory::GetForProfile(profile_)->AddObserver(this);
Subscription* subscription = new Subscription();
subscription->permission = permission;
@@ -375,10 +375,6 @@ int PermissionManager::SubscribePermissionStatusChange(
void PermissionManager::UnsubscribePermissionStatusChange(int subscription_id) {
// Whether |subscription_id| is known will be checked by the Remove() call.
subscriptions_.Remove(subscription_id);
-
- if (subscriptions_.IsEmpty())
- HostContentSettingsMapFactory::GetForProfile(profile_)
- ->RemoveObserver(this);
}
bool PermissionManager::IsPermissionBubbleManagerMissing(
@@ -392,9 +388,14 @@ void PermissionManager::OnContentSettingChanged(
const ContentSettingsPattern& primary_pattern,
const ContentSettingsPattern& secondary_pattern,
ContentSettingsType content_type,
+ ContentSetting previous_value,
std::string resource_identifier) {
std::list<base::Closure> callbacks;
+ PermissionUmaUtil::OnContentsettingChanged(profile_, primary_pattern,
+ secondary_pattern, content_type,
+ previous_value);
+
for (SubscriptionsMap::iterator iter(&subscriptions_);
!iter.IsAtEnd(); iter.Advance()) {
Subscription* subscription = iter.GetCurrentValue();
« no previous file with comments | « chrome/browser/permissions/permission_manager.h ('k') | chrome/browser/permissions/permission_uma_util.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698