diff options
author | jochen@chromium.org <jochen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-10-05 20:30:10 +0000 |
---|---|---|
committer | jochen@chromium.org <jochen@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-10-05 20:30:10 +0000 |
commit | d23334c8777ddb3d9369c9c968fb8edcd95d6259 (patch) | |
tree | 7c19b1025dcbc09867f616199b0c5292988e0ce5 | |
parent | 24d452c84418682e7edbe79063a8d1687b681963 (diff) | |
download | chromium_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.mm | 11 | ||||
-rw-r--r-- | chrome/app/chrome_breakpad_client.h | 2 | ||||
-rw-r--r-- | chrome/app/chrome_breakpad_client_mac.mm | 16 | ||||
-rw-r--r-- | components/breakpad/breakpad_client.cc | 4 | ||||
-rw-r--r-- | components/breakpad/breakpad_client.h | 3 |
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 }; |