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_manager.h" | 10 #include "chrome/browser/autofill/autofill_manager.h" |
(...skipping 151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
162 | 162 |
163 registrar_.Add(this, chrome::NOTIFICATION_GOOGLE_URL_UPDATED, | 163 registrar_.Add(this, chrome::NOTIFICATION_GOOGLE_URL_UPDATED, |
164 NotificationService::AllSources()); | 164 NotificationService::AllSources()); |
165 registrar_.Add(this, chrome::NOTIFICATION_USER_STYLE_SHEET_UPDATED, | 165 registrar_.Add(this, chrome::NOTIFICATION_USER_STYLE_SHEET_UPDATED, |
166 NotificationService::AllSources()); | 166 NotificationService::AllSources()); |
167 #if defined(OS_POSIX) && !defined(OS_MACOSX) | 167 #if defined(OS_POSIX) && !defined(OS_MACOSX) |
168 registrar_.Add(this, chrome::NOTIFICATION_BROWSER_THEME_CHANGED, | 168 registrar_.Add(this, chrome::NOTIFICATION_BROWSER_THEME_CHANGED, |
169 NotificationService::AllSources()); | 169 NotificationService::AllSources()); |
170 #endif | 170 #endif |
171 | 171 |
172 // Register for notifications about all interested prefs change. | 172 // Register for notifications about all interested prefs changes. |
173 PrefService* prefs = profile()->GetPrefs(); | 173 PrefService* prefs = profile()->GetPrefs(); |
174 pref_change_registrar_.Init(prefs); | 174 pref_change_registrar_.Init(prefs); |
175 if (prefs) { | 175 if (prefs) { |
176 for (int i = 0; i < kPrefsToObserveLength; ++i) | 176 for (int i = 0; i < kPrefsToObserveLength; ++i) |
177 pref_change_registrar_.Add(kPrefsToObserve[i], this); | 177 pref_change_registrar_.Add(kPrefsToObserve[i], this); |
178 } | 178 } |
179 | 179 |
180 renderer_preferences_util::UpdateFromSystemSettings( | 180 renderer_preferences_util::UpdateFromSystemSettings( |
181 tab_contents()->GetMutableRendererPrefs(), profile()); | 181 tab_contents()->GetMutableRendererPrefs(), profile()); |
182 } | 182 } |
183 | 183 |
184 TabContentsWrapper::~TabContentsWrapper() { | 184 TabContentsWrapper::~TabContentsWrapper() { |
185 in_destructor_ = true; | 185 in_destructor_ = true; |
186 | 186 |
187 // Destroy all remaining InfoBars. It's important to not animate here so that | 187 // Destroy all remaining InfoBars. It's important to not animate here so that |
188 // we guarantee that we'll delete all delegates before we do anything else. | 188 // we guarantee that we'll delete all delegates before we do anything else. |
189 // | 189 // |
190 // TODO(pkasting): If there is no InfoBarContainer, this leaks all the | 190 // TODO(pkasting): If there is no InfoBarContainer, this leaks all the |
191 // InfoBarDelegates. This will be fixed once we call CloseSoon() directly on | 191 // InfoBarDelegates. This will be fixed once we call CloseSoon() directly on |
192 // Infobars. | 192 // Infobars. |
193 RemoveAllInfoBars(false); | 193 RemoveAllInfoBars(false); |
194 } | 194 } |
195 | 195 |
| 196 Profile* TabContentsWrapper::profile() const { |
| 197 return static_cast<Profile*>(tab_contents_->browser_context()); |
| 198 } |
| 199 |
196 PropertyAccessor<TabContentsWrapper*>* TabContentsWrapper::property_accessor() { | 200 PropertyAccessor<TabContentsWrapper*>* TabContentsWrapper::property_accessor() { |
197 return g_tab_contents_wrapper_property_accessor.Pointer(); | 201 return g_tab_contents_wrapper_property_accessor.Pointer(); |
198 } | 202 } |
199 | 203 |
200 void TabContentsWrapper::RegisterUserPrefs(PrefService* prefs) { | 204 void TabContentsWrapper::RegisterUserPrefs(PrefService* prefs) { |
201 prefs->RegisterBooleanPref(prefs::kAlternateErrorPagesEnabled, | 205 prefs->RegisterBooleanPref(prefs::kAlternateErrorPagesEnabled, |
202 true, | 206 true, |
203 PrefService::SYNCABLE_PREF); | 207 PrefService::SYNCABLE_PREF); |
204 | 208 |
205 WebPreferences pref_defaults; | 209 WebPreferences pref_defaults; |
(...skipping 476 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
682 if (infobars_.empty()) { | 686 if (infobars_.empty()) { |
683 registrar_.Remove(this, content::NOTIFICATION_NAV_ENTRY_COMMITTED, | 687 registrar_.Remove(this, content::NOTIFICATION_NAV_ENTRY_COMMITTED, |
684 Source<NavigationController>(&tab_contents_->controller())); | 688 Source<NavigationController>(&tab_contents_->controller())); |
685 } | 689 } |
686 } | 690 } |
687 | 691 |
688 void TabContentsWrapper::RemoveAllInfoBars(bool animate) { | 692 void TabContentsWrapper::RemoveAllInfoBars(bool animate) { |
689 while (!infobars_.empty()) | 693 while (!infobars_.empty()) |
690 RemoveInfoBarInternal(GetInfoBarDelegateAt(infobar_count() - 1), animate); | 694 RemoveInfoBarInternal(GetInfoBarDelegateAt(infobar_count() - 1), animate); |
691 } | 695 } |
OLD | NEW |