--- /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