OLD | NEW |
---|---|
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 Experiments_h | 5 #ifndef Experiments_h |
6 #define Experiments_h | 6 #define Experiments_h |
7 | 7 |
8 #include "core/CoreExport.h" | 8 #include "core/CoreExport.h" |
9 #include "core/dom/DOMException.h" | 9 #include "core/dom/DOMException.h" |
10 #include "core/dom/ExecutionContext.h" | 10 #include "core/dom/ExecutionContext.h" |
11 #include "wtf/text/WTFString.h" | 11 #include "wtf/text/WTFString.h" |
12 | 12 |
13 namespace blink { | 13 namespace blink { |
14 | 14 |
15 // The Experimental Framework (EF) provides limited access to experimental APIs, | 15 // The Experimental Framework (EF) provides limited access to experimental APIs, |
16 // on a per-origin basis. This class provides an interface to API implementers, | 16 // on a per-origin basis. This class provides an interface to API implementers, |
17 // for checking if the experimental API should be enabled for the current | 17 // for checking if the experimental API should be enabled for the current |
18 // context. | 18 // context. |
19 // | 19 // |
20 // Experimental APIs are defined by string names, provided by the implementers. | 20 // Experimental APIs are defined by string names, provided by the implementers. |
21 // The EF code does not maintain an enum or constant list for experiment names. | 21 // The EF code does not maintain an enum or constant list for experiment names. |
22 // Instead, the EF validates the name provided by the API implementation against | 22 // Instead, the EF validates the name provided by the API implementation against |
23 // any provided API keys. | 23 // any provided API keys. |
24 // TODO(chasej): Link to documentation, or provide more detail on keys, .etc | 24 // TODO(chasej): Link to documentation, or provide more detail on keys, .etc |
25 class CORE_EXPORT Experiments { | 25 class CORE_EXPORT Experiments { |
26 public: | 26 public: |
27 static bool isApiEnabled(ExecutionContext*, const String& apiName, String& e rrorMessage); | 27 static bool isApiEnabled(ExecutionContext*, const String& apiName, String& e rrorMessage); |
28 static bool isApiEnabledWithoutMessage(ExecutionContext*, const String& apiN ame); | |
haraken
2015/12/18 02:35:51
I'd prefer:
- isAPIEnabled (two args version) cal
Daniel Nishi
2015/12/18 05:11:42
Done.
| |
28 // Creates a NotSupportedError exception with a message explaining to | 29 // Creates a NotSupportedError exception with a message explaining to |
29 // external developers why the API is disabled and how to join API | 30 // external developers why the API is disabled and how to join API |
30 // experiments. | 31 // experiments. |
31 static DOMException* createApiDisabledException(const String& apiName); | 32 static DOMException* createApiDisabledException(const String& apiName); |
32 | 33 |
33 private: | 34 private: |
34 explicit Experiments(); | 35 explicit Experiments(); |
35 }; | 36 }; |
36 | 37 |
37 } // namespace blink | 38 } // namespace blink |
38 | 39 |
39 #endif // Experiments_h | 40 #endif // Experiments_h |
OLD | NEW |