Chromium Code Reviews| 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 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 77 exceptionState.throwTypeError("Illegal constructor."); | 77 exceptionState.throwTypeError("Illegal constructor."); |
| 78 return nullptr; | 78 return nullptr; |
| 79 } | 79 } |
| 80 | 80 |
| 81 if (!options.actions().isEmpty()) { | 81 if (!options.actions().isEmpty()) { |
| 82 exceptionState.throwTypeError("Actions are only supported for persistent notifications shown using ServiceWorkerRegistration.showNotification()."); | 82 exceptionState.throwTypeError("Actions are only supported for persistent notifications shown using ServiceWorkerRegistration.showNotification()."); |
| 83 return nullptr; | 83 return nullptr; |
| 84 } | 84 } |
| 85 | 85 |
| 86 String insecureOriginMessage; | 86 String insecureOriginMessage; |
| 87 UseCounter::Feature feature = context->isSecureContext(insecureOriginMessage ) | 87 if (context->isSecureContext(insecureOriginMessage)) { |
| 88 ? UseCounter::NotificationSecureOrigin | 88 UseCounter::count(context, UseCounter::NotificationSecureOrigin); |
| 89 : UseCounter::NotificationInsecureOrigin; | 89 if (context->isDocument()) |
| 90 | 90 UseCounter::countCrossOriginIframe(*toDocument(context), UseCounter ::NotificationAPISecureOriginIframe); |
| 91 UseCounter::count(context, feature); | 91 } else { |
| 92 UseCounter::count(context, UseCounter::NotificationInsecureOrigin); | |
| 93 if (context->isDocument()) | |
| 94 UseCounter::countCrossOriginIframe(*toDocument(context), UseCounter ::NotificationAPIInsecureOriginIframe); | |
| 95 } | |
| 92 | 96 |
| 93 WebNotificationData data = createWebNotificationData(context, title, options , exceptionState); | 97 WebNotificationData data = createWebNotificationData(context, title, options , exceptionState); |
| 94 if (exceptionState.hadException()) | 98 if (exceptionState.hadException()) |
| 95 return nullptr; | 99 return nullptr; |
| 96 | 100 |
| 97 Notification* notification = new Notification(context, data); | 101 Notification* notification = new Notification(context, data); |
| 98 notification->scheduleShow(); | 102 notification->scheduleShow(); |
| 99 notification->suspendIfNeeded(); | 103 notification->suspendIfNeeded(); |
| 100 | 104 |
| 101 return notification; | 105 return notification; |
| (...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 313 { | 317 { |
| 314 SecurityOrigin* origin = context->securityOrigin(); | 318 SecurityOrigin* origin = context->securityOrigin(); |
| 315 ASSERT(origin); | 319 ASSERT(origin); |
| 316 | 320 |
| 317 return notificationManager()->checkPermission(WebSecurityOrigin(origin)); | 321 return notificationManager()->checkPermission(WebSecurityOrigin(origin)); |
| 318 } | 322 } |
| 319 | 323 |
| 320 ScriptPromise Notification::requestPermission(ScriptState* scriptState, Notifica tionPermissionCallback* deprecatedCallback) | 324 ScriptPromise Notification::requestPermission(ScriptState* scriptState, Notifica tionPermissionCallback* deprecatedCallback) |
| 321 { | 325 { |
| 322 ExecutionContext* context = scriptState->executionContext(); | 326 ExecutionContext* context = scriptState->executionContext(); |
| 327 | |
| 328 // Measure usage in cross-origin iframes. | |
|
mlamouri (slow - plz ping)
2016/01/19 17:54:48
Why do we need to know that? If we want to know us
raymes
2016/01/20 00:13:12
I tried to make what we're counting consistent acr
| |
| 329 if (context->isDocument()) { | |
| 330 String insecureOriginMessage; | |
| 331 if (context->isSecureContext(insecureOriginMessage)) { | |
| 332 UseCounter::countCrossOriginIframe(*toDocument(context), UseCounter: :NotificationAPISecureOriginIframe); | |
| 333 } else { | |
| 334 UseCounter::countCrossOriginIframe(*toDocument(context), UseCounter: :NotificationAPIInsecureOriginIframe); | |
| 335 } | |
| 336 } | |
| 337 | |
| 323 if (NotificationPermissionClient* permissionClient = NotificationPermissionC lient::from(context)) | 338 if (NotificationPermissionClient* permissionClient = NotificationPermissionC lient::from(context)) |
| 324 return permissionClient->requestPermission(scriptState, deprecatedCallba ck); | 339 return permissionClient->requestPermission(scriptState, deprecatedCallba ck); |
| 325 | 340 |
| 326 // The context has been detached. Return a promise that will never settle. | 341 // The context has been detached. Return a promise that will never settle. |
| 327 ASSERT(context->activeDOMObjectsAreStopped()); | 342 ASSERT(context->activeDOMObjectsAreStopped()); |
| 328 return ScriptPromise(); | 343 return ScriptPromise(); |
| 329 } | 344 } |
| 330 | 345 |
| 331 size_t Notification::maxActions() | 346 size_t Notification::maxActions() |
| 332 { | 347 { |
| (...skipping 30 matching lines...) Expand all Loading... | |
| 363 } | 378 } |
| 364 | 379 |
| 365 DEFINE_TRACE(Notification) | 380 DEFINE_TRACE(Notification) |
| 366 { | 381 { |
| 367 visitor->trace(m_asyncRunner); | 382 visitor->trace(m_asyncRunner); |
| 368 RefCountedGarbageCollectedEventTargetWithInlineData<Notification>::trace(vis itor); | 383 RefCountedGarbageCollectedEventTargetWithInlineData<Notification>::trace(vis itor); |
| 369 ActiveDOMObject::trace(visitor); | 384 ActiveDOMObject::trace(visitor); |
| 370 } | 385 } |
| 371 | 386 |
| 372 } // namespace blink | 387 } // namespace blink |
| OLD | NEW |