| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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/search/instant_service.h" | 5 #include "chrome/browser/search/instant_service.h" |
| 6 | 6 |
| 7 #include "chrome/browser/chrome_notification_types.h" | 7 #include "chrome/browser/chrome_notification_types.h" |
| 8 #include "chrome/browser/history/top_sites.h" | 8 #include "chrome/browser/history/top_sites.h" |
| 9 #include "chrome/browser/history/top_sites_factory.h" |
| 9 #include "chrome/browser/profiles/profile.h" | 10 #include "chrome/browser/profiles/profile.h" |
| 10 #include "chrome/browser/search/instant_io_context.h" | 11 #include "chrome/browser/search/instant_io_context.h" |
| 11 #include "chrome/browser/search/instant_service_observer.h" | 12 #include "chrome/browser/search/instant_service_observer.h" |
| 12 #include "chrome/browser/search/most_visited_iframe_source.h" | 13 #include "chrome/browser/search/most_visited_iframe_source.h" |
| 13 #include "chrome/browser/search/search.h" | 14 #include "chrome/browser/search/search.h" |
| 14 #include "chrome/browser/search/suggestions/suggestions_source.h" | 15 #include "chrome/browser/search/suggestions/suggestions_source.h" |
| 15 #include "chrome/browser/search_engines/template_url_service_factory.h" | 16 #include "chrome/browser/search_engines/template_url_service_factory.h" |
| 16 #include "chrome/browser/search_engines/ui_thread_search_terms_data.h" | 17 #include "chrome/browser/search_engines/ui_thread_search_terms_data.h" |
| 17 #include "chrome/browser/themes/theme_properties.h" | 18 #include "chrome/browser/themes/theme_properties.h" |
| 18 #include "chrome/browser/themes/theme_service.h" | 19 #include "chrome/browser/themes/theme_service.h" |
| (...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 85 | 86 |
| 86 ResetInstantSearchPrerenderer(); | 87 ResetInstantSearchPrerenderer(); |
| 87 | 88 |
| 88 registrar_.Add(this, | 89 registrar_.Add(this, |
| 89 content::NOTIFICATION_RENDERER_PROCESS_CREATED, | 90 content::NOTIFICATION_RENDERER_PROCESS_CREATED, |
| 90 content::NotificationService::AllSources()); | 91 content::NotificationService::AllSources()); |
| 91 registrar_.Add(this, | 92 registrar_.Add(this, |
| 92 content::NOTIFICATION_RENDERER_PROCESS_TERMINATED, | 93 content::NOTIFICATION_RENDERER_PROCESS_TERMINATED, |
| 93 content::NotificationService::AllSources()); | 94 content::NotificationService::AllSources()); |
| 94 | 95 |
| 95 history::TopSites* top_sites = profile_->GetTopSites(); | 96 scoped_refptr<history::TopSites> top_sites = |
| 97 TopSitesFactory::GetForProfile(profile_); |
| 96 if (top_sites) | 98 if (top_sites) |
| 97 top_sites->AddObserver(this); | 99 top_sites->AddObserver(this); |
| 98 | 100 |
| 99 if (profile_ && profile_->GetResourceContext()) { | 101 if (profile_ && profile_->GetResourceContext()) { |
| 100 content::BrowserThread::PostTask( | 102 content::BrowserThread::PostTask( |
| 101 content::BrowserThread::IO, FROM_HERE, | 103 content::BrowserThread::IO, FROM_HERE, |
| 102 base::Bind(&InstantIOContext::SetUserDataOnIO, | 104 base::Bind(&InstantIOContext::SetUserDataOnIO, |
| 103 profile->GetResourceContext(), instant_io_context_)); | 105 profile->GetResourceContext(), instant_io_context_)); |
| 104 } | 106 } |
| 105 | 107 |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 151 | 153 |
| 152 void InstantService::AddObserver(InstantServiceObserver* observer) { | 154 void InstantService::AddObserver(InstantServiceObserver* observer) { |
| 153 observers_.AddObserver(observer); | 155 observers_.AddObserver(observer); |
| 154 } | 156 } |
| 155 | 157 |
| 156 void InstantService::RemoveObserver(InstantServiceObserver* observer) { | 158 void InstantService::RemoveObserver(InstantServiceObserver* observer) { |
| 157 observers_.RemoveObserver(observer); | 159 observers_.RemoveObserver(observer); |
| 158 } | 160 } |
| 159 | 161 |
| 160 void InstantService::DeleteMostVisitedItem(const GURL& url) { | 162 void InstantService::DeleteMostVisitedItem(const GURL& url) { |
| 161 history::TopSites* top_sites = profile_->GetTopSites(); | 163 scoped_refptr<history::TopSites> top_sites = |
| 164 TopSitesFactory::GetForProfile(profile_); |
| 162 if (!top_sites) | 165 if (!top_sites) |
| 163 return; | 166 return; |
| 164 | 167 |
| 165 top_sites->AddBlacklistedURL(url); | 168 top_sites->AddBlacklistedURL(url); |
| 166 } | 169 } |
| 167 | 170 |
| 168 void InstantService::UndoMostVisitedDeletion(const GURL& url) { | 171 void InstantService::UndoMostVisitedDeletion(const GURL& url) { |
| 169 history::TopSites* top_sites = profile_->GetTopSites(); | 172 scoped_refptr<history::TopSites> top_sites = |
| 173 TopSitesFactory::GetForProfile(profile_); |
| 170 if (!top_sites) | 174 if (!top_sites) |
| 171 return; | 175 return; |
| 172 | 176 |
| 173 top_sites->RemoveBlacklistedURL(url); | 177 top_sites->RemoveBlacklistedURL(url); |
| 174 } | 178 } |
| 175 | 179 |
| 176 void InstantService::UndoAllMostVisitedDeletions() { | 180 void InstantService::UndoAllMostVisitedDeletions() { |
| 177 history::TopSites* top_sites = profile_->GetTopSites(); | 181 scoped_refptr<history::TopSites> top_sites = |
| 182 TopSitesFactory::GetForProfile(profile_); |
| 178 if (!top_sites) | 183 if (!top_sites) |
| 179 return; | 184 return; |
| 180 | 185 |
| 181 top_sites->ClearBlacklistedURLs(); | 186 top_sites->ClearBlacklistedURLs(); |
| 182 } | 187 } |
| 183 | 188 |
| 184 void InstantService::UpdateThemeInfo() { | 189 void InstantService::UpdateThemeInfo() { |
| 185 // Update theme background info. | 190 // Update theme background info. |
| 186 // Initialize |theme_info| if necessary. | 191 // Initialize |theme_info| if necessary. |
| 187 if (!theme_info_) | 192 if (!theme_info_) |
| 188 OnThemeChanged(ThemeServiceFactory::GetForProfile(profile_)); | 193 OnThemeChanged(ThemeServiceFactory::GetForProfile(profile_)); |
| 189 else | 194 else |
| 190 OnThemeChanged(NULL); | 195 OnThemeChanged(NULL); |
| 191 } | 196 } |
| 192 | 197 |
| 193 void InstantService::UpdateMostVisitedItemsInfo() { | 198 void InstantService::UpdateMostVisitedItemsInfo() { |
| 194 NotifyAboutMostVisitedItems(); | 199 NotifyAboutMostVisitedItems(); |
| 195 } | 200 } |
| 196 | 201 |
| 197 void InstantService::Shutdown() { | 202 void InstantService::Shutdown() { |
| 198 process_ids_.clear(); | 203 process_ids_.clear(); |
| 199 | 204 |
| 200 if (instant_io_context_.get()) { | 205 if (instant_io_context_.get()) { |
| 201 content::BrowserThread::PostTask( | 206 content::BrowserThread::PostTask( |
| 202 content::BrowserThread::IO, FROM_HERE, | 207 content::BrowserThread::IO, FROM_HERE, |
| 203 base::Bind(&InstantIOContext::ClearInstantProcessesOnIO, | 208 base::Bind(&InstantIOContext::ClearInstantProcessesOnIO, |
| 204 instant_io_context_)); | 209 instant_io_context_)); |
| 205 } | 210 } |
| 206 | 211 |
| 207 history::TopSites* top_sites = profile_->GetTopSites(); | 212 scoped_refptr<history::TopSites> top_sites = |
| 213 TopSitesFactory::GetForProfile(profile_); |
| 208 if (top_sites) | 214 if (top_sites) |
| 209 top_sites->RemoveObserver(this); | 215 top_sites->RemoveObserver(this); |
| 210 | 216 |
| 211 instant_io_context_ = NULL; | 217 instant_io_context_ = NULL; |
| 212 } | 218 } |
| 213 | 219 |
| 214 void InstantService::Observe(int type, | 220 void InstantService::Observe(int type, |
| 215 const content::NotificationSource& source, | 221 const content::NotificationSource& source, |
| 216 const content::NotificationDetails& details) { | 222 const content::NotificationDetails& details) { |
| 217 switch (type) { | 223 switch (type) { |
| (...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 427 } | 433 } |
| 428 | 434 |
| 429 void InstantService::ResetInstantSearchPrerenderer() { | 435 void InstantService::ResetInstantSearchPrerenderer() { |
| 430 if (!chrome::ShouldPrefetchSearchResults()) | 436 if (!chrome::ShouldPrefetchSearchResults()) |
| 431 return; | 437 return; |
| 432 | 438 |
| 433 GURL url(chrome::GetSearchResultPrefetchBaseURL(profile_)); | 439 GURL url(chrome::GetSearchResultPrefetchBaseURL(profile_)); |
| 434 instant_prerenderer_.reset( | 440 instant_prerenderer_.reset( |
| 435 url.is_valid() ? new InstantSearchPrerenderer(profile_, url) : NULL); | 441 url.is_valid() ? new InstantSearchPrerenderer(profile_, url) : NULL); |
| 436 } | 442 } |
| OLD | NEW |