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 "chrome/browser/history/history_service.h" | 7 #include "chrome/browser/history/history_service.h" |
8 #include "components/search_engines/template_url_service.h" | 8 #include "components/search_engines/template_url_service.h" |
9 #include "extensions/common/constants.h" | 9 #include "extensions/common/constants.h" |
10 | 10 |
11 ChromeTemplateURLServiceClient::ChromeTemplateURLServiceClient( | 11 ChromeTemplateURLServiceClient::ChromeTemplateURLServiceClient( |
12 HistoryService* history_service) | 12 HistoryService* history_service) |
13 : owner_(NULL), history_service_(history_service) { | 13 : owner_(NULL), |
| 14 history_service_observer_(this), |
| 15 history_service_(history_service) { |
14 // TODO(sky): bug 1166191. The keywords should be moved into the history | 16 // TODO(sky): bug 1166191. The keywords should be moved into the history |
15 // db, which will mean we no longer need this notification and the history | 17 // db, which will mean we no longer need this notification and the history |
16 // backend can handle automatically adding the search terms as the user | 18 // backend can handle automatically adding the search terms as the user |
17 // navigates. | 19 // navigates. |
18 if (history_service_) | 20 if (history_service_) |
19 history_service_->AddObserver(this); | 21 history_service_observer_.Add(history_service_); |
20 } | 22 } |
21 | 23 |
22 ChromeTemplateURLServiceClient::~ChromeTemplateURLServiceClient() { | 24 ChromeTemplateURLServiceClient::~ChromeTemplateURLServiceClient() { |
23 } | 25 } |
24 | 26 |
25 void ChromeTemplateURLServiceClient::Shutdown() { | 27 void ChromeTemplateURLServiceClient::Shutdown() { |
26 // ChromeTemplateURLServiceClient is owned by TemplateURLService which is a | 28 // ChromeTemplateURLServiceClient is owned by TemplateURLService which is a |
27 // KeyedService with a dependency on HistoryService, thus |history_service_| | 29 // KeyedService with a dependency on HistoryService, thus |history_service_| |
28 // outlives the ChromeTemplateURLServiceClient. | 30 // outlives the ChromeTemplateURLServiceClient. |
29 // | 31 // |
30 // Remove self from |history_service_| observers in the shutdown phase of the | 32 // Remove self from |history_service_| observers in the shutdown phase of the |
31 // two-phases since KeyedService are not supposed to use a dependend service | 33 // two-phases since KeyedService are not supposed to use a dependend service |
32 // after the Shutdown call. | 34 // after the Shutdown call. |
33 if (history_service_) | 35 history_service_observer_.RemoveAll(); |
34 history_service_->RemoveObserver(this); | |
35 } | 36 } |
36 | 37 |
37 void ChromeTemplateURLServiceClient::SetOwner(TemplateURLService* owner) { | 38 void ChromeTemplateURLServiceClient::SetOwner(TemplateURLService* owner) { |
38 DCHECK(!owner_); | 39 DCHECK(!owner_); |
39 owner_ = owner; | 40 owner_ = owner; |
40 } | 41 } |
41 | 42 |
42 void ChromeTemplateURLServiceClient::DeleteAllSearchTermsForKeyword( | 43 void ChromeTemplateURLServiceClient::DeleteAllSearchTermsForKeyword( |
43 TemplateURLID id) { | 44 TemplateURLID id) { |
44 if (history_service_) | 45 if (history_service_) |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
82 DCHECK_EQ(history_service_, history_service); | 83 DCHECK_EQ(history_service_, history_service); |
83 if (!owner_) | 84 if (!owner_) |
84 return; | 85 return; |
85 | 86 |
86 TemplateURLService::URLVisitedDetails visited_details; | 87 TemplateURLService::URLVisitedDetails visited_details; |
87 visited_details.url = row.url(); | 88 visited_details.url = row.url(); |
88 visited_details.is_keyword_transition = | 89 visited_details.is_keyword_transition = |
89 ui::PageTransitionCoreTypeIs(transition, ui::PAGE_TRANSITION_KEYWORD); | 90 ui::PageTransitionCoreTypeIs(transition, ui::PAGE_TRANSITION_KEYWORD); |
90 owner_->OnHistoryURLVisited(visited_details); | 91 owner_->OnHistoryURLVisited(visited_details); |
91 } | 92 } |
OLD | NEW |