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/child/child_thread_impl.h" | 5 #include "content/child/child_thread_impl.h" |
6 | 6 |
7 #include <signal.h> | 7 #include <signal.h> |
8 | 8 |
9 #include <string> | 9 #include <string> |
10 | 10 |
(...skipping 509 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
520 IPC_BEGIN_MESSAGE_MAP(ChildThreadImpl, msg) | 520 IPC_BEGIN_MESSAGE_MAP(ChildThreadImpl, msg) |
521 IPC_MESSAGE_HANDLER(ChildProcessMsg_Shutdown, OnShutdown) | 521 IPC_MESSAGE_HANDLER(ChildProcessMsg_Shutdown, OnShutdown) |
522 #if defined(IPC_MESSAGE_LOG_ENABLED) | 522 #if defined(IPC_MESSAGE_LOG_ENABLED) |
523 IPC_MESSAGE_HANDLER(ChildProcessMsg_SetIPCLoggingEnabled, | 523 IPC_MESSAGE_HANDLER(ChildProcessMsg_SetIPCLoggingEnabled, |
524 OnSetIPCLoggingEnabled) | 524 OnSetIPCLoggingEnabled) |
525 #endif | 525 #endif |
526 IPC_MESSAGE_HANDLER(ChildProcessMsg_SetProfilerStatus, | 526 IPC_MESSAGE_HANDLER(ChildProcessMsg_SetProfilerStatus, |
527 OnSetProfilerStatus) | 527 OnSetProfilerStatus) |
528 IPC_MESSAGE_HANDLER(ChildProcessMsg_GetChildProfilerData, | 528 IPC_MESSAGE_HANDLER(ChildProcessMsg_GetChildProfilerData, |
529 OnGetChildProfilerData) | 529 OnGetChildProfilerData) |
| 530 IPC_MESSAGE_HANDLER(ChildProcessMsg_OnProfilingPhase, |
| 531 OnProfilingPhaseCompletion) |
530 IPC_MESSAGE_HANDLER(ChildProcessMsg_DumpHandles, OnDumpHandles) | 532 IPC_MESSAGE_HANDLER(ChildProcessMsg_DumpHandles, OnDumpHandles) |
531 IPC_MESSAGE_HANDLER(ChildProcessMsg_SetProcessBackgrounded, | 533 IPC_MESSAGE_HANDLER(ChildProcessMsg_SetProcessBackgrounded, |
532 OnProcessBackgrounded) | 534 OnProcessBackgrounded) |
533 #if defined(USE_TCMALLOC) | 535 #if defined(USE_TCMALLOC) |
534 IPC_MESSAGE_HANDLER(ChildProcessMsg_GetTcmallocStats, OnGetTcmallocStats) | 536 IPC_MESSAGE_HANDLER(ChildProcessMsg_GetTcmallocStats, OnGetTcmallocStats) |
535 #endif | 537 #endif |
536 IPC_MESSAGE_UNHANDLED(handled = false) | 538 IPC_MESSAGE_UNHANDLED(handled = false) |
537 IPC_END_MESSAGE_MAP() | 539 IPC_END_MESSAGE_MAP() |
538 | 540 |
539 if (handled) | 541 if (handled) |
(...skipping 19 matching lines...) Expand all Loading... |
559 IPC::Logging::GetInstance()->Enable(); | 561 IPC::Logging::GetInstance()->Enable(); |
560 else | 562 else |
561 IPC::Logging::GetInstance()->Disable(); | 563 IPC::Logging::GetInstance()->Disable(); |
562 } | 564 } |
563 #endif // IPC_MESSAGE_LOG_ENABLED | 565 #endif // IPC_MESSAGE_LOG_ENABLED |
564 | 566 |
565 void ChildThreadImpl::OnSetProfilerStatus(ThreadData::Status status) { | 567 void ChildThreadImpl::OnSetProfilerStatus(ThreadData::Status status) { |
566 ThreadData::InitializeAndSetTrackingStatus(status); | 568 ThreadData::InitializeAndSetTrackingStatus(status); |
567 } | 569 } |
568 | 570 |
569 void ChildThreadImpl::OnGetChildProfilerData(int sequence_number) { | 571 void ChildThreadImpl::OnGetChildProfilerData(int sequence_number, |
570 tracked_objects::ProcessDataSnapshot process_data; | 572 int current_profiling_phase) { |
571 ThreadData::Snapshot(&process_data); | 573 tracked_objects::ProcessDataSnapshot process_data_snapshot; |
| 574 ThreadData::GetProcessDataSnapshot(current_profiling_phase, |
| 575 &process_data_snapshot); |
572 | 576 |
573 Send(new ChildProcessHostMsg_ChildProfilerData(sequence_number, | 577 Send(new ChildProcessHostMsg_ChildProfilerData(sequence_number, |
574 process_data)); | 578 process_data_snapshot)); |
| 579 } |
| 580 |
| 581 void ChildThreadImpl::OnProfilingPhaseCompletion(int profiling_phase) { |
| 582 ThreadData::OnProfilingPhaseCompletion(profiling_phase); |
575 } | 583 } |
576 | 584 |
577 void ChildThreadImpl::OnDumpHandles() { | 585 void ChildThreadImpl::OnDumpHandles() { |
578 #if defined(OS_WIN) | 586 #if defined(OS_WIN) |
579 scoped_refptr<HandleEnumerator> handle_enum( | 587 scoped_refptr<HandleEnumerator> handle_enum( |
580 new HandleEnumerator( | 588 new HandleEnumerator( |
581 base::CommandLine::ForCurrentProcess()->HasSwitch( | 589 base::CommandLine::ForCurrentProcess()->HasSwitch( |
582 switches::kAuditAllHandles))); | 590 switches::kAuditAllHandles))); |
583 handle_enum->EnumerateHandles(); | 591 handle_enum->EnumerateHandles(); |
584 Send(new ChildProcessHostMsg_DumpHandlesDone); | 592 Send(new ChildProcessHostMsg_DumpHandlesDone); |
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
663 // doesn't cause such issues. TODO(gab): Remove this once the experiment is | 671 // doesn't cause such issues. TODO(gab): Remove this once the experiment is |
664 // over (http://crbug.com/458594). | 672 // over (http://crbug.com/458594). |
665 base::FieldTrial* trial = | 673 base::FieldTrial* trial = |
666 base::FieldTrialList::Find("BackgroundRendererProcesses"); | 674 base::FieldTrialList::Find("BackgroundRendererProcesses"); |
667 if (trial && trial->group_name() == "AllowBackgroundModeFromRenderer") | 675 if (trial && trial->group_name() == "AllowBackgroundModeFromRenderer") |
668 base::Process::Current().SetProcessBackgrounded(background); | 676 base::Process::Current().SetProcessBackgrounded(background); |
669 #endif // OS_WIN | 677 #endif // OS_WIN |
670 } | 678 } |
671 | 679 |
672 } // namespace content | 680 } // namespace content |
OLD | NEW |