OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 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 | 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 #include "bindings/modules/v8/ConditionalFeaturesForModules.h" | 5 #include "bindings/modules/v8/ConditionalFeaturesForModules.h" |
6 | 6 |
7 #include "bindings/core/v8/ConditionalFeatures.h" | 7 #include "bindings/core/v8/ConditionalFeatures.h" |
8 #include "bindings/core/v8/ConditionalFeaturesForCore.h" | 8 #include "bindings/core/v8/ConditionalFeaturesForCore.h" |
9 #include "bindings/core/v8/ScriptState.h" | 9 #include "bindings/core/v8/ScriptState.h" |
10 #include "bindings/core/v8/V8DedicatedWorkerGlobalScope.h" | 10 #include "bindings/core/v8/V8DedicatedWorkerGlobalScope.h" |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
45 // files. (crbug.com/615060) | 45 // files. (crbug.com/615060) |
46 (*s_originalInstallConditionalFeaturesFunction)( | 46 (*s_originalInstallConditionalFeaturesFunction)( |
47 wrapperTypeInfo, scriptState, prototypeObject, interfaceObject); | 47 wrapperTypeInfo, scriptState, prototypeObject, interfaceObject); |
48 | 48 |
49 ExecutionContext* executionContext = scriptState->getExecutionContext(); | 49 ExecutionContext* executionContext = scriptState->getExecutionContext(); |
50 if (!executionContext) | 50 if (!executionContext) |
51 return; | 51 return; |
52 v8::Isolate* isolate = scriptState->isolate(); | 52 v8::Isolate* isolate = scriptState->isolate(); |
53 const DOMWrapperWorld& world = scriptState->world(); | 53 const DOMWrapperWorld& world = scriptState->world(); |
54 if (wrapperTypeInfo == &V8Navigator::wrapperTypeInfo) { | 54 if (wrapperTypeInfo == &V8Navigator::wrapperTypeInfo) { |
| 55 // Mimics the [SecureContext] extended attribute. Work-around for |
| 56 // https://crbug.com/695123. |
| 57 if (OriginTrials::installedAppEnabled(executionContext) && |
| 58 executionContext->isSecureContext()) { |
| 59 V8NavigatorPartial::installInstalledApp(isolate, world, |
| 60 v8::Local<v8::Object>(), |
| 61 prototypeObject, interfaceObject); |
| 62 } |
55 if (OriginTrials::webShareEnabled(executionContext)) { | 63 if (OriginTrials::webShareEnabled(executionContext)) { |
56 V8NavigatorPartial::installWebShare(isolate, world, | 64 V8NavigatorPartial::installWebShare(isolate, world, |
57 v8::Local<v8::Object>(), | 65 v8::Local<v8::Object>(), |
58 prototypeObject, interfaceObject); | 66 prototypeObject, interfaceObject); |
59 } | 67 } |
60 // Mimics the [SecureContext] extended attribute. | 68 // Mimics the [SecureContext] extended attribute. |
61 if (OriginTrials::webUSBEnabled(executionContext) && | 69 if (OriginTrials::webUSBEnabled(executionContext) && |
62 executionContext->isSecureContext()) { | 70 executionContext->isSecureContext()) { |
63 V8NavigatorPartial::installWebUSB(isolate, world, v8::Local<v8::Object>(), | 71 V8NavigatorPartial::installWebUSB(isolate, world, v8::Local<v8::Object>(), |
64 prototypeObject, interfaceObject); | 72 prototypeObject, interfaceObject); |
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
171 } | 179 } |
172 return; | 180 return; |
173 } | 181 } |
174 if (feature == "ImageCapture") { | 182 if (feature == "ImageCapture") { |
175 globalInstanceObject = scriptState->context()->Global(); | 183 globalInstanceObject = scriptState->context()->Global(); |
176 V8WindowPartial::installImageCapture(isolate, world, globalInstanceObject, | 184 V8WindowPartial::installImageCapture(isolate, world, globalInstanceObject, |
177 v8::Local<v8::Object>(), | 185 v8::Local<v8::Object>(), |
178 v8::Local<v8::Function>()); | 186 v8::Local<v8::Function>()); |
179 return; | 187 return; |
180 } | 188 } |
| 189 if (feature == "InstalledApp") { |
| 190 if (contextData->getExistingConstructorAndPrototypeForType( |
| 191 &V8Navigator::wrapperTypeInfo, &prototypeObject, |
| 192 &interfaceObject)) { |
| 193 V8NavigatorPartial::installInstalledApp(isolate, world, |
| 194 v8::Local<v8::Object>(), |
| 195 prototypeObject, interfaceObject); |
| 196 } |
| 197 return; |
| 198 } |
181 if (feature == "ServiceWorkerNavigationPreload") { | 199 if (feature == "ServiceWorkerNavigationPreload") { |
182 globalInstanceObject = scriptState->context()->Global(); | 200 globalInstanceObject = scriptState->context()->Global(); |
183 V8WindowPartial::installServiceWorkerNavigationPreload( | 201 V8WindowPartial::installServiceWorkerNavigationPreload( |
184 isolate, world, globalInstanceObject, v8::Local<v8::Object>(), | 202 isolate, world, globalInstanceObject, v8::Local<v8::Object>(), |
185 v8::Local<v8::Function>()); | 203 v8::Local<v8::Function>()); |
186 if (contextData->getExistingConstructorAndPrototypeForType( | 204 if (contextData->getExistingConstructorAndPrototypeForType( |
187 &V8FetchEvent::wrapperTypeInfo, &prototypeObject, | 205 &V8FetchEvent::wrapperTypeInfo, &prototypeObject, |
188 &interfaceObject)) { | 206 &interfaceObject)) { |
189 V8FetchEvent::installServiceWorkerNavigationPreload( | 207 V8FetchEvent::installServiceWorkerNavigationPreload( |
190 isolate, world, v8::Local<v8::Object>(), prototypeObject, | 208 isolate, world, v8::Local<v8::Object>(), prototypeObject, |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
257 registerInstallConditionalFeaturesForCore(); | 275 registerInstallConditionalFeaturesForCore(); |
258 s_originalInstallConditionalFeaturesFunction = | 276 s_originalInstallConditionalFeaturesFunction = |
259 setInstallConditionalFeaturesFunction( | 277 setInstallConditionalFeaturesFunction( |
260 &installConditionalFeaturesForModules); | 278 &installConditionalFeaturesForModules); |
261 s_originalInstallPendingConditionalFeatureFunction = | 279 s_originalInstallPendingConditionalFeatureFunction = |
262 setInstallPendingConditionalFeatureFunction( | 280 setInstallPendingConditionalFeatureFunction( |
263 &installPendingConditionalFeatureForModules); | 281 &installPendingConditionalFeatureForModules); |
264 } | 282 } |
265 | 283 |
266 } // namespace blink | 284 } // namespace blink |
OLD | NEW |