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

Side by Side Diff: chrome/browser/tab_contents/tab_contents_delegate.h

Issue 3012001: Move implementation from header to source. (Closed) Base URL: http://src.chromium.org/git/chromium.git
Patch Set: blank line Created 10 years, 5 months 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
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CHROME_BROWSER_TAB_CONTENTS_TAB_CONTENTS_DELEGATE_H_ 5 #ifndef CHROME_BROWSER_TAB_CONTENTS_TAB_CONTENTS_DELEGATE_H_
6 #define CHROME_BROWSER_TAB_CONTENTS_TAB_CONTENTS_DELEGATE_H_ 6 #define CHROME_BROWSER_TAB_CONTENTS_TAB_CONTENTS_DELEGATE_H_
7 7
8 #include <string> 8 #include <string>
9 9
10 #include "base/basictypes.h" 10 #include "base/basictypes.h"
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
76 // it needs to do. 76 // it needs to do.
77 virtual void CloseContents(TabContents* source) = 0; 77 virtual void CloseContents(TabContents* source) = 0;
78 78
79 // Request the delegate to move this tab contents to the specified position 79 // Request the delegate to move this tab contents to the specified position
80 // in screen coordinates. 80 // in screen coordinates.
81 virtual void MoveContents(TabContents* source, const gfx::Rect& pos) = 0; 81 virtual void MoveContents(TabContents* source, const gfx::Rect& pos) = 0;
82 82
83 // Causes the delegate to detach |source| and clean up any internal data 83 // Causes the delegate to detach |source| and clean up any internal data
84 // pointing to it. After this call ownership of |source| passes to the 84 // pointing to it. After this call ownership of |source| passes to the
85 // caller, and it is safe to call "source->set_delegate(someone_else);". 85 // caller, and it is safe to call "source->set_delegate(someone_else);".
86 virtual void DetachContents(TabContents* source) { } 86 virtual void DetachContents(TabContents* source);
87 87
88 // Called to determine if the TabContents is contained in a popup window. 88 // Called to determine if the TabContents is contained in a popup window.
89 virtual bool IsPopup(TabContents* source) = 0; 89 virtual bool IsPopup(TabContents* source) = 0;
90 90
91 // If |source| is constrained, returns the tab containing it. Otherwise 91 // If |source| is constrained, returns the tab containing it. Otherwise
92 // returns |source|. 92 // returns |source|.
93 virtual TabContents* GetConstrainingContents(TabContents* source) { 93 virtual TabContents* GetConstrainingContents(TabContents* source);
94 return source;
95 }
96 94
97 // Notification that some of our content has changed size as 95 // Notification that some of our content has changed size as
98 // part of an animation. 96 // part of an animation.
99 virtual void ToolbarSizeChanged(TabContents* source, bool is_animating) = 0; 97 virtual void ToolbarSizeChanged(TabContents* source, bool is_animating) = 0;
100 98
101 // Notification that the starredness of the current URL changed. 99 // Notification that the starredness of the current URL changed.
102 virtual void URLStarredChanged(TabContents* source, bool starred) = 0; 100 virtual void URLStarredChanged(TabContents* source, bool starred) = 0;
103 101
104 // Notification that the target URL has changed. 102 // Notification that the target URL has changed.
105 virtual void UpdateTargetURL(TabContents* source, const GURL& url) = 0; 103 virtual void UpdateTargetURL(TabContents* source, const GURL& url) = 0;
106 104
107 // Notification that there was a mouse event, along with the absolute 105 // Notification that there was a mouse event, along with the absolute
108 // coordinates of the mouse pointer and whether it was a normal motion event 106 // coordinates of the mouse pointer and whether it was a normal motion event
109 // (otherwise, the pointer left the contents area). 107 // (otherwise, the pointer left the contents area).
110 virtual void ContentsMouseEvent( 108 virtual void ContentsMouseEvent(
111 TabContents* source, const gfx::Point& location, bool motion) { } 109 TabContents* source, const gfx::Point& location, bool motion);
112 110
113 // Request the delegate to change the zoom level of the current tab. 111 // Request the delegate to change the zoom level of the current tab.
114 virtual void ContentsZoomChange(bool zoom_in) { } 112 virtual void ContentsZoomChange(bool zoom_in);
115 113
116 // Notifies the delegate that something has changed about what content the 114 // Notifies the delegate that something has changed about what content the
117 // TabContents is blocking. Interested parties should call 115 // TabContents is blocking. Interested parties should call
118 // TabContents::IsContentBlocked() to see if something they care about has 116 // TabContents::IsContentBlocked() to see if something they care about has
119 // changed. 117 // changed.
120 virtual void OnContentSettingsChange(TabContents* source) { } 118 virtual void OnContentSettingsChange(TabContents* source);
121 119
122 // Check whether this contents is inside a window dedicated to running a web 120 // Check whether this contents is inside a window dedicated to running a web
123 // application. 121 // application.
124 virtual bool IsApplication() const { return false; } 122 virtual bool IsApplication() const;
125 123
126 // Detach the given tab and convert it to a "webapp" view. The tab must be 124 // Detach the given tab and convert it to a "webapp" view. The tab must be
127 // a TabContents with a valid WebApp set. 125 // a TabContents with a valid WebApp set.
128 virtual void ConvertContentsToApplication(TabContents* source) { } 126 virtual void ConvertContentsToApplication(TabContents* source);
129 127
130 // Whether this tab can be blurred through a javascript obj.blur() 128 // Whether this tab can be blurred through a javascript obj.blur()
131 // call. ConstrainedWindows shouldn't be able to be blurred. 129 // call. ConstrainedWindows shouldn't be able to be blurred.
132 virtual bool CanBlur() const { return true; } 130 virtual bool CanBlur() const;
133 131
134 // Whether the specified tab can be reloaded. 132 // Whether the specified tab can be reloaded.
135 // Reloading can be disabled e. g. for the DevTools window. 133 // Reloading can be disabled e. g. for the DevTools window.
136 virtual bool CanReloadContents(TabContents* source) const { return true; } 134 virtual bool CanReloadContents(TabContents* source) const;
137 135
138 // Return the rect where to display the resize corner, if any, otherwise 136 // Return the rect where to display the resize corner, if any, otherwise
139 // an empty rect. 137 // an empty rect.
140 virtual gfx::Rect GetRootWindowResizerRect() const { return gfx::Rect(); } 138 virtual gfx::Rect GetRootWindowResizerRect() const;
141 139
142 // Show a dialog with HTML content. |delegate| contains a pointer to the 140 // Show a dialog with HTML content. |delegate| contains a pointer to the
143 // delegate who knows how to display the dialog (which file URL and JSON 141 // delegate who knows how to display the dialog (which file URL and JSON
144 // string input to use during initialization). |parent_window| is the window 142 // string input to use during initialization). |parent_window| is the window
145 // that should be parent of the dialog, or NULL for the default. 143 // that should be parent of the dialog, or NULL for the default.
146 virtual void ShowHtmlDialog(HtmlDialogUIDelegate* delegate, 144 virtual void ShowHtmlDialog(HtmlDialogUIDelegate* delegate,
147 gfx::NativeWindow parent_window) { } 145 gfx::NativeWindow parent_window);
148 146
149 // Tells us that we've finished firing this tab's beforeunload event. 147 // Tells us that we've finished firing this tab's beforeunload event.
150 // The proceed bool tells us whether the user chose to proceed closing the 148 // The proceed bool tells us whether the user chose to proceed closing the
151 // tab. Returns true if the tab can continue on firing it's unload event. 149 // tab. Returns true if the tab can continue on firing it's unload event.
152 // If we're closing the entire browser, then we'll want to delay firing 150 // If we're closing the entire browser, then we'll want to delay firing
153 // unload events until all the beforeunload events have fired. 151 // unload events until all the beforeunload events have fired.
154 virtual void BeforeUnloadFired(TabContents* tab, 152 virtual void BeforeUnloadFired(TabContents* tab,
155 bool proceed, 153 bool proceed,
156 bool* proceed_to_fire_unload) { 154 bool* proceed_to_fire_unload);
157 *proceed_to_fire_unload = true;
158 }
159 155
160 // Send IPC to external host. Default implementation is do nothing. 156 // Send IPC to external host. Default implementation is do nothing.
161 virtual void ForwardMessageToExternalHost(const std::string& message, 157 virtual void ForwardMessageToExternalHost(const std::string& message,
162 const std::string& origin, 158 const std::string& origin,
163 const std::string& target) { 159 const std::string& target);
164 }
165 160
166 // If the delegate is hosting tabs externally. 161 // If the delegate is hosting tabs externally.
167 virtual bool IsExternalTabContainer() const { return false; } 162 virtual bool IsExternalTabContainer() const;
168 163
169 // Sets focus to the location bar or some other place that is appropriate. 164 // Sets focus to the location bar or some other place that is appropriate.
170 // This is called when the tab wants to encourage user input, like for the 165 // This is called when the tab wants to encourage user input, like for the
171 // new tab page. 166 // new tab page.
172 virtual void SetFocusToLocationBar(bool select_all) {} 167 virtual void SetFocusToLocationBar(bool select_all);
173 168
174 // Called when a popup select is about to be displayed. The delegate can use 169 // Called when a popup select is about to be displayed. The delegate can use
175 // this to disable inactive rendering for the frame in the window the select 170 // this to disable inactive rendering for the frame in the window the select
176 // is opened within if necessary. 171 // is opened within if necessary.
177 virtual void RenderWidgetShowing() {} 172 virtual void RenderWidgetShowing();
178 173
179 // This is used when the contents is an extension that needs to route 174 // This is used when the contents is an extension that needs to route
180 // api calls through to the Browser process. 175 // api calls through to the Browser process.
181 virtual ExtensionFunctionDispatcher* CreateExtensionFunctionDispatcher( 176 virtual ExtensionFunctionDispatcher* CreateExtensionFunctionDispatcher(
182 RenderViewHost* render_view_host, 177 RenderViewHost* render_view_host,
183 const std::string& extension_id) { 178 const std::string& extension_id);
184 return NULL;
185 }
186 179
187 // This is called when webkit tells us that it is done tabbing through 180 // This is called when webkit tells us that it is done tabbing through
188 // controls on the page. Provides a way for TabContentsDelegates to handle 181 // controls on the page. Provides a way for TabContentsDelegates to handle
189 // this. Returns true if the delegate successfully handled it. 182 // this. Returns true if the delegate successfully handled it.
190 virtual bool TakeFocus(bool reverse) { 183 virtual bool TakeFocus(bool reverse);
191 return false;
192 }
193 184
194 // Changes the blocked state of the tab at |index|. TabContents are 185 // Changes the blocked state of the tab at |index|. TabContents are
195 // considered blocked while displaying a tab modal dialog. During that time 186 // considered blocked while displaying a tab modal dialog. During that time
196 // renderer host will ignore any UI interaction within TabContent outside of 187 // renderer host will ignore any UI interaction within TabContent outside of
197 // the currently displaying dialog. 188 // the currently displaying dialog.
198 virtual void SetTabContentBlocked(TabContents* contents, bool blocked) { } 189 virtual void SetTabContentBlocked(TabContents* contents, bool blocked);
199 190
200 // Notification that |tab_contents| has gained focus. 191 // Notification that |tab_contents| has gained focus.
201 virtual void TabContentsFocused(TabContents* tab_content) { } 192 virtual void TabContentsFocused(TabContents* tab_content);
202 193
203 // Return much extra vertical space should be allotted to the 194 // Return much extra vertical space should be allotted to the
204 // render view widget during various animations (e.g. infobar closing). 195 // render view widget during various animations (e.g. infobar closing).
205 // This is used to make painting look smoother. 196 // This is used to make painting look smoother.
206 virtual int GetExtraRenderViewHeight() const { 197 virtual int GetExtraRenderViewHeight() const;
207 return 0;
208 }
209 198
210 virtual bool CanDownload(int request_id) { 199 virtual bool CanDownload(int request_id);
211 return true;
212 }
213 200
214 virtual void OnStartDownload(DownloadItem* download) { 201 virtual void OnStartDownload(DownloadItem* download);
215 }
216 202
217 // Returns true if the context menu operation was handled by the delegate. 203 // Returns true if the context menu operation was handled by the delegate.
218 virtual bool HandleContextMenu(const ContextMenuParams& params) { 204 virtual bool HandleContextMenu(const ContextMenuParams& params);
219 return false;
220 }
221 205
222 // Returns true if the context menu command was handled 206 // Returns true if the context menu command was handled
223 virtual bool ExecuteContextMenuCommand(int command) { 207 virtual bool ExecuteContextMenuCommand(int command);
224 return false;
225 }
226 208
227 // Shows a confirmation UI that the specified |template_url| is to be added as 209 // Shows a confirmation UI that the specified |template_url| is to be added as
228 // a search engine. 210 // a search engine.
229 virtual void ConfirmAddSearchProvider(const TemplateURL* template_url, 211 virtual void ConfirmAddSearchProvider(const TemplateURL* template_url,
230 Profile* profile) { 212 Profile* profile);
231 }
232 213
233 // Shows the page info using the specified information. 214 // Shows the page info using the specified information.
234 // |url| is the url of the page/frame the info applies to, |ssl| is the SSL 215 // |url| is the url of the page/frame the info applies to, |ssl| is the SSL
235 // information for that page/frame. If |show_history| is true, a section 216 // information for that page/frame. If |show_history| is true, a section
236 // showing how many times that URL has been visited is added to the page info. 217 // showing how many times that URL has been visited is added to the page info.
237 virtual void ShowPageInfo(Profile* profile, 218 virtual void ShowPageInfo(Profile* profile,
238 const GURL& url, 219 const GURL& url,
239 const NavigationEntry::SSLStatus& ssl, 220 const NavigationEntry::SSLStatus& ssl,
240 bool show_history) { 221 bool show_history);
241 }
242 222
243 // Allows delegates to handle keyboard events before sending to the renderer. 223 // Allows delegates to handle keyboard events before sending to the renderer.
244 // Returns true if the |event| was handled. Otherwise, if the |event| would be 224 // Returns true if the |event| was handled. Otherwise, if the |event| would be
245 // handled in HandleKeyboardEvent() method as a normal keyboard shortcut, 225 // handled in HandleKeyboardEvent() method as a normal keyboard shortcut,
246 // |*is_keyboard_shortcut| should be set to true. 226 // |*is_keyboard_shortcut| should be set to true.
247 virtual bool PreHandleKeyboardEvent(const NativeWebKeyboardEvent& event, 227 virtual bool PreHandleKeyboardEvent(const NativeWebKeyboardEvent& event,
248 bool* is_keyboard_shortcut) { 228 bool* is_keyboard_shortcut);
249 return false;
250 }
251 229
252 // Allows delegates to handle unhandled keyboard messages coming back from 230 // Allows delegates to handle unhandled keyboard messages coming back from
253 // the renderer. 231 // the renderer.
254 virtual void HandleKeyboardEvent(const NativeWebKeyboardEvent& event) {} 232 virtual void HandleKeyboardEvent(const NativeWebKeyboardEvent& event);
255 233
256 // Shows the repost form confirmation dialog box. 234 // Shows the repost form confirmation dialog box.
257 virtual void ShowRepostFormWarningDialog(TabContents* tab_contents) {} 235 virtual void ShowRepostFormWarningDialog(TabContents* tab_contents);
258 236
259 // Shows the Content Settings dialog for a given content type. 237 // Shows the Content Settings dialog for a given content type.
260 virtual void ShowContentSettingsWindow(ContentSettingsType content_type) {} 238 virtual void ShowContentSettingsWindow(ContentSettingsType content_type);
261 239
262 // Allows delegate to override navigation to the history entries. 240 // Allows delegate to override navigation to the history entries.
263 // Returns true to allow TabContents to continue with the default processing. 241 // Returns true to allow TabContents to continue with the default processing.
264 virtual bool OnGoToEntryOffset(int offset) { 242 virtual bool OnGoToEntryOffset(int offset);
265 return true;
266 }
267 243
268 // Returns whether this tab contents should add navigations to history. 244 // Returns whether this tab contents should add navigations to history.
269 virtual bool ShouldAddNavigationsToHistory() const { return true; } 245 virtual bool ShouldAddNavigationsToHistory() const;
270 246
271 // Notification when web app info data is available 247 // Notification when web app info data is available
272 virtual void OnDidGetApplicationInfo(TabContents* tab_contents, 248 virtual void OnDidGetApplicationInfo(TabContents* tab_contents,
273 int32 page_id) { 249 int32 page_id);
274 }
275 250
276 // Returns the browser in which the tab contents is being displayed. 251 // Returns the browser in which the tab contents is being displayed.
277 virtual Browser* GetBrowser() { return NULL; } 252 virtual Browser* GetBrowser();
278 253
279 // Returns the native window framing the view containing the tab contents. 254 // Returns the native window framing the view containing the tab contents.
280 virtual gfx::NativeWindow GetFrameNativeWindow() { return NULL; } 255 virtual gfx::NativeWindow GetFrameNativeWindow();
281 256
282 // Notifies the delegate about the creation of a new TabContents. This 257 // Notifies the delegate about the creation of a new TabContents. This
283 // typically happens when popups are created. 258 // typically happens when popups are created.
284 virtual void TabContentsCreated(TabContents* new_contents) {} 259 virtual void TabContentsCreated(TabContents* new_contents);
285 260
286 // Returns whether infobars are enabled. Overrideable by child classes. 261 // Returns whether infobars are enabled. Overrideable by child classes.
287 virtual bool infobars_enabled() { return true; } 262 virtual bool infobars_enabled();
288 263
289 // Whether the renderer should report its preferred size when it changes by 264 // Whether the renderer should report its preferred size when it changes by
290 // calling UpdatePreferredSize(). 265 // calling UpdatePreferredSize().
291 // Note that this is set when the RenderViewHost is created and cannot be 266 // Note that this is set when the RenderViewHost is created and cannot be
292 // changed after that. 267 // changed after that.
293 virtual bool ShouldEnablePreferredSizeNotifications() { return false; } 268 virtual bool ShouldEnablePreferredSizeNotifications();
294 269
295 // Notification that the preferred size of the contents has changed. 270 // Notification that the preferred size of the contents has changed.
296 // Only called if ShouldEnablePreferredSizeNotifications() returns true. 271 // Only called if ShouldEnablePreferredSizeNotifications() returns true.
297 virtual void UpdatePreferredSize(const gfx::Size& pref_size) {} 272 virtual void UpdatePreferredSize(const gfx::Size& pref_size);
298 273
299 protected: 274 protected:
300 ~TabContentsDelegate() {} 275 ~TabContentsDelegate();
301 }; 276 };
302 277
303 #endif // CHROME_BROWSER_TAB_CONTENTS_TAB_CONTENTS_DELEGATE_H_ 278 #endif // CHROME_BROWSER_TAB_CONTENTS_TAB_CONTENTS_DELEGATE_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698