OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 1998, 1999 Torben Weis <weis@kde.org> | 2 * Copyright (C) 1998, 1999 Torben Weis <weis@kde.org> |
3 * 1999 Lars Knoll <knoll@kde.org> | 3 * 1999 Lars Knoll <knoll@kde.org> |
4 * 1999 Antti Koivisto <koivisto@kde.org> | 4 * 1999 Antti Koivisto <koivisto@kde.org> |
5 * 2000 Simon Hausmann <hausmann@kde.org> | 5 * 2000 Simon Hausmann <hausmann@kde.org> |
6 * 2000 Stefan Schimanski <1Stein@gmx.de> | 6 * 2000 Stefan Schimanski <1Stein@gmx.de> |
7 * 2001 George Staikos <staikos@kde.org> | 7 * 2001 George Staikos <staikos@kde.org> |
8 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All r
ights reserved. | 8 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All r
ights reserved. |
9 * Copyright (C) 2005 Alexey Proskuryakov <ap@nypop.com> | 9 * Copyright (C) 2005 Alexey Proskuryakov <ap@nypop.com> |
10 * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies) | 10 * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies) |
(...skipping 12 matching lines...) Expand all Loading... |
23 * | 23 * |
24 * You should have received a copy of the GNU Library General Public License | 24 * You should have received a copy of the GNU Library General Public License |
25 * along with this library; see the file COPYING.LIB. If not, write to | 25 * along with this library; see the file COPYING.LIB. If not, write to |
26 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | 26 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, |
27 * Boston, MA 02110-1301, USA. | 27 * Boston, MA 02110-1301, USA. |
28 */ | 28 */ |
29 | 29 |
30 #include "config.h" | 30 #include "config.h" |
31 #include "core/frame/LocalFrame.h" | 31 #include "core/frame/LocalFrame.h" |
32 | 32 |
| 33 #include "bindings/core/dart/DartController.h" |
33 #include "bindings/core/v8/ScriptController.h" | 34 #include "bindings/core/v8/ScriptController.h" |
34 #include "core/dom/DocumentType.h" | 35 #include "core/dom/DocumentType.h" |
35 #include "core/editing/Editor.h" | 36 #include "core/editing/Editor.h" |
36 #include "core/editing/FrameSelection.h" | 37 #include "core/editing/FrameSelection.h" |
37 #include "core/editing/InputMethodController.h" | 38 #include "core/editing/InputMethodController.h" |
38 #include "core/editing/SpellChecker.h" | 39 #include "core/editing/SpellChecker.h" |
39 #include "core/editing/htmlediting.h" | 40 #include "core/editing/htmlediting.h" |
40 #include "core/editing/markup.h" | 41 #include "core/editing/markup.h" |
41 #include "core/events/Event.h" | 42 #include "core/events/Event.h" |
42 #include "core/fetch/ResourceFetcher.h" | 43 #include "core/fetch/ResourceFetcher.h" |
(...skipping 316 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
359 void LocalFrame::willDetachFrameHost() | 360 void LocalFrame::willDetachFrameHost() |
360 { | 361 { |
361 LocalFrameLifecycleNotifier::notifyWillDetachFrameHost(); | 362 LocalFrameLifecycleNotifier::notifyWillDetachFrameHost(); |
362 | 363 |
363 // FIXME: Page should take care of updating focus/scrolling instead of Frame
. | 364 // FIXME: Page should take care of updating focus/scrolling instead of Frame
. |
364 // FIXME: It's unclear as to why this is called more than once, but it is, | 365 // FIXME: It's unclear as to why this is called more than once, but it is, |
365 // so page() could be null. | 366 // so page() could be null. |
366 if (page() && page()->focusController().focusedFrame() == this) | 367 if (page() && page()->focusController().focusedFrame() == this) |
367 page()->focusController().setFocusedFrame(nullptr); | 368 page()->focusController().setFocusedFrame(nullptr); |
368 script().clearScriptObjects(); | 369 script().clearScriptObjects(); |
| 370 dart().clearScriptObjects(); |
369 | 371 |
370 if (page() && page()->scrollingCoordinator() && m_view) | 372 if (page() && page()->scrollingCoordinator() && m_view) |
371 page()->scrollingCoordinator()->willDestroyScrollableArea(m_view.get()); | 373 page()->scrollingCoordinator()->willDestroyScrollableArea(m_view.get()); |
372 } | 374 } |
373 | 375 |
374 void LocalFrame::setDOMWindow(PassRefPtrWillBeRawPtr<LocalDOMWindow> domWindow) | 376 void LocalFrame::setDOMWindow(PassRefPtrWillBeRawPtr<LocalDOMWindow> domWindow) |
375 { | 377 { |
376 // Oilpan: setDOMWindow() cannot be used when finalizing. Which | 378 // Oilpan: setDOMWindow() cannot be used when finalizing. Which |
377 // is acceptable as its actions are either not needed or handled | 379 // is acceptable as its actions are either not needed or handled |
378 // by other means -- | 380 // by other means -- |
379 // | 381 // |
380 // - LocalFrameLifecycleObserver::willDetachFrameHost() will have | 382 // - LocalFrameLifecycleObserver::willDetachFrameHost() will have |
381 // signalled the Inspector frameWindowDiscarded() notifications. | 383 // signalled the Inspector frameWindowDiscarded() notifications. |
382 // We assume that all LocalFrames are detached, where that notification | 384 // We assume that all LocalFrames are detached, where that notification |
383 // will have been done. | 385 // will have been done. |
384 // | 386 // |
385 // - Calling LocalDOMWindow::reset() is not needed (called from | 387 // - Calling LocalDOMWindow::reset() is not needed (called from |
386 // Frame::setDOMWindow().) The Member references it clears will now | 388 // Frame::setDOMWindow().) The Member references it clears will now |
387 // die with the window. And the registered DOMWindowProperty instances th
at don't, | 389 // die with the window. And the registered DOMWindowProperty instances th
at don't, |
388 // only keep a weak reference to this frame, so there's no need to be | 390 // only keep a weak reference to this frame, so there's no need to be |
389 // explicitly notified that this frame is going away. | 391 // explicitly notified that this frame is going away. |
390 if (m_domWindow && host()) | 392 if (m_domWindow && host()) |
391 host()->consoleMessageStorage().frameWindowDiscarded(m_domWindow.get()); | 393 host()->consoleMessageStorage().frameWindowDiscarded(m_domWindow.get()); |
392 if (domWindow) | 394 if (domWindow) { |
393 script().clearWindowProxy(); | 395 script().clearWindowProxy(); |
| 396 dart().clearWindowShell(); |
| 397 } |
394 | 398 |
395 if (m_domWindow) | 399 if (m_domWindow) |
396 m_domWindow->reset(); | 400 m_domWindow->reset(); |
397 m_domWindow = domWindow; | 401 m_domWindow = domWindow; |
398 } | 402 } |
399 | 403 |
400 Document* LocalFrame::document() const | 404 Document* LocalFrame::document() const |
401 { | 405 { |
402 return m_domWindow ? m_domWindow->document() : nullptr; | 406 return m_domWindow ? m_domWindow->document() : nullptr; |
403 } | 407 } |
(...skipping 421 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
825 return String(); | 829 return String(); |
826 | 830 |
827 return contentLayoutObject()->compositor()->layerTreeAsText(static_cast<Laye
rTreeFlags>(flags)); | 831 return contentLayoutObject()->compositor()->layerTreeAsText(static_cast<Laye
rTreeFlags>(flags)); |
828 } | 832 } |
829 | 833 |
830 inline LocalFrame::LocalFrame(FrameLoaderClient* client, FrameHost* host, FrameO
wner* owner) | 834 inline LocalFrame::LocalFrame(FrameLoaderClient* client, FrameHost* host, FrameO
wner* owner) |
831 : Frame(client, host, owner) | 835 : Frame(client, host, owner) |
832 , m_loader(this) | 836 , m_loader(this) |
833 , m_navigationScheduler(this) | 837 , m_navigationScheduler(this) |
834 , m_script(ScriptController::create(this)) | 838 , m_script(ScriptController::create(this)) |
| 839 , m_dart(adoptPtr(new DartController(this))) |
835 , m_editor(Editor::create(*this)) | 840 , m_editor(Editor::create(*this)) |
836 , m_spellChecker(SpellChecker::create(*this)) | 841 , m_spellChecker(SpellChecker::create(*this)) |
837 , m_selection(FrameSelection::create(this)) | 842 , m_selection(FrameSelection::create(this)) |
838 , m_eventHandler(adoptPtrWillBeNoop(new EventHandler(this))) | 843 , m_eventHandler(adoptPtrWillBeNoop(new EventHandler(this))) |
839 , m_console(FrameConsole::create(*this)) | 844 , m_console(FrameConsole::create(*this)) |
840 , m_inputMethodController(InputMethodController::create(*this)) | 845 , m_inputMethodController(InputMethodController::create(*this)) |
841 , m_pageZoomFactor(parentPageZoomFactor(this)) | 846 , m_pageZoomFactor(parentPageZoomFactor(this)) |
842 , m_textZoomFactor(parentTextZoomFactor(this)) | 847 , m_textZoomFactor(parentTextZoomFactor(this)) |
843 , m_inViewSourceMode(false) | 848 , m_inViewSourceMode(false) |
844 { | 849 { |
845 if (isLocalRoot()) | 850 if (isLocalRoot()) |
846 m_instrumentingAgents = InstrumentingAgents::create(); | 851 m_instrumentingAgents = InstrumentingAgents::create(); |
847 else | 852 else |
848 m_instrumentingAgents = localFrameRoot()->m_instrumentingAgents; | 853 m_instrumentingAgents = localFrameRoot()->m_instrumentingAgents; |
849 } | 854 } |
850 | 855 |
851 DEFINE_WEAK_IDENTIFIER_MAP(LocalFrame); | 856 DEFINE_WEAK_IDENTIFIER_MAP(LocalFrame); |
852 | 857 |
853 } // namespace blink | 858 } // namespace blink |
OLD | NEW |