| Index: content/browser/geolocation/device_data_provider.cc
|
| ===================================================================
|
| --- content/browser/geolocation/device_data_provider.cc (revision 76230)
|
| +++ content/browser/geolocation/device_data_provider.cc (working copy)
|
| @@ -1,105 +0,0 @@
|
| -// Copyright (c) 2010 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 "content/browser/geolocation/device_data_provider.h"
|
| -
|
| -namespace {
|
| -
|
| -bool CellDataMatches(const CellData &data1, const CellData &data2) {
|
| - return data1.Matches(data2);
|
| -}
|
| -
|
| -} // namespace
|
| -
|
| -CellData::CellData()
|
| - : cell_id(kint32min),
|
| - location_area_code(kint32min),
|
| - mobile_network_code(kint32min),
|
| - mobile_country_code(kint32min),
|
| - radio_signal_strength(kint32min),
|
| - timing_advance(kint32min) {
|
| -}
|
| -
|
| -RadioData::RadioData()
|
| - : home_mobile_network_code(kint32min),
|
| - home_mobile_country_code(kint32min),
|
| - radio_type(RADIO_TYPE_UNKNOWN) {
|
| -}
|
| -
|
| -RadioData::~RadioData() {}
|
| -
|
| -bool RadioData::Matches(const RadioData &other) const {
|
| - if (cell_data.size() != other.cell_data.size()) {
|
| - return false;
|
| - }
|
| - if (!std::equal(cell_data.begin(), cell_data.end(), other.cell_data.begin(),
|
| - CellDataMatches)) {
|
| - return false;
|
| - }
|
| - return device_id == other.device_id &&
|
| - home_mobile_network_code == other.home_mobile_network_code &&
|
| - home_mobile_country_code == other.home_mobile_country_code &&
|
| - radio_type == other.radio_type &&
|
| - carrier == other.carrier;
|
| -}
|
| -
|
| -AccessPointData::AccessPointData()
|
| - : radio_signal_strength(kint32min),
|
| - channel(kint32min),
|
| - signal_to_noise(kint32min) {
|
| -}
|
| -
|
| -AccessPointData::~AccessPointData() {}
|
| -
|
| -WifiData::WifiData() {}
|
| -
|
| -WifiData::~WifiData() {}
|
| -
|
| -bool WifiData::DiffersSignificantly(const WifiData& other) const {
|
| - // More than 4 or 50% of access points added or removed is significant.
|
| - static const size_t kMinChangedAccessPoints = 4;
|
| - const size_t min_ap_count =
|
| - std::min(access_point_data.size(), other.access_point_data.size());
|
| - const size_t max_ap_count =
|
| - std::max(access_point_data.size(), other.access_point_data.size());
|
| - const size_t difference_threadhold = std::min(kMinChangedAccessPoints,
|
| - min_ap_count / 2);
|
| - if (max_ap_count > min_ap_count + difference_threadhold)
|
| - return true;
|
| - // Compute size of interesction of old and new sets.
|
| - size_t num_common = 0;
|
| - for (AccessPointDataSet::const_iterator iter = access_point_data.begin();
|
| - iter != access_point_data.end();
|
| - iter++) {
|
| - if (other.access_point_data.find(*iter) !=
|
| - other.access_point_data.end()) {
|
| - ++num_common;
|
| - }
|
| - }
|
| - DCHECK(num_common <= min_ap_count);
|
| -
|
| - // Test how many have changed.
|
| - return max_ap_count > num_common + difference_threadhold;
|
| -}
|
| -
|
| -GatewayData::GatewayData() {}
|
| -
|
| -GatewayData::~GatewayData() {}
|
| -
|
| -bool GatewayData::DiffersSignificantly(const GatewayData& other) const {
|
| - // Any change is significant.
|
| - if (this->router_data.size() != other.router_data.size())
|
| - return true;
|
| - RouterDataSet::const_iterator iter1 = router_data.begin();
|
| - RouterDataSet::const_iterator iter2 = other.router_data.begin();
|
| - while (iter1 != router_data.end()) {
|
| - if (iter1->mac_address != iter2->mac_address) {
|
| - // There is a difference between the sets of routers.
|
| - return true;
|
| - }
|
| - ++iter1;
|
| - ++iter2;
|
| - }
|
| - return false;
|
| -}
|
|
|