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

Side by Side Diff: Source/core/frame/DOMWindow.h

Issue 211373002: Oilpan: move DOMWindow object to the oilpan heap. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 6 years, 9 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
OLDNEW
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 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
84 84
85 typedef Vector<RefPtr<MessagePort>, 1> MessagePortArray; 85 typedef Vector<RefPtr<MessagePort>, 1> MessagePortArray;
86 86
87 enum PageshowEventPersistence { 87 enum PageshowEventPersistence {
88 PageshowEventNotPersisted = 0, 88 PageshowEventNotPersisted = 0,
89 PageshowEventPersisted = 1 89 PageshowEventPersisted = 1
90 }; 90 };
91 91
92 enum SetLocationLocking { LockHistoryBasedOnGestureState, LockHistoryAndBack ForwardList }; 92 enum SetLocationLocking { LockHistoryBasedOnGestureState, LockHistoryAndBack ForwardList };
93 93
94 class DOMWindow FINAL : public RefCounted<DOMWindow>, public ScriptWrappable , public EventTargetWithInlineData, public FrameDestructionObserver, public Supp lementable<DOMWindow>, public LifecycleContext<DOMWindow> { 94 class DOMWindow FINAL : public RefCountedWillBeRefCountedGarbageCollected<DO MWindow>, public ScriptWrappable, public EventTargetWithInlineData, public Frame DestructionObserver, public Supplementable<DOMWindow>, public LifecycleContext<D OMWindow> {
haraken 2014/03/26 01:13:32 Don't you need to use WillBeHeapSupplementable<DOM
sof 2014/03/26 06:36:46 I would prefer to do it later; as long as the supp
sof 2014/03/26 07:44:27 The one interesting case is DOMWindowPagePopup::~D
haraken 2014/03/26 08:07:16 Makes sense. Agreed with the point that it's safe
95 REFCOUNTED_EVENT_TARGET(DOMWindow); 95 DEFINE_EVENT_TARGET_REFCOUNTING(RefCountedWillBeRefCountedGarbageCollect ed<DOMWindow>);
96 public: 96 public:
97 static PassRefPtr<Document> createDocument(const String& mimeType, const DocumentInit&, bool forceXHTML); 97 static PassRefPtr<Document> createDocument(const String& mimeType, const DocumentInit&, bool forceXHTML);
98 static PassRefPtr<DOMWindow> create(LocalFrame& frame) { return adoptRef (new DOMWindow(frame)); } 98 static PassRefPtrWillBeRawPtr<DOMWindow> create(LocalFrame& frame)
99 {
100 return adoptRefWillBeRefCountedGarbageCollected(new DOMWindow(frame) );
101 }
99 virtual ~DOMWindow(); 102 virtual ~DOMWindow();
100 103
101 PassRefPtr<Document> installNewDocument(const String& mimeType, const Do cumentInit&, bool forceXHTML = false); 104 PassRefPtr<Document> installNewDocument(const String& mimeType, const Do cumentInit&, bool forceXHTML = false);
102 105
103 virtual const AtomicString& interfaceName() const OVERRIDE; 106 virtual const AtomicString& interfaceName() const OVERRIDE;
104 virtual ExecutionContext* executionContext() const OVERRIDE; 107 virtual ExecutionContext* executionContext() const OVERRIDE;
105 108
106 virtual DOMWindow* toDOMWindow() OVERRIDE; 109 virtual DOMWindow* toDOMWindow() OVERRIDE;
107 110
108 void registerProperty(DOMWindowProperty*); 111 void registerProperty(DOMWindowProperty*);
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
141 DOMSelection* getSelection(); 144 DOMSelection* getSelection();
142 145
143 Element* frameElement() const; 146 Element* frameElement() const;
144 147
145 void focus(ExecutionContext* = 0); 148 void focus(ExecutionContext* = 0);
146 void blur(); 149 void blur();
147 void close(ExecutionContext* = 0); 150 void close(ExecutionContext* = 0);
148 void print(); 151 void print();
149 void stop(); 152 void stop();
150 153
151 PassRefPtr<DOMWindow> open(const String& urlString, const AtomicString& frameName, const String& windowFeaturesString, 154 PassRefPtrWillBeRawPtr<DOMWindow> open(const String& urlString, const At omicString& frameName, const String& windowFeaturesString,
152 DOMWindow* callingWindow, DOMWindow* enteredWindow); 155 DOMWindow* callingWindow, DOMWindow* enteredWindow);
153 156
154 typedef void (*PrepareDialogFunction)(DOMWindow*, void* context); 157 typedef void (*PrepareDialogFunction)(DOMWindow*, void* context);
155 void showModalDialog(const String& urlString, const String& dialogFeatur esString, 158 void showModalDialog(const String& urlString, const String& dialogFeatur esString,
156 DOMWindow* callingWindow, DOMWindow* enteredWindow, PrepareDialogFun ction, void* functionContext); 159 DOMWindow* callingWindow, DOMWindow* enteredWindow, PrepareDialogFun ction, void* functionContext);
157 160
158 void alert(const String& message); 161 void alert(const String& message);
159 bool confirm(const String& message); 162 bool confirm(const String& message);
160 String prompt(const String& message, const String& defaultValue); 163 String prompt(const String& message, const String& defaultValue);
161 164
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after
315 void enqueuePageshowEvent(PageshowEventPersistence); 318 void enqueuePageshowEvent(PageshowEventPersistence);
316 void enqueueHashchangeEvent(const String& oldURL, const String& newURL); 319 void enqueueHashchangeEvent(const String& oldURL, const String& newURL);
317 void enqueuePopstateEvent(PassRefPtr<SerializedScriptValue>); 320 void enqueuePopstateEvent(PassRefPtr<SerializedScriptValue>);
318 void dispatchWindowLoadEvent(); 321 void dispatchWindowLoadEvent();
319 void documentWasClosed(); 322 void documentWasClosed();
320 void statePopped(PassRefPtr<SerializedScriptValue>); 323 void statePopped(PassRefPtr<SerializedScriptValue>);
321 324
322 // FIXME: This shouldn't be public once DOMWindow becomes ExecutionConte xt. 325 // FIXME: This shouldn't be public once DOMWindow becomes ExecutionConte xt.
323 void clearEventQueue(); 326 void clearEventQueue();
324 327
328 void trace(Visitor*);
329
325 protected: 330 protected:
326 DOMWindowLifecycleNotifier& lifecycleNotifier(); 331 DOMWindowLifecycleNotifier& lifecycleNotifier();
327 332
328 private: 333 private:
329 explicit DOMWindow(LocalFrame&); 334 explicit DOMWindow(LocalFrame&);
330 335
331 Page* page(); 336 Page* page();
332 337
333 virtual void frameDestroyed() OVERRIDE; 338 virtual void frameDestroyed() OVERRIDE;
334 virtual void willDetachFrameHost() OVERRIDE; 339 virtual void willDetachFrameHost() OVERRIDE;
335 340
336 void clearDocument(); 341 void clearDocument();
337 void resetDOMWindowProperties(); 342 void resetDOMWindowProperties();
338 void willDestroyDocumentInFrame(); 343 void willDestroyDocumentInFrame();
339 344
340 RefPtr<Document> m_document; 345 RefPtr<Document> m_document;
341 346
342 bool m_shouldPrintWhenFinishedLoading; 347 bool m_shouldPrintWhenFinishedLoading;
343 348
344 HashSet<DOMWindowProperty*> m_properties; 349 HashSet<DOMWindowProperty*> m_properties;
345 350
346 mutable RefPtrWillBePersistent<Screen> m_screen; 351 mutable RefPtrWillBeMember<Screen> m_screen;
347 mutable RefPtrWillBePersistent<History> m_history; 352 mutable RefPtrWillBeMember<History> m_history;
348 mutable RefPtr<BarProp> m_locationbar; 353 mutable RefPtrWillBeMember<BarProp> m_locationbar;
349 mutable RefPtr<BarProp> m_menubar; 354 mutable RefPtrWillBeMember<BarProp> m_menubar;
350 mutable RefPtr<BarProp> m_personalbar; 355 mutable RefPtrWillBeMember<BarProp> m_personalbar;
351 mutable RefPtr<BarProp> m_scrollbars; 356 mutable RefPtrWillBeMember<BarProp> m_scrollbars;
352 mutable RefPtr<BarProp> m_statusbar; 357 mutable RefPtrWillBeMember<BarProp> m_statusbar;
353 mutable RefPtr<BarProp> m_toolbar; 358 mutable RefPtrWillBeMember<BarProp> m_toolbar;
354 mutable RefPtrWillBePersistent<Console> m_console; 359 mutable RefPtrWillBeMember<Console> m_console;
355 mutable RefPtrWillBePersistent<Navigator> m_navigator; 360 mutable RefPtrWillBeMember<Navigator> m_navigator;
356 mutable RefPtrWillBePersistent<Location> m_location; 361 mutable RefPtrWillBeMember<Location> m_location;
357 mutable RefPtr<StyleMedia> m_media; 362 mutable RefPtr<StyleMedia> m_media;
358 363
359 String m_status; 364 String m_status;
360 String m_defaultStatus; 365 String m_defaultStatus;
361 366
362 mutable RefPtrWillBePersistent<Storage> m_sessionStorage; 367 mutable RefPtrWillBeMember<Storage> m_sessionStorage;
363 mutable RefPtrWillBePersistent<Storage> m_localStorage; 368 mutable RefPtrWillBeMember<Storage> m_localStorage;
364 mutable RefPtrWillBePersistent<ApplicationCache> m_applicationCache; 369 mutable RefPtrWillBeMember<ApplicationCache> m_applicationCache;
365 370
366 mutable RefPtrWillBePersistent<Performance> m_performance; 371 mutable RefPtrWillBeMember<Performance> m_performance;
367 372
368 mutable RefPtr<DOMWindowCSS> m_css; 373 mutable RefPtr<DOMWindowCSS> m_css;
369 374
370 RefPtr<DOMWindowEventQueue> m_eventQueue; 375 RefPtr<DOMWindowEventQueue> m_eventQueue;
371 RefPtr<SerializedScriptValue> m_pendingStateObject; 376 RefPtr<SerializedScriptValue> m_pendingStateObject;
372 }; 377 };
373 378
374 inline String DOMWindow::status() const 379 inline String DOMWindow::status() const
375 { 380 {
376 return m_status; 381 return m_status;
377 } 382 }
378 383
379 inline String DOMWindow::defaultStatus() const 384 inline String DOMWindow::defaultStatus() const
380 { 385 {
381 return m_defaultStatus; 386 return m_defaultStatus;
382 } 387 }
383 388
384 } // namespace WebCore 389 } // namespace WebCore
385 390
386 #endif // DOMWindow_h 391 #endif // DOMWindow_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698