OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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_UI_TAB_CONTENTS_TAB_CONTENTS_WRAPPER_H_ | 5 #ifndef CHROME_BROWSER_UI_TAB_CONTENTS_TAB_CONTENTS_WRAPPER_H_ |
6 #define CHROME_BROWSER_UI_TAB_CONTENTS_TAB_CONTENTS_WRAPPER_H_ | 6 #define CHROME_BROWSER_UI_TAB_CONTENTS_TAB_CONTENTS_WRAPPER_H_ |
7 #pragma once | 7 #pragma once |
8 | 8 |
9 #include <string> | 9 #include <string> |
10 #include <vector> | 10 #include <vector> |
11 | 11 |
12 #include "base/basictypes.h" | 12 #include "base/basictypes.h" |
13 #include "base/compiler_specific.h" | 13 #include "base/compiler_specific.h" |
14 #include "base/memory/ref_counted.h" | 14 #include "base/memory/ref_counted.h" |
15 #include "base/memory/scoped_ptr.h" | 15 #include "base/memory/scoped_ptr.h" |
16 #include "chrome/browser/prefs/pref_change_registrar.h" | 16 #include "chrome/browser/prefs/pref_change_registrar.h" |
17 #include "content/browser/tab_contents/tab_contents.h" | 17 #include "content/browser/tab_contents/tab_contents.h" |
18 #include "content/browser/tab_contents/tab_contents_observer.h" | 18 #include "content/browser/tab_contents/tab_contents_observer.h" |
19 #include "content/public/browser/notification_registrar.h" | 19 #include "content/public/browser/notification_registrar.h" |
20 | 20 |
21 class AutocompleteHistoryManager; | 21 class AutocompleteHistoryManager; |
22 class AutofillManager; | 22 class AutofillManager; |
23 class AutofillExternalDelegate; | 23 class AutofillExternalDelegate; |
24 class AutomationTabHelper; | 24 class AutomationTabHelper; |
25 class BlockedContentTabHelper; | 25 class BlockedContentTabHelper; |
26 class BookmarkTabHelper; | 26 class BookmarkTabHelper; |
27 class ConstrainedWindowTabHelper; | 27 class ConstrainedWindowTabHelper; |
28 class DownloadRequestLimiterObserver; | 28 class DownloadRequestLimiterObserver; |
29 class Extension; | |
30 class ExtensionTabHelper; | 29 class ExtensionTabHelper; |
31 class ExtensionWebNavigationTabObserver; | 30 class ExtensionWebNavigationTabObserver; |
32 class ExternalProtocolObserver; | 31 class ExternalProtocolObserver; |
33 class FaviconTabHelper; | 32 class FaviconTabHelper; |
34 class FindTabHelper; | 33 class FindTabHelper; |
| 34 class HistoryTabHelper; |
35 class InfoBarTabHelper; | 35 class InfoBarTabHelper; |
36 class HistoryTabHelper; | |
37 class NavigationController; | |
38 class OmniboxSearchHint; | 36 class OmniboxSearchHint; |
39 class PasswordManager; | 37 class PasswordManager; |
40 class PasswordManagerDelegate; | 38 class PasswordManagerDelegate; |
41 class PerTabPrefsTabHelper; | |
42 class PluginObserver; | 39 class PluginObserver; |
43 class PrefService; | 40 class PrefService; |
| 41 class PrefsTabHelper; |
44 class Profile; | 42 class Profile; |
45 class RestoreTabHelper; | 43 class RestoreTabHelper; |
46 class SadTabObserver; | 44 class SadTabObserver; |
47 class SearchEngineTabHelper; | 45 class SearchEngineTabHelper; |
48 class TabContentsSSLHelper; | 46 class TabContentsSSLHelper; |
49 class TabContentsWrapperDelegate; | 47 class TabContentsWrapperDelegate; |
50 class TabContentsWrapperSyncedTabDelegate; | 48 class TabContentsWrapperSyncedTabDelegate; |
51 class TabSpecificContentSettings; | 49 class TabSpecificContentSettings; |
52 class ThumbnailGenerator; | 50 class ThumbnailGenerator; |
53 class TranslateTabHelper; | 51 class TranslateTabHelper; |
54 class WebIntentPickerController; | 52 class WebIntentPickerController; |
55 | 53 |
56 namespace browser_sync { | |
57 class SyncedTabDelegate; | |
58 } | |
59 | |
60 namespace IPC { | 54 namespace IPC { |
61 class Message; | 55 class Message; |
62 } | 56 } |
63 | 57 |
64 namespace prerender { | 58 namespace prerender { |
65 class PrerenderTabHelper; | 59 class PrerenderTabHelper; |
66 } | 60 } |
67 | 61 |
68 namespace printing { | 62 namespace printing { |
69 class PrintViewManager; | 63 class PrintViewManager; |
(...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
167 | 161 |
168 const ExtensionTabHelper* extension_tab_helper() const { | 162 const ExtensionTabHelper* extension_tab_helper() const { |
169 return extension_tab_helper_.get(); | 163 return extension_tab_helper_.get(); |
170 } | 164 } |
171 | 165 |
172 FaviconTabHelper* favicon_tab_helper() { return favicon_tab_helper_.get(); } | 166 FaviconTabHelper* favicon_tab_helper() { return favicon_tab_helper_.get(); } |
173 FindTabHelper* find_tab_helper() { return find_tab_helper_.get(); } | 167 FindTabHelper* find_tab_helper() { return find_tab_helper_.get(); } |
174 HistoryTabHelper* history_tab_helper() { return history_tab_helper_.get(); } | 168 HistoryTabHelper* history_tab_helper() { return history_tab_helper_.get(); } |
175 InfoBarTabHelper* infobar_tab_helper() { return infobar_tab_helper_.get(); } | 169 InfoBarTabHelper* infobar_tab_helper() { return infobar_tab_helper_.get(); } |
176 PasswordManager* password_manager() { return password_manager_.get(); } | 170 PasswordManager* password_manager() { return password_manager_.get(); } |
177 | 171 PrefsTabHelper* prefs_tab_helper() { return prefs_tab_helper_.get(); } |
178 PerTabPrefsTabHelper* per_tab_prefs_tab_helper() { | |
179 return per_tab_prefs_tab_helper_.get(); | |
180 } | |
181 | 172 |
182 prerender::PrerenderTabHelper* prerender_tab_helper() { | 173 prerender::PrerenderTabHelper* prerender_tab_helper() { |
183 return prerender_tab_helper_.get(); | 174 return prerender_tab_helper_.get(); |
184 } | 175 } |
185 | 176 |
186 printing::PrintViewManager* print_view_manager() { | 177 printing::PrintViewManager* print_view_manager() { |
187 return print_view_manager_.get(); | 178 return print_view_manager_.get(); |
188 } | 179 } |
189 | 180 |
190 RestoreTabHelper* restore_tab_helper() { | 181 RestoreTabHelper* restore_tab_helper() { |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
228 virtual void DidBecomeSelected() OVERRIDE; | 219 virtual void DidBecomeSelected() OVERRIDE; |
229 virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE; | 220 virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE; |
230 virtual void TabContentsDestroyed(TabContents* tab) OVERRIDE; | 221 virtual void TabContentsDestroyed(TabContents* tab) OVERRIDE; |
231 | 222 |
232 // content::NotificationObserver overrides: | 223 // content::NotificationObserver overrides: |
233 virtual void Observe(int type, | 224 virtual void Observe(int type, |
234 const content::NotificationSource& source, | 225 const content::NotificationSource& source, |
235 const content::NotificationDetails& details) OVERRIDE; | 226 const content::NotificationDetails& details) OVERRIDE; |
236 | 227 |
237 private: | 228 private: |
238 friend class PerTabPrefsTabHelper; // for UpdateWebPreferences | |
239 FRIEND_TEST_ALL_PREFIXES( | 229 FRIEND_TEST_ALL_PREFIXES( |
240 PerTabPrefsTabHelperTest, OverridePrefsOnViewCreation); | 230 PrefsTabHelperTest, OverridePrefsOnViewCreation); |
241 | 231 |
242 // Internal helpers ---------------------------------------------------------- | 232 // Internal helpers ---------------------------------------------------------- |
243 | 233 |
244 // Message handlers. | 234 // Message handlers. |
245 void OnSnapshot(const SkBitmap& bitmap); | 235 void OnSnapshot(const SkBitmap& bitmap); |
246 void OnPDFHasUnsupportedFeature(); | 236 void OnPDFHasUnsupportedFeature(); |
247 | 237 |
248 // Returns the server that can provide alternate error pages. If the returned | 238 // Returns the server that can provide alternate error pages. If the returned |
249 // URL is empty, the default error page built into WebKit will be used. | 239 // URL is empty, the default error page built into WebKit will be used. |
250 GURL GetAlternateErrorPageURL() const; | 240 GURL GetAlternateErrorPageURL() const; |
251 | 241 |
252 // Send the alternate error page URL to the renderer. | 242 // Send the alternate error page URL to the renderer. |
253 void UpdateAlternateErrorPageURL(RenderViewHost* rvh); | 243 void UpdateAlternateErrorPageURL(RenderViewHost* rvh); |
254 | 244 |
255 // Update the RenderView's WebPreferences. | |
256 void UpdateWebPreferences(); | |
257 | |
258 // Update the TabContents's RendererPreferences. | |
259 void UpdateRendererPreferences(); | |
260 | |
261 // Create or destroy SafebrowsingDetectionHost as needed if the user's | 245 // Create or destroy SafebrowsingDetectionHost as needed if the user's |
262 // safe browsing preference has changed. | 246 // safe browsing preference has changed. |
263 void UpdateSafebrowsingDetectionHost(); | 247 void UpdateSafebrowsingDetectionHost(); |
264 | 248 |
265 // Data for core operation --------------------------------------------------- | 249 // Data for core operation --------------------------------------------------- |
266 | 250 |
267 // Delegate for notifying our owner about stuff. Not owned by us. | 251 // Delegate for notifying our owner about stuff. Not owned by us. |
268 TabContentsWrapperDelegate* delegate_; | 252 TabContentsWrapperDelegate* delegate_; |
269 | 253 |
270 content::NotificationRegistrar registrar_; | 254 content::NotificationRegistrar registrar_; |
(...skipping 20 matching lines...) Expand all Loading... |
291 scoped_ptr<FaviconTabHelper> favicon_tab_helper_; | 275 scoped_ptr<FaviconTabHelper> favicon_tab_helper_; |
292 scoped_ptr<FindTabHelper> find_tab_helper_; | 276 scoped_ptr<FindTabHelper> find_tab_helper_; |
293 scoped_ptr<HistoryTabHelper> history_tab_helper_; | 277 scoped_ptr<HistoryTabHelper> history_tab_helper_; |
294 scoped_ptr<InfoBarTabHelper> infobar_tab_helper_; | 278 scoped_ptr<InfoBarTabHelper> infobar_tab_helper_; |
295 | 279 |
296 // PasswordManager and its delegate. The delegate must outlive the manager, | 280 // PasswordManager and its delegate. The delegate must outlive the manager, |
297 // per documentation in password_manager.h. | 281 // per documentation in password_manager.h. |
298 scoped_ptr<PasswordManagerDelegate> password_manager_delegate_; | 282 scoped_ptr<PasswordManagerDelegate> password_manager_delegate_; |
299 scoped_ptr<PasswordManager> password_manager_; | 283 scoped_ptr<PasswordManager> password_manager_; |
300 | 284 |
301 scoped_ptr<PerTabPrefsTabHelper> per_tab_prefs_tab_helper_; | 285 scoped_ptr<PrefsTabHelper> prefs_tab_helper_; |
302 scoped_ptr<prerender::PrerenderTabHelper> prerender_tab_helper_; | 286 scoped_ptr<prerender::PrerenderTabHelper> prerender_tab_helper_; |
303 | 287 |
304 // Handles print job for this contents. | 288 // Handles print job for this contents. |
305 scoped_ptr<printing::PrintViewManager> print_view_manager_; | 289 scoped_ptr<printing::PrintViewManager> print_view_manager_; |
306 | 290 |
307 scoped_ptr<RestoreTabHelper> restore_tab_helper_; | 291 scoped_ptr<RestoreTabHelper> restore_tab_helper_; |
308 | 292 |
309 // Handles displaying a web intents picker to the user. | 293 // Handles displaying a web intents picker to the user. |
310 scoped_ptr<WebIntentPickerController> web_intent_picker_controller_; | 294 scoped_ptr<WebIntentPickerController> web_intent_picker_controller_; |
311 | 295 |
(...skipping 30 matching lines...) Expand all Loading... |
342 | 326 |
343 // The supporting objects need to outlive the TabContents dtor (as they may | 327 // The supporting objects need to outlive the TabContents dtor (as they may |
344 // be called upon during its execution). As a result, this must come last | 328 // be called upon during its execution). As a result, this must come last |
345 // in the list. | 329 // in the list. |
346 scoped_ptr<TabContents> tab_contents_; | 330 scoped_ptr<TabContents> tab_contents_; |
347 | 331 |
348 DISALLOW_COPY_AND_ASSIGN(TabContentsWrapper); | 332 DISALLOW_COPY_AND_ASSIGN(TabContentsWrapper); |
349 }; | 333 }; |
350 | 334 |
351 #endif // CHROME_BROWSER_UI_TAB_CONTENTS_TAB_CONTENTS_WRAPPER_H_ | 335 #endif // CHROME_BROWSER_UI_TAB_CONTENTS_TAB_CONTENTS_WRAPPER_H_ |
OLD | NEW |