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: