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 #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h" | 5 #include "chrome/browser/ui/tab_contents/tab_contents_wrapper.h" |
6 | 6 |
7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
8 #include "base/lazy_instance.h" | 8 #include "base/lazy_instance.h" |
9 #include "chrome/browser/autocomplete_history_manager.h" | 9 #include "chrome/browser/autocomplete_history_manager.h" |
10 #include "chrome/browser/autofill/autofill_external_delegate.h" | 10 #include "chrome/browser/autofill/autofill_external_delegate.h" |
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
78 autofill_external_delegate_.reset( | 78 autofill_external_delegate_.reset( |
79 AutofillExternalDelegate::Create(this, autofill_manager_.get())); | 79 AutofillExternalDelegate::Create(this, autofill_manager_.get())); |
80 autofill_manager_->SetExternalDelegate(autofill_external_delegate_.get()); | 80 autofill_manager_->SetExternalDelegate(autofill_external_delegate_.get()); |
81 autocomplete_history_manager_->SetExternalDelegate( | 81 autocomplete_history_manager_->SetExternalDelegate( |
82 autofill_external_delegate_.get()); | 82 autofill_external_delegate_.get()); |
83 } | 83 } |
84 automation_tab_helper_.reset(new AutomationTabHelper(contents)); | 84 automation_tab_helper_.reset(new AutomationTabHelper(contents)); |
85 blocked_content_tab_helper_.reset(new BlockedContentTabHelper(this)); | 85 blocked_content_tab_helper_.reset(new BlockedContentTabHelper(this)); |
86 bookmark_tab_helper_.reset(new BookmarkTabHelper(this)); | 86 bookmark_tab_helper_.reset(new BookmarkTabHelper(this)); |
87 constrained_window_tab_helper_.reset(new ConstrainedWindowTabHelper(this)); | 87 constrained_window_tab_helper_.reset(new ConstrainedWindowTabHelper(this)); |
88 core_tab_helper_.reset(new CoreTabHelper(this)); | 88 core_tab_helper_.reset(new CoreTabHelper(contents)); |
89 extension_tab_helper_.reset(new ExtensionTabHelper(this)); | 89 extension_tab_helper_.reset(new ExtensionTabHelper(this)); |
90 favicon_tab_helper_.reset(new FaviconTabHelper(contents)); | 90 favicon_tab_helper_.reset(new FaviconTabHelper(contents)); |
91 find_tab_helper_.reset(new FindTabHelper(contents)); | 91 find_tab_helper_.reset(new FindTabHelper(contents)); |
92 history_tab_helper_.reset(new HistoryTabHelper(contents)); | 92 history_tab_helper_.reset(new HistoryTabHelper(contents)); |
93 infobar_tab_helper_.reset(new InfoBarTabHelper(contents)); | 93 infobar_tab_helper_.reset(new InfoBarTabHelper(contents)); |
94 password_manager_delegate_.reset(new PasswordManagerDelegateImpl(this)); | 94 password_manager_delegate_.reset(new PasswordManagerDelegateImpl(this)); |
95 password_manager_.reset( | 95 password_manager_.reset( |
96 new PasswordManager(contents, password_manager_delegate_.get())); | 96 new PasswordManager(contents, password_manager_delegate_.get())); |
97 prefs_tab_helper_.reset(new PrefsTabHelper(contents)); | 97 prefs_tab_helper_.reset(new PrefsTabHelper(contents)); |
98 prerender_tab_helper_.reset(new prerender::PrerenderTabHelper(this)); | 98 prerender_tab_helper_.reset(new prerender::PrerenderTabHelper(this)); |
99 print_view_manager_.reset(new printing::PrintViewManager(this)); | 99 print_view_manager_.reset(new printing::PrintViewManager(this)); |
100 restore_tab_helper_.reset(new RestoreTabHelper(contents)); | 100 restore_tab_helper_.reset(new RestoreTabHelper(contents)); |
101 search_engine_tab_helper_.reset(new SearchEngineTabHelper(contents)); | 101 search_engine_tab_helper_.reset(new SearchEngineTabHelper(contents)); |
102 snapshot_tab_helper_.reset(new SnapshotTabHelper(contents)); | 102 snapshot_tab_helper_.reset(new SnapshotTabHelper(contents)); |
103 ssl_helper_.reset(new TabContentsSSLHelper(this)); | 103 ssl_helper_.reset(new TabContentsSSLHelper(this)); |
104 synced_tab_delegate_.reset(new TabContentsWrapperSyncedTabDelegate(this)); | 104 synced_tab_delegate_.reset(new TabContentsWrapperSyncedTabDelegate(this)); |
105 content_settings_.reset(new TabSpecificContentSettings(contents)); | 105 content_settings_.reset(new TabSpecificContentSettings(contents)); |
106 translate_tab_helper_.reset(new TranslateTabHelper(contents)); | 106 translate_tab_helper_.reset(new TranslateTabHelper(contents)); |
107 web_intent_picker_controller_.reset(new WebIntentPickerController( | 107 web_intent_picker_controller_.reset(new WebIntentPickerController( |
108 this, new WebIntentPickerFactoryImpl())); | 108 this, new WebIntentPickerFactoryImpl())); |
109 | 109 |
110 // Create the per-tab observers. | 110 // Create the per-tab observers. |
111 alternate_error_page_tab_observer_.reset( | 111 alternate_error_page_tab_observer_.reset( |
112 new AlternateErrorPageTabObserver(this)); | 112 new AlternateErrorPageTabObserver(contents)); |
113 download_request_limiter_observer_.reset( | 113 download_request_limiter_observer_.reset( |
114 new DownloadRequestLimiterObserver(contents)); | 114 new DownloadRequestLimiterObserver(contents)); |
115 webnavigation_observer_.reset( | 115 webnavigation_observer_.reset( |
116 new ExtensionWebNavigationTabObserver(contents)); | 116 new ExtensionWebNavigationTabObserver(contents)); |
117 external_protocol_observer_.reset(new ExternalProtocolObserver(contents)); | 117 external_protocol_observer_.reset(new ExternalProtocolObserver(contents)); |
118 if (OmniboxSearchHint::IsEnabled(profile())) | 118 if (OmniboxSearchHint::IsEnabled(profile())) |
119 omnibox_search_hint_.reset(new OmniboxSearchHint(this)); | 119 omnibox_search_hint_.reset(new OmniboxSearchHint(this)); |
120 pdf_tab_observer_.reset(new PDFTabObserver(this)); | 120 pdf_tab_observer_.reset(new PDFTabObserver(this)); |
121 plugin_observer_.reset(new PluginObserver(this)); | 121 plugin_observer_.reset(new PluginObserver(this)); |
122 print_preview_.reset(new printing::PrintPreviewMessageHandler(contents)); | 122 print_preview_.reset(new printing::PrintPreviewMessageHandler(contents)); |
(...skipping 15 matching lines...) Expand all Loading... |
138 // TODO(avi): Can we get this handled by the tab helper itself? | 138 // TODO(avi): Can we get this handled by the tab helper itself? |
139 infobar_tab_helper_.reset(); | 139 infobar_tab_helper_.reset(); |
140 } | 140 } |
141 | 141 |
142 base::PropertyAccessor<TabContentsWrapper*>* | 142 base::PropertyAccessor<TabContentsWrapper*>* |
143 TabContentsWrapper::property_accessor() { | 143 TabContentsWrapper::property_accessor() { |
144 return g_tab_contents_wrapper_property_accessor.Pointer(); | 144 return g_tab_contents_wrapper_property_accessor.Pointer(); |
145 } | 145 } |
146 | 146 |
147 TabContentsWrapper* TabContentsWrapper::Clone() { | 147 TabContentsWrapper* TabContentsWrapper::Clone() { |
148 TabContents* new_contents = tab_contents()->Clone(); | 148 TabContents* new_contents = web_contents()->Clone(); |
149 TabContentsWrapper* new_wrapper = new TabContentsWrapper(new_contents); | 149 TabContentsWrapper* new_wrapper = new TabContentsWrapper(new_contents); |
150 | 150 |
151 // TODO(avi): Can we generalize this so that knowledge of the functionings of | 151 // TODO(avi): Can we generalize this so that knowledge of the functionings of |
152 // the tab helpers isn't required here? | 152 // the tab helpers isn't required here? |
153 new_wrapper->extension_tab_helper()->CopyStateFrom( | 153 new_wrapper->extension_tab_helper()->CopyStateFrom( |
154 *extension_tab_helper_.get()); | 154 *extension_tab_helper_.get()); |
155 return new_wrapper; | 155 return new_wrapper; |
156 } | 156 } |
157 | 157 |
158 // static | 158 // static |
(...skipping 12 matching lines...) Expand all Loading... |
171 property_accessor()->GetProperty(contents->GetPropertyBag()); | 171 property_accessor()->GetProperty(contents->GetPropertyBag()); |
172 | 172 |
173 return wrapper ? *wrapper : NULL; | 173 return wrapper ? *wrapper : NULL; |
174 } | 174 } |
175 | 175 |
176 WebContents* TabContentsWrapper::web_contents() const { | 176 WebContents* TabContentsWrapper::web_contents() const { |
177 return tab_contents_.get(); | 177 return tab_contents_.get(); |
178 } | 178 } |
179 | 179 |
180 Profile* TabContentsWrapper::profile() const { | 180 Profile* TabContentsWrapper::profile() const { |
181 return Profile::FromBrowserContext(tab_contents()->GetBrowserContext()); | 181 return Profile::FromBrowserContext(web_contents()->GetBrowserContext()); |
182 } | 182 } |
183 | 183 |
184 //////////////////////////////////////////////////////////////////////////////// | 184 //////////////////////////////////////////////////////////////////////////////// |
185 // WebContentsObserver overrides | 185 // WebContentsObserver overrides |
186 | 186 |
187 void TabContentsWrapper::WebContentsDestroyed(WebContents* tab) { | 187 void TabContentsWrapper::WebContentsDestroyed(WebContents* tab) { |
188 // Destruction of the WebContents should only be done by us from our | 188 // Destruction of the WebContents should only be done by us from our |
189 // destructor. Otherwise it's very likely we (or one of the helpers we own) | 189 // destructor. Otherwise it's very likely we (or one of the helpers we own) |
190 // will attempt to access the TabContents and we'll crash. | 190 // will attempt to access the TabContents and we'll crash. |
191 DCHECK(in_destructor_); | 191 DCHECK(in_destructor_); |
192 } | 192 } |
OLD | NEW |