15c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)/* 25c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * Copyright (C) 2009 Google Inc. All rights reserved. 35c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * 45c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * Redistribution and use in source and binary forms, with or without 55c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * modification, are permitted provided that the following conditions are 65c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * met: 75c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * 85c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * * Redistributions of source code must retain the above copyright 95c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * notice, this list of conditions and the following disclaimer. 105c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * * Redistributions in binary form must reproduce the above 115c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * copyright notice, this list of conditions and the following disclaimer 125c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * in the documentation and/or other materials provided with the 135c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * distribution. 145c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * * Neither the name of Google Inc. nor the names of its 155c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * contributors may be used to endorse or promote products derived from 165c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * this software without specific prior written permission. 175c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * 185c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 195c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 205c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 215c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 225c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 235c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 245c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 255c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 265c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 275c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 285c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 295c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) */ 305c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 3110f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch#ifndef WebLocalFrameImpl_h 3210f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch#define WebLocalFrameImpl_h 335c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 34d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles)#include "core/frame/LocalFrame.h" 351e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#include "platform/geometry/FloatRect.h" 365267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles)#include "public/platform/WebFileSystemType.h" 37f91f5fa1608c2cdd9af1842fb5dadbe78275be2aBo Liu#include "public/web/WebLocalFrame.h" 38f91f5fa1608c2cdd9af1842fb5dadbe78275be2aBo Liu#include "web/FrameLoaderClientImpl.h" 39f91f5fa1608c2cdd9af1842fb5dadbe78275be2aBo Liu#include "web/NotificationPresenterImpl.h" 40f91f5fa1608c2cdd9af1842fb5dadbe78275be2aBo Liu#include "web/UserMediaClientImpl.h" 41591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch#include "wtf/Compiler.h" 42591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch#include "wtf/OwnPtr.h" 43591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch#include "wtf/RefCounted.h" 44591b958dee2cf159d33a0b931e6231072eaf38d5Ben Murdoch#include "wtf/text/WTFString.h" 455c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 46c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)namespace blink { 47e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) 48e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles)class ChromePrintContext; 49e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles)class GeolocationClientProxy; 505c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)class GraphicsContext; 515c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)class HTMLInputElement; 525c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)class HistoryItem; 535c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)class IntSize; 545c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)class KURL; 555c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)class Node; 565c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)class Range; 5709380295ba73501a205346becac22c6978e4671dTorne (Richard Coles)class SharedWorkerRepositoryClientImpl; 58e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles)class SubstituteData; 5907a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdochclass TextFinder; 605c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)class WebDataSourceImpl; 615c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)class WebInputElement; 625c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)class WebFrameClient; 635c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)class WebPerformance; 6407a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdochclass WebPlugin; 655c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)class WebPluginContainerImpl; 665c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)class WebView; 675c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)class WebViewImpl; 68e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles)struct FrameLoadRequest; 695c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)struct WebPrintParams; 70e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles)struct WindowFeatures; 715c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 725c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)template <typename T> class WebVector; 735c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 745c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)// Implementation of WebFrame, note that this is a reference counted object. 757242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucciclass WebLocalFrameImpl FINAL : public RefCountedWillBeGarbageCollectedFinalized<WebLocalFrameImpl>, public WebLocalFrame { 765c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)public: 775c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) // WebFrame methods: 7810f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch virtual bool isWebLocalFrame() const OVERRIDE; 7910f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch virtual WebLocalFrame* toWebLocalFrame() OVERRIDE; 8010f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch virtual bool isWebRemoteFrame() const OVERRIDE; 8110f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch virtual WebRemoteFrame* toWebRemoteFrame() OVERRIDE; 8209380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual void close() OVERRIDE; 8309380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual WebString uniqueName() const OVERRIDE; 8409380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual WebString assignedName() const OVERRIDE; 8509380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual void setName(const WebString&) OVERRIDE; 8609380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual WebVector<WebIconURL> iconURLs(int iconTypesMask) const OVERRIDE; 8709380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual void setIsRemote(bool) OVERRIDE; 8809380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual void setRemoteWebLayer(WebLayer*) OVERRIDE; 8909380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual void setPermissionClient(WebPermissionClient*) OVERRIDE; 9009380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual void setSharedWorkerRepositoryClient(WebSharedWorkerRepositoryClient*) OVERRIDE; 9109380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual WebSize scrollOffset() const OVERRIDE; 9209380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual void setScrollOffset(const WebSize&) OVERRIDE; 9309380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual WebSize minimumScrollOffset() const OVERRIDE; 9409380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual WebSize maximumScrollOffset() const OVERRIDE; 9509380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual WebSize contentsSize() const OVERRIDE; 9609380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual bool hasVisibleContent() const OVERRIDE; 9709380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual WebRect visibleContentRect() const OVERRIDE; 9809380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual bool hasHorizontalScrollbar() const OVERRIDE; 9909380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual bool hasVerticalScrollbar() const OVERRIDE; 10009380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual WebView* view() const OVERRIDE; 101d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) virtual void setOpener(WebFrame*) OVERRIDE; 10209380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual WebDocument document() const OVERRIDE; 10309380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual WebPerformance performance() const OVERRIDE; 10407a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch virtual bool dispatchBeforeUnloadEvent() OVERRIDE; 105aafa69cb17c9d6606c07663ade5f81388a2c5986Ben Murdoch virtual void dispatchUnloadEvent() OVERRIDE; 10609380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual NPObject* windowObject() const OVERRIDE; 10709380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual void bindToWindowObject(const WebString& name, NPObject*) OVERRIDE; 10809380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual void bindToWindowObject(const WebString& name, NPObject*, void*) OVERRIDE; 10909380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual void executeScript(const WebScriptSource&) OVERRIDE; 1105c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) virtual void executeScriptInIsolatedWorld( 1115c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) int worldID, const WebScriptSource* sources, unsigned numSources, 11209380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) int extensionGroup) OVERRIDE; 11309380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual void setIsolatedWorldSecurityOrigin(int worldID, const WebSecurityOrigin&) OVERRIDE; 11409380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual void setIsolatedWorldContentSecurityPolicy(int worldID, const WebString&) OVERRIDE; 1157242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci virtual void setIsolatedWorldHumanReadableName(int worldID, const WebString&) OVERRIDE; 11609380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual void addMessageToConsole(const WebConsoleMessage&) OVERRIDE; 11709380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual void collectGarbage() OVERRIDE; 11809380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual bool checkIfRunInsecureContent(const WebURL&) const OVERRIDE; 1195c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) virtual v8::Handle<v8::Value> executeScriptAndReturnValue( 12009380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) const WebScriptSource&) OVERRIDE; 1215c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) virtual void executeScriptInIsolatedWorld( 1225c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) int worldID, const WebScriptSource* sourcesIn, unsigned numSources, 12309380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) int extensionGroup, WebVector<v8::Local<v8::Value> >* results) OVERRIDE; 1245c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) virtual v8::Handle<v8::Value> callFunctionEvenIfScriptDisabled( 1255c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) v8::Handle<v8::Function>, 126d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) v8::Handle<v8::Value>, 1275c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) int argc, 12809380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) v8::Handle<v8::Value> argv[]) OVERRIDE; 12909380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual v8::Local<v8::Context> mainWorldScriptContext() const OVERRIDE; 13009380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual void reload(bool ignoreCache) OVERRIDE; 13109380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual void reloadWithOverrideURL(const WebURL& overrideUrl, bool ignoreCache) OVERRIDE; 13209380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual void loadRequest(const WebURLRequest&) OVERRIDE; 133a9984bf9ddc3cf73fdae3f29134a2bab379e7029Ben Murdoch virtual void loadHistoryItem(const WebHistoryItem&, WebHistoryLoadType, WebURLRequest::CachePolicy) OVERRIDE; 1345c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) virtual void loadData( 1355c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) const WebData&, const WebString& mimeType, const WebString& textEncoding, 13609380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) const WebURL& baseURL, const WebURL& unreachableURL, bool replace) OVERRIDE; 1375c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) virtual void loadHTMLString( 1385c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) const WebData& html, const WebURL& baseURL, const WebURL& unreachableURL, 13909380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) bool replace) OVERRIDE; 14009380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual void stopLoading() OVERRIDE; 14109380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual WebDataSource* provisionalDataSource() const OVERRIDE; 14209380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual WebDataSource* dataSource() const OVERRIDE; 14309380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual void enableViewSourceMode(bool enable) OVERRIDE; 14409380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual bool isViewSourceModeEnabled() const OVERRIDE; 14509380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual void setReferrerForRequest(WebURLRequest&, const WebURL& referrer) OVERRIDE; 14609380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual void dispatchWillSendRequest(WebURLRequest&) OVERRIDE; 14709380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual WebURLLoader* createAssociatedURLLoader(const WebURLLoaderOptions&) OVERRIDE; 14809380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual unsigned unloadListenerCount() const OVERRIDE; 14909380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual void replaceSelection(const WebString&) OVERRIDE; 15009380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual void insertText(const WebString&) OVERRIDE; 15109380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual void setMarkedText(const WebString&, unsigned location, unsigned length) OVERRIDE; 15209380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual void unmarkText() OVERRIDE; 15309380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual bool hasMarkedText() const OVERRIDE; 15409380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual WebRange markedRange() const OVERRIDE; 15509380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual bool firstRectForCharacterRange(unsigned location, unsigned length, WebRect&) const OVERRIDE; 15609380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual size_t characterIndexForPoint(const WebPoint&) const OVERRIDE; 15709380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual bool executeCommand(const WebString&, const WebNode& = WebNode()) OVERRIDE; 15809380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual bool executeCommand(const WebString&, const WebString& value, const WebNode& = WebNode()) OVERRIDE; 15909380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual bool isCommandEnabled(const WebString&) const OVERRIDE; 16009380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual void enableContinuousSpellChecking(bool) OVERRIDE; 16109380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual bool isContinuousSpellCheckingEnabled() const OVERRIDE; 16209380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual void requestTextChecking(const WebElement&) OVERRIDE; 16309380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual void replaceMisspelledRange(const WebString&) OVERRIDE; 16409380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual void removeSpellingMarkers() OVERRIDE; 16509380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual bool hasSelection() const OVERRIDE; 16609380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual WebRange selectionRange() const OVERRIDE; 16709380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual WebString selectionAsText() const OVERRIDE; 16809380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual WebString selectionAsMarkup() const OVERRIDE; 16909380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual bool selectWordAroundCaret() OVERRIDE; 17009380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual void selectRange(const WebPoint& base, const WebPoint& extent) OVERRIDE; 17109380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual void selectRange(const WebRange&) OVERRIDE; 17209380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual void moveRangeSelection(const WebPoint& base, const WebPoint& extent) OVERRIDE; 17309380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual void moveCaretSelection(const WebPoint&) OVERRIDE; 17407a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch virtual bool setEditableSelectionOffsets(int start, int end) OVERRIDE; 17507a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch virtual bool setCompositionFromExistingText(int compositionStart, int compositionEnd, const WebVector<WebCompositionUnderline>& underlines) OVERRIDE; 17607a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch virtual void extendSelectionAndDelete(int before, int after) OVERRIDE; 17709380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual void setCaretVisible(bool) OVERRIDE; 17809380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual int printBegin(const WebPrintParams&, const WebNode& constrainToNode) OVERRIDE; 17909380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual float printPage(int pageToPrint, WebCanvas*) OVERRIDE; 18009380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual float getPrintPageShrink(int page) OVERRIDE; 18109380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual void printEnd() OVERRIDE; 18209380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual bool isPrintScalingDisabledForPlugin(const WebNode&) OVERRIDE; 183c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles) virtual int getPrintCopiesForPlugin(const WebNode&) OVERRIDE; 18409380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual bool hasCustomPageSizeStyle(int pageIndex) OVERRIDE; 18509380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual bool isPageBoxVisible(int pageIndex) OVERRIDE; 18610f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch virtual void pageSizeAndMarginsInPixels( 18710f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch int pageIndex, 18810f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch WebSize& pageSize, 18910f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch int& marginTop, 19010f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch int& marginRight, 19110f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch int& marginBottom, 19210f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch int& marginLeft) OVERRIDE; 19309380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual WebString pageProperty(const WebString& propertyName, int pageIndex) OVERRIDE; 19409380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual void printPagesWithBoundaries(WebCanvas*, const WebSize&) OVERRIDE; 1955c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) virtual bool find( 1965c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) int identifier, const WebString& searchText, const WebFindOptions&, 19709380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) bool wrapWithinFrame, WebRect* selectionRect) OVERRIDE; 19809380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual void stopFinding(bool clearSelection) OVERRIDE; 1995c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) virtual void scopeStringMatches( 2005c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) int identifier, const WebString& searchText, const WebFindOptions&, 20109380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) bool reset) OVERRIDE; 20209380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual void cancelPendingScopingEffort() OVERRIDE; 20309380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual void increaseMatchCount(int count, int identifier) OVERRIDE; 20409380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual void resetMatchCount() OVERRIDE; 20509380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual int findMatchMarkersVersion() const OVERRIDE; 20609380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual WebFloatRect activeFindMatchRect() OVERRIDE; 20709380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual void findMatchRects(WebVector<WebFloatRect>&) OVERRIDE; 20809380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual int selectNearestFindMatch(const WebFloatPoint&, WebRect* selectionRect) OVERRIDE; 20943e7502580f146aa5b3db8267ba6dbb5c733a489Torne (Richard Coles) virtual void setTickmarks(const WebVector<WebRect>&) OVERRIDE; 2105c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2115c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) virtual void dispatchMessageEventWithOriginCheck( 2125c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) const WebSecurityOrigin& intendedTargetOrigin, 21309380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) const WebDOMEvent&) OVERRIDE; 2145c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 21509380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual WebString contentAsText(size_t maxChars) const OVERRIDE; 21609380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual WebString contentAsMarkup() const OVERRIDE; 21709380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual WebString renderTreeAsText(RenderAsTextControls toShow = RenderAsTextNormal) const OVERRIDE; 21809380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual WebString markerTextForListItem(const WebElement&) const OVERRIDE; 21909380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual WebRect selectionBoundsRect() const OVERRIDE; 2205c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 22109380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual bool selectionStartHasSpellingMarkerFor(int from, int length) const OVERRIDE; 22209380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual WebString layerTreeAsText(bool showDebugInfo = false) const OVERRIDE; 2235c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 22476c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles) // WebLocalFrame methods: 2257242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci virtual void sendPings(const WebNode& linkNode, const WebURL& destinationURL) OVERRIDE; 2267242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci virtual bool isLoading() const OVERRIDE; 2277242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci virtual bool isResourceLoadInProgress() const OVERRIDE; 22876c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles) virtual void addStyleSheetByURL(const WebString& url) OVERRIDE; 2297242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci virtual void navigateToSandboxedMarkup(const WebData& markup) OVERRIDE; 2307242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci virtual void sendOrientationChangeEvent() OVERRIDE; 2317242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci virtual v8::Handle<v8::Value> executeScriptAndReturnValueForTests( 2327242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci const WebScriptSource&) OVERRIDE; 23376c265b59aa821ccbf8c75ab2bb0d036e97d2956Torne (Richard Coles) 23409380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) void willDetachParent(); 2355c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 23610f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch static WebLocalFrameImpl* create(WebFrameClient*); 23710f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch virtual ~WebLocalFrameImpl(); 2385c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2397242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci PassRefPtrWillBeRawPtr<LocalFrame> initializeCoreFrame(FrameHost*, FrameOwner*, const AtomicString& name, const AtomicString& fallbackName); 2405c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2417242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci PassRefPtrWillBeRawPtr<LocalFrame> createChildFrame(const FrameLoadRequest&, HTMLFrameOwnerElement*); 2425c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 243e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) void didChangeContentsSize(const IntSize&); 2445c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2455c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) void createFrameView(); 2465c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 247e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) static WebLocalFrameImpl* fromFrame(LocalFrame*); 248e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) static WebLocalFrameImpl* fromFrame(LocalFrame&); 249e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) static WebLocalFrameImpl* fromFrameOwnerElement(Element*); 2505c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2515c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) // If the frame hosts a PluginDocument, this method returns the WebPluginContainerImpl 2525c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) // that hosts the plugin. 253e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) static WebPluginContainerImpl* pluginContainerFromFrame(LocalFrame*); 2545c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2555267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) // If the frame hosts a PluginDocument, this method returns the WebPluginContainerImpl 2565267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) // that hosts the plugin. If the provided node is a plugin, then it runs its 2575267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) // WebPluginContainerImpl. 258e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) static WebPluginContainerImpl* pluginContainerFromNode(LocalFrame*, const WebNode&); 2595267f701546148b83dfbe1d151cb184385bb5c22Torne (Richard Coles) 2605c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) WebViewImpl* viewImpl() const; 2615c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 262e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) FrameView* frameView() const { return frame() ? frame()->view() : 0; } 2635c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2645c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) // Getters for the impls corresponding to Get(Provisional)DataSource. They 2655c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) // may return 0 if there is no corresponding data source. 2665c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) WebDataSourceImpl* dataSourceImpl() const; 2675c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) WebDataSourceImpl* provisionalDataSourceImpl() const; 2685c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2695c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) // Returns which frame has an active match. This function should only be 2705c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) // called on the main frame, as it is the only frame keeping track. Returned 2715c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) // value can be 0 if no frame has an active match. 27210f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch WebLocalFrameImpl* activeMatchFrame() const; 2735c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2745c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) // Returns the active match in the current frame. Could be a null range if 2755c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) // the local frame has no active match. 276e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) Range* activeMatch() const; 2775c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 2785c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) // When a Find operation ends, we want to set the selection to what was active 2795c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) // and set focus to the first focusable node we find (starting with the first 2805c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) // node in the matched range and going up the inheritance chain). If we find 2815c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) // nothing to focus we focus the first focusable node in the range. This 2825c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) // allows us to set focus to a link (when we find text inside a link), which 2835c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) // allows us to navigate by pressing Enter after closing the Find box. 2845c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) void setFindEndstateFocusAndSelection(); 2855c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 286e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) void didFail(const ResourceError&, bool wasProvisional); 2875c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 28810f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch // Sets whether the WebLocalFrameImpl allows its document to be scrolled. 2895c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) // If the parameter is true, allow the document to be scrolled. 2905c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) // Otherwise, disallow scrolling. 29109380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) virtual void setCanHaveScrollbars(bool) OVERRIDE; 2925c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 293e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) LocalFrame* frame() const { return m_frame.get(); } 2945c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) WebFrameClient* client() const { return m_client; } 2955c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) void setClient(WebFrameClient* client) { m_client = client; } 2965c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 29709380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) WebPermissionClient* permissionClient() { return m_permissionClient; } 29809380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) SharedWorkerRepositoryClientImpl* sharedWorkerRepositoryClient() const { return m_sharedWorkerRepositoryClient.get(); } 29909380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) 300e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) void setInputEventsTransformForEmulation(const IntSize&, float); 3011e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) 302e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) static void selectWordAroundPosition(LocalFrame*, VisiblePosition); 3035c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 30407a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch // Returns the text finder object if it already exists. 30507a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch // Otherwise creates it and then returns. 30607a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch TextFinder& ensureTextFinder(); 3075c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 30807a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch // Invalidates vertical scrollbar only. 30907a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch void invalidateScrollbar() const; 3105c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 31107a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch // Invalidates both content area and the scrollbar. 31207a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch void invalidateAll() const; 3135c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 314197021e6b966cfb06891637935ef33fff06433d1Ben Murdoch // Returns a hit-tested VisiblePosition for the given point 315e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) VisiblePosition visiblePositionForWindowPoint(const WebPoint&); 3165d92fedcae5e801a8b224de090094f2d9df0b54aTorne (Richard Coles) 3177242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci void trace(Visitor*); 3187242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci 31907a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdochprivate: 32007a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch friend class FrameLoaderClientImpl; 3215c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 32210f88d5669dbd969c059d61ba09fa37dd72ac559Ben Murdoch explicit WebLocalFrameImpl(WebFrameClient*); 3235c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 324e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) // Sets the local core frame and registers destruction observers. 3257242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci void setCoreFrame(PassRefPtrWillBeRawPtr<LocalFrame>); 3265c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 327e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) void loadJavaScriptURL(const KURL&); 3285c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 32907a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch WebPlugin* focusedPluginIfInputMethodSupported(); 33007a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch 331d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) FrameLoaderClientImpl m_frameLoaderClientImpl; 3325c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 333d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) // The embedder retains a reference to the WebCore LocalFrame while it is active in the DOM. This 33409380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) // reference is released when the frame is removed from the DOM or the entire page is closed. 335d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) // FIXME: These will need to change to WebFrame when we introduce WebFrameProxy. 3367242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci RefPtrWillBeMember<LocalFrame> m_frame; 337d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) 338d5428f32f5d1719f774f62e19147104ca245a3abTorne (Richard Coles) // Indicate whether the current LocalFrame is local or remote. Remote frames are 33909380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) // rendered in a different process from their parent frames. 34009380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) bool m_isRemote; 34109380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) 3425c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) WebFrameClient* m_client; 34309380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) WebPermissionClient* m_permissionClient; 34409380295ba73501a205346becac22c6978e4671dTorne (Richard Coles) OwnPtr<SharedWorkerRepositoryClientImpl> m_sharedWorkerRepositoryClient; 3455c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 34607a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch // Will be initialized after first call to find() or scopeStringMatches(). 34707a852d8c1953036774d8f3b65d18dcfea3bb4a2Ben Murdoch OwnPtr<TextFinder> m_textFinder; 3485c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 3495c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) // Valid between calls to BeginPrint() and EndPrint(). Containts the print 3505c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) // information. Is used by PrintPage(). 3517242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci OwnPtrWillBeMember<ChromePrintContext> m_printContext; 3525c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 35319cde67944066db31e633d9e386f2aa9bf9fadb3Torne (Richard Coles) // Stores the additional input events offset and scale when device metrics emulation is enabled. 354e38fbeeb576b5094e34e038ab88d9d6a5c5c2214Torne (Richard Coles) IntSize m_inputEventsOffsetForEmulation; 3551e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) float m_inputEventsScaleFactorForEmulation; 3566f543c786fc42989f552b4daa774ca5ff32fa697Ben Murdoch 357f91f5fa1608c2cdd9af1842fb5dadbe78275be2aBo Liu UserMediaClientImpl m_userMediaClientImpl; 358f6b7aed3f7ce69aca0d7a032d144cbd088b04393Torne (Richard Coles) 3597242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci OwnPtrWillBeMember<GeolocationClientProxy> m_geolocationClientProxy; 3607242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci 3617242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci#if ENABLE(OILPAN) 3627242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci // Oilpan: to provide the guarantee of having the frame live until 3637242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci // close() is called, an instance keep a self-persistent. It is 3647242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci // cleared upon calling close(). This avoids having to assume that 3657242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci // an embedder's WebFrame references are all discovered via thread 3667242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci // state (stack, registers) should an Oilpan GC strike while we're 3677242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci // in the process of detaching. 3687242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci GC_PLUGIN_IGNORE("340522") 3697242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci Persistent<WebLocalFrameImpl> m_selfKeepAlive; 3707242dc3dbeb210b5e876a3c42d1ec1a667fc621aPrimiano Tucci#endif 3715c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)}; 3725c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 37310f88d5669dbd969c059d61ba09fa37dd72ac559Ben MurdochDEFINE_TYPE_CASTS(WebLocalFrameImpl, WebFrame, frame, frame->isWebLocalFrame(), frame.isWebLocalFrame()); 374c0e19a689c8ac22cdc96b291a8d33a5d3b0b34a4Torne (Richard Coles) 37551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)} // namespace blink 3765c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles) 3775c87bf8b86a7c82ef50fb7a89697d8e02e2553beTorne (Richard Coles)#endif 378