Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(735)

Unified Diff: components/sync_driver/revisit/offset_tab_matcher.cc

Issue 1387253004: [Sync] Creating sync_sessions component, moving revisit logic. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Removing test_support target. Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: components/sync_driver/revisit/offset_tab_matcher.cc
diff --git a/components/sync_driver/revisit/offset_tab_matcher.cc b/components/sync_driver/revisit/offset_tab_matcher.cc
deleted file mode 100644
index 51aab13f58f0dff4776bcbcad20bdff9c9db9737..0000000000000000000000000000000000000000
--- a/components/sync_driver/revisit/offset_tab_matcher.cc
+++ /dev/null
@@ -1,79 +0,0 @@
-// Copyright 2015 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "components/sync_driver/revisit/offset_tab_matcher.h"
-
-#include "base/metrics/histogram_macros.h"
-#include "base/metrics/sparse_histogram.h"
-#include "components/sessions/core/serialized_navigation_entry.h"
-
-namespace sync_driver {
-
-namespace {
-
-// This is an upper bound of the max size of positive offset we will emit
-// correct metrics for. Anything larger than this will be clamped to this value.
-// This value doesn't exactly correspond to what we actually expect, this value
-// is currently larger than expected. This value is more for the safety of our
-// sparse histogram usage. It is assumed that the max negative offset is
-// symmetrical and can be found by taking the negative of this value.
-const int kMaxOffset = 10;
-
-} // namespace
-
-OffsetTabMatcher::OffsetTabMatcher(const PageEquality& page_equality)
- : page_equality_(page_equality) {}
-
-void OffsetTabMatcher::Check(const sessions::SessionTab* tab) {
- const int current_index = tab->normalized_navigation_index();
- for (std::size_t i = 0; i < tab->navigations.size(); ++i) {
- // Ignore the entry if it is the current entry. There's actually some
- // ambiguity here, the index of a tab is located in two places. Hopefully
- // they are equal, but it is possible for the index() accessor of an entry
- // to be different from the index in the tab's vector. Theoretically this
- // should not happen outside of tab construction logic, but to be safe all
- // matcher logic treats the index in the vector as the authoritative index.
- // We chose this because the other matcher wants efficient random access.
- if (current_index >= 0 && (std::size_t)current_index == i) {
- continue;
- }
- const int offset = i - current_index;
- if (page_equality_.IsSamePage(tab->navigations[i].virtual_url()) &&
- (best_tab_ == nullptr || best_tab_->timestamp < tab->timestamp ||
- (best_tab_->timestamp == tab->timestamp && best_offset_ < offset))) {
- best_tab_ = tab;
- best_offset_ = offset;
- }
- }
-}
-
-void OffsetTabMatcher::Emit(
- const PageVisitObserver::TransitionType transition) {
- if (best_tab_ == nullptr) {
- UMA_HISTOGRAM_ENUMERATION("Sync.PageRevisitNavigationMissTransition",
- transition,
- PageVisitObserver::kTransitionTypeLast);
- } else {
- // The sparse macro allows us to handle negative offsets. However, we need
- // to be careful when doing this because of the unrestricted nature of
- // sparse we could end up with a very large output space across many
- // clients. So we clamp on a resonable bound that's larger than we expect to
- // be sure no unexpected data causes problems.
- UMA_HISTOGRAM_SPARSE_SLOWLY("Sync.PageRevisitNavigationMatchOffset",
- Clamp(best_offset_, -kMaxOffset, kMaxOffset));
- UMA_HISTOGRAM_CUSTOM_TIMES("Sync.PageRevisitNavigationMatchAge",
- (base::Time::Now() - best_tab_->timestamp),
- base::TimeDelta::FromSeconds(1),
- base::TimeDelta::FromDays(14), 100);
- UMA_HISTOGRAM_ENUMERATION("Sync.PageRevisitNavigationMatchTransition",
- transition,
- PageVisitObserver::kTransitionTypeLast);
- }
-}
-
-int OffsetTabMatcher::Clamp(const int input, const int lower, const int upper) {
- return std::max(lower, std::min(upper, input));
-}
-
-} // namespace sync_driver
« no previous file with comments | « components/sync_driver/revisit/offset_tab_matcher.h ('k') | components/sync_driver/revisit/offset_tab_matcher_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698