1 /* 2 * Copyright (C) 2006 Eric Seidel (eric@webkit.org) 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, INCLUDING, 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 SVGImageEmptyClients_h 27 #define SVGImageEmptyClients_h 28 29 #if ENABLE(SVG) 30 31 #include "ChromeClient.h" 32 #include "ContextMenuClient.h" 33 #include "DragClient.h" 34 #include "EditorClient.h" 35 #include "FocusDirection.h" 36 #include "FrameLoaderClient.h" 37 #include "InspectorClient.h" 38 #include "SharedBuffer.h" 39 40 /* 41 This file holds empty Client stubs for use by SVGImage. 42 SVGImage needs to create a dummy Page->Frame->FrameView tree for use in parsing an SVGDocument. 43 This tree depends heavily on Clients (usually provided by WebKit classes). 44 45 SVGImage has no way to access the current Page (nor should it, since Images are not tied to a page). 46 See https://bugs.webkit.org/show_bug.cgi?id=5971 for more discussion on this issue. 47 48 Ideally, whenever you change a Client class, you should add a stub here. 49 Brittle, yes. Unfortunate, yes. Hopefully temporary. 50 */ 51 52 namespace WebCore 53 { 54 55 class SVGEmptyChromeClient : public ChromeClient 56 { 57 public: ~SVGEmptyChromeClient()58 virtual ~SVGEmptyChromeClient() { } chromeDestroyed()59 virtual void chromeDestroyed() { } 60 setWindowRect(const FloatRect &)61 virtual void setWindowRect(const FloatRect &) { } windowRect()62 virtual FloatRect windowRect() 63 { 64 return FloatRect(); 65 } 66 pageRect()67 virtual FloatRect pageRect() 68 { 69 return FloatRect(); 70 } 71 scaleFactor()72 virtual float scaleFactor() 73 { 74 return 1.f; 75 } 76 focus()77 virtual void focus() { } unfocus()78 virtual void unfocus() { } 79 canTakeFocus(FocusDirection)80 virtual bool canTakeFocus(FocusDirection) 81 { 82 return false; 83 } takeFocus(FocusDirection)84 virtual void takeFocus(FocusDirection) { } 85 createWindow(Frame *,const FrameLoadRequest &,const WindowFeatures &)86 virtual Page *createWindow(Frame *, const FrameLoadRequest &, const WindowFeatures &) 87 { 88 return 0; 89 } show()90 virtual void show() { } 91 canRunModal()92 virtual bool canRunModal() 93 { 94 return false; 95 } runModal()96 virtual void runModal() { } 97 setToolbarsVisible(bool)98 virtual void setToolbarsVisible(bool) { } toolbarsVisible()99 virtual bool toolbarsVisible() 100 { 101 return false; 102 } 103 setStatusbarVisible(bool)104 virtual void setStatusbarVisible(bool) { } statusbarVisible()105 virtual bool statusbarVisible() 106 { 107 return false; 108 } 109 setScrollbarsVisible(bool)110 virtual void setScrollbarsVisible(bool) { } scrollbarsVisible()111 virtual bool scrollbarsVisible() 112 { 113 return false; 114 } 115 setMenubarVisible(bool)116 virtual void setMenubarVisible(bool) { } menubarVisible()117 virtual bool menubarVisible() 118 { 119 return false; 120 } 121 setResizable(bool)122 virtual void setResizable(bool) { } 123 addMessageToConsole(const String & message,unsigned int lineNumber,const String & sourceID)124 virtual void addMessageToConsole(const String &message, unsigned int lineNumber, const String &sourceID) { } 125 canRunBeforeUnloadConfirmPanel()126 virtual bool canRunBeforeUnloadConfirmPanel() 127 { 128 return false; 129 } runBeforeUnloadConfirmPanel(const String & message,Frame * frame)130 virtual bool runBeforeUnloadConfirmPanel(const String &message, Frame *frame) 131 { 132 return true; 133 } 134 closeWindowSoon()135 virtual void closeWindowSoon() { } 136 runJavaScriptAlert(Frame *,const String &)137 virtual void runJavaScriptAlert(Frame *, const String &) { } runJavaScriptConfirm(Frame *,const String &)138 virtual bool runJavaScriptConfirm(Frame *, const String &) 139 { 140 return false; 141 } runJavaScriptPrompt(Frame *,const String & message,const String & defaultValue,String & result)142 virtual bool runJavaScriptPrompt(Frame *, const String &message, const String &defaultValue, String &result) 143 { 144 return false; 145 } shouldInterruptJavaScript()146 virtual bool shouldInterruptJavaScript() 147 { 148 return false; 149 } 150 setStatusbarText(const String &)151 virtual void setStatusbarText(const String &) { } 152 tabsToLinks()153 virtual bool tabsToLinks() const 154 { 155 return false; 156 } 157 windowResizerRect()158 virtual IntRect windowResizerRect() const 159 { 160 return IntRect(); 161 } addToDirtyRegion(const IntRect &)162 virtual void addToDirtyRegion(const IntRect &) { } scrollBackingStore(int dx,int dy,const IntRect & scrollViewRect,const IntRect & clipRect)163 virtual void scrollBackingStore(int dx, int dy, const IntRect &scrollViewRect, const IntRect &clipRect) { } updateBackingStore()164 virtual void updateBackingStore() { } 165 mouseDidMoveOverElement(const HitTestResult &,unsigned modifierFlags)166 virtual void mouseDidMoveOverElement(const HitTestResult &, unsigned modifierFlags) { } 167 setToolTip(const String &)168 virtual void setToolTip(const String &) { } 169 print(Frame *)170 virtual void print(Frame *) { } 171 exceededDatabaseQuota(Frame *,const String &)172 virtual void exceededDatabaseQuota(Frame *, const String &) { } 173 }; 174 175 class SVGEmptyFrameLoaderClient : public FrameLoaderClient 176 { 177 public: ~SVGEmptyFrameLoaderClient()178 virtual ~SVGEmptyFrameLoaderClient() { } frameLoaderDestroyed()179 virtual void frameLoaderDestroyed() { } 180 hasWebView()181 virtual bool hasWebView() const 182 { 183 return true; // mainly for assertions 184 } hasFrameView()185 virtual bool hasFrameView() const 186 { 187 return true; // ditto 188 } 189 makeRepresentation(DocumentLoader *)190 virtual void makeRepresentation(DocumentLoader *) { } forceLayout()191 virtual void forceLayout() { } forceLayoutForNonHTML()192 virtual void forceLayoutForNonHTML() { } 193 updateHistoryForCommit()194 virtual void updateHistoryForCommit() { } 195 updateHistoryForBackForwardNavigation()196 virtual void updateHistoryForBackForwardNavigation() { } updateHistoryForReload()197 virtual void updateHistoryForReload() { } updateHistoryForStandardLoad()198 virtual void updateHistoryForStandardLoad() { } updateHistoryForInternalLoad()199 virtual void updateHistoryForInternalLoad() { } 200 updateHistoryAfterClientRedirect()201 virtual void updateHistoryAfterClientRedirect() { } 202 setCopiesOnScroll()203 virtual void setCopiesOnScroll() { } 204 detachedFromParent2()205 virtual void detachedFromParent2() { } detachedFromParent3()206 virtual void detachedFromParent3() { } detachedFromParent4()207 virtual void detachedFromParent4() { } 208 download(ResourceHandle *,const ResourceRequest &,const ResourceRequest &,const ResourceResponse &)209 virtual void download(ResourceHandle *, const ResourceRequest &, const ResourceRequest &, const ResourceResponse &) { } 210 assignIdentifierToInitialRequest(unsigned long identifier,DocumentLoader *,const ResourceRequest &)211 virtual void assignIdentifierToInitialRequest(unsigned long identifier, DocumentLoader *, const ResourceRequest &) { } dispatchWillSendRequest(DocumentLoader *,unsigned long identifier,ResourceRequest &,const ResourceResponse & redirectResponse)212 virtual void dispatchWillSendRequest(DocumentLoader *, unsigned long identifier, ResourceRequest &, const ResourceResponse &redirectResponse) { } dispatchDidReceiveAuthenticationChallenge(DocumentLoader *,unsigned long identifier,const AuthenticationChallenge &)213 virtual void dispatchDidReceiveAuthenticationChallenge(DocumentLoader *, unsigned long identifier, const AuthenticationChallenge &) { } dispatchDidCancelAuthenticationChallenge(DocumentLoader *,unsigned long identifier,const AuthenticationChallenge &)214 virtual void dispatchDidCancelAuthenticationChallenge(DocumentLoader *, unsigned long identifier, const AuthenticationChallenge &) { } dispatchDidReceiveResponse(DocumentLoader *,unsigned long identifier,const ResourceResponse &)215 virtual void dispatchDidReceiveResponse(DocumentLoader *, unsigned long identifier, const ResourceResponse &) { } dispatchDidReceiveContentLength(DocumentLoader *,unsigned long identifier,int lengthReceived)216 virtual void dispatchDidReceiveContentLength(DocumentLoader *, unsigned long identifier, int lengthReceived) { } dispatchDidFinishLoading(DocumentLoader *,unsigned long identifier)217 virtual void dispatchDidFinishLoading(DocumentLoader *, unsigned long identifier) { } dispatchDidFailLoading(DocumentLoader *,unsigned long identifier,const ResourceError &)218 virtual void dispatchDidFailLoading(DocumentLoader *, unsigned long identifier, const ResourceError &) { } dispatchDidLoadResourceFromMemoryCache(DocumentLoader *,const ResourceRequest &,const ResourceResponse &,int length)219 virtual bool dispatchDidLoadResourceFromMemoryCache(DocumentLoader *, const ResourceRequest &, const ResourceResponse &, int length) 220 { 221 return false; 222 } 223 dispatchDidHandleOnloadEvents()224 virtual void dispatchDidHandleOnloadEvents() { } dispatchDidReceiveServerRedirectForProvisionalLoad()225 virtual void dispatchDidReceiveServerRedirectForProvisionalLoad() { } dispatchDidCancelClientRedirect()226 virtual void dispatchDidCancelClientRedirect() { } dispatchWillPerformClientRedirect(const KURL &,double interval,double fireDate)227 virtual void dispatchWillPerformClientRedirect(const KURL &, double interval, double fireDate) { } dispatchDidChangeLocationWithinPage()228 virtual void dispatchDidChangeLocationWithinPage() { } dispatchWillClose()229 virtual void dispatchWillClose() { } dispatchDidReceiveIcon()230 virtual void dispatchDidReceiveIcon() { } dispatchDidStartProvisionalLoad()231 virtual void dispatchDidStartProvisionalLoad() { } dispatchDidReceiveTitle(const String & title)232 virtual void dispatchDidReceiveTitle(const String &title) { } dispatchDidCommitLoad()233 virtual void dispatchDidCommitLoad() { } dispatchDidFailProvisionalLoad(const ResourceError &)234 virtual void dispatchDidFailProvisionalLoad(const ResourceError &) { } dispatchDidFailLoad(const ResourceError &)235 virtual void dispatchDidFailLoad(const ResourceError &) { } dispatchDidFinishDocumentLoad()236 virtual void dispatchDidFinishDocumentLoad() { } dispatchDidFinishLoad()237 virtual void dispatchDidFinishLoad() { } dispatchDidFirstLayout()238 virtual void dispatchDidFirstLayout() { } 239 dispatchCreatePage()240 virtual Frame *dispatchCreatePage() 241 { 242 return 0; 243 } dispatchShow()244 virtual void dispatchShow() { } 245 dispatchDecidePolicyForMIMEType(FramePolicyFunction,const String & MIMEType,const ResourceRequest &)246 virtual void dispatchDecidePolicyForMIMEType(FramePolicyFunction, const String &MIMEType, const ResourceRequest &) { } dispatchDecidePolicyForNewWindowAction(FramePolicyFunction,const NavigationAction &,const ResourceRequest &,const String & frameName)247 virtual void dispatchDecidePolicyForNewWindowAction(FramePolicyFunction, const NavigationAction &, const ResourceRequest &, const String &frameName) { } dispatchDecidePolicyForNavigationAction(FramePolicyFunction,const NavigationAction &,const ResourceRequest &)248 virtual void dispatchDecidePolicyForNavigationAction(FramePolicyFunction, const NavigationAction &, const ResourceRequest &) { } cancelPolicyCheck()249 virtual void cancelPolicyCheck() { } 250 dispatchUnableToImplementPolicy(const ResourceError &)251 virtual void dispatchUnableToImplementPolicy(const ResourceError &) { } 252 dispatchWillSubmitForm(FramePolicyFunction,PassRefPtr<FormState>)253 virtual void dispatchWillSubmitForm(FramePolicyFunction, PassRefPtr<FormState>) { } 254 dispatchDidLoadMainResource(DocumentLoader *)255 virtual void dispatchDidLoadMainResource(DocumentLoader *) { } revertToProvisionalState(DocumentLoader *)256 virtual void revertToProvisionalState(DocumentLoader *) { } setMainDocumentError(DocumentLoader *,const ResourceError &)257 virtual void setMainDocumentError(DocumentLoader *, const ResourceError &) { } 258 willChangeEstimatedProgress()259 virtual void willChangeEstimatedProgress() { } didChangeEstimatedProgress()260 virtual void didChangeEstimatedProgress() { } postProgressStartedNotification()261 virtual void postProgressStartedNotification() { } postProgressEstimateChangedNotification()262 virtual void postProgressEstimateChangedNotification() { } postProgressFinishedNotification()263 virtual void postProgressFinishedNotification() { } 264 setMainFrameDocumentReady(bool)265 virtual void setMainFrameDocumentReady(bool) { } 266 startDownload(const ResourceRequest &)267 virtual void startDownload(const ResourceRequest &) { } 268 willChangeTitle(DocumentLoader *)269 virtual void willChangeTitle(DocumentLoader *) { } didChangeTitle(DocumentLoader *)270 virtual void didChangeTitle(DocumentLoader *) { } 271 committedLoad(DocumentLoader *,const char *,int)272 virtual void committedLoad(DocumentLoader *, const char *, int) { } finishedLoading(DocumentLoader *)273 virtual void finishedLoading(DocumentLoader *) { } 274 cancelledError(const ResourceRequest &)275 virtual ResourceError cancelledError(const ResourceRequest &) 276 { 277 return ResourceError(); 278 } blockedError(const ResourceRequest &)279 virtual ResourceError blockedError(const ResourceRequest &) 280 { 281 return ResourceError(); 282 } cannotShowURLError(const ResourceRequest &)283 virtual ResourceError cannotShowURLError(const ResourceRequest &) 284 { 285 return ResourceError(); 286 } interruptForPolicyChangeError(const ResourceRequest &)287 virtual ResourceError interruptForPolicyChangeError(const ResourceRequest &) 288 { 289 return ResourceError(); 290 } 291 cannotShowMIMETypeError(const ResourceResponse &)292 virtual ResourceError cannotShowMIMETypeError(const ResourceResponse &) 293 { 294 return ResourceError(); 295 } fileDoesNotExistError(const ResourceResponse &)296 virtual ResourceError fileDoesNotExistError(const ResourceResponse &) 297 { 298 return ResourceError(); 299 } 300 shouldFallBack(const ResourceError &)301 virtual bool shouldFallBack(const ResourceError &) 302 { 303 return false; 304 } 305 canHandleRequest(const ResourceRequest &)306 virtual bool canHandleRequest(const ResourceRequest &) const 307 { 308 return false; 309 } canShowMIMEType(const String & MIMEType)310 virtual bool canShowMIMEType(const String &MIMEType) const 311 { 312 return false; 313 } representationExistsForURLScheme(const String & URLScheme)314 virtual bool representationExistsForURLScheme(const String &URLScheme) const 315 { 316 return false; 317 } generatedMIMETypeForURLScheme(const String & URLScheme)318 virtual String generatedMIMETypeForURLScheme(const String &URLScheme) const 319 { 320 return ""; 321 } 322 frameLoadCompleted()323 virtual void frameLoadCompleted() { } restoreViewState()324 virtual void restoreViewState() { } provisionalLoadStarted()325 virtual void provisionalLoadStarted() { } shouldTreatURLAsSameAsCurrent(const KURL &)326 virtual bool shouldTreatURLAsSameAsCurrent(const KURL &) const 327 { 328 return false; 329 } addHistoryItemForFragmentScroll()330 virtual void addHistoryItemForFragmentScroll() { } didFinishLoad()331 virtual void didFinishLoad() { } prepareForDataSourceReplacement()332 virtual void prepareForDataSourceReplacement() { } 333 createDocumentLoader(const ResourceRequest & request,const SubstituteData & substituteData)334 virtual PassRefPtr<DocumentLoader> createDocumentLoader(const ResourceRequest &request, const SubstituteData &substituteData) 335 { 336 return new DocumentLoader(request, substituteData); 337 } setTitle(const String & title,const KURL &)338 virtual void setTitle(const String &title, const KURL &) { } 339 userAgent(const KURL &)340 virtual String userAgent(const KURL &) 341 { 342 return ""; 343 } 344 savePlatformDataToCachedPage(CachedPage *)345 virtual void savePlatformDataToCachedPage(CachedPage *) { } transitionToCommittedFromCachedPage(CachedPage *)346 virtual void transitionToCommittedFromCachedPage(CachedPage *) { } transitionToCommittedForNewPage()347 virtual void transitionToCommittedForNewPage() { } 348 updateGlobalHistory(const KURL &)349 virtual void updateGlobalHistory(const KURL &) { } shouldGoToHistoryItem(HistoryItem *)350 virtual bool shouldGoToHistoryItem(HistoryItem *) const 351 { 352 return false; 353 } saveViewStateToItem(HistoryItem *)354 virtual void saveViewStateToItem(HistoryItem *) { } canCachePage()355 virtual bool canCachePage() const 356 { 357 return false; 358 } 359 createFrame(const KURL & url,const String & name,HTMLFrameOwnerElement * ownerElement,const String & referrer,bool allowsScrolling,int marginWidth,int marginHeight)360 virtual PassRefPtr<Frame> createFrame(const KURL &url, const String &name, HTMLFrameOwnerElement *ownerElement, 361 const String &referrer, bool allowsScrolling, int marginWidth, int marginHeight) 362 { 363 return 0; 364 } createPlugin(const IntSize &,Element *,const KURL &,const Vector<String> &,const Vector<String> &,const String &,bool)365 virtual Widget *createPlugin(const IntSize &, Element *, const KURL &, const Vector<String> &, const Vector<String> &, const String &, bool) 366 { 367 return 0; 368 } createJavaAppletWidget(const IntSize &,Element *,const KURL &,const Vector<String> &,const Vector<String> &)369 virtual Widget *createJavaAppletWidget(const IntSize &, Element *, const KURL &, const Vector<String> &, const Vector<String> &) 370 { 371 return 0; 372 } 373 objectContentType(const KURL & url,const String & mimeType)374 virtual ObjectContentType objectContentType(const KURL &url, const String &mimeType) 375 { 376 return ObjectContentType(); 377 } overrideMediaType()378 virtual String overrideMediaType() const 379 { 380 return String(); 381 } 382 redirectDataToPlugin(Widget *)383 virtual void redirectDataToPlugin(Widget *) {} windowObjectCleared()384 virtual void windowObjectCleared() {} didPerformFirstNavigation()385 virtual void didPerformFirstNavigation() const {} 386 registerForIconNotification(bool listen)387 virtual void registerForIconNotification(bool listen) {} 388 389 #if PLATFORM(MAC) willCacheResponse(DocumentLoader *,unsigned long identifier,NSCachedURLResponse * response)390 virtual NSCachedURLResponse *willCacheResponse(DocumentLoader *, unsigned long identifier, NSCachedURLResponse *response) const 391 { 392 return response; 393 } 394 #endif 395 396 }; 397 398 class SVGEmptyEditorClient : public EditorClient 399 { 400 public: ~SVGEmptyEditorClient()401 virtual ~SVGEmptyEditorClient() { } pageDestroyed()402 virtual void pageDestroyed() { } 403 shouldDeleteRange(Range *)404 virtual bool shouldDeleteRange(Range *) 405 { 406 return false; 407 } shouldShowDeleteInterface(HTMLElement *)408 virtual bool shouldShowDeleteInterface(HTMLElement *) 409 { 410 return false; 411 } smartInsertDeleteEnabled()412 virtual bool smartInsertDeleteEnabled() 413 { 414 return false; 415 } isContinuousSpellCheckingEnabled()416 virtual bool isContinuousSpellCheckingEnabled() 417 { 418 return false; 419 } toggleContinuousSpellChecking()420 virtual void toggleContinuousSpellChecking() { } isGrammarCheckingEnabled()421 virtual bool isGrammarCheckingEnabled() 422 { 423 return false; 424 } toggleGrammarChecking()425 virtual void toggleGrammarChecking() { } spellCheckerDocumentTag()426 virtual int spellCheckerDocumentTag() 427 { 428 return -1; 429 } 430 selectWordBeforeMenuEvent()431 virtual bool selectWordBeforeMenuEvent() 432 { 433 return false; 434 } isEditable()435 virtual bool isEditable() 436 { 437 return false; 438 } 439 shouldBeginEditing(Range *)440 virtual bool shouldBeginEditing(Range *) 441 { 442 return false; 443 } shouldEndEditing(Range *)444 virtual bool shouldEndEditing(Range *) 445 { 446 return false; 447 } shouldInsertNode(Node *,Range *,EditorInsertAction)448 virtual bool shouldInsertNode(Node *, Range *, EditorInsertAction) 449 { 450 return false; 451 } 452 // virtual bool shouldInsertNode(Node*, Range* replacingRange, WebViewInsertAction) { return false; } shouldInsertText(const String &,Range *,EditorInsertAction)453 virtual bool shouldInsertText(const String &, Range *, EditorInsertAction) 454 { 455 return false; 456 } shouldChangeSelectedRange(Range * fromRange,Range * toRange,EAffinity,bool stillSelecting)457 virtual bool shouldChangeSelectedRange(Range *fromRange, Range *toRange, EAffinity, bool stillSelecting) 458 { 459 return false; 460 } 461 shouldApplyStyle(CSSStyleDeclaration *,Range *)462 virtual bool shouldApplyStyle(CSSStyleDeclaration *, Range *) 463 { 464 return false; 465 } shouldMoveRangeAfterDelete(Range *,Range *)466 virtual bool shouldMoveRangeAfterDelete(Range *, Range *) 467 { 468 return false; 469 } 470 // virtual bool shouldChangeTypingStyle(CSSStyleDeclaration* fromStyle, CSSStyleDeclaration* toStyle) { return false; } 471 // virtual bool doCommandBySelector(SEL selector) { return false; } 472 // didBeginEditing()473 virtual void didBeginEditing() { } respondToChangedContents()474 virtual void respondToChangedContents() { } respondToChangedSelection()475 virtual void respondToChangedSelection() { } didEndEditing()476 virtual void didEndEditing() { } didWriteSelectionToPasteboard()477 virtual void didWriteSelectionToPasteboard() { } didSetSelectionTypesForPasteboard()478 virtual void didSetSelectionTypesForPasteboard() { } 479 // virtual void webViewDidChangeTypingStyle:(NSNotification *)notification { } 480 // virtual void webViewDidChangeSelection:(NSNotification *)notification { } 481 // virtual NSUndoManager* undoManagerForWebView:(WebView *)webView { return 0; } 482 registerCommandForUndo(PassRefPtr<EditCommand>)483 virtual void registerCommandForUndo(PassRefPtr<EditCommand>) { } registerCommandForRedo(PassRefPtr<EditCommand>)484 virtual void registerCommandForRedo(PassRefPtr<EditCommand>) { } clearUndoRedoOperations()485 virtual void clearUndoRedoOperations() { } 486 canUndo()487 virtual bool canUndo() const 488 { 489 return false; 490 } canRedo()491 virtual bool canRedo() const 492 { 493 return false; 494 } 495 undo()496 virtual void undo() { } redo()497 virtual void redo() { } 498 handleKeyboardEvent(KeyboardEvent *)499 virtual void handleKeyboardEvent(KeyboardEvent *) { } handleInputMethodKeydown(KeyboardEvent *)500 virtual void handleInputMethodKeydown(KeyboardEvent *) { } 501 textFieldDidBeginEditing(Element *)502 virtual void textFieldDidBeginEditing(Element *) { } textFieldDidEndEditing(Element *)503 virtual void textFieldDidEndEditing(Element *) { } textDidChangeInTextField(Element *)504 virtual void textDidChangeInTextField(Element *) { } doTextFieldCommandFromEvent(Element *,KeyboardEvent *)505 virtual bool doTextFieldCommandFromEvent(Element *, KeyboardEvent *) 506 { 507 return false; 508 } textWillBeDeletedInTextField(Element *)509 virtual void textWillBeDeletedInTextField(Element *) { } textDidChangeInTextArea(Element *)510 virtual void textDidChangeInTextArea(Element *) { } 511 512 #if PLATFORM(MAC) markedTextAbandoned(Frame *)513 virtual void markedTextAbandoned(Frame *) { } 514 userVisibleString(NSURL *)515 virtual NSString *userVisibleString(NSURL *) 516 { 517 return 0; 518 } 519 #ifdef BUILDING_ON_TIGER pasteboardTypesForSelection(Frame *)520 virtual NSArray *pasteboardTypesForSelection(Frame *) 521 { 522 return 0; 523 } 524 #endif 525 #endif ignoreWordInSpellDocument(const String &)526 virtual void ignoreWordInSpellDocument(const String &) { } learnWord(const String &)527 virtual void learnWord(const String &) { } checkSpellingOfString(const UChar *,int length,int * misspellingLocation,int * misspellingLength)528 virtual void checkSpellingOfString(const UChar *, int length, int *misspellingLocation, int *misspellingLength) { } checkGrammarOfString(const UChar *,int length,Vector<GrammarDetail> &,int * badGrammarLocation,int * badGrammarLength)529 virtual void checkGrammarOfString(const UChar *, int length, Vector<GrammarDetail> &, int *badGrammarLocation, int *badGrammarLength) { } updateSpellingUIWithGrammarString(const String &,const GrammarDetail &)530 virtual void updateSpellingUIWithGrammarString(const String &, const GrammarDetail &) { } updateSpellingUIWithMisspelledWord(const String &)531 virtual void updateSpellingUIWithMisspelledWord(const String &) { } showSpellingUI(bool show)532 virtual void showSpellingUI(bool show) { } spellingUIIsShowing()533 virtual bool spellingUIIsShowing() 534 { 535 return false; 536 } getGuessesForWord(const String &,Vector<String> & guesses)537 virtual void getGuessesForWord(const String &, Vector<String> &guesses) { } setInputMethodState(bool enabled)538 virtual void setInputMethodState(bool enabled) { } 539 540 }; 541 542 class SVGEmptyContextMenuClient : public ContextMenuClient 543 { 544 public: ~SVGEmptyContextMenuClient()545 virtual ~SVGEmptyContextMenuClient() { } contextMenuDestroyed()546 virtual void contextMenuDestroyed() { } 547 getCustomMenuFromDefaultItems(ContextMenu *)548 virtual PlatformMenuDescription getCustomMenuFromDefaultItems(ContextMenu *) 549 { 550 return 0; 551 } contextMenuItemSelected(ContextMenuItem *,const ContextMenu *)552 virtual void contextMenuItemSelected(ContextMenuItem *, const ContextMenu *) { } 553 downloadURL(const KURL & url)554 virtual void downloadURL(const KURL &url) { } copyImageToClipboard(const HitTestResult &)555 virtual void copyImageToClipboard(const HitTestResult &) { } searchWithGoogle(const Frame *)556 virtual void searchWithGoogle(const Frame *) { } lookUpInDictionary(Frame *)557 virtual void lookUpInDictionary(Frame *) { } speak(const String &)558 virtual void speak(const String &) { } stopSpeaking()559 virtual void stopSpeaking() { } 560 561 #if PLATFORM(MAC) searchWithSpotlight()562 virtual void searchWithSpotlight() { } 563 #endif 564 }; 565 566 class SVGEmptyDragClient : public DragClient 567 { 568 public: ~SVGEmptyDragClient()569 virtual ~SVGEmptyDragClient() {} willPerformDragDestinationAction(DragDestinationAction,DragData *)570 virtual void willPerformDragDestinationAction(DragDestinationAction, DragData *) { } willPerformDragSourceAction(DragSourceAction,const IntPoint &,Clipboard *)571 virtual void willPerformDragSourceAction(DragSourceAction, const IntPoint &, Clipboard *) { } actionMaskForDrag(DragData *)572 virtual DragDestinationAction actionMaskForDrag(DragData *) 573 { 574 return DragDestinationActionNone; 575 } dragSourceActionMaskForPoint(const IntPoint &)576 virtual DragSourceAction dragSourceActionMaskForPoint(const IntPoint &) 577 { 578 return DragSourceActionNone; 579 } startDrag(DragImageRef,const IntPoint &,const IntPoint &,Clipboard *,Frame *,bool)580 virtual void startDrag(DragImageRef, const IntPoint &, const IntPoint &, Clipboard *, Frame *, bool) { } createDragImageForLink(KURL &,const String & label,Frame *)581 virtual DragImageRef createDragImageForLink(KURL &, const String &label, Frame *) 582 { 583 return 0; 584 } dragControllerDestroyed()585 virtual void dragControllerDestroyed() { } 586 }; 587 588 class SVGEmptyInspectorClient : public InspectorClient 589 { 590 public: ~SVGEmptyInspectorClient()591 virtual ~SVGEmptyInspectorClient() {} 592 inspectorDestroyed()593 virtual void inspectorDestroyed() {}; 594 createPage()595 virtual Page *createPage() 596 { 597 return 0; 598 }; 599 localizedStringsURL()600 virtual String localizedStringsURL() 601 { 602 return String(); 603 }; 604 showWindow()605 virtual void showWindow() {}; closeWindow()606 virtual void closeWindow() {}; 607 attachWindow()608 virtual void attachWindow() {}; detachWindow()609 virtual void detachWindow() {}; 610 highlight(Node *)611 virtual void highlight(Node *) {}; hideHighlight()612 virtual void hideHighlight() {}; inspectedURLChanged(const String & newURL)613 virtual void inspectedURLChanged(const String &newURL) {}; 614 }; 615 616 } 617 618 #endif // ENABLE(SVG) 619 620 #endif // SVGImageEmptyClients_h 621 622