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

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

Issue 7633038: Relax software rendering list parsing. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 9 years, 4 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) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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_BLACKLIST_H_ 5 #ifndef CONTENT_BROWSER_GPU_GPU_BLACKLIST_H_
6 #define CONTENT_BROWSER_GPU_GPU_BLACKLIST_H_ 6 #define CONTENT_BROWSER_GPU_GPU_BLACKLIST_H_
7 #pragma once 7 #pragma once
8 8
9 #include <string> 9 #include <string>
10 #include <vector> 10 #include <vector>
(...skipping 21 matching lines...) Expand all
32 kOsUnknown 32 kOsUnknown
33 }; 33 };
34 34
35 explicit GpuBlacklist(const std::string& browser_version_string); 35 explicit GpuBlacklist(const std::string& browser_version_string);
36 ~GpuBlacklist(); 36 ~GpuBlacklist();
37 37
38 // Loads blacklist information from a json file. 38 // Loads blacklist information from a json file.
39 // current_os_only==true indicates all blacklist entries that don't belong to 39 // current_os_only==true indicates all blacklist entries that don't belong to
40 // the current OS are discarded; current_os_only==false should only be used 40 // the current OS are discarded; current_os_only==false should only be used
41 // for testing purpose. 41 // for testing purpose.
42 // tolerate_errors==true indicates ignore entries that cause processing
43 // errors but keep the rest - this is important for backward compatibility
44 // when new fields are added; tolerate_errors==false should only be used for
45 // testing purpose.
42 // If failed, the current GpuBlacklist is un-touched. 46 // If failed, the current GpuBlacklist is un-touched.
43 bool LoadGpuBlacklist(const std::string& json_context, 47 bool LoadGpuBlacklist(const std::string& json_context,
44 bool current_os_only); 48 bool current_os_only,
49 bool tolerate_errors);
45 bool LoadGpuBlacklist(const base::DictionaryValue& parsed_json, 50 bool LoadGpuBlacklist(const base::DictionaryValue& parsed_json,
46 bool current_os_only); 51 bool current_os_only,
52 bool tolerate_errors);
47 53
48 // Collects system information and combines them with gpu_info and blacklist 54 // Collects system information and combines them with gpu_info and blacklist
49 // information to determine gpu feature flags. 55 // information to determine gpu feature flags.
50 // If os is kOsAny, use the current OS; if os_version is null, use the 56 // If os is kOsAny, use the current OS; if os_version is null, use the
51 // current OS version. 57 // current OS version.
52 GpuFeatureFlags DetermineGpuFeatureFlags(OsType os, 58 GpuFeatureFlags DetermineGpuFeatureFlags(OsType os,
53 Version* os_version, 59 Version* os_version,
54 const GPUInfo& gpu_info); 60 const GPUInfo& gpu_info);
55 61
56 // Collects the entries that set the "feature" flag from the last 62 // Collects the entries that set the "feature" flag from the last
57 // DetermineGpuFeatureFlags() call. This tells which entries are responsible 63 // DetermineGpuFeatureFlags() call. This tells which entries are responsible
58 // for raising a certain flag, i.e, for blacklisting a certain feature. 64 // for raising a certain flag, i.e, for blacklisting a certain feature.
59 // Examples of "feature": 65 // Examples of "feature":
60 // kGpuFeatureAll - any of the supported features; 66 // kGpuFeatureAll - any of the supported features;
61 // kGpuFeatureWebgl - a single feature; 67 // kGpuFeatureWebgl - a single feature;
62 // kGpuFeatureWebgl | kGpuFeatureAcceleratedCompositing - two features. 68 // kGpuFeatureWebgl | kGpuFeatureAcceleratedCompositing - two features.
63 void GetGpuFeatureFlagEntries(GpuFeatureFlags::GpuFeatureType feature, 69 void GetGpuFeatureFlagEntries(GpuFeatureFlags::GpuFeatureType feature,
64 std::vector<uint32>& entry_ids) const; 70 std::vector<uint32>& entry_ids) const;
65 71
66
67 // Returns status information on the blacklist. This is two parted: 72 // Returns status information on the blacklist. This is two parted:
68 // { 73 // {
69 // featureStatus: [] 74 // featureStatus: []
70 // problems: [] 75 // problems: []
71 // } 76 // }
72 // 77 //
73 // Each entry in feature_status has: 78 // Each entry in feature_status has:
74 // { 79 // {
75 // name: "name of feature" 80 // name: "name of feature"
76 // status: "enabled" | "unavailable_software" | "unavailable_off" | 81 // status: "enabled" | "unavailable_software" | "unavailable_off" |
(...skipping 12 matching lines...) Expand all
89 // "description": "Your GPU is too old", 94 // "description": "Your GPU is too old",
90 // "crBugs": [1234], 95 // "crBugs": [1234],
91 // "webkitBugs": [] 96 // "webkitBugs": []
92 // } 97 // }
93 base::Value* GetFeatureStatus(bool gpu_access_allowed, 98 base::Value* GetFeatureStatus(bool gpu_access_allowed,
94 bool disable_accelerated_compositing, 99 bool disable_accelerated_compositing,
95 bool disable_accelerated_2D_canvas, 100 bool disable_accelerated_2D_canvas,
96 bool disable_experimental_webgl, 101 bool disable_experimental_webgl,
97 bool disable_multisampling) const; 102 bool disable_multisampling) const;
98 103
104 // Returns the number of entries.
105 size_t num_entries() const;
106
99 // Return the largest entry id. This is used for histogramming. 107 // Return the largest entry id. This is used for histogramming.
100 uint32 max_entry_id() const; 108 uint32 max_entry_id() const;
101 109
102 // Collects the version of the current blacklist. Returns false and sets 110 // Collects the version of the current blacklist. Returns false and sets
103 // major and minor to 0 on failure. 111 // major and minor to 0 on failure.
104 bool GetVersion(uint16* major, uint16* monir) const; 112 bool GetVersion(uint16* major, uint16* monir) const;
105 113
106 // Collects the version of the current blacklist from a parsed json file. 114 // Collects the version of the current blacklist from a parsed json file.
107 // Returns false and sets major and minor to 0 on failure. 115 // Returns false and sets major and minor to 0 on failure.
108 static bool GetVersion( 116 static bool GetVersion(
(...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after
298 // user machine. It is updated everytime DetermineGpuFeatureFlags() is 306 // user machine. It is updated everytime DetermineGpuFeatureFlags() is
299 // called and is used later by GetGpuFeatureFlagEntries(). 307 // called and is used later by GetGpuFeatureFlagEntries().
300 std::vector<GpuBlacklistEntry*> active_entries_; 308 std::vector<GpuBlacklistEntry*> active_entries_;
301 309
302 uint32 max_entry_id_; 310 uint32 max_entry_id_;
303 311
304 DISALLOW_COPY_AND_ASSIGN(GpuBlacklist); 312 DISALLOW_COPY_AND_ASSIGN(GpuBlacklist);
305 }; 313 };
306 314
307 #endif // CONTENT_BROWSER_GPU_GPU_BLACKLIST_H_ 315 #endif // CONTENT_BROWSER_GPU_GPU_BLACKLIST_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698