1d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)/* 2d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) * Copyright (C) 1998, 1999 Torben Weis <weis@kde.org> 3d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) * 1999-2001 Lars Knoll <knoll@kde.org> 4d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) * 1999-2001 Antti Koivisto <koivisto@kde.org> 5d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) * 2000-2001 Simon Hausmann <hausmann@kde.org> 6d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) * 2000-2001 Dirk Mueller <mueller@kde.org> 7d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) * 2000 Stefan Schimanski <1Stein@gmx.de> 8d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights reserved. 9d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) * Copyright (C) 2008 Nokia Corporation and/or its subsidiary(-ies) 10d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) * Copyright (C) 2008 Eric Seidel <eric@webkit.org> 11d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) * 12d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) * This library is free software; you can redistribute it and/or 13d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) * modify it under the terms of the GNU Library General Public 14d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) * License as published by the Free Software Foundation; either 15d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) * version 2 of the License, or (at your option) any later version. 16d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) * 17d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) * This library is distributed in the hope that it will be useful, 18d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) * but WITHOUT ANY WARRANTY; without even the implied warranty of 19d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 20d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) * Library General Public License for more details. 21d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) * 22d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) * You should have received a copy of the GNU Library General Public License 23d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) * along with this library; see the file COPYING.LIB. If not, write to 24d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, 25d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) * Boston, MA 02110-1301, USA. 26d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) */ 27d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 28d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)#ifndef LocalFrame_h 29d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)#define LocalFrame_h 30d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 31d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)#include "core/frame/Frame.h" 32d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)#include "core/loader/FrameLoader.h" 33d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)#include "core/loader/NavigationScheduler.h" 34d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)#include "core/page/FrameTree.h" 356f543c786fc42989f552b4daa774ca5ff32fa697Ben Murdoch#include "platform/Supplementable.h" 36a9984bf9ddc3cf73fdae3f29134a2bab379e7029Ben Murdoch#include "platform/heap/Handle.h" 37d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)#include "platform/scroll/ScrollTypes.h" 38c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)#include "wtf/HashSet.h" 39d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 40c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)namespace blink { 41d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 42d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) class Color; 4310f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch class Document; 44d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) class DragImage; 45d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) class Editor; 467242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci class Element; 47d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) class EventHandler; 48d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) class FetchContext; 49d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) class FloatSize; 506f543c786fc42989f552b4daa774ca5ff32fa697Ben Murdoch class FrameConsole; 51c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) class FrameDestructionObserver; 52d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) class FrameSelection; 53d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) class FrameView; 54d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) class InputMethodController; 55d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) class IntPoint; 56d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) class IntSize; 57d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) class Node; 58d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) class Range; 5910f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch class RenderView; 60d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) class TreeScope; 61d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) class ScriptController; 62d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) class SpellChecker; 63d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) class TreeScope; 64d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) class VisiblePosition; 65d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 667242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci class LocalFrame : public Frame, public WillBeHeapSupplementable<LocalFrame> { 67d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) public: 687242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci static PassRefPtrWillBeRawPtr<LocalFrame> create(FrameLoaderClient*, FrameHost*, FrameOwner*); 69d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 70d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) virtual bool isLocalFrame() const OVERRIDE { return true; } 71d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 72d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) void init(); 73d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) void setView(PassRefPtr<FrameView>); 74d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) void createView(const IntSize&, const Color&, bool, 75d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) ScrollbarMode = ScrollbarAuto, bool horizontalLock = false, 76d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) ScrollbarMode = ScrollbarAuto, bool verticalLock = false); 77d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 78d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) virtual ~LocalFrame(); 797242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci virtual void trace(Visitor*) OVERRIDE; 80d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 81c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) virtual void detach() OVERRIDE; 82c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) 83c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) void addDestructionObserver(FrameDestructionObserver*); 84c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) void removeDestructionObserver(FrameDestructionObserver*); 85c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) 86c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) void willDetachFrameHost(); 87c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) void detachFromFrameHost(); 88d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 8910f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch virtual void disconnectOwnerElement() OVERRIDE; 9010f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch 9176c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles) virtual void setDOMWindow(PassRefPtrWillBeRawPtr<LocalDOMWindow>) OVERRIDE; 92d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) FrameView* view() const; 9310f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch Document* document() const; 947242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci void setPagePopupOwner(Element&); 957242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci Element* pagePopupOwner() const { return m_pagePopupOwner.get(); } 9610f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch 9710f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch RenderView* contentRenderer() const; // Root of the render tree for the document contained in this frame. 98d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 99d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) Editor& editor() const; 100d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) EventHandler& eventHandler() const; 101d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) FrameLoader& loader() const; 102d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) NavigationScheduler& navigationScheduler() const; 103d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) FrameSelection& selection() const; 104d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) InputMethodController& inputMethodController() const; 105d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) FetchContext& fetchContext() const { return loader().fetchContext(); } 106d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) ScriptController& script(); 107d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) SpellChecker& spellChecker() const; 1086f543c786fc42989f552b4daa774ca5ff32fa697Ben Murdoch FrameConsole& console() const; 109d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 110d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) void didChangeVisibilityState(); 111d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 112f91f5fa1608c2cdd9af1842fb5dadbe78275be2aBo Liu // FIXME: This method is only used by EventHandler to get the highest level 113f91f5fa1608c2cdd9af1842fb5dadbe78275be2aBo Liu // LocalFrame in this frame's in-process subtree. When user gesture tokens 114f91f5fa1608c2cdd9af1842fb5dadbe78275be2aBo Liu // are synchronized across processes this method should be removed. 115f91f5fa1608c2cdd9af1842fb5dadbe78275be2aBo Liu LocalFrame* localFrameRoot(); 116f91f5fa1608c2cdd9af1842fb5dadbe78275be2aBo Liu 117d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) // ======== All public functions below this point are candidates to move out of LocalFrame into another class. ======== 118d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 119d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) bool inScope(TreeScope*) const; 120d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 121d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) void countObjectsNeedingLayout(unsigned& needsLayoutObjects, unsigned& totalObjects, bool& isPartial); 122d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 123d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) // See GraphicsLayerClient.h for accepted flags. 124d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) String layerTreeAsText(unsigned flags = 0) const; 125d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 126d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) void setPrinting(bool printing, const FloatSize& pageSize, const FloatSize& originalPageSize, float maximumShrinkRatio); 127d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) bool shouldUsePrintingLayout() const; 128d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) FloatSize resizePageRectsKeepingRatio(const FloatSize& originalSize, const FloatSize& expectedSize); 129d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 130d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) bool inViewSourceMode() const; 131d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) void setInViewSourceMode(bool = true); 132d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 133d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) void setPageZoomFactor(float factor); 134d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) float pageZoomFactor() const { return m_pageZoomFactor; } 135d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) void setTextZoomFactor(float factor); 136d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) float textZoomFactor() const { return m_textZoomFactor; } 137d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) void setPageAndTextZoomFactors(float pageZoomFactor, float textZoomFactor); 138d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 139d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) void deviceOrPageScaleFactorChanged(); 140d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) double devicePixelRatio() const; 141d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 142d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) String documentTypeString() const; 143d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 14407a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch PassOwnPtr<DragImage> nodeImage(Node&); 145d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) PassOwnPtr<DragImage> dragImageForSelection(); 146d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 147d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) String selectedText() const; 148d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) String selectedTextForClipboard() const; 149d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 150d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) VisiblePosition visiblePositionForPoint(const IntPoint& framePoint); 151d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) Document* documentAtPoint(const IntPoint& windowPoint); 152a9984bf9ddc3cf73fdae3f29134a2bab379e7029Ben Murdoch PassRefPtrWillBeRawPtr<Range> rangeForPoint(const IntPoint& framePoint); 153d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 154d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) bool isURLAllowed(const KURL&) const; 1557242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci bool shouldReuseDefaultView(const KURL&) const; 1569e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles) void removeSpellingMarkersUnderWords(const Vector<String>& words); 1579e12abdf8c3a23d52091ea54ebb6a04d327f9300Torne (Richard Coles) 158d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) // ======== 159d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 160d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) private: 161f6b7aed3f7ce69aca0d7a032d144cbd088b04393Torne (Richard Coles) LocalFrame(FrameLoaderClient*, FrameHost*, FrameOwner*); 162d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 163d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) String localLayerTreeAsText(unsigned flags) const; 164d6cdb82654e8f3343a693ca752d5c4cee0324e17Torne (Richard Coles) 1657242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci void detachView(); 1667242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci 1677242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci WillBeHeapHashSet<RawPtrWillBeWeakMember<FrameDestructionObserver> > m_destructionObservers; 168d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) mutable FrameLoader m_loader; 169d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) mutable NavigationScheduler m_navigationScheduler; 170d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 171d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) RefPtr<FrameView> m_view; 1727242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci // Usually 0. Non-null if this is the top frame of PagePopup. 1737242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci RefPtrWillBeMember<Element> m_pagePopupOwner; 174d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 175d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) OwnPtr<ScriptController> m_script; 1767242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci const OwnPtrWillBeMember<Editor> m_editor; 1777242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci const OwnPtrWillBeMember<SpellChecker> m_spellChecker; 1787242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci const OwnPtrWillBeMember<FrameSelection> m_selection; 1797242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci const OwnPtrWillBeMember<EventHandler> m_eventHandler; 1807242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci const OwnPtrWillBeMember<FrameConsole> m_console; 1817242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci OwnPtrWillBeMember<InputMethodController> m_inputMethodController; 182d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 183d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) float m_pageZoomFactor; 184d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) float m_textZoomFactor; 185d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 186d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) bool m_inViewSourceMode; 187d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) }; 188d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 189d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) inline void LocalFrame::init() 190d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) { 191d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) m_loader.init(); 192d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) } 193d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 194d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) inline FrameLoader& LocalFrame::loader() const 195d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) { 196d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) return m_loader; 197d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) } 198d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 199d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) inline NavigationScheduler& LocalFrame::navigationScheduler() const 200d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) { 201d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) return m_navigationScheduler; 202d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) } 203d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 204d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) inline FrameView* LocalFrame::view() const 205d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) { 206d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) return m_view.get(); 207d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) } 208d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 209d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) inline ScriptController& LocalFrame::script() 210d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) { 211d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) return *m_script; 212d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) } 213d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 214d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) inline FrameSelection& LocalFrame::selection() const 215d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) { 216d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) return *m_selection; 217d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) } 218d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 219d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) inline Editor& LocalFrame::editor() const 220d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) { 221d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) return *m_editor; 222d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) } 223d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 224d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) inline SpellChecker& LocalFrame::spellChecker() const 225d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) { 226d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) return *m_spellChecker; 227d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) } 228d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 2296f543c786fc42989f552b4daa774ca5ff32fa697Ben Murdoch inline FrameConsole& LocalFrame::console() const 2306f543c786fc42989f552b4daa774ca5ff32fa697Ben Murdoch { 2316f543c786fc42989f552b4daa774ca5ff32fa697Ben Murdoch return *m_console; 2326f543c786fc42989f552b4daa774ca5ff32fa697Ben Murdoch } 2336f543c786fc42989f552b4daa774ca5ff32fa697Ben Murdoch 234d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) inline InputMethodController& LocalFrame::inputMethodController() const 235d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) { 236d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) return *m_inputMethodController; 237d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) } 238d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 239d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) inline bool LocalFrame::inViewSourceMode() const 240d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) { 241d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) return m_inViewSourceMode; 242d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) } 243d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 244d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) inline void LocalFrame::setInViewSourceMode(bool mode) 245d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) { 246d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) m_inViewSourceMode = mode; 247d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) } 248d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 249d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) inline EventHandler& LocalFrame::eventHandler() const 250d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) { 251d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) ASSERT(m_eventHandler); 252d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) return *m_eventHandler; 253d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) } 254d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 255d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) DEFINE_TYPE_CASTS(LocalFrame, Frame, localFrame, localFrame->isLocalFrame(), localFrame.isLocalFrame()); 256d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 257c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)} // namespace blink 258d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 25907a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch// During refactoring, there are some places where we need to do type conversions that 26007a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch// will not be needed once all instances of LocalFrame and RemoteFrame are sorted out. 26107a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch// At that time this #define will be removed and all the uses of it will need to be corrected. 26207a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch#define toLocalFrameTemporary toLocalFrame 26307a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch 264d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)#endif // LocalFrame_h 265