| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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_engines/chrome_template_url_service_client.h" | 5 #include "chrome/browser/search_engines/chrome_template_url_service_client.h" |
| 6 | 6 |
| 7 #include "base/memory/ptr_util.h" | 7 #include "base/memory/ptr_util.h" |
| 8 #include "components/history/core/browser/history_service.h" | 8 #include "components/history/core/browser/history_service.h" |
| 9 #include "components/search_engines/default_search_manager.h" |
| 9 #include "components/search_engines/template_url_service.h" | 10 #include "components/search_engines/template_url_service.h" |
| 11 #include "extensions/browser/extension_pref_value_map.h" |
| 10 #include "extensions/common/constants.h" | 12 #include "extensions/common/constants.h" |
| 11 | 13 |
| 12 ChromeTemplateURLServiceClient::ChromeTemplateURLServiceClient( | 14 ChromeTemplateURLServiceClient::ChromeTemplateURLServiceClient( |
| 13 history::HistoryService* history_service) | 15 history::HistoryService* history_service, |
| 16 ExtensionPrefValueMap* extension_prefs_value_map) |
| 14 : owner_(NULL), | 17 : owner_(NULL), |
| 15 history_service_observer_(this), | 18 history_service_observer_(this), |
| 16 history_service_(history_service) { | 19 history_service_(history_service), |
| 20 extension_prefs_value_map_(extension_prefs_value_map) { |
| 17 // TODO(sky): bug 1166191. The keywords should be moved into the history | 21 // TODO(sky): bug 1166191. The keywords should be moved into the history |
| 18 // db, which will mean we no longer need this notification and the history | 22 // db, which will mean we no longer need this notification and the history |
| 19 // backend can handle automatically adding the search terms as the user | 23 // backend can handle automatically adding the search terms as the user |
| 20 // navigates. | 24 // navigates. |
| 21 if (history_service_) | 25 if (history_service_) |
| 22 history_service_observer_.Add(history_service_); | 26 history_service_observer_.Add(history_service_); |
| 23 } | 27 } |
| 24 | 28 |
| 25 ChromeTemplateURLServiceClient::~ChromeTemplateURLServiceClient() { | 29 ChromeTemplateURLServiceClient::~ChromeTemplateURLServiceClient() { |
| 26 } | 30 } |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 61 history::RedirectList(), | 65 history::RedirectList(), |
| 62 ui::PAGE_TRANSITION_KEYWORD_GENERATED, | 66 ui::PAGE_TRANSITION_KEYWORD_GENERATED, |
| 63 history::SOURCE_BROWSED, false); | 67 history::SOURCE_BROWSED, false); |
| 64 } | 68 } |
| 65 | 69 |
| 66 bool ChromeTemplateURLServiceClient::IsOmniboxExtensionURL( | 70 bool ChromeTemplateURLServiceClient::IsOmniboxExtensionURL( |
| 67 const std::string& url) { | 71 const std::string& url) { |
| 68 return GURL(url).SchemeIs(extensions::kExtensionScheme); | 72 return GURL(url).SchemeIs(extensions::kExtensionScheme); |
| 69 } | 73 } |
| 70 | 74 |
| 75 std::string ChromeTemplateURLServiceClient::GetExtensionControllingDSEPref() { |
| 76 if (!extension_prefs_value_map_) |
| 77 return std::string(); // Can be null during testing. |
| 78 return extension_prefs_value_map_->GetExtensionControllingPref( |
| 79 DefaultSearchManager::kDefaultSearchProviderDataPrefName); |
| 80 } |
| 81 |
| 71 void ChromeTemplateURLServiceClient::OnURLVisited( | 82 void ChromeTemplateURLServiceClient::OnURLVisited( |
| 72 history::HistoryService* history_service, | 83 history::HistoryService* history_service, |
| 73 ui::PageTransition transition, | 84 ui::PageTransition transition, |
| 74 const history::URLRow& row, | 85 const history::URLRow& row, |
| 75 const history::RedirectList& redirects, | 86 const history::RedirectList& redirects, |
| 76 base::Time visit_time) { | 87 base::Time visit_time) { |
| 77 DCHECK_EQ(history_service_, history_service); | 88 DCHECK_EQ(history_service_, history_service); |
| 78 if (!owner_) | 89 if (!owner_) |
| 79 return; | 90 return; |
| 80 | 91 |
| 81 TemplateURLService::URLVisitedDetails visited_details; | 92 TemplateURLService::URLVisitedDetails visited_details; |
| 82 visited_details.url = row.url(); | 93 visited_details.url = row.url(); |
| 83 visited_details.is_keyword_transition = | 94 visited_details.is_keyword_transition = |
| 84 ui::PageTransitionCoreTypeIs(transition, ui::PAGE_TRANSITION_KEYWORD); | 95 ui::PageTransitionCoreTypeIs(transition, ui::PAGE_TRANSITION_KEYWORD); |
| 85 owner_->OnHistoryURLVisited(visited_details); | 96 owner_->OnHistoryURLVisited(visited_details); |
| 86 } | 97 } |
| OLD | NEW |