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 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
59 | 59 |
60 Notification* Notification::create(ExecutionContext* context, const String& titl
e, const NotificationOptions& options, ExceptionState& exceptionState) | 60 Notification* Notification::create(ExecutionContext* context, const String& titl
e, const NotificationOptions& options, ExceptionState& exceptionState) |
61 { | 61 { |
62 // The Web Notification constructor may be disabled through a runtime featur
e. The | 62 // The Web Notification constructor may be disabled through a runtime featur
e. The |
63 // behavior of the constructor is changing, but not completely agreed upon y
et. | 63 // behavior of the constructor is changing, but not completely agreed upon y
et. |
64 if (!RuntimeEnabledFeatures::notificationConstructorEnabled()) { | 64 if (!RuntimeEnabledFeatures::notificationConstructorEnabled()) { |
65 exceptionState.throwTypeError("Illegal constructor. Use ServiceWorkerReg
istration.showNotification() instead."); | 65 exceptionState.throwTypeError("Illegal constructor. Use ServiceWorkerReg
istration.showNotification() instead."); |
66 return nullptr; | 66 return nullptr; |
67 } | 67 } |
68 | 68 |
| 69 // The Web Notification constructor may not be used in Service Worker contex
ts. |
| 70 if (context->isServiceWorkerGlobalScope()) { |
| 71 exceptionState.throwTypeError("Illegal constructor."); |
| 72 return nullptr; |
| 73 } |
| 74 |
69 Notification* notification = new Notification(title, context); | 75 Notification* notification = new Notification(title, context); |
70 | 76 |
71 notification->setBody(options.body()); | 77 notification->setBody(options.body()); |
72 notification->setTag(options.tag()); | 78 notification->setTag(options.tag()); |
73 notification->setLang(options.lang()); | 79 notification->setLang(options.lang()); |
74 notification->setDir(options.dir()); | 80 notification->setDir(options.dir()); |
75 if (options.hasIcon()) { | 81 if (options.hasIcon()) { |
76 KURL iconUrl = options.icon().isEmpty() ? KURL() : context->completeURL(
options.icon()); | 82 KURL iconUrl = options.icon().isEmpty() ? KURL() : context->completeURL(
options.icon()); |
77 if (!iconUrl.isEmpty() && iconUrl.isValid()) | 83 if (!iconUrl.isEmpty() && iconUrl.isValid()) |
78 notification->setIconUrl(iconUrl); | 84 notification->setIconUrl(iconUrl); |
(...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
259 return m_state == NotificationStateShowing || m_asyncRunner.isActive(); | 265 return m_state == NotificationStateShowing || m_asyncRunner.isActive(); |
260 } | 266 } |
261 | 267 |
262 void Notification::trace(Visitor* visitor) | 268 void Notification::trace(Visitor* visitor) |
263 { | 269 { |
264 RefCountedGarbageCollectedEventTargetWithInlineData<Notification>::trace(vis
itor); | 270 RefCountedGarbageCollectedEventTargetWithInlineData<Notification>::trace(vis
itor); |
265 ActiveDOMObject::trace(visitor); | 271 ActiveDOMObject::trace(visitor); |
266 } | 272 } |
267 | 273 |
268 } // namespace blink | 274 } // namespace blink |
OLD | NEW |