Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1005)

Unified Diff: base/metrics/field_trial.cc

Issue 2555453002: Share field trial allocator on MacOS (Closed)
Patch Set: Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« base/memory/shared_memory_handle_mac.cc ('K') | « base/metrics/field_trial.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: base/metrics/field_trial.cc
diff --git a/base/metrics/field_trial.cc b/base/metrics/field_trial.cc
index f11ef3535364ea609421842b99504373d36e0b52..2f28d725dfbc494a5fc3a93475d9cd299cdfb793 100644
--- a/base/metrics/field_trial.cc
+++ b/base/metrics/field_trial.cc
@@ -28,7 +28,7 @@
#define POSIX_WITH_ZYGOTE 1
#endif
-#if defined(POSIX_WITH_ZYGOTE)
+#if defined(POSIX_WITH_ZYGOTE) || defined(OS_MACOSX)
#include "base/posix/global_descriptors.h"
#endif
@@ -269,7 +269,7 @@ HANDLE CreateReadOnlyHandle(FieldTrialList::FieldTrialAllocator* allocator) {
}
#endif
-#if defined(POSIX_WITH_ZYGOTE)
+#if defined(POSIX_WITH_ZYGOTE) || defined(OS_MACOSX)
int CreateReadOnlyHandle(FieldTrialList::FieldTrialAllocator* allocator) {
SharedMemoryHandle new_handle;
allocator->shared_memory()->ShareReadOnlyToProcess(GetCurrentProcessHandle(),
@@ -790,7 +790,7 @@ void FieldTrialList::CreateTrialsFromCommandLine(
}
#endif
-#if defined(POSIX_WITH_ZYGOTE)
+#if defined(POSIX_WITH_ZYGOTE) || defined(OS_MACOSX)
// If we failed to create trials from the descriptor, fallback to the command
// line. Otherwise we're good -- return.
if (CreateTrialsFromDescriptor(fd_key))
@@ -805,7 +805,7 @@ void FieldTrialList::CreateTrialsFromCommandLine(
}
}
-#if defined(POSIX_WITH_ZYGOTE)
+#if defined(POSIX_WITH_ZYGOTE) || defined(OS_MACOSX)
// static
bool FieldTrialList::CreateTrialsFromDescriptor(int fd_key) {
if (!kUseSharedMemoryForFieldTrials)
@@ -861,7 +861,7 @@ void FieldTrialList::CopyFieldTrialStateToFlags(
if (!global_)
return;
-#if defined(OS_WIN) || defined(POSIX_WITH_ZYGOTE)
+#if defined(OS_WIN) || defined(POSIX_WITH_ZYGOTE) || defined(OS_MACOSX)
// Use shared memory to pass the state if the feature is enabled, otherwise
// fallback to passing it via the command line as a string.
if (kUseSharedMemoryForFieldTrials) {
@@ -1154,6 +1154,9 @@ void FieldTrialList::InstantiateFieldTrialAllocatorIfNeeded() {
SharedMemoryCreateOptions options;
options.size = kFieldTrialAllocationSize;
options.share_read_only = true;
+#if defined(OS_MACOSX)
+ options.type = SharedMemoryHandle::POSIX;
+#endif
std::unique_ptr<SharedMemory> shm(new SharedMemory());
if (!shm->Create(options))
@@ -1171,7 +1174,7 @@ void FieldTrialList::InstantiateFieldTrialAllocatorIfNeeded() {
AddToAllocatorWhileLocked(registered.second);
}
-#if defined(OS_WIN) || defined(POSIX_WITH_ZYGOTE)
+#if defined(OS_WIN) || defined(POSIX_WITH_ZYGOTE) || defined(OS_MACOSX)
// Set |readonly_allocator_handle_| so we can pass it to be inherited and
// via the command line.
global_->readonly_allocator_handle_ =
« base/memory/shared_memory_handle_mac.cc ('K') | « base/metrics/field_trial.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698