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

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

Issue 9958034: Convert plugin and GPU process to brokered handle duplication. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 8 years, 8 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
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 #ifndef CONTENT_BROWSER_GPU_GPU_PROCESS_HOST_H_ 5 #ifndef CONTENT_BROWSER_GPU_GPU_PROCESS_HOST_H_
6 #define CONTENT_BROWSER_GPU_GPU_PROCESS_HOST_H_ 6 #define CONTENT_BROWSER_GPU_GPU_PROCESS_HOST_H_
7 #pragma once 7 #pragma once
8 8
9 #include <map> 9 #include <map>
10 #include <queue> 10 #include <queue>
(...skipping 23 matching lines...) Expand all
34 public IPC::Message::Sender, 34 public IPC::Message::Sender,
35 public base::NonThreadSafe { 35 public base::NonThreadSafe {
36 public: 36 public:
37 enum GpuProcessKind { 37 enum GpuProcessKind {
38 GPU_PROCESS_KIND_UNSANDBOXED, 38 GPU_PROCESS_KIND_UNSANDBOXED,
39 GPU_PROCESS_KIND_SANDBOXED, 39 GPU_PROCESS_KIND_SANDBOXED,
40 GPU_PROCESS_KIND_COUNT 40 GPU_PROCESS_KIND_COUNT
41 }; 41 };
42 42
43 typedef base::Callback<void(const IPC::ChannelHandle&, 43 typedef base::Callback<void(const IPC::ChannelHandle&,
44 base::ProcessHandle,
45 const content::GPUInfo&)> 44 const content::GPUInfo&)>
46 EstablishChannelCallback; 45 EstablishChannelCallback;
47 46
48 typedef base::Callback<void(int32)> CreateCommandBufferCallback; 47 typedef base::Callback<void(int32)> CreateCommandBufferCallback;
49 48
50 static bool gpu_enabled() { return gpu_enabled_; } 49 static bool gpu_enabled() { return gpu_enabled_; }
51 50
52 // Creates a new GpuProcessHost or gets an existing one, resulting in the 51 // Creates a new GpuProcessHost or gets an existing one, resulting in the
53 // launching of a GPU process if required. Returns null on failure. It 52 // launching of a GPU process if required. Returns null on failure. It
54 // is not safe to store the pointer once control has returned to the message 53 // is not safe to store the pointer once control has returned to the message
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after
158 // Multimap is used to simulate reference counting, see comment in 157 // Multimap is used to simulate reference counting, see comment in
159 // GpuProcessHostUIShim::CreateViewCommandBuffer. 158 // GpuProcessHostUIShim::CreateViewCommandBuffer.
160 class SurfaceRef; 159 class SurfaceRef;
161 typedef std::multimap<int, linked_ptr<SurfaceRef> > SurfaceRefMap; 160 typedef std::multimap<int, linked_ptr<SurfaceRef> > SurfaceRefMap;
162 SurfaceRefMap surface_refs_; 161 SurfaceRefMap surface_refs_;
163 #endif 162 #endif
164 163
165 // Qeueud messages to send when the process launches. 164 // Qeueud messages to send when the process launches.
166 std::queue<IPC::Message*> queued_messages_; 165 std::queue<IPC::Message*> queued_messages_;
167 166
168 // The handle for the GPU process or null if it is not known to be launched.
169 base::ProcessHandle gpu_process_;
170
171 // Whether we are running a GPU thread inside the browser process instead 167 // Whether we are running a GPU thread inside the browser process instead
172 // of a separate GPU process. 168 // of a separate GPU process.
173 bool in_process_; 169 bool in_process_;
174 170
175 bool software_rendering_; 171 bool software_rendering_;
176 GpuProcessKind kind_; 172 GpuProcessKind kind_;
177 173
178 scoped_ptr<GpuMainThread> in_process_gpu_thread_; 174 scoped_ptr<GpuMainThread> in_process_gpu_thread_;
179 175
180 // Whether we actually launched a GPU process. 176 // Whether we actually launched a GPU process.
181 bool process_launched_; 177 bool process_launched_;
182 178
183 // Time Init started. Used to log total GPU process startup time to UMA. 179 // Time Init started. Used to log total GPU process startup time to UMA.
184 base::TimeTicks init_start_time_; 180 base::TimeTicks init_start_time_;
185 181
186 // Master switch for enabling/disabling GPU acceleration for the current 182 // Master switch for enabling/disabling GPU acceleration for the current
187 // browser session. It does not change the acceleration settings for 183 // browser session. It does not change the acceleration settings for
188 // existing tabs, just the future ones. 184 // existing tabs, just the future ones.
189 static bool gpu_enabled_; 185 static bool gpu_enabled_;
190 186
191 static bool hardware_gpu_enabled_; 187 static bool hardware_gpu_enabled_;
192 188
193 scoped_ptr<BrowserChildProcessHostImpl> process_; 189 scoped_ptr<BrowserChildProcessHostImpl> process_;
194 190
195 DISALLOW_COPY_AND_ASSIGN(GpuProcessHost); 191 DISALLOW_COPY_AND_ASSIGN(GpuProcessHost);
196 }; 192 };
197 193
198 #endif // CONTENT_BROWSER_GPU_GPU_PROCESS_HOST_H_ 194 #endif // CONTENT_BROWSER_GPU_GPU_PROCESS_HOST_H_
OLDNEW
« no previous file with comments | « content/browser/gpu/browser_gpu_channel_host_factory.cc ('k') | content/browser/gpu/gpu_process_host.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698