1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "third_party/blink/renderer/platform/bindings/origin_trial_features.h"
6
7 #include "third_party/blink/renderer/platform/bindings/dom_wrapper_world.h"
8 #include "third_party/blink/renderer/platform/bindings/script_state.h"
9 #include "third_party/blink/renderer/platform/runtime_enabled_features.h"
10
11 namespace blink {
12
InstallOriginTrialFeaturesDefault(const WrapperTypeInfo * wrapper_type_info,const ScriptState * script_state,v8::Local<v8::Object> prototype_object,v8::Local<v8::Function> interface_object)13 void InstallOriginTrialFeaturesDefault(
14 const WrapperTypeInfo* wrapper_type_info,
15 const ScriptState* script_state,
16 v8::Local<v8::Object> prototype_object,
17 v8::Local<v8::Function> interface_object) {}
18
InstallPendingOriginTrialFeatureDefault(OriginTrialFeature feature,const ScriptState * script_state)19 void InstallPendingOriginTrialFeatureDefault(OriginTrialFeature feature,
20 const ScriptState* script_state) {}
21
22 namespace {
23 InstallOriginTrialFeaturesFunction g_install_origin_trial_features_function =
24 &InstallOriginTrialFeaturesDefault;
25
26 InstallPendingOriginTrialFeatureFunction
27 g_install_pending_origin_trial_feature_function =
28 &InstallPendingOriginTrialFeatureDefault;
29 } // namespace
30
SetInstallOriginTrialFeaturesFunction(InstallOriginTrialFeaturesFunction new_install_origin_trial_features_function)31 InstallOriginTrialFeaturesFunction SetInstallOriginTrialFeaturesFunction(
32 InstallOriginTrialFeaturesFunction
33 new_install_origin_trial_features_function) {
34 InstallOriginTrialFeaturesFunction original_function =
35 g_install_origin_trial_features_function;
36 g_install_origin_trial_features_function =
37 new_install_origin_trial_features_function;
38 return original_function;
39 }
40
41 InstallPendingOriginTrialFeatureFunction
SetInstallPendingOriginTrialFeatureFunction(InstallPendingOriginTrialFeatureFunction new_install_pending_origin_trial_feature_function)42 SetInstallPendingOriginTrialFeatureFunction(
43 InstallPendingOriginTrialFeatureFunction
44 new_install_pending_origin_trial_feature_function) {
45 InstallPendingOriginTrialFeatureFunction original_function =
46 g_install_pending_origin_trial_feature_function;
47 g_install_pending_origin_trial_feature_function =
48 new_install_pending_origin_trial_feature_function;
49 return original_function;
50 }
51
InstallOriginTrialFeatures(const WrapperTypeInfo * type,const ScriptState * script_state,v8::Local<v8::Object> prototype_object,v8::Local<v8::Function> interface_object)52 void InstallOriginTrialFeatures(const WrapperTypeInfo* type,
53 const ScriptState* script_state,
54 v8::Local<v8::Object> prototype_object,
55 v8::Local<v8::Function> interface_object) {
56 (*g_install_origin_trial_features_function)(
57 type, script_state, prototype_object, interface_object);
58 }
59
InstallPendingOriginTrialFeature(OriginTrialFeature feature,const ScriptState * script_state)60 void InstallPendingOriginTrialFeature(OriginTrialFeature feature,
61 const ScriptState* script_state) {
62 DCHECK(script_state);
63 DCHECK(script_state->GetContext() ==
64 script_state->GetIsolate()->GetCurrentContext());
65 DCHECK(script_state->PerContextData());
66 DCHECK(script_state->World().IsMainWorld());
67
68 (*g_install_pending_origin_trial_feature_function)(feature, script_state);
69 }
70
71 } // namespace blink
72