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

Side by Side Diff: Source/core/xml/XMLHttpRequest.h

Issue 23243002: Introduce XMLHttpRequestEventTarget IDL interface (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Fix nits and add test Created 7 years, 4 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) 2003, 2006, 2008 Apple Inc. All rights reserved. 2 * Copyright (C) 2003, 2006, 2008 Apple Inc. All rights reserved.
3 * Copyright (C) 2005, 2006 Alexey Proskuryakov <ap@nypop.com> 3 * Copyright (C) 2005, 2006 Alexey Proskuryakov <ap@nypop.com>
4 * Copyright (C) 2011 Google Inc. All rights reserved. 4 * Copyright (C) 2011 Google Inc. All rights reserved.
5 * Copyright (C) 2012 Intel Corporation 5 * Copyright (C) 2012 Intel Corporation
6 * 6 *
7 * This library is free software; you can redistribute it and/or 7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Lesser General Public 8 * modify it under the terms of the GNU Lesser General Public
9 * License as published by the Free Software Foundation; either 9 * License as published by the Free Software Foundation; either
10 * version 2 of the License, or (at your option) any later version. 10 * version 2 of the License, or (at your option) any later version.
11 * 11 *
12 * This library is distributed in the hope that it will be useful, 12 * This library is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Lesser General Public License for more details. 15 * Lesser General Public License for more details.
16 * 16 *
17 * You should have received a copy of the GNU Lesser General Public 17 * You should have received a copy of the GNU Lesser General Public
18 * License along with this library; if not, write to the Free Software 18 * License along with this library; if not, write to the Free Software
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 U SA 19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 U SA
20 */ 20 */
21 21
22 #ifndef XMLHttpRequest_h 22 #ifndef XMLHttpRequest_h
23 #define XMLHttpRequest_h 23 #define XMLHttpRequest_h
24 24
25 #include "bindings/v8/ScriptString.h" 25 #include "bindings/v8/ScriptString.h"
26 #include "bindings/v8/ScriptWrappable.h" 26 #include "bindings/v8/ScriptWrappable.h"
27 #include "core/dom/ActiveDOMObject.h" 27 #include "core/dom/ActiveDOMObject.h"
28 #include "core/dom/EventListener.h" 28 #include "core/dom/EventListener.h"
29 #include "core/dom/EventNames.h" 29 #include "core/dom/EventNames.h"
30 #include "core/dom/EventTarget.h"
31 #include "core/loader/ThreadableLoaderClient.h" 30 #include "core/loader/ThreadableLoaderClient.h"
32 #include "core/platform/network/FormData.h" 31 #include "core/platform/network/FormData.h"
33 #include "core/platform/network/ResourceResponse.h" 32 #include "core/platform/network/ResourceResponse.h"
33 #include "core/xml/XMLHttpRequestEventTarget.h"
34 #include "core/xml/XMLHttpRequestProgressEventThrottle.h" 34 #include "core/xml/XMLHttpRequestProgressEventThrottle.h"
35 #include "weborigin/SecurityOrigin.h" 35 #include "weborigin/SecurityOrigin.h"
36 #include "wtf/OwnPtr.h" 36 #include "wtf/OwnPtr.h"
37 #include "wtf/text/AtomicStringHash.h" 37 #include "wtf/text/AtomicStringHash.h"
38 #include "wtf/text/StringBuilder.h" 38 #include "wtf/text/StringBuilder.h"
39 39
40 namespace WebCore { 40 namespace WebCore {
41 41
42 class Blob; 42 class Blob;
43 class DOMFormData; 43 class DOMFormData;
44 class Document; 44 class Document;
45 class ExceptionState; 45 class ExceptionState;
46 class ResourceRequest; 46 class ResourceRequest;
47 class SecurityOrigin; 47 class SecurityOrigin;
48 class SharedBuffer; 48 class SharedBuffer;
49 class TextResourceDecoder; 49 class TextResourceDecoder;
50 class ThreadableLoader; 50 class ThreadableLoader;
51 51
52 typedef int ExceptionCode; 52 typedef int ExceptionCode;
53 53
54 class XMLHttpRequest : public ScriptWrappable, public RefCounted<XMLHttpRequest> , public EventTarget, private ThreadableLoaderClient, public ActiveDOMObject { 54 class XMLHttpRequest : public ScriptWrappable, public RefCounted<XMLHttpRequest> , public XMLHttpRequestEventTarget, private ThreadableLoaderClient, public Activ eDOMObject {
55 WTF_MAKE_FAST_ALLOCATED; 55 WTF_MAKE_FAST_ALLOCATED;
56 public: 56 public:
57 static PassRefPtr<XMLHttpRequest> create(ScriptExecutionContext*, PassRefPtr <SecurityOrigin> = 0); 57 static PassRefPtr<XMLHttpRequest> create(ScriptExecutionContext*, PassRefPtr <SecurityOrigin> = 0);
58 ~XMLHttpRequest(); 58 ~XMLHttpRequest();
59 59
60 // These exact numeric values are important because JS expects them. 60 // These exact numeric values are important because JS expects them.
61 enum State { 61 enum State {
62 UNSENT = 0, 62 UNSENT = 0,
63 OPENED = 1, 63 OPENED = 1,
64 HEADERS_RECEIVED = 2, 64 HEADERS_RECEIVED = 2,
65 LOADING = 3, 65 LOADING = 3,
66 DONE = 4 66 DONE = 4
67 }; 67 };
68 68
69 enum ResponseTypeCode { 69 enum ResponseTypeCode {
70 ResponseTypeDefault, 70 ResponseTypeDefault,
71 ResponseTypeText, 71 ResponseTypeText,
72 ResponseTypeDocument, 72 ResponseTypeDocument,
73 ResponseTypeBlob, 73 ResponseTypeBlob,
74 ResponseTypeArrayBuffer 74 ResponseTypeArrayBuffer
75 }; 75 };
76 76
77 virtual void contextDestroyed(); 77 virtual void contextDestroyed();
78 virtual void didTimeout(); 78 virtual void didTimeout();
79 virtual bool canSuspend() const; 79 virtual bool canSuspend() const;
80 virtual void suspend(ReasonForSuspension); 80 virtual void suspend(ReasonForSuspension);
81 virtual void resume(); 81 virtual void resume();
82 virtual void stop(); 82 virtual void stop();
83 83
84 virtual const AtomicString& interfaceName() const; 84 virtual const AtomicString& interfaceName() const OVERRIDE;
85 virtual ScriptExecutionContext* scriptExecutionContext() const; 85 virtual ScriptExecutionContext* scriptExecutionContext() const OVERRIDE;
86 86
87 const KURL& url() const { return m_url; } 87 const KURL& url() const { return m_url; }
88 String statusText(ExceptionState&) const; 88 String statusText(ExceptionState&) const;
89 int status(ExceptionState&) const; 89 int status(ExceptionState&) const;
90 State readyState() const; 90 State readyState() const;
91 bool withCredentials() const { return m_includeCredentials; } 91 bool withCredentials() const { return m_includeCredentials; }
92 void setWithCredentials(bool, ExceptionState&); 92 void setWithCredentials(bool, ExceptionState&);
93 void open(const String& method, const KURL&, ExceptionState&); 93 void open(const String& method, const KURL&, ExceptionState&);
94 void open(const String& method, const KURL&, bool async, ExceptionState&); 94 void open(const String& method, const KURL&, bool async, ExceptionState&);
95 void open(const String& method, const KURL&, bool async, const String& user, ExceptionState&); 95 void open(const String& method, const KURL&, bool async, const String& user, ExceptionState&);
(...skipping 29 matching lines...) Expand all
125 125
126 // response attribute has custom getter. 126 // response attribute has custom getter.
127 ArrayBuffer* responseArrayBuffer(); 127 ArrayBuffer* responseArrayBuffer();
128 128
129 void setLastSendLineNumber(unsigned lineNumber) { m_lastSendLineNumber = lin eNumber; } 129 void setLastSendLineNumber(unsigned lineNumber) { m_lastSendLineNumber = lin eNumber; }
130 void setLastSendURL(const String& url) { m_lastSendURL = url; } 130 void setLastSendURL(const String& url) { m_lastSendURL = url; }
131 131
132 XMLHttpRequestUpload* upload(); 132 XMLHttpRequestUpload* upload();
133 133
134 DEFINE_ATTRIBUTE_EVENT_LISTENER(readystatechange); 134 DEFINE_ATTRIBUTE_EVENT_LISTENER(readystatechange);
135 DEFINE_ATTRIBUTE_EVENT_LISTENER(abort);
136 DEFINE_ATTRIBUTE_EVENT_LISTENER(error);
137 DEFINE_ATTRIBUTE_EVENT_LISTENER(load);
138 DEFINE_ATTRIBUTE_EVENT_LISTENER(loadend);
139 DEFINE_ATTRIBUTE_EVENT_LISTENER(loadstart);
140 DEFINE_ATTRIBUTE_EVENT_LISTENER(progress);
141 DEFINE_ATTRIBUTE_EVENT_LISTENER(timeout);
142 135
143 using RefCounted<XMLHttpRequest>::ref; 136 using RefCounted<XMLHttpRequest>::ref;
144 using RefCounted<XMLHttpRequest>::deref; 137 using RefCounted<XMLHttpRequest>::deref;
145 138
146 private: 139 private:
147 XMLHttpRequest(ScriptExecutionContext*, PassRefPtr<SecurityOrigin>); 140 XMLHttpRequest(ScriptExecutionContext*, PassRefPtr<SecurityOrigin>);
148 141
149 virtual void refEventTarget() { ref(); } 142 virtual void refEventTarget() OVERRIDE { ref(); }
150 virtual void derefEventTarget() { deref(); } 143 virtual void derefEventTarget() OVERRIDE { deref(); }
151 virtual EventTargetData* eventTargetData();
152 virtual EventTargetData* ensureEventTargetData();
153 144
154 Document* document() const; 145 Document* document() const;
155 SecurityOrigin* securityOrigin() const; 146 SecurityOrigin* securityOrigin() const;
156 147
157 virtual void didSendData(unsigned long long bytesSent, unsigned long long to talBytesToBeSent); 148 virtual void didSendData(unsigned long long bytesSent, unsigned long long to talBytesToBeSent);
158 virtual void didReceiveResponse(unsigned long identifier, const ResourceResp onse&); 149 virtual void didReceiveResponse(unsigned long identifier, const ResourceResp onse&);
159 virtual void didReceiveData(const char* data, int dataLength); 150 virtual void didReceiveData(const char* data, int dataLength);
160 virtual void didFinishLoading(unsigned long identifier, double finishTime); 151 virtual void didFinishLoading(unsigned long identifier, double finishTime);
161 virtual void didFail(const ResourceError&); 152 virtual void didFail(const ResourceError&);
162 virtual void didFailRedirectCheck(); 153 virtual void didFailRedirectCheck();
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
222 bool m_sameOriginRequest; 213 bool m_sameOriginRequest;
223 bool m_allowCrossOriginRequests; 214 bool m_allowCrossOriginRequests;
224 215
225 // Used for onprogress tracking 216 // Used for onprogress tracking
226 long long m_receivedLength; 217 long long m_receivedLength;
227 218
228 unsigned m_lastSendLineNumber; 219 unsigned m_lastSendLineNumber;
229 String m_lastSendURL; 220 String m_lastSendURL;
230 ExceptionCode m_exceptionCode; 221 ExceptionCode m_exceptionCode;
231 222
232 EventTargetData m_eventTargetData;
233
234 XMLHttpRequestProgressEventThrottle m_progressEventThrottle; 223 XMLHttpRequestProgressEventThrottle m_progressEventThrottle;
235 224
236 // An enum corresponding to the allowed string values for the responseType a ttribute. 225 // An enum corresponding to the allowed string values for the responseType a ttribute.
237 ResponseTypeCode m_responseTypeCode; 226 ResponseTypeCode m_responseTypeCode;
238 Timer<XMLHttpRequest> m_protectionTimer; 227 Timer<XMLHttpRequest> m_protectionTimer;
239 RefPtr<SecurityOrigin> m_securityOrigin; 228 RefPtr<SecurityOrigin> m_securityOrigin;
240 }; 229 };
241 230
242 } // namespace WebCore 231 } // namespace WebCore
243 232
244 #endif // XMLHttpRequest_h 233 #endif // XMLHttpRequest_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698