| 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 11 matching lines...) Expand all Loading... |
| 22 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 22 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
| 23 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | 23 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
| 24 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 24 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| 25 */ | 25 */ |
| 26 | 26 |
| 27 #ifndef LocalDOMWindow_h | 27 #ifndef LocalDOMWindow_h |
| 28 #define LocalDOMWindow_h | 28 #define LocalDOMWindow_h |
| 29 | 29 |
| 30 #include "core/events/EventTarget.h" | 30 #include "core/events/EventTarget.h" |
| 31 #include "core/frame/DOMWindow.h" | 31 #include "core/frame/DOMWindow.h" |
| 32 #include "core/frame/DOMWindowLifecycleNotifier.h" | |
| 33 #include "core/frame/FrameDestructionObserver.h" | 32 #include "core/frame/FrameDestructionObserver.h" |
| 34 #include "core/frame/LocalFrame.h" | 33 #include "core/frame/LocalFrame.h" |
| 34 #include "platform/LifecycleContext.h" |
| 35 #include "platform/Supplementable.h" | 35 #include "platform/Supplementable.h" |
| 36 #include "platform/heap/Handle.h" | 36 #include "platform/heap/Handle.h" |
| 37 | 37 |
| 38 #include "wtf/Assertions.h" | 38 #include "wtf/Assertions.h" |
| 39 #include "wtf/Forward.h" | 39 #include "wtf/Forward.h" |
| 40 | 40 |
| 41 namespace blink { | 41 namespace blink { |
| 42 | 42 |
| 43 class DOMWindowEventQueue; | 43 class DOMWindowEventQueue; |
| 44 class DOMWindowLifecycleNotifier; |
| 44 class DOMWindowProperty; | 45 class DOMWindowProperty; |
| 45 class DocumentInit; | 46 class DocumentInit; |
| 46 class EventListener; | 47 class EventListener; |
| 47 class EventQueue; | 48 class EventQueue; |
| 48 class ExceptionState; | 49 class ExceptionState; |
| 49 class FrameConsole; | 50 class FrameConsole; |
| 50 class IntRect; | 51 class IntRect; |
| 51 class Page; | 52 class Page; |
| 52 class PostMessageTimer; | 53 class PostMessageTimer; |
| 53 class ScriptCallStack; | 54 class ScriptCallStack; |
| 54 class SecurityOrigin; | 55 class SecurityOrigin; |
| 55 | 56 |
| 56 enum PageshowEventPersistence { | 57 enum PageshowEventPersistence { |
| 57 PageshowEventNotPersisted = 0, | 58 PageshowEventNotPersisted = 0, |
| 58 PageshowEventPersisted = 1 | 59 PageshowEventPersisted = 1 |
| 59 }; | 60 }; |
| 60 | 61 |
| 61 // Note: if you're thinking of returning something DOM-related by reference, | 62 // Note: if you're thinking of returning something DOM-related by reference, |
| 62 // please ping dcheng@chromium.org first. You probably don't want to do that. | 63 // please ping dcheng@chromium.org first. You probably don't want to do that. |
| 63 class LocalDOMWindow final : public DOMWindow, public WillBeHeapSupplementable<L
ocalDOMWindow>, public DOMWindowLifecycleNotifier { | 64 class LocalDOMWindow final : public DOMWindow, public WillBeHeapSupplementable<L
ocalDOMWindow>, public LifecycleContext<LocalDOMWindow> { |
| 64 WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(LocalDOMWindow); | 65 WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(LocalDOMWindow); |
| 65 public: | 66 public: |
| 66 static PassRefPtrWillBeRawPtr<Document> createDocument(const String& mimeTyp
e, const DocumentInit&, bool forceXHTML); | 67 static PassRefPtrWillBeRawPtr<Document> createDocument(const String& mimeTyp
e, const DocumentInit&, bool forceXHTML); |
| 67 static PassRefPtrWillBeRawPtr<LocalDOMWindow> create(LocalFrame& frame) | 68 static PassRefPtrWillBeRawPtr<LocalDOMWindow> create(LocalFrame& frame) |
| 68 { | 69 { |
| 69 return adoptRefWillBeNoop(new LocalDOMWindow(frame)); | 70 return adoptRefWillBeNoop(new LocalDOMWindow(frame)); |
| 70 } | 71 } |
| 71 virtual ~LocalDOMWindow(); | 72 virtual ~LocalDOMWindow(); |
| 72 | 73 |
| 73 PassRefPtrWillBeRawPtr<Document> installNewDocument(const String& mimeType,
const DocumentInit&, bool forceXHTML = false); | 74 PassRefPtrWillBeRawPtr<Document> installNewDocument(const String& mimeType,
const DocumentInit&, bool forceXHTML = false); |
| (...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 191 ApplicationCache* optionalApplicationCache() const { return m_applicationCac
he.get(); } | 192 ApplicationCache* optionalApplicationCache() const { return m_applicationCac
he.get(); } |
| 192 | 193 |
| 193 // Dispatch the (deprecated) orientationchange event to this DOMWindow and | 194 // Dispatch the (deprecated) orientationchange event to this DOMWindow and |
| 194 // recurse on its child frames. | 195 // recurse on its child frames. |
| 195 void sendOrientationChangeEvent(); | 196 void sendOrientationChangeEvent(); |
| 196 | 197 |
| 197 void willDetachDocumentFromFrame(); | 198 void willDetachDocumentFromFrame(); |
| 198 | 199 |
| 199 bool isInsecureScriptAccess(DOMWindow& callingWindow, const String& urlStrin
g) override; | 200 bool isInsecureScriptAccess(DOMWindow& callingWindow, const String& urlStrin
g) override; |
| 200 | 201 |
| 202 PassOwnPtr<LifecycleNotifier<LocalDOMWindow>> createLifecycleNotifier(); |
| 203 |
| 201 EventQueue* eventQueue() const; | 204 EventQueue* eventQueue() const; |
| 202 void enqueueWindowEvent(PassRefPtrWillBeRawPtr<Event>); | 205 void enqueueWindowEvent(PassRefPtrWillBeRawPtr<Event>); |
| 203 void enqueueDocumentEvent(PassRefPtrWillBeRawPtr<Event>); | 206 void enqueueDocumentEvent(PassRefPtrWillBeRawPtr<Event>); |
| 204 void enqueuePageshowEvent(PageshowEventPersistence); | 207 void enqueuePageshowEvent(PageshowEventPersistence); |
| 205 void enqueueHashchangeEvent(const String& oldURL, const String& newURL); | 208 void enqueueHashchangeEvent(const String& oldURL, const String& newURL); |
| 206 void enqueuePopstateEvent(PassRefPtr<SerializedScriptValue>); | 209 void enqueuePopstateEvent(PassRefPtr<SerializedScriptValue>); |
| 207 void dispatchWindowLoadEvent(); | 210 void dispatchWindowLoadEvent(); |
| 208 void documentWasClosed(); | 211 void documentWasClosed(); |
| 209 void statePopped(PassRefPtr<SerializedScriptValue>); | 212 void statePopped(PassRefPtr<SerializedScriptValue>); |
| 210 | 213 |
| 211 // FIXME: This shouldn't be public once LocalDOMWindow becomes ExecutionCont
ext. | 214 // FIXME: This shouldn't be public once LocalDOMWindow becomes ExecutionCont
ext. |
| 212 void clearEventQueue(); | 215 void clearEventQueue(); |
| 213 | 216 |
| 214 void acceptLanguagesChanged(); | 217 void acceptLanguagesChanged(); |
| 215 | 218 |
| 216 virtual v8::Handle<v8::Object> wrap(v8::Handle<v8::Object> creationContext,
v8::Isolate*) override; | 219 virtual v8::Handle<v8::Object> wrap(v8::Handle<v8::Object> creationContext,
v8::Isolate*) override; |
| 217 | 220 |
| 221 protected: |
| 222 DOMWindowLifecycleNotifier& lifecycleNotifier(); |
| 223 |
| 218 private: | 224 private: |
| 219 // Rather than simply inheriting FrameDestructionObserver like most other | 225 // Rather than simply inheriting FrameDestructionObserver like most other |
| 220 // classes, LocalDOMWindow hides its FrameDestructionObserver with | 226 // classes, LocalDOMWindow hides its FrameDestructionObserver with |
| 221 // composition. This prevents conflicting overloads between DOMWindow, which | 227 // composition. This prevents conflicting overloads between DOMWindow, which |
| 222 // has a frame() accessor that returns Frame* for bindings code, and | 228 // has a frame() accessor that returns Frame* for bindings code, and |
| 223 // FrameDestructionObserver, which has a frame() accessor that returns a | 229 // FrameDestructionObserver, which has a frame() accessor that returns a |
| 224 // LocalFrame*. | 230 // LocalFrame*. |
| 225 class WindowFrameObserver final : public NoBaseWillBeGarbageCollected<Window
FrameObserver>, public FrameDestructionObserver { | 231 class WindowFrameObserver final : public NoBaseWillBeGarbageCollected<Window
FrameObserver>, public FrameDestructionObserver { |
| 226 WTF_MAKE_FAST_ALLOCATED_WILL_BE_REMOVED; | 232 WTF_MAKE_FAST_ALLOCATED_WILL_BE_REMOVED; |
| 227 WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(WindowFrameObserver); | 233 WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(WindowFrameObserver); |
| (...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 307 } | 313 } |
| 308 | 314 |
| 309 inline String LocalDOMWindow::defaultStatus() const | 315 inline String LocalDOMWindow::defaultStatus() const |
| 310 { | 316 { |
| 311 return m_defaultStatus; | 317 return m_defaultStatus; |
| 312 } | 318 } |
| 313 | 319 |
| 314 } // namespace blink | 320 } // namespace blink |
| 315 | 321 |
| 316 #endif // LocalDOMWindow_h | 322 #endif // LocalDOMWindow_h |
| OLD | NEW |