00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifndef SVGImageEmptyClients_h
00027 #define SVGImageEmptyClients_h
00028
00029 #if ENABLE(SVG)
00030
00031 #include "ChromeClient.h"
00032 #include "ContextMenuClient.h"
00033 #include "DragClient.h"
00034 #include "EditorClient.h"
00035 #include "FocusDirection.h"
00036 #include "FrameLoaderClient.h"
00037 #include "InspectorClient.h"
00038 #include "SharedBuffer.h"
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051
00052 namespace WebCore {
00053
00054 class SVGEmptyChromeClient : public ChromeClient {
00055 public:
00056 virtual ~SVGEmptyChromeClient() { }
00057 virtual void chromeDestroyed() { }
00058
00059 virtual void setWindowRect(const FloatRect&) { }
00060 virtual FloatRect windowRect() { return FloatRect(); }
00061
00062 virtual FloatRect pageRect() { return FloatRect(); }
00063
00064 virtual float scaleFactor() { return 1.f; }
00065
00066 virtual void focus() { }
00067 virtual void unfocus() { }
00068
00069 virtual bool canTakeFocus(FocusDirection) { return false; }
00070 virtual void takeFocus(FocusDirection) { }
00071
00072 virtual Page* createWindow(Frame*, const FrameLoadRequest&, const WindowFeatures&) { return 0; }
00073 virtual void show() { }
00074
00075 virtual bool canRunModal() { return false; }
00076 virtual void runModal() { }
00077
00078 virtual void setToolbarsVisible(bool) { }
00079 virtual bool toolbarsVisible() { return false; }
00080
00081 virtual void setStatusbarVisible(bool) { }
00082 virtual bool statusbarVisible() { return false; }
00083
00084 virtual void setScrollbarsVisible(bool) { }
00085 virtual bool scrollbarsVisible() { return false; }
00086
00087 virtual void setMenubarVisible(bool) { }
00088 virtual bool menubarVisible() { return false; }
00089
00090 virtual void setResizable(bool) { }
00091
00092 virtual void addMessageToConsole(const String& message, unsigned int lineNumber, const String& sourceID) { }
00093
00094 virtual bool canRunBeforeUnloadConfirmPanel() { return false; }
00095 virtual bool runBeforeUnloadConfirmPanel(const String& message, Frame* frame) { return true; }
00096
00097 virtual void closeWindowSoon() { }
00098
00099 virtual void runJavaScriptAlert(Frame*, const String&) { }
00100 virtual bool runJavaScriptConfirm(Frame*, const String&) { return false; }
00101 virtual bool runJavaScriptPrompt(Frame*, const String& message, const String& defaultValue, String& result) { return false; }
00102 virtual bool shouldInterruptJavaScript() { return false; }
00103
00104 virtual void setStatusbarText(const String&) { }
00105
00106 virtual bool tabsToLinks() const { return false; }
00107
00108 virtual IntRect windowResizerRect() const { return IntRect(); }
00109 virtual void addToDirtyRegion(const IntRect&) { }
00110 virtual void scrollBackingStore(int dx, int dy, const IntRect& scrollViewRect, const IntRect& clipRect) { }
00111 virtual void updateBackingStore() { }
00112
00113 virtual void mouseDidMoveOverElement(const HitTestResult&, unsigned modifierFlags) { }
00114
00115 virtual void setToolTip(const String&) { }
00116
00117 virtual void print(Frame*) { }
00118
00119 virtual void exceededDatabaseQuota(Frame*, const String&) { }
00120 };
00121
00122 class SVGEmptyFrameLoaderClient : public FrameLoaderClient {
00123 public:
00124 virtual ~SVGEmptyFrameLoaderClient() { }
00125 virtual void frameLoaderDestroyed() { }
00126
00127 virtual bool hasWebView() const { return true; }
00128 virtual bool hasFrameView() const { return true; }
00129
00130 virtual void makeRepresentation(DocumentLoader*) { }
00131 virtual void forceLayout() { }
00132 virtual void forceLayoutForNonHTML() { }
00133
00134 virtual void updateHistoryForCommit() { }
00135
00136 virtual void updateHistoryForBackForwardNavigation() { }
00137 virtual void updateHistoryForReload() { }
00138 virtual void updateHistoryForStandardLoad() { }
00139 virtual void updateHistoryForInternalLoad() { }
00140
00141 virtual void updateHistoryAfterClientRedirect() { }
00142
00143 virtual void setCopiesOnScroll() { }
00144
00145 virtual void detachedFromParent2() { }
00146 virtual void detachedFromParent3() { }
00147 virtual void detachedFromParent4() { }
00148
00149 virtual void download(ResourceHandle*, const ResourceRequest&, const ResourceRequest&, const ResourceResponse&) { }
00150
00151 virtual void assignIdentifierToInitialRequest(unsigned long identifier, DocumentLoader*, const ResourceRequest&) { }
00152 virtual void dispatchWillSendRequest(DocumentLoader*, unsigned long identifier, ResourceRequest&, const ResourceResponse& redirectResponse) { }
00153 virtual void dispatchDidReceiveAuthenticationChallenge(DocumentLoader*, unsigned long identifier, const AuthenticationChallenge&) { }
00154 virtual void dispatchDidCancelAuthenticationChallenge(DocumentLoader*, unsigned long identifier, const AuthenticationChallenge&) { }
00155 virtual void dispatchDidReceiveResponse(DocumentLoader*, unsigned long identifier, const ResourceResponse&) { }
00156 virtual void dispatchDidReceiveContentLength(DocumentLoader*, unsigned long identifier, int lengthReceived) { }
00157 virtual void dispatchDidFinishLoading(DocumentLoader*, unsigned long identifier) { }
00158 virtual void dispatchDidFailLoading(DocumentLoader*, unsigned long identifier, const ResourceError&) { }
00159 virtual bool dispatchDidLoadResourceFromMemoryCache(DocumentLoader*, const ResourceRequest&, const ResourceResponse&, int length) { return false; }
00160
00161 virtual void dispatchDidHandleOnloadEvents() { }
00162 virtual void dispatchDidReceiveServerRedirectForProvisionalLoad() { }
00163 virtual void dispatchDidCancelClientRedirect() { }
00164 virtual void dispatchWillPerformClientRedirect(const KURL&, double interval, double fireDate) { }
00165 virtual void dispatchDidChangeLocationWithinPage() { }
00166 virtual void dispatchWillClose() { }
00167 virtual void dispatchDidReceiveIcon() { }
00168 virtual void dispatchDidStartProvisionalLoad() { }
00169 virtual void dispatchDidReceiveTitle(const String& title) { }
00170 virtual void dispatchDidCommitLoad() { }
00171 virtual void dispatchDidFailProvisionalLoad(const ResourceError&) { }
00172 virtual void dispatchDidFailLoad(const ResourceError&) { }
00173 virtual void dispatchDidFinishDocumentLoad() { }
00174 virtual void dispatchDidFinishLoad() { }
00175 virtual void dispatchDidFirstLayout() { }
00176
00177 virtual Frame* dispatchCreatePage() { return 0; }
00178 virtual void dispatchShow() { }
00179
00180 virtual void dispatchDecidePolicyForMIMEType(FramePolicyFunction, const String& MIMEType, const ResourceRequest&) { }
00181 virtual void dispatchDecidePolicyForNewWindowAction(FramePolicyFunction, const NavigationAction&, const ResourceRequest&, const String& frameName) { }
00182 virtual void dispatchDecidePolicyForNavigationAction(FramePolicyFunction, const NavigationAction&, const ResourceRequest&) { }
00183 virtual void cancelPolicyCheck() { }
00184
00185 virtual void dispatchUnableToImplementPolicy(const ResourceError&) { }
00186
00187 virtual void dispatchWillSubmitForm(FramePolicyFunction, PassRefPtr<FormState>) { }
00188
00189 virtual void dispatchDidLoadMainResource(DocumentLoader*) { }
00190 virtual void revertToProvisionalState(DocumentLoader*) { }
00191 virtual void setMainDocumentError(DocumentLoader*, const ResourceError&) { }
00192
00193 virtual void willChangeEstimatedProgress() { }
00194 virtual void didChangeEstimatedProgress() { }
00195 virtual void postProgressStartedNotification() { }
00196 virtual void postProgressEstimateChangedNotification() { }
00197 virtual void postProgressFinishedNotification() { }
00198
00199 virtual void setMainFrameDocumentReady(bool) { }
00200
00201 virtual void startDownload(const ResourceRequest&) { }
00202
00203 virtual void willChangeTitle(DocumentLoader*) { }
00204 virtual void didChangeTitle(DocumentLoader*) { }
00205
00206 virtual void committedLoad(DocumentLoader*, const char*, int) { }
00207 virtual void finishedLoading(DocumentLoader*) { }
00208
00209 virtual ResourceError cancelledError(const ResourceRequest&) { return ResourceError(); }
00210 virtual ResourceError blockedError(const ResourceRequest&) { return ResourceError(); }
00211 virtual ResourceError cannotShowURLError(const ResourceRequest&) { return ResourceError(); }
00212 virtual ResourceError interruptForPolicyChangeError(const ResourceRequest&) { return ResourceError(); }
00213
00214 virtual ResourceError cannotShowMIMETypeError(const ResourceResponse&) { return ResourceError(); }
00215 virtual ResourceError fileDoesNotExistError(const ResourceResponse&) { return ResourceError(); }
00216
00217 virtual bool shouldFallBack(const ResourceError&) { return false; }
00218
00219 virtual bool canHandleRequest(const ResourceRequest&) const { return false; }
00220 virtual bool canShowMIMEType(const String& MIMEType) const { return false; }
00221 virtual bool representationExistsForURLScheme(const String& URLScheme) const { return false; }
00222 virtual String generatedMIMETypeForURLScheme(const String& URLScheme) const { return ""; }
00223
00224 virtual void frameLoadCompleted() { }
00225 virtual void restoreViewState() { }
00226 virtual void provisionalLoadStarted() { }
00227 virtual bool shouldTreatURLAsSameAsCurrent(const KURL&) const { return false; }
00228 virtual void addHistoryItemForFragmentScroll() { }
00229 virtual void didFinishLoad() { }
00230 virtual void prepareForDataSourceReplacement() { }
00231
00232 virtual PassRefPtr<DocumentLoader> createDocumentLoader(const ResourceRequest& request, const SubstituteData& substituteData) { return new DocumentLoader(request, substituteData); }
00233 virtual void setTitle(const String& title, const KURL&) { }
00234
00235 virtual String userAgent(const KURL&) { return ""; }
00236
00237 virtual void savePlatformDataToCachedPage(CachedPage*) { }
00238 virtual void transitionToCommittedFromCachedPage(CachedPage*) { }
00239 virtual void transitionToCommittedForNewPage() { }
00240
00241 virtual void updateGlobalHistory(const KURL&) { }
00242 virtual bool shouldGoToHistoryItem(HistoryItem*) const { return false; }
00243 virtual void saveViewStateToItem(HistoryItem*) { }
00244 virtual bool canCachePage() const { return false; }
00245
00246 virtual PassRefPtr<Frame> createFrame(const KURL& url, const String& name, HTMLFrameOwnerElement* ownerElement,
00247 const String& referrer, bool allowsScrolling, int marginWidth, int marginHeight) { return 0; }
00248 virtual Widget* createPlugin(const IntSize&,Element*, const KURL&, const Vector<String>&, const Vector<String>&, const String&, bool) { return 0; }
00249 virtual Widget* createJavaAppletWidget(const IntSize&, Element*, const KURL&, const Vector<String>&, const Vector<String>&) { return 0; }
00250
00251 virtual ObjectContentType objectContentType(const KURL& url, const String& mimeType) { return ObjectContentType(); }
00252 virtual String overrideMediaType() const { return String(); }
00253
00254 virtual void redirectDataToPlugin(Widget*) {}
00255 virtual void windowObjectCleared() {}
00256 virtual void didPerformFirstNavigation() const {}
00257
00258 virtual void registerForIconNotification(bool listen) {}
00259
00260 #if PLATFORM(MAC)
00261 virtual NSCachedURLResponse* willCacheResponse(DocumentLoader*, unsigned long identifier, NSCachedURLResponse* response) const { return response; }
00262 #endif
00263
00264 };
00265
00266 class SVGEmptyEditorClient : public EditorClient {
00267 public:
00268 virtual ~SVGEmptyEditorClient() { }
00269 virtual void pageDestroyed() { }
00270
00271 virtual bool shouldDeleteRange(Range*) { return false; }
00272 virtual bool shouldShowDeleteInterface(HTMLElement*) { return false; }
00273 virtual bool smartInsertDeleteEnabled() { return false; }
00274 virtual bool isContinuousSpellCheckingEnabled() { return false; }
00275 virtual void toggleContinuousSpellChecking() { }
00276 virtual bool isGrammarCheckingEnabled() { return false; }
00277 virtual void toggleGrammarChecking() { }
00278 virtual int spellCheckerDocumentTag() { return -1; }
00279
00280 virtual bool selectWordBeforeMenuEvent() { return false; }
00281 virtual bool isEditable() { return false; }
00282
00283 virtual bool shouldBeginEditing(Range*) { return false; }
00284 virtual bool shouldEndEditing(Range*) { return false; }
00285 virtual bool shouldInsertNode(Node*, Range*, EditorInsertAction) { return false; }
00286
00287 virtual bool shouldInsertText(const String&, Range*, EditorInsertAction) { return false; }
00288 virtual bool shouldChangeSelectedRange(Range* fromRange, Range* toRange, EAffinity, bool stillSelecting) { return false; }
00289
00290 virtual bool shouldApplyStyle(CSSStyleDeclaration*, Range*) { return false; }
00291 virtual bool shouldMoveRangeAfterDelete(Range*, Range*) { return false; }
00292
00293
00294
00295 virtual void didBeginEditing() { }
00296 virtual void respondToChangedContents() { }
00297 virtual void respondToChangedSelection() { }
00298 virtual void didEndEditing() { }
00299 virtual void didWriteSelectionToPasteboard() { }
00300 virtual void didSetSelectionTypesForPasteboard() { }
00301
00302
00303
00304
00305 virtual void registerCommandForUndo(PassRefPtr<EditCommand>) { }
00306 virtual void registerCommandForRedo(PassRefPtr<EditCommand>) { }
00307 virtual void clearUndoRedoOperations() { }
00308
00309 virtual bool canUndo() const { return false; }
00310 virtual bool canRedo() const { return false; }
00311
00312 virtual void undo() { }
00313 virtual void redo() { }
00314
00315 virtual void handleKeyboardEvent(KeyboardEvent*) { }
00316 virtual void handleInputMethodKeydown(KeyboardEvent*) { }
00317
00318 virtual void textFieldDidBeginEditing(Element*) { }
00319 virtual void textFieldDidEndEditing(Element*) { }
00320 virtual void textDidChangeInTextField(Element*) { }
00321 virtual bool doTextFieldCommandFromEvent(Element*, KeyboardEvent*) { return false; }
00322 virtual void textWillBeDeletedInTextField(Element*) { }
00323 virtual void textDidChangeInTextArea(Element*) { }
00324
00325 #if PLATFORM(MAC)
00326 virtual void markedTextAbandoned(Frame*) { }
00327
00328 virtual NSString* userVisibleString(NSURL*) { return 0; }
00329 #ifdef BUILDING_ON_TIGER
00330 virtual NSArray* pasteboardTypesForSelection(Frame*) { return 0; }
00331 #endif
00332 #endif
00333 virtual void ignoreWordInSpellDocument(const String&) { }
00334 virtual void learnWord(const String&) { }
00335 virtual void checkSpellingOfString(const UChar*, int length, int* misspellingLocation, int* misspellingLength) { }
00336 virtual void checkGrammarOfString(const UChar*, int length, Vector<GrammarDetail>&, int* badGrammarLocation, int* badGrammarLength) { }
00337 virtual void updateSpellingUIWithGrammarString(const String&, const GrammarDetail&) { }
00338 virtual void updateSpellingUIWithMisspelledWord(const String&) { }
00339 virtual void showSpellingUI(bool show) { }
00340 virtual bool spellingUIIsShowing() { return false; }
00341 virtual void getGuessesForWord(const String&, Vector<String>& guesses) { }
00342 virtual void setInputMethodState(bool enabled) { }
00343
00344
00345 };
00346
00347 class SVGEmptyContextMenuClient : public ContextMenuClient {
00348 public:
00349 virtual ~SVGEmptyContextMenuClient() { }
00350 virtual void contextMenuDestroyed() { }
00351
00352 virtual PlatformMenuDescription getCustomMenuFromDefaultItems(ContextMenu*) { return 0; }
00353 virtual void contextMenuItemSelected(ContextMenuItem*, const ContextMenu*) { }
00354
00355 virtual void downloadURL(const KURL& url) { }
00356 virtual void copyImageToClipboard(const HitTestResult&) { }
00357 virtual void searchWithGoogle(const Frame*) { }
00358 virtual void lookUpInDictionary(Frame*) { }
00359 virtual void speak(const String&) { }
00360 virtual void stopSpeaking() { }
00361
00362 #if PLATFORM(MAC)
00363 virtual void searchWithSpotlight() { }
00364 #endif
00365 };
00366
00367 class SVGEmptyDragClient : public DragClient {
00368 public:
00369 virtual ~SVGEmptyDragClient() {}
00370 virtual void willPerformDragDestinationAction(DragDestinationAction, DragData*) { }
00371 virtual void willPerformDragSourceAction(DragSourceAction, const IntPoint&, Clipboard*) { }
00372 virtual DragDestinationAction actionMaskForDrag(DragData*) { return DragDestinationActionNone; }
00373 virtual DragSourceAction dragSourceActionMaskForPoint(const IntPoint&) { return DragSourceActionNone; }
00374 virtual void startDrag(DragImageRef, const IntPoint&, const IntPoint&, Clipboard*, Frame*, bool) { }
00375 virtual DragImageRef createDragImageForLink(KURL&, const String& label, Frame*) { return 0; }
00376 virtual void dragControllerDestroyed() { }
00377 };
00378
00379 class SVGEmptyInspectorClient : public InspectorClient {
00380 public:
00381 virtual ~SVGEmptyInspectorClient() {}
00382
00383 virtual void inspectorDestroyed() {};
00384
00385 virtual Page* createPage() { return 0; };
00386
00387 virtual String localizedStringsURL() { return String(); };
00388
00389 virtual void showWindow() {};
00390 virtual void closeWindow() {};
00391
00392 virtual void attachWindow() {};
00393 virtual void detachWindow() {};
00394
00395 virtual void highlight(Node*) {};
00396 virtual void hideHighlight() {};
00397 virtual void inspectedURLChanged(const String& newURL) {};
00398 };
00399
00400 }
00401
00402 #endif // ENABLE(SVG)
00403
00404 #endif // SVGImageEmptyClients_h
00405