Index: base/process/process_mac.cc |
diff --git a/base/process/process_mac.cc b/base/process/process_mac.cc |
index f83fbb9991e952e3859e6db9dc8811761b1ea4b0..bc045cd72aa73350f8beb39515564f85a33e34e4 100644 |
--- a/base/process/process_mac.cc |
+++ b/base/process/process_mac.cc |
@@ -8,15 +8,27 @@ |
#include "base/feature_list.h" |
#include "base/mac/mach_logging.h" |
+#include "base/metrics/field_trial_params.h" |
namespace base { |
+namespace { |
+const char kAppNapFeatureParamName[] = "app_nap"; |
+} |
+ |
// Enables backgrounding hidden renderers on Mac. |
const Feature kMacAllowBackgroundingProcesses{"MacAllowBackgroundingProcesses", |
FEATURE_DISABLED_BY_DEFAULT}; |
+bool Process::IsAppNapEnabled() { |
+ return !base::GetFieldTrialParamValueByFeature( |
+ kMacAllowBackgroundingProcesses, kAppNapFeatureParamName) |
+ .empty(); |
+} |
+ |
bool Process::CanBackgroundProcesses() { |
- return FeatureList::IsEnabled(kMacAllowBackgroundingProcesses); |
+ return FeatureList::IsEnabled(kMacAllowBackgroundingProcesses) && |
+ !IsAppNapEnabled(); |
} |
bool Process::IsProcessBackgrounded(PortProvider* port_provider) const { |