| Index: third_party/WebKit/Source/build/scripts/templates/OriginTrials.cpp.tmpl
|
| diff --git a/third_party/WebKit/Source/build/scripts/templates/OriginTrials.cpp.tmpl b/third_party/WebKit/Source/build/scripts/templates/OriginTrials.cpp.tmpl
|
| index 5201fafe08d234a4ada14e90e4458360ad0bea21..3b20ec168b675a5161d99ea5ddf4625f0568908b 100644
|
| --- a/third_party/WebKit/Source/build/scripts/templates/OriginTrials.cpp.tmpl
|
| +++ b/third_party/WebKit/Source/build/scripts/templates/OriginTrials.cpp.tmpl
|
| @@ -3,40 +3,63 @@
|
|
|
| #include "core/origin_trials/OriginTrials.h"
|
|
|
| +#include "core/dom/ExecutionContext.h"
|
| #include "core/origin_trials/OriginTrialContext.h"
|
| #include "platform/RuntimeEnabledFeatures.h"
|
|
|
| namespace blink {
|
|
|
| -namespace {
|
| +OriginTrials::OriginTrials(RawPtr<OriginTrialContext> originTrialContext)
|
| + : m_originTrialContext(originTrialContext) {}
|
| +
|
| +// static
|
| +const char* OriginTrials::supplementName()
|
| +{
|
| + return "OriginTrials";
|
| +}
|
| +
|
| +// static
|
| +OriginTrials* OriginTrials::from(ExecutionContext* host)
|
| +{
|
| + OriginTrials* originTrials = static_cast<OriginTrials*>(Supplement<ExecutionContext>::from(host, supplementName()));
|
| + if (!originTrials) {
|
| + originTrials = new OriginTrials(host->createOriginTrialContext());
|
| + Supplement<ExecutionContext>::provideTo(*host, supplementName(), originTrials);
|
| + }
|
| + return originTrials;
|
| +}
|
|
|
| {% for feature in features %}
|
| {% if feature.origin_trial_feature_name %}
|
|
|
| -bool {{feature.first_lowered_name}}EnabledImpl(ExecutionContext* executionContext, String* errorMessage) {
|
| - if (RuntimeEnabledFeatures::{{feature.first_lowered_name}}Enabled())
|
| - return true;
|
| - OriginTrialContext* context = OriginTrialContext::from(executionContext);
|
| - return context->isFeatureEnabled("{{feature.origin_trial_feature_name}}", errorMessage);
|
| +// static
|
| +bool OriginTrials::{{feature.first_lowered_name}}Enabled(ExecutionContext* executionContext, String& errorMessage) {
|
| + return OriginTrials::from(executionContext)->{{feature.first_lowered_name}}EnabledImpl(&errorMessage);
|
| +}
|
| +
|
| +// static
|
| +bool OriginTrials::{{feature.first_lowered_name}}Enabled(ExecutionContext* executionContext) {
|
| + return OriginTrials::from(executionContext)->{{feature.first_lowered_name}}EnabledImpl(nullptr);
|
| }
|
|
|
| {% endif %}
|
| {% endfor %}
|
|
|
| -} // namespace
|
| -
|
| {% for feature in features %}
|
| {% if feature.origin_trial_feature_name %}
|
|
|
| -bool OriginTrials::{{feature.first_lowered_name}}Enabled(ExecutionContext* executionContext, String& errorMessage) {
|
| - return {{feature.first_lowered_name}}EnabledImpl(executionContext, &errorMessage);
|
| +bool OriginTrials::{{feature.first_lowered_name}}EnabledImpl(String* errorMessage) {
|
| + if (RuntimeEnabledFeatures::{{feature.first_lowered_name}}Enabled())
|
| + return true;
|
| + if (!m_originTrialContext) return false;
|
| + return m_originTrialContext->isFeatureEnabled("{{feature.origin_trial_feature_name}}", errorMessage);
|
| }
|
| -
|
| -bool OriginTrials::{{feature.first_lowered_name}}Enabled(ExecutionContext* executionContext) {
|
| - return {{feature.first_lowered_name}}EnabledImpl(executionContext, nullptr);
|
| -}
|
| -
|
| {% endif %}
|
| {% endfor %}
|
|
|
| +DEFINE_TRACE(OriginTrials)
|
| +{
|
| + visitor->trace(m_originTrialContext);
|
| + Supplement<ExecutionContext>::trace(visitor);
|
| +}
|
| } // namespace blink
|
|
|