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 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
109 notification->suspendIfNeeded(); | 109 notification->suspendIfNeeded(); |
110 | 110 |
111 return notification; | 111 return notification; |
112 } | 112 } |
113 | 113 |
114 Notification::Notification(ExecutionContext* context, const WebNotificationData&
data) | 114 Notification::Notification(ExecutionContext* context, const WebNotificationData&
data) |
115 : ActiveDOMObject(context) | 115 : ActiveDOMObject(context) |
116 , m_data(data) | 116 , m_data(data) |
117 , m_persistentId(kInvalidPersistentId) | 117 , m_persistentId(kInvalidPersistentId) |
118 , m_state(NotificationStateIdle) | 118 , m_state(NotificationStateIdle) |
119 , m_asyncRunner(this, &Notification::show) | 119 , m_asyncRunner(AsyncMethodRunner<Notification>::create(this, &Notification:
:show)) |
120 { | 120 { |
121 ASSERT(notificationManager()); | 121 ASSERT(notificationManager()); |
122 } | 122 } |
123 | 123 |
124 Notification::~Notification() | 124 Notification::~Notification() |
125 { | 125 { |
126 } | 126 } |
127 | 127 |
128 void Notification::scheduleShow() | 128 void Notification::scheduleShow() |
129 { | 129 { |
130 ASSERT(m_state == NotificationStateIdle); | 130 ASSERT(m_state == NotificationStateIdle); |
131 ASSERT(!m_asyncRunner.isActive()); | 131 ASSERT(!m_asyncRunner->isActive()); |
132 | 132 |
133 m_asyncRunner.runAsync(); | 133 m_asyncRunner->runAsync(); |
134 } | 134 } |
135 | 135 |
136 void Notification::show() | 136 void Notification::show() |
137 { | 137 { |
138 ASSERT(m_state == NotificationStateIdle); | 138 ASSERT(m_state == NotificationStateIdle); |
139 if (Notification::checkPermission(executionContext()) != WebNotificationPerm
issionAllowed) { | 139 if (Notification::checkPermission(executionContext()) != WebNotificationPerm
issionAllowed) { |
140 dispatchErrorEvent(); | 140 dispatchErrorEvent(); |
141 return; | 141 return; |
142 } | 142 } |
143 | 143 |
(...skipping 203 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
347 { | 347 { |
348 return EventTargetNames::Notification; | 348 return EventTargetNames::Notification; |
349 } | 349 } |
350 | 350 |
351 void Notification::stop() | 351 void Notification::stop() |
352 { | 352 { |
353 notificationManager()->notifyDelegateDestroyed(this); | 353 notificationManager()->notifyDelegateDestroyed(this); |
354 | 354 |
355 m_state = NotificationStateClosed; | 355 m_state = NotificationStateClosed; |
356 | 356 |
357 m_asyncRunner.stop(); | 357 m_asyncRunner->stop(); |
358 } | 358 } |
359 | 359 |
360 bool Notification::hasPendingActivity() const | 360 bool Notification::hasPendingActivity() const |
361 { | 361 { |
362 return m_state == NotificationStateShowing || m_asyncRunner.isActive(); | 362 return m_state == NotificationStateShowing || m_asyncRunner->isActive(); |
363 } | 363 } |
364 | 364 |
365 DEFINE_TRACE(Notification) | 365 DEFINE_TRACE(Notification) |
366 { | 366 { |
| 367 visitor->trace(m_asyncRunner); |
367 RefCountedGarbageCollectedEventTargetWithInlineData<Notification>::trace(vis
itor); | 368 RefCountedGarbageCollectedEventTargetWithInlineData<Notification>::trace(vis
itor); |
368 ActiveDOMObject::trace(visitor); | 369 ActiveDOMObject::trace(visitor); |
369 } | 370 } |
370 | 371 |
371 } // namespace blink | 372 } // namespace blink |
OLD | NEW |