| 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
|
|
|