OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2006, 2007, 2009, 2010 Apple Inc. All rights reserved. | 2 * Copyright (C) 2006, 2007, 2009, 2010 Apple Inc. All rights reserved. |
3 * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies) | 3 * Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies) |
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 | 6 * modification, are permitted provided that the following conditions |
7 * are met: | 7 * are met: |
8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. 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 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
87 PageshowEventNotPersisted = 0, | 87 PageshowEventNotPersisted = 0, |
88 PageshowEventPersisted = 1 | 88 PageshowEventPersisted = 1 |
89 }; | 89 }; |
90 | 90 |
91 enum SetLocationLocking { LockHistoryBasedOnGestureState, LockHistoryAndBack
ForwardList }; | 91 enum SetLocationLocking { LockHistoryBasedOnGestureState, LockHistoryAndBack
ForwardList }; |
92 | 92 |
93 class DOMWindow FINAL : public RefCounted<DOMWindow>, public ScriptWrappable
, public EventTargetWithInlineData, public FrameDestructionObserver, public Supp
lementable<DOMWindow>, public LifecycleContext<DOMWindow> { | 93 class DOMWindow FINAL : public RefCounted<DOMWindow>, public ScriptWrappable
, public EventTargetWithInlineData, public FrameDestructionObserver, public Supp
lementable<DOMWindow>, public LifecycleContext<DOMWindow> { |
94 REFCOUNTED_EVENT_TARGET(DOMWindow); | 94 REFCOUNTED_EVENT_TARGET(DOMWindow); |
95 public: | 95 public: |
96 static PassRefPtr<Document> createDocument(const String& mimeType, const
DocumentInit&, bool forceXHTML); | 96 static PassRefPtr<Document> createDocument(const String& mimeType, const
DocumentInit&, bool forceXHTML); |
97 static PassRefPtr<DOMWindow> create(LocalFrame* frame) { return adoptRef
(new DOMWindow(frame)); } | 97 static PassRefPtr<DOMWindow> create(LocalFrame& frame) { return adoptRef
(new DOMWindow(frame)); } |
98 virtual ~DOMWindow(); | 98 virtual ~DOMWindow(); |
99 | 99 |
100 PassRefPtr<Document> installNewDocument(const String& mimeType, const Do
cumentInit&, bool forceXHTML = false); | 100 PassRefPtr<Document> installNewDocument(const String& mimeType, const Do
cumentInit&, bool forceXHTML = false); |
101 | 101 |
102 virtual const AtomicString& interfaceName() const OVERRIDE; | 102 virtual const AtomicString& interfaceName() const OVERRIDE; |
103 virtual ExecutionContext* executionContext() const OVERRIDE; | 103 virtual ExecutionContext* executionContext() const OVERRIDE; |
104 | 104 |
105 virtual DOMWindow* toDOMWindow() OVERRIDE; | 105 virtual DOMWindow* toDOMWindow() OVERRIDE; |
106 | 106 |
107 void registerProperty(DOMWindowProperty*); | 107 void registerProperty(DOMWindowProperty*); |
108 void unregisterProperty(DOMWindowProperty*); | 108 void unregisterProperty(DOMWindowProperty*); |
109 | 109 |
110 void reset(); | 110 void reset(); |
111 | 111 |
112 PassRefPtr<MediaQueryList> matchMedia(const String&); | 112 PassRefPtr<MediaQueryList> matchMedia(const String&); |
113 | 113 |
114 unsigned pendingUnloadEventListeners() const; | 114 unsigned pendingUnloadEventListeners() const; |
115 | 115 |
116 static FloatRect adjustWindowRect(LocalFrame*, const FloatRect& pendingC
hanges); | 116 static FloatRect adjustWindowRect(LocalFrame&, const FloatRect& pendingC
hanges); |
117 | 117 |
118 bool allowPopUp(); // Call on first window, not target window. | 118 bool allowPopUp(); // Call on first window, not target window. |
119 static bool allowPopUp(LocalFrame* firstFrame); | 119 static bool allowPopUp(LocalFrame& firstFrame); |
120 | 120 |
121 // DOM Level 0 | 121 // DOM Level 0 |
122 | 122 |
123 Screen* screen() const; | 123 Screen& screen() const; |
124 History* history() const; | 124 History& history() const; |
125 BarProp* locationbar() const; | 125 BarProp& locationbar() const; |
126 BarProp* menubar() const; | 126 BarProp& menubar() const; |
127 BarProp* personalbar() const; | 127 BarProp& personalbar() const; |
128 BarProp* scrollbars() const; | 128 BarProp& scrollbars() const; |
129 BarProp* statusbar() const; | 129 BarProp& statusbar() const; |
130 BarProp* toolbar() const; | 130 BarProp& toolbar() const; |
131 Navigator* navigator() const; | 131 Navigator& navigator() const; |
132 Navigator* clientInformation() const { return navigator(); } | 132 Navigator& clientInformation() const { return navigator(); } |
133 | 133 |
134 Location* location() const; | 134 Location& location() const; |
135 void setLocation(const String& location, DOMWindow* callingWindow, DOMWi
ndow* enteredWindow, | 135 void setLocation(const String& location, DOMWindow* callingWindow, DOMWi
ndow* enteredWindow, |
136 SetLocationLocking = LockHistoryBasedOnGestureState); | 136 SetLocationLocking = LockHistoryBasedOnGestureState); |
137 | 137 |
138 DOMSelection* getSelection(); | 138 DOMSelection* getSelection(); |
139 | 139 |
140 Element* frameElement() const; | 140 Element* frameElement() const; |
141 | 141 |
142 void focus(ExecutionContext* = 0); | 142 void focus(ExecutionContext* = 0); |
143 void blur(); | 143 void blur(); |
144 void close(ExecutionContext* = 0); | 144 void close(ExecutionContext* = 0); |
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
190 DOMWindow* opener() const; | 190 DOMWindow* opener() const; |
191 DOMWindow* parent() const; | 191 DOMWindow* parent() const; |
192 DOMWindow* top() const; | 192 DOMWindow* top() const; |
193 | 193 |
194 // DOM Level 2 AbstractView Interface | 194 // DOM Level 2 AbstractView Interface |
195 | 195 |
196 Document* document() const; | 196 Document* document() const; |
197 | 197 |
198 // CSSOM View Module | 198 // CSSOM View Module |
199 | 199 |
200 PassRefPtr<StyleMedia> styleMedia() const; | 200 StyleMedia& styleMedia() const; |
201 | 201 |
202 // DOM Level 2 Style Interface | 202 // DOM Level 2 Style Interface |
203 | 203 |
204 PassRefPtr<CSSStyleDeclaration> getComputedStyle(Element*, const String&
pseudoElt) const; | 204 PassRefPtr<CSSStyleDeclaration> getComputedStyle(Element*, const String&
pseudoElt) const; |
205 | 205 |
206 // WebKit extensions | 206 // WebKit extensions |
207 | 207 |
208 PassRefPtr<CSSRuleList> getMatchedCSSRules(Element*, const String& pseud
oElt) const; | 208 PassRefPtr<CSSRuleList> getMatchedCSSRules(Element*, const String& pseud
oElt) const; |
209 double devicePixelRatio() const; | 209 double devicePixelRatio() const; |
210 | 210 |
211 PassRefPtr<DOMPoint> webkitConvertPointFromPageToNode(Node*, const DOMPo
int*) const; | 211 PassRefPtr<DOMPoint> webkitConvertPointFromPageToNode(Node*, const DOMPo
int*) const; |
212 PassRefPtr<DOMPoint> webkitConvertPointFromNodeToPage(Node*, const DOMPo
int*) const; | 212 PassRefPtr<DOMPoint> webkitConvertPointFromNodeToPage(Node*, const DOMPo
int*) const; |
213 | 213 |
214 Console* console() const; | 214 Console& console() const; |
215 PageConsole* pageConsole() const; | 215 PageConsole* pageConsole() const; |
216 | 216 |
217 void printErrorMessage(const String&); | 217 void printErrorMessage(const String&); |
218 String crossDomainAccessErrorMessage(DOMWindow* callingWindow); | 218 String crossDomainAccessErrorMessage(DOMWindow* callingWindow); |
219 String sanitizedCrossDomainAccessErrorMessage(DOMWindow* callingWindow); | 219 String sanitizedCrossDomainAccessErrorMessage(DOMWindow* callingWindow); |
220 | 220 |
221 void postMessage(PassRefPtr<SerializedScriptValue> message, const Messag
ePortArray*, const String& targetOrigin, DOMWindow* source, ExceptionState&); | 221 void postMessage(PassRefPtr<SerializedScriptValue> message, const Messag
ePortArray*, const String& targetOrigin, DOMWindow* source, ExceptionState&); |
222 void postMessageTimerFired(PassOwnPtr<PostMessageTimer>); | 222 void postMessageTimerFired(PassOwnPtr<PostMessageTimer>); |
223 void dispatchMessageEventWithOriginCheck(SecurityOrigin* intendedTargetO
rigin, PassRefPtr<Event>, PassRefPtr<ScriptCallStack>); | 223 void dispatchMessageEventWithOriginCheck(SecurityOrigin* intendedTargetO
rigin, PassRefPtr<Event>, PassRefPtr<ScriptCallStack>); |
224 | 224 |
225 void scrollBy(int x, int y, const Dictionary& scrollOptions, ExceptionSt
ate&) const; | 225 void scrollBy(int x, int y, const Dictionary& scrollOptions, ExceptionSt
ate&) const; |
226 void scrollTo(int x, int y, const Dictionary& scrollOptions, ExceptionSt
ate&) const; | 226 void scrollTo(int x, int y, const Dictionary& scrollOptions, ExceptionSt
ate&) const; |
227 void scroll(int x, int y, const Dictionary& scrollOptions, ExceptionStat
e& exceptionState) const { scrollTo(x, y, scrollOptions, exceptionState); } | 227 void scroll(int x, int y, const Dictionary& scrollOptions, ExceptionStat
e& exceptionState) const { scrollTo(x, y, scrollOptions, exceptionState); } |
228 | 228 |
229 void moveBy(float x, float y) const; | 229 void moveBy(float x, float y) const; |
230 void moveTo(float x, float y) const; | 230 void moveTo(float x, float y) const; |
231 | 231 |
232 void resizeBy(float x, float y) const; | 232 void resizeBy(float x, float y) const; |
233 void resizeTo(float width, float height) const; | 233 void resizeTo(float width, float height) const; |
234 | 234 |
235 // WebKit animation extensions | 235 // WebKit animation extensions |
236 int requestAnimationFrame(PassOwnPtr<RequestAnimationFrameCallback>); | 236 int requestAnimationFrame(PassOwnPtr<RequestAnimationFrameCallback>); |
237 int webkitRequestAnimationFrame(PassOwnPtr<RequestAnimationFrameCallback
>); | 237 int webkitRequestAnimationFrame(PassOwnPtr<RequestAnimationFrameCallback
>); |
238 void cancelAnimationFrame(int id); | 238 void cancelAnimationFrame(int id); |
239 | 239 |
240 DOMWindowCSS* css(); | 240 DOMWindowCSS& css() const; |
241 | 241 |
242 // Events | 242 // Events |
243 // EventTarget API | 243 // EventTarget API |
244 virtual bool addEventListener(const AtomicString& eventType, PassRefPtr<
EventListener>, bool useCapture) OVERRIDE; | 244 virtual bool addEventListener(const AtomicString& eventType, PassRefPtr<
EventListener>, bool useCapture) OVERRIDE; |
245 virtual bool removeEventListener(const AtomicString& eventType, EventLis
tener*, bool useCapture) OVERRIDE; | 245 virtual bool removeEventListener(const AtomicString& eventType, EventLis
tener*, bool useCapture) OVERRIDE; |
246 virtual void removeAllEventListeners() OVERRIDE; | 246 virtual void removeAllEventListeners() OVERRIDE; |
247 | 247 |
248 using EventTarget::dispatchEvent; | 248 using EventTarget::dispatchEvent; |
249 bool dispatchEvent(PassRefPtr<Event> prpEvent, PassRefPtr<EventTarget> p
rpTarget); | 249 bool dispatchEvent(PassRefPtr<Event> prpEvent, PassRefPtr<EventTarget> p
rpTarget); |
250 | 250 |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
283 // 0 is straight up; -90 is when the device is rotated 90 clockwise; | 283 // 0 is straight up; -90 is when the device is rotated 90 clockwise; |
284 // 90 is when rotated counter clockwise. | 284 // 90 is when rotated counter clockwise. |
285 int orientation() const; | 285 int orientation() const; |
286 | 286 |
287 DEFINE_ATTRIBUTE_EVENT_LISTENER(orientationchange); | 287 DEFINE_ATTRIBUTE_EVENT_LISTENER(orientationchange); |
288 DEFINE_ATTRIBUTE_EVENT_LISTENER(touchstart); | 288 DEFINE_ATTRIBUTE_EVENT_LISTENER(touchstart); |
289 DEFINE_ATTRIBUTE_EVENT_LISTENER(touchmove); | 289 DEFINE_ATTRIBUTE_EVENT_LISTENER(touchmove); |
290 DEFINE_ATTRIBUTE_EVENT_LISTENER(touchend); | 290 DEFINE_ATTRIBUTE_EVENT_LISTENER(touchend); |
291 DEFINE_ATTRIBUTE_EVENT_LISTENER(touchcancel); | 291 DEFINE_ATTRIBUTE_EVENT_LISTENER(touchcancel); |
292 | 292 |
293 Performance* performance() const; | 293 Performance& performance() const; |
294 | 294 |
295 // FIXME: When this DOMWindow is no longer the active DOMWindow (i.e., | 295 // FIXME: When this DOMWindow is no longer the active DOMWindow (i.e., |
296 // when its document is no longer the document that is displayed in its | 296 // when its document is no longer the document that is displayed in its |
297 // frame), we would like to zero out m_frame to avoid being confused | 297 // frame), we would like to zero out m_frame to avoid being confused |
298 // by the document that is currently active in m_frame. | 298 // by the document that is currently active in m_frame. |
299 bool isCurrentlyDisplayedInFrame() const; | 299 bool isCurrentlyDisplayedInFrame() const; |
300 | 300 |
301 void willDetachDocumentFromFrame(); | 301 void willDetachDocumentFromFrame(); |
302 DOMWindow* anonymousIndexedGetter(uint32_t); | 302 DOMWindow* anonymousIndexedGetter(uint32_t); |
303 | 303 |
304 bool isInsecureScriptAccess(DOMWindow* callingWindow, const String& urlS
tring); | 304 bool isInsecureScriptAccess(DOMWindow& callingWindow, const String& urlS
tring); |
305 | 305 |
306 PassOwnPtr<LifecycleNotifier<DOMWindow> > createLifecycleNotifier(); | 306 PassOwnPtr<LifecycleNotifier<DOMWindow> > createLifecycleNotifier(); |
307 | 307 |
308 EventQueue* eventQueue() const; | 308 EventQueue* eventQueue() const; |
309 void enqueueWindowEvent(PassRefPtr<Event>); | 309 void enqueueWindowEvent(PassRefPtr<Event>); |
310 void enqueueDocumentEvent(PassRefPtr<Event>); | 310 void enqueueDocumentEvent(PassRefPtr<Event>); |
311 void enqueuePageshowEvent(PageshowEventPersistence); | 311 void enqueuePageshowEvent(PageshowEventPersistence); |
312 void enqueueHashchangeEvent(const String& oldURL, const String& newURL); | 312 void enqueueHashchangeEvent(const String& oldURL, const String& newURL); |
313 void enqueuePopstateEvent(PassRefPtr<SerializedScriptValue>); | 313 void enqueuePopstateEvent(PassRefPtr<SerializedScriptValue>); |
314 void dispatchWindowLoadEvent(); | 314 void dispatchWindowLoadEvent(); |
315 void documentWasClosed(); | 315 void documentWasClosed(); |
316 void statePopped(PassRefPtr<SerializedScriptValue>); | 316 void statePopped(PassRefPtr<SerializedScriptValue>); |
317 | 317 |
318 // FIXME: This shouldn't be public once DOMWindow becomes ExecutionConte
xt. | 318 // FIXME: This shouldn't be public once DOMWindow becomes ExecutionConte
xt. |
319 void clearEventQueue(); | 319 void clearEventQueue(); |
320 | 320 |
321 protected: | 321 protected: |
322 DOMWindowLifecycleNotifier& lifecycleNotifier(); | 322 DOMWindowLifecycleNotifier& lifecycleNotifier(); |
323 | 323 |
324 private: | 324 private: |
325 explicit DOMWindow(LocalFrame*); | 325 explicit DOMWindow(LocalFrame&); |
326 | 326 |
327 Page* page(); | 327 Page* page(); |
328 | 328 |
329 virtual void frameDestroyed() OVERRIDE; | 329 virtual void frameDestroyed() OVERRIDE; |
330 virtual void willDetachFrameHost() OVERRIDE; | 330 virtual void willDetachFrameHost() OVERRIDE; |
331 | 331 |
332 void clearDocument(); | 332 void clearDocument(); |
333 void resetDOMWindowProperties(); | 333 void resetDOMWindowProperties(); |
334 void willDestroyDocumentInFrame(); | 334 void willDestroyDocumentInFrame(); |
335 | 335 |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
373 } | 373 } |
374 | 374 |
375 inline String DOMWindow::defaultStatus() const | 375 inline String DOMWindow::defaultStatus() const |
376 { | 376 { |
377 return m_defaultStatus; | 377 return m_defaultStatus; |
378 } | 378 } |
379 | 379 |
380 } // namespace WebCore | 380 } // namespace WebCore |
381 | 381 |
382 #endif // DOMWindow_h | 382 #endif // DOMWindow_h |
OLD | NEW |