Split out PermissionResult and PermissionStatusSource into a new cc/h file.
BUG=679877
Review-Url: https://codereview.chromium.org/2715623003
Cr-Commit-Position: refs/heads/master@{#452736}
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
index a8f622a6..21c5460 100644
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
@@ -863,6 +863,8 @@
"permissions/permission_request_impl.h",
"permissions/permission_request_manager.cc",
"permissions/permission_request_manager.h",
+ "permissions/permission_result.cc",
+ "permissions/permission_result.h",
"permissions/permission_uma_util.cc",
"permissions/permission_uma_util.h",
"permissions/permission_util.cc",
diff --git a/chrome/browser/permissions/permission_context_base.cc b/chrome/browser/permissions/permission_context_base.cc
index 006faa07..be0dce6d 100644
--- a/chrome/browser/permissions/permission_context_base.cc
+++ b/chrome/browser/permissions/permission_context_base.cc
@@ -23,6 +23,7 @@
#include "chrome/browser/permissions/permission_request_impl.h"
#include "chrome/browser/permissions/permission_request_manager.h"
#include "chrome/browser/permissions/permission_uma_util.h"
+#include "chrome/browser/permissions/permission_util.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/safe_browsing/safe_browsing_service.h"
#include "chrome/common/chrome_features.h"
diff --git a/chrome/browser/permissions/permission_context_base.h b/chrome/browser/permissions/permission_context_base.h
index cf995ef..7aa905e 100644
--- a/chrome/browser/permissions/permission_context_base.h
+++ b/chrome/browser/permissions/permission_context_base.h
@@ -12,7 +12,7 @@
#include "base/memory/weak_ptr.h"
#include "build/build_config.h"
#include "chrome/browser/permissions/permission_request.h"
-#include "chrome/browser/permissions/permission_util.h"
+#include "chrome/browser/permissions/permission_result.h"
#include "components/content_settings/core/common/content_settings.h"
#include "components/content_settings/core/common/content_settings_types.h"
#include "components/keyed_service/core/keyed_service.h"
diff --git a/chrome/browser/permissions/permission_decision_auto_blocker.cc b/chrome/browser/permissions/permission_decision_auto_blocker.cc
index f6edf74c..4dcc5fa9 100644
--- a/chrome/browser/permissions/permission_decision_auto_blocker.cc
+++ b/chrome/browser/permissions/permission_decision_auto_blocker.cc
@@ -13,6 +13,7 @@
#include "chrome/browser/browser_process.h"
#include "chrome/browser/content_settings/host_content_settings_map_factory.h"
#include "chrome/browser/permissions/permission_blacklist_client.h"
+#include "chrome/browser/permissions/permission_util.h"
#include "chrome/browser/profiles/incognito_helpers.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/safe_browsing/safe_browsing_service.h"
diff --git a/chrome/browser/permissions/permission_decision_auto_blocker.h b/chrome/browser/permissions/permission_decision_auto_blocker.h
index 47eba8f..c334628d 100644
--- a/chrome/browser/permissions/permission_decision_auto_blocker.h
+++ b/chrome/browser/permissions/permission_decision_auto_blocker.h
@@ -10,7 +10,7 @@
#include "base/memory/ref_counted.h"
#include "base/memory/singleton.h"
#include "base/time/default_clock.h"
-#include "chrome/browser/permissions/permission_util.h"
+#include "chrome/browser/permissions/permission_result.h"
#include "components/content_settings/core/common/content_settings_types.h"
#include "components/keyed_service/content/browser_context_keyed_service_factory.h"
#include "components/keyed_service/core/keyed_service.h"
diff --git a/chrome/browser/permissions/permission_result.cc b/chrome/browser/permissions/permission_result.cc
new file mode 100644
index 0000000..2a4bd49
--- /dev/null
+++ b/chrome/browser/permissions/permission_result.cc
@@ -0,0 +1,11 @@
+// Copyright 2017 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/browser/permissions/permission_result.h"
+
+PermissionResult::PermissionResult(ContentSetting cs,
+ PermissionStatusSource pss)
+ : content_setting(cs), source(pss) {}
+
+PermissionResult::~PermissionResult() {}
diff --git a/chrome/browser/permissions/permission_result.h b/chrome/browser/permissions/permission_result.h
new file mode 100644
index 0000000..04d2fda
--- /dev/null
+++ b/chrome/browser/permissions/permission_result.h
@@ -0,0 +1,37 @@
+// Copyright 2017 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_BROWSER_PERMISSIONS_PERMISSION_RESULT_H_
+#define CHROME_BROWSER_PERMISSIONS_PERMISSION_RESULT_H_
+
+#include "components/content_settings/core/common/content_settings.h"
+
+// Identifies the source or reason for a permission status being returned. This
+// enum backs an UMA histogram and must be treated as append-only.
+enum class PermissionStatusSource {
+ // The reason for the status is not specified.
+ UNSPECIFIED,
+
+ // The status is the result of being blocked due to the user dismissing a
+ // permission prompt multiple times.
+ MULTIPLE_DISMISSALS,
+
+ // The status is the result of being blocked because the permission is on the
+ // safe browsing blacklist.
+ SAFE_BROWSING_BLACKLIST,
+
+ // The status is the result of being blocked by the permissions kill switch.
+ KILL_SWITCH,
+};
+
+struct PermissionResult {
+ PermissionResult(ContentSetting content_setting,
+ PermissionStatusSource source);
+ ~PermissionResult();
+
+ ContentSetting content_setting;
+ PermissionStatusSource source;
+};
+
+#endif // CHROME_BROWSER_PERMISSIONS_PERMISSION_RESULT_H_
diff --git a/chrome/browser/permissions/permission_uma_util.h b/chrome/browser/permissions/permission_uma_util.h
index a8e67aa..c22d2bc 100644
--- a/chrome/browser/permissions/permission_uma_util.h
+++ b/chrome/browser/permissions/permission_uma_util.h
@@ -11,7 +11,9 @@
#include "base/macros.h"
#include "base/time/time.h"
#include "chrome/browser/permissions/permission_request.h"
+#include "chrome/browser/permissions/permission_result.h"
#include "chrome/browser/permissions/permission_util.h"
+#include "content/public/browser/permission_type.h"
enum class PermissionRequestGestureType;
class GURL;
diff --git a/chrome/browser/permissions/permission_util.cc b/chrome/browser/permissions/permission_util.cc
index 09ae219..bae51e0 100644
--- a/chrome/browser/permissions/permission_util.cc
+++ b/chrome/browser/permissions/permission_util.cc
@@ -15,12 +15,6 @@
using content::PermissionType;
-PermissionResult::PermissionResult(ContentSetting cs,
- PermissionStatusSource pss)
- : content_setting(cs), source(pss) {}
-
-PermissionResult::~PermissionResult() {}
-
// The returned strings must match the RAPPOR metrics in rappor.xml,
// and any Field Trial configs for the Permissions kill switch e.g.
// Permissions.Action.Geolocation etc..
diff --git a/chrome/browser/permissions/permission_util.h b/chrome/browser/permissions/permission_util.h
index d746ca9..b965ceb2 100644
--- a/chrome/browser/permissions/permission_util.h
+++ b/chrome/browser/permissions/permission_util.h
@@ -35,33 +35,6 @@
NUM,
};
-// Identifies the source or reason for a permission status being returned. This
-// enum backs an UMA histogram and must be treated as append-only.
-enum class PermissionStatusSource {
- // The reason for the status is not specified.
- UNSPECIFIED,
-
- // The status is the result of being blocked due to the user dismissing a
- // permission prompt multiple times.
- MULTIPLE_DISMISSALS,
-
- // The status is the result of being blocked because the permission is on the
- // safe browsing blacklist.
- SAFE_BROWSING_BLACKLIST,
-
- // The status is the result of being blocked by the permissions kill switch.
- KILL_SWITCH,
-};
-
-struct PermissionResult {
- PermissionResult(ContentSetting content_setting,
- PermissionStatusSource source);
- ~PermissionResult();
-
- ContentSetting content_setting;
- PermissionStatusSource source;
-};
-
// A utility class for permissions.
class PermissionUtil {
public: