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

Side by Side Diff: content/common/child_process_host_impl.cc

Issue 2741723003: Revert of memory-infra: Finish moving to Mojo (2nd attempt) (Closed)
Patch Set: Created 3 years, 9 months 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 unified diff | Download patch
OLDNEW
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/common/child_process_host_impl.h" 5 #include "content/common/child_process_host_impl.h"
6 6
7 #include <limits> 7 #include <limits>
8 8
9 #include "base/atomic_sequence_num.h" 9 #include "base/atomic_sequence_num.h"
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 14 matching lines...) Expand all
25 #include "content/common/child_process_messages.h" 25 #include "content/common/child_process_messages.h"
26 #include "content/public/common/child_process_host_delegate.h" 26 #include "content/public/common/child_process_host_delegate.h"
27 #include "content/public/common/content_paths.h" 27 #include "content/public/common/content_paths.h"
28 #include "content/public/common/content_switches.h" 28 #include "content/public/common/content_switches.h"
29 #include "ipc/ipc.mojom.h" 29 #include "ipc/ipc.mojom.h"
30 #include "ipc/ipc_channel.h" 30 #include "ipc/ipc_channel.h"
31 #include "ipc/ipc_channel_mojo.h" 31 #include "ipc/ipc_channel_mojo.h"
32 #include "ipc/ipc_logging.h" 32 #include "ipc/ipc_logging.h"
33 #include "ipc/message_filter.h" 33 #include "ipc/message_filter.h"
34 #include "mojo/edk/embedder/embedder.h" 34 #include "mojo/edk/embedder/embedder.h"
35 #include "services/resource_coordinator/public/interfaces/memory/constants.mojom .h"
36 #include "services/service_manager/public/cpp/interface_provider.h" 35 #include "services/service_manager/public/cpp/interface_provider.h"
37 36
38 #if defined(OS_LINUX) 37 #if defined(OS_LINUX)
39 #include "base/linux_util.h" 38 #include "base/linux_util.h"
40 #elif defined(OS_WIN) 39 #elif defined(OS_WIN)
41 #include "content/common/font_cache_dispatcher_win.h" 40 #include "content/common/font_cache_dispatcher_win.h"
42 #endif // OS_LINUX 41 #endif // OS_LINUX
43 42
44 namespace { 43 namespace {
45 44
46 // Global atomic to generate child process unique IDs. 45 // Global atomic to generate child process unique IDs.
47 base::StaticAtomicSequenceNumber g_unique_id; 46 base::StaticAtomicSequenceNumber g_unique_id;
48 47
49 } // namespace 48 } // namespace
50 49
51 namespace content { 50 namespace content {
52 51
53 int ChildProcessHost::kInvalidUniqueID = -1; 52 int ChildProcessHost::kInvalidUniqueID = -1;
54 53
54 uint64_t ChildProcessHost::kBrowserTracingProcessId =
55 std::numeric_limits<uint64_t>::max();
56
55 // static 57 // static
56 ChildProcessHost* ChildProcessHost::Create(ChildProcessHostDelegate* delegate) { 58 ChildProcessHost* ChildProcessHost::Create(ChildProcessHostDelegate* delegate) {
57 return new ChildProcessHostImpl(delegate); 59 return new ChildProcessHostImpl(delegate);
58 } 60 }
59 61
60 // static 62 // static
61 base::FilePath ChildProcessHost::GetChildPath(int flags) { 63 base::FilePath ChildProcessHost::GetChildPath(int flags) {
62 base::FilePath child_path; 64 base::FilePath child_path;
63 65
64 child_path = base::CommandLine::ForCurrentProcess()->GetSwitchValuePath( 66 child_path = base::CommandLine::ForCurrentProcess()->GetSwitchValuePath(
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after
196 198
197 uint64_t ChildProcessHostImpl::ChildProcessUniqueIdToTracingProcessId( 199 uint64_t ChildProcessHostImpl::ChildProcessUniqueIdToTracingProcessId(
198 int child_process_id) { 200 int child_process_id) {
199 // In single process mode, all the children are hosted in the same process, 201 // In single process mode, all the children are hosted in the same process,
200 // therefore the generated memory dump guids should not be conditioned by the 202 // therefore the generated memory dump guids should not be conditioned by the
201 // child process id. The clients need not be aware of SPM and the conversion 203 // child process id. The clients need not be aware of SPM and the conversion
202 // takes care of the SPM special case while translating child process ids to 204 // takes care of the SPM special case while translating child process ids to
203 // tracing process ids. 205 // tracing process ids.
204 if (base::CommandLine::ForCurrentProcess()->HasSwitch( 206 if (base::CommandLine::ForCurrentProcess()->HasSwitch(
205 switches::kSingleProcess)) 207 switches::kSingleProcess))
206 return memory_instrumentation::mojom::kServiceTracingProcessId; 208 return ChildProcessHost::kBrowserTracingProcessId;
207 209
208 // The hash value is incremented so that the tracing id is never equal to 210 // The hash value is incremented so that the tracing id is never equal to
209 // MemoryDumpManager::kInvalidTracingProcessId. 211 // MemoryDumpManager::kInvalidTracingProcessId.
210 return static_cast<uint64_t>( 212 return static_cast<uint64_t>(
211 base::Hash(reinterpret_cast<const char*>(&child_process_id), 213 base::Hash(reinterpret_cast<const char*>(&child_process_id),
212 sizeof(child_process_id))) + 214 sizeof(child_process_id))) +
213 1; 215 1;
214 } 216 }
215 217
216 bool ChildProcessHostImpl::OnMessageReceived(const IPC::Message& msg) { 218 bool ChildProcessHostImpl::OnMessageReceived(const IPC::Message& msg) {
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
279 void ChildProcessHostImpl::OnBadMessageReceived(const IPC::Message& message) { 281 void ChildProcessHostImpl::OnBadMessageReceived(const IPC::Message& message) {
280 delegate_->OnBadMessageReceived(message); 282 delegate_->OnBadMessageReceived(message);
281 } 283 }
282 284
283 void ChildProcessHostImpl::OnShutdownRequest() { 285 void ChildProcessHostImpl::OnShutdownRequest() {
284 if (delegate_->CanShutdown()) 286 if (delegate_->CanShutdown())
285 Send(new ChildProcessMsg_Shutdown()); 287 Send(new ChildProcessMsg_Shutdown());
286 } 288 }
287 289
288 } // namespace content 290 } // namespace content
OLDNEW
« no previous file with comments | « content/common/child_process_host_impl.h ('k') | content/public/app/mojo/content_browser_manifest.json » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698