Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "content/public/app/content_main_runner.h" | 5 #include "content/public/app/content_main_runner.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 #include <stdlib.h> | 8 #include <stdlib.h> |
| 9 #include <string.h> | 9 #include <string.h> |
| 10 | 10 |
| (...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 137 *base::CommandLine::ForCurrentProcess(); | 137 *base::CommandLine::ForCurrentProcess(); |
| 138 | 138 |
| 139 // Initialize statistical testing infrastructure. We set the entropy | 139 // Initialize statistical testing infrastructure. We set the entropy |
| 140 // provider to nullptr to disallow non-browser processes from creating | 140 // provider to nullptr to disallow non-browser processes from creating |
| 141 // their own one-time randomized trials; they should be created in the | 141 // their own one-time randomized trials; they should be created in the |
| 142 // browser process. | 142 // browser process. |
| 143 field_trial_list->reset(new base::FieldTrialList(nullptr)); | 143 field_trial_list->reset(new base::FieldTrialList(nullptr)); |
| 144 | 144 |
| 145 // Ensure any field trials in browser are reflected into the child | 145 // Ensure any field trials in browser are reflected into the child |
| 146 // process. | 146 // process. |
| 147 #if defined(OS_POSIX) && !defined(OS_NACL) && !defined(OS_MACOSX) && \ | |
| 148 !defined(OS_ANDROID) | |
|
jochen (gone - plz use gerrit)
2016/11/29 15:13:39
e.g. https://cs.chromium.org/chromium/src/content/
lawrencewu
2016/11/29 15:24:51
I wasn't sure if NaCl was POSIX-compliant and if i
| |
| 149 // On POSIX systems that use the zygote, we get the trials from a shared | |
| 150 // memory segment backed by an fd instead of the command line. | |
| 151 bool result = | |
| 152 base::FieldTrialList::CreateTrialsFromDescriptor(kFieldTrialDescriptor); | |
| 153 if (!result) { | |
| 154 base::FieldTrialList::CreateTrialsFromCommandLine( | |
| 155 command_line, switches::kFieldTrialHandle); | |
| 156 } | |
| 157 #else | |
| 147 base::FieldTrialList::CreateTrialsFromCommandLine( | 158 base::FieldTrialList::CreateTrialsFromCommandLine( |
| 148 command_line, switches::kFieldTrialHandle); | 159 command_line, switches::kFieldTrialHandle); |
| 160 #endif | |
| 149 | 161 |
| 150 std::unique_ptr<base::FeatureList> feature_list(new base::FeatureList); | 162 std::unique_ptr<base::FeatureList> feature_list(new base::FeatureList); |
| 151 feature_list->InitializeFromCommandLine( | 163 feature_list->InitializeFromCommandLine( |
| 152 command_line.GetSwitchValueASCII(switches::kEnableFeatures), | 164 command_line.GetSwitchValueASCII(switches::kEnableFeatures), |
| 153 command_line.GetSwitchValueASCII(switches::kDisableFeatures)); | 165 command_line.GetSwitchValueASCII(switches::kDisableFeatures)); |
| 154 base::FeatureList::SetInstance(std::move(feature_list)); | 166 base::FeatureList::SetInstance(std::move(feature_list)); |
| 155 } | 167 } |
| 156 | 168 |
| 157 } // namespace | 169 } // namespace |
| 158 | 170 |
| (...skipping 312 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 471 // - The ipc_fd is passed through the Java service. | 483 // - The ipc_fd is passed through the Java service. |
| 472 // Thus, these are all disabled. | 484 // Thus, these are all disabled. |
| 473 #if !defined(OS_ANDROID) | 485 #if !defined(OS_ANDROID) |
| 474 // Set C library locale to make sure CommandLine can parse argument values | 486 // Set C library locale to make sure CommandLine can parse argument values |
| 475 // in correct encoding. | 487 // in correct encoding. |
| 476 setlocale(LC_ALL, ""); | 488 setlocale(LC_ALL, ""); |
| 477 | 489 |
| 478 SetupSignalHandlers(); | 490 SetupSignalHandlers(); |
| 479 g_fds->Set(kMojoIPCChannel, | 491 g_fds->Set(kMojoIPCChannel, |
| 480 kMojoIPCChannel + base::GlobalDescriptors::kBaseDescriptor); | 492 kMojoIPCChannel + base::GlobalDescriptors::kBaseDescriptor); |
| 493 | |
| 494 g_fds->Set( | |
| 495 kFieldTrialDescriptor, | |
| 496 kFieldTrialDescriptor + base::GlobalDescriptors::kBaseDescriptor); | |
| 481 #endif // !OS_ANDROID | 497 #endif // !OS_ANDROID |
| 482 | 498 |
| 483 #if defined(OS_LINUX) || defined(OS_OPENBSD) | 499 #if defined(OS_LINUX) || defined(OS_OPENBSD) |
| 484 g_fds->Set(kCrashDumpSignal, | 500 g_fds->Set(kCrashDumpSignal, |
| 485 kCrashDumpSignal + base::GlobalDescriptors::kBaseDescriptor); | 501 kCrashDumpSignal + base::GlobalDescriptors::kBaseDescriptor); |
| 486 #endif // OS_LINUX || OS_OPENBSD | 502 #endif // OS_LINUX || OS_OPENBSD |
| 487 | 503 |
| 488 | 504 |
| 489 #endif // !OS_WIN | 505 #endif // !OS_WIN |
| 490 | 506 |
| (...skipping 340 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 831 | 847 |
| 832 DISALLOW_COPY_AND_ASSIGN(ContentMainRunnerImpl); | 848 DISALLOW_COPY_AND_ASSIGN(ContentMainRunnerImpl); |
| 833 }; | 849 }; |
| 834 | 850 |
| 835 // static | 851 // static |
| 836 ContentMainRunner* ContentMainRunner::Create() { | 852 ContentMainRunner* ContentMainRunner::Create() { |
| 837 return new ContentMainRunnerImpl(); | 853 return new ContentMainRunnerImpl(); |
| 838 } | 854 } |
| 839 | 855 |
| 840 } // namespace content | 856 } // namespace content |
| OLD | NEW |