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/RefCountedGDIHandle.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 typedef WebCore::RefCountedGDIHandle<HBITMAP> RefCountedHBITMAP;
74 typedef WebCore::RefCountedGDIHandle<HRGN> RefCountedHRGN;
76 WebView* kit(WebCore::Page*);
77 WebCore::Page* core(IWebView*);
79 interface IDropTargetHelper;
83 , public IWebViewPrivate
84 , public IWebIBActions
86 , public IWebViewEditing
87 , public IWebViewUndoableEditing
88 , public IWebViewEditingActions
89 , public IWebNotificationObserver
91 , WebCore::WindowMessageListener
92 #if USE(ACCELERATED_COMPOSITING)
93 , WebCore::GraphicsLayerClient
94 , WebCore::CACFLayerTreeHostClient
96 #if ENABLE(FULLSCREEN_API)
97 , WebCore::FullScreenControllerClient
101 static WebView* createInstance();
108 virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void** ppvObject);
109 virtual ULONG STDMETHODCALLTYPE AddRef(void);
110 virtual ULONG STDMETHODCALLTYPE Release(void);
114 virtual HRESULT STDMETHODCALLTYPE canShowMIMEType(
115 /* [in] */ BSTR mimeType,
116 /* [retval][out] */ BOOL *canShow);
118 virtual HRESULT STDMETHODCALLTYPE canShowMIMETypeAsHTML(
119 /* [in] */ BSTR mimeType,
120 /* [retval][out] */ BOOL *canShow);
122 virtual HRESULT STDMETHODCALLTYPE MIMETypesShownAsHTML(
123 /* [retval][out] */ IEnumVARIANT **enumVariant);
125 virtual HRESULT STDMETHODCALLTYPE setMIMETypesShownAsHTML(
126 /* [size_is][in] */ BSTR *mimeTypes,
127 /* [in] */ int cMimeTypes);
129 virtual HRESULT STDMETHODCALLTYPE URLFromPasteboard(
130 /* [in] */ IDataObject *pasteboard,
131 /* [retval][out] */ BSTR *url);
133 virtual HRESULT STDMETHODCALLTYPE URLTitleFromPasteboard(
134 /* [in] */ IDataObject *pasteboard,
135 /* [retval][out] */ BSTR *urlTitle);
137 virtual HRESULT STDMETHODCALLTYPE initWithFrame(
138 /* [in] */ RECT frame,
139 /* [in] */ BSTR frameName,
140 /* [in] */ BSTR groupName);
142 virtual HRESULT STDMETHODCALLTYPE setUIDelegate(
143 /* [in] */ IWebUIDelegate *d);
145 virtual HRESULT STDMETHODCALLTYPE uiDelegate(
146 /* [out][retval] */ IWebUIDelegate **d);
148 virtual HRESULT STDMETHODCALLTYPE setResourceLoadDelegate(
149 /* [in] */ IWebResourceLoadDelegate *d);
151 virtual HRESULT STDMETHODCALLTYPE resourceLoadDelegate(
152 /* [out][retval] */ IWebResourceLoadDelegate **d);
154 virtual HRESULT STDMETHODCALLTYPE setDownloadDelegate(
155 /* [in] */ IWebDownloadDelegate *d);
157 virtual HRESULT STDMETHODCALLTYPE downloadDelegate(
158 /* [out][retval] */ IWebDownloadDelegate **d);
160 virtual HRESULT STDMETHODCALLTYPE setFrameLoadDelegate(
161 /* [in] */ IWebFrameLoadDelegate *d);
163 virtual HRESULT STDMETHODCALLTYPE frameLoadDelegate(
164 /* [out][retval] */ IWebFrameLoadDelegate **d);
166 virtual HRESULT STDMETHODCALLTYPE setPolicyDelegate(
167 /* [in] */ IWebPolicyDelegate *d);
169 virtual HRESULT STDMETHODCALLTYPE policyDelegate(
170 /* [out][retval] */ IWebPolicyDelegate **d);
172 virtual HRESULT STDMETHODCALLTYPE mainFrame(
173 /* [out][retval] */ IWebFrame **frame);
175 virtual HRESULT STDMETHODCALLTYPE focusedFrame(
176 /* [out][retval] */ IWebFrame **frame);
178 virtual HRESULT STDMETHODCALLTYPE backForwardList(
179 /* [out][retval] */ IWebBackForwardList **list);
181 virtual HRESULT STDMETHODCALLTYPE setMaintainsBackForwardList(
182 /* [in] */ BOOL flag);
184 virtual HRESULT STDMETHODCALLTYPE goBack(
185 /* [retval][out] */ BOOL *succeeded);
187 virtual HRESULT STDMETHODCALLTYPE goForward(
188 /* [retval][out] */ BOOL *succeeded);
190 virtual HRESULT STDMETHODCALLTYPE goToBackForwardItem(
191 /* [in] */ IWebHistoryItem *item,
192 /* [retval][out] */ BOOL *succeeded);
194 virtual HRESULT STDMETHODCALLTYPE setTextSizeMultiplier(
195 /* [in] */ float multiplier);
197 virtual HRESULT STDMETHODCALLTYPE textSizeMultiplier(
198 /* [retval][out] */ float *multiplier);
200 virtual HRESULT STDMETHODCALLTYPE setApplicationNameForUserAgent(
201 /* [in] */ BSTR applicationName);
203 virtual HRESULT STDMETHODCALLTYPE applicationNameForUserAgent(
204 /* [retval][out] */ BSTR *applicationName);
206 virtual HRESULT STDMETHODCALLTYPE setCustomUserAgent(
207 /* [in] */ BSTR userAgentString);
209 virtual HRESULT STDMETHODCALLTYPE customUserAgent(
210 /* [retval][out] */ BSTR *userAgentString);
212 virtual HRESULT STDMETHODCALLTYPE userAgentForURL(
214 /* [retval][out] */ BSTR *userAgent);
216 virtual HRESULT STDMETHODCALLTYPE supportsTextEncoding(
217 /* [retval][out] */ BOOL *supports);
219 virtual HRESULT STDMETHODCALLTYPE setCustomTextEncodingName(
220 /* [in] */ BSTR encodingName);
222 virtual HRESULT STDMETHODCALLTYPE customTextEncodingName(
223 /* [retval][out] */ BSTR *encodingName);
225 virtual HRESULT STDMETHODCALLTYPE setMediaStyle(
226 /* [in] */ BSTR media);
228 virtual HRESULT STDMETHODCALLTYPE mediaStyle(
229 /* [retval][out] */ BSTR *media);
231 virtual HRESULT STDMETHODCALLTYPE stringByEvaluatingJavaScriptFromString(
232 /* [in] */ BSTR script,
233 /* [retval][out] */ BSTR *result);
235 virtual HRESULT STDMETHODCALLTYPE windowScriptObject(
236 /* [retval][out] */ IWebScriptObject **webScriptObject);
238 virtual HRESULT STDMETHODCALLTYPE setPreferences(
239 /* [in] */ IWebPreferences *prefs);
241 virtual HRESULT STDMETHODCALLTYPE preferences(
242 /* [retval][out] */ IWebPreferences **prefs);
244 virtual HRESULT STDMETHODCALLTYPE setPreferencesIdentifier(
245 /* [in] */ BSTR anIdentifier);
247 virtual HRESULT STDMETHODCALLTYPE preferencesIdentifier(
248 /* [retval][out] */ BSTR *anIdentifier);
250 virtual HRESULT STDMETHODCALLTYPE setHostWindow(
251 /* [in] */ OLE_HANDLE window);
253 virtual HRESULT STDMETHODCALLTYPE hostWindow(
254 /* [retval][out] */ OLE_HANDLE *window);
256 virtual HRESULT STDMETHODCALLTYPE searchFor(
258 /* [in] */ BOOL forward,
259 /* [in] */ BOOL caseFlag,
260 /* [in] */ BOOL wrapFlag,
261 /* [retval][out] */ BOOL *found);
263 virtual HRESULT STDMETHODCALLTYPE registerViewClass(
264 /* [in] */ IWebDocumentView *view,
265 /* [in] */ IWebDocumentRepresentation *representation,
266 /* [in] */ BSTR forMIMEType);
268 virtual HRESULT STDMETHODCALLTYPE setGroupName(
269 /* [in] */ BSTR groupName);
271 virtual HRESULT STDMETHODCALLTYPE groupName(
272 /* [retval][out] */ BSTR *groupName);
274 virtual HRESULT STDMETHODCALLTYPE estimatedProgress(
275 /* [retval][out] */ double *estimatedProgress);
277 virtual HRESULT STDMETHODCALLTYPE isLoading(
278 /* [retval][out] */ BOOL *isLoading);
280 virtual HRESULT STDMETHODCALLTYPE elementAtPoint(
281 /* [in] */ LPPOINT point,
282 /* [retval][out] */ IPropertyBag **elementDictionary);
284 virtual HRESULT STDMETHODCALLTYPE pasteboardTypesForSelection(
285 /* [retval][out] */ IEnumVARIANT **enumVariant);
287 virtual HRESULT STDMETHODCALLTYPE writeSelectionWithPasteboardTypes(
288 /* [size_is][in] */ BSTR *types,
289 /* [in] */ int cTypes,
290 /* [in] */ IDataObject *pasteboard);
292 virtual HRESULT STDMETHODCALLTYPE pasteboardTypesForElement(
293 /* [in] */ IPropertyBag *elementDictionary,
294 /* [retval][out] */ IEnumVARIANT **enumVariant);
296 virtual HRESULT STDMETHODCALLTYPE writeElement(
297 /* [in] */ IPropertyBag *elementDictionary,
298 /* [size_is][in] */ BSTR *withPasteboardTypes,
299 /* [in] */ int cWithPasteboardTypes,
300 /* [in] */ IDataObject *pasteboard);
302 virtual HRESULT STDMETHODCALLTYPE selectedText(
303 /* [out, retval] */ BSTR* str);
305 virtual HRESULT STDMETHODCALLTYPE centerSelectionInVisibleArea(
306 /* [in] */ IUnknown* sender);
308 virtual HRESULT STDMETHODCALLTYPE moveDragCaretToPoint(
309 /* [in] */ LPPOINT point);
311 virtual HRESULT STDMETHODCALLTYPE removeDragCaret( void);
313 virtual HRESULT STDMETHODCALLTYPE setDrawsBackground(
314 /* [in] */ BOOL drawsBackground);
316 virtual HRESULT STDMETHODCALLTYPE drawsBackground(
317 /* [retval][out] */ BOOL *drawsBackground);
319 virtual HRESULT STDMETHODCALLTYPE setMainFrameURL(
320 /* [in] */ BSTR urlString);
322 virtual HRESULT STDMETHODCALLTYPE mainFrameURL(
323 /* [retval][out] */ BSTR *urlString);
325 virtual HRESULT STDMETHODCALLTYPE mainFrameDocument(
326 /* [retval][out] */ IDOMDocument **document);
328 virtual HRESULT STDMETHODCALLTYPE mainFrameTitle(
329 /* [retval][out] */ BSTR *title);
331 virtual HRESULT STDMETHODCALLTYPE mainFrameIcon(
332 /* [retval][out] */ OLE_HANDLE *hBitmap);
334 virtual HRESULT STDMETHODCALLTYPE registerURLSchemeAsLocal(
335 /* [in] */ BSTR scheme);
337 virtual HRESULT STDMETHODCALLTYPE close();
341 virtual HRESULT STDMETHODCALLTYPE takeStringURLFrom(
342 /* [in] */ IUnknown *sender);
344 virtual HRESULT STDMETHODCALLTYPE stopLoading(
345 /* [in] */ IUnknown *sender);
347 virtual HRESULT STDMETHODCALLTYPE reload(
348 /* [in] */ IUnknown *sender);
350 virtual HRESULT STDMETHODCALLTYPE canGoBack(
351 /* [in] */ IUnknown *sender,
352 /* [retval][out] */ BOOL *result);
354 virtual HRESULT STDMETHODCALLTYPE goBack(
355 /* [in] */ IUnknown *sender);
357 virtual HRESULT STDMETHODCALLTYPE canGoForward(
358 /* [in] */ IUnknown *sender,
359 /* [retval][out] */ BOOL *result);
361 virtual HRESULT STDMETHODCALLTYPE goForward(
362 /* [in] */ IUnknown *sender);
364 virtual HRESULT STDMETHODCALLTYPE canMakeTextLarger(
365 /* [in] */ IUnknown *sender,
366 /* [retval][out] */ BOOL *result);
368 virtual HRESULT STDMETHODCALLTYPE makeTextLarger(
369 /* [in] */ IUnknown *sender);
371 virtual HRESULT STDMETHODCALLTYPE canMakeTextSmaller(
372 /* [in] */ IUnknown *sender,
373 /* [retval][out] */ BOOL *result);
375 virtual HRESULT STDMETHODCALLTYPE makeTextSmaller(
376 /* [in] */ IUnknown *sender);
378 virtual HRESULT STDMETHODCALLTYPE canMakeTextStandardSize(
379 /* [in] */ IUnknown *sender,
380 /* [retval][out] */ BOOL *result);
382 virtual HRESULT STDMETHODCALLTYPE makeTextStandardSize(
383 /* [in] */ IUnknown *sender);
385 virtual HRESULT STDMETHODCALLTYPE toggleContinuousSpellChecking(
386 /* [in] */ IUnknown *sender);
388 virtual HRESULT STDMETHODCALLTYPE toggleSmartInsertDelete(
389 /* [in] */ IUnknown *sender);
391 virtual HRESULT STDMETHODCALLTYPE toggleGrammarChecking(
392 /* [in] */ IUnknown *sender);
394 virtual HRESULT STDMETHODCALLTYPE reloadFromOrigin(
395 /* [in] */ IUnknown *sender);
399 virtual HRESULT STDMETHODCALLTYPE computedStyleForElement(
400 /* [in] */ IDOMElement *element,
401 /* [in] */ BSTR pseudoElement,
402 /* [retval][out] */ IDOMCSSStyleDeclaration **style);
406 virtual HRESULT STDMETHODCALLTYPE editableDOMRangeForPoint(
407 /* [in] */ LPPOINT point,
408 /* [retval][out] */ IDOMRange **range);
410 virtual HRESULT STDMETHODCALLTYPE setSelectedDOMRange(
411 /* [in] */ IDOMRange *range,
412 /* [in] */ WebSelectionAffinity affinity);
414 virtual HRESULT STDMETHODCALLTYPE selectedDOMRange(
415 /* [retval][out] */ IDOMRange **range);
417 virtual HRESULT STDMETHODCALLTYPE selectionAffinity(
418 /* [retval][out][retval][out] */ WebSelectionAffinity *affinity);
420 virtual HRESULT STDMETHODCALLTYPE setEditable(
421 /* [in] */ BOOL flag);
423 virtual HRESULT STDMETHODCALLTYPE isEditable(
424 /* [retval][out] */ BOOL *isEditable);
426 virtual HRESULT STDMETHODCALLTYPE setTypingStyle(
427 /* [in] */ IDOMCSSStyleDeclaration *style);
429 virtual HRESULT STDMETHODCALLTYPE typingStyle(
430 /* [retval][out] */ IDOMCSSStyleDeclaration **style);
432 virtual HRESULT STDMETHODCALLTYPE setSmartInsertDeleteEnabled(
433 /* [in] */ BOOL flag);
435 virtual HRESULT STDMETHODCALLTYPE smartInsertDeleteEnabled(
436 /* [in] */ BOOL *enabled);
438 virtual HRESULT STDMETHODCALLTYPE setSelectTrailingWhitespaceEnabled(
439 /* [in] */ BOOL flag);
441 virtual HRESULT STDMETHODCALLTYPE isSelectTrailingWhitespaceEnabled(
442 /* [in] */ BOOL *enabled);
444 virtual HRESULT STDMETHODCALLTYPE setContinuousSpellCheckingEnabled(
445 /* [in] */ BOOL flag);
447 virtual HRESULT STDMETHODCALLTYPE isContinuousSpellCheckingEnabled(
448 /* [retval][out] */ BOOL *enabled);
450 virtual HRESULT STDMETHODCALLTYPE spellCheckerDocumentTag(
451 /* [retval][out] */ int *tag);
453 virtual HRESULT STDMETHODCALLTYPE undoManager(
454 /* [retval][out] */ IWebUndoManager **manager);
456 virtual HRESULT STDMETHODCALLTYPE setEditingDelegate(
457 /* [in] */ IWebEditingDelegate *d);
459 virtual HRESULT STDMETHODCALLTYPE editingDelegate(
460 /* [retval][out] */ IWebEditingDelegate **d);
462 virtual HRESULT STDMETHODCALLTYPE styleDeclarationWithText(
463 /* [in] */ BSTR text,
464 /* [retval][out] */ IDOMCSSStyleDeclaration **style);
466 virtual HRESULT STDMETHODCALLTYPE hasSelectedRange(
467 /* [retval][out] */ BOOL *hasSelectedRange);
469 virtual HRESULT STDMETHODCALLTYPE cutEnabled(
470 /* [retval][out] */ BOOL *enabled);
472 virtual HRESULT STDMETHODCALLTYPE copyEnabled(
473 /* [retval][out] */ BOOL *enabled);
475 virtual HRESULT STDMETHODCALLTYPE pasteEnabled(
476 /* [retval][out] */ BOOL *enabled);
478 virtual HRESULT STDMETHODCALLTYPE deleteEnabled(
479 /* [retval][out] */ BOOL *enabled);
481 virtual HRESULT STDMETHODCALLTYPE editingEnabled(
482 /* [retval][out] */ BOOL *enabled);
484 virtual HRESULT STDMETHODCALLTYPE isGrammarCheckingEnabled(
485 /* [retval][out] */ BOOL *enabled);
487 virtual HRESULT STDMETHODCALLTYPE setGrammarCheckingEnabled(
490 virtual HRESULT STDMETHODCALLTYPE setPageSizeMultiplier(
491 /* [in] */ float multiplier);
493 virtual HRESULT STDMETHODCALLTYPE pageSizeMultiplier(
494 /* [retval][out] */ float *multiplier);
496 virtual HRESULT STDMETHODCALLTYPE canZoomPageIn(
497 /* [in] */ IUnknown *sender,
498 /* [retval][out] */ BOOL *result);
500 virtual HRESULT STDMETHODCALLTYPE zoomPageIn(
501 /* [in] */ IUnknown *sender);
503 virtual HRESULT STDMETHODCALLTYPE canZoomPageOut(
504 /* [in] */ IUnknown *sender,
505 /* [retval][out] */ BOOL *result);
507 virtual HRESULT STDMETHODCALLTYPE zoomPageOut(
508 /* [in] */ IUnknown *sender);
510 virtual HRESULT STDMETHODCALLTYPE canResetPageZoom(
511 /* [in] */ IUnknown *sender,
512 /* [retval][out] */ BOOL *result);
514 virtual HRESULT STDMETHODCALLTYPE resetPageZoom(
515 /* [in] */ IUnknown *sender);
517 // IWebViewUndoableEditing
519 virtual HRESULT STDMETHODCALLTYPE replaceSelectionWithNode(
520 /* [in] */ IDOMNode *node);
522 virtual HRESULT STDMETHODCALLTYPE replaceSelectionWithText(
523 /* [in] */ BSTR text);
525 virtual HRESULT STDMETHODCALLTYPE replaceSelectionWithMarkupString(
526 /* [in] */ BSTR markupString);
528 virtual HRESULT STDMETHODCALLTYPE replaceSelectionWithArchive(
529 /* [in] */ IWebArchive *archive);
531 virtual HRESULT STDMETHODCALLTYPE deleteSelection( void);
533 virtual HRESULT STDMETHODCALLTYPE clearSelection(void);
535 virtual HRESULT STDMETHODCALLTYPE applyStyle(
536 /* [in] */ IDOMCSSStyleDeclaration *style);
538 // IWebViewEditingActions
540 virtual HRESULT STDMETHODCALLTYPE copy(
541 /* [in] */ IUnknown *sender);
543 virtual HRESULT STDMETHODCALLTYPE cut(
544 /* [in] */ IUnknown *sender);
546 virtual HRESULT STDMETHODCALLTYPE paste(
547 /* [in] */ IUnknown *sender);
549 virtual HRESULT STDMETHODCALLTYPE copyURL(
550 /* [in] */ BSTR url);
552 virtual HRESULT STDMETHODCALLTYPE copyFont(
553 /* [in] */ IUnknown *sender);
555 virtual HRESULT STDMETHODCALLTYPE pasteFont(
556 /* [in] */ IUnknown *sender);
558 virtual HRESULT STDMETHODCALLTYPE delete_(
559 /* [in] */ IUnknown *sender);
561 virtual HRESULT STDMETHODCALLTYPE pasteAsPlainText(
562 /* [in] */ IUnknown *sender);
564 virtual HRESULT STDMETHODCALLTYPE pasteAsRichText(
565 /* [in] */ IUnknown *sender);
567 virtual HRESULT STDMETHODCALLTYPE changeFont(
568 /* [in] */ IUnknown *sender);
570 virtual HRESULT STDMETHODCALLTYPE changeAttributes(
571 /* [in] */ IUnknown *sender);
573 virtual HRESULT STDMETHODCALLTYPE changeDocumentBackgroundColor(
574 /* [in] */ IUnknown *sender);
576 virtual HRESULT STDMETHODCALLTYPE changeColor(
577 /* [in] */ IUnknown *sender);
579 virtual HRESULT STDMETHODCALLTYPE alignCenter(
580 /* [in] */ IUnknown *sender);
582 virtual HRESULT STDMETHODCALLTYPE alignJustified(
583 /* [in] */ IUnknown *sender);
585 virtual HRESULT STDMETHODCALLTYPE alignLeft(
586 /* [in] */ IUnknown *sender);
588 virtual HRESULT STDMETHODCALLTYPE alignRight(
589 /* [in] */ IUnknown *sender);
591 virtual HRESULT STDMETHODCALLTYPE checkSpelling(
592 /* [in] */ IUnknown *sender);
594 virtual HRESULT STDMETHODCALLTYPE showGuessPanel(
595 /* [in] */ IUnknown *sender);
597 virtual HRESULT STDMETHODCALLTYPE performFindPanelAction(
598 /* [in] */ IUnknown *sender);
600 virtual HRESULT STDMETHODCALLTYPE startSpeaking(
601 /* [in] */ IUnknown *sender);
603 virtual HRESULT STDMETHODCALLTYPE stopSpeaking(
604 /* [in] */ IUnknown *sender);
606 // IWebNotificationObserver
608 virtual HRESULT STDMETHODCALLTYPE onNotify(
609 /* [in] */ IWebNotification *notification);
613 virtual HRESULT STDMETHODCALLTYPE MIMETypeForExtension(
614 /* [in] */ BSTR extension,
615 /* [retval][out] */ BSTR *mimeType);
617 virtual HRESULT STDMETHODCALLTYPE setCustomDropTarget(
618 /* [in] */ IDropTarget* dt);
620 virtual HRESULT STDMETHODCALLTYPE removeCustomDropTarget();
622 virtual HRESULT STDMETHODCALLTYPE setInViewSourceMode(
623 /* [in] */ BOOL flag);
625 virtual HRESULT STDMETHODCALLTYPE inViewSourceMode(
626 /* [retval][out] */ BOOL* flag);
628 virtual HRESULT STDMETHODCALLTYPE viewWindow(
629 /* [retval][out] */ OLE_HANDLE *window);
631 virtual HRESULT STDMETHODCALLTYPE setFormDelegate(
632 /* [in] */ IWebFormDelegate *formDelegate);
634 virtual HRESULT STDMETHODCALLTYPE formDelegate(
635 /* [retval][out] */ IWebFormDelegate **formDelegate);
637 virtual HRESULT STDMETHODCALLTYPE setFrameLoadDelegatePrivate(
638 /* [in] */ IWebFrameLoadDelegatePrivate *frameLoadDelegatePrivate);
640 virtual HRESULT STDMETHODCALLTYPE frameLoadDelegatePrivate(
641 /* [retval][out] */ IWebFrameLoadDelegatePrivate **frameLoadDelegatePrivate);
643 virtual HRESULT STDMETHODCALLTYPE scrollOffset(
644 /* [retval][out] */ LPPOINT offset);
646 virtual HRESULT STDMETHODCALLTYPE scrollBy(
647 /* [in] */ LPPOINT offset);
649 virtual HRESULT STDMETHODCALLTYPE visibleContentRect(
650 /* [retval][out] */ LPRECT rect);
652 virtual HRESULT STDMETHODCALLTYPE updateFocusedAndActiveState();
654 virtual HRESULT STDMETHODCALLTYPE executeCoreCommandByName(BSTR name, BSTR value);
656 virtual HRESULT STDMETHODCALLTYPE clearMainFrameName();
658 virtual HRESULT STDMETHODCALLTYPE markAllMatchesForText(
659 BSTR search, BOOL caseSensitive, BOOL highlight, UINT limit, UINT* matches);
661 virtual HRESULT STDMETHODCALLTYPE unmarkAllTextMatches();
663 virtual HRESULT STDMETHODCALLTYPE rectsForTextMatches(
664 IEnumTextMatches** pmatches);
666 virtual HRESULT STDMETHODCALLTYPE generateSelectionImage(
667 BOOL forceWhiteText, OLE_HANDLE* hBitmap);
669 virtual HRESULT STDMETHODCALLTYPE selectionRect(
672 virtual HRESULT STDMETHODCALLTYPE DragEnter(
673 IDataObject* pDataObject, DWORD grfKeyState, POINTL pt, DWORD* pdwEffect);
675 virtual HRESULT STDMETHODCALLTYPE DragOver(
676 DWORD grfKeyState, POINTL pt, DWORD* pdwEffect);
678 virtual HRESULT STDMETHODCALLTYPE DragLeave();
680 virtual HRESULT STDMETHODCALLTYPE Drop(
681 IDataObject* pDataObject, DWORD grfKeyState, POINTL pt, DWORD* pdwEffect);
683 virtual HRESULT STDMETHODCALLTYPE canHandleRequest(
684 IWebURLRequest *request,
687 virtual HRESULT STDMETHODCALLTYPE standardUserAgentWithApplicationName(
688 /* [in] */ BSTR applicationName,
689 /* [retval][out] */ BSTR *groupName);
691 virtual HRESULT STDMETHODCALLTYPE clearFocusNode();
693 virtual HRESULT STDMETHODCALLTYPE setInitialFocus(
694 /* [in] */ BOOL forward);
696 virtual HRESULT STDMETHODCALLTYPE setTabKeyCyclesThroughElements(
697 /* [in] */ BOOL cycles);
699 virtual HRESULT STDMETHODCALLTYPE tabKeyCyclesThroughElements(
700 /* [retval][out] */ BOOL *result);
702 virtual HRESULT STDMETHODCALLTYPE setAllowSiteSpecificHacks(
703 /* [in] */ BOOL allows);
705 virtual HRESULT STDMETHODCALLTYPE addAdditionalPluginDirectory(
706 /* [in] */ BSTR directory);
708 virtual HRESULT STDMETHODCALLTYPE loadBackForwardListFromOtherView(
709 /* [in] */ IWebView *otherView);
711 virtual HRESULT STDMETHODCALLTYPE inspector(
712 /* [retval][out] */ IWebInspector**);
714 virtual HRESULT STDMETHODCALLTYPE clearUndoRedoOperations( void);
715 virtual HRESULT STDMETHODCALLTYPE shouldClose(
716 /* [retval][out] */ BOOL* result);
718 virtual HRESULT STDMETHODCALLTYPE setProhibitsMainFrameScrolling(BOOL);
719 virtual HRESULT STDMETHODCALLTYPE setShouldApplyMacFontAscentHack(BOOL);
721 virtual HRESULT STDMETHODCALLTYPE windowAncestryDidChange();
723 virtual HRESULT STDMETHODCALLTYPE paintDocumentRectToContext(
724 /* [in] */ RECT rect,
725 /* [in] */ OLE_HANDLE dc);
727 virtual HRESULT STDMETHODCALLTYPE paintScrollViewRectToContextAtPoint(
728 /* [in] */ RECT rect,
730 /* [in] */ OLE_HANDLE dc);
732 virtual HRESULT STDMETHODCALLTYPE reportException(
733 /* [in] */ JSContextRef context,
734 /* [in] */ JSValueRef exception);
736 virtual HRESULT STDMETHODCALLTYPE elementFromJS(
737 /* [in] */ JSContextRef context,
738 /* [in] */ JSValueRef nodeObject,
739 /* [retval][out] */ IDOMElement **element);
741 virtual HRESULT STDMETHODCALLTYPE setCustomHTMLTokenizerTimeDelay(
742 /* [in] */ double timeDelay);
744 virtual HRESULT STDMETHODCALLTYPE setCustomHTMLTokenizerChunkSize(
745 /* [in] */ int chunkSize);
747 virtual HRESULT STDMETHODCALLTYPE backingStore(
748 /* [out, retval] */ OLE_HANDLE* hBitmap);
750 virtual HRESULT STDMETHODCALLTYPE setTransparent(
751 /* [in] */ BOOL transparent);
753 virtual HRESULT STDMETHODCALLTYPE transparent(
754 /* [out, retval] */ BOOL* transparent);
756 virtual HRESULT STDMETHODCALLTYPE setDefersCallbacks(
757 /* [in] */ BOOL defersCallbacks);
759 virtual HRESULT STDMETHODCALLTYPE defersCallbacks(
760 /* [out, retval] */ BOOL* defersCallbacks);
762 virtual HRESULT STDMETHODCALLTYPE globalHistoryItem(
763 /* [out, retval] */ IWebHistoryItem** item);
765 virtual HRESULT STDMETHODCALLTYPE setAlwaysUsesComplexTextCodePath(
766 /* [in] */ BOOL complex);
768 virtual HRESULT STDMETHODCALLTYPE alwaysUsesComplexTextCodePath(
769 /* [out, retval] */ BOOL* complex);
771 virtual HRESULT STDMETHODCALLTYPE setCookieEnabled(
772 /* [in] */ BOOL enable);
774 virtual HRESULT STDMETHODCALLTYPE cookieEnabled(
775 /* [out, retval] */ BOOL* enabled);
777 virtual HRESULT STDMETHODCALLTYPE setMediaVolume(
778 /* [in] */ float volume);
780 virtual HRESULT STDMETHODCALLTYPE mediaVolume(
781 /* [out, retval] */ float* volume);
783 virtual HRESULT STDMETHODCALLTYPE registerEmbeddedViewMIMEType(
784 /* [in] */ BSTR mimeType);
786 virtual HRESULT STDMETHODCALLTYPE setMemoryCacheDelegateCallsEnabled(
787 /* [in] */ BOOL enabled);
789 virtual HRESULT STDMETHODCALLTYPE setJavaScriptURLsAreAllowed(
790 /* [in] */ BOOL areAllowed);
792 virtual HRESULT STDMETHODCALLTYPE setCanStartPlugins(
793 /* [in] */ BOOL canStartPlugins);
795 virtual HRESULT STDMETHODCALLTYPE addUserScriptToGroup(BSTR groupName, IWebScriptWorld*, BSTR source, BSTR url,
796 unsigned whitelistCount, BSTR* whitelist,
797 unsigned blacklistCount, BSTR* blacklist,
798 WebUserScriptInjectionTime);
799 virtual HRESULT STDMETHODCALLTYPE addUserStyleSheetToGroup(BSTR groupName, IWebScriptWorld*, BSTR source, BSTR url,
800 unsigned whitelistCount, BSTR* whitelist,
801 unsigned blacklistCount, BSTR* blacklist);
802 virtual HRESULT STDMETHODCALLTYPE removeUserScriptFromGroup(BSTR groupName, IWebScriptWorld*, BSTR url);
803 virtual HRESULT STDMETHODCALLTYPE removeUserStyleSheetFromGroup(BSTR groupName, IWebScriptWorld*, BSTR url);
804 virtual HRESULT STDMETHODCALLTYPE removeUserScriptsFromGroup(BSTR groupName, IWebScriptWorld*);
805 virtual HRESULT STDMETHODCALLTYPE removeUserStyleSheetsFromGroup(BSTR groupName, IWebScriptWorld*);
806 virtual HRESULT STDMETHODCALLTYPE removeAllUserContentFromGroup(BSTR groupName);
808 virtual HRESULT STDMETHODCALLTYPE unused1();
809 virtual HRESULT STDMETHODCALLTYPE unused2();
811 virtual HRESULT STDMETHODCALLTYPE invalidateBackingStore(const RECT*);
813 virtual HRESULT STDMETHODCALLTYPE addOriginAccessWhitelistEntry(BSTR sourceOrigin, BSTR destinationProtocol, BSTR destinationHost, BOOL allowDestinationSubdomains);
814 virtual HRESULT STDMETHODCALLTYPE removeOriginAccessWhitelistEntry(BSTR sourceOrigin, BSTR destinationProtocol, BSTR destinationHost, BOOL allowDestinationSubdomains);
815 virtual HRESULT STDMETHODCALLTYPE resetOriginAccessWhitelists();
817 virtual HRESULT STDMETHODCALLTYPE setHistoryDelegate(IWebHistoryDelegate* historyDelegate);
818 virtual HRESULT STDMETHODCALLTYPE historyDelegate(IWebHistoryDelegate** historyDelegate);
819 virtual HRESULT STDMETHODCALLTYPE addVisitedLinks(BSTR* visitedURLs, unsigned visitedURLCount);
821 virtual HRESULT STDMETHODCALLTYPE unused3();
822 virtual HRESULT STDMETHODCALLTYPE unused4();
823 virtual HRESULT STDMETHODCALLTYPE unused5();
825 virtual HRESULT STDMETHODCALLTYPE setGeolocationProvider(IWebGeolocationProvider* locationProvider);
826 virtual HRESULT STDMETHODCALLTYPE geolocationProvider(IWebGeolocationProvider** locationProvider);
827 virtual HRESULT STDMETHODCALLTYPE geolocationDidChangePosition(IWebGeolocationPosition* position);
828 virtual HRESULT STDMETHODCALLTYPE geolocationDidFailWithError(IWebError* error);
830 virtual HRESULT STDMETHODCALLTYPE setDomainRelaxationForbiddenForURLScheme(BOOL forbidden, BSTR scheme);
831 virtual HRESULT STDMETHODCALLTYPE registerURLSchemeAsSecure(BSTR);
832 virtual HRESULT STDMETHODCALLTYPE registerURLSchemeAsAllowingLocalStorageAccessInPrivateBrowsing(BSTR);
833 virtual HRESULT STDMETHODCALLTYPE registerURLSchemeAsAllowingDatabaseAccessInPrivateBrowsing(BSTR);
835 virtual HRESULT STDMETHODCALLTYPE nextDisplayIsSynchronous();
837 virtual HRESULT STDMETHODCALLTYPE defaultMinimumTimerInterval(
838 /* [retval][out] */ double *interval);
840 virtual HRESULT STDMETHODCALLTYPE setMinimumTimerInterval(
843 virtual HRESULT STDMETHODCALLTYPE httpPipeliningEnabled(
844 /* [out, retval] */ BOOL* enabled);
846 virtual HRESULT STDMETHODCALLTYPE setHTTPPipeliningEnabled(
849 virtual HRESULT STDMETHODCALLTYPE setUsesLayeredWindow(BOOL);
850 virtual HRESULT STDMETHODCALLTYPE usesLayeredWindow(BOOL*);
853 bool shouldUseEmbeddedView(const WTF::String& mimeType) const;
855 WebCore::Page* page();
856 bool handleMouseEvent(UINT, WPARAM, LPARAM);
857 void setMouseActivated(bool flag) { m_mouseActivated = flag; }
858 bool handleContextMenuEvent(WPARAM, LPARAM);
859 bool onMeasureItem(WPARAM, LPARAM);
860 bool onDrawItem(WPARAM, LPARAM);
861 bool onInitMenuPopup(WPARAM, LPARAM);
862 bool onUninitMenuPopup(WPARAM, LPARAM);
863 void performContextMenuAction(WPARAM, LPARAM, bool byPosition);
864 bool mouseWheel(WPARAM, LPARAM, bool isMouseHWheel);
865 bool verticalScroll(WPARAM, LPARAM);
866 bool horizontalScroll(WPARAM, LPARAM);
867 bool gesture(WPARAM, LPARAM);
868 bool gestureNotify(WPARAM, LPARAM);
869 bool execCommand(WPARAM wParam, LPARAM lParam);
870 bool keyDown(WPARAM, LPARAM, bool systemKeyDown = false);
871 bool keyUp(WPARAM, LPARAM, bool systemKeyDown = false);
872 bool keyPress(WPARAM, LPARAM, bool systemKeyDown = false);
873 void paint(HDC, LPARAM);
874 void paintIntoWindow(HDC bitmapDC, HDC windowDC, const WebCore::IntRect& dirtyRect);
875 bool ensureBackingStore();
876 void addToDirtyRegion(const WebCore::IntRect&);
877 void addToDirtyRegion(HRGN);
878 void scrollBackingStore(WebCore::FrameView*, int dx, int dy, const WebCore::IntRect& scrollViewRect, const WebCore::IntRect& clipRect);
879 void deleteBackingStore();
880 void repaint(const WebCore::IntRect&, bool contentChanged, bool immediate = false, bool repaintContentOnly = false);
881 void frameRect(RECT* rect);
883 void closeWindowSoon();
884 void closeWindowTimerFired();
885 bool didClose() const { return m_didClose; }
887 bool transparent() const { return m_transparent; }
888 bool usesLayeredWindow() const { return m_usesLayeredWindow; }
890 bool onIMEStartComposition();
891 bool onIMEComposition(LPARAM);
892 bool onIMEEndComposition();
893 bool onIMEChar(WPARAM, LPARAM);
894 bool onIMENotify(WPARAM, LPARAM, LRESULT*);
895 LRESULT onIMERequest(WPARAM, LPARAM);
896 bool onIMESelect(WPARAM, LPARAM);
897 bool onIMESetContext(WPARAM, LPARAM);
898 void selectionChanged();
899 void resetIME(WebCore::Frame*);
900 void setInputMethodState(bool);
902 HRESULT registerDragDrop();
903 HRESULT revokeDragDrop();
905 // Convenient to be able to violate the rules of COM here for easy movement to the frame.
906 WebFrame* topLevelFrame() const { return m_mainFrame; }
907 const WTF::String& userAgentForKURL(const WebCore::KURL& url);
909 static bool canHandleRequest(const WebCore::ResourceRequest&);
911 static WTF::String standardUserAgentWithApplicationName(const WTF::String&);
913 void setIsBeingDestroyed();
914 bool isBeingDestroyed() const { return m_isBeingDestroyed; }
916 const char* interpretKeyEvent(const WebCore::KeyboardEvent*);
917 bool handleEditingKeyboardEvent(WebCore::KeyboardEvent*);
919 bool isPainting() const { return m_paintCount > 0; }
921 void setToolTip(const WTF::String&);
923 void registerForIconNotification(bool listen);
924 void dispatchDidReceiveIconFromWebFrame(WebFrame*);
926 HRESULT notifyDidAddIcon(IWebNotification*);
927 HRESULT notifyPreferencesChanged(IWebNotification*);
929 static void setCacheModel(WebCacheModel);
930 static WebCacheModel cacheModel();
931 static bool didSetCacheModel();
932 static WebCacheModel maxCacheModelInAnyInstance();
934 void updateActiveStateSoon() const;
935 void deleteBackingStoreSoon();
936 void cancelDeleteBackingStoreSoon();
938 HWND topLevelParent() const { return m_topLevelParent; }
939 HWND viewWindow() const { return m_viewWindow; }
941 void updateActiveState();
943 bool onGetObject(WPARAM, LPARAM, LRESULT&) const;
944 static STDMETHODIMP AccessibleObjectFromWindow(HWND, DWORD objectID, REFIID, void** ppObject);
946 void downloadURL(const WebCore::KURL&);
948 #if USE(ACCELERATED_COMPOSITING)
949 void flushPendingGraphicsLayerChangesSoon();
950 void setRootChildLayer(WebCore::GraphicsLayer*);
953 #if PLATFORM(WIN) && USE(AVFOUNDATION)
954 WebCore::GraphicsDeviceAdapter* graphicsDeviceAdapter() const;
957 void enterFullscreenForNode(WebCore::Node*);
958 void exitFullscreen();
960 void setLastCursor(HCURSOR cursor) { m_lastSetCursor = cursor; }
962 void setGlobalHistoryItem(WebCore::HistoryItem*);
964 #if ENABLE(FULLSCREEN_API)
965 bool supportsFullScreenForElement(const WebCore::Element*, bool withKeyboard) const;
966 bool isFullScreen() const;
967 WebCore::FullScreenController* fullScreenController();
968 void setFullScreenElement(PassRefPtr<WebCore::Element>);
969 WebCore::Element* fullScreenElement() const { return m_fullScreenElement.get(); }
972 // Used by TextInputController in DumpRenderTree
974 HRESULT STDMETHODCALLTYPE setCompositionForTesting(
975 /* [in] */ BSTR composition,
976 /* [in] */ UINT from,
977 /* [in] */ UINT length);
979 HRESULT STDMETHODCALLTYPE hasCompositionForTesting(/* [out, retval] */ BOOL* result);
981 HRESULT STDMETHODCALLTYPE confirmCompositionForTesting(/* [in] */ BSTR composition);
983 HRESULT STDMETHODCALLTYPE compositionRangeForTesting(/* [out] */ UINT* startPosition, /* [out] */ UINT* length);
985 HRESULT STDMETHODCALLTYPE firstRectForCharacterRangeForTesting(
986 /* [in] */ UINT location,
987 /* [in] */ UINT length,
988 /* [out, retval] */ RECT* resultRect);
990 HRESULT STDMETHODCALLTYPE selectedRangeForTesting(/* [out] */ UINT* location, /* [out] */ UINT* length);
992 void setZoomMultiplier(float multiplier, bool isTextOnly);
993 float zoomMultiplier(bool isTextOnly);
994 bool canZoomIn(bool isTextOnly);
995 HRESULT zoomIn(bool isTextOnly);
996 bool canZoomOut(bool isTextOnly);
997 HRESULT zoomOut(bool isTextOnly);
998 bool canResetZoom(bool isTextOnly);
999 HRESULT resetZoom(bool isTextOnly);
1002 void sizeChanged(const WebCore::IntSize&);
1004 enum WindowsToPaint { PaintWebViewOnly, PaintWebViewAndChildren };
1005 void paintIntoBackingStore(WebCore::FrameView*, HDC bitmapDC, const WebCore::IntRect& dirtyRect, WindowsToPaint);
1006 void updateBackingStore(WebCore::FrameView*, HDC = 0, bool backingStoreCompletelyDirty = false, WindowsToPaint = PaintWebViewOnly);
1008 void performLayeredWindowUpdate();
1010 WebCore::DragOperation keyStateToDragOperation(DWORD grfKeyState) const;
1012 // FIXME: This variable is part of a workaround. The drop effect (pdwEffect) passed to Drop is incorrect.
1013 // We set this variable in DragEnter and DragOver so that it can be used in Drop to set the correct drop effect.
1014 // Thus, on return from DoDragDrop we have the correct pdwEffect for the drag-and-drop operation.
1015 // (see https://bugs.webkit.org/show_bug.cgi?id=29264)
1016 DWORD m_lastDropEffect;
1018 #if USE(ACCELERATED_COMPOSITING)
1019 // GraphicsLayerClient
1020 virtual void notifyAnimationStarted(const WebCore::GraphicsLayer*, double time);
1021 virtual void notifySyncRequired(const WebCore::GraphicsLayer*);
1022 virtual void paintContents(const WebCore::GraphicsLayer*, WebCore::GraphicsContext&, WebCore::GraphicsLayerPaintingPhase, const WebCore::IntRect& inClip);
1023 virtual bool showDebugBorders(const WebCore::GraphicsLayer*) const;
1024 virtual bool showRepaintCounter(const WebCore::GraphicsLayer*) const;
1026 // CACFLayerTreeHostClient
1027 virtual void flushPendingGraphicsLayerChanges();
1030 bool m_shouldInvertColors;
1031 void setShouldInvertColors(bool);
1034 static bool registerWebViewWindowClass();
1035 static LRESULT CALLBACK WebViewWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
1037 HIMC getIMMContext();
1038 void releaseIMMContext(HIMC);
1039 static bool allowSiteSpecificHacks() { return s_allowSiteSpecificHacks; }
1040 void preflightSpellChecker();
1041 bool continuousCheckingAllowed();
1042 void initializeToolTipWindow();
1043 void prepareCandidateWindow(WebCore::Frame*, HIMC);
1044 void updateSelectionForIME();
1045 LRESULT onIMERequestCharPosition(WebCore::Frame*, IMECHARPOSITION*);
1046 LRESULT onIMERequestReconvertString(WebCore::Frame*, RECONVERTSTRING*);
1047 bool developerExtrasEnabled() const;
1049 bool shouldInitializeTrackPointHack();
1051 // AllWebViewSet functions
1052 void addToAllWebViewsSet();
1053 void removeFromAllWebViewsSet();
1055 virtual void windowReceivedMessage(HWND, UINT message, WPARAM, LPARAM);
1057 #if ENABLE(FULLSCREEN_API)
1058 virtual HWND fullScreenClientWindow() const;
1059 virtual HWND fullScreenClientParentWindow() const;
1060 virtual void fullScreenClientSetParentWindow(HWND);
1061 virtual void fullScreenClientWillEnterFullScreen();
1062 virtual void fullScreenClientDidEnterFullScreen();
1063 virtual void fullScreenClientWillExitFullScreen();
1064 virtual void fullScreenClientDidExitFullScreen();
1065 virtual void fullScreenClientForceRepaint();
1069 #if !ASSERT_DISABLED
1070 bool m_deletionHasBegun;
1074 WebFrame* m_mainFrame;
1075 WebCore::Page* m_page;
1076 #if ENABLE(INSPECTOR)
1077 WebInspectorClient* m_inspectorClient;
1078 #endif // ENABLE(INSPECTOR)
1080 RefPtr<RefCountedHBITMAP> m_backingStoreBitmap;
1081 SIZE m_backingStoreSize;
1082 RefPtr<RefCountedHRGN> m_backingStoreDirtyRegion;
1084 COMPtr<IWebEditingDelegate> m_editingDelegate;
1085 COMPtr<IWebFrameLoadDelegate> m_frameLoadDelegate;
1086 COMPtr<IWebFrameLoadDelegatePrivate> m_frameLoadDelegatePrivate;
1087 COMPtr<IWebUIDelegate> m_uiDelegate;
1088 COMPtr<IWebUIDelegatePrivate> m_uiDelegatePrivate;
1089 COMPtr<IWebFormDelegate> m_formDelegate;
1090 COMPtr<IWebPolicyDelegate> m_policyDelegate;
1091 COMPtr<IWebResourceLoadDelegate> m_resourceLoadDelegate;
1092 COMPtr<IWebDownloadDelegate> m_downloadDelegate;
1093 COMPtr<IWebHistoryDelegate> m_historyDelegate;
1094 COMPtr<WebPreferences> m_preferences;
1095 #if ENABLE(INSPECTOR)
1096 COMPtr<WebInspector> m_webInspector;
1097 #endif // ENABLE(INSPECTOR)
1098 COMPtr<IWebGeolocationProvider> m_geolocationProvider;
1100 bool m_userAgentOverridden;
1101 bool m_useBackForwardList;
1102 WTF::String m_userAgentCustom;
1103 WTF::String m_userAgentStandard;
1104 float m_zoomMultiplier;
1105 bool m_zoomsTextOnly;
1106 WTF::String m_overrideEncoding;
1107 WTF::String m_applicationName;
1108 bool m_mouseActivated;
1109 // WebCore dragging logic needs to be able to inspect the drag data
1110 // this is updated in DragEnter/Leave/Drop
1111 COMPtr<IDataObject> m_dragData;
1112 COMPtr<IDropTargetHelper> m_dropTargetHelper;
1113 UChar m_currentCharacterCode;
1114 bool m_isBeingDestroyed;
1115 unsigned m_paintCount;
1116 bool m_hasSpellCheckerDocumentTag;
1117 bool m_smartInsertDeleteEnabled;
1118 bool m_selectTrailingWhitespaceEnabled;
1120 bool m_hasCustomDropTarget;
1121 unsigned m_inIMEComposition;
1123 WTF::String m_toolTip;
1124 bool m_deleteBackingStoreTimerActive;
1128 static bool s_allowSiteSpecificHacks;
1130 WebCore::SuspendableTimer* m_closeWindowTimer;
1131 OwnPtr<TRACKMOUSEEVENT> m_mouseOutTracker;
1133 HWND m_topLevelParent;
1135 OwnPtr<HashSet<WTF::String> > m_embeddedViewMIMETypes;
1137 //Variables needed to store gesture information
1138 RefPtr<WebCore::Node> m_gestureTargetNode;
1145 OwnPtr<FullscreenVideoController> m_fullScreenVideoController;
1148 #if USE(ACCELERATED_COMPOSITING)
1149 bool isAcceleratedCompositing() const { return m_isAcceleratedCompositing; }
1150 void setAcceleratedCompositing(bool);
1152 RefPtr<WebCore::CACFLayerTreeHost> m_layerTreeHost;
1153 OwnPtr<WebCore::GraphicsLayer> m_backingLayer;
1154 bool m_isAcceleratedCompositing;
1157 bool m_nextDisplayIsSynchronous;
1158 bool m_usesLayeredWindow;
1160 HCURSOR m_lastSetCursor;
1162 RefPtr<WebCore::HistoryItem> m_globalHistoryItem;
1164 #if ENABLE(FULLSCREEN_API)
1165 RefPtr<WebCore::Element> m_fullScreenElement;
1166 OwnPtr<WebCore::FullScreenController> m_fullscreenController;