| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/history/history_backend.h" | 5 #include "chrome/browser/history/history_backend.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <functional> | 8 #include <functional> |
| 9 #include <list> | 9 #include <list> |
| 10 #include <map> | 10 #include <map> |
| (...skipping 290 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 301 // http://crbug.com/96860 is fixed. | 301 // http://crbug.com/96860 is fixed. |
| 302 if ((t == content::PAGE_TRANSITION_TYPED || | 302 if ((t == content::PAGE_TRANSITION_TYPED || |
| 303 t == content::PAGE_TRANSITION_AUTO_BOOKMARK) && | 303 t == content::PAGE_TRANSITION_AUTO_BOOKMARK) && |
| 304 (transition_type & content::PAGE_TRANSITION_FORWARD_BACK) == 0) { | 304 (transition_type & content::PAGE_TRANSITION_FORWARD_BACK) == 0) { |
| 305 // If so, create or get the segment. | 305 // If so, create or get the segment. |
| 306 std::string segment_name = db_->ComputeSegmentName(url); | 306 std::string segment_name = db_->ComputeSegmentName(url); |
| 307 URLID url_id = db_->GetRowForURL(url, NULL); | 307 URLID url_id = db_->GetRowForURL(url, NULL); |
| 308 if (!url_id) | 308 if (!url_id) |
| 309 return 0; | 309 return 0; |
| 310 | 310 |
| 311 if (!(segment_id = db_->GetSegmentNamed(segment_name))) { | 311 segment_id = db_->GetSegmentNamed(segment_name); |
| 312 if (!(segment_id = db_->CreateSegment(url_id, segment_name))) { | 312 if (!segment_id) { |
| 313 segment_id = db_->CreateSegment(url_id, segment_name); |
| 314 if (!segment_id) { |
| 313 NOTREACHED(); | 315 NOTREACHED(); |
| 314 return 0; | 316 return 0; |
| 315 } | 317 } |
| 316 } else { | 318 } else { |
| 317 // Note: if we update an existing segment, we update the url used to | 319 // Note: if we update an existing segment, we update the url used to |
| 318 // represent that segment in order to minimize stale most visited | 320 // represent that segment in order to minimize stale most visited |
| 319 // images. | 321 // images. |
| 320 db_->UpdateSegmentRepresentationURL(segment_id, url_id); | 322 db_->UpdateSegmentRepresentationURL(segment_id, url_id); |
| 321 } | 323 } |
| 322 } else { | 324 } else { |
| 323 // Note: it is possible there is no segment ID set for this visit chain. | 325 // Note: it is possible there is no segment ID set for this visit chain. |
| 324 // This can happen if the initial navigation wasn't AUTO_BOOKMARK or | 326 // This can happen if the initial navigation wasn't AUTO_BOOKMARK or |
| 325 // TYPED. (For example GENERATED). In this case this visit doesn't count | 327 // TYPED. (For example GENERATED). In this case this visit doesn't count |
| 326 // toward any segment. | 328 // toward any segment. |
| 327 if (!(segment_id = GetLastSegmentID(from_visit))) | 329 segment_id = GetLastSegmentID(from_visit); |
| 330 if (!segment_id) |
| 328 return 0; | 331 return 0; |
| 329 } | 332 } |
| 330 | 333 |
| 331 // Set the segment in the visit. | 334 // Set the segment in the visit. |
| 332 if (!db_->SetSegmentID(visit_id, segment_id)) { | 335 if (!db_->SetSegmentID(visit_id, segment_id)) { |
| 333 NOTREACHED(); | 336 NOTREACHED(); |
| 334 return 0; | 337 return 0; |
| 335 } | 338 } |
| 336 | 339 |
| 337 // Finally, increase the counter for that segment / day. | 340 // Finally, increase the counter for that segment / day. |
| (...skipping 2376 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2714 int rank = kPageVisitStatsMaxTopSites; | 2717 int rank = kPageVisitStatsMaxTopSites; |
| 2715 std::map<GURL, int>::const_iterator it = most_visited_urls_map_.find(url); | 2718 std::map<GURL, int>::const_iterator it = most_visited_urls_map_.find(url); |
| 2716 if (it != most_visited_urls_map_.end()) | 2719 if (it != most_visited_urls_map_.end()) |
| 2717 rank = (*it).second; | 2720 rank = (*it).second; |
| 2718 UMA_HISTOGRAM_ENUMERATION("History.TopSitesVisitsByRank", | 2721 UMA_HISTOGRAM_ENUMERATION("History.TopSitesVisitsByRank", |
| 2719 rank, kPageVisitStatsMaxTopSites + 1); | 2722 rank, kPageVisitStatsMaxTopSites + 1); |
| 2720 } | 2723 } |
| 2721 #endif | 2724 #endif |
| 2722 | 2725 |
| 2723 } // namespace history | 2726 } // namespace history |
| OLD | NEW |