| OLD | NEW |
| 1 // Copyright (c) 2015 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2015 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 "components/browsing_data/core/counters/history_counter.h" | 5 #include "components/browsing_data/core/counters/history_counter.h" |
| 6 | 6 |
| 7 #include <limits.h> | 7 #include <limits.h> |
| 8 #include <stdint.h> | 8 #include <stdint.h> |
| 9 | 9 |
| 10 #include "base/memory/ptr_util.h" | 10 #include "base/memory/ptr_util.h" |
| (...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 95 // TODO(msramek): Include web history count when there is an API for it. | 95 // TODO(msramek): Include web history count when there is an API for it. |
| 96 } | 96 } |
| 97 | 97 |
| 98 void HistoryCounter::OnGetLocalHistoryCount( | 98 void HistoryCounter::OnGetLocalHistoryCount( |
| 99 history::HistoryCountResult result) { | 99 history::HistoryCountResult result) { |
| 100 // Ensure that all callbacks are on the same thread, so that we do not need | 100 // Ensure that all callbacks are on the same thread, so that we do not need |
| 101 // a mutex for |MergeResults|. | 101 // a mutex for |MergeResults|. |
| 102 DCHECK(thread_checker_.CalledOnValidThread()); | 102 DCHECK(thread_checker_.CalledOnValidThread()); |
| 103 | 103 |
| 104 if (!result.success) { | 104 if (!result.success) { |
| 105 LOG(ERROR) << "Failed to count the local history."; | |
| 106 return; | 105 return; |
| 107 } | 106 } |
| 108 | 107 |
| 109 local_result_ = result.count; | 108 local_result_ = result.count; |
| 110 local_counting_finished_ = true; | 109 local_counting_finished_ = true; |
| 111 MergeResults(); | 110 MergeResults(); |
| 112 } | 111 } |
| 113 | 112 |
| 114 void HistoryCounter::OnGetWebHistoryCount( | 113 void HistoryCounter::OnGetWebHistoryCount( |
| 115 history::WebHistoryService::Request* request, | 114 history::WebHistoryService::Request* request, |
| (...skipping 28 matching lines...) Expand all Loading... |
| 144 web_history_request_.reset(); | 143 web_history_request_.reset(); |
| 145 has_synced_visits_ = true; | 144 has_synced_visits_ = true; |
| 146 web_counting_finished_ = true; | 145 web_counting_finished_ = true; |
| 147 MergeResults(); | 146 MergeResults(); |
| 148 } | 147 } |
| 149 | 148 |
| 150 void HistoryCounter::MergeResults() { | 149 void HistoryCounter::MergeResults() { |
| 151 if (!local_counting_finished_ || !web_counting_finished_) | 150 if (!local_counting_finished_ || !web_counting_finished_) |
| 152 return; | 151 return; |
| 153 | 152 |
| 154 ReportResult( | 153 ReportResult(base::MakeUnique<HistoryResult>( |
| 155 base::MakeUnique<HistoryResult>(this, local_result_, has_synced_visits_)); | 154 this, local_result_, history_sync_enabled_, has_synced_visits_)); |
| 156 } | 155 } |
| 157 | 156 |
| 158 HistoryCounter::HistoryResult::HistoryResult(const HistoryCounter* source, | |
| 159 ResultInt value, | |
| 160 bool has_synced_visits) | |
| 161 : FinishedResult(source, value), has_synced_visits_(has_synced_visits) {} | |
| 162 | |
| 163 HistoryCounter::HistoryResult::~HistoryResult() {} | |
| 164 | |
| 165 void HistoryCounter::OnStateChanged(syncer::SyncService* sync) { | 157 void HistoryCounter::OnStateChanged(syncer::SyncService* sync) { |
| 166 bool history_sync_enabled_new_state = !!web_history_service_callback_.Run(); | 158 bool history_sync_enabled_new_state = !!web_history_service_callback_.Run(); |
| 167 | 159 |
| 168 // If the history sync was just enabled or disabled, restart the counter | 160 // If the history sync was just enabled or disabled, restart the counter |
| 169 // so that we update the result accordingly. | 161 // so that we update the result accordingly. |
| 170 if (history_sync_enabled_ != history_sync_enabled_new_state) { | 162 if (history_sync_enabled_ != history_sync_enabled_new_state) { |
| 171 history_sync_enabled_ = history_sync_enabled_new_state; | 163 history_sync_enabled_ = history_sync_enabled_new_state; |
| 172 Restart(); | 164 Restart(); |
| 173 } | 165 } |
| 174 } | 166 } |
| 175 | 167 |
| 168 HistoryCounter::HistoryResult::HistoryResult(const HistoryCounter* source, |
| 169 ResultInt value, |
| 170 bool is_sync_enabled, |
| 171 bool has_synced_visits) |
| 172 : SyncResult(source, value, is_sync_enabled), |
| 173 has_synced_visits_(has_synced_visits) {} |
| 174 |
| 175 HistoryCounter::HistoryResult::~HistoryResult() {} |
| 176 |
| 176 } // namespace browsing_data | 177 } // namespace browsing_data |
| OLD | NEW |