| 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/predictors/resource_prefetch_predictor_tables.h" | 5 #include "chrome/browser/predictors/resource_prefetch_predictor_tables.h" |
| 6 | 6 |
| 7 #include <stdint.h> | 7 #include <stdint.h> |
| 8 | 8 |
| 9 #include <algorithm> | 9 #include <algorithm> |
| 10 #include <memory> | 10 #include <memory> |
| 11 #include <utility> | 11 #include <utility> |
| 12 | 12 |
| 13 #include "base/logging.h" | 13 #include "base/logging.h" |
| 14 #include "base/metrics/histogram_macros.h" | 14 #include "base/metrics/histogram_macros.h" |
| 15 #include "base/strings/stringprintf.h" | 15 #include "base/strings/stringprintf.h" |
| 16 #include "base/trace_event/trace_event.h" |
| 16 #include "content/public/browser/browser_thread.h" | 17 #include "content/public/browser/browser_thread.h" |
| 17 #include "sql/meta_table.h" | 18 #include "sql/meta_table.h" |
| 18 #include "sql/statement.h" | 19 #include "sql/statement.h" |
| 19 #include "sql/transaction.h" | 20 #include "sql/transaction.h" |
| 20 | 21 |
| 21 using content::BrowserThread; | 22 using content::BrowserThread; |
| 22 using sql::Statement; | 23 using sql::Statement; |
| 23 | 24 |
| 24 namespace { | 25 namespace { |
| 25 | 26 |
| (...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 113 }); | 114 }); |
| 114 data->mutable_redirect_endpoints()->erase( | 115 data->mutable_redirect_endpoints()->erase( |
| 115 new_end, data->mutable_redirect_endpoints()->end()); | 116 new_end, data->mutable_redirect_endpoints()->end()); |
| 116 } | 117 } |
| 117 | 118 |
| 118 void ResourcePrefetchPredictorTables::GetAllData( | 119 void ResourcePrefetchPredictorTables::GetAllData( |
| 119 PrefetchDataMap* url_data_map, | 120 PrefetchDataMap* url_data_map, |
| 120 PrefetchDataMap* host_data_map, | 121 PrefetchDataMap* host_data_map, |
| 121 RedirectDataMap* url_redirect_data_map, | 122 RedirectDataMap* url_redirect_data_map, |
| 122 RedirectDataMap* host_redirect_data_map) { | 123 RedirectDataMap* host_redirect_data_map) { |
| 124 TRACE_EVENT0("browser", "ResourcePrefetchPredictor::GetAllData"); |
| 123 DCHECK_CURRENTLY_ON(BrowserThread::DB); | 125 DCHECK_CURRENTLY_ON(BrowserThread::DB); |
| 124 if (CantAccessDatabase()) | 126 if (CantAccessDatabase()) |
| 125 return; | 127 return; |
| 126 | 128 |
| 127 DCHECK(url_data_map); | 129 DCHECK(url_data_map); |
| 128 DCHECK(host_data_map); | 130 DCHECK(host_data_map); |
| 129 DCHECK(url_redirect_data_map); | 131 DCHECK(url_redirect_data_map); |
| 130 DCHECK(host_redirect_data_map); | 132 DCHECK(host_redirect_data_map); |
| 131 url_data_map->clear(); | 133 url_data_map->clear(); |
| 132 host_data_map->clear(); | 134 host_data_map->clear(); |
| 133 url_redirect_data_map->clear(); | 135 url_redirect_data_map->clear(); |
| 134 host_redirect_data_map->clear(); | 136 host_redirect_data_map->clear(); |
| 135 | 137 |
| 136 GetAllResourceDataHelper(PREFETCH_KEY_TYPE_URL, url_data_map); | 138 GetAllResourceDataHelper(PREFETCH_KEY_TYPE_URL, url_data_map); |
| 137 GetAllResourceDataHelper(PREFETCH_KEY_TYPE_HOST, host_data_map); | 139 GetAllResourceDataHelper(PREFETCH_KEY_TYPE_HOST, host_data_map); |
| 138 GetAllRedirectDataHelper(PREFETCH_KEY_TYPE_URL, url_redirect_data_map); | 140 GetAllRedirectDataHelper(PREFETCH_KEY_TYPE_URL, url_redirect_data_map); |
| 139 GetAllRedirectDataHelper(PREFETCH_KEY_TYPE_HOST, host_redirect_data_map); | 141 GetAllRedirectDataHelper(PREFETCH_KEY_TYPE_HOST, host_redirect_data_map); |
| 140 } | 142 } |
| 141 | 143 |
| 142 void ResourcePrefetchPredictorTables::UpdateData( | 144 void ResourcePrefetchPredictorTables::UpdateData( |
| 143 const PrefetchData& url_data, | 145 const PrefetchData& url_data, |
| 144 const PrefetchData& host_data, | 146 const PrefetchData& host_data, |
| 145 const RedirectData& url_redirect_data, | 147 const RedirectData& url_redirect_data, |
| 146 const RedirectData& host_redirect_data) { | 148 const RedirectData& host_redirect_data) { |
| 149 TRACE_EVENT0("browser", "ResourcePrefetchPredictor::UpdateData"); |
| 147 DCHECK_CURRENTLY_ON(BrowserThread::DB); | 150 DCHECK_CURRENTLY_ON(BrowserThread::DB); |
| 148 if (CantAccessDatabase()) | 151 if (CantAccessDatabase()) |
| 149 return; | 152 return; |
| 150 | 153 |
| 151 DCHECK(url_data.has_primary_key() || host_data.has_primary_key() || | 154 DCHECK(url_data.has_primary_key() || host_data.has_primary_key() || |
| 152 url_redirect_data.has_primary_key() || | 155 url_redirect_data.has_primary_key() || |
| 153 host_redirect_data.has_primary_key()); | 156 host_redirect_data.has_primary_key()); |
| 154 | 157 |
| 155 DB()->BeginTransaction(); | 158 DB()->BeginTransaction(); |
| 156 | 159 |
| (...skipping 338 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 495 return is_host ? kHostResourceTableName : kUrlResourceTableName; | 498 return is_host ? kHostResourceTableName : kUrlResourceTableName; |
| 496 case PrefetchDataType::REDIRECT: | 499 case PrefetchDataType::REDIRECT: |
| 497 return is_host ? kHostRedirectTableName : kUrlRedirectTableName; | 500 return is_host ? kHostRedirectTableName : kUrlRedirectTableName; |
| 498 } | 501 } |
| 499 | 502 |
| 500 NOTREACHED(); | 503 NOTREACHED(); |
| 501 return nullptr; | 504 return nullptr; |
| 502 } | 505 } |
| 503 | 506 |
| 504 } // namespace predictors | 507 } // namespace predictors |
| OLD | NEW |