OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2013 Google Inc. All rights reserved. | 2 * Copyright (C) 2013 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 192 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
203 | 203 |
204 ExecutionContext* executionContext = scriptState->executionContext(); | 204 ExecutionContext* executionContext = scriptState->executionContext(); |
205 // FIXME: May be null due to worker termination: http://crbug.com/413518. | 205 // FIXME: May be null due to worker termination: http://crbug.com/413518. |
206 if (!executionContext) | 206 if (!executionContext) |
207 return ScriptPromise(); | 207 return ScriptPromise(); |
208 | 208 |
209 RefPtr<SecurityOrigin> documentOrigin = executionContext->securityOrigin(); | 209 RefPtr<SecurityOrigin> documentOrigin = executionContext->securityOrigin(); |
210 String errorMessage; | 210 String errorMessage; |
211 // Restrict to secure origins: https://w3c.github.io/webappsec/specs/powerfu
lfeatures/#settings-privileged | 211 // Restrict to secure origins: https://w3c.github.io/webappsec/specs/powerfu
lfeatures/#settings-privileged |
212 if (!executionContext->isSecureContext(errorMessage)) { | 212 if (!executionContext->isSecureContext(errorMessage)) { |
213 resolver->reject(DOMException::create(NotSupportedError, errorMessage)); | 213 resolver->reject(DOMException::create(SecurityError, errorMessage)); |
214 return promise; | 214 return promise; |
215 } | 215 } |
216 | 216 |
217 KURL pageURL = KURL(KURL(), documentOrigin->toString()); | 217 KURL pageURL = KURL(KURL(), documentOrigin->toString()); |
218 if (!SchemeRegistry::shouldTreatURLSchemeAsAllowingServiceWorkers(pageURL.pr
otocol())) { | 218 if (!SchemeRegistry::shouldTreatURLSchemeAsAllowingServiceWorkers(pageURL.pr
otocol())) { |
219 resolver->reject(DOMException::create(SecurityError, "Failed to register
a ServiceWorker: The URL protocol of the current origin ('" + documentOrigin->t
oString() + "') is not supported.")); | 219 resolver->reject(DOMException::create(SecurityError, "Failed to register
a ServiceWorker: The URL protocol of the current origin ('" + documentOrigin->t
oString() + "') is not supported.")); |
220 return promise; | 220 return promise; |
221 } | 221 } |
222 | 222 |
223 KURL scriptURL = callingExecutionContext(scriptState->isolate())->completeUR
L(url); | 223 KURL scriptURL = callingExecutionContext(scriptState->isolate())->completeUR
L(url); |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
271 } | 271 } |
272 | 272 |
273 ExecutionContext* executionContext = scriptState->executionContext(); | 273 ExecutionContext* executionContext = scriptState->executionContext(); |
274 // FIXME: May be null due to worker termination: http://crbug.com/413518. | 274 // FIXME: May be null due to worker termination: http://crbug.com/413518. |
275 if (!executionContext) | 275 if (!executionContext) |
276 return ScriptPromise(); | 276 return ScriptPromise(); |
277 | 277 |
278 RefPtr<SecurityOrigin> documentOrigin = executionContext->securityOrigin(); | 278 RefPtr<SecurityOrigin> documentOrigin = executionContext->securityOrigin(); |
279 String errorMessage; | 279 String errorMessage; |
280 if (!executionContext->isSecureContext(errorMessage)) { | 280 if (!executionContext->isSecureContext(errorMessage)) { |
281 resolver->reject(DOMException::create(NotSupportedError, errorMessage)); | 281 resolver->reject(DOMException::create(SecurityError, errorMessage)); |
282 return promise; | 282 return promise; |
283 } | 283 } |
284 | 284 |
285 KURL pageURL = KURL(KURL(), documentOrigin->toString()); | 285 KURL pageURL = KURL(KURL(), documentOrigin->toString()); |
286 if (!SchemeRegistry::shouldTreatURLSchemeAsAllowingServiceWorkers(pageURL.pr
otocol())) { | 286 if (!SchemeRegistry::shouldTreatURLSchemeAsAllowingServiceWorkers(pageURL.pr
otocol())) { |
287 resolver->reject(DOMException::create(SecurityError, "Failed to get a Se
rviceWorkerRegistration: The URL protocol of the current origin ('" + documentOr
igin->toString() + "') is not supported.")); | 287 resolver->reject(DOMException::create(SecurityError, "Failed to get a Se
rviceWorkerRegistration: The URL protocol of the current origin ('" + documentOr
igin->toString() + "') is not supported.")); |
288 return promise; | 288 return promise; |
289 } | 289 } |
290 | 290 |
291 KURL completedURL = callingExecutionContext(scriptState->isolate())->complet
eURL(documentURL); | 291 KURL completedURL = callingExecutionContext(scriptState->isolate())->complet
eURL(documentURL); |
(...skipping 15 matching lines...) Expand all Loading... |
307 | 307 |
308 if (!m_provider) { | 308 if (!m_provider) { |
309 resolver->reject(DOMException::create(InvalidStateError, "Failed to get
ServiceWorkerRegistration objects: The document is in an invalid state.")); | 309 resolver->reject(DOMException::create(InvalidStateError, "Failed to get
ServiceWorkerRegistration objects: The document is in an invalid state.")); |
310 return promise; | 310 return promise; |
311 } | 311 } |
312 | 312 |
313 ExecutionContext* executionContext = scriptState->executionContext(); | 313 ExecutionContext* executionContext = scriptState->executionContext(); |
314 RefPtr<SecurityOrigin> documentOrigin = executionContext->securityOrigin(); | 314 RefPtr<SecurityOrigin> documentOrigin = executionContext->securityOrigin(); |
315 String errorMessage; | 315 String errorMessage; |
316 if (!executionContext->isSecureContext(errorMessage)) { | 316 if (!executionContext->isSecureContext(errorMessage)) { |
317 resolver->reject(DOMException::create(NotSupportedError, errorMessage)); | 317 resolver->reject(DOMException::create(SecurityError, errorMessage)); |
318 return promise; | 318 return promise; |
319 } | 319 } |
320 | 320 |
321 KURL pageURL = KURL(KURL(), documentOrigin->toString()); | 321 KURL pageURL = KURL(KURL(), documentOrigin->toString()); |
322 if (!SchemeRegistry::shouldTreatURLSchemeAsAllowingServiceWorkers(pageURL.pr
otocol())) { | 322 if (!SchemeRegistry::shouldTreatURLSchemeAsAllowingServiceWorkers(pageURL.pr
otocol())) { |
323 resolver->reject(DOMException::create(SecurityError, "Failed to get Serv
iceWorkerRegistration objects: The URL protocol of the current origin ('" + docu
mentOrigin->toString() + "') is not supported.")); | 323 resolver->reject(DOMException::create(SecurityError, "Failed to get Serv
iceWorkerRegistration objects: The URL protocol of the current origin ('" + docu
mentOrigin->toString() + "') is not supported.")); |
324 return promise; | 324 return promise; |
325 } | 325 } |
326 | 326 |
327 m_provider->getRegistrations(new GetRegistrationsCallback(resolver)); | 327 m_provider->getRegistrations(new GetRegistrationsCallback(resolver)); |
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
390 return; | 390 return; |
391 | 391 |
392 if (ServiceWorkerContainerClient* client = ServiceWorkerContainerClient::fro
m(executionContext)) { | 392 if (ServiceWorkerContainerClient* client = ServiceWorkerContainerClient::fro
m(executionContext)) { |
393 m_provider = client->provider(); | 393 m_provider = client->provider(); |
394 if (m_provider) | 394 if (m_provider) |
395 m_provider->setClient(this); | 395 m_provider->setClient(this); |
396 } | 396 } |
397 } | 397 } |
398 | 398 |
399 } // namespace blink | 399 } // namespace blink |
OLD | NEW |