blob: 169ef8785ccbca7efb48eb3f33cad558ce0920b6 [file] [log] [blame]
// Copyright 2016 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "third_party/blink/renderer/platform/bindings/origin_trial_features.h"
#include "third_party/blink/renderer/platform/bindings/dom_wrapper_world.h"
#include "third_party/blink/renderer/platform/bindings/script_state.h"
namespace blink {
void InstallOriginTrialFeaturesDefault(
const WrapperTypeInfo* wrapper_type_info,
const ScriptState* script_state,
v8::Local<v8::Object> prototype_object,
v8::Local<v8::Function> interface_object) {}
void InstallPendingOriginTrialFeatureDefault(const String& feature,
const ScriptState* script_state) {}
namespace {
InstallOriginTrialFeaturesFunction g_install_origin_trial_features_function =
&InstallOriginTrialFeaturesDefault;
InstallPendingOriginTrialFeatureFunction
g_install_pending_origin_trial_feature_function =
&InstallPendingOriginTrialFeatureDefault;
} // namespace
InstallOriginTrialFeaturesFunction SetInstallOriginTrialFeaturesFunction(
InstallOriginTrialFeaturesFunction
new_install_origin_trial_features_function) {
InstallOriginTrialFeaturesFunction original_function =
g_install_origin_trial_features_function;
g_install_origin_trial_features_function =
new_install_origin_trial_features_function;
return original_function;
}
InstallPendingOriginTrialFeatureFunction
SetInstallPendingOriginTrialFeatureFunction(
InstallPendingOriginTrialFeatureFunction
new_install_pending_origin_trial_feature_function) {
InstallPendingOriginTrialFeatureFunction original_function =
g_install_pending_origin_trial_feature_function;
g_install_pending_origin_trial_feature_function =
new_install_pending_origin_trial_feature_function;
return original_function;
}
void InstallOriginTrialFeatures(const WrapperTypeInfo* type,
const ScriptState* script_state,
v8::Local<v8::Object> prototype_object,
v8::Local<v8::Function> interface_object) {
(*g_install_origin_trial_features_function)(
type, script_state, prototype_object, interface_object);
}
void InstallPendingOriginTrialFeature(const String& feature,
const ScriptState* script_state) {
DCHECK(script_state);
DCHECK(script_state->GetContext() ==
script_state->GetIsolate()->GetCurrentContext());
DCHECK(script_state->PerContextData());
DCHECK(script_state->World().IsMainWorld());
(*g_install_pending_origin_trial_feature_function)(feature, script_state);
}
} // namespace blink