Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1107)

Side by Side Diff: webkit/api/public/WebViewClient.h

Issue 346042: Add default implementations for WebViewClient and WebWidgetClient... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 11 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/renderer/render_view.cc ('k') | webkit/api/public/WebWidgetClient.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2009 Google Inc. All rights reserved. 2 * Copyright (C) 2009 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 16 matching lines...) Expand all
27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29 */ 29 */
30 30
31 #ifndef WebViewClient_h 31 #ifndef WebViewClient_h
32 #define WebViewClient_h 32 #define WebViewClient_h
33 33
34 #include "WebDragOperation.h" 34 #include "WebDragOperation.h"
35 #include "WebEditingAction.h" 35 #include "WebEditingAction.h"
36 #include "WebFileChooserCompletion.h" 36 #include "WebFileChooserCompletion.h"
37 #include "WebString.h"
37 #include "WebTextAffinity.h" 38 #include "WebTextAffinity.h"
38 #include "WebTextDirection.h" 39 #include "WebTextDirection.h"
39 #include "WebWidgetClient.h" 40 #include "WebWidgetClient.h"
40 41
41 namespace WebKit { 42 namespace WebKit {
42 class WebAccessibilityObject; 43 class WebAccessibilityObject;
43 class WebDragData; 44 class WebDragData;
44 class WebFileChooserCompletion; 45 class WebFileChooserCompletion;
45 class WebFrame; 46 class WebFrame;
46 class WebNode; 47 class WebNode;
47 class WebNotificationPresenter; 48 class WebNotificationPresenter;
48 class WebRange; 49 class WebRange;
49 class WebString;
50 class WebURL; 50 class WebURL;
51 class WebView; 51 class WebView;
52 class WebWidget; 52 class WebWidget;
53 struct WebConsoleMessage; 53 struct WebConsoleMessage;
54 struct WebContextMenuData; 54 struct WebContextMenuData;
55 struct WebPoint; 55 struct WebPoint;
56 struct WebPopupMenuInfo; 56 struct WebPopupMenuInfo;
57 57
58 // Since a WebView is a WebWidget, a WebViewClient is a WebWidgetClient. 58 // Since a WebView is a WebWidget, a WebViewClient is a WebWidgetClient.
59 // Virtual inheritance allows an implementation of WebWidgetClient to be 59 // Virtual inheritance allows an implementation of WebWidgetClient to be
60 // easily reused as part of an implementation of WebViewClient. 60 // easily reused as part of an implementation of WebViewClient.
61 class WebViewClient : virtual public WebWidgetClient { 61 class WebViewClient : virtual public WebWidgetClient {
62 public: 62 public:
63 // Factory methods ----------------------------------------------------- 63 // Factory methods -----------------------------------------------------
64 64
65 // Create a new related WebView. 65 // Create a new related WebView.
66 virtual WebView* createView(WebFrame* creator) = 0; 66 virtual WebView* createView(WebFrame* creator) { return 0; }
67 67
68 // Create a new WebPopupMenu. In the second form, the client is 68 // Create a new WebPopupMenu. In the second form, the client is
69 // responsible for rendering the contents of the popup menu. 69 // responsible for rendering the contents of the popup menu.
70 virtual WebWidget* createPopupMenu(bool activatable) = 0; 70 virtual WebWidget* createPopupMenu(bool activatable) { return 0; }
71 virtual WebWidget* createPopupMenu(const WebPopupMenuInfo&) = 0; 71 virtual WebWidget* createPopupMenu(const WebPopupMenuInfo&) { return 0; }
72 72
73 73
74 // Misc ---------------------------------------------------------------- 74 // Misc ----------------------------------------------------------------
75 75
76 // A new message was added to the console. 76 // A new message was added to the console.
77 virtual void didAddMessageToConsole( 77 virtual void didAddMessageToConsole(
78 const WebConsoleMessage&, const WebString& sourceName, unsigned sourceLine) = 0; 78 const WebConsoleMessage&, const WebString& sourceName, unsigned sourceLine) { }
79 79
80 // Called when script in the page calls window.print(). If frame is 80 // Called when script in the page calls window.print(). If frame is
81 // non-null, then it selects a particular frame, including its 81 // non-null, then it selects a particular frame, including its
82 // children, to print. Otherwise, the main frame and its children 82 // children, to print. Otherwise, the main frame and its children
83 // should be printed. 83 // should be printed.
84 virtual void printPage(WebFrame*) = 0; 84 virtual void printPage(WebFrame*) { }
85 85
86 // Called to retrieve the provider of desktop notifications. 86 // Called to retrieve the provider of desktop notifications.
87 virtual WebNotificationPresenter* notificationPresenter() = 0; 87 virtual WebNotificationPresenter* notificationPresenter() { return 0; }
88 88
89 89
90 // Navigational -------------------------------------------------------- 90 // Navigational --------------------------------------------------------
91 91
92 // These notifications bracket any loading that occurs in the WebView. 92 // These notifications bracket any loading that occurs in the WebView.
93 virtual void didStartLoading() = 0; 93 virtual void didStartLoading() { }
94 virtual void didStopLoading() = 0; 94 virtual void didStopLoading() { }
95 95
96 96
97 // Editing ------------------------------------------------------------- 97 // Editing -------------------------------------------------------------
98 98
99 // These methods allow the client to intercept and overrule editing 99 // These methods allow the client to intercept and overrule editing
100 // operations. 100 // operations.
101 virtual bool shouldBeginEditing(const WebRange&) = 0; 101 virtual bool shouldBeginEditing(const WebRange&) { return true; }
102 virtual bool shouldEndEditing(const WebRange&) = 0; 102 virtual bool shouldEndEditing(const WebRange&) { return true; }
103 virtual bool shouldInsertNode( 103 virtual bool shouldInsertNode(
104 const WebNode&, const WebRange&, WebEditingAction) = 0; 104 const WebNode&, const WebRange&, WebEditingAction) { return true; }
105 virtual bool shouldInsertText( 105 virtual bool shouldInsertText(
106 const WebString&, const WebRange&, WebEditingAction) = 0; 106 const WebString&, const WebRange&, WebEditingAction) { return true; }
107 virtual bool shouldChangeSelectedRange( 107 virtual bool shouldChangeSelectedRange(
108 const WebRange& from, const WebRange& to, WebTextAffinity, 108 const WebRange& from, const WebRange& to, WebTextAffinity,
109 bool stillSelecting) = 0; 109 bool stillSelecting) { return true; }
110 virtual bool shouldDeleteRange(const WebRange&) = 0; 110 virtual bool shouldDeleteRange(const WebRange&) { return true; }
111 virtual bool shouldApplyStyle(const WebString& style, const WebRange&) = 0; 111 virtual bool shouldApplyStyle(const WebString& style, const WebRange&) { return true; }
112 112
113 virtual bool isSmartInsertDeleteEnabled() = 0; 113 virtual bool isSmartInsertDeleteEnabled() { return true; }
114 virtual bool isSelectTrailingWhitespaceEnabled() = 0; 114 virtual bool isSelectTrailingWhitespaceEnabled() { return true; }
115 virtual void setInputMethodEnabled(bool enabled) = 0; 115 virtual void setInputMethodEnabled(bool enabled) { }
116 116
117 virtual void didBeginEditing() = 0; 117 virtual void didBeginEditing() { }
118 virtual void didChangeSelection(bool isSelectionEmpty) = 0; 118 virtual void didChangeSelection(bool isSelectionEmpty) { }
119 virtual void didChangeContents() = 0; 119 virtual void didChangeContents() { }
120 virtual void didExecuteCommand(const WebString& commandName) = 0; 120 virtual void didExecuteCommand(const WebString& commandName) { }
121 virtual void didEndEditing() = 0; 121 virtual void didEndEditing() { }
122 122
123 // This method is called in response to WebView's handleInputEvent() 123 // This method is called in response to WebView's handleInputEvent()
124 // when the default action for the current keyboard event is not 124 // when the default action for the current keyboard event is not
125 // suppressed by the page, to give the embedder a chance to handle 125 // suppressed by the page, to give the embedder a chance to handle
126 // the keyboard event specially. 126 // the keyboard event specially.
127 // 127 //
128 // Returns true if the keyboard event was handled by the embedder, 128 // Returns true if the keyboard event was handled by the embedder,
129 // indicating that the default action should be suppressed. 129 // indicating that the default action should be suppressed.
130 virtual bool handleCurrentKeyboardEvent() = 0; 130 virtual bool handleCurrentKeyboardEvent() { return false; }
131 131
132 132
133 // Spellchecker -------------------------------------------------------- 133 // Spellchecker --------------------------------------------------------
134 134
135 // The client should perform spell-checking on the given text. If the 135 // The client should perform spell-checking on the given text. If the
136 // text contains a misspelled word, then upon return misspelledOffset 136 // text contains a misspelled word, then upon return misspelledOffset
137 // will point to the start of the misspelled word, and misspelledLength 137 // will point to the start of the misspelled word, and misspelledLength
138 // will indicates its length. Otherwise, if there was not a spelling 138 // will indicates its length. Otherwise, if there was not a spelling
139 // error, then upon return misspelledLength is 0. 139 // error, then upon return misspelledLength is 0.
140 virtual void spellCheck( 140 virtual void spellCheck(
141 const WebString& text, int& misspelledOffset, int& misspelledLength) = 0; 141 const WebString& text, int& misspelledOffset, int& misspelledLength) { }
142 142
143 // Computes an auto-corrected replacement for a misspelled word. If no 143 // Computes an auto-corrected replacement for a misspelled word. If no
144 // replacement is found, then an empty string is returned. 144 // replacement is found, then an empty string is returned.
145 virtual WebString autoCorrectWord(const WebString& misspelledWord) = 0; 145 virtual WebString autoCorrectWord(const WebString& misspelledWord) { return WebString(); }
146 146
147 // Show or hide the spelling UI. 147 // Show or hide the spelling UI.
148 virtual void showSpellingUI(bool show) = 0; 148 virtual void showSpellingUI(bool show) { }
149 149
150 // Returns true if the spelling UI is showing. 150 // Returns true if the spelling UI is showing.
151 virtual bool isShowingSpellingUI() = 0; 151 virtual bool isShowingSpellingUI() { return false; }
152 152
153 // Update the spelling UI with the given word. 153 // Update the spelling UI with the given word.
154 virtual void updateSpellingUIWithMisspelledWord(const WebString& word) = 0; 154 virtual void updateSpellingUIWithMisspelledWord(const WebString& word) { }
155 155
156 156
157 // Dialogs ------------------------------------------------------------- 157 // Dialogs -------------------------------------------------------------
158 158
159 // This method returns immediately after showing the dialog. When the 159 // This method returns immediately after showing the dialog. When the
160 // dialog is closed, it should call the WebFileChooserCompletion to 160 // dialog is closed, it should call the WebFileChooserCompletion to
161 // pass the results of the dialog. Returns false if 161 // pass the results of the dialog. Returns false if
162 // WebFileChooseCompletion will never be called. 162 // WebFileChooseCompletion will never be called.
163 virtual bool runFileChooser( 163 virtual bool runFileChooser(
164 bool multiSelect, const WebString& title, 164 bool multiSelect, const WebString& title,
165 const WebString& initialValue, WebFileChooserCompletion*) = 0; 165 const WebString& initialValue, WebFileChooserCompletion*) { return false; }
166 166
167 // Displays a modal alert dialog containing the given message. Returns 167 // Displays a modal alert dialog containing the given message. Returns
168 // once the user dismisses the dialog. 168 // once the user dismisses the dialog.
169 virtual void runModalAlertDialog( 169 virtual void runModalAlertDialog(
170 WebFrame*, const WebString& message) = 0; 170 WebFrame*, const WebString& message) { }
171 171
172 // Displays a modal confirmation dialog with the given message as 172 // Displays a modal confirmation dialog with the given message as
173 // description and OK/Cancel choices. Returns true if the user selects 173 // description and OK/Cancel choices. Returns true if the user selects
174 // 'OK' or false otherwise. 174 // 'OK' or false otherwise.
175 virtual bool runModalConfirmDialog( 175 virtual bool runModalConfirmDialog(
176 WebFrame*, const WebString& message) = 0; 176 WebFrame*, const WebString& message) { return false; }
177 177
178 // Displays a modal input dialog with the given message as description 178 // Displays a modal input dialog with the given message as description
179 // and OK/Cancel choices. The input field is pre-filled with 179 // and OK/Cancel choices. The input field is pre-filled with
180 // defaultValue. Returns true if the user selects 'OK' or false 180 // defaultValue. Returns true if the user selects 'OK' or false
181 // otherwise. Upon returning true, actualValue contains the value of 181 // otherwise. Upon returning true, actualValue contains the value of
182 // the input field. 182 // the input field.
183 virtual bool runModalPromptDialog( 183 virtual bool runModalPromptDialog(
184 WebFrame*, const WebString& message, const WebString& defaultValue, 184 WebFrame*, const WebString& message, const WebString& defaultValue,
185 WebString* actualValue) = 0; 185 WebString* actualValue) { return false; }
186 186
187 // Displays a modal confirmation dialog containing the given message as 187 // Displays a modal confirmation dialog containing the given message as
188 // description and OK/Cancel choices, where 'OK' means that it is okay 188 // description and OK/Cancel choices, where 'OK' means that it is okay
189 // to proceed with closing the view. Returns true if the user selects 189 // to proceed with closing the view. Returns true if the user selects
190 // 'OK' or false otherwise. 190 // 'OK' or false otherwise.
191 virtual bool runModalBeforeUnloadDialog( 191 virtual bool runModalBeforeUnloadDialog(
192 WebFrame*, const WebString& message) = 0; 192 WebFrame*, const WebString& message) { return true; }
193 193
194 // Shows a context menu with commands relevant to a specific element on
195 // the given frame. Additional context data is supplied.
196 virtual void showContextMenu(WebFrame*, const WebContextMenuData&) = 0;
197 194
198 // UI ------------------------------------------------------------------ 195 // UI ------------------------------------------------------------------
199 196
200 // Called when script modifies window.status 197 // Called when script modifies window.status
201 virtual void setStatusText(const WebString&) = 0; 198 virtual void setStatusText(const WebString&) { }
202 199
203 // Called when hovering over an anchor with the given URL. 200 // Called when hovering over an anchor with the given URL.
204 virtual void setMouseOverURL(const WebURL&) = 0; 201 virtual void setMouseOverURL(const WebURL&) { }
205 202
206 // Called when keyboard focus switches to an anchor with the given URL. 203 // Called when keyboard focus switches to an anchor with the given URL.
207 virtual void setKeyboardFocusURL(const WebURL&) = 0; 204 virtual void setKeyboardFocusURL(const WebURL&) { }
208 205
209 // Called when a tooltip should be shown at the current cursor position. 206 // Called when a tooltip should be shown at the current cursor position.
210 virtual void setToolTipText(const WebString&, WebTextDirection hint) = 0; 207 virtual void setToolTipText(const WebString&, WebTextDirection hint) { }
211 208
212 // Called when a context menu should be shown at the current cursor position. 209 // Shows a context menu with commands relevant to a specific element on
213 // FIXME hook this up 210 // the given frame. Additional context data is supplied.
214 //virtual void showContextMenu(const WebContextMenuInfo&) = 0; 211 virtual void showContextMenu(WebFrame*, const WebContextMenuData&) { }
215 212
216 // Called when a drag-n-drop operation should begin. 213 // Called when a drag-n-drop operation should begin.
217 virtual void startDragging( 214 virtual void startDragging(
218 const WebPoint& from, const WebDragData&, WebDragOperationsMask) = 0; 215 const WebPoint& from, const WebDragData&, WebDragOperationsMask) { }
219 216
220 // Called to determine if drag-n-drop operations may initiate a page 217 // Called to determine if drag-n-drop operations may initiate a page
221 // navigation. 218 // navigation.
222 virtual bool acceptsLoadDrops() = 0; 219 virtual bool acceptsLoadDrops() { return true; }
223 220
224 // Take focus away from the WebView by focusing an adjacent UI element 221 // Take focus away from the WebView by focusing an adjacent UI element
225 // in the containing window. 222 // in the containing window.
226 virtual void focusNext() = 0; 223 virtual void focusNext() { }
227 virtual void focusPrevious() = 0; 224 virtual void focusPrevious() { }
228 225
229 226
230 // Session history ----------------------------------------------------- 227 // Session history -----------------------------------------------------
231 228
232 // Tells the embedder to navigate back or forward in session history by 229 // Tells the embedder to navigate back or forward in session history by
233 // the given offset (relative to the current position in session 230 // the given offset (relative to the current position in session
234 // history). 231 // history).
235 virtual void navigateBackForwardSoon(int offset) = 0; 232 virtual void navigateBackForwardSoon(int offset) { }
236 233
237 // Returns the number of history items before/after the current 234 // Returns the number of history items before/after the current
238 // history item. 235 // history item.
239 virtual int historyBackListCount() = 0; 236 virtual int historyBackListCount() { return 0; }
240 virtual int historyForwardListCount() = 0; 237 virtual int historyForwardListCount() { return 0; }
241 238
242 // Called to notify the embedder when a new history item is added. 239 // Called to notify the embedder when a new history item is added.
243 virtual void didAddHistoryItem() = 0; 240 virtual void didAddHistoryItem() { }
244 241
245 242
246 // Accessibility ------------------------------------------------------- 243 // Accessibility -------------------------------------------------------
247 244
248 // Notifies embedder that the focus has changed to the given 245 // Notifies embedder that the focus has changed to the given
249 // accessibility object. 246 // accessibility object.
250 virtual void focusAccessibilityObject(const WebAccessibilityObject&) = 0; 247 virtual void focusAccessibilityObject(const WebAccessibilityObject&) { }
251 248
252 249
253 // Developer tools ----------------------------------------------------- 250 // Developer tools -----------------------------------------------------
254 251
255 // Called to notify the client that the inspector's settings were 252 // Called to notify the client that the inspector's settings were
256 // changed and should be saved. See WebView::inspectorSettings. 253 // changed and should be saved. See WebView::inspectorSettings.
257 virtual void didUpdateInspectorSettings() = 0; 254 virtual void didUpdateInspectorSettings() { }
258 255
259 256
260 // Autofill ------------------------------------------------------------ 257 // Autofill ------------------------------------------------------------
261 258
262 // Queries the browser for suggestions to be shown for the form text 259 // Queries the browser for suggestions to be shown for the form text
263 // field named |name|. |value| is the text entered by the user so 260 // field named |name|. |value| is the text entered by the user so
264 // far and the WebNode corresponds to the input field. 261 // far and the WebNode corresponds to the input field.
265 virtual void queryAutofillSuggestions(const WebNode&, 262 virtual void queryAutofillSuggestions(const WebNode&,
266 const WebString& name, 263 const WebString& name,
267 const WebString& value) = 0; 264 const WebString& value) { }
268 265
269 // Instructs the browser to remove the autofill entry specified from 266 // Instructs the browser to remove the autofill entry specified from
270 // its DB. 267 // its DB.
271 virtual void removeAutofillSuggestions(const WebString& name, 268 virtual void removeAutofillSuggestions(const WebString& name,
272 const WebString& value) = 0; 269 const WebString& value) { }
273 270
274 protected: 271 protected:
275 ~WebViewClient() { } 272 ~WebViewClient() { }
276 }; 273 };
277 274
278 } // namespace WebKit 275 } // namespace WebKit
279 276
280 #endif 277 #endif
OLDNEW
« no previous file with comments | « chrome/renderer/render_view.cc ('k') | webkit/api/public/WebWidgetClient.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698