Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(24)

Side by Side Diff: Source/modules/notifications/Notification.cpp

Issue 19724003: Revert "Transition modules/** to use ExceptionState" (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 7 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2009 Google Inc. All rights reserved. 2 * Copyright (C) 2009 Google Inc. All rights reserved.
3 * Copyright (C) 2009, 2011, 2012 Apple Inc. All rights reserved. 3 * Copyright (C) 2009, 2011, 2012 Apple Inc. All rights reserved.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are 6 * modification, are permitted provided that the following conditions are
7 * met: 7 * met:
8 * 8 *
9 * * Redistributions of source code must retain the above copyright 9 * * Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer. 10 * notice, this list of conditions and the following disclaimer.
(...skipping 18 matching lines...) Expand all
29 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30 */ 30 */
31 31
32 #include "config.h" 32 #include "config.h"
33 33
34 #if ENABLE(NOTIFICATIONS) || ENABLE(LEGACY_NOTIFICATIONS) 34 #if ENABLE(NOTIFICATIONS) || ENABLE(LEGACY_NOTIFICATIONS)
35 35
36 #include "modules/notifications/Notification.h" 36 #include "modules/notifications/Notification.h"
37 37
38 #include "bindings/v8/Dictionary.h" 38 #include "bindings/v8/Dictionary.h"
39 #include "bindings/v8/ExceptionState.h"
40 #include "core/dom/Document.h" 39 #include "core/dom/Document.h"
41 #include "core/dom/ErrorEvent.h" 40 #include "core/dom/ErrorEvent.h"
42 #include "core/dom/EventNames.h" 41 #include "core/dom/EventNames.h"
43 #include "core/loader/ThreadableLoader.h" 42 #include "core/loader/ThreadableLoader.h"
44 #include "core/page/DOMWindow.h" 43 #include "core/page/DOMWindow.h"
45 #include "core/page/WindowFocusAllowedIndicator.h" 44 #include "core/page/WindowFocusAllowedIndicator.h"
46 #include "core/platform/network/ResourceRequest.h" 45 #include "core/platform/network/ResourceRequest.h"
47 #include "core/platform/network/ResourceResponse.h" 46 #include "core/platform/network/ResourceResponse.h"
48 #include "core/workers/WorkerGlobalScope.h" 47 #include "core/workers/WorkerGlobalScope.h"
49 #include "modules/notifications/DOMWindowNotifications.h" 48 #include "modules/notifications/DOMWindowNotifications.h"
50 #include "modules/notifications/NotificationCenter.h" 49 #include "modules/notifications/NotificationCenter.h"
51 #include "modules/notifications/NotificationClient.h" 50 #include "modules/notifications/NotificationClient.h"
52 #include "modules/notifications/NotificationController.h" 51 #include "modules/notifications/NotificationController.h"
53 #include "modules/notifications/NotificationPermissionCallback.h" 52 #include "modules/notifications/NotificationPermissionCallback.h"
54 53
55 namespace WebCore { 54 namespace WebCore {
56 55
57 Notification::Notification() 56 Notification::Notification()
58 : ActiveDOMObject(0) 57 : ActiveDOMObject(0)
59 { 58 {
60 ScriptWrappable::init(this); 59 ScriptWrappable::init(this);
61 } 60 }
62 61
63 #if ENABLE(LEGACY_NOTIFICATIONS) 62 #if ENABLE(LEGACY_NOTIFICATIONS)
64 Notification::Notification(const KURL& url, ScriptExecutionContext* context, Exc eptionState& es, PassRefPtr<NotificationCenter> provider) 63 Notification::Notification(const KURL& url, ScriptExecutionContext* context, Exc eptionCode& ec, PassRefPtr<NotificationCenter> provider)
65 : ActiveDOMObject(context) 64 : ActiveDOMObject(context)
66 , m_isHTML(true) 65 , m_isHTML(true)
67 , m_state(Idle) 66 , m_state(Idle)
68 , m_notificationCenter(provider) 67 , m_notificationCenter(provider)
69 { 68 {
70 ScriptWrappable::init(this); 69 ScriptWrappable::init(this);
71 if (m_notificationCenter->checkPermission() != NotificationClient::Permissio nAllowed) { 70 if (m_notificationCenter->checkPermission() != NotificationClient::Permissio nAllowed) {
72 es.throwDOMException(SecurityError); 71 ec = SecurityError;
73 return; 72 return;
74 } 73 }
75 74
76 if (url.isEmpty() || !url.isValid()) { 75 if (url.isEmpty() || !url.isValid()) {
77 es.throwDOMException(SyntaxError); 76 ec = SyntaxError;
78 return; 77 return;
79 } 78 }
80 79
81 m_notificationURL = url; 80 m_notificationURL = url;
82 } 81 }
83 #endif 82 #endif
84 83
85 #if ENABLE(LEGACY_NOTIFICATIONS) 84 #if ENABLE(LEGACY_NOTIFICATIONS)
86 Notification::Notification(const String& title, const String& body, const String & iconURI, ScriptExecutionContext* context, ExceptionState& es, PassRefPtr<Notif icationCenter> provider) 85 Notification::Notification(const String& title, const String& body, const String & iconURI, ScriptExecutionContext* context, ExceptionCode& ec, PassRefPtr<Notifi cationCenter> provider)
87 : ActiveDOMObject(context) 86 : ActiveDOMObject(context)
88 , m_isHTML(false) 87 , m_isHTML(false)
89 , m_title(title) 88 , m_title(title)
90 , m_body(body) 89 , m_body(body)
91 , m_state(Idle) 90 , m_state(Idle)
92 , m_notificationCenter(provider) 91 , m_notificationCenter(provider)
93 { 92 {
94 ScriptWrappable::init(this); 93 ScriptWrappable::init(this);
95 if (m_notificationCenter->checkPermission() != NotificationClient::Permissio nAllowed) { 94 if (m_notificationCenter->checkPermission() != NotificationClient::Permissio nAllowed) {
96 es.throwDOMException(SecurityError); 95 ec = SecurityError;
97 return; 96 return;
98 } 97 }
99 98
100 m_icon = iconURI.isEmpty() ? KURL() : scriptExecutionContext()->completeURL( iconURI); 99 m_icon = iconURI.isEmpty() ? KURL() : scriptExecutionContext()->completeURL( iconURI);
101 if (!m_icon.isEmpty() && !m_icon.isValid()) { 100 if (!m_icon.isEmpty() && !m_icon.isValid()) {
102 es.throwDOMException(SyntaxError); 101 ec = SyntaxError;
103 return; 102 return;
104 } 103 }
105 } 104 }
106 #endif 105 #endif
107 106
108 #if ENABLE(NOTIFICATIONS) 107 #if ENABLE(NOTIFICATIONS)
109 Notification::Notification(ScriptExecutionContext* context, const String& title) 108 Notification::Notification(ScriptExecutionContext* context, const String& title)
110 : ActiveDOMObject(context) 109 : ActiveDOMObject(context)
111 , m_isHTML(false) 110 , m_isHTML(false)
112 , m_title(title) 111 , m_title(title)
113 , m_state(Idle) 112 , m_state(Idle)
114 , m_taskTimer(adoptPtr(new Timer<Notification>(this, &Notification::taskTime rFired))) 113 , m_taskTimer(adoptPtr(new Timer<Notification>(this, &Notification::taskTime rFired)))
115 { 114 {
116 ScriptWrappable::init(this); 115 ScriptWrappable::init(this);
117 m_notificationCenter = DOMWindowNotifications::webkitNotifications(toDocumen t(context)->domWindow()); 116 m_notificationCenter = DOMWindowNotifications::webkitNotifications(toDocumen t(context)->domWindow());
118 117
119 ASSERT(m_notificationCenter->client()); 118 ASSERT(m_notificationCenter->client());
120 m_taskTimer->startOneShot(0); 119 m_taskTimer->startOneShot(0);
121 } 120 }
122 #endif 121 #endif
123 122
124 Notification::~Notification() 123 Notification::~Notification()
125 { 124 {
126 } 125 }
127 126
128 #if ENABLE(LEGACY_NOTIFICATIONS) 127 #if ENABLE(LEGACY_NOTIFICATIONS)
129 PassRefPtr<Notification> Notification::create(const KURL& url, ScriptExecutionCo ntext* context, ExceptionState& es, PassRefPtr<NotificationCenter> provider) 128 PassRefPtr<Notification> Notification::create(const KURL& url, ScriptExecutionCo ntext* context, ExceptionCode& ec, PassRefPtr<NotificationCenter> provider)
130 { 129 {
131 RefPtr<Notification> notification(adoptRef(new Notification(url, context, es , provider))); 130 RefPtr<Notification> notification(adoptRef(new Notification(url, context, ec , provider)));
132 notification->suspendIfNeeded(); 131 notification->suspendIfNeeded();
133 return notification.release(); 132 return notification.release();
134 } 133 }
135 134
136 PassRefPtr<Notification> Notification::create(const String& title, const String& body, const String& iconURI, ScriptExecutionContext* context, ExceptionState& e s, PassRefPtr<NotificationCenter> provider) 135 PassRefPtr<Notification> Notification::create(const String& title, const String& body, const String& iconURI, ScriptExecutionContext* context, ExceptionCode& ec , PassRefPtr<NotificationCenter> provider)
137 { 136 {
138 RefPtr<Notification> notification(adoptRef(new Notification(title, body, ico nURI, context, es, provider))); 137 RefPtr<Notification> notification(adoptRef(new Notification(title, body, ico nURI, context, ec, provider)));
139 notification->suspendIfNeeded(); 138 notification->suspendIfNeeded();
140 return notification.release(); 139 return notification.release();
141 } 140 }
142 #endif 141 #endif
143 142
144 #if ENABLE(NOTIFICATIONS) 143 #if ENABLE(NOTIFICATIONS)
145 PassRefPtr<Notification> Notification::create(ScriptExecutionContext* context, c onst String& title, const Dictionary& options) 144 PassRefPtr<Notification> Notification::create(ScriptExecutionContext* context, c onst String& title, const Dictionary& options)
146 { 145 {
147 RefPtr<Notification> notification(adoptRef(new Notification(context, title)) ); 146 RefPtr<Notification> notification(adoptRef(new Notification(context, title)) );
148 String argument; 147 String argument;
(...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after
289 void Notification::requestPermission(ScriptExecutionContext* context, PassRefPtr <NotificationPermissionCallback> callback) 288 void Notification::requestPermission(ScriptExecutionContext* context, PassRefPtr <NotificationPermissionCallback> callback)
290 { 289 {
291 ASSERT(toDocument(context)->page()); 290 ASSERT(toDocument(context)->page());
292 NotificationController::from(toDocument(context)->page())->client()->request Permission(context, callback); 291 NotificationController::from(toDocument(context)->page())->client()->request Permission(context, callback);
293 } 292 }
294 #endif 293 #endif
295 294
296 } // namespace WebCore 295 } // namespace WebCore
297 296
298 #endif // ENABLE(NOTIFICATIONS) || ENABLE(LEGACY_NOTIFICATIONS) 297 #endif // ENABLE(NOTIFICATIONS) || ENABLE(LEGACY_NOTIFICATIONS)
OLDNEW
« no previous file with comments | « Source/modules/notifications/Notification.h ('k') | Source/modules/notifications/NotificationCenter.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698