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 331 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
342 // http://crbug.com/96860 is fixed. | 342 // http://crbug.com/96860 is fixed. |
343 if ((t == content::PAGE_TRANSITION_TYPED || | 343 if ((t == content::PAGE_TRANSITION_TYPED || |
344 t == content::PAGE_TRANSITION_AUTO_BOOKMARK) && | 344 t == content::PAGE_TRANSITION_AUTO_BOOKMARK) && |
345 (transition_type & content::PAGE_TRANSITION_FORWARD_BACK) == 0) { | 345 (transition_type & content::PAGE_TRANSITION_FORWARD_BACK) == 0) { |
346 // If so, create or get the segment. | 346 // If so, create or get the segment. |
347 std::string segment_name = db_->ComputeSegmentName(url); | 347 std::string segment_name = db_->ComputeSegmentName(url); |
348 URLID url_id = db_->GetRowForURL(url, NULL); | 348 URLID url_id = db_->GetRowForURL(url, NULL); |
349 if (!url_id) | 349 if (!url_id) |
350 return 0; | 350 return 0; |
351 | 351 |
352 if (!(segment_id = db_->GetSegmentNamed(segment_name))) { | 352 segment_id = db_->GetSegmentNamed(segment_name); |
353 if (!(segment_id = db_->CreateSegment(url_id, segment_name))) { | 353 if (!segment_id) { |
| 354 segment_id = db_->CreateSegment(url_id, segment_name); |
| 355 if (!segment_id) { |
354 NOTREACHED(); | 356 NOTREACHED(); |
355 return 0; | 357 return 0; |
356 } | 358 } |
357 } else { | 359 } else { |
358 // Note: if we update an existing segment, we update the url used to | 360 // Note: if we update an existing segment, we update the url used to |
359 // represent that segment in order to minimize stale most visited | 361 // represent that segment in order to minimize stale most visited |
360 // images. | 362 // images. |
361 db_->UpdateSegmentRepresentationURL(segment_id, url_id); | 363 db_->UpdateSegmentRepresentationURL(segment_id, url_id); |
362 } | 364 } |
363 } else { | 365 } else { |
364 // Note: it is possible there is no segment ID set for this visit chain. | 366 // Note: it is possible there is no segment ID set for this visit chain. |
365 // This can happen if the initial navigation wasn't AUTO_BOOKMARK or | 367 // This can happen if the initial navigation wasn't AUTO_BOOKMARK or |
366 // TYPED. (For example GENERATED). In this case this visit doesn't count | 368 // TYPED. (For example GENERATED). In this case this visit doesn't count |
367 // toward any segment. | 369 // toward any segment. |
368 if (!(segment_id = GetLastSegmentID(from_visit))) | 370 segment_id = GetLastSegmentID(from_visit); |
| 371 if (!segment_id) |
369 return 0; | 372 return 0; |
370 } | 373 } |
371 | 374 |
372 // Set the segment in the visit. | 375 // Set the segment in the visit. |
373 if (!db_->SetSegmentID(visit_id, segment_id)) { | 376 if (!db_->SetSegmentID(visit_id, segment_id)) { |
374 NOTREACHED(); | 377 NOTREACHED(); |
375 return 0; | 378 return 0; |
376 } | 379 } |
377 | 380 |
378 // Finally, increase the counter for that segment / day. | 381 // Finally, increase the counter for that segment / day. |
(...skipping 2364 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2743 int rank = kPageVisitStatsMaxTopSites; | 2746 int rank = kPageVisitStatsMaxTopSites; |
2744 std::map<GURL, int>::const_iterator it = most_visited_urls_map_.find(url); | 2747 std::map<GURL, int>::const_iterator it = most_visited_urls_map_.find(url); |
2745 if (it != most_visited_urls_map_.end()) | 2748 if (it != most_visited_urls_map_.end()) |
2746 rank = (*it).second; | 2749 rank = (*it).second; |
2747 UMA_HISTOGRAM_ENUMERATION("History.TopSitesVisitsByRank", | 2750 UMA_HISTOGRAM_ENUMERATION("History.TopSitesVisitsByRank", |
2748 rank, kPageVisitStatsMaxTopSites + 1); | 2751 rank, kPageVisitStatsMaxTopSites + 1); |
2749 } | 2752 } |
2750 #endif | 2753 #endif |
2751 | 2754 |
2752 } // namespace history | 2755 } // namespace history |
OLD | NEW |