1 /* 2 * Copyright (C) 2006, 2007 Apple Inc. All rights reserved. 3 * 4 * Redistribution and use in source and binary forms, with or without 5 * modification, are permitted provided that the following conditions 6 * are met: 7 * 1. Redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer. 9 * 2. Redistributions in binary form must reproduce the above copyright 10 * notice, this list of conditions and the following disclaimer in the 11 * documentation and/or other materials provided with the distribution. 12 * 13 * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY 14 * EXPRESS OR IMPLIED WARRANTIES, INCfLUDING, BUT NOT LIMITED TO, THE 15 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 16 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR 17 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 18 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 19 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 20 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 21 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24 */ 25 26 #ifndef WebView_H 27 #define WebView_H 28 29 #include "WebKit.h" 30 #include "WebFrame.h" 31 #include "WebPreferences.h" 32 #include <WebCore/COMPtr.h> 33 #include <WebCore/DragActions.h> 34 #include <WebCore/IntRect.h> 35 #include <WebCore/RefCountedGDIHandle.h> 36 #include <WebCore/SuspendableTimer.h> 37 #include <WebCore/WindowMessageListener.h> 38 #include <wtf/HashSet.h> 39 #include <wtf/OwnPtr.h> 40 #include <wtf/RefPtr.h> 41 42 #if USE(ACCELERATED_COMPOSITING) 43 #include <WebCore/CACFLayerTreeHostClient.h> 44 #include <WebCore/GraphicsLayerClient.h> 45 46 namespace WebCore { 47 class CACFLayerTreeHost; 48 } 49 #endif 50 51 namespace WebCore { 52 class HistoryItem; 53 } 54 55 class FullscreenVideoController; 56 class WebBackForwardList; 57 class WebFrame; 58 class WebInspector; 59 class WebInspectorClient; 60 61 typedef WebCore::RefCountedGDIHandle<HBITMAP> RefCountedHBITMAP; 62 typedef WebCore::RefCountedGDIHandle<HRGN> RefCountedHRGN; 63 64 WebView* kit(WebCore::Page*); 65 WebCore::Page* core(IWebView*); 66 67 interface IDropTargetHelper; 68 69 class WebView 70 : public IWebView 71 , public IWebViewPrivate 72 , public IWebIBActions 73 , public IWebViewCSS 74 , public IWebViewEditing 75 , public IWebViewUndoableEditing 76 , public IWebViewEditingActions 77 , public IWebNotificationObserver 78 , public IDropTarget 79 , WebCore::WindowMessageListener 80 #if USE(ACCELERATED_COMPOSITING) 81 , WebCore::GraphicsLayerClient 82 , WebCore::CACFLayerTreeHostClient 83 #endif 84 { 85 public: 86 static WebView* createInstance(); 87 protected: 88 WebView(); 89 ~WebView(); 90 91 public: 92 // IUnknown 93 virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID riid, void** ppvObject); 94 virtual ULONG STDMETHODCALLTYPE AddRef(void); 95 virtual ULONG STDMETHODCALLTYPE Release(void); 96 97 // IWebView 98 99 virtual HRESULT STDMETHODCALLTYPE canShowMIMEType( 100 /* [in] */ BSTR mimeType, 101 /* [retval][out] */ BOOL *canShow); 102 103 virtual HRESULT STDMETHODCALLTYPE canShowMIMETypeAsHTML( 104 /* [in] */ BSTR mimeType, 105 /* [retval][out] */ BOOL *canShow); 106 107 virtual HRESULT STDMETHODCALLTYPE MIMETypesShownAsHTML( 108 /* [retval][out] */ IEnumVARIANT **enumVariant); 109 110 virtual HRESULT STDMETHODCALLTYPE setMIMETypesShownAsHTML( 111 /* [size_is][in] */ BSTR *mimeTypes, 112 /* [in] */ int cMimeTypes); 113 114 virtual HRESULT STDMETHODCALLTYPE URLFromPasteboard( 115 /* [in] */ IDataObject *pasteboard, 116 /* [retval][out] */ BSTR *url); 117 118 virtual HRESULT STDMETHODCALLTYPE URLTitleFromPasteboard( 119 /* [in] */ IDataObject *pasteboard, 120 /* [retval][out] */ BSTR *urlTitle); 121 122 virtual HRESULT STDMETHODCALLTYPE initWithFrame( 123 /* [in] */ RECT frame, 124 /* [in] */ BSTR frameName, 125 /* [in] */ BSTR groupName); 126 127 virtual HRESULT STDMETHODCALLTYPE setUIDelegate( 128 /* [in] */ IWebUIDelegate *d); 129 130 virtual HRESULT STDMETHODCALLTYPE uiDelegate( 131 /* [out][retval] */ IWebUIDelegate **d); 132 133 virtual HRESULT STDMETHODCALLTYPE setResourceLoadDelegate( 134 /* [in] */ IWebResourceLoadDelegate *d); 135 136 virtual HRESULT STDMETHODCALLTYPE resourceLoadDelegate( 137 /* [out][retval] */ IWebResourceLoadDelegate **d); 138 139 virtual HRESULT STDMETHODCALLTYPE setDownloadDelegate( 140 /* [in] */ IWebDownloadDelegate *d); 141 142 virtual HRESULT STDMETHODCALLTYPE downloadDelegate( 143 /* [out][retval] */ IWebDownloadDelegate **d); 144 145 virtual HRESULT STDMETHODCALLTYPE setFrameLoadDelegate( 146 /* [in] */ IWebFrameLoadDelegate *d); 147 148 virtual HRESULT STDMETHODCALLTYPE frameLoadDelegate( 149 /* [out][retval] */ IWebFrameLoadDelegate **d); 150 151 virtual HRESULT STDMETHODCALLTYPE setPolicyDelegate( 152 /* [in] */ IWebPolicyDelegate *d); 153 154 virtual HRESULT STDMETHODCALLTYPE policyDelegate( 155 /* [out][retval] */ IWebPolicyDelegate **d); 156 157 virtual HRESULT STDMETHODCALLTYPE mainFrame( 158 /* [out][retval] */ IWebFrame **frame); 159 160 virtual HRESULT STDMETHODCALLTYPE focusedFrame( 161 /* [out][retval] */ IWebFrame **frame); 162 163 virtual HRESULT STDMETHODCALLTYPE backForwardList( 164 /* [out][retval] */ IWebBackForwardList **list); 165 166 virtual HRESULT STDMETHODCALLTYPE setMaintainsBackForwardList( 167 /* [in] */ BOOL flag); 168 169 virtual HRESULT STDMETHODCALLTYPE goBack( 170 /* [retval][out] */ BOOL *succeeded); 171 172 virtual HRESULT STDMETHODCALLTYPE goForward( 173 /* [retval][out] */ BOOL *succeeded); 174 175 virtual HRESULT STDMETHODCALLTYPE goToBackForwardItem( 176 /* [in] */ IWebHistoryItem *item, 177 /* [retval][out] */ BOOL *succeeded); 178 179 virtual HRESULT STDMETHODCALLTYPE setTextSizeMultiplier( 180 /* [in] */ float multiplier); 181 182 virtual HRESULT STDMETHODCALLTYPE textSizeMultiplier( 183 /* [retval][out] */ float *multiplier); 184 185 virtual HRESULT STDMETHODCALLTYPE setApplicationNameForUserAgent( 186 /* [in] */ BSTR applicationName); 187 188 virtual HRESULT STDMETHODCALLTYPE applicationNameForUserAgent( 189 /* [retval][out] */ BSTR *applicationName); 190 191 virtual HRESULT STDMETHODCALLTYPE setCustomUserAgent( 192 /* [in] */ BSTR userAgentString); 193 194 virtual HRESULT STDMETHODCALLTYPE customUserAgent( 195 /* [retval][out] */ BSTR *userAgentString); 196 197 virtual HRESULT STDMETHODCALLTYPE userAgentForURL( 198 /* [in] */ BSTR url, 199 /* [retval][out] */ BSTR *userAgent); 200 201 virtual HRESULT STDMETHODCALLTYPE supportsTextEncoding( 202 /* [retval][out] */ BOOL *supports); 203 204 virtual HRESULT STDMETHODCALLTYPE setCustomTextEncodingName( 205 /* [in] */ BSTR encodingName); 206 207 virtual HRESULT STDMETHODCALLTYPE customTextEncodingName( 208 /* [retval][out] */ BSTR *encodingName); 209 210 virtual HRESULT STDMETHODCALLTYPE setMediaStyle( 211 /* [in] */ BSTR media); 212 213 virtual HRESULT STDMETHODCALLTYPE mediaStyle( 214 /* [retval][out] */ BSTR *media); 215 216 virtual HRESULT STDMETHODCALLTYPE stringByEvaluatingJavaScriptFromString( 217 /* [in] */ BSTR script, 218 /* [retval][out] */ BSTR *result); 219 220 virtual HRESULT STDMETHODCALLTYPE windowScriptObject( 221 /* [retval][out] */ IWebScriptObject **webScriptObject); 222 223 virtual HRESULT STDMETHODCALLTYPE setPreferences( 224 /* [in] */ IWebPreferences *prefs); 225 226 virtual HRESULT STDMETHODCALLTYPE preferences( 227 /* [retval][out] */ IWebPreferences **prefs); 228 229 virtual HRESULT STDMETHODCALLTYPE setPreferencesIdentifier( 230 /* [in] */ BSTR anIdentifier); 231 232 virtual HRESULT STDMETHODCALLTYPE preferencesIdentifier( 233 /* [retval][out] */ BSTR *anIdentifier); 234 235 virtual HRESULT STDMETHODCALLTYPE setHostWindow( 236 /* [in] */ OLE_HANDLE window); 237 238 virtual HRESULT STDMETHODCALLTYPE hostWindow( 239 /* [retval][out] */ OLE_HANDLE *window); 240 241 virtual HRESULT STDMETHODCALLTYPE searchFor( 242 /* [in] */ BSTR str, 243 /* [in] */ BOOL forward, 244 /* [in] */ BOOL caseFlag, 245 /* [in] */ BOOL wrapFlag, 246 /* [retval][out] */ BOOL *found); 247 248 virtual HRESULT STDMETHODCALLTYPE registerViewClass( 249 /* [in] */ IWebDocumentView *view, 250 /* [in] */ IWebDocumentRepresentation *representation, 251 /* [in] */ BSTR forMIMEType); 252 253 virtual HRESULT STDMETHODCALLTYPE setGroupName( 254 /* [in] */ BSTR groupName); 255 256 virtual HRESULT STDMETHODCALLTYPE groupName( 257 /* [retval][out] */ BSTR *groupName); 258 259 virtual HRESULT STDMETHODCALLTYPE estimatedProgress( 260 /* [retval][out] */ double *estimatedProgress); 261 262 virtual HRESULT STDMETHODCALLTYPE isLoading( 263 /* [retval][out] */ BOOL *isLoading); 264 265 virtual HRESULT STDMETHODCALLTYPE elementAtPoint( 266 /* [in] */ LPPOINT point, 267 /* [retval][out] */ IPropertyBag **elementDictionary); 268 269 virtual HRESULT STDMETHODCALLTYPE pasteboardTypesForSelection( 270 /* [retval][out] */ IEnumVARIANT **enumVariant); 271 272 virtual HRESULT STDMETHODCALLTYPE writeSelectionWithPasteboardTypes( 273 /* [size_is][in] */ BSTR *types, 274 /* [in] */ int cTypes, 275 /* [in] */ IDataObject *pasteboard); 276 277 virtual HRESULT STDMETHODCALLTYPE pasteboardTypesForElement( 278 /* [in] */ IPropertyBag *elementDictionary, 279 /* [retval][out] */ IEnumVARIANT **enumVariant); 280 281 virtual HRESULT STDMETHODCALLTYPE writeElement( 282 /* [in] */ IPropertyBag *elementDictionary, 283 /* [size_is][in] */ BSTR *withPasteboardTypes, 284 /* [in] */ int cWithPasteboardTypes, 285 /* [in] */ IDataObject *pasteboard); 286 287 virtual HRESULT STDMETHODCALLTYPE selectedText( 288 /* [out, retval] */ BSTR* str); 289 290 virtual HRESULT STDMETHODCALLTYPE centerSelectionInVisibleArea( 291 /* [in] */ IUnknown* sender); 292 293 virtual HRESULT STDMETHODCALLTYPE moveDragCaretToPoint( 294 /* [in] */ LPPOINT point); 295 296 virtual HRESULT STDMETHODCALLTYPE removeDragCaret( void); 297 298 virtual HRESULT STDMETHODCALLTYPE setDrawsBackground( 299 /* [in] */ BOOL drawsBackground); 300 301 virtual HRESULT STDMETHODCALLTYPE drawsBackground( 302 /* [retval][out] */ BOOL *drawsBackground); 303 304 virtual HRESULT STDMETHODCALLTYPE setMainFrameURL( 305 /* [in] */ BSTR urlString); 306 307 virtual HRESULT STDMETHODCALLTYPE mainFrameURL( 308 /* [retval][out] */ BSTR *urlString); 309 310 virtual HRESULT STDMETHODCALLTYPE mainFrameDocument( 311 /* [retval][out] */ IDOMDocument **document); 312 313 virtual HRESULT STDMETHODCALLTYPE mainFrameTitle( 314 /* [retval][out] */ BSTR *title); 315 316 virtual HRESULT STDMETHODCALLTYPE mainFrameIcon( 317 /* [retval][out] */ OLE_HANDLE *hBitmap); 318 319 virtual HRESULT STDMETHODCALLTYPE registerURLSchemeAsLocal( 320 /* [in] */ BSTR scheme); 321 322 virtual HRESULT STDMETHODCALLTYPE close(); 323 324 // IWebIBActions 325 326 virtual HRESULT STDMETHODCALLTYPE takeStringURLFrom( 327 /* [in] */ IUnknown *sender); 328 329 virtual HRESULT STDMETHODCALLTYPE stopLoading( 330 /* [in] */ IUnknown *sender); 331 332 virtual HRESULT STDMETHODCALLTYPE reload( 333 /* [in] */ IUnknown *sender); 334 335 virtual HRESULT STDMETHODCALLTYPE canGoBack( 336 /* [in] */ IUnknown *sender, 337 /* [retval][out] */ BOOL *result); 338 339 virtual HRESULT STDMETHODCALLTYPE goBack( 340 /* [in] */ IUnknown *sender); 341 342 virtual HRESULT STDMETHODCALLTYPE canGoForward( 343 /* [in] */ IUnknown *sender, 344 /* [retval][out] */ BOOL *result); 345 346 virtual HRESULT STDMETHODCALLTYPE goForward( 347 /* [in] */ IUnknown *sender); 348 349 virtual HRESULT STDMETHODCALLTYPE canMakeTextLarger( 350 /* [in] */ IUnknown *sender, 351 /* [retval][out] */ BOOL *result); 352 353 virtual HRESULT STDMETHODCALLTYPE makeTextLarger( 354 /* [in] */ IUnknown *sender); 355 356 virtual HRESULT STDMETHODCALLTYPE canMakeTextSmaller( 357 /* [in] */ IUnknown *sender, 358 /* [retval][out] */ BOOL *result); 359 360 virtual HRESULT STDMETHODCALLTYPE makeTextSmaller( 361 /* [in] */ IUnknown *sender); 362 363 virtual HRESULT STDMETHODCALLTYPE canMakeTextStandardSize( 364 /* [in] */ IUnknown *sender, 365 /* [retval][out] */ BOOL *result); 366 367 virtual HRESULT STDMETHODCALLTYPE makeTextStandardSize( 368 /* [in] */ IUnknown *sender); 369 370 virtual HRESULT STDMETHODCALLTYPE toggleContinuousSpellChecking( 371 /* [in] */ IUnknown *sender); 372 373 virtual HRESULT STDMETHODCALLTYPE toggleSmartInsertDelete( 374 /* [in] */ IUnknown *sender); 375 376 virtual HRESULT STDMETHODCALLTYPE toggleGrammarChecking( 377 /* [in] */ IUnknown *sender); 378 379 virtual HRESULT STDMETHODCALLTYPE reloadFromOrigin( 380 /* [in] */ IUnknown *sender); 381 382 // IWebViewCSS 383 384 virtual HRESULT STDMETHODCALLTYPE computedStyleForElement( 385 /* [in] */ IDOMElement *element, 386 /* [in] */ BSTR pseudoElement, 387 /* [retval][out] */ IDOMCSSStyleDeclaration **style); 388 389 // IWebViewEditing 390 391 virtual HRESULT STDMETHODCALLTYPE editableDOMRangeForPoint( 392 /* [in] */ LPPOINT point, 393 /* [retval][out] */ IDOMRange **range); 394 395 virtual HRESULT STDMETHODCALLTYPE setSelectedDOMRange( 396 /* [in] */ IDOMRange *range, 397 /* [in] */ WebSelectionAffinity affinity); 398 399 virtual HRESULT STDMETHODCALLTYPE selectedDOMRange( 400 /* [retval][out] */ IDOMRange **range); 401 402 virtual HRESULT STDMETHODCALLTYPE selectionAffinity( 403 /* [retval][out][retval][out] */ WebSelectionAffinity *affinity); 404 405 virtual HRESULT STDMETHODCALLTYPE setEditable( 406 /* [in] */ BOOL flag); 407 408 virtual HRESULT STDMETHODCALLTYPE isEditable( 409 /* [retval][out] */ BOOL *isEditable); 410 411 virtual HRESULT STDMETHODCALLTYPE setTypingStyle( 412 /* [in] */ IDOMCSSStyleDeclaration *style); 413 414 virtual HRESULT STDMETHODCALLTYPE typingStyle( 415 /* [retval][out] */ IDOMCSSStyleDeclaration **style); 416 417 virtual HRESULT STDMETHODCALLTYPE setSmartInsertDeleteEnabled( 418 /* [in] */ BOOL flag); 419 420 virtual HRESULT STDMETHODCALLTYPE smartInsertDeleteEnabled( 421 /* [in] */ BOOL *enabled); 422 423 virtual HRESULT STDMETHODCALLTYPE setSelectTrailingWhitespaceEnabled( 424 /* [in] */ BOOL flag); 425 426 virtual HRESULT STDMETHODCALLTYPE isSelectTrailingWhitespaceEnabled( 427 /* [in] */ BOOL *enabled); 428 429 virtual HRESULT STDMETHODCALLTYPE setContinuousSpellCheckingEnabled( 430 /* [in] */ BOOL flag); 431 432 virtual HRESULT STDMETHODCALLTYPE isContinuousSpellCheckingEnabled( 433 /* [retval][out] */ BOOL *enabled); 434 435 virtual HRESULT STDMETHODCALLTYPE spellCheckerDocumentTag( 436 /* [retval][out] */ int *tag); 437 438 virtual HRESULT STDMETHODCALLTYPE undoManager( 439 /* [retval][out] */ IWebUndoManager **manager); 440 441 virtual HRESULT STDMETHODCALLTYPE setEditingDelegate( 442 /* [in] */ IWebEditingDelegate *d); 443 444 virtual HRESULT STDMETHODCALLTYPE editingDelegate( 445 /* [retval][out] */ IWebEditingDelegate **d); 446 447 virtual HRESULT STDMETHODCALLTYPE styleDeclarationWithText( 448 /* [in] */ BSTR text, 449 /* [retval][out] */ IDOMCSSStyleDeclaration **style); 450 451 virtual HRESULT STDMETHODCALLTYPE hasSelectedRange( 452 /* [retval][out] */ BOOL *hasSelectedRange); 453 454 virtual HRESULT STDMETHODCALLTYPE cutEnabled( 455 /* [retval][out] */ BOOL *enabled); 456 457 virtual HRESULT STDMETHODCALLTYPE copyEnabled( 458 /* [retval][out] */ BOOL *enabled); 459 460 virtual HRESULT STDMETHODCALLTYPE pasteEnabled( 461 /* [retval][out] */ BOOL *enabled); 462 463 virtual HRESULT STDMETHODCALLTYPE deleteEnabled( 464 /* [retval][out] */ BOOL *enabled); 465 466 virtual HRESULT STDMETHODCALLTYPE editingEnabled( 467 /* [retval][out] */ BOOL *enabled); 468 469 virtual HRESULT STDMETHODCALLTYPE isGrammarCheckingEnabled( 470 /* [retval][out] */ BOOL *enabled); 471 472 virtual HRESULT STDMETHODCALLTYPE setGrammarCheckingEnabled( 473 BOOL enabled); 474 475 virtual HRESULT STDMETHODCALLTYPE setPageSizeMultiplier( 476 /* [in] */ float multiplier); 477 478 virtual HRESULT STDMETHODCALLTYPE pageSizeMultiplier( 479 /* [retval][out] */ float *multiplier); 480 481 virtual HRESULT STDMETHODCALLTYPE canZoomPageIn( 482 /* [in] */ IUnknown *sender, 483 /* [retval][out] */ BOOL *result); 484 485 virtual HRESULT STDMETHODCALLTYPE zoomPageIn( 486 /* [in] */ IUnknown *sender); 487 488 virtual HRESULT STDMETHODCALLTYPE canZoomPageOut( 489 /* [in] */ IUnknown *sender, 490 /* [retval][out] */ BOOL *result); 491 492 virtual HRESULT STDMETHODCALLTYPE zoomPageOut( 493 /* [in] */ IUnknown *sender); 494 495 virtual HRESULT STDMETHODCALLTYPE canResetPageZoom( 496 /* [in] */ IUnknown *sender, 497 /* [retval][out] */ BOOL *result); 498 499 virtual HRESULT STDMETHODCALLTYPE resetPageZoom( 500 /* [in] */ IUnknown *sender); 501 502 // IWebViewUndoableEditing 503 504 virtual HRESULT STDMETHODCALLTYPE replaceSelectionWithNode( 505 /* [in] */ IDOMNode *node); 506 507 virtual HRESULT STDMETHODCALLTYPE replaceSelectionWithText( 508 /* [in] */ BSTR text); 509 510 virtual HRESULT STDMETHODCALLTYPE replaceSelectionWithMarkupString( 511 /* [in] */ BSTR markupString); 512 513 virtual HRESULT STDMETHODCALLTYPE replaceSelectionWithArchive( 514 /* [in] */ IWebArchive *archive); 515 516 virtual HRESULT STDMETHODCALLTYPE deleteSelection( void); 517 518 virtual HRESULT STDMETHODCALLTYPE clearSelection(void); 519 520 virtual HRESULT STDMETHODCALLTYPE applyStyle( 521 /* [in] */ IDOMCSSStyleDeclaration *style); 522 523 // IWebViewEditingActions 524 525 virtual HRESULT STDMETHODCALLTYPE copy( 526 /* [in] */ IUnknown *sender); 527 528 virtual HRESULT STDMETHODCALLTYPE cut( 529 /* [in] */ IUnknown *sender); 530 531 virtual HRESULT STDMETHODCALLTYPE paste( 532 /* [in] */ IUnknown *sender); 533 534 virtual HRESULT STDMETHODCALLTYPE copyURL( 535 /* [in] */ BSTR url); 536 537 virtual HRESULT STDMETHODCALLTYPE copyFont( 538 /* [in] */ IUnknown *sender); 539 540 virtual HRESULT STDMETHODCALLTYPE pasteFont( 541 /* [in] */ IUnknown *sender); 542 543 virtual HRESULT STDMETHODCALLTYPE delete_( 544 /* [in] */ IUnknown *sender); 545 546 virtual HRESULT STDMETHODCALLTYPE pasteAsPlainText( 547 /* [in] */ IUnknown *sender); 548 549 virtual HRESULT STDMETHODCALLTYPE pasteAsRichText( 550 /* [in] */ IUnknown *sender); 551 552 virtual HRESULT STDMETHODCALLTYPE changeFont( 553 /* [in] */ IUnknown *sender); 554 555 virtual HRESULT STDMETHODCALLTYPE changeAttributes( 556 /* [in] */ IUnknown *sender); 557 558 virtual HRESULT STDMETHODCALLTYPE changeDocumentBackgroundColor( 559 /* [in] */ IUnknown *sender); 560 561 virtual HRESULT STDMETHODCALLTYPE changeColor( 562 /* [in] */ IUnknown *sender); 563 564 virtual HRESULT STDMETHODCALLTYPE alignCenter( 565 /* [in] */ IUnknown *sender); 566 567 virtual HRESULT STDMETHODCALLTYPE alignJustified( 568 /* [in] */ IUnknown *sender); 569 570 virtual HRESULT STDMETHODCALLTYPE alignLeft( 571 /* [in] */ IUnknown *sender); 572 573 virtual HRESULT STDMETHODCALLTYPE alignRight( 574 /* [in] */ IUnknown *sender); 575 576 virtual HRESULT STDMETHODCALLTYPE checkSpelling( 577 /* [in] */ IUnknown *sender); 578 579 virtual HRESULT STDMETHODCALLTYPE showGuessPanel( 580 /* [in] */ IUnknown *sender); 581 582 virtual HRESULT STDMETHODCALLTYPE performFindPanelAction( 583 /* [in] */ IUnknown *sender); 584 585 virtual HRESULT STDMETHODCALLTYPE startSpeaking( 586 /* [in] */ IUnknown *sender); 587 588 virtual HRESULT STDMETHODCALLTYPE stopSpeaking( 589 /* [in] */ IUnknown *sender); 590 591 // IWebNotificationObserver 592 593 virtual HRESULT STDMETHODCALLTYPE onNotify( 594 /* [in] */ IWebNotification *notification); 595 596 // IWebViewPrivate 597 598 virtual HRESULT STDMETHODCALLTYPE MIMETypeForExtension( 599 /* [in] */ BSTR extension, 600 /* [retval][out] */ BSTR *mimeType); 601 602 virtual HRESULT STDMETHODCALLTYPE setCustomDropTarget( 603 /* [in] */ IDropTarget* dt); 604 605 virtual HRESULT STDMETHODCALLTYPE removeCustomDropTarget(); 606 607 virtual HRESULT STDMETHODCALLTYPE setInViewSourceMode( 608 /* [in] */ BOOL flag); 609 610 virtual HRESULT STDMETHODCALLTYPE inViewSourceMode( 611 /* [retval][out] */ BOOL* flag); 612 613 virtual HRESULT STDMETHODCALLTYPE viewWindow( 614 /* [retval][out] */ OLE_HANDLE *window); 615 616 virtual HRESULT STDMETHODCALLTYPE setFormDelegate( 617 /* [in] */ IWebFormDelegate *formDelegate); 618 619 virtual HRESULT STDMETHODCALLTYPE formDelegate( 620 /* [retval][out] */ IWebFormDelegate **formDelegate); 621 622 virtual HRESULT STDMETHODCALLTYPE setFrameLoadDelegatePrivate( 623 /* [in] */ IWebFrameLoadDelegatePrivate *frameLoadDelegatePrivate); 624 625 virtual HRESULT STDMETHODCALLTYPE frameLoadDelegatePrivate( 626 /* [retval][out] */ IWebFrameLoadDelegatePrivate **frameLoadDelegatePrivate); 627 628 virtual HRESULT STDMETHODCALLTYPE scrollOffset( 629 /* [retval][out] */ LPPOINT offset); 630 631 virtual HRESULT STDMETHODCALLTYPE scrollBy( 632 /* [in] */ LPPOINT offset); 633 634 virtual HRESULT STDMETHODCALLTYPE visibleContentRect( 635 /* [retval][out] */ LPRECT rect); 636 637 virtual HRESULT STDMETHODCALLTYPE updateFocusedAndActiveState(); 638 639 virtual HRESULT STDMETHODCALLTYPE executeCoreCommandByName(BSTR name, BSTR value); 640 641 virtual HRESULT STDMETHODCALLTYPE clearMainFrameName(); 642 643 virtual HRESULT STDMETHODCALLTYPE markAllMatchesForText( 644 BSTR search, BOOL caseSensitive, BOOL highlight, UINT limit, UINT* matches); 645 646 virtual HRESULT STDMETHODCALLTYPE unmarkAllTextMatches(); 647 648 virtual HRESULT STDMETHODCALLTYPE rectsForTextMatches( 649 IEnumTextMatches** pmatches); 650 651 virtual HRESULT STDMETHODCALLTYPE generateSelectionImage( 652 BOOL forceWhiteText, OLE_HANDLE* hBitmap); 653 654 virtual HRESULT STDMETHODCALLTYPE selectionRect( 655 RECT* rc); 656 657 virtual HRESULT STDMETHODCALLTYPE DragEnter( 658 IDataObject* pDataObject, DWORD grfKeyState, POINTL pt, DWORD* pdwEffect); 659 660 virtual HRESULT STDMETHODCALLTYPE DragOver( 661 DWORD grfKeyState, POINTL pt, DWORD* pdwEffect); 662 663 virtual HRESULT STDMETHODCALLTYPE DragLeave(); 664 665 virtual HRESULT STDMETHODCALLTYPE Drop( 666 IDataObject* pDataObject, DWORD grfKeyState, POINTL pt, DWORD* pdwEffect); 667 668 virtual HRESULT STDMETHODCALLTYPE canHandleRequest( 669 IWebURLRequest *request, 670 BOOL *result); 671 672 virtual HRESULT STDMETHODCALLTYPE standardUserAgentWithApplicationName( 673 /* [in] */ BSTR applicationName, 674 /* [retval][out] */ BSTR *groupName); 675 676 virtual HRESULT STDMETHODCALLTYPE clearFocusNode(); 677 678 virtual HRESULT STDMETHODCALLTYPE setInitialFocus( 679 /* [in] */ BOOL forward); 680 681 virtual HRESULT STDMETHODCALLTYPE setTabKeyCyclesThroughElements( 682 /* [in] */ BOOL cycles); 683 684 virtual HRESULT STDMETHODCALLTYPE tabKeyCyclesThroughElements( 685 /* [retval][out] */ BOOL *result); 686 687 virtual HRESULT STDMETHODCALLTYPE setAllowSiteSpecificHacks( 688 /* [in] */ BOOL allows); 689 690 virtual HRESULT STDMETHODCALLTYPE addAdditionalPluginDirectory( 691 /* [in] */ BSTR directory); 692 693 virtual HRESULT STDMETHODCALLTYPE loadBackForwardListFromOtherView( 694 /* [in] */ IWebView *otherView); 695 696 virtual HRESULT STDMETHODCALLTYPE inspector( 697 /* [retval][out] */ IWebInspector**); 698 699 virtual HRESULT STDMETHODCALLTYPE clearUndoRedoOperations( void); 700 virtual HRESULT STDMETHODCALLTYPE shouldClose( 701 /* [retval][out] */ BOOL* result); 702 703 virtual HRESULT STDMETHODCALLTYPE setProhibitsMainFrameScrolling(BOOL); 704 virtual HRESULT STDMETHODCALLTYPE setShouldApplyMacFontAscentHack(BOOL); 705 706 virtual HRESULT STDMETHODCALLTYPE windowAncestryDidChange(); 707 708 virtual HRESULT STDMETHODCALLTYPE paintDocumentRectToContext( 709 /* [in] */ RECT rect, 710 /* [in] */ OLE_HANDLE dc); 711 712 virtual HRESULT STDMETHODCALLTYPE paintScrollViewRectToContextAtPoint( 713 /* [in] */ RECT rect, 714 /* [in] */ POINT pt, 715 /* [in] */ OLE_HANDLE dc); 716 717 virtual HRESULT STDMETHODCALLTYPE reportException( 718 /* [in] */ JSContextRef context, 719 /* [in] */ JSValueRef exception); 720 721 virtual HRESULT STDMETHODCALLTYPE elementFromJS( 722 /* [in] */ JSContextRef context, 723 /* [in] */ JSValueRef nodeObject, 724 /* [retval][out] */ IDOMElement **element); 725 726 virtual HRESULT STDMETHODCALLTYPE setCustomHTMLTokenizerTimeDelay( 727 /* [in] */ double timeDelay); 728 729 virtual HRESULT STDMETHODCALLTYPE setCustomHTMLTokenizerChunkSize( 730 /* [in] */ int chunkSize); 731 732 virtual HRESULT STDMETHODCALLTYPE backingStore( 733 /* [out, retval] */ OLE_HANDLE* hBitmap); 734 735 virtual HRESULT STDMETHODCALLTYPE setTransparent( 736 /* [in] */ BOOL transparent); 737 738 virtual HRESULT STDMETHODCALLTYPE transparent( 739 /* [out, retval] */ BOOL* transparent); 740 741 virtual HRESULT STDMETHODCALLTYPE setDefersCallbacks( 742 /* [in] */ BOOL defersCallbacks); 743 744 virtual HRESULT STDMETHODCALLTYPE defersCallbacks( 745 /* [out, retval] */ BOOL* defersCallbacks); 746 747 virtual HRESULT STDMETHODCALLTYPE globalHistoryItem( 748 /* [out, retval] */ IWebHistoryItem** item); 749 750 virtual HRESULT STDMETHODCALLTYPE setAlwaysUsesComplexTextCodePath( 751 /* [in] */ BOOL complex); 752 753 virtual HRESULT STDMETHODCALLTYPE alwaysUsesComplexTextCodePath( 754 /* [out, retval] */ BOOL* complex); 755 756 virtual HRESULT STDMETHODCALLTYPE setCookieEnabled( 757 /* [in] */ BOOL enable); 758 759 virtual HRESULT STDMETHODCALLTYPE cookieEnabled( 760 /* [out, retval] */ BOOL* enabled); 761 762 virtual HRESULT STDMETHODCALLTYPE setMediaVolume( 763 /* [in] */ float volume); 764 765 virtual HRESULT STDMETHODCALLTYPE mediaVolume( 766 /* [out, retval] */ float* volume); 767 768 virtual HRESULT STDMETHODCALLTYPE registerEmbeddedViewMIMEType( 769 /* [in] */ BSTR mimeType); 770 771 virtual HRESULT STDMETHODCALLTYPE setMemoryCacheDelegateCallsEnabled( 772 /* [in] */ BOOL enabled); 773 774 virtual HRESULT STDMETHODCALLTYPE setJavaScriptURLsAreAllowed( 775 /* [in] */ BOOL areAllowed); 776 777 virtual HRESULT STDMETHODCALLTYPE setCanStartPlugins( 778 /* [in] */ BOOL canStartPlugins); 779 780 virtual HRESULT STDMETHODCALLTYPE addUserScriptToGroup(BSTR groupName, IWebScriptWorld*, BSTR source, BSTR url, 781 unsigned whitelistCount, BSTR* whitelist, 782 unsigned blacklistCount, BSTR* blacklist, 783 WebUserScriptInjectionTime); 784 virtual HRESULT STDMETHODCALLTYPE addUserStyleSheetToGroup(BSTR groupName, IWebScriptWorld*, BSTR source, BSTR url, 785 unsigned whitelistCount, BSTR* whitelist, 786 unsigned blacklistCount, BSTR* blacklist); 787 virtual HRESULT STDMETHODCALLTYPE removeUserScriptFromGroup(BSTR groupName, IWebScriptWorld*, BSTR url); 788 virtual HRESULT STDMETHODCALLTYPE removeUserStyleSheetFromGroup(BSTR groupName, IWebScriptWorld*, BSTR url); 789 virtual HRESULT STDMETHODCALLTYPE removeUserScriptsFromGroup(BSTR groupName, IWebScriptWorld*); 790 virtual HRESULT STDMETHODCALLTYPE removeUserStyleSheetsFromGroup(BSTR groupName, IWebScriptWorld*); 791 virtual HRESULT STDMETHODCALLTYPE removeAllUserContentFromGroup(BSTR groupName); 792 793 virtual HRESULT STDMETHODCALLTYPE setPluginHalterDelegate(IWebPluginHalterDelegate*); 794 virtual HRESULT STDMETHODCALLTYPE pluginHalterDelegate(IWebPluginHalterDelegate**); 795 796 virtual HRESULT STDMETHODCALLTYPE invalidateBackingStore(const RECT*); 797 798 virtual HRESULT STDMETHODCALLTYPE addOriginAccessWhitelistEntry(BSTR sourceOrigin, BSTR destinationProtocol, BSTR destinationHost, BOOL allowDestinationSubdomains); 799 virtual HRESULT STDMETHODCALLTYPE removeOriginAccessWhitelistEntry(BSTR sourceOrigin, BSTR destinationProtocol, BSTR destinationHost, BOOL allowDestinationSubdomains); 800 virtual HRESULT STDMETHODCALLTYPE resetOriginAccessWhitelists(); 801 802 virtual HRESULT STDMETHODCALLTYPE setHistoryDelegate(IWebHistoryDelegate* historyDelegate); 803 virtual HRESULT STDMETHODCALLTYPE historyDelegate(IWebHistoryDelegate** historyDelegate); 804 virtual HRESULT STDMETHODCALLTYPE addVisitedLinks(BSTR* visitedURLs, unsigned visitedURLCount); 805 806 virtual HRESULT STDMETHODCALLTYPE isNodeHaltedPlugin(IDOMNode*, BOOL*); 807 virtual HRESULT STDMETHODCALLTYPE restartHaltedPluginForNode(IDOMNode*); 808 virtual HRESULT STDMETHODCALLTYPE hasPluginForNodeBeenHalted(IDOMNode*, BOOL*); 809 810 virtual HRESULT STDMETHODCALLTYPE setGeolocationProvider(IWebGeolocationProvider* locationProvider); 811 virtual HRESULT STDMETHODCALLTYPE geolocationProvider(IWebGeolocationProvider** locationProvider); 812 virtual HRESULT STDMETHODCALLTYPE geolocationDidChangePosition(IWebGeolocationPosition* position); 813 virtual HRESULT STDMETHODCALLTYPE geolocationDidFailWithError(IWebError* error); 814 815 virtual HRESULT STDMETHODCALLTYPE setDomainRelaxationForbiddenForURLScheme(BOOL forbidden, BSTR scheme); 816 virtual HRESULT STDMETHODCALLTYPE registerURLSchemeAsSecure(BSTR); 817 818 virtual HRESULT STDMETHODCALLTYPE nextDisplayIsSynchronous(); 819 820 virtual HRESULT STDMETHODCALLTYPE defaultMinimumTimerInterval( 821 /* [retval][out] */ double *interval); 822 823 virtual HRESULT STDMETHODCALLTYPE setMinimumTimerInterval( 824 /* [in] */ double); 825 826 // WebView 827 bool shouldUseEmbeddedView(const WTF::String& mimeType) const; 828 829 WebCore::Page* page(); 830 bool handleMouseEvent(UINT, WPARAM, LPARAM); 831 void setMouseActivated(bool flag) { m_mouseActivated = flag; } 832 bool handleContextMenuEvent(WPARAM, LPARAM); 833 bool onMeasureItem(WPARAM, LPARAM); 834 bool onDrawItem(WPARAM, LPARAM); 835 bool onInitMenuPopup(WPARAM, LPARAM); 836 bool onUninitMenuPopup(WPARAM, LPARAM); 837 void performContextMenuAction(WPARAM, LPARAM, bool byPosition); 838 bool mouseWheel(WPARAM, LPARAM, bool isMouseHWheel); 839 bool verticalScroll(WPARAM, LPARAM); 840 bool horizontalScroll(WPARAM, LPARAM); 841 bool gesture(WPARAM, LPARAM); 842 bool gestureNotify(WPARAM, LPARAM); 843 bool execCommand(WPARAM wParam, LPARAM lParam); 844 bool keyDown(WPARAM, LPARAM, bool systemKeyDown = false); 845 bool keyUp(WPARAM, LPARAM, bool systemKeyDown = false); 846 bool keyPress(WPARAM, LPARAM, bool systemKeyDown = false); 847 void paint(HDC, LPARAM); 848 void paintIntoWindow(HDC bitmapDC, HDC windowDC, const WebCore::IntRect& dirtyRect); 849 bool ensureBackingStore(); 850 void addToDirtyRegion(const WebCore::IntRect&); 851 void addToDirtyRegion(HRGN); 852 void scrollBackingStore(WebCore::FrameView*, int dx, int dy, const WebCore::IntRect& scrollViewRect, const WebCore::IntRect& clipRect); 853 void deleteBackingStore(); 854 void repaint(const WebCore::IntRect&, bool contentChanged, bool immediate = false, bool repaintContentOnly = false); 855 void frameRect(RECT* rect); 856 void closeWindow(); 857 void closeWindowSoon(); 858 void closeWindowTimerFired(); 859 bool didClose() const { return m_didClose; } 860 861 bool transparent() const { return m_transparent; } 862 863 bool onIMEStartComposition(); 864 bool onIMEComposition(LPARAM); 865 bool onIMEEndComposition(); 866 bool onIMEChar(WPARAM, LPARAM); 867 bool onIMENotify(WPARAM, LPARAM, LRESULT*); 868 LRESULT onIMERequest(WPARAM, LPARAM); 869 bool onIMESelect(WPARAM, LPARAM); 870 bool onIMESetContext(WPARAM, LPARAM); 871 void selectionChanged(); 872 void resetIME(WebCore::Frame*); 873 void setInputMethodState(bool); 874 875 HRESULT registerDragDrop(); 876 HRESULT revokeDragDrop(); 877 878 // Convenient to be able to violate the rules of COM here for easy movement to the frame. 879 WebFrame* topLevelFrame() const { return m_mainFrame; } 880 const WTF::String& userAgentForKURL(const WebCore::KURL& url); 881 882 static bool canHandleRequest(const WebCore::ResourceRequest&); 883 884 static WTF::String standardUserAgentWithApplicationName(const WTF::String&); 885 886 void setIsBeingDestroyed(); 887 bool isBeingDestroyed() const { return m_isBeingDestroyed; } 888 889 const char* interpretKeyEvent(const WebCore::KeyboardEvent*); 890 bool handleEditingKeyboardEvent(WebCore::KeyboardEvent*); 891 892 bool isPainting() const { return m_paintCount > 0; } 893 894 void setToolTip(const WTF::String&); 895 896 void registerForIconNotification(bool listen); 897 void dispatchDidReceiveIconFromWebFrame(WebFrame*); 898 899 HRESULT notifyDidAddIcon(IWebNotification*); 900 HRESULT notifyPreferencesChanged(IWebNotification*); 901 902 static void setCacheModel(WebCacheModel); 903 static WebCacheModel cacheModel(); 904 static bool didSetCacheModel(); 905 static WebCacheModel maxCacheModelInAnyInstance(); 906 907 void updateActiveStateSoon() const; 908 void deleteBackingStoreSoon(); 909 void cancelDeleteBackingStoreSoon(); 910 911 HWND topLevelParent() const { return m_topLevelParent; } 912 HWND viewWindow() const { return m_viewWindow; } 913 914 void updateActiveState(); 915 916 bool onGetObject(WPARAM, LPARAM, LRESULT&) const; 917 static STDMETHODIMP AccessibleObjectFromWindow(HWND, DWORD objectID, REFIID, void** ppObject); 918 919 void downloadURL(const WebCore::KURL&); 920 921 #if USE(ACCELERATED_COMPOSITING) 922 void flushPendingGraphicsLayerChangesSoon(); 923 void setRootChildLayer(WebCore::GraphicsLayer*); 924 #endif 925 926 void enterFullscreenForNode(WebCore::Node*); 927 void exitFullscreen(); 928 929 void setLastCursor(HCURSOR cursor) { m_lastSetCursor = cursor; } 930 931 void setGlobalHistoryItem(WebCore::HistoryItem*); 932 933 private: 934 void setZoomMultiplier(float multiplier, bool isTextOnly); 935 float zoomMultiplier(bool isTextOnly); 936 bool canZoomIn(bool isTextOnly); 937 HRESULT zoomIn(bool isTextOnly); 938 bool canZoomOut(bool isTextOnly); 939 HRESULT zoomOut(bool isTextOnly); 940 bool canResetZoom(bool isTextOnly); 941 HRESULT resetZoom(bool isTextOnly); 942 bool active(); 943 944 void sizeChanged(const WebCore::IntSize&); 945 946 enum WindowsToPaint { PaintWebViewOnly, PaintWebViewAndChildren }; 947 void paintIntoBackingStore(WebCore::FrameView*, HDC bitmapDC, const WebCore::IntRect& dirtyRect, WindowsToPaint); 948 void updateBackingStore(WebCore::FrameView*, HDC = 0, bool backingStoreCompletelyDirty = false, WindowsToPaint = PaintWebViewOnly); 949 950 WebCore::DragOperation keyStateToDragOperation(DWORD grfKeyState) const; 951 952 // FIXME: This variable is part of a workaround. The drop effect (pdwEffect) passed to Drop is incorrect. 953 // We set this variable in DragEnter and DragOver so that it can be used in Drop to set the correct drop effect. 954 // Thus, on return from DoDragDrop we have the correct pdwEffect for the drag-and-drop operation. 955 // (see https://bugs.webkit.org/show_bug.cgi?id=29264) 956 DWORD m_lastDropEffect; 957 958 #if USE(ACCELERATED_COMPOSITING) 959 // GraphicsLayerClient 960 virtual void notifyAnimationStarted(const WebCore::GraphicsLayer*, double time); 961 virtual void notifySyncRequired(const WebCore::GraphicsLayer*); 962 virtual void paintContents(const WebCore::GraphicsLayer*, WebCore::GraphicsContext&, WebCore::GraphicsLayerPaintingPhase, const WebCore::IntRect& inClip); 963 virtual bool showDebugBorders() const; 964 virtual bool showRepaintCounter() const; 965 966 // CACFLayerTreeHostClient 967 virtual void flushPendingGraphicsLayerChanges(); 968 #endif 969 970 protected: 971 static bool registerWebViewWindowClass(); 972 static LRESULT CALLBACK WebViewWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam); 973 974 HIMC getIMMContext(); 975 void releaseIMMContext(HIMC); 976 static bool allowSiteSpecificHacks() { return s_allowSiteSpecificHacks; } 977 void preflightSpellChecker(); 978 bool continuousCheckingAllowed(); 979 void initializeToolTipWindow(); 980 void prepareCandidateWindow(WebCore::Frame*, HIMC); 981 void updateSelectionForIME(); 982 LRESULT onIMERequestCharPosition(WebCore::Frame*, IMECHARPOSITION*); 983 LRESULT onIMERequestReconvertString(WebCore::Frame*, RECONVERTSTRING*); 984 bool developerExtrasEnabled() const; 985 986 bool shouldInitializeTrackPointHack(); 987 988 // AllWebViewSet functions 989 void addToAllWebViewsSet(); 990 void removeFromAllWebViewsSet(); 991 992 virtual void windowReceivedMessage(HWND, UINT message, WPARAM, LPARAM); 993 994 ULONG m_refCount; 995 #if !ASSERT_DISABLED 996 bool m_deletionHasBegun; 997 #endif 998 HWND m_hostWindow; 999 HWND m_viewWindow; 1000 WebFrame* m_mainFrame; 1001 WebCore::Page* m_page; 1002 1003 RefPtr<RefCountedHBITMAP> m_backingStoreBitmap; 1004 SIZE m_backingStoreSize; 1005 RefPtr<RefCountedHRGN> m_backingStoreDirtyRegion; 1006 1007 COMPtr<IWebEditingDelegate> m_editingDelegate; 1008 COMPtr<IWebFrameLoadDelegate> m_frameLoadDelegate; 1009 COMPtr<IWebFrameLoadDelegatePrivate> m_frameLoadDelegatePrivate; 1010 COMPtr<IWebUIDelegate> m_uiDelegate; 1011 COMPtr<IWebUIDelegatePrivate> m_uiDelegatePrivate; 1012 COMPtr<IWebFormDelegate> m_formDelegate; 1013 COMPtr<IWebPolicyDelegate> m_policyDelegate; 1014 COMPtr<IWebResourceLoadDelegate> m_resourceLoadDelegate; 1015 COMPtr<IWebDownloadDelegate> m_downloadDelegate; 1016 COMPtr<IWebHistoryDelegate> m_historyDelegate; 1017 COMPtr<WebPreferences> m_preferences; 1018 COMPtr<WebInspector> m_webInspector; 1019 COMPtr<IWebPluginHalterDelegate> m_pluginHalterDelegate; 1020 COMPtr<IWebGeolocationProvider> m_geolocationProvider; 1021 1022 bool m_userAgentOverridden; 1023 bool m_useBackForwardList; 1024 WTF::String m_userAgentCustom; 1025 WTF::String m_userAgentStandard; 1026 float m_zoomMultiplier; 1027 bool m_zoomsTextOnly; 1028 WTF::String m_overrideEncoding; 1029 WTF::String m_applicationName; 1030 bool m_mouseActivated; 1031 // WebCore dragging logic needs to be able to inspect the drag data 1032 // this is updated in DragEnter/Leave/Drop 1033 COMPtr<IDataObject> m_dragData; 1034 COMPtr<IDropTargetHelper> m_dropTargetHelper; 1035 UChar m_currentCharacterCode; 1036 bool m_isBeingDestroyed; 1037 unsigned m_paintCount; 1038 bool m_hasSpellCheckerDocumentTag; 1039 bool m_smartInsertDeleteEnabled; 1040 bool m_selectTrailingWhitespaceEnabled; 1041 bool m_didClose; 1042 bool m_hasCustomDropTarget; 1043 unsigned m_inIMEComposition; 1044 HWND m_toolTipHwnd; 1045 WTF::String m_toolTip; 1046 bool m_deleteBackingStoreTimerActive; 1047 1048 bool m_transparent; 1049 1050 static bool s_allowSiteSpecificHacks; 1051 1052 WebCore::SuspendableTimer* m_closeWindowTimer; 1053 OwnPtr<TRACKMOUSEEVENT> m_mouseOutTracker; 1054 1055 HWND m_topLevelParent; 1056 1057 OwnPtr<HashSet<WTF::String> > m_embeddedViewMIMETypes; 1058 1059 //Variables needed to store gesture information 1060 RefPtr<WebCore::Node> m_gestureTargetNode; 1061 long m_lastPanX; 1062 long m_lastPanY; 1063 long m_xOverpan; 1064 long m_yOverpan; 1065 1066 #if ENABLE(VIDEO) 1067 OwnPtr<FullscreenVideoController> m_fullscreenController; 1068 #endif 1069 1070 #if USE(ACCELERATED_COMPOSITING) 1071 bool isAcceleratedCompositing() const { return m_isAcceleratedCompositing; } 1072 void setAcceleratedCompositing(bool); 1073 1074 RefPtr<WebCore::CACFLayerTreeHost> m_layerTreeHost; 1075 OwnPtr<WebCore::GraphicsLayer> m_backingLayer; 1076 bool m_isAcceleratedCompositing; 1077 #endif 1078 1079 bool m_nextDisplayIsSynchronous; 1080 1081 HCURSOR m_lastSetCursor; 1082 1083 RefPtr<WebCore::HistoryItem> m_globalHistoryItem; 1084 }; 1085 1086 #endif 1087