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

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

Issue 12593005: Add a user pref in Settings to disable all GPU features. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 7 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 | 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_DATA_MANAGER_IMPL_H_ 5 #ifndef CONTENT_BROWSER_GPU_GPU_DATA_MANAGER_IMPL_H_
6 #define CONTENT_BROWSER_GPU_GPU_DATA_MANAGER_IMPL_H_ 6 #define CONTENT_BROWSER_GPU_GPU_DATA_MANAGER_IMPL_H_
7 7
8 #include <list> 8 #include <list>
9 #include <map> 9 #include <map>
10 #include <string> 10 #include <string>
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
72 virtual void SetWindowCount(uint32 count) OVERRIDE; 72 virtual void SetWindowCount(uint32 count) OVERRIDE;
73 virtual uint32 GetWindowCount() const OVERRIDE; 73 virtual uint32 GetWindowCount() const OVERRIDE;
74 virtual void UnblockDomainFrom3DAPIs(const GURL& url) OVERRIDE; 74 virtual void UnblockDomainFrom3DAPIs(const GURL& url) OVERRIDE;
75 virtual void DisableGpuWatchdog() OVERRIDE; 75 virtual void DisableGpuWatchdog() OVERRIDE;
76 virtual void SetGLStrings(const std::string& gl_vendor, 76 virtual void SetGLStrings(const std::string& gl_vendor,
77 const std::string& gl_renderer, 77 const std::string& gl_renderer,
78 const std::string& gl_version) OVERRIDE; 78 const std::string& gl_version) OVERRIDE;
79 virtual void GetGLStrings(std::string* gl_vendor, 79 virtual void GetGLStrings(std::string* gl_vendor,
80 std::string* gl_renderer, 80 std::string* gl_renderer,
81 std::string* gl_version) OVERRIDE; 81 std::string* gl_version) OVERRIDE;
82 virtual void DisableHardwareAcceleration() OVERRIDE;
82 83
83 // This collects preliminary GPU info, load GpuBlacklist, and compute the 84 // This collects preliminary GPU info, load GpuBlacklist, and compute the
84 // preliminary blacklisted features; it should only be called at browser 85 // preliminary blacklisted features; it should only be called at browser
85 // startup time in UI thread before the IO restriction is turned on. 86 // startup time in UI thread before the IO restriction is turned on.
86 void Initialize(); 87 void Initialize();
87 88
88 // Only update if the current GPUInfo is not finalized. If blacklist is 89 // Only update if the current GPUInfo is not finalized. If blacklist is
89 // loaded, run through blacklist and update blacklisted features. 90 // loaded, run through blacklist and update blacklisted features.
90 void UpdateGpuInfo(const GPUInfo& gpu_info); 91 void UpdateGpuInfo(const GPUInfo& gpu_info);
91 92
92 void UpdateVideoMemoryUsageStats( 93 void UpdateVideoMemoryUsageStats(
93 const GPUVideoMemoryUsageStats& video_memory_usage_stats); 94 const GPUVideoMemoryUsageStats& video_memory_usage_stats);
94 95
95 // Insert disable-feature switches corresponding to preliminary gpu feature 96 // Insert disable-feature switches corresponding to preliminary gpu feature
96 // flags into the renderer process command line. 97 // flags into the renderer process command line.
97 void AppendRendererCommandLine(CommandLine* command_line) const; 98 void AppendRendererCommandLine(CommandLine* command_line) const;
98 99
99 // Insert switches into gpu process command line: kUseGL, 100 // Insert switches into gpu process command line: kUseGL,
100 // kDisableGLMultisampling. 101 // kDisableGLMultisampling.
101 void AppendGpuCommandLine(CommandLine* command_line) const; 102 void AppendGpuCommandLine(CommandLine* command_line) const;
102 103
103 // Insert switches into plugin process command line: 104 // Insert switches into plugin process command line:
104 // kDisableCoreAnimationPlugins. 105 // kDisableCoreAnimationPlugins.
105 void AppendPluginCommandLine(CommandLine* command_line) const; 106 void AppendPluginCommandLine(CommandLine* command_line) const;
106 107
107 GpuSwitchingOption GetGpuSwitchingOption() const; 108 GpuSwitchingOption GetGpuSwitchingOption() const;
108 109
109 // Force the current card to be blacklisted (usually due to GPU process
110 // crashes).
111 void BlacklistCard();
112
113 std::string GetBlacklistVersion() const; 110 std::string GetBlacklistVersion() const;
114 111
115 // Returns the reasons for the latest run of blacklisting decisions. 112 // Returns the reasons for the latest run of blacklisting decisions.
116 // For the structure of returned value, see documentation for 113 // For the structure of returned value, see documentation for
117 // GpuBlacklist::GetBlacklistedReasons(). 114 // GpuBlacklist::GetBlacklistedReasons().
118 // Caller is responsible to release the returned value. 115 // Caller is responsible to release the returned value.
119 base::ListValue* GetBlacklistReasons() const; 116 base::ListValue* GetBlacklistReasons() const;
120 117
121 void AddLogMessage(int level, 118 void AddLogMessage(int level,
122 const std::string& header, 119 const std::string& header,
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
163 typedef std::map<std::string, DomainBlockEntry> DomainBlockMap; 160 typedef std::map<std::string, DomainBlockEntry> DomainBlockMap;
164 161
165 typedef ObserverListThreadSafe<GpuDataManagerObserver> 162 typedef ObserverListThreadSafe<GpuDataManagerObserver>
166 GpuDataManagerObserverList; 163 GpuDataManagerObserverList;
167 164
168 friend class GpuDataManagerImplTest; 165 friend class GpuDataManagerImplTest;
169 friend struct DefaultSingletonTraits<GpuDataManagerImpl>; 166 friend struct DefaultSingletonTraits<GpuDataManagerImpl>;
170 167
171 FRIEND_TEST_ALL_PREFIXES(GpuDataManagerImplTest, GpuSideBlacklisting); 168 FRIEND_TEST_ALL_PREFIXES(GpuDataManagerImplTest, GpuSideBlacklisting);
172 FRIEND_TEST_ALL_PREFIXES(GpuDataManagerImplTest, GpuSideExceptions); 169 FRIEND_TEST_ALL_PREFIXES(GpuDataManagerImplTest, GpuSideExceptions);
173 FRIEND_TEST_ALL_PREFIXES(GpuDataManagerImplTest, BlacklistCard); 170 FRIEND_TEST_ALL_PREFIXES(GpuDataManagerImplTest,
171 DisableHardwareAcceleration);
174 FRIEND_TEST_ALL_PREFIXES(GpuDataManagerImplTest, SoftwareRendering); 172 FRIEND_TEST_ALL_PREFIXES(GpuDataManagerImplTest, SoftwareRendering);
175 FRIEND_TEST_ALL_PREFIXES(GpuDataManagerImplTest, SoftwareRendering2); 173 FRIEND_TEST_ALL_PREFIXES(GpuDataManagerImplTest, SoftwareRendering2);
176 FRIEND_TEST_ALL_PREFIXES(GpuDataManagerImplTest, GpuInfoUpdate); 174 FRIEND_TEST_ALL_PREFIXES(GpuDataManagerImplTest, GpuInfoUpdate);
177 FRIEND_TEST_ALL_PREFIXES(GpuDataManagerImplTest, 175 FRIEND_TEST_ALL_PREFIXES(GpuDataManagerImplTest,
178 NoGpuInfoUpdateWithSoftwareRendering); 176 NoGpuInfoUpdateWithSoftwareRendering);
179 FRIEND_TEST_ALL_PREFIXES(GpuDataManagerImplTest, 177 FRIEND_TEST_ALL_PREFIXES(GpuDataManagerImplTest,
180 GPUVideoMemoryUsageStatsUpdate); 178 GPUVideoMemoryUsageStatsUpdate);
181 FRIEND_TEST_ALL_PREFIXES(GpuDataManagerImplTest, 179 FRIEND_TEST_ALL_PREFIXES(GpuDataManagerImplTest,
182 BlockAllDomainsFrom3DAPIs); 180 BlockAllDomainsFrom3DAPIs);
183 FRIEND_TEST_ALL_PREFIXES(GpuDataManagerImplTest, 181 FRIEND_TEST_ALL_PREFIXES(GpuDataManagerImplTest,
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after
262 DomainBlockMap blocked_domains_; 260 DomainBlockMap blocked_domains_;
263 mutable std::list<base::Time> timestamps_of_gpu_resets_; 261 mutable std::list<base::Time> timestamps_of_gpu_resets_;
264 bool domain_blocking_enabled_; 262 bool domain_blocking_enabled_;
265 263
266 DISALLOW_COPY_AND_ASSIGN(GpuDataManagerImpl); 264 DISALLOW_COPY_AND_ASSIGN(GpuDataManagerImpl);
267 }; 265 };
268 266
269 } // namespace content 267 } // namespace content
270 268
271 #endif // CONTENT_BROWSER_GPU_GPU_DATA_MANAGER_IMPL_H_ 269 #endif // CONTENT_BROWSER_GPU_GPU_DATA_MANAGER_IMPL_H_
OLDNEW
« no previous file with comments | « chrome/test/base/testing_browser_process.cc ('k') | content/browser/gpu/gpu_data_manager_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698