summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjochen@chromium.org <jochen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-10-05 20:30:10 +0000
committerjochen@chromium.org <jochen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-10-05 20:30:10 +0000
commitd23334c8777ddb3d9369c9c968fb8edcd95d6259 (patch)
tree7c19b1025dcbc09867f616199b0c5292988e0ce5
parent24d452c84418682e7edbe79063a8d1687b681963 (diff)
downloadchromium_src-d23334c8777ddb3d9369c9c968fb8edcd95d6259.zip
chromium_src-d23334c8777ddb3d9369c9c968fb8edcd95d6259.tar.gz
chromium_src-d23334c8777ddb3d9369c9c968fb8edcd95d6259.tar.bz2
Remove dependency from Mac's breakpad implementation to policies.
BUG=247431 R=bauerb@chromium.org Review URL: https://codereview.chromium.org/26000004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@227209 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome/app/breakpad_mac.mm11
-rw-r--r--chrome/app/chrome_breakpad_client.h2
-rw-r--r--chrome/app/chrome_breakpad_client_mac.mm16
-rw-r--r--components/breakpad/breakpad_client.cc4
-rw-r--r--components/breakpad/breakpad_client.h3
5 files changed, 27 insertions, 9 deletions
diff --git a/chrome/app/breakpad_mac.mm b/chrome/app/breakpad_mac.mm
index be32cae..90a786b 100644
--- a/chrome/app/breakpad_mac.mm
+++ b/chrome/app/breakpad_mac.mm
@@ -25,7 +25,6 @@
#import "breakpad/src/client/mac/Framework/Breakpad.h"
#include "content/public/common/content_switches.h"
#include "components/breakpad/breakpad_client.h"
-#include "policy/policy_constants.h"
namespace {
@@ -165,15 +164,9 @@ void InitCrashReporter() {
if (is_browser) {
// Since the configuration management infrastructure is possibly not
// initialized when this code runs, read the policy preference directly.
- base::ScopedCFTypeRef<CFStringRef> key(
- base::SysUTF8ToCFStringRef(policy::key::kMetricsReportingEnabled));
- Boolean key_valid;
- Boolean metrics_reporting_enabled = CFPreferencesGetAppBooleanValue(key,
- kCFPreferencesCurrentApplication, &key_valid);
- if (key_valid &&
- CFPreferencesAppValueIsForced(key, kCFPreferencesCurrentApplication)) {
+ if (breakpad::GetBreakpadClient()->ReportingIsEnforcedByPolicy()) {
// Controlled by configuration manangement.
- enable_breakpad = metrics_reporting_enabled;
+ enable_breakpad = true;
} else {
// Controlled by the user. The crash reporter may be enabled by
// preference or through an environment variable, but the kDisableBreakpad
diff --git a/chrome/app/chrome_breakpad_client.h b/chrome/app/chrome_breakpad_client.h
index 43f6d01..1458b6b 100644
--- a/chrome/app/chrome_breakpad_client.h
+++ b/chrome/app/chrome_breakpad_client.h
@@ -62,6 +62,8 @@ class ChromeBreakpadClient : public breakpad::BreakpadClient {
#if defined(OS_MACOSX)
virtual void InstallAdditionalFilters(BreakpadRef breakpad) OVERRIDE;
+
+ virtual bool ReportingIsEnforcedByPolicy() OVERRIDE;
#endif
private:
diff --git a/chrome/app/chrome_breakpad_client_mac.mm b/chrome/app/chrome_breakpad_client_mac.mm
index 0e842c1..e841440 100644
--- a/chrome/app/chrome_breakpad_client_mac.mm
+++ b/chrome/app/chrome_breakpad_client_mac.mm
@@ -4,8 +4,13 @@
#include "chrome/app/chrome_breakpad_client.h"
+#include <CoreFoundation/CoreFoundation.h>
+
#include "base/command_line.h"
+#include "base/mac/scoped_cftyperef.h"
+#include "base/strings/sys_string_conversions.h"
#include "chrome/common/chrome_switches.h"
+#include "policy/policy_constants.h"
#if !defined(DISABLE_NACL)
#import "breakpad/src/client/mac/Framework/Breakpad.h"
@@ -37,4 +42,15 @@ void ChromeBreakpadClient::InstallAdditionalFilters(BreakpadRef breakpad) {
#endif
}
+bool ChromeBreakpadClient::ReportingIsEnforcedByPolicy() {
+ base::ScopedCFTypeRef<CFStringRef> key(
+ base::SysUTF8ToCFStringRef(policy::key::kMetricsReportingEnabled));
+ Boolean key_valid;
+ Boolean metrics_reporting_enabled = CFPreferencesGetAppBooleanValue(key,
+ kCFPreferencesCurrentApplication, &key_valid);
+ return key_valid &&
+ CFPreferencesAppValueIsForced(key, kCFPreferencesCurrentApplication) &&
+ metrics_reporting_enabled;
+}
+
} // namespace chrome
diff --git a/components/breakpad/breakpad_client.cc b/components/breakpad/breakpad_client.cc
index c00b75f..fed987e 100644
--- a/components/breakpad/breakpad_client.cc
+++ b/components/breakpad/breakpad_client.cc
@@ -112,6 +112,10 @@ int BreakpadClient::GetAndroidMinidumpDescriptor() {
#if defined(OS_MACOSX)
void BreakpadClient::InstallAdditionalFilters(BreakpadRef breakpad) {
}
+
+bool BreakpadClient::ReportingIsEnforcedByPolicy() {
+ return false;
+}
#endif
} // namespace breakpad
diff --git a/components/breakpad/breakpad_client.h b/components/breakpad/breakpad_client.h
index 61849af..e92b8cb 100644
--- a/components/breakpad/breakpad_client.h
+++ b/components/breakpad/breakpad_client.h
@@ -124,6 +124,9 @@ class BreakpadClient {
#if defined(OS_MACOSX)
// Install additional breakpad filter callbacks.
virtual void InstallAdditionalFilters(BreakpadRef breakpad);
+
+ // Returns true if breakpad is enforced via management policies.
+ virtual bool ReportingIsEnforcedByPolicy();
#endif
};