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

Side by Side Diff: content/gpu/gpu_child_thread.cc

Issue 2497833002: support multiple log message handlers in base/logging.h (Closed)
Patch Set: Created 4 years, 1 month 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
« no previous file with comments | « components/proximity_auth/logging/logging_unittest.cc ('k') | content/gpu/gpu_main.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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/gpu/gpu_child_thread.h" 5 #include "content/gpu/gpu_child_thread.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <utility> 8 #include <utility>
9 9
10 #include "base/bind.h" 10 #include "base/bind.h"
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
54 #include "media/gpu/avda_surface_tracker.h" 54 #include "media/gpu/avda_surface_tracker.h"
55 #endif 55 #endif
56 56
57 namespace content { 57 namespace content {
58 namespace { 58 namespace {
59 59
60 static base::LazyInstance<scoped_refptr<ThreadSafeSender> > 60 static base::LazyInstance<scoped_refptr<ThreadSafeSender> >
61 g_thread_safe_sender = LAZY_INSTANCE_INITIALIZER; 61 g_thread_safe_sender = LAZY_INSTANCE_INITIALIZER;
62 62
63 bool GpuProcessLogMessageHandler(int severity, 63 bool GpuProcessLogMessageHandler(int severity,
64 const char* file, int line, 64 const std::string& file,
65 size_t message_start, 65 int line,
66 const std::string& str) { 66 const std::string& str) {
67 std::string header = str.substr(0, message_start); 67 std::string header = file + "(" + std::to_string(line) + "):";
68 std::string message = str.substr(message_start);
69
70 g_thread_safe_sender.Get()->Send( 68 g_thread_safe_sender.Get()->Send(
71 new GpuHostMsg_OnLogMessage(severity, header, message)); 69 new GpuHostMsg_OnLogMessage(severity, header, str));
72 70
73 return false; 71 return false;
74 } 72 }
75 73
76 // Message filter used to to handle GpuMsg_CreateGpuMemoryBuffer messages 74 // Message filter used to to handle GpuMsg_CreateGpuMemoryBuffer messages
77 // on the IO thread. This allows the UI thread in the browser process to remain 75 // on the IO thread. This allows the UI thread in the browser process to remain
78 // fast at all times. 76 // fast at all times.
79 class GpuMemoryBufferMessageFilter : public IPC::MessageFilter { 77 class GpuMemoryBufferMessageFilter : public IPC::MessageFilter {
80 public: 78 public:
81 explicit GpuMemoryBufferMessageFilter( 79 explicit GpuMemoryBufferMessageFilter(
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
188 186
189 GpuChildThread::~GpuChildThread() { 187 GpuChildThread::~GpuChildThread() {
190 while (!deferred_messages_.empty()) { 188 while (!deferred_messages_.empty()) {
191 delete deferred_messages_.front(); 189 delete deferred_messages_.front();
192 deferred_messages_.pop(); 190 deferred_messages_.pop();
193 } 191 }
194 } 192 }
195 193
196 void GpuChildThread::Shutdown() { 194 void GpuChildThread::Shutdown() {
197 ChildThreadImpl::Shutdown(); 195 ChildThreadImpl::Shutdown();
198 logging::SetLogMessageHandler(NULL); 196 if (!in_browser_process_)
197 logging::RemoveLogMessageHandler(GpuProcessLogMessageHandler);
199 } 198 }
200 199
201 void GpuChildThread::Init(const base::Time& process_start_time) { 200 void GpuChildThread::Init(const base::Time& process_start_time) {
202 process_start_time_ = process_start_time; 201 process_start_time_ = process_start_time;
203 202
204 #if defined(OS_ANDROID) 203 #if defined(OS_ANDROID)
205 // When running in in-process mode, this has been set in the browser at 204 // When running in in-process mode, this has been set in the browser at
206 // ChromeBrowserMainPartsAndroid::PreMainMessageLoopRun(). 205 // ChromeBrowserMainPartsAndroid::PreMainMessageLoopRun().
207 if (!in_browser_process_) 206 if (!in_browser_process_)
208 media::SetMediaClientAndroid(GetContentClient()->GetMediaClientAndroid()); 207 media::SetMediaClientAndroid(GetContentClient()->GetMediaClientAndroid());
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after
326 325
327 if (dead_on_arrival_) { 326 if (dead_on_arrival_) {
328 LOG(ERROR) << "Exiting GPU process due to errors during initialization"; 327 LOG(ERROR) << "Exiting GPU process due to errors during initialization";
329 base::MessageLoop::current()->QuitWhenIdle(); 328 base::MessageLoop::current()->QuitWhenIdle();
330 return; 329 return;
331 } 330 }
332 331
333 // We don't need to pipe log messages if we are running the GPU thread in 332 // We don't need to pipe log messages if we are running the GPU thread in
334 // the browser process. 333 // the browser process.
335 if (!in_browser_process_) 334 if (!in_browser_process_)
336 logging::SetLogMessageHandler(GpuProcessLogMessageHandler); 335 logging::AddLogMessageHandler(GpuProcessLogMessageHandler);
337 336
338 gpu::SyncPointManager* sync_point_manager = nullptr; 337 gpu::SyncPointManager* sync_point_manager = nullptr;
339 // Note SyncPointManager from ContentGpuClient cannot be owned by this. 338 // Note SyncPointManager from ContentGpuClient cannot be owned by this.
340 if (GetContentClient()->gpu()) 339 if (GetContentClient()->gpu())
341 sync_point_manager = GetContentClient()->gpu()->GetSyncPointManager(); 340 sync_point_manager = GetContentClient()->gpu()->GetSyncPointManager();
342 if (!sync_point_manager) { 341 if (!sync_point_manager) {
343 if (!owned_sync_point_manager_) { 342 if (!owned_sync_point_manager_) {
344 owned_sync_point_manager_.reset(new gpu::SyncPointManager(false)); 343 owned_sync_point_manager_.reset(new gpu::SyncPointManager(false));
345 } 344 }
346 sync_point_manager = owned_sync_point_manager_.get(); 345 sync_point_manager = owned_sync_point_manager_.get();
(...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after
524 523
525 void GpuChildThread::BindServiceFactoryRequest( 524 void GpuChildThread::BindServiceFactoryRequest(
526 service_manager::mojom::ServiceFactoryRequest request) { 525 service_manager::mojom::ServiceFactoryRequest request) {
527 DVLOG(1) << "GPU: Binding service_manager::mojom::ServiceFactoryRequest"; 526 DVLOG(1) << "GPU: Binding service_manager::mojom::ServiceFactoryRequest";
528 DCHECK(service_factory_); 527 DCHECK(service_factory_);
529 service_factory_bindings_.AddBinding(service_factory_.get(), 528 service_factory_bindings_.AddBinding(service_factory_.get(),
530 std::move(request)); 529 std::move(request));
531 } 530 }
532 531
533 } // namespace content 532 } // namespace content
OLDNEW
« no previous file with comments | « components/proximity_auth/logging/logging_unittest.cc ('k') | content/gpu/gpu_main.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698