Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / Source / web / WebRemoteFrameImpl.h
index 224de1b..5d22229 100644 (file)
@@ -5,10 +5,11 @@
 #ifndef WebRemoteFrameImpl_h
 #define WebRemoteFrameImpl_h
 
+#include "core/frame/FrameOwner.h"
 #include "platform/heap/Handle.h"
 #include "public/web/WebRemoteFrame.h"
 #include "public/web/WebRemoteFrameClient.h"
-#include "web/RemoteFrameClient.h"
+#include "web/RemoteFrameClientImpl.h"
 #include "wtf/HashMap.h"
 #include "wtf/OwnPtr.h"
 #include "wtf/RefCounted.h"
@@ -18,161 +19,174 @@ namespace blink {
 class FrameHost;
 class FrameOwner;
 class RemoteFrame;
-class WebViewImpl;
 
-class WebRemoteFrameImpl FINAL : public RefCountedWillBeGarbageCollectedFinalized<WebRemoteFrameImpl>, public WebRemoteFrame {
+// FIXME: This is just a placeholder frame owner to supply to RemoteFrame when
+// the parent is also a remote frame. Strictly speaking, this shouldn't be
+// necessary, since a remote frame shouldn't ever need to communicate with a
+// remote parent (there are no sandbox flags to retrieve in this case, nor can
+// the RemoteFrame itself load a document). In most circumstances, the check for
+// frame->owner() can be replaced with a check for frame->tree().parent(). Once
+// that's done, this class can be removed.
+class PlaceholderFrameOwner : public NoBaseWillBeGarbageCollectedFinalized<PlaceholderFrameOwner>, public FrameOwner {
+    WILL_BE_USING_GARBAGE_COLLECTED_MIXIN(PlaceholderFrameOwner);
+public:
+    virtual bool isLocal() const override;
+    virtual SandboxFlags sandboxFlags() const override;
+    virtual void dispatchLoad() override;
+};
+
+class WebRemoteFrameImpl final : public RefCountedWillBeGarbageCollectedFinalized<WebRemoteFrameImpl>, public WebRemoteFrame {
 public:
     explicit WebRemoteFrameImpl(WebRemoteFrameClient*);
     virtual ~WebRemoteFrameImpl();
 
     // WebRemoteFrame methods.
-    virtual bool isWebLocalFrame() const OVERRIDE;
-    virtual WebLocalFrame* toWebLocalFrame() OVERRIDE;
-    virtual bool isWebRemoteFrame() const OVERRIDE;
-    virtual WebRemoteFrame* toWebRemoteFrame() OVERRIDE;
-    virtual void close() OVERRIDE;
-    virtual WebString uniqueName() const OVERRIDE;
-    virtual WebString assignedName() const OVERRIDE;
-    virtual void setName(const WebString&) OVERRIDE;
-    virtual WebVector<WebIconURL> iconURLs(int iconTypesMask) const OVERRIDE;
-    virtual void setIsRemote(bool) OVERRIDE;
-    virtual void setRemoteWebLayer(WebLayer*) OVERRIDE;
-    virtual void setPermissionClient(WebPermissionClient*) OVERRIDE;
-    virtual void setSharedWorkerRepositoryClient(WebSharedWorkerRepositoryClient*) OVERRIDE;
-    virtual void setCanHaveScrollbars(bool) OVERRIDE;
-    virtual WebSize scrollOffset() const OVERRIDE;
-    virtual void setScrollOffset(const WebSize&) OVERRIDE;
-    virtual WebSize minimumScrollOffset() const OVERRIDE;
-    virtual WebSize maximumScrollOffset() const OVERRIDE;
-    virtual WebSize contentsSize() const OVERRIDE;
-    virtual bool hasVisibleContent() const OVERRIDE;
-    virtual WebRect visibleContentRect() const OVERRIDE;
-    virtual bool hasHorizontalScrollbar() const OVERRIDE;
-    virtual bool hasVerticalScrollbar() const OVERRIDE;
-    virtual WebView* view() const OVERRIDE;
-    virtual void removeChild(WebFrame*) OVERRIDE;
-    virtual WebDocument document() const OVERRIDE;
-    virtual WebPerformance performance() const OVERRIDE;
-    virtual bool dispatchBeforeUnloadEvent() OVERRIDE;
-    virtual void dispatchUnloadEvent() OVERRIDE;
-    virtual NPObject* windowObject() const OVERRIDE;
-    virtual void bindToWindowObject(const WebString& name, NPObject*) OVERRIDE;
-    virtual void bindToWindowObject(const WebString& name, NPObject*, void*) OVERRIDE;
-    virtual void executeScript(const WebScriptSource&) OVERRIDE;
+    virtual bool isWebLocalFrame() const override;
+    virtual WebLocalFrame* toWebLocalFrame() override;
+    virtual bool isWebRemoteFrame() const override;
+    virtual WebRemoteFrame* toWebRemoteFrame() override;
+    virtual void close() override;
+    virtual WebString uniqueName() const override;
+    virtual WebString assignedName() const override;
+    virtual void setName(const WebString&) override;
+    virtual WebVector<WebIconURL> iconURLs(int iconTypesMask) const override;
+    virtual void setRemoteWebLayer(WebLayer*) override;
+    virtual void setPermissionClient(WebPermissionClient*) override;
+    virtual void setSharedWorkerRepositoryClient(WebSharedWorkerRepositoryClient*) override;
+    virtual void setCanHaveScrollbars(bool) override;
+    virtual WebSize scrollOffset() const override;
+    virtual void setScrollOffset(const WebSize&) override;
+    virtual WebSize minimumScrollOffset() const override;
+    virtual WebSize maximumScrollOffset() const override;
+    virtual WebSize contentsSize() const override;
+    virtual bool hasVisibleContent() const override;
+    virtual WebRect visibleContentRect() const override;
+    virtual bool hasHorizontalScrollbar() const override;
+    virtual bool hasVerticalScrollbar() const override;
+    virtual WebView* view() const override;
+    virtual void removeChild(WebFrame*) override;
+    virtual WebDocument document() const override;
+    virtual WebPerformance performance() const override;
+    virtual bool dispatchBeforeUnloadEvent() override;
+    virtual void dispatchUnloadEvent() override;
+    virtual NPObject* windowObject() const override;
+    virtual void bindToWindowObject(const WebString& name, NPObject*) override;
+    virtual void bindToWindowObject(const WebString& name, NPObject*, void*) override;
+    virtual void executeScript(const WebScriptSource&) override;
     virtual void executeScriptInIsolatedWorld(
         int worldID, const WebScriptSource* sources, unsigned numSources,
-        int extensionGroup) OVERRIDE;
-    virtual void setIsolatedWorldSecurityOrigin(int worldID, const WebSecurityOrigin&) OVERRIDE;
-    virtual void setIsolatedWorldContentSecurityPolicy(int worldID, const WebString&) OVERRIDE;
-    virtual void addMessageToConsole(const WebConsoleMessage&) OVERRIDE;
-    virtual void collectGarbage() OVERRIDE;
-    virtual bool checkIfRunInsecureContent(const WebURL&) const OVERRIDE;
+        int extensionGroup) override;
+    virtual void setIsolatedWorldSecurityOrigin(int worldID, const WebSecurityOrigin&) override;
+    virtual void setIsolatedWorldContentSecurityPolicy(int worldID, const WebString&) override;
+    virtual void addMessageToConsole(const WebConsoleMessage&) override;
+    virtual void collectGarbage() override;
+    virtual bool checkIfRunInsecureContent(const WebURL&) const override;
     virtual v8::Handle<v8::Value> executeScriptAndReturnValue(
-        const WebScriptSource&) OVERRIDE;
+        const WebScriptSource&) override;
     virtual void executeScriptInIsolatedWorld(
         int worldID, const WebScriptSource* sourcesIn, unsigned numSources,
-        int extensionGroup, WebVector<v8::Local<v8::Value> >* results) OVERRIDE;
+        int extensionGroup, WebVector<v8::Local<v8::Value> >* results) override;
     virtual v8::Handle<v8::Value> callFunctionEvenIfScriptDisabled(
         v8::Handle<v8::Function>,
         v8::Handle<v8::Value>,
         int argc,
-        v8::Handle<v8::Value> argv[]) OVERRIDE;
-    virtual v8::Local<v8::Context> mainWorldScriptContext() const OVERRIDE;
-    virtual void reload(bool ignoreCache) OVERRIDE;
-    virtual void reloadWithOverrideURL(const WebURL& overrideUrl, bool ignoreCache) OVERRIDE;
-    virtual void loadRequest(const WebURLRequest&) OVERRIDE;
-    virtual void loadHistoryItem(const WebHistoryItem&, WebHistoryLoadType, WebURLRequest::CachePolicy) OVERRIDE;
+        v8::Handle<v8::Value> argv[]) override;
+    virtual v8::Local<v8::Context> mainWorldScriptContext() const override;
+    virtual void reload(bool ignoreCache) override;
+    virtual void reloadWithOverrideURL(const WebURL& overrideUrl, bool ignoreCache) override;
+    virtual void loadRequest(const WebURLRequest&) override;
+    virtual void loadHistoryItem(const WebHistoryItem&, WebHistoryLoadType, WebURLRequest::CachePolicy) override;
     virtual void loadData(
         const WebData&, const WebString& mimeType, const WebString& textEncoding,
-        const WebURL& baseURL, const WebURL& unreachableURL, bool replace) OVERRIDE;
+        const WebURL& baseURL, const WebURL& unreachableURL, bool replace) override;
     virtual void loadHTMLString(
         const WebData& html, const WebURL& baseURL, const WebURL& unreachableURL,
-        bool replace) OVERRIDE;
-    virtual void stopLoading() OVERRIDE;
-    virtual WebDataSource* provisionalDataSource() const OVERRIDE;
-    virtual WebDataSource* dataSource() const OVERRIDE;
-    virtual void enableViewSourceMode(bool enable) OVERRIDE;
-    virtual bool isViewSourceModeEnabled() const OVERRIDE;
-    virtual void setReferrerForRequest(WebURLRequest&, const WebURL& referrer) OVERRIDE;
-    virtual void dispatchWillSendRequest(WebURLRequest&) OVERRIDE;
-    virtual WebURLLoader* createAssociatedURLLoader(const WebURLLoaderOptions&) OVERRIDE;
-    virtual unsigned unloadListenerCount() const OVERRIDE;
-    virtual void replaceSelection(const WebString&) OVERRIDE;
-    virtual void insertText(const WebString&) OVERRIDE;
-    virtual void setMarkedText(const WebString&, unsigned location, unsigned length) OVERRIDE;
-    virtual void unmarkText() OVERRIDE;
-    virtual bool hasMarkedText() const OVERRIDE;
-    virtual WebRange markedRange() const OVERRIDE;
-    virtual bool firstRectForCharacterRange(unsigned location, unsigned length, WebRect&) const OVERRIDE;
-    virtual size_t characterIndexForPoint(const WebPoint&) const OVERRIDE;
-    virtual bool executeCommand(const WebString&, const WebNode& = WebNode()) OVERRIDE;
-    virtual bool executeCommand(const WebString&, const WebString& value, const WebNode& = WebNode()) OVERRIDE;
-    virtual bool isCommandEnabled(const WebString&) const OVERRIDE;
-    virtual void enableContinuousSpellChecking(bool) OVERRIDE;
-    virtual bool isContinuousSpellCheckingEnabled() const OVERRIDE;
-    virtual void requestTextChecking(const WebElement&) OVERRIDE;
-    virtual void replaceMisspelledRange(const WebString&) OVERRIDE;
-    virtual void removeSpellingMarkers() OVERRIDE;
-    virtual bool hasSelection() const OVERRIDE;
-    virtual WebRange selectionRange() const OVERRIDE;
-    virtual WebString selectionAsText() const OVERRIDE;
-    virtual WebString selectionAsMarkup() const OVERRIDE;
-    virtual bool selectWordAroundCaret() OVERRIDE;
-    virtual void selectRange(const WebPoint& base, const WebPoint& extent) OVERRIDE;
-    virtual void selectRange(const WebRange&) OVERRIDE;
-    virtual void moveRangeSelection(const WebPoint& base, const WebPoint& extent) OVERRIDE;
-    virtual void moveCaretSelection(const WebPoint&) OVERRIDE;
-    virtual bool setEditableSelectionOffsets(int start, int end) OVERRIDE;
-    virtual bool setCompositionFromExistingText(int compositionStart, int compositionEnd, const WebVector<WebCompositionUnderline>& underlines) OVERRIDE;
-    virtual void extendSelectionAndDelete(int before, int after) OVERRIDE;
-    virtual void setCaretVisible(bool) OVERRIDE;
-    virtual int printBegin(const WebPrintParams&, const WebNode& constrainToNode) OVERRIDE;
-    virtual float printPage(int pageToPrint, WebCanvas*) OVERRIDE;
-    virtual float getPrintPageShrink(int page) OVERRIDE;
-    virtual void printEnd() OVERRIDE;
-    virtual bool isPrintScalingDisabledForPlugin(const WebNode&) OVERRIDE;
-    virtual int getPrintCopiesForPlugin(const WebNode&) OVERRIDE;
-    virtual bool hasCustomPageSizeStyle(int pageIndex) OVERRIDE;
-    virtual bool isPageBoxVisible(int pageIndex) OVERRIDE;
+        bool replace) override;
+    virtual void stopLoading() override;
+    virtual WebDataSource* provisionalDataSource() const override;
+    virtual WebDataSource* dataSource() const override;
+    virtual void enableViewSourceMode(bool enable) override;
+    virtual bool isViewSourceModeEnabled() const override;
+    virtual void setReferrerForRequest(WebURLRequest&, const WebURL& referrer) override;
+    virtual void dispatchWillSendRequest(WebURLRequest&) override;
+    virtual WebURLLoader* createAssociatedURLLoader(const WebURLLoaderOptions&) override;
+    virtual unsigned unloadListenerCount() const override;
+    virtual void replaceSelection(const WebString&) override;
+    virtual void insertText(const WebString&) override;
+    virtual void setMarkedText(const WebString&, unsigned location, unsigned length) override;
+    virtual void unmarkText() override;
+    virtual bool hasMarkedText() const override;
+    virtual WebRange markedRange() const override;
+    virtual bool firstRectForCharacterRange(unsigned location, unsigned length, WebRect&) const override;
+    virtual size_t characterIndexForPoint(const WebPoint&) const override;
+    virtual bool executeCommand(const WebString&, const WebNode& = WebNode()) override;
+    virtual bool executeCommand(const WebString&, const WebString& value, const WebNode& = WebNode()) override;
+    virtual bool isCommandEnabled(const WebString&) const override;
+    virtual void enableContinuousSpellChecking(bool) override;
+    virtual bool isContinuousSpellCheckingEnabled() const override;
+    virtual void requestTextChecking(const WebElement&) override;
+    virtual void replaceMisspelledRange(const WebString&) override;
+    virtual void removeSpellingMarkers() override;
+    virtual bool hasSelection() const override;
+    virtual WebRange selectionRange() const override;
+    virtual WebString selectionAsText() const override;
+    virtual WebString selectionAsMarkup() const override;
+    virtual bool selectWordAroundCaret() override;
+    virtual void selectRange(const WebPoint& base, const WebPoint& extent) override;
+    virtual void selectRange(const WebRange&) override;
+    virtual void moveRangeSelection(const WebPoint& base, const WebPoint& extent) override;
+    virtual void moveCaretSelection(const WebPoint&) override;
+    virtual bool setEditableSelectionOffsets(int start, int end) override;
+    virtual bool setCompositionFromExistingText(int compositionStart, int compositionEnd, const WebVector<WebCompositionUnderline>& underlines) override;
+    virtual void extendSelectionAndDelete(int before, int after) override;
+    virtual void setCaretVisible(bool) override;
+    virtual int printBegin(const WebPrintParams&, const WebNode& constrainToNode) override;
+    virtual float printPage(int pageToPrint, WebCanvas*) override;
+    virtual float getPrintPageShrink(int page) override;
+    virtual void printEnd() override;
+    virtual bool isPrintScalingDisabledForPlugin(const WebNode&) override;
+    virtual int getPrintCopiesForPlugin(const WebNode&) override;
+    virtual bool hasCustomPageSizeStyle(int pageIndex) override;
+    virtual bool isPageBoxVisible(int pageIndex) override;
     virtual void pageSizeAndMarginsInPixels(
         int pageIndex,
         WebSize& pageSize,
         int& marginTop,
         int& marginRight,
         int& marginBottom,
-        int& marginLeft) OVERRIDE;
-    virtual WebString pageProperty(const WebString& propertyName, int pageIndex) OVERRIDE;
-    virtual void printPagesWithBoundaries(WebCanvas*, const WebSize&) OVERRIDE;
+        int& marginLeft) override;
+    virtual WebString pageProperty(const WebString& propertyName, int pageIndex) override;
+    virtual void printPagesWithBoundaries(WebCanvas*, const WebSize&) override;
     virtual bool find(
         int identifier, const WebString& searchText, const WebFindOptions&,
-        bool wrapWithinFrame, WebRect* selectionRect) OVERRIDE;
-    virtual void stopFinding(bool clearSelection) OVERRIDE;
+        bool wrapWithinFrame, WebRect* selectionRect) override;
+    virtual void stopFinding(bool clearSelection) override;
     virtual void scopeStringMatches(
         int identifier, const WebString& searchText, const WebFindOptions&,
-        bool reset) OVERRIDE;
-    virtual void cancelPendingScopingEffort() OVERRIDE;
-    virtual void increaseMatchCount(int count, int identifier) OVERRIDE;
-    virtual void resetMatchCount() OVERRIDE;
-    virtual int findMatchMarkersVersion() const OVERRIDE;
-    virtual WebFloatRect activeFindMatchRect() OVERRIDE;
-    virtual void findMatchRects(WebVector<WebFloatRect>&) OVERRIDE;
-    virtual int selectNearestFindMatch(const WebFloatPoint&, WebRect* selectionRect) OVERRIDE;
-    virtual void setTickmarks(const WebVector<WebRect>&) OVERRIDE;
+        bool reset) override;
+    virtual void cancelPendingScopingEffort() override;
+    virtual void increaseMatchCount(int count, int identifier) override;
+    virtual void resetMatchCount() override;
+    virtual int findMatchMarkersVersion() const override;
+    virtual WebFloatRect activeFindMatchRect() override;
+    virtual void findMatchRects(WebVector<WebFloatRect>&) override;
+    virtual int selectNearestFindMatch(const WebFloatPoint&, WebRect* selectionRect) override;
+    virtual void setTickmarks(const WebVector<WebRect>&) override;
     virtual void dispatchMessageEventWithOriginCheck(
         const WebSecurityOrigin& intendedTargetOrigin,
-        const WebDOMEvent&) OVERRIDE;
+        const WebDOMEvent&) override;
 
-    virtual WebString contentAsText(size_t maxChars) const OVERRIDE;
-    virtual WebString contentAsMarkup() const OVERRIDE;
-    virtual WebString renderTreeAsText(RenderAsTextControls toShow = RenderAsTextNormal) const OVERRIDE;
-    virtual WebString markerTextForListItem(const WebElement&) const OVERRIDE;
-    virtual WebRect selectionBoundsRect() const OVERRIDE;
+    virtual WebString contentAsText(size_t maxChars) const override;
+    virtual WebString contentAsMarkup() const override;
+    virtual WebString renderTreeAsText(RenderAsTextControls toShow = RenderAsTextNormal) const override;
+    virtual WebString markerTextForListItem(const WebElement&) const override;
+    virtual WebRect selectionBoundsRect() const override;
 
-    virtual bool selectionStartHasSpellingMarkerFor(int from, int length) const OVERRIDE;
-    virtual WebString layerTreeAsText(bool showDebugInfo = false) const OVERRIDE;
+    virtual bool selectionStartHasSpellingMarkerFor(int from, int length) const override;
+    virtual WebString layerTreeAsText(bool showDebugInfo = false) const override;
 
-    virtual WebLocalFrame* createLocalChild(const WebString& name, WebFrameClient*) OVERRIDE;
-    virtual WebRemoteFrame* createRemoteChild(const WebString& name, WebRemoteFrameClient*) OVERRIDE;
+    virtual WebLocalFrame* createLocalChild(const WebString& name, WebFrameClient*) override;
+    virtual WebRemoteFrame* createRemoteChild(const WebString& name, WebRemoteFrameClient*) override;
 
     void initializeCoreFrame(FrameHost*, FrameOwner*, const AtomicString& name);
 
@@ -183,17 +197,17 @@ public:
 
     static WebRemoteFrameImpl* fromFrame(RemoteFrame&);
 
-    virtual void initializeFromFrame(WebLocalFrame*) const OVERRIDE;
+    virtual void initializeFromFrame(WebLocalFrame*) const override;
 
-    virtual void trace(Visitor*);
+#if ENABLE(OILPAN)
+    void trace(Visitor*);
+#endif
 
 private:
-    RemoteFrameClient m_frameClient;
+    RemoteFrameClientImpl m_frameClient;
     RefPtrWillBeMember<RemoteFrame> m_frame;
     WebRemoteFrameClient* m_client;
 
-    WebViewImpl* viewImpl() const;
-
     WillBeHeapHashMap<WebFrame*, OwnPtrWillBeMember<FrameOwner> > m_ownersForChildren;
 
 #if ENABLE(OILPAN)