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

Unified Diff: third_party/WebKit/Source/core/experiments/Experiments.h

Issue 1541983003: Force all experiment enabled checks to use ExperimentalFeatures (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Update comments to explain class design and code generation Created 4 years, 11 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 side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/core/experiments/Experiments.h
diff --git a/third_party/WebKit/Source/core/experiments/Experiments.h b/third_party/WebKit/Source/core/experiments/Experiments.h
index 868a6301cf52352c76602cd908c7cee1eeeae6d6..9bb74bbaa7c70d388027688c5d894a6a3154604b 100644
--- a/third_party/WebKit/Source/core/experiments/Experiments.h
+++ b/third_party/WebKit/Source/core/experiments/Experiments.h
@@ -13,9 +13,12 @@
namespace blink {
// The Experimental Framework (EF) provides limited access to experimental APIs,
-// on a per-origin basis. This class provides an interface to API implementers,
-// for checking if the experimental API should be enabled for the current
-// context.
+// on a per-origin basis. This class provides the implementation to check if
+// the experimental API should be enabled for the current context. This class
+// is not for direct use by API implementers. Instead, the ExperimentalFeatures
+// generated class provides a static method for each API to check if it is
+// enabled. Experimental APIs must be defined in RuntimeEnabledFeatures.in,
+// which is used to generate ExperimentalFeatures.h/cpp.
//
// Experimental APIs are defined by string names, provided by the implementers.
// The EF code does not maintain an enum or constant list for experiment names.
@@ -24,14 +27,18 @@ namespace blink {
// TODO(chasej): Link to documentation, or provide more detail on keys, .etc
class CORE_EXPORT Experiments {
public:
- static bool isApiEnabled(ExecutionContext*, const String& apiName, String& errorMessage);
// Creates a NotSupportedError exception with a message explaining to
// external developers why the API is disabled and how to join API
// experiments.
static DOMException* createApiDisabledException(const String& apiName);
private:
+ friend class ExperimentalFeatures;
+ friend class ExperimentsTest;
+
explicit Experiments();
+
+ static bool isApiEnabled(ExecutionContext*, const String& apiName, String* errorMessage);
};
} // namespace blink

Powered by Google App Engine
This is Rietveld 408576698