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

Side by Side Diff: content/browser/gpu/gpu_process_host.cc

Issue 9429039: Cleanup: Remove base::environment_vector and base::file_handle_mapping_vector to StudlyCaps. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 8 years, 10 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 | Annotate | Revision Log
« no previous file with comments | « content/browser/gpu/gpu_process_host.h ('k') | content/browser/plugin_process_host.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/browser/gpu/gpu_process_host.h" 5 #include "content/browser/gpu/gpu_process_host.h"
6 6
7 #include "base/base_switches.h" 7 #include "base/base_switches.h"
8 #include "base/bind.h" 8 #include "base/bind.h"
9 #include "base/bind_helpers.h" 9 #include "base/bind_helpers.h"
10 #include "base/command_line.h" 10 #include "base/command_line.h"
(...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after
194 // Don't grant further access to GPU if it is not allowed. 194 // Don't grant further access to GPU if it is not allowed.
195 GpuDataManagerImpl* gpu_data_manager = GpuDataManagerImpl::GetInstance(); 195 GpuDataManagerImpl* gpu_data_manager = GpuDataManagerImpl::GetInstance();
196 if (gpu_data_manager != NULL && !gpu_data_manager->GpuAccessAllowed()) 196 if (gpu_data_manager != NULL && !gpu_data_manager->GpuAccessAllowed())
197 return NULL; 197 return NULL;
198 198
199 // The current policy is to ignore the renderer ID and use a single GPU 199 // The current policy is to ignore the renderer ID and use a single GPU
200 // process (the first valid host in the host-id map) for all renderers. Later 200 // process (the first valid host in the host-id map) for all renderers. Later
201 // this will be extended to allow the use of multiple GPU processes. 201 // this will be extended to allow the use of multiple GPU processes.
202 for (IDMap<GpuProcessHost>::iterator it(g_hosts_by_id.Pointer()); 202 for (IDMap<GpuProcessHost>::iterator it(g_hosts_by_id.Pointer());
203 !it.IsAtEnd(); it.Advance()) { 203 !it.IsAtEnd(); it.Advance()) {
204 GpuProcessHost *host = it.GetCurrentValue(); 204 GpuProcessHost* host = it.GetCurrentValue();
205 205
206 if (host->sandboxed() != (client_id != 0)) 206 if (host->sandboxed() != (client_id != 0))
207 continue; 207 continue;
208 208
209 if (HostIsValid(host)) 209 if (HostIsValid(host))
210 return host; 210 return host;
211 } 211 }
212 212
213 if (cause == content::CAUSE_FOR_GPU_LAUNCH_NO_LAUNCH) 213 if (cause == content::CAUSE_FOR_GPU_LAUNCH_NO_LAUNCH)
214 return NULL; 214 return NULL;
(...skipping 23 matching lines...) Expand all
238 &SendGpuProcessMessage, client_id, cause, message)); 238 &SendGpuProcessMessage, client_id, cause, message));
239 } 239 }
240 240
241 // static 241 // static
242 GpuProcessHost* GpuProcessHost::FromID(int host_id) { 242 GpuProcessHost* GpuProcessHost::FromID(int host_id) {
243 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO)); 243 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::IO));
244 244
245 if (host_id == 0) 245 if (host_id == 0)
246 return NULL; 246 return NULL;
247 247
248 GpuProcessHost *host = g_hosts_by_id.Pointer()->Lookup(host_id); 248 GpuProcessHost* host = g_hosts_by_id.Pointer()->Lookup(host_id);
249 if (HostIsValid(host)) 249 if (HostIsValid(host))
250 return host; 250 return host;
251 251
252 return NULL; 252 return NULL;
253 } 253 }
254 254
255 GpuProcessHost::GpuProcessHost(int host_id, bool sandboxed) 255 GpuProcessHost::GpuProcessHost(int host_id, bool sandboxed)
256 : host_id_(host_id), 256 : host_id_(host_id),
257 gpu_process_(base::kNullProcessHandle), 257 gpu_process_(base::kNullProcessHandle),
258 in_process_(false), 258 in_process_(false),
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
359 // of this child window. Unfortunately it might always be necessary for 359 // of this child window. Unfortunately it might always be necessary for
360 // Windows XP because we cannot share the backing store textures between 360 // Windows XP because we cannot share the backing store textures between
361 // processes. 361 // processes.
362 options.message_loop_type = MessageLoop::TYPE_UI; 362 options.message_loop_type = MessageLoop::TYPE_UI;
363 #else 363 #else
364 options.message_loop_type = MessageLoop::TYPE_IO; 364 options.message_loop_type = MessageLoop::TYPE_IO;
365 #endif 365 #endif
366 in_process_gpu_thread_->StartWithOptions(options); 366 in_process_gpu_thread_->StartWithOptions(options);
367 367
368 OnProcessLaunched(); // Fake a callback that the process is ready. 368 OnProcessLaunched(); // Fake a callback that the process is ready.
369 } else if (!LaunchGpuProcess(channel_id)) 369 } else if (!LaunchGpuProcess(channel_id)) {
370 return false; 370 return false;
371 }
371 372
372 return Send(new GpuMsg_Initialize()); 373 return Send(new GpuMsg_Initialize());
373 } 374 }
374 375
375 void GpuProcessHost::RouteOnUIThread(const IPC::Message& message) { 376 void GpuProcessHost::RouteOnUIThread(const IPC::Message& message) {
376 BrowserThread::PostTask( 377 BrowserThread::PostTask(
377 BrowserThread::UI, 378 BrowserThread::UI,
378 FROM_HERE, 379 FROM_HERE,
379 base::Bind(&RouteToGpuProcessHostUIShimTask, host_id_, message)); 380 base::Bind(&RouteToGpuProcessHostUIShimTask, host_id_, message));
380 } 381 }
(...skipping 274 matching lines...) Expand 10 before | Expand all | Expand 10 after
655 656
656 // If specified, prepend a launcher program to the command line. 657 // If specified, prepend a launcher program to the command line.
657 if (!gpu_launcher.empty()) 658 if (!gpu_launcher.empty())
658 cmd_line->PrependWrapper(gpu_launcher); 659 cmd_line->PrependWrapper(gpu_launcher);
659 660
660 process_->Launch( 661 process_->Launch(
661 #if defined(OS_WIN) 662 #if defined(OS_WIN)
662 FilePath(), 663 FilePath(),
663 #elif defined(OS_POSIX) 664 #elif defined(OS_POSIX)
664 false, // Never use the zygote (GPU plugin can't be sandboxed). 665 false, // Never use the zygote (GPU plugin can't be sandboxed).
665 base::environment_vector(), 666 base::EnvironmentVector(),
666 #endif 667 #endif
667 cmd_line); 668 cmd_line);
668 process_launched_ = true; 669 process_launched_ = true;
669 670
670 UMA_HISTOGRAM_ENUMERATION("GPU.GPUProcessLifetimeEvents", 671 UMA_HISTOGRAM_ENUMERATION("GPU.GPUProcessLifetimeEvents",
671 LAUNCHED, GPU_PROCESS_LIFETIME_EVENT_MAX); 672 LAUNCHED, GPU_PROCESS_LIFETIME_EVENT_MAX);
672 return true; 673 return true;
673 } 674 }
674 675
675 void GpuProcessHost::SendOutstandingReplies() { 676 void GpuProcessHost::SendOutstandingReplies() {
(...skipping 13 matching lines...) Expand all
689 const IPC::ChannelHandle& channel_handle, 690 const IPC::ChannelHandle& channel_handle,
690 base::ProcessHandle renderer_process_for_gpu, 691 base::ProcessHandle renderer_process_for_gpu,
691 const content::GPUInfo& gpu_info) { 692 const content::GPUInfo& gpu_info) {
692 callback.Run(channel_handle, renderer_process_for_gpu, gpu_info); 693 callback.Run(channel_handle, renderer_process_for_gpu, gpu_info);
693 } 694 }
694 695
695 void GpuProcessHost::CreateCommandBufferError( 696 void GpuProcessHost::CreateCommandBufferError(
696 const CreateCommandBufferCallback& callback, int32 route_id) { 697 const CreateCommandBufferCallback& callback, int32 route_id) {
697 callback.Run(route_id); 698 callback.Run(route_id);
698 } 699 }
OLDNEW
« no previous file with comments | « content/browser/gpu/gpu_process_host.h ('k') | content/browser/plugin_process_host.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698