WebKit/win/WebView.h
changeset 0 4f2f89ce4247
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/WebKit/win/WebView.h	Fri Sep 17 09:02:29 2010 +0300
@@ -0,0 +1,1056 @@
+/*
+ * Copyright (C) 2006, 2007 Apple Inc.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
+ * EXPRESS OR IMPLIED WARRANTIES, INCfLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
+ */
+
+#ifndef WebView_H
+#define WebView_H
+
+#include "COMPtr.h"
+#include "WebKit.h"
+#include "WebFrame.h"
+#include "WebPreferences.h"
+#include <WebCore/DragActions.h>
+#include <WebCore/IntRect.h>
+#include <WebCore/RefCountedGDIHandle.h>
+#include <WebCore/SuspendableTimer.h>
+#include <WebCore/WindowMessageListener.h>
+#include <WebCore/WKCACFLayer.h>
+#include <WebCore/WKCACFLayerRenderer.h>
+#include <wtf/HashSet.h>
+#include <wtf/OwnPtr.h>
+#include <wtf/RefPtr.h>
+
+class FullscreenVideoController;
+class WebBackForwardList;
+class WebFrame;
+class WebInspector;
+class WebInspectorClient;
+
+typedef WebCore::RefCountedGDIHandle<HBITMAP> RefCountedHBITMAP;
+typedef WebCore::RefCountedGDIHandle<HRGN> RefCountedHRGN;
+
+WebView* kit(WebCore::Page*);
+WebCore::Page* core(IWebView*);
+
+interface IDropTargetHelper;
+
+class WebView 
+    : public IWebView
+    , public IWebViewPrivate
+    , public IWebIBActions
+    , public IWebViewCSS
+    , public IWebViewEditing
+    , public IWebViewUndoableEditing
+    , public IWebViewEditingActions
+    , public IWebNotificationObserver
+    , public IDropTarget
+    , WebCore::WindowMessageListener
+#if USE(ACCELERATED_COMPOSITING)
+    , WebCore::WKCACFLayerRendererClient
+#endif
+{
+public:
+    static WebView* createInstance();
+protected:
+    WebView();
+    ~WebView();
+
+public:
+    // IUnknown
+    virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void** ppvObject);
+    virtual ULONG STDMETHODCALLTYPE AddRef(void);
+    virtual ULONG STDMETHODCALLTYPE Release(void);
+
+    // IWebView
+
+    virtual HRESULT STDMETHODCALLTYPE canShowMIMEType( 
+        /* [in] */ BSTR mimeType,
+        /* [retval][out] */ BOOL *canShow);
+
+    virtual HRESULT STDMETHODCALLTYPE canShowMIMETypeAsHTML( 
+        /* [in] */ BSTR mimeType,
+        /* [retval][out] */ BOOL *canShow);
+
+    virtual HRESULT STDMETHODCALLTYPE MIMETypesShownAsHTML( 
+        /* [retval][out] */ IEnumVARIANT **enumVariant);
+    
+    virtual HRESULT STDMETHODCALLTYPE setMIMETypesShownAsHTML( 
+        /* [size_is][in] */ BSTR *mimeTypes,
+        /* [in] */ int cMimeTypes);
+    
+    virtual HRESULT STDMETHODCALLTYPE URLFromPasteboard( 
+        /* [in] */ IDataObject *pasteboard,
+        /* [retval][out] */ BSTR *url);
+    
+    virtual HRESULT STDMETHODCALLTYPE URLTitleFromPasteboard( 
+        /* [in] */ IDataObject *pasteboard,
+        /* [retval][out] */ BSTR *urlTitle);
+    
+    virtual HRESULT STDMETHODCALLTYPE initWithFrame( 
+        /* [in] */ RECT frame,
+        /* [in] */ BSTR frameName,
+        /* [in] */ BSTR groupName);
+    
+    virtual HRESULT STDMETHODCALLTYPE setUIDelegate( 
+        /* [in] */ IWebUIDelegate *d);
+    
+    virtual HRESULT STDMETHODCALLTYPE uiDelegate( 
+        /* [out][retval] */ IWebUIDelegate **d);
+    
+    virtual HRESULT STDMETHODCALLTYPE setResourceLoadDelegate( 
+        /* [in] */ IWebResourceLoadDelegate *d);
+    
+    virtual HRESULT STDMETHODCALLTYPE resourceLoadDelegate( 
+        /* [out][retval] */ IWebResourceLoadDelegate **d);
+    
+    virtual HRESULT STDMETHODCALLTYPE setDownloadDelegate( 
+        /* [in] */ IWebDownloadDelegate *d);
+    
+    virtual HRESULT STDMETHODCALLTYPE downloadDelegate( 
+        /* [out][retval] */ IWebDownloadDelegate **d);
+    
+    virtual HRESULT STDMETHODCALLTYPE setFrameLoadDelegate( 
+        /* [in] */ IWebFrameLoadDelegate *d);
+    
+    virtual HRESULT STDMETHODCALLTYPE frameLoadDelegate( 
+        /* [out][retval] */ IWebFrameLoadDelegate **d);
+    
+    virtual HRESULT STDMETHODCALLTYPE setPolicyDelegate( 
+        /* [in] */ IWebPolicyDelegate *d);
+    
+    virtual HRESULT STDMETHODCALLTYPE policyDelegate( 
+        /* [out][retval] */ IWebPolicyDelegate **d);
+    
+    virtual HRESULT STDMETHODCALLTYPE mainFrame( 
+        /* [out][retval] */ IWebFrame **frame);
+
+    virtual HRESULT STDMETHODCALLTYPE focusedFrame( 
+        /* [out][retval] */ IWebFrame **frame);
+    
+    virtual HRESULT STDMETHODCALLTYPE backForwardList( 
+        /* [out][retval] */ IWebBackForwardList **list);
+    
+    virtual HRESULT STDMETHODCALLTYPE setMaintainsBackForwardList( 
+        /* [in] */ BOOL flag);
+    
+    virtual HRESULT STDMETHODCALLTYPE goBack( 
+        /* [retval][out] */ BOOL *succeeded);
+    
+    virtual HRESULT STDMETHODCALLTYPE goForward( 
+        /* [retval][out] */ BOOL *succeeded);
+    
+    virtual HRESULT STDMETHODCALLTYPE goToBackForwardItem( 
+        /* [in] */ IWebHistoryItem *item,
+        /* [retval][out] */ BOOL *succeeded);
+    
+    virtual HRESULT STDMETHODCALLTYPE setTextSizeMultiplier( 
+        /* [in] */ float multiplier);
+    
+    virtual HRESULT STDMETHODCALLTYPE textSizeMultiplier( 
+        /* [retval][out] */ float *multiplier);
+    
+    virtual HRESULT STDMETHODCALLTYPE setApplicationNameForUserAgent( 
+        /* [in] */ BSTR applicationName);
+    
+    virtual HRESULT STDMETHODCALLTYPE applicationNameForUserAgent( 
+        /* [retval][out] */ BSTR *applicationName);
+    
+    virtual HRESULT STDMETHODCALLTYPE setCustomUserAgent( 
+        /* [in] */ BSTR userAgentString);
+    
+    virtual HRESULT STDMETHODCALLTYPE customUserAgent( 
+        /* [retval][out] */ BSTR *userAgentString);
+    
+    virtual HRESULT STDMETHODCALLTYPE userAgentForURL( 
+        /* [in] */ BSTR url,
+        /* [retval][out] */ BSTR *userAgent);
+    
+    virtual HRESULT STDMETHODCALLTYPE supportsTextEncoding( 
+        /* [retval][out] */ BOOL *supports);
+    
+    virtual HRESULT STDMETHODCALLTYPE setCustomTextEncodingName( 
+        /* [in] */ BSTR encodingName);
+    
+    virtual HRESULT STDMETHODCALLTYPE customTextEncodingName( 
+        /* [retval][out] */ BSTR *encodingName);
+    
+    virtual HRESULT STDMETHODCALLTYPE setMediaStyle( 
+        /* [in] */ BSTR media);
+    
+    virtual HRESULT STDMETHODCALLTYPE mediaStyle( 
+        /* [retval][out] */ BSTR *media);
+    
+    virtual HRESULT STDMETHODCALLTYPE stringByEvaluatingJavaScriptFromString( 
+        /* [in] */ BSTR script,
+        /* [retval][out] */ BSTR *result);
+    
+    virtual HRESULT STDMETHODCALLTYPE windowScriptObject( 
+        /* [retval][out] */ IWebScriptObject **webScriptObject);
+    
+    virtual HRESULT STDMETHODCALLTYPE setPreferences( 
+        /* [in] */ IWebPreferences *prefs);
+    
+    virtual HRESULT STDMETHODCALLTYPE preferences( 
+        /* [retval][out] */ IWebPreferences **prefs);
+    
+    virtual HRESULT STDMETHODCALLTYPE setPreferencesIdentifier( 
+        /* [in] */ BSTR anIdentifier);
+    
+    virtual HRESULT STDMETHODCALLTYPE preferencesIdentifier( 
+        /* [retval][out] */ BSTR *anIdentifier);
+    
+    virtual HRESULT STDMETHODCALLTYPE setHostWindow( 
+        /* [in] */ OLE_HANDLE window);
+    
+    virtual HRESULT STDMETHODCALLTYPE hostWindow( 
+        /* [retval][out] */ OLE_HANDLE *window);
+    
+    virtual HRESULT STDMETHODCALLTYPE searchFor( 
+        /* [in] */ BSTR str,
+        /* [in] */ BOOL forward,
+        /* [in] */ BOOL caseFlag,
+        /* [in] */ BOOL wrapFlag,
+        /* [retval][out] */ BOOL *found);
+    
+    virtual HRESULT STDMETHODCALLTYPE registerViewClass( 
+        /* [in] */ IWebDocumentView *view,
+        /* [in] */ IWebDocumentRepresentation *representation,
+        /* [in] */ BSTR forMIMEType);
+
+    virtual HRESULT STDMETHODCALLTYPE setGroupName( 
+        /* [in] */ BSTR groupName);
+    
+    virtual HRESULT STDMETHODCALLTYPE groupName( 
+        /* [retval][out] */ BSTR *groupName);
+    
+    virtual HRESULT STDMETHODCALLTYPE estimatedProgress( 
+        /* [retval][out] */ double *estimatedProgress);
+    
+    virtual HRESULT STDMETHODCALLTYPE isLoading( 
+        /* [retval][out] */ BOOL *isLoading);
+    
+    virtual HRESULT STDMETHODCALLTYPE elementAtPoint( 
+        /* [in] */ LPPOINT point,
+        /* [retval][out] */ IPropertyBag **elementDictionary);
+    
+    virtual HRESULT STDMETHODCALLTYPE pasteboardTypesForSelection( 
+        /* [retval][out] */ IEnumVARIANT **enumVariant);
+    
+    virtual HRESULT STDMETHODCALLTYPE writeSelectionWithPasteboardTypes( 
+        /* [size_is][in] */ BSTR *types,
+        /* [in] */ int cTypes,
+        /* [in] */ IDataObject *pasteboard);
+    
+    virtual HRESULT STDMETHODCALLTYPE pasteboardTypesForElement( 
+        /* [in] */ IPropertyBag *elementDictionary,
+        /* [retval][out] */ IEnumVARIANT **enumVariant);
+    
+    virtual HRESULT STDMETHODCALLTYPE writeElement( 
+        /* [in] */ IPropertyBag *elementDictionary,
+        /* [size_is][in] */ BSTR *withPasteboardTypes,
+        /* [in] */ int cWithPasteboardTypes,
+        /* [in] */ IDataObject *pasteboard);
+    
+    virtual HRESULT STDMETHODCALLTYPE selectedText(
+        /* [out, retval] */ BSTR* str);
+
+    virtual HRESULT STDMETHODCALLTYPE centerSelectionInVisibleArea(
+        /* [in] */ IUnknown* sender);
+
+    virtual HRESULT STDMETHODCALLTYPE moveDragCaretToPoint( 
+        /* [in] */ LPPOINT point);
+    
+    virtual HRESULT STDMETHODCALLTYPE removeDragCaret( void);
+    
+    virtual HRESULT STDMETHODCALLTYPE setDrawsBackground( 
+        /* [in] */ BOOL drawsBackground);
+    
+    virtual HRESULT STDMETHODCALLTYPE drawsBackground( 
+        /* [retval][out] */ BOOL *drawsBackground);
+    
+    virtual HRESULT STDMETHODCALLTYPE setMainFrameURL( 
+        /* [in] */ BSTR urlString);
+    
+    virtual HRESULT STDMETHODCALLTYPE mainFrameURL( 
+        /* [retval][out] */ BSTR *urlString);
+    
+    virtual HRESULT STDMETHODCALLTYPE mainFrameDocument( 
+        /* [retval][out] */ IDOMDocument **document);
+    
+    virtual HRESULT STDMETHODCALLTYPE mainFrameTitle( 
+        /* [retval][out] */ BSTR *title);
+    
+    virtual HRESULT STDMETHODCALLTYPE mainFrameIcon( 
+        /* [retval][out] */ OLE_HANDLE *hBitmap);
+
+    virtual HRESULT STDMETHODCALLTYPE registerURLSchemeAsLocal( 
+        /* [in] */ BSTR scheme);
+
+    virtual HRESULT STDMETHODCALLTYPE close();
+
+    // IWebIBActions
+
+    virtual HRESULT STDMETHODCALLTYPE takeStringURLFrom( 
+        /* [in] */ IUnknown *sender);
+    
+    virtual HRESULT STDMETHODCALLTYPE stopLoading( 
+        /* [in] */ IUnknown *sender);
+    
+    virtual HRESULT STDMETHODCALLTYPE reload( 
+        /* [in] */ IUnknown *sender);
+    
+    virtual HRESULT STDMETHODCALLTYPE canGoBack( 
+        /* [in] */ IUnknown *sender,
+        /* [retval][out] */ BOOL *result);
+    
+    virtual HRESULT STDMETHODCALLTYPE goBack( 
+        /* [in] */ IUnknown *sender);
+    
+    virtual HRESULT STDMETHODCALLTYPE canGoForward( 
+        /* [in] */ IUnknown *sender,
+        /* [retval][out] */ BOOL *result);
+    
+    virtual HRESULT STDMETHODCALLTYPE goForward( 
+        /* [in] */ IUnknown *sender);
+    
+    virtual HRESULT STDMETHODCALLTYPE canMakeTextLarger( 
+        /* [in] */ IUnknown *sender,
+        /* [retval][out] */ BOOL *result);
+    
+    virtual HRESULT STDMETHODCALLTYPE makeTextLarger( 
+        /* [in] */ IUnknown *sender);
+    
+    virtual HRESULT STDMETHODCALLTYPE canMakeTextSmaller( 
+        /* [in] */ IUnknown *sender,
+        /* [retval][out] */ BOOL *result);
+    
+    virtual HRESULT STDMETHODCALLTYPE makeTextSmaller( 
+        /* [in] */ IUnknown *sender);
+
+    virtual HRESULT STDMETHODCALLTYPE canMakeTextStandardSize( 
+        /* [in] */ IUnknown *sender,
+        /* [retval][out] */ BOOL *result);
+    
+    virtual HRESULT STDMETHODCALLTYPE makeTextStandardSize( 
+        /* [in] */ IUnknown *sender);
+    
+    virtual HRESULT STDMETHODCALLTYPE toggleContinuousSpellChecking( 
+        /* [in] */ IUnknown *sender);
+    
+    virtual HRESULT STDMETHODCALLTYPE toggleSmartInsertDelete( 
+        /* [in] */ IUnknown *sender);
+
+    virtual HRESULT STDMETHODCALLTYPE toggleGrammarChecking( 
+        /* [in] */ IUnknown *sender);
+
+    virtual HRESULT STDMETHODCALLTYPE reloadFromOrigin( 
+        /* [in] */ IUnknown *sender);
+
+    // IWebViewCSS
+
+    virtual HRESULT STDMETHODCALLTYPE computedStyleForElement( 
+        /* [in] */ IDOMElement *element,
+        /* [in] */ BSTR pseudoElement,
+        /* [retval][out] */ IDOMCSSStyleDeclaration **style);
+
+    // IWebViewEditing
+
+    virtual HRESULT STDMETHODCALLTYPE editableDOMRangeForPoint( 
+        /* [in] */ LPPOINT point,
+        /* [retval][out] */ IDOMRange **range);
+    
+    virtual HRESULT STDMETHODCALLTYPE setSelectedDOMRange( 
+        /* [in] */ IDOMRange *range,
+        /* [in] */ WebSelectionAffinity affinity);
+    
+    virtual HRESULT STDMETHODCALLTYPE selectedDOMRange( 
+        /* [retval][out] */ IDOMRange **range);
+    
+    virtual HRESULT STDMETHODCALLTYPE selectionAffinity( 
+        /* [retval][out][retval][out] */ WebSelectionAffinity *affinity);
+    
+    virtual HRESULT STDMETHODCALLTYPE setEditable( 
+        /* [in] */ BOOL flag);
+    
+    virtual HRESULT STDMETHODCALLTYPE isEditable( 
+        /* [retval][out] */ BOOL *isEditable);
+    
+    virtual HRESULT STDMETHODCALLTYPE setTypingStyle( 
+        /* [in] */ IDOMCSSStyleDeclaration *style);
+    
+    virtual HRESULT STDMETHODCALLTYPE typingStyle( 
+        /* [retval][out] */ IDOMCSSStyleDeclaration **style);
+    
+    virtual HRESULT STDMETHODCALLTYPE setSmartInsertDeleteEnabled( 
+        /* [in] */ BOOL flag);
+    
+    virtual HRESULT STDMETHODCALLTYPE smartInsertDeleteEnabled( 
+        /* [in] */ BOOL *enabled);
+
+    virtual HRESULT STDMETHODCALLTYPE setSelectTrailingWhitespaceEnabled( 
+        /* [in] */ BOOL flag);
+    
+    virtual HRESULT STDMETHODCALLTYPE isSelectTrailingWhitespaceEnabled( 
+        /* [in] */ BOOL *enabled);
+
+    virtual HRESULT STDMETHODCALLTYPE setContinuousSpellCheckingEnabled( 
+        /* [in] */ BOOL flag);
+    
+    virtual HRESULT STDMETHODCALLTYPE isContinuousSpellCheckingEnabled( 
+        /* [retval][out] */ BOOL *enabled);
+    
+    virtual HRESULT STDMETHODCALLTYPE spellCheckerDocumentTag( 
+        /* [retval][out] */ int *tag);
+    
+    virtual HRESULT STDMETHODCALLTYPE undoManager( 
+        /* [retval][out] */ IWebUndoManager **manager);
+    
+    virtual HRESULT STDMETHODCALLTYPE setEditingDelegate( 
+        /* [in] */ IWebEditingDelegate *d);
+    
+    virtual HRESULT STDMETHODCALLTYPE editingDelegate( 
+        /* [retval][out] */ IWebEditingDelegate **d);
+    
+    virtual HRESULT STDMETHODCALLTYPE styleDeclarationWithText( 
+        /* [in] */ BSTR text,
+        /* [retval][out] */ IDOMCSSStyleDeclaration **style);
+    
+    virtual HRESULT STDMETHODCALLTYPE hasSelectedRange( 
+        /* [retval][out] */ BOOL *hasSelectedRange);
+    
+    virtual HRESULT STDMETHODCALLTYPE cutEnabled( 
+        /* [retval][out] */ BOOL *enabled);
+    
+    virtual HRESULT STDMETHODCALLTYPE copyEnabled( 
+        /* [retval][out] */ BOOL *enabled);
+    
+    virtual HRESULT STDMETHODCALLTYPE pasteEnabled( 
+        /* [retval][out] */ BOOL *enabled);
+    
+    virtual HRESULT STDMETHODCALLTYPE deleteEnabled( 
+        /* [retval][out] */ BOOL *enabled);
+
+    virtual HRESULT STDMETHODCALLTYPE editingEnabled( 
+        /* [retval][out] */ BOOL *enabled);
+
+    virtual HRESULT STDMETHODCALLTYPE isGrammarCheckingEnabled( 
+        /* [retval][out] */ BOOL *enabled);
+    
+    virtual HRESULT STDMETHODCALLTYPE setGrammarCheckingEnabled( 
+        BOOL enabled);
+
+    virtual HRESULT STDMETHODCALLTYPE setPageSizeMultiplier( 
+        /* [in] */ float multiplier);
+    
+    virtual HRESULT STDMETHODCALLTYPE pageSizeMultiplier( 
+        /* [retval][out] */ float *multiplier);
+
+    virtual HRESULT STDMETHODCALLTYPE canZoomPageIn( 
+        /* [in] */ IUnknown *sender,
+        /* [retval][out] */ BOOL *result);
+    
+    virtual HRESULT STDMETHODCALLTYPE zoomPageIn( 
+        /* [in] */ IUnknown *sender);
+    
+    virtual HRESULT STDMETHODCALLTYPE canZoomPageOut( 
+        /* [in] */ IUnknown *sender,
+        /* [retval][out] */ BOOL *result);
+    
+    virtual HRESULT STDMETHODCALLTYPE zoomPageOut( 
+        /* [in] */ IUnknown *sender);
+
+    virtual HRESULT STDMETHODCALLTYPE canResetPageZoom( 
+        /* [in] */ IUnknown *sender,
+        /* [retval][out] */ BOOL *result);
+    
+    virtual HRESULT STDMETHODCALLTYPE resetPageZoom( 
+        /* [in] */ IUnknown *sender);
+
+    // IWebViewUndoableEditing
+
+    virtual HRESULT STDMETHODCALLTYPE replaceSelectionWithNode( 
+        /* [in] */ IDOMNode *node);
+    
+    virtual HRESULT STDMETHODCALLTYPE replaceSelectionWithText( 
+        /* [in] */ BSTR text);
+    
+    virtual HRESULT STDMETHODCALLTYPE replaceSelectionWithMarkupString( 
+        /* [in] */ BSTR markupString);
+    
+    virtual HRESULT STDMETHODCALLTYPE replaceSelectionWithArchive( 
+        /* [in] */ IWebArchive *archive);
+    
+    virtual HRESULT STDMETHODCALLTYPE deleteSelection( void);
+
+    virtual HRESULT STDMETHODCALLTYPE clearSelection(void);
+    
+    virtual HRESULT STDMETHODCALLTYPE applyStyle( 
+        /* [in] */ IDOMCSSStyleDeclaration *style);
+
+    // IWebViewEditingActions
+
+    virtual HRESULT STDMETHODCALLTYPE copy( 
+        /* [in] */ IUnknown *sender);
+    
+    virtual HRESULT STDMETHODCALLTYPE cut( 
+        /* [in] */ IUnknown *sender);
+    
+    virtual HRESULT STDMETHODCALLTYPE paste( 
+        /* [in] */ IUnknown *sender);
+    
+    virtual HRESULT STDMETHODCALLTYPE copyURL( 
+        /* [in] */ BSTR url);
+
+    virtual HRESULT STDMETHODCALLTYPE copyFont( 
+        /* [in] */ IUnknown *sender);
+    
+    virtual HRESULT STDMETHODCALLTYPE pasteFont( 
+        /* [in] */ IUnknown *sender);
+    
+    virtual HRESULT STDMETHODCALLTYPE delete_( 
+        /* [in] */ IUnknown *sender);
+    
+    virtual HRESULT STDMETHODCALLTYPE pasteAsPlainText( 
+        /* [in] */ IUnknown *sender);
+    
+    virtual HRESULT STDMETHODCALLTYPE pasteAsRichText( 
+        /* [in] */ IUnknown *sender);
+    
+    virtual HRESULT STDMETHODCALLTYPE changeFont( 
+        /* [in] */ IUnknown *sender);
+    
+    virtual HRESULT STDMETHODCALLTYPE changeAttributes( 
+        /* [in] */ IUnknown *sender);
+    
+    virtual HRESULT STDMETHODCALLTYPE changeDocumentBackgroundColor( 
+        /* [in] */ IUnknown *sender);
+    
+    virtual HRESULT STDMETHODCALLTYPE changeColor( 
+        /* [in] */ IUnknown *sender);
+    
+    virtual HRESULT STDMETHODCALLTYPE alignCenter( 
+        /* [in] */ IUnknown *sender);
+    
+    virtual HRESULT STDMETHODCALLTYPE alignJustified( 
+        /* [in] */ IUnknown *sender);
+    
+    virtual HRESULT STDMETHODCALLTYPE alignLeft( 
+        /* [in] */ IUnknown *sender);
+    
+    virtual HRESULT STDMETHODCALLTYPE alignRight( 
+        /* [in] */ IUnknown *sender);
+    
+    virtual HRESULT STDMETHODCALLTYPE checkSpelling( 
+        /* [in] */ IUnknown *sender);
+    
+    virtual HRESULT STDMETHODCALLTYPE showGuessPanel( 
+        /* [in] */ IUnknown *sender);
+    
+    virtual HRESULT STDMETHODCALLTYPE performFindPanelAction( 
+        /* [in] */ IUnknown *sender);
+    
+    virtual HRESULT STDMETHODCALLTYPE startSpeaking( 
+        /* [in] */ IUnknown *sender);
+    
+    virtual HRESULT STDMETHODCALLTYPE stopSpeaking( 
+        /* [in] */ IUnknown *sender);
+
+    // IWebNotificationObserver
+
+    virtual HRESULT STDMETHODCALLTYPE onNotify( 
+        /* [in] */ IWebNotification *notification);
+
+    // IWebViewPrivate
+
+    virtual HRESULT STDMETHODCALLTYPE MIMETypeForExtension(
+        /* [in] */ BSTR extension,
+        /* [retval][out] */ BSTR *mimeType);
+
+    virtual HRESULT STDMETHODCALLTYPE setCustomDropTarget(
+        /* [in] */ IDropTarget* dt);
+
+    virtual HRESULT STDMETHODCALLTYPE removeCustomDropTarget();
+
+    virtual HRESULT STDMETHODCALLTYPE setInViewSourceMode( 
+        /* [in] */ BOOL flag);
+    
+    virtual HRESULT STDMETHODCALLTYPE inViewSourceMode( 
+        /* [retval][out] */ BOOL* flag);
+
+    virtual HRESULT STDMETHODCALLTYPE viewWindow( 
+        /* [retval][out] */ OLE_HANDLE *window);
+
+    virtual HRESULT STDMETHODCALLTYPE setFormDelegate( 
+        /* [in] */ IWebFormDelegate *formDelegate);
+
+    virtual HRESULT STDMETHODCALLTYPE formDelegate( 
+        /* [retval][out] */ IWebFormDelegate **formDelegate);
+
+    virtual HRESULT STDMETHODCALLTYPE setFrameLoadDelegatePrivate( 
+        /* [in] */ IWebFrameLoadDelegatePrivate *frameLoadDelegatePrivate);
+
+    virtual HRESULT STDMETHODCALLTYPE frameLoadDelegatePrivate( 
+        /* [retval][out] */ IWebFrameLoadDelegatePrivate **frameLoadDelegatePrivate);
+
+    virtual HRESULT STDMETHODCALLTYPE scrollOffset( 
+        /* [retval][out] */ LPPOINT offset);
+
+    virtual HRESULT STDMETHODCALLTYPE scrollBy( 
+        /* [in] */ LPPOINT offset);
+
+    virtual HRESULT STDMETHODCALLTYPE visibleContentRect( 
+        /* [retval][out] */ LPRECT rect);
+
+    virtual HRESULT STDMETHODCALLTYPE updateFocusedAndActiveState();
+
+    virtual HRESULT STDMETHODCALLTYPE executeCoreCommandByName(BSTR name, BSTR value);
+
+    virtual HRESULT STDMETHODCALLTYPE clearMainFrameName();
+
+    virtual HRESULT STDMETHODCALLTYPE markAllMatchesForText(
+        BSTR search, BOOL caseSensitive, BOOL highlight, UINT limit, UINT* matches);
+
+    virtual HRESULT STDMETHODCALLTYPE unmarkAllTextMatches();
+
+    virtual HRESULT STDMETHODCALLTYPE rectsForTextMatches(
+        IEnumTextMatches** pmatches);
+
+    virtual HRESULT STDMETHODCALLTYPE generateSelectionImage(
+        BOOL forceWhiteText, OLE_HANDLE* hBitmap);
+
+    virtual HRESULT STDMETHODCALLTYPE selectionRect(
+        RECT* rc);
+    
+    virtual HRESULT STDMETHODCALLTYPE DragEnter(
+        IDataObject* pDataObject, DWORD grfKeyState, POINTL pt, DWORD* pdwEffect);
+
+    virtual HRESULT STDMETHODCALLTYPE DragOver(
+        DWORD grfKeyState, POINTL pt, DWORD* pdwEffect);
+    
+    virtual HRESULT STDMETHODCALLTYPE DragLeave();
+    
+    virtual HRESULT STDMETHODCALLTYPE Drop(
+        IDataObject* pDataObject, DWORD grfKeyState, POINTL pt, DWORD* pdwEffect);
+
+    virtual HRESULT STDMETHODCALLTYPE canHandleRequest( 
+        IWebURLRequest *request,
+        BOOL *result);
+
+    virtual HRESULT STDMETHODCALLTYPE standardUserAgentWithApplicationName( 
+        /* [in] */ BSTR applicationName,
+        /* [retval][out] */ BSTR *groupName);
+
+    virtual HRESULT STDMETHODCALLTYPE clearFocusNode();
+
+    virtual HRESULT STDMETHODCALLTYPE setInitialFocus(
+        /* [in] */ BOOL forward);
+    
+    virtual HRESULT STDMETHODCALLTYPE setTabKeyCyclesThroughElements( 
+        /* [in] */ BOOL cycles);
+    
+    virtual HRESULT STDMETHODCALLTYPE tabKeyCyclesThroughElements( 
+        /* [retval][out] */ BOOL *result);
+
+    virtual HRESULT STDMETHODCALLTYPE setAllowSiteSpecificHacks(
+        /* [in] */ BOOL allows);
+
+    virtual HRESULT STDMETHODCALLTYPE addAdditionalPluginDirectory( 
+        /* [in] */ BSTR directory);    
+
+    virtual HRESULT STDMETHODCALLTYPE loadBackForwardListFromOtherView( 
+        /* [in] */ IWebView *otherView);
+
+    virtual HRESULT STDMETHODCALLTYPE inspector(
+        /* [retval][out] */ IWebInspector**);
+
+    virtual HRESULT STDMETHODCALLTYPE clearUndoRedoOperations( void);
+    virtual HRESULT STDMETHODCALLTYPE shouldClose( 
+        /* [retval][out] */ BOOL* result);
+
+    virtual HRESULT STDMETHODCALLTYPE setProhibitsMainFrameScrolling(BOOL);
+    virtual HRESULT STDMETHODCALLTYPE setShouldApplyMacFontAscentHack(BOOL);
+
+    virtual HRESULT STDMETHODCALLTYPE windowAncestryDidChange();
+
+    virtual HRESULT STDMETHODCALLTYPE paintDocumentRectToContext(
+        /* [in] */ RECT rect,
+        /* [in] */ OLE_HANDLE dc);
+
+    virtual HRESULT STDMETHODCALLTYPE paintScrollViewRectToContextAtPoint(
+        /* [in] */ RECT rect,
+        /* [in] */ POINT pt,
+        /* [in] */ OLE_HANDLE dc);
+
+    virtual HRESULT STDMETHODCALLTYPE reportException(
+        /* [in] */ JSContextRef context,
+        /* [in] */ JSValueRef exception);
+
+    virtual HRESULT STDMETHODCALLTYPE elementFromJS(
+        /* [in] */ JSContextRef context,
+        /* [in] */ JSValueRef nodeObject,
+        /* [retval][out] */ IDOMElement **element);
+
+    virtual HRESULT STDMETHODCALLTYPE setCustomHTMLTokenizerTimeDelay(
+        /* [in] */ double timeDelay);
+
+    virtual HRESULT STDMETHODCALLTYPE setCustomHTMLTokenizerChunkSize(
+        /* [in] */ int chunkSize);
+
+    virtual HRESULT STDMETHODCALLTYPE backingStore(
+        /* [out, retval] */ OLE_HANDLE* hBitmap);
+
+    virtual HRESULT STDMETHODCALLTYPE setTransparent(
+        /* [in] */ BOOL transparent);
+
+    virtual HRESULT STDMETHODCALLTYPE transparent(
+        /* [out, retval] */ BOOL* transparent);
+
+    virtual HRESULT STDMETHODCALLTYPE setDefersCallbacks(
+        /* [in] */ BOOL defersCallbacks);
+
+    virtual HRESULT STDMETHODCALLTYPE defersCallbacks(
+        /* [out, retval] */ BOOL* defersCallbacks);
+
+    virtual HRESULT STDMETHODCALLTYPE globalHistoryItem(
+        /* [out, retval] */ IWebHistoryItem** item);
+
+    virtual HRESULT STDMETHODCALLTYPE setAlwaysUsesComplexTextCodePath(
+        /* [in] */ BOOL complex);
+
+    virtual HRESULT STDMETHODCALLTYPE alwaysUsesComplexTextCodePath(
+        /* [out, retval] */ BOOL* complex);
+
+    virtual HRESULT STDMETHODCALLTYPE setCookieEnabled(
+        /* [in] */ BOOL enable);
+
+    virtual HRESULT STDMETHODCALLTYPE cookieEnabled(
+        /* [out, retval] */ BOOL* enabled);
+
+    virtual HRESULT STDMETHODCALLTYPE setMediaVolume(
+        /* [in] */ float volume);
+
+    virtual HRESULT STDMETHODCALLTYPE mediaVolume(
+        /* [out, retval] */ float* volume);
+
+    virtual HRESULT STDMETHODCALLTYPE registerEmbeddedViewMIMEType( 
+        /* [in] */ BSTR mimeType);
+
+    virtual HRESULT STDMETHODCALLTYPE setMemoryCacheDelegateCallsEnabled( 
+        /* [in] */ BOOL enabled);
+
+    virtual HRESULT STDMETHODCALLTYPE setJavaScriptURLsAreAllowed(
+        /* [in] */ BOOL areAllowed);
+
+    virtual HRESULT STDMETHODCALLTYPE setCanStartPlugins(
+        /* [in] */ BOOL canStartPlugins);
+
+    virtual HRESULT STDMETHODCALLTYPE addUserScriptToGroup(BSTR groupName, IWebScriptWorld*, BSTR source, BSTR url,
+                                                           unsigned whitelistCount, BSTR* whitelist, 
+                                                           unsigned blacklistCount, BSTR* blacklist,
+                                                           WebUserScriptInjectionTime);
+    virtual HRESULT STDMETHODCALLTYPE addUserStyleSheetToGroup(BSTR groupName, IWebScriptWorld*, BSTR source, BSTR url,
+                                                               unsigned whitelistCount, BSTR* whitelist, 
+                                                               unsigned blacklistCount, BSTR* blacklist);
+    virtual HRESULT STDMETHODCALLTYPE removeUserScriptFromGroup(BSTR groupName, IWebScriptWorld*, BSTR url);
+    virtual HRESULT STDMETHODCALLTYPE removeUserStyleSheetFromGroup(BSTR groupName, IWebScriptWorld*, BSTR url);
+    virtual HRESULT STDMETHODCALLTYPE removeUserScriptsFromGroup(BSTR groupName, IWebScriptWorld*);
+    virtual HRESULT STDMETHODCALLTYPE removeUserStyleSheetsFromGroup(BSTR groupName, IWebScriptWorld*);
+    virtual HRESULT STDMETHODCALLTYPE removeAllUserContentFromGroup(BSTR groupName);
+
+    virtual HRESULT STDMETHODCALLTYPE setPluginHalterDelegate(IWebPluginHalterDelegate*);
+    virtual HRESULT STDMETHODCALLTYPE pluginHalterDelegate(IWebPluginHalterDelegate**);
+
+    virtual HRESULT STDMETHODCALLTYPE invalidateBackingStore(const RECT*);
+
+    virtual HRESULT STDMETHODCALLTYPE addOriginAccessWhitelistEntry(BSTR sourceOrigin, BSTR destinationProtocol, BSTR destinationHost, BOOL allowDestinationSubdomains);
+    virtual HRESULT STDMETHODCALLTYPE removeOriginAccessWhitelistEntry(BSTR sourceOrigin, BSTR destinationProtocol, BSTR destinationHost, BOOL allowDestinationSubdomains);
+    virtual HRESULT STDMETHODCALLTYPE resetOriginAccessWhitelists();
+
+    virtual HRESULT STDMETHODCALLTYPE setHistoryDelegate(IWebHistoryDelegate* historyDelegate);
+    virtual HRESULT STDMETHODCALLTYPE historyDelegate(IWebHistoryDelegate** historyDelegate);
+    virtual HRESULT STDMETHODCALLTYPE addVisitedLinks(BSTR* visitedURLs, unsigned visitedURLCount);
+
+    virtual HRESULT STDMETHODCALLTYPE isNodeHaltedPlugin(IDOMNode*, BOOL*);
+    virtual HRESULT STDMETHODCALLTYPE restartHaltedPluginForNode(IDOMNode*);
+    virtual HRESULT STDMETHODCALLTYPE hasPluginForNodeBeenHalted(IDOMNode*, BOOL*);
+
+    virtual HRESULT STDMETHODCALLTYPE setGeolocationProvider(IWebGeolocationProvider* locationProvider);
+    virtual HRESULT STDMETHODCALLTYPE geolocationProvider(IWebGeolocationProvider** locationProvider);
+    virtual HRESULT STDMETHODCALLTYPE geolocationDidChangePosition(IWebGeolocationPosition* position);
+    virtual HRESULT STDMETHODCALLTYPE geolocationDidFailWithError(IWebError* error);
+
+    virtual HRESULT STDMETHODCALLTYPE setDomainRelaxationForbiddenForURLScheme(BOOL forbidden, BSTR scheme);
+    virtual HRESULT STDMETHODCALLTYPE registerURLSchemeAsSecure(BSTR);
+
+    virtual HRESULT STDMETHODCALLTYPE nextDisplayIsSynchronous();
+
+    // WebView
+    bool shouldUseEmbeddedView(const WebCore::String& mimeType) const;
+
+    WebCore::Page* page();
+    bool handleMouseEvent(UINT, WPARAM, LPARAM);
+    void setMouseActivated(bool flag) { m_mouseActivated = flag; }
+    bool handleContextMenuEvent(WPARAM, LPARAM);
+    bool onMeasureItem(WPARAM, LPARAM);
+    bool onDrawItem(WPARAM, LPARAM);
+    bool onInitMenuPopup(WPARAM, LPARAM);
+    bool onUninitMenuPopup(WPARAM, LPARAM);
+    void performContextMenuAction(WPARAM, LPARAM, bool byPosition);
+    bool mouseWheel(WPARAM, LPARAM, bool isMouseHWheel);
+    bool verticalScroll(WPARAM, LPARAM);
+    bool horizontalScroll(WPARAM, LPARAM);
+    bool gesture(WPARAM, LPARAM);
+    bool gestureNotify(WPARAM, LPARAM);
+    bool execCommand(WPARAM wParam, LPARAM lParam);
+    bool keyDown(WPARAM, LPARAM, bool systemKeyDown = false);
+    bool keyUp(WPARAM, LPARAM, bool systemKeyDown = false);
+    bool keyPress(WPARAM, LPARAM, bool systemKeyDown = false);
+    void paint(HDC, LPARAM);
+    void paintIntoWindow(HDC bitmapDC, HDC windowDC, const WebCore::IntRect& dirtyRect);
+    bool ensureBackingStore();
+    void addToDirtyRegion(const WebCore::IntRect&);
+    void addToDirtyRegion(HRGN);
+    void scrollBackingStore(WebCore::FrameView*, int dx, int dy, const WebCore::IntRect& scrollViewRect, const WebCore::IntRect& clipRect);
+    void deleteBackingStore();
+    void repaint(const WebCore::IntRect&, bool contentChanged, bool immediate = false, bool repaintContentOnly = false);
+    void frameRect(RECT* rect);
+    void closeWindow();
+    void closeWindowSoon();
+    void closeWindowTimerFired();
+    bool didClose() const { return m_didClose; }
+
+    bool transparent() const { return m_transparent; }
+
+    bool onIMEStartComposition();
+    bool onIMEComposition(LPARAM);
+    bool onIMEEndComposition();
+    bool onIMEChar(WPARAM, LPARAM);
+    bool onIMENotify(WPARAM, LPARAM, LRESULT*);
+    LRESULT onIMERequest(WPARAM, LPARAM);
+    bool onIMESelect(WPARAM, LPARAM);
+    bool onIMESetContext(WPARAM, LPARAM);
+    void selectionChanged();
+    void resetIME(WebCore::Frame*);
+    void setInputMethodState(bool);
+
+    HRESULT registerDragDrop();
+    HRESULT revokeDragDrop();
+
+    // Convenient to be able to violate the rules of COM here for easy movement to the frame.
+    WebFrame* topLevelFrame() const { return m_mainFrame; }
+    const WebCore::String& userAgentForKURL(const WebCore::KURL& url);
+
+    static bool canHandleRequest(const WebCore::ResourceRequest&);
+
+    static WebCore::String standardUserAgentWithApplicationName(const WebCore::String&);
+
+    void setIsBeingDestroyed() { m_isBeingDestroyed = true; }
+    bool isBeingDestroyed() const { return m_isBeingDestroyed; }
+
+    const char* interpretKeyEvent(const WebCore::KeyboardEvent*);
+    bool handleEditingKeyboardEvent(WebCore::KeyboardEvent*);
+
+    bool isPainting() const { return m_paintCount > 0; }
+
+    void setToolTip(const WebCore::String&);
+
+    void registerForIconNotification(bool listen);
+    void dispatchDidReceiveIconFromWebFrame(WebFrame*);
+
+    HRESULT notifyDidAddIcon(IWebNotification*);
+    HRESULT notifyPreferencesChanged(IWebNotification*);
+
+    static void setCacheModel(WebCacheModel);
+    static WebCacheModel cacheModel();
+    static bool didSetCacheModel();
+    static WebCacheModel maxCacheModelInAnyInstance();
+
+    void updateActiveStateSoon() const;
+    void deleteBackingStoreSoon();
+    void cancelDeleteBackingStoreSoon();
+
+    HWND topLevelParent() const { return m_topLevelParent; }
+    HWND viewWindow() const { return m_viewWindow; }
+
+    void updateActiveState();
+
+    bool onGetObject(WPARAM, LPARAM, LRESULT&) const;
+    static STDMETHODIMP AccessibleObjectFromWindow(HWND, DWORD objectID, REFIID, void** ppObject);
+
+    void downloadURL(const WebCore::KURL&);
+
+#if USE(ACCELERATED_COMPOSITING)
+    void setRootLayerNeedsDisplay() { if (m_layerRenderer) m_layerRenderer->setNeedsDisplay(); }
+    void setRootChildLayer(WebCore::WKCACFLayer* layer);
+#endif
+
+    void enterFullscreenForNode(WebCore::Node*);
+    void exitFullscreen();
+
+    void setLastCursor(HCURSOR cursor) { m_lastSetCursor = cursor; }
+
+private:
+    void setZoomMultiplier(float multiplier, bool isTextOnly);
+    float zoomMultiplier(bool isTextOnly);
+    bool canZoomIn(bool isTextOnly);
+    HRESULT zoomIn(bool isTextOnly);
+    bool canZoomOut(bool isTextOnly);
+    HRESULT zoomOut(bool isTextOnly);
+    bool canResetZoom(bool isTextOnly);
+    HRESULT resetZoom(bool isTextOnly);
+    bool active();
+
+    enum WindowsToPaint { PaintWebViewOnly, PaintWebViewAndChildren };
+    void paintIntoBackingStore(WebCore::FrameView*, HDC bitmapDC, const WebCore::IntRect& dirtyRect, WindowsToPaint);
+    void updateBackingStore(WebCore::FrameView*, HDC = 0, bool backingStoreCompletelyDirty = false, WindowsToPaint = PaintWebViewOnly);
+
+    WebCore::DragOperation keyStateToDragOperation(DWORD grfKeyState) const;
+
+    // FIXME: This variable is part of a workaround. The drop effect (pdwEffect) passed to Drop is incorrect. 
+    // We set this variable in DragEnter and DragOver so that it can be used in Drop to set the correct drop effect. 
+    // Thus, on return from DoDragDrop we have the correct pdwEffect for the drag-and-drop operation.
+    // (see https://bugs.webkit.org/show_bug.cgi?id=29264)
+    DWORD m_lastDropEffect;
+
+#if USE(ACCELERATED_COMPOSITING)
+    // WKCACFLayerRendererClient
+    virtual bool shouldRender() const;
+#endif
+
+protected:
+    static bool registerWebViewWindowClass();
+    static LRESULT CALLBACK WebViewWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
+
+    HIMC getIMMContext();
+    void releaseIMMContext(HIMC);
+    static bool allowSiteSpecificHacks() { return s_allowSiteSpecificHacks; } 
+    void preflightSpellChecker();
+    bool continuousCheckingAllowed();
+    void initializeToolTipWindow();
+    void prepareCandidateWindow(WebCore::Frame*, HIMC);
+    void updateSelectionForIME();
+    LRESULT onIMERequestCharPosition(WebCore::Frame*, IMECHARPOSITION*);
+    LRESULT onIMERequestReconvertString(WebCore::Frame*, RECONVERTSTRING*);
+    bool developerExtrasEnabled() const;
+
+    bool shouldInitializeTrackPointHack();
+
+    // AllWebViewSet functions
+    void addToAllWebViewsSet();
+    void removeFromAllWebViewsSet();
+
+    virtual void windowReceivedMessage(HWND, UINT message, WPARAM, LPARAM);
+
+    ULONG m_refCount;
+#if !ASSERT_DISABLED
+    bool m_deletionHasBegun;
+#endif
+    HWND m_hostWindow;
+    HWND m_viewWindow;
+    WebFrame* m_mainFrame;
+    WebCore::Page* m_page;
+    
+    RefPtr<RefCountedHBITMAP> m_backingStoreBitmap;
+    SIZE m_backingStoreSize;
+    RefPtr<RefCountedHRGN> m_backingStoreDirtyRegion;
+
+    COMPtr<IWebEditingDelegate> m_editingDelegate;
+    COMPtr<IWebFrameLoadDelegate> m_frameLoadDelegate;
+    COMPtr<IWebFrameLoadDelegatePrivate> m_frameLoadDelegatePrivate;
+    COMPtr<IWebUIDelegate> m_uiDelegate;
+    COMPtr<IWebUIDelegatePrivate> m_uiDelegatePrivate;
+    COMPtr<IWebFormDelegate> m_formDelegate;
+    COMPtr<IWebPolicyDelegate> m_policyDelegate;
+    COMPtr<IWebResourceLoadDelegate> m_resourceLoadDelegate;
+    COMPtr<IWebDownloadDelegate> m_downloadDelegate;
+    COMPtr<IWebHistoryDelegate> m_historyDelegate;
+    COMPtr<WebPreferences> m_preferences;
+    COMPtr<WebInspector> m_webInspector;
+    COMPtr<IWebPluginHalterDelegate> m_pluginHalterDelegate;
+    COMPtr<IWebGeolocationProvider> m_geolocationProvider;
+
+    bool m_userAgentOverridden;
+    bool m_useBackForwardList;
+    WebCore::String m_userAgentCustom;
+    WebCore::String m_userAgentStandard;
+    float m_zoomMultiplier;
+    WebCore::String m_overrideEncoding;
+    WebCore::String m_applicationName;
+    bool m_mouseActivated;
+    // WebCore dragging logic needs to be able to inspect the drag data
+    // this is updated in DragEnter/Leave/Drop
+    COMPtr<IDataObject> m_dragData;
+    COMPtr<IDropTargetHelper> m_dropTargetHelper;
+    UChar m_currentCharacterCode;
+    bool m_isBeingDestroyed;
+    unsigned m_paintCount;
+    bool m_hasSpellCheckerDocumentTag;
+    bool m_smartInsertDeleteEnabled;
+    bool m_selectTrailingWhitespaceEnabled;
+    bool m_didClose;
+    bool m_hasCustomDropTarget;
+    unsigned m_inIMEComposition;
+    HWND m_toolTipHwnd;
+    WebCore::String m_toolTip;
+    bool m_deleteBackingStoreTimerActive;
+
+    bool m_transparent;
+
+    static bool s_allowSiteSpecificHacks;
+
+    WebCore::SuspendableTimer* m_closeWindowTimer;
+    OwnPtr<TRACKMOUSEEVENT> m_mouseOutTracker;
+
+    HWND m_topLevelParent;
+
+    OwnPtr<HashSet<WebCore::String> > m_embeddedViewMIMETypes;
+
+    //Variables needed to store gesture information
+    RefPtr<WebCore::Node> m_gestureTargetNode;
+    long m_lastPanX;
+    long m_lastPanY;
+    long m_xOverpan;
+    long m_yOverpan;
+
+#if ENABLE(VIDEO)
+    OwnPtr<FullscreenVideoController> m_fullscreenController;
+#endif
+
+#if USE(ACCELERATED_COMPOSITING)
+    bool isAcceleratedCompositing() const { return m_isAcceleratedCompositing; }
+    void setAcceleratedCompositing(bool);
+    void updateRootLayerContents();
+    void resizeLayerRenderer() { m_layerRenderer->resize(); }
+    void layerRendererBecameVisible() { m_layerRenderer->createRenderer(); }
+
+    OwnPtr<WebCore::WKCACFLayerRenderer> m_layerRenderer;
+    bool m_isAcceleratedCompositing;
+#endif
+
+    bool m_nextDisplayIsSynchronous;
+
+    HCURSOR m_lastSetCursor;
+};
+
+#endif