2 * Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011, 2012 Apple Inc. All rights reserved.
3 * Copyright (C) 2009, 2010, 2011 Appcelerator, Inc. All rights reserved.
4 * Copyright (C) 2011 Brent Fulgham. All rights reserved.
6 * Redistribution and use in source and binary forms, with or without
7 * modification, are permitted provided that the following conditions
9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer.
11 * 2. Redistributions in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in the
13 * documentation and/or other materials provided with the distribution.
15 * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
16 * EXPRESS OR IMPLIED WARRANTIES, INCfLUDING, BUT NOT LIMITED TO, THE
17 * IMPLIED WARRANTIES OF MERCHANTABIuLITY AND FITNESS FOR A PARTICULAR
18 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
19 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
20 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
21 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
22 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
23 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
25 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33 #include "WebPreferences.h"
34 #include <WebCore/COMPtr.h>
35 #include <WebCore/DragActions.h>
36 #include <WebCore/IntRect.h>
37 #include <WebCore/SharedGDIObject.h>
38 #include <WebCore/SuspendableTimer.h>
39 #include <WebCore/WindowMessageListener.h>
40 #include <wtf/HashSet.h>
41 #include <wtf/OwnPtr.h>
42 #include <wtf/RefPtr.h>
44 #if USE(ACCELERATED_COMPOSITING)
45 #include <WebCore/CACFLayerTreeHostClient.h>
46 #include <WebCore/GraphicsLayerClient.h>
49 #if ENABLE(FULLSCREEN_API)
50 #include <WebCore/FullScreenControllerClient.h>
54 #if USE(ACCELERATED_COMPOSITING)
55 class CACFLayerTreeHost;
57 class FullScreenController;
58 #if PLATFORM(WIN) && USE(AVFOUNDATION)
59 struct GraphicsDeviceAdapter;
67 class FullscreenVideoController;
68 class WebBackForwardList;
71 class WebInspectorClient;
73 WebView* kit(WebCore::Page*);
74 WebCore::Page* core(IWebView*);
76 interface IDropTargetHelper;
80 , public IWebViewPrivate
81 , public IWebIBActions
83 , public IWebViewEditing
84 , public IWebViewUndoableEditing
85 , public IWebViewEditingActions
86 , public IWebNotificationObserver
88 , WebCore::WindowMessageListener
89 #if USE(ACCELERATED_COMPOSITING)
90 , WebCore::GraphicsLayerClient
91 , WebCore::CACFLayerTreeHostClient
93 #if ENABLE(FULLSCREEN_API)
94 , WebCore::FullScreenControllerClient
98 static WebView* createInstance();
105 virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void** ppvObject);
106 virtual ULONG STDMETHODCALLTYPE AddRef(void);
107 virtual ULONG STDMETHODCALLTYPE Release(void);
111 virtual HRESULT STDMETHODCALLTYPE canShowMIMEType(
112 /* [in] */ BSTR mimeType,
113 /* [retval][out] */ BOOL *canShow);
115 virtual HRESULT STDMETHODCALLTYPE canShowMIMETypeAsHTML(
116 /* [in] */ BSTR mimeType,
117 /* [retval][out] */ BOOL *canShow);
119 virtual HRESULT STDMETHODCALLTYPE MIMETypesShownAsHTML(
120 /* [retval][out] */ IEnumVARIANT **enumVariant);
122 virtual HRESULT STDMETHODCALLTYPE setMIMETypesShownAsHTML(
123 /* [size_is][in] */ BSTR *mimeTypes,
124 /* [in] */ int cMimeTypes);
126 virtual HRESULT STDMETHODCALLTYPE URLFromPasteboard(
127 /* [in] */ IDataObject *pasteboard,
128 /* [retval][out] */ BSTR *url);
130 virtual HRESULT STDMETHODCALLTYPE URLTitleFromPasteboard(
131 /* [in] */ IDataObject *pasteboard,
132 /* [retval][out] */ BSTR *urlTitle);
134 virtual HRESULT STDMETHODCALLTYPE initWithFrame(
135 /* [in] */ RECT frame,
136 /* [in] */ BSTR frameName,
137 /* [in] */ BSTR groupName);
139 virtual HRESULT STDMETHODCALLTYPE setAccessibilityDelegate(
140 /* [in] */ IAccessibilityDelegate *d);
142 virtual HRESULT STDMETHODCALLTYPE accessibilityDelegate(
143 /* [out][retval] */ IAccessibilityDelegate **d);
145 virtual HRESULT STDMETHODCALLTYPE setUIDelegate(
146 /* [in] */ IWebUIDelegate *d);
148 virtual HRESULT STDMETHODCALLTYPE uiDelegate(
149 /* [out][retval] */ IWebUIDelegate **d);
151 virtual HRESULT STDMETHODCALLTYPE setResourceLoadDelegate(
152 /* [in] */ IWebResourceLoadDelegate *d);
154 virtual HRESULT STDMETHODCALLTYPE resourceLoadDelegate(
155 /* [out][retval] */ IWebResourceLoadDelegate **d);
157 virtual HRESULT STDMETHODCALLTYPE setDownloadDelegate(
158 /* [in] */ IWebDownloadDelegate *d);
160 virtual HRESULT STDMETHODCALLTYPE downloadDelegate(
161 /* [out][retval] */ IWebDownloadDelegate **d);
163 virtual HRESULT STDMETHODCALLTYPE setFrameLoadDelegate(
164 /* [in] */ IWebFrameLoadDelegate *d);
166 virtual HRESULT STDMETHODCALLTYPE frameLoadDelegate(
167 /* [out][retval] */ IWebFrameLoadDelegate **d);
169 virtual HRESULT STDMETHODCALLTYPE setPolicyDelegate(
170 /* [in] */ IWebPolicyDelegate *d);
172 virtual HRESULT STDMETHODCALLTYPE policyDelegate(
173 /* [out][retval] */ IWebPolicyDelegate **d);
175 virtual HRESULT STDMETHODCALLTYPE mainFrame(
176 /* [out][retval] */ IWebFrame **frame);
178 virtual HRESULT STDMETHODCALLTYPE focusedFrame(
179 /* [out][retval] */ IWebFrame **frame);
181 virtual HRESULT STDMETHODCALLTYPE backForwardList(
182 /* [out][retval] */ IWebBackForwardList **list);
184 virtual HRESULT STDMETHODCALLTYPE setMaintainsBackForwardList(
185 /* [in] */ BOOL flag);
187 virtual HRESULT STDMETHODCALLTYPE goBack(
188 /* [retval][out] */ BOOL *succeeded);
190 virtual HRESULT STDMETHODCALLTYPE goForward(
191 /* [retval][out] */ BOOL *succeeded);
193 virtual HRESULT STDMETHODCALLTYPE goToBackForwardItem(
194 /* [in] */ IWebHistoryItem *item,
195 /* [retval][out] */ BOOL *succeeded);
197 virtual HRESULT STDMETHODCALLTYPE setTextSizeMultiplier(
198 /* [in] */ float multiplier);
200 virtual HRESULT STDMETHODCALLTYPE textSizeMultiplier(
201 /* [retval][out] */ float *multiplier);
203 virtual HRESULT STDMETHODCALLTYPE setApplicationNameForUserAgent(
204 /* [in] */ BSTR applicationName);
206 virtual HRESULT STDMETHODCALLTYPE applicationNameForUserAgent(
207 /* [retval][out] */ BSTR *applicationName);
209 virtual HRESULT STDMETHODCALLTYPE setCustomUserAgent(
210 /* [in] */ BSTR userAgentString);
212 virtual HRESULT STDMETHODCALLTYPE customUserAgent(
213 /* [retval][out] */ BSTR *userAgentString);
215 virtual HRESULT STDMETHODCALLTYPE userAgentForURL(
217 /* [retval][out] */ BSTR *userAgent);
219 virtual HRESULT STDMETHODCALLTYPE supportsTextEncoding(
220 /* [retval][out] */ BOOL *supports);
222 virtual HRESULT STDMETHODCALLTYPE setCustomTextEncodingName(
223 /* [in] */ BSTR encodingName);
225 virtual HRESULT STDMETHODCALLTYPE customTextEncodingName(
226 /* [retval][out] */ BSTR *encodingName);
228 virtual HRESULT STDMETHODCALLTYPE setMediaStyle(
229 /* [in] */ BSTR media);
231 virtual HRESULT STDMETHODCALLTYPE mediaStyle(
232 /* [retval][out] */ BSTR *media);
234 virtual HRESULT STDMETHODCALLTYPE stringByEvaluatingJavaScriptFromString(
235 /* [in] */ BSTR script,
236 /* [retval][out] */ BSTR *result);
238 virtual HRESULT STDMETHODCALLTYPE windowScriptObject(
239 /* [retval][out] */ IWebScriptObject **webScriptObject);
241 virtual HRESULT STDMETHODCALLTYPE setPreferences(
242 /* [in] */ IWebPreferences *prefs);
244 virtual HRESULT STDMETHODCALLTYPE preferences(
245 /* [retval][out] */ IWebPreferences **prefs);
247 virtual HRESULT STDMETHODCALLTYPE setPreferencesIdentifier(
248 /* [in] */ BSTR anIdentifier);
250 virtual HRESULT STDMETHODCALLTYPE preferencesIdentifier(
251 /* [retval][out] */ BSTR *anIdentifier);
253 virtual HRESULT STDMETHODCALLTYPE setHostWindow(
254 /* [in] */ OLE_HANDLE window);
256 virtual HRESULT STDMETHODCALLTYPE hostWindow(
257 /* [retval][out] */ OLE_HANDLE *window);
259 virtual HRESULT STDMETHODCALLTYPE searchFor(
261 /* [in] */ BOOL forward,
262 /* [in] */ BOOL caseFlag,
263 /* [in] */ BOOL wrapFlag,
264 /* [retval][out] */ BOOL *found);
266 virtual HRESULT STDMETHODCALLTYPE registerViewClass(
267 /* [in] */ IWebDocumentView *view,
268 /* [in] */ IWebDocumentRepresentation *representation,
269 /* [in] */ BSTR forMIMEType);
271 virtual HRESULT STDMETHODCALLTYPE setGroupName(
272 /* [in] */ BSTR groupName);
274 virtual HRESULT STDMETHODCALLTYPE groupName(
275 /* [retval][out] */ BSTR *groupName);
277 virtual HRESULT STDMETHODCALLTYPE estimatedProgress(
278 /* [retval][out] */ double *estimatedProgress);
280 virtual HRESULT STDMETHODCALLTYPE isLoading(
281 /* [retval][out] */ BOOL *isLoading);
283 virtual HRESULT STDMETHODCALLTYPE elementAtPoint(
284 /* [in] */ LPPOINT point,
285 /* [retval][out] */ IPropertyBag **elementDictionary);
287 virtual HRESULT STDMETHODCALLTYPE pasteboardTypesForSelection(
288 /* [retval][out] */ IEnumVARIANT **enumVariant);
290 virtual HRESULT STDMETHODCALLTYPE writeSelectionWithPasteboardTypes(
291 /* [size_is][in] */ BSTR *types,
292 /* [in] */ int cTypes,
293 /* [in] */ IDataObject *pasteboard);
295 virtual HRESULT STDMETHODCALLTYPE pasteboardTypesForElement(
296 /* [in] */ IPropertyBag *elementDictionary,
297 /* [retval][out] */ IEnumVARIANT **enumVariant);
299 virtual HRESULT STDMETHODCALLTYPE writeElement(
300 /* [in] */ IPropertyBag *elementDictionary,
301 /* [size_is][in] */ BSTR *withPasteboardTypes,
302 /* [in] */ int cWithPasteboardTypes,
303 /* [in] */ IDataObject *pasteboard);
305 virtual HRESULT STDMETHODCALLTYPE selectedText(
306 /* [out, retval] */ BSTR* str);
308 virtual HRESULT STDMETHODCALLTYPE centerSelectionInVisibleArea(
309 /* [in] */ IUnknown* sender);
311 virtual HRESULT STDMETHODCALLTYPE moveDragCaretToPoint(
312 /* [in] */ LPPOINT point);
314 virtual HRESULT STDMETHODCALLTYPE removeDragCaret( void);
316 virtual HRESULT STDMETHODCALLTYPE setDrawsBackground(
317 /* [in] */ BOOL drawsBackground);
319 virtual HRESULT STDMETHODCALLTYPE drawsBackground(
320 /* [retval][out] */ BOOL *drawsBackground);
322 virtual HRESULT STDMETHODCALLTYPE setMainFrameURL(
323 /* [in] */ BSTR urlString);
325 virtual HRESULT STDMETHODCALLTYPE mainFrameURL(
326 /* [retval][out] */ BSTR *urlString);
328 virtual HRESULT STDMETHODCALLTYPE mainFrameDocument(
329 /* [retval][out] */ IDOMDocument **document);
331 virtual HRESULT STDMETHODCALLTYPE mainFrameTitle(
332 /* [retval][out] */ BSTR *title);
334 virtual HRESULT STDMETHODCALLTYPE mainFrameIcon(
335 /* [retval][out] */ OLE_HANDLE *hBitmap);
337 virtual HRESULT STDMETHODCALLTYPE registerURLSchemeAsLocal(
338 /* [in] */ BSTR scheme);
340 virtual HRESULT STDMETHODCALLTYPE close();
344 virtual HRESULT STDMETHODCALLTYPE takeStringURLFrom(
345 /* [in] */ IUnknown *sender);
347 virtual HRESULT STDMETHODCALLTYPE stopLoading(
348 /* [in] */ IUnknown *sender);
350 virtual HRESULT STDMETHODCALLTYPE reload(
351 /* [in] */ IUnknown *sender);
353 virtual HRESULT STDMETHODCALLTYPE canGoBack(
354 /* [in] */ IUnknown *sender,
355 /* [retval][out] */ BOOL *result);
357 virtual HRESULT STDMETHODCALLTYPE goBack(
358 /* [in] */ IUnknown *sender);
360 virtual HRESULT STDMETHODCALLTYPE canGoForward(
361 /* [in] */ IUnknown *sender,
362 /* [retval][out] */ BOOL *result);
364 virtual HRESULT STDMETHODCALLTYPE goForward(
365 /* [in] */ IUnknown *sender);
367 virtual HRESULT STDMETHODCALLTYPE canMakeTextLarger(
368 /* [in] */ IUnknown *sender,
369 /* [retval][out] */ BOOL *result);
371 virtual HRESULT STDMETHODCALLTYPE makeTextLarger(
372 /* [in] */ IUnknown *sender);
374 virtual HRESULT STDMETHODCALLTYPE canMakeTextSmaller(
375 /* [in] */ IUnknown *sender,
376 /* [retval][out] */ BOOL *result);
378 virtual HRESULT STDMETHODCALLTYPE makeTextSmaller(
379 /* [in] */ IUnknown *sender);
381 virtual HRESULT STDMETHODCALLTYPE canMakeTextStandardSize(
382 /* [in] */ IUnknown *sender,
383 /* [retval][out] */ BOOL *result);
385 virtual HRESULT STDMETHODCALLTYPE makeTextStandardSize(
386 /* [in] */ IUnknown *sender);
388 virtual HRESULT STDMETHODCALLTYPE toggleContinuousSpellChecking(
389 /* [in] */ IUnknown *sender);
391 virtual HRESULT STDMETHODCALLTYPE toggleSmartInsertDelete(
392 /* [in] */ IUnknown *sender);
394 virtual HRESULT STDMETHODCALLTYPE toggleGrammarChecking(
395 /* [in] */ IUnknown *sender);
397 virtual HRESULT STDMETHODCALLTYPE reloadFromOrigin(
398 /* [in] */ IUnknown *sender);
402 virtual HRESULT STDMETHODCALLTYPE computedStyleForElement(
403 /* [in] */ IDOMElement *element,
404 /* [in] */ BSTR pseudoElement,
405 /* [retval][out] */ IDOMCSSStyleDeclaration **style);
409 virtual HRESULT STDMETHODCALLTYPE editableDOMRangeForPoint(
410 /* [in] */ LPPOINT point,
411 /* [retval][out] */ IDOMRange **range);
413 virtual HRESULT STDMETHODCALLTYPE setSelectedDOMRange(
414 /* [in] */ IDOMRange *range,
415 /* [in] */ WebSelectionAffinity affinity);
417 virtual HRESULT STDMETHODCALLTYPE selectedDOMRange(
418 /* [retval][out] */ IDOMRange **range);
420 virtual HRESULT STDMETHODCALLTYPE selectionAffinity(
421 /* [retval][out][retval][out] */ WebSelectionAffinity *affinity);
423 virtual HRESULT STDMETHODCALLTYPE setEditable(
424 /* [in] */ BOOL flag);
426 virtual HRESULT STDMETHODCALLTYPE isEditable(
427 /* [retval][out] */ BOOL *isEditable);
429 virtual HRESULT STDMETHODCALLTYPE setTypingStyle(
430 /* [in] */ IDOMCSSStyleDeclaration *style);
432 virtual HRESULT STDMETHODCALLTYPE typingStyle(
433 /* [retval][out] */ IDOMCSSStyleDeclaration **style);
435 virtual HRESULT STDMETHODCALLTYPE setSmartInsertDeleteEnabled(
436 /* [in] */ BOOL flag);
438 virtual HRESULT STDMETHODCALLTYPE smartInsertDeleteEnabled(
439 /* [in] */ BOOL *enabled);
441 virtual HRESULT STDMETHODCALLTYPE setSelectTrailingWhitespaceEnabled(
442 /* [in] */ BOOL flag);
444 virtual HRESULT STDMETHODCALLTYPE isSelectTrailingWhitespaceEnabled(
445 /* [in] */ BOOL *enabled);
447 virtual HRESULT STDMETHODCALLTYPE setContinuousSpellCheckingEnabled(
448 /* [in] */ BOOL flag);
450 virtual HRESULT STDMETHODCALLTYPE isContinuousSpellCheckingEnabled(
451 /* [retval][out] */ BOOL *enabled);
453 virtual HRESULT STDMETHODCALLTYPE spellCheckerDocumentTag(
454 /* [retval][out] */ int *tag);
456 virtual HRESULT STDMETHODCALLTYPE undoManager(
457 /* [retval][out] */ IWebUndoManager **manager);
459 virtual HRESULT STDMETHODCALLTYPE setEditingDelegate(
460 /* [in] */ IWebEditingDelegate *d);
462 virtual HRESULT STDMETHODCALLTYPE editingDelegate(
463 /* [retval][out] */ IWebEditingDelegate **d);
465 virtual HRESULT STDMETHODCALLTYPE styleDeclarationWithText(
466 /* [in] */ BSTR text,
467 /* [retval][out] */ IDOMCSSStyleDeclaration **style);
469 virtual HRESULT STDMETHODCALLTYPE hasSelectedRange(
470 /* [retval][out] */ BOOL *hasSelectedRange);
472 virtual HRESULT STDMETHODCALLTYPE cutEnabled(
473 /* [retval][out] */ BOOL *enabled);
475 virtual HRESULT STDMETHODCALLTYPE copyEnabled(
476 /* [retval][out] */ BOOL *enabled);
478 virtual HRESULT STDMETHODCALLTYPE pasteEnabled(
479 /* [retval][out] */ BOOL *enabled);
481 virtual HRESULT STDMETHODCALLTYPE deleteEnabled(
482 /* [retval][out] */ BOOL *enabled);
484 virtual HRESULT STDMETHODCALLTYPE editingEnabled(
485 /* [retval][out] */ BOOL *enabled);
487 virtual HRESULT STDMETHODCALLTYPE isGrammarCheckingEnabled(
488 /* [retval][out] */ BOOL *enabled);
490 virtual HRESULT STDMETHODCALLTYPE setGrammarCheckingEnabled(
493 virtual HRESULT STDMETHODCALLTYPE setPageSizeMultiplier(
494 /* [in] */ float multiplier);
496 virtual HRESULT STDMETHODCALLTYPE pageSizeMultiplier(
497 /* [retval][out] */ float *multiplier);
499 virtual HRESULT STDMETHODCALLTYPE canZoomPageIn(
500 /* [in] */ IUnknown *sender,
501 /* [retval][out] */ BOOL *result);
503 virtual HRESULT STDMETHODCALLTYPE zoomPageIn(
504 /* [in] */ IUnknown *sender);
506 virtual HRESULT STDMETHODCALLTYPE canZoomPageOut(
507 /* [in] */ IUnknown *sender,
508 /* [retval][out] */ BOOL *result);
510 virtual HRESULT STDMETHODCALLTYPE zoomPageOut(
511 /* [in] */ IUnknown *sender);
513 virtual HRESULT STDMETHODCALLTYPE canResetPageZoom(
514 /* [in] */ IUnknown *sender,
515 /* [retval][out] */ BOOL *result);
517 virtual HRESULT STDMETHODCALLTYPE resetPageZoom(
518 /* [in] */ IUnknown *sender);
520 // IWebViewUndoableEditing
522 virtual HRESULT STDMETHODCALLTYPE replaceSelectionWithNode(
523 /* [in] */ IDOMNode *node);
525 virtual HRESULT STDMETHODCALLTYPE replaceSelectionWithText(
526 /* [in] */ BSTR text);
528 virtual HRESULT STDMETHODCALLTYPE replaceSelectionWithMarkupString(
529 /* [in] */ BSTR markupString);
531 virtual HRESULT STDMETHODCALLTYPE replaceSelectionWithArchive(
532 /* [in] */ IWebArchive *archive);
534 virtual HRESULT STDMETHODCALLTYPE deleteSelection( void);
536 virtual HRESULT STDMETHODCALLTYPE clearSelection(void);
538 virtual HRESULT STDMETHODCALLTYPE applyStyle(
539 /* [in] */ IDOMCSSStyleDeclaration *style);
541 // IWebViewEditingActions
543 virtual HRESULT STDMETHODCALLTYPE copy(
544 /* [in] */ IUnknown *sender);
546 virtual HRESULT STDMETHODCALLTYPE cut(
547 /* [in] */ IUnknown *sender);
549 virtual HRESULT STDMETHODCALLTYPE paste(
550 /* [in] */ IUnknown *sender);
552 virtual HRESULT STDMETHODCALLTYPE copyURL(
553 /* [in] */ BSTR url);
555 virtual HRESULT STDMETHODCALLTYPE copyFont(
556 /* [in] */ IUnknown *sender);
558 virtual HRESULT STDMETHODCALLTYPE pasteFont(
559 /* [in] */ IUnknown *sender);
561 virtual HRESULT STDMETHODCALLTYPE delete_(
562 /* [in] */ IUnknown *sender);
564 virtual HRESULT STDMETHODCALLTYPE pasteAsPlainText(
565 /* [in] */ IUnknown *sender);
567 virtual HRESULT STDMETHODCALLTYPE pasteAsRichText(
568 /* [in] */ IUnknown *sender);
570 virtual HRESULT STDMETHODCALLTYPE changeFont(
571 /* [in] */ IUnknown *sender);
573 virtual HRESULT STDMETHODCALLTYPE changeAttributes(
574 /* [in] */ IUnknown *sender);
576 virtual HRESULT STDMETHODCALLTYPE changeDocumentBackgroundColor(
577 /* [in] */ IUnknown *sender);
579 virtual HRESULT STDMETHODCALLTYPE changeColor(
580 /* [in] */ IUnknown *sender);
582 virtual HRESULT STDMETHODCALLTYPE alignCenter(
583 /* [in] */ IUnknown *sender);
585 virtual HRESULT STDMETHODCALLTYPE alignJustified(
586 /* [in] */ IUnknown *sender);
588 virtual HRESULT STDMETHODCALLTYPE alignLeft(
589 /* [in] */ IUnknown *sender);
591 virtual HRESULT STDMETHODCALLTYPE alignRight(
592 /* [in] */ IUnknown *sender);
594 virtual HRESULT STDMETHODCALLTYPE checkSpelling(
595 /* [in] */ IUnknown *sender);
597 virtual HRESULT STDMETHODCALLTYPE showGuessPanel(
598 /* [in] */ IUnknown *sender);
600 virtual HRESULT STDMETHODCALLTYPE performFindPanelAction(
601 /* [in] */ IUnknown *sender);
603 virtual HRESULT STDMETHODCALLTYPE startSpeaking(
604 /* [in] */ IUnknown *sender);
606 virtual HRESULT STDMETHODCALLTYPE stopSpeaking(
607 /* [in] */ IUnknown *sender);
609 // IWebNotificationObserver
611 virtual HRESULT STDMETHODCALLTYPE onNotify(
612 /* [in] */ IWebNotification *notification);
616 virtual HRESULT STDMETHODCALLTYPE MIMETypeForExtension(
617 /* [in] */ BSTR extension,
618 /* [retval][out] */ BSTR *mimeType);
620 virtual HRESULT STDMETHODCALLTYPE setCustomDropTarget(
621 /* [in] */ IDropTarget* dt);
623 virtual HRESULT STDMETHODCALLTYPE removeCustomDropTarget();
625 virtual HRESULT STDMETHODCALLTYPE setInViewSourceMode(
626 /* [in] */ BOOL flag);
628 virtual HRESULT STDMETHODCALLTYPE inViewSourceMode(
629 /* [retval][out] */ BOOL* flag);
631 virtual HRESULT STDMETHODCALLTYPE viewWindow(
632 /* [retval][out] */ OLE_HANDLE *window);
634 virtual HRESULT STDMETHODCALLTYPE setFormDelegate(
635 /* [in] */ IWebFormDelegate *formDelegate);
637 virtual HRESULT STDMETHODCALLTYPE formDelegate(
638 /* [retval][out] */ IWebFormDelegate **formDelegate);
640 virtual HRESULT STDMETHODCALLTYPE setFrameLoadDelegatePrivate(
641 /* [in] */ IWebFrameLoadDelegatePrivate *frameLoadDelegatePrivate);
643 virtual HRESULT STDMETHODCALLTYPE frameLoadDelegatePrivate(
644 /* [retval][out] */ IWebFrameLoadDelegatePrivate **frameLoadDelegatePrivate);
646 virtual HRESULT STDMETHODCALLTYPE scrollOffset(
647 /* [retval][out] */ LPPOINT offset);
649 virtual HRESULT STDMETHODCALLTYPE scrollBy(
650 /* [in] */ LPPOINT offset);
652 virtual HRESULT STDMETHODCALLTYPE visibleContentRect(
653 /* [retval][out] */ LPRECT rect);
655 virtual HRESULT STDMETHODCALLTYPE updateFocusedAndActiveState();
657 virtual HRESULT STDMETHODCALLTYPE executeCoreCommandByName(BSTR name, BSTR value);
659 virtual HRESULT STDMETHODCALLTYPE clearMainFrameName();
661 virtual HRESULT STDMETHODCALLTYPE markAllMatchesForText(
662 BSTR search, BOOL caseSensitive, BOOL highlight, UINT limit, UINT* matches);
664 virtual HRESULT STDMETHODCALLTYPE unmarkAllTextMatches();
666 virtual HRESULT STDMETHODCALLTYPE rectsForTextMatches(
667 IEnumTextMatches** pmatches);
669 virtual HRESULT STDMETHODCALLTYPE generateSelectionImage(
670 BOOL forceWhiteText, OLE_HANDLE* hBitmap);
672 virtual HRESULT STDMETHODCALLTYPE selectionRect(
675 virtual HRESULT STDMETHODCALLTYPE DragEnter(
676 IDataObject* pDataObject, DWORD grfKeyState, POINTL pt, DWORD* pdwEffect);
678 virtual HRESULT STDMETHODCALLTYPE DragOver(
679 DWORD grfKeyState, POINTL pt, DWORD* pdwEffect);
681 virtual HRESULT STDMETHODCALLTYPE DragLeave();
683 virtual HRESULT STDMETHODCALLTYPE Drop(
684 IDataObject* pDataObject, DWORD grfKeyState, POINTL pt, DWORD* pdwEffect);
686 virtual HRESULT STDMETHODCALLTYPE canHandleRequest(
687 IWebURLRequest *request,
690 virtual HRESULT STDMETHODCALLTYPE standardUserAgentWithApplicationName(
691 /* [in] */ BSTR applicationName,
692 /* [retval][out] */ BSTR *groupName);
694 virtual HRESULT STDMETHODCALLTYPE clearFocusNode();
696 virtual HRESULT STDMETHODCALLTYPE setInitialFocus(
697 /* [in] */ BOOL forward);
699 virtual HRESULT STDMETHODCALLTYPE setTabKeyCyclesThroughElements(
700 /* [in] */ BOOL cycles);
702 virtual HRESULT STDMETHODCALLTYPE tabKeyCyclesThroughElements(
703 /* [retval][out] */ BOOL *result);
705 virtual HRESULT STDMETHODCALLTYPE setAllowSiteSpecificHacks(
706 /* [in] */ BOOL allows);
708 virtual HRESULT STDMETHODCALLTYPE addAdditionalPluginDirectory(
709 /* [in] */ BSTR directory);
711 virtual HRESULT STDMETHODCALLTYPE loadBackForwardListFromOtherView(
712 /* [in] */ IWebView *otherView);
714 virtual HRESULT STDMETHODCALLTYPE inspector(
715 /* [retval][out] */ IWebInspector**);
717 virtual HRESULT STDMETHODCALLTYPE clearUndoRedoOperations( void);
718 virtual HRESULT STDMETHODCALLTYPE shouldClose(
719 /* [retval][out] */ BOOL* result);
721 virtual HRESULT STDMETHODCALLTYPE setProhibitsMainFrameScrolling(BOOL);
722 virtual HRESULT STDMETHODCALLTYPE setShouldApplyMacFontAscentHack(BOOL);
724 virtual HRESULT STDMETHODCALLTYPE windowAncestryDidChange();
726 virtual HRESULT STDMETHODCALLTYPE paintDocumentRectToContext(
727 /* [in] */ RECT rect,
728 /* [in] */ OLE_HANDLE dc);
730 virtual HRESULT STDMETHODCALLTYPE paintScrollViewRectToContextAtPoint(
731 /* [in] */ RECT rect,
733 /* [in] */ OLE_HANDLE dc);
735 virtual HRESULT STDMETHODCALLTYPE reportException(
736 /* [in] */ JSContextRef context,
737 /* [in] */ JSValueRef exception);
739 virtual HRESULT STDMETHODCALLTYPE elementFromJS(
740 /* [in] */ JSContextRef context,
741 /* [in] */ JSValueRef nodeObject,
742 /* [retval][out] */ IDOMElement **element);
744 virtual HRESULT STDMETHODCALLTYPE setCustomHTMLTokenizerTimeDelay(
745 /* [in] */ double timeDelay);
747 virtual HRESULT STDMETHODCALLTYPE setCustomHTMLTokenizerChunkSize(
748 /* [in] */ int chunkSize);
750 virtual HRESULT STDMETHODCALLTYPE backingStore(
751 /* [out, retval] */ OLE_HANDLE* hBitmap);
753 virtual HRESULT STDMETHODCALLTYPE setTransparent(
754 /* [in] */ BOOL transparent);
756 virtual HRESULT STDMETHODCALLTYPE transparent(
757 /* [out, retval] */ BOOL* transparent);
759 virtual HRESULT STDMETHODCALLTYPE setDefersCallbacks(
760 /* [in] */ BOOL defersCallbacks);
762 virtual HRESULT STDMETHODCALLTYPE defersCallbacks(
763 /* [out, retval] */ BOOL* defersCallbacks);
765 virtual HRESULT STDMETHODCALLTYPE globalHistoryItem(
766 /* [out, retval] */ IWebHistoryItem** item);
768 virtual HRESULT STDMETHODCALLTYPE setAlwaysUsesComplexTextCodePath(
769 /* [in] */ BOOL complex);
771 virtual HRESULT STDMETHODCALLTYPE alwaysUsesComplexTextCodePath(
772 /* [out, retval] */ BOOL* complex);
774 virtual HRESULT STDMETHODCALLTYPE setCookieEnabled(
775 /* [in] */ BOOL enable);
777 virtual HRESULT STDMETHODCALLTYPE cookieEnabled(
778 /* [out, retval] */ BOOL* enabled);
780 virtual HRESULT STDMETHODCALLTYPE setMediaVolume(
781 /* [in] */ float volume);
783 virtual HRESULT STDMETHODCALLTYPE mediaVolume(
784 /* [out, retval] */ float* volume);
786 virtual HRESULT STDMETHODCALLTYPE registerEmbeddedViewMIMEType(
787 /* [in] */ BSTR mimeType);
789 virtual HRESULT STDMETHODCALLTYPE setMemoryCacheDelegateCallsEnabled(
790 /* [in] */ BOOL enabled);
792 virtual HRESULT STDMETHODCALLTYPE setJavaScriptURLsAreAllowed(
793 /* [in] */ BOOL areAllowed);
795 virtual HRESULT STDMETHODCALLTYPE setCanStartPlugins(
796 /* [in] */ BOOL canStartPlugins);
798 virtual HRESULT STDMETHODCALLTYPE addUserScriptToGroup(BSTR groupName, IWebScriptWorld*, BSTR source, BSTR url,
799 unsigned whitelistCount, BSTR* whitelist,
800 unsigned blacklistCount, BSTR* blacklist,
801 WebUserScriptInjectionTime);
802 virtual HRESULT STDMETHODCALLTYPE addUserStyleSheetToGroup(BSTR groupName, IWebScriptWorld*, BSTR source, BSTR url,
803 unsigned whitelistCount, BSTR* whitelist,
804 unsigned blacklistCount, BSTR* blacklist);
805 virtual HRESULT STDMETHODCALLTYPE removeUserScriptFromGroup(BSTR groupName, IWebScriptWorld*, BSTR url);
806 virtual HRESULT STDMETHODCALLTYPE removeUserStyleSheetFromGroup(BSTR groupName, IWebScriptWorld*, BSTR url);
807 virtual HRESULT STDMETHODCALLTYPE removeUserScriptsFromGroup(BSTR groupName, IWebScriptWorld*);
808 virtual HRESULT STDMETHODCALLTYPE removeUserStyleSheetsFromGroup(BSTR groupName, IWebScriptWorld*);
809 virtual HRESULT STDMETHODCALLTYPE removeAllUserContentFromGroup(BSTR groupName);
811 virtual HRESULT STDMETHODCALLTYPE unused1();
812 virtual HRESULT STDMETHODCALLTYPE unused2();
814 virtual HRESULT STDMETHODCALLTYPE invalidateBackingStore(const RECT*);
816 virtual HRESULT STDMETHODCALLTYPE addOriginAccessWhitelistEntry(BSTR sourceOrigin, BSTR destinationProtocol, BSTR destinationHost, BOOL allowDestinationSubdomains);
817 virtual HRESULT STDMETHODCALLTYPE removeOriginAccessWhitelistEntry(BSTR sourceOrigin, BSTR destinationProtocol, BSTR destinationHost, BOOL allowDestinationSubdomains);
818 virtual HRESULT STDMETHODCALLTYPE resetOriginAccessWhitelists();
820 virtual HRESULT STDMETHODCALLTYPE setHistoryDelegate(IWebHistoryDelegate* historyDelegate);
821 virtual HRESULT STDMETHODCALLTYPE historyDelegate(IWebHistoryDelegate** historyDelegate);
822 virtual HRESULT STDMETHODCALLTYPE addVisitedLinks(BSTR* visitedURLs, unsigned visitedURLCount);
824 virtual HRESULT STDMETHODCALLTYPE unused3();
825 virtual HRESULT STDMETHODCALLTYPE unused4();
826 virtual HRESULT STDMETHODCALLTYPE unused5();
828 virtual HRESULT STDMETHODCALLTYPE setGeolocationProvider(IWebGeolocationProvider* locationProvider);
829 virtual HRESULT STDMETHODCALLTYPE geolocationProvider(IWebGeolocationProvider** locationProvider);
830 virtual HRESULT STDMETHODCALLTYPE geolocationDidChangePosition(IWebGeolocationPosition* position);
831 virtual HRESULT STDMETHODCALLTYPE geolocationDidFailWithError(IWebError* error);
833 virtual HRESULT STDMETHODCALLTYPE setDomainRelaxationForbiddenForURLScheme(BOOL forbidden, BSTR scheme);
834 virtual HRESULT STDMETHODCALLTYPE registerURLSchemeAsSecure(BSTR);
835 virtual HRESULT STDMETHODCALLTYPE registerURLSchemeAsAllowingLocalStorageAccessInPrivateBrowsing(BSTR);
836 virtual HRESULT STDMETHODCALLTYPE registerURLSchemeAsAllowingDatabaseAccessInPrivateBrowsing(BSTR);
838 virtual HRESULT STDMETHODCALLTYPE nextDisplayIsSynchronous();
840 virtual HRESULT STDMETHODCALLTYPE defaultMinimumTimerInterval(
841 /* [retval][out] */ double *interval);
843 virtual HRESULT STDMETHODCALLTYPE setMinimumTimerInterval(
846 virtual HRESULT STDMETHODCALLTYPE httpPipeliningEnabled(
847 /* [out, retval] */ BOOL* enabled);
849 virtual HRESULT STDMETHODCALLTYPE setHTTPPipeliningEnabled(
852 virtual HRESULT STDMETHODCALLTYPE setUsesLayeredWindow(BOOL);
853 virtual HRESULT STDMETHODCALLTYPE usesLayeredWindow(BOOL*);
856 bool shouldUseEmbeddedView(const WTF::String& mimeType) const;
858 WebCore::Page* page();
859 bool handleMouseEvent(UINT, WPARAM, LPARAM);
860 void setMouseActivated(bool flag) { m_mouseActivated = flag; }
861 bool handleContextMenuEvent(WPARAM, LPARAM);
862 bool onMeasureItem(WPARAM, LPARAM);
863 bool onDrawItem(WPARAM, LPARAM);
864 bool onInitMenuPopup(WPARAM, LPARAM);
865 bool onUninitMenuPopup(WPARAM, LPARAM);
866 void performContextMenuAction(WPARAM, LPARAM, bool byPosition);
867 bool mouseWheel(WPARAM, LPARAM, bool isMouseHWheel);
868 bool verticalScroll(WPARAM, LPARAM);
869 bool horizontalScroll(WPARAM, LPARAM);
870 bool gesture(WPARAM, LPARAM);
871 bool gestureNotify(WPARAM, LPARAM);
872 bool execCommand(WPARAM wParam, LPARAM lParam);
873 bool keyDown(WPARAM, LPARAM, bool systemKeyDown = false);
874 bool keyUp(WPARAM, LPARAM, bool systemKeyDown = false);
875 bool keyPress(WPARAM, LPARAM, bool systemKeyDown = false);
876 void paint(HDC, LPARAM);
877 void paintIntoWindow(HDC bitmapDC, HDC windowDC, const WebCore::IntRect& dirtyRect);
878 bool ensureBackingStore();
879 void addToDirtyRegion(const WebCore::IntRect&);
880 void addToDirtyRegion(GDIObject<HRGN>);
881 void scrollBackingStore(WebCore::FrameView*, int dx, int dy, const WebCore::IntRect& scrollViewRect, const WebCore::IntRect& clipRect);
882 void deleteBackingStore();
883 void repaint(const WebCore::IntRect&, bool contentChanged, bool immediate = false, bool repaintContentOnly = false);
884 void frameRect(RECT* rect);
886 void closeWindowSoon();
887 void closeWindowTimerFired();
888 bool didClose() const { return m_didClose; }
890 bool transparent() const { return m_transparent; }
891 bool usesLayeredWindow() const { return m_usesLayeredWindow; }
893 bool onIMEStartComposition();
894 bool onIMEComposition(LPARAM);
895 bool onIMEEndComposition();
896 bool onIMEChar(WPARAM, LPARAM);
897 bool onIMENotify(WPARAM, LPARAM, LRESULT*);
898 LRESULT onIMERequest(WPARAM, LPARAM);
899 bool onIMESelect(WPARAM, LPARAM);
900 bool onIMESetContext(WPARAM, LPARAM);
901 void selectionChanged();
902 void resetIME(WebCore::Frame*);
903 void setInputMethodState(bool);
905 HRESULT registerDragDrop();
906 HRESULT revokeDragDrop();
908 // Convenient to be able to violate the rules of COM here for easy movement to the frame.
909 WebFrame* topLevelFrame() const { return m_mainFrame; }
910 const WTF::String& userAgentForKURL(const WebCore::KURL& url);
912 static bool canHandleRequest(const WebCore::ResourceRequest&);
914 static WTF::String standardUserAgentWithApplicationName(const WTF::String&);
916 void setIsBeingDestroyed();
917 bool isBeingDestroyed() const { return m_isBeingDestroyed; }
919 const char* interpretKeyEvent(const WebCore::KeyboardEvent*);
920 bool handleEditingKeyboardEvent(WebCore::KeyboardEvent*);
922 bool isPainting() const { return m_paintCount > 0; }
924 void setToolTip(const WTF::String&);
926 void registerForIconNotification(bool listen);
927 void dispatchDidReceiveIconFromWebFrame(WebFrame*);
929 HRESULT notifyDidAddIcon(IWebNotification*);
930 HRESULT notifyPreferencesChanged(IWebNotification*);
932 static void setCacheModel(WebCacheModel);
933 static WebCacheModel cacheModel();
934 static bool didSetCacheModel();
935 static WebCacheModel maxCacheModelInAnyInstance();
937 void updateActiveStateSoon() const;
938 void deleteBackingStoreSoon();
939 void cancelDeleteBackingStoreSoon();
941 HWND topLevelParent() const { return m_topLevelParent; }
942 HWND viewWindow() const { return m_viewWindow; }
944 void updateActiveState();
946 bool onGetObject(WPARAM, LPARAM, LRESULT&) const;
947 static STDMETHODIMP AccessibleObjectFromWindow(HWND, DWORD objectID, REFIID, void** ppObject);
949 void downloadURL(const WebCore::KURL&);
951 #if USE(ACCELERATED_COMPOSITING)
952 void flushPendingGraphicsLayerChangesSoon();
953 void setRootChildLayer(WebCore::GraphicsLayer*);
956 #if PLATFORM(WIN) && USE(AVFOUNDATION)
957 WebCore::GraphicsDeviceAdapter* graphicsDeviceAdapter() const;
960 void enterFullscreenForNode(WebCore::Node*);
961 void exitFullscreen();
963 void setLastCursor(HCURSOR cursor) { m_lastSetCursor = cursor; }
965 void setGlobalHistoryItem(WebCore::HistoryItem*);
967 #if ENABLE(FULLSCREEN_API)
968 bool supportsFullScreenForElement(const WebCore::Element*, bool withKeyboard) const;
969 bool isFullScreen() const;
970 WebCore::FullScreenController* fullScreenController();
971 void setFullScreenElement(PassRefPtr<WebCore::Element>);
972 WebCore::Element* fullScreenElement() const { return m_fullScreenElement.get(); }
975 bool canShowMIMEType(const String& mimeType);
976 bool canShowMIMETypeAsHTML(const String& mimeType);
978 // Used by TextInputController in DumpRenderTree
980 HRESULT STDMETHODCALLTYPE setCompositionForTesting(
981 /* [in] */ BSTR composition,
982 /* [in] */ UINT from,
983 /* [in] */ UINT length);
985 HRESULT STDMETHODCALLTYPE hasCompositionForTesting(/* [out, retval] */ BOOL* result);
987 HRESULT STDMETHODCALLTYPE confirmCompositionForTesting(/* [in] */ BSTR composition);
989 HRESULT STDMETHODCALLTYPE compositionRangeForTesting(/* [out] */ UINT* startPosition, /* [out] */ UINT* length);
991 HRESULT STDMETHODCALLTYPE firstRectForCharacterRangeForTesting(
992 /* [in] */ UINT location,
993 /* [in] */ UINT length,
994 /* [out, retval] */ RECT* resultRect);
996 HRESULT STDMETHODCALLTYPE selectedRangeForTesting(/* [out] */ UINT* location, /* [out] */ UINT* length);
998 void setZoomMultiplier(float multiplier, bool isTextOnly);
999 float zoomMultiplier(bool isTextOnly);
1000 bool canZoomIn(bool isTextOnly);
1001 HRESULT zoomIn(bool isTextOnly);
1002 bool canZoomOut(bool isTextOnly);
1003 HRESULT zoomOut(bool isTextOnly);
1004 bool canResetZoom(bool isTextOnly);
1005 HRESULT resetZoom(bool isTextOnly);
1008 void sizeChanged(const WebCore::IntSize&);
1010 enum WindowsToPaint { PaintWebViewOnly, PaintWebViewAndChildren };
1011 void paintIntoBackingStore(WebCore::FrameView*, HDC bitmapDC, const WebCore::IntRect& dirtyRect, WindowsToPaint);
1012 void updateBackingStore(WebCore::FrameView*, HDC = 0, bool backingStoreCompletelyDirty = false, WindowsToPaint = PaintWebViewOnly);
1014 void performLayeredWindowUpdate();
1016 WebCore::DragOperation keyStateToDragOperation(DWORD grfKeyState) const;
1018 // FIXME: This variable is part of a workaround. The drop effect (pdwEffect) passed to Drop is incorrect.
1019 // We set this variable in DragEnter and DragOver so that it can be used in Drop to set the correct drop effect.
1020 // Thus, on return from DoDragDrop we have the correct pdwEffect for the drag-and-drop operation.
1021 // (see https://bugs.webkit.org/show_bug.cgi?id=29264)
1022 DWORD m_lastDropEffect;
1024 #if USE(ACCELERATED_COMPOSITING)
1025 // GraphicsLayerClient
1026 virtual void notifyAnimationStarted(const WebCore::GraphicsLayer*, double time);
1027 virtual void notifyFlushRequired(const WebCore::GraphicsLayer*);
1028 virtual void paintContents(const WebCore::GraphicsLayer*, WebCore::GraphicsContext&, WebCore::GraphicsLayerPaintingPhase, const WebCore::IntRect& inClip);
1030 // CACFLayerTreeHostClient
1031 virtual void flushPendingGraphicsLayerChanges();
1034 bool m_shouldInvertColors;
1035 void setShouldInvertColors(bool);
1038 static bool registerWebViewWindowClass();
1039 static LRESULT CALLBACK WebViewWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
1041 HIMC getIMMContext();
1042 void releaseIMMContext(HIMC);
1043 static bool allowSiteSpecificHacks() { return s_allowSiteSpecificHacks; }
1044 void preflightSpellChecker();
1045 bool continuousCheckingAllowed();
1046 void initializeToolTipWindow();
1047 void prepareCandidateWindow(WebCore::Frame*, HIMC);
1048 void updateSelectionForIME();
1049 LRESULT onIMERequestCharPosition(WebCore::Frame*, IMECHARPOSITION*);
1050 LRESULT onIMERequestReconvertString(WebCore::Frame*, RECONVERTSTRING*);
1051 bool developerExtrasEnabled() const;
1053 bool shouldInitializeTrackPointHack();
1055 // AllWebViewSet functions
1056 void addToAllWebViewsSet();
1057 void removeFromAllWebViewsSet();
1059 virtual void windowReceivedMessage(HWND, UINT message, WPARAM, LPARAM);
1061 #if ENABLE(FULLSCREEN_API)
1062 virtual HWND fullScreenClientWindow() const;
1063 virtual HWND fullScreenClientParentWindow() const;
1064 virtual void fullScreenClientSetParentWindow(HWND);
1065 virtual void fullScreenClientWillEnterFullScreen();
1066 virtual void fullScreenClientDidEnterFullScreen();
1067 virtual void fullScreenClientWillExitFullScreen();
1068 virtual void fullScreenClientDidExitFullScreen();
1069 virtual void fullScreenClientForceRepaint();
1070 virtual void fullScreenClientSaveScrollPosition();
1071 virtual void fullScreenClientRestoreScrollPosition();
1075 #if !ASSERT_DISABLED
1076 bool m_deletionHasBegun;
1080 WebFrame* m_mainFrame;
1081 WebCore::Page* m_page;
1082 #if ENABLE(INSPECTOR)
1083 WebInspectorClient* m_inspectorClient;
1084 #endif // ENABLE(INSPECTOR)
1086 RefPtr<WebCore::SharedGDIObject<HBITMAP>> m_backingStoreBitmap;
1087 SIZE m_backingStoreSize;
1088 RefPtr<WebCore::SharedGDIObject<HRGN>> m_backingStoreDirtyRegion;
1090 COMPtr<IAccessibilityDelegate> m_accessibilityDelegate;
1091 COMPtr<IWebEditingDelegate> m_editingDelegate;
1092 COMPtr<IWebFrameLoadDelegate> m_frameLoadDelegate;
1093 COMPtr<IWebFrameLoadDelegatePrivate> m_frameLoadDelegatePrivate;
1094 COMPtr<IWebUIDelegate> m_uiDelegate;
1095 COMPtr<IWebUIDelegatePrivate> m_uiDelegatePrivate;
1096 COMPtr<IWebFormDelegate> m_formDelegate;
1097 COMPtr<IWebPolicyDelegate> m_policyDelegate;
1098 COMPtr<IWebResourceLoadDelegate> m_resourceLoadDelegate;
1099 COMPtr<IWebDownloadDelegate> m_downloadDelegate;
1100 COMPtr<IWebHistoryDelegate> m_historyDelegate;
1101 COMPtr<WebPreferences> m_preferences;
1102 #if ENABLE(INSPECTOR)
1103 COMPtr<WebInspector> m_webInspector;
1104 #endif // ENABLE(INSPECTOR)
1105 COMPtr<IWebGeolocationProvider> m_geolocationProvider;
1107 bool m_userAgentOverridden;
1108 bool m_useBackForwardList;
1109 WTF::String m_userAgentCustom;
1110 WTF::String m_userAgentStandard;
1111 float m_zoomMultiplier;
1112 bool m_zoomsTextOnly;
1113 WTF::String m_overrideEncoding;
1114 WTF::String m_applicationName;
1115 bool m_mouseActivated;
1116 // WebCore dragging logic needs to be able to inspect the drag data
1117 // this is updated in DragEnter/Leave/Drop
1118 COMPtr<IDataObject> m_dragData;
1119 COMPtr<IDropTargetHelper> m_dropTargetHelper;
1120 UChar m_currentCharacterCode;
1121 bool m_isBeingDestroyed;
1122 unsigned m_paintCount;
1123 bool m_hasSpellCheckerDocumentTag;
1125 bool m_hasCustomDropTarget;
1126 unsigned m_inIMEComposition;
1128 WTF::String m_toolTip;
1129 bool m_deleteBackingStoreTimerActive;
1133 static bool s_allowSiteSpecificHacks;
1135 WebCore::SuspendableTimer* m_closeWindowTimer;
1136 OwnPtr<TRACKMOUSEEVENT> m_mouseOutTracker;
1138 HWND m_topLevelParent;
1140 OwnPtr<HashSet<WTF::String> > m_embeddedViewMIMETypes;
1142 //Variables needed to store gesture information
1143 RefPtr<WebCore::Node> m_gestureTargetNode;
1150 OwnPtr<FullscreenVideoController> m_fullScreenVideoController;
1153 #if USE(ACCELERATED_COMPOSITING)
1154 bool isAcceleratedCompositing() const { return m_isAcceleratedCompositing; }
1155 void setAcceleratedCompositing(bool);
1157 RefPtr<WebCore::CACFLayerTreeHost> m_layerTreeHost;
1158 OwnPtr<WebCore::GraphicsLayer> m_backingLayer;
1159 bool m_isAcceleratedCompositing;
1162 bool m_nextDisplayIsSynchronous;
1163 bool m_usesLayeredWindow;
1165 HCURSOR m_lastSetCursor;
1167 RefPtr<WebCore::HistoryItem> m_globalHistoryItem;
1169 #if ENABLE(FULLSCREEN_API)
1170 RefPtr<WebCore::Element> m_fullScreenElement;
1171 OwnPtr<WebCore::FullScreenController> m_fullscreenController;
1172 WebCore::IntPoint m_scrollPosition;