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

Side by Side Diff: third_party/WebKit/Source/bindings/core/v8/V8Binding.cpp

Issue 2116503004: Make Foreign Fetch an origin trial. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: address comments Created 4 years, 4 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 unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2006, 2007, 2008, 2009 Google Inc. All rights reserved. 2 * Copyright (C) 2006, 2007, 2008, 2009 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 18 matching lines...) Expand all
29 */ 29 */
30 30
31 #include "bindings/core/v8/V8Binding.h" 31 #include "bindings/core/v8/V8Binding.h"
32 32
33 #include "bindings/core/v8/ScriptController.h" 33 #include "bindings/core/v8/ScriptController.h"
34 #include "bindings/core/v8/V8AbstractEventListener.h" 34 #include "bindings/core/v8/V8AbstractEventListener.h"
35 #include "bindings/core/v8/V8ArrayBufferView.h" 35 #include "bindings/core/v8/V8ArrayBufferView.h"
36 #include "bindings/core/v8/V8BindingMacros.h" 36 #include "bindings/core/v8/V8BindingMacros.h"
37 #include "bindings/core/v8/V8Element.h" 37 #include "bindings/core/v8/V8Element.h"
38 #include "bindings/core/v8/V8EventTarget.h" 38 #include "bindings/core/v8/V8EventTarget.h"
39 #include "bindings/core/v8/V8HTMLLinkElement.h"
39 #include "bindings/core/v8/V8NodeFilter.h" 40 #include "bindings/core/v8/V8NodeFilter.h"
40 #include "bindings/core/v8/V8NodeFilterCondition.h" 41 #include "bindings/core/v8/V8NodeFilterCondition.h"
41 #include "bindings/core/v8/V8ObjectConstructor.h" 42 #include "bindings/core/v8/V8ObjectConstructor.h"
42 #include "bindings/core/v8/V8Window.h" 43 #include "bindings/core/v8/V8Window.h"
43 #include "bindings/core/v8/V8WorkerGlobalScope.h" 44 #include "bindings/core/v8/V8WorkerGlobalScope.h"
44 #include "bindings/core/v8/V8WorkletGlobalScope.h" 45 #include "bindings/core/v8/V8WorkletGlobalScope.h"
45 #include "bindings/core/v8/V8XPathNSResolver.h" 46 #include "bindings/core/v8/V8XPathNSResolver.h"
46 #include "bindings/core/v8/WindowProxy.h" 47 #include "bindings/core/v8/WindowProxy.h"
47 #include "bindings/core/v8/WorkerOrWorkletScriptController.h" 48 #include "bindings/core/v8/WorkerOrWorkletScriptController.h"
48 #include "bindings/core/v8/custom/V8CustomXPathNSResolver.h" 49 #include "bindings/core/v8/custom/V8CustomXPathNSResolver.h"
(...skipping 753 matching lines...) Expand 10 before | Expand all | Expand 10 after
802 ASSERT(frame); 803 ASSERT(frame);
803 return frame->windowProxy(world)->contextIfInitialized(); 804 return frame->windowProxy(world)->contextIfInitialized();
804 } 805 }
805 806
806 void installOriginTrialsCore(ScriptState* scriptState) 807 void installOriginTrialsCore(ScriptState* scriptState)
807 { 808 {
808 // TODO(iclelland): Generate all of this logic at compile-time, based on the 809 // TODO(iclelland): Generate all of this logic at compile-time, based on the
809 // configuration of origin trial enabled attibutes and interfaces in IDL 810 // configuration of origin trial enabled attibutes and interfaces in IDL
810 // files. (crbug.com/615060) 811 // files. (crbug.com/615060)
811 812
812 // Initialization code for origin trials for core bindings, if necessary, 813 ExecutionContext* executionContext = scriptState->getExecutionContext();
813 // should go here. 814 OriginTrialContext* originTrialContext = OriginTrialContext::from(executionC ontext, OriginTrialContext::DontCreateIfNotExists);
815 if (!originTrialContext)
816 return;
817
818 if (!originTrialContext->featureBindingsInstalled("LinkServiceWorker") && (R untimeEnabledFeatures::linkServiceWorkerEnabled() || originTrialContext->isFeatu reEnabled("ForeignFetch"))) {
819 if (executionContext->isDocument()) {
820 V8HTMLLinkElement::installLinkServiceWorker(scriptState);
821 }
822 }
814 } 823 }
815 824
816 namespace { 825 namespace {
817 InstallOriginTrialsFunction s_installOriginTrialsFunction = &installOriginTrials Core; 826 InstallOriginTrialsFunction s_installOriginTrialsFunction = &installOriginTrials Core;
818 } 827 }
819 828
820 void installOriginTrials(ScriptState* scriptState) 829 void installOriginTrials(ScriptState* scriptState)
821 { 830 {
822 v8::Local<v8::Context> context = scriptState->context(); 831 v8::Local<v8::Context> context = scriptState->context();
823 ExecutionContext* executionContext = toExecutionContext(context); 832 ExecutionContext* executionContext = toExecutionContext(context);
824 OriginTrialContext* originTrialContext = OriginTrialContext::from(executionC ontext, OriginTrialContext::DontCreateIfNotExists); 833 OriginTrialContext* originTrialContext = OriginTrialContext::from(executionC ontext, OriginTrialContext::DontCreateIfNotExists);
825 if (!originTrialContext) 834 if (!originTrialContext)
826 return; 835 return;
827 836
828 ScriptState::Scope scope(scriptState); 837 ScriptState::Scope scope(scriptState);
829 838
830 (*s_installOriginTrialsFunction)(scriptState); 839 (*s_installOriginTrialsFunction)(scriptState);
831 840
832 // Mark each enabled feature as having been installed. 841 // Mark each enabled feature as having been installed.
833 if (!originTrialContext->featureBindingsInstalled("DurableStorage") && (Runt imeEnabledFeatures::durableStorageEnabled() || originTrialContext->isFeatureEnab led("DurableStorage"))) { 842 if (!originTrialContext->featureBindingsInstalled("DurableStorage") && (Runt imeEnabledFeatures::durableStorageEnabled() || originTrialContext->isFeatureEnab led("DurableStorage"))) {
834 originTrialContext->setFeatureBindingsInstalled("DurableStorage"); 843 originTrialContext->setFeatureBindingsInstalled("DurableStorage");
835 } 844 }
836 845
837 if (!originTrialContext->featureBindingsInstalled("WebBluetooth") && (Runtim eEnabledFeatures::webBluetoothEnabled() || originTrialContext->isFeatureEnabled( "WebBluetooth"))) { 846 if (!originTrialContext->featureBindingsInstalled("WebBluetooth") && (Runtim eEnabledFeatures::webBluetoothEnabled() || originTrialContext->isFeatureEnabled( "WebBluetooth"))) {
838 originTrialContext->setFeatureBindingsInstalled("WebBluetooth"); 847 originTrialContext->setFeatureBindingsInstalled("WebBluetooth");
839 } 848 }
849
850 if (!originTrialContext->featureBindingsInstalled("LinkServiceWorker") && (R untimeEnabledFeatures::linkServiceWorkerEnabled() || originTrialContext->isFeatu reEnabled("ForeignFetch"))) {
851 originTrialContext->setFeatureBindingsInstalled("LinkServiceWorker");
852 }
853
854 if (!originTrialContext->featureBindingsInstalled("ForeignFetch") && (Runtim eEnabledFeatures::foreignFetchEnabled() || originTrialContext->isFeatureEnabled( "ForeignFetch"))) {
855 originTrialContext->setFeatureBindingsInstalled("ForeignFetch");
856 }
840 } 857 }
841 858
842 InstallOriginTrialsFunction setInstallOriginTrialsFunction(InstallOriginTrialsFu nction newInstallOriginTrialsFunction) 859 InstallOriginTrialsFunction setInstallOriginTrialsFunction(InstallOriginTrialsFu nction newInstallOriginTrialsFunction)
843 { 860 {
844 InstallOriginTrialsFunction originalFunction = s_installOriginTrialsFunction ; 861 InstallOriginTrialsFunction originalFunction = s_installOriginTrialsFunction ;
845 s_installOriginTrialsFunction = newInstallOriginTrialsFunction; 862 s_installOriginTrialsFunction = newInstallOriginTrialsFunction;
846 return originalFunction; 863 return originalFunction;
847 } 864 }
848 865
849 void crashIfIsolateIsDead(v8::Isolate* isolate) 866 void crashIfIsolateIsDead(v8::Isolate* isolate)
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
938 return frame->script().isolate(); 955 return frame->script().isolate();
939 } 956 }
940 957
941 v8::Local<v8::Value> freezeV8Object(v8::Local<v8::Value> value, v8::Isolate* iso late) 958 v8::Local<v8::Value> freezeV8Object(v8::Local<v8::Value> value, v8::Isolate* iso late)
942 { 959 {
943 value.As<v8::Object>()->SetIntegrityLevel(isolate->GetCurrentContext(), v8:: IntegrityLevel::kFrozen).ToChecked(); 960 value.As<v8::Object>()->SetIntegrityLevel(isolate->GetCurrentContext(), v8:: IntegrityLevel::kFrozen).ToChecked();
944 return value; 961 return value;
945 } 962 }
946 963
947 } // namespace blink 964 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698