diff options
author | dpapad@chromium.org <dpapad@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-02-14 20:22:53 +0000 |
---|---|---|
committer | dpapad@chromium.org <dpapad@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-02-14 20:22:53 +0000 |
commit | 02743b707e2743cd0f0916e3b405191a48fa3947 (patch) | |
tree | 2b0c0be422f99a2e0dce81c6de92f9a8bc80b969 /content/browser/geolocation | |
parent | 7f58f3f417a0598ad796ca7de7b14a38252d91bd (diff) | |
download | chromium_src-02743b707e2743cd0f0916e3b405191a48fa3947.zip chromium_src-02743b707e2743cd0f0916e3b405191a48fa3947.tar.gz chromium_src-02743b707e2743cd0f0916e3b405191a48fa3947.tar.bz2 |
Revert 121920 - dbus: add ObjectPath type
Rather than use std::string for object paths, add a dbus::ObjectPath type
that wraps one while allowing more type-safety. This solves all sorts of
issues with confusing object paths for strings, and allows us to do
Properties code using templates disambiguating them from strings.
BUG=chromium:109194
TEST=built and run tests
Change-Id: Icaf6f19daea4af23a9d2ec0ed76d2cbd379d680e
Review URL: http://codereview.chromium.org/9378039
TBR=keybuk@chromium.org
Review URL: https://chromiumcodereview.appspot.com/9363045
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@121923 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/browser/geolocation')
-rw-r--r-- | content/browser/geolocation/wifi_data_provider_linux.cc | 59 | ||||
-rw-r--r-- | content/browser/geolocation/wifi_data_provider_linux_unittest.cc | 35 |
2 files changed, 43 insertions, 51 deletions
diff --git a/content/browser/geolocation/wifi_data_provider_linux.cc b/content/browser/geolocation/wifi_data_provider_linux.cc index a1f5237..178260a 100644 --- a/content/browser/geolocation/wifi_data_provider_linux.cc +++ b/content/browser/geolocation/wifi_data_provider_linux.cc @@ -1,4 +1,4 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright (c) 2011 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. @@ -13,7 +13,6 @@ #include "base/utf_string_conversions.h" #include "dbus/bus.h" #include "dbus/message.h" -#include "dbus/object_path.h" #include "dbus/object_proxy.h" namespace { @@ -57,12 +56,12 @@ class NetworkManagerWlanApi : public WifiDataProviderCommon::WlanApiInterface { private: // Enumerates the list of available network adapter devices known to // NetworkManager. Return true on success. - bool GetAdapterDeviceList(std::vector<dbus::ObjectPath>* device_paths); + bool GetAdapterDeviceList(std::vector<std::string>* device_paths); // Given the NetworkManager path to a wireless adapater, dumps the wifi scan // results and appends them to |data|. Returns false if a fatal error is // encountered such that the data set could not be populated. - bool GetAccessPointsForAdapter(const dbus::ObjectPath& adapter_path, + bool GetAccessPointsForAdapter(const std::string& adapter_path, WifiData::AccessPointDataSet* data); // Internal method used by |GetAccessPointsForAdapter|, given a wifi access @@ -111,9 +110,9 @@ bool NetworkManagerWlanApi::InitWithBus(dbus::Bus* bus) { // system_bus_ will own all object proxies created from the bus. network_manager_proxy_ = system_bus_->GetObjectProxy(kNetworkManagerServiceName, - dbus::ObjectPath(kNetworkManagerPath)); + kNetworkManagerPath); // Validate the proxy object by checking we can enumerate devices. - std::vector<dbus::ObjectPath> adapter_paths; + std::vector<std::string> adapter_paths; const bool success = GetAdapterDeviceList(&adapter_paths); VLOG(1) << "Init() result: " << success; return success; @@ -121,7 +120,7 @@ bool NetworkManagerWlanApi::InitWithBus(dbus::Bus* bus) { bool NetworkManagerWlanApi::GetAccessPointData( WifiData::AccessPointDataSet* data) { - std::vector<dbus::ObjectPath> device_paths; + std::vector<std::string> device_paths; if (!GetAdapterDeviceList(&device_paths)) { LOG(WARNING) << "Could not enumerate access points"; return false; @@ -131,8 +130,8 @@ bool NetworkManagerWlanApi::GetAccessPointData( // Iterate the devices, getting APs for each wireless adapter found for (size_t i = 0; i < device_paths.size(); ++i) { - const dbus::ObjectPath& device_path = device_paths[i]; - VLOG(1) << "Checking device: " << device_path.value(); + const std::string& device_path = device_paths[i]; + VLOG(1) << "Checking device: " << device_path; dbus::ObjectProxy* device_proxy = system_bus_->GetObjectProxy(kNetworkManagerServiceName, @@ -147,8 +146,7 @@ bool NetworkManagerWlanApi::GetAccessPointData( &method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT)); if (!response.get()) { - LOG(WARNING) << "Failed to get the device type for " - << device_path.value(); + LOG(WARNING) << "Failed to get the device type for " << device_path; continue; // Check the next device. } dbus::MessageReader reader(response.get()); @@ -172,7 +170,7 @@ bool NetworkManagerWlanApi::GetAccessPointData( } bool NetworkManagerWlanApi::GetAdapterDeviceList( - std::vector<dbus::ObjectPath>* device_paths) { + std::vector<std::string>* device_paths) { dbus::MethodCall method_call(kNetworkManagerInterface, "GetDevices"); scoped_ptr<dbus::Response> response( network_manager_proxy_->CallMethodAndBlock( @@ -193,7 +191,7 @@ bool NetworkManagerWlanApi::GetAdapterDeviceList( bool NetworkManagerWlanApi::GetAccessPointsForAdapter( - const dbus::ObjectPath& adapter_path, WifiData::AccessPointDataSet* data) { + const std::string& adapter_path, WifiData::AccessPointDataSet* data) { // Create a proxy object for this wifi adapter, and ask it to do a scan // (or at least, dump its scan results). dbus::ObjectProxy* device_proxy = @@ -207,24 +205,23 @@ bool NetworkManagerWlanApi::GetAccessPointsForAdapter( &method_call, dbus::ObjectProxy::TIMEOUT_USE_DEFAULT)); if (!response.get()) { - LOG(WARNING) << "Failed to get access points data for " - << adapter_path.value(); + LOG(WARNING) << "Failed to get access points data for " << adapter_path; return false; } dbus::MessageReader reader(response.get()); - std::vector<dbus::ObjectPath> access_point_paths; + std::vector<std::string> access_point_paths; if (!reader.PopArrayOfObjectPaths(&access_point_paths)) { - LOG(WARNING) << "Unexpected response for " << adapter_path.value() << ": " + LOG(WARNING) << "Unexpected response for " << adapter_path << ": " << response->ToString(); return false; } - VLOG(1) << "Wireless adapter " << adapter_path.value() << " found " + VLOG(1) << "Wireless adapter " << adapter_path << " found " << access_point_paths.size() << " access points."; for (size_t i = 0; i < access_point_paths.size(); ++i) { - const dbus::ObjectPath& access_point_path = access_point_paths[i]; - VLOG(1) << "Checking access point: " << access_point_path.value(); + const std::string& access_point_path = access_point_paths[i]; + VLOG(1) << "Checking access point: " << access_point_path; dbus::ObjectProxy* access_point_proxy = system_bus_->GetObjectProxy(kNetworkManagerServiceName, @@ -240,15 +237,15 @@ bool NetworkManagerWlanApi::GetAccessPointsForAdapter( dbus::MessageReader reader(response.get()); dbus::MessageReader variant_reader(response.get()); if (!reader.PopVariant(&variant_reader)) { - LOG(WARNING) << "Unexpected response for " << access_point_path.value() - << ": " << response->ToString(); + LOG(WARNING) << "Unexpected response for " << access_point_path << ": " + << response->ToString(); continue; } uint8* ssid_bytes = NULL; size_t ssid_length = 0; if (!variant_reader.PopArrayOfBytes(&ssid_bytes, &ssid_length)) { - LOG(WARNING) << "Unexpected response for " << access_point_path.value() - << ": " << response->ToString(); + LOG(WARNING) << "Unexpected response for " << access_point_path << ": " + << response->ToString(); continue; } std::string ssid(ssid_bytes, ssid_bytes + ssid_length); @@ -263,8 +260,8 @@ bool NetworkManagerWlanApi::GetAccessPointsForAdapter( dbus::MessageReader reader(response.get()); std::string mac; if (!reader.PopVariantOfString(&mac)) { - LOG(WARNING) << "Unexpected response for " << access_point_path.value() - << ": " << response->ToString(); + LOG(WARNING) << "Unexpected response for " << access_point_path << ": " + << response->ToString(); continue; } @@ -287,8 +284,8 @@ bool NetworkManagerWlanApi::GetAccessPointsForAdapter( dbus::MessageReader reader(response.get()); uint8 strength = 0; if (!reader.PopVariantOfByte(&strength)) { - LOG(WARNING) << "Unexpected response for " << access_point_path.value() - << ": " << response->ToString(); + LOG(WARNING) << "Unexpected response for " << access_point_path << ": " + << response->ToString(); continue; } // Convert strength as a percentage into dBs. @@ -303,8 +300,8 @@ bool NetworkManagerWlanApi::GetAccessPointsForAdapter( dbus::MessageReader reader(response.get()); uint32 frequency = 0; if (!reader.PopVariantOfUint32(&frequency)) { - LOG(WARNING) << "Unexpected response for " << access_point_path.value() - << ": " << response->ToString(); + LOG(WARNING) << "Unexpected response for " << access_point_path << ": " + << response->ToString(); continue; } @@ -312,7 +309,7 @@ bool NetworkManagerWlanApi::GetAccessPointsForAdapter( access_point_data.channel = frquency_in_khz_to_channel(frequency * 1000); } - VLOG(1) << "Access point data of " << access_point_path.value() << ": " + VLOG(1) << "Access point data of " << access_point_path << ": " << "SSID: " << access_point_data.ssid << ", " << "MAC: " << access_point_data.mac_address << ", " << "Strength: " << access_point_data.radio_signal_strength << ", " diff --git a/content/browser/geolocation/wifi_data_provider_linux_unittest.cc b/content/browser/geolocation/wifi_data_provider_linux_unittest.cc index 94c56f2..e5a39b9 100644 --- a/content/browser/geolocation/wifi_data_provider_linux_unittest.cc +++ b/content/browser/geolocation/wifi_data_provider_linux_unittest.cc @@ -1,4 +1,4 @@ -// Copyright (c) 2012 The Chromium Authors. All rights reserved. +// Copyright (c) 2011 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. @@ -11,7 +11,6 @@ #include "dbus/message.h" #include "dbus/mock_bus.h" #include "dbus/mock_object_proxy.h" -#include "dbus/object_path.h" #include "dbus/object_proxy.h" #include "testing/gmock/include/gmock/gmock.h" #include "testing/gtest/include/gtest/gtest.h" @@ -30,10 +29,9 @@ class GeolocationWifiDataProviderLinuxTest : public testing::Test { // Create a mock proxy that behaves as NetworkManager. mock_network_manager_proxy_ = - new dbus::MockObjectProxy( - mock_bus_.get(), - "org.freedesktop.NetworkManager", - dbus::ObjectPath("/org/freedesktop/NetworkManager")); + new dbus::MockObjectProxy(mock_bus_.get(), + "org.freedesktop.NetworkManager", + "/org/freedesktop/NetworkManager"); // Set an expectation so mock_network_manager_proxy_'s // CallMethodAndBlock() will use CreateNetowrkManagerProxyResponse() // to return responses. @@ -46,10 +44,9 @@ class GeolocationWifiDataProviderLinuxTest : public testing::Test { // Create a mock proxy that behaves as NetworkManager/Devices/0. mock_device_proxy_ = - new dbus::MockObjectProxy( - mock_bus_.get(), - "org.freedesktop.NetworkManager", - dbus::ObjectPath("/org/freedesktop/NetworkManager/Devices/0")); + new dbus::MockObjectProxy(mock_bus_.get(), + "org.freedesktop.NetworkManager", + "/org/freedesktop/NetworkManager/Devices/0"); EXPECT_CALL(*mock_device_proxy_, CallMethodAndBlock(_, _)) .WillRepeatedly(Invoke( @@ -61,7 +58,7 @@ class GeolocationWifiDataProviderLinuxTest : public testing::Test { new dbus::MockObjectProxy( mock_bus_.get(), "org.freedesktop.NetworkManager", - dbus::ObjectPath("/org/freedesktop/NetworkManager/AccessPoint/0")); + "/org/freedesktop/NetworkManager/AccessPoint/0"); EXPECT_CALL(*mock_access_point_proxy_, CallMethodAndBlock(_, _)) .WillRepeatedly(Invoke( @@ -74,18 +71,18 @@ class GeolocationWifiDataProviderLinuxTest : public testing::Test { // mock_network_manager_proxy_. EXPECT_CALL(*mock_bus_, GetObjectProxy( "org.freedesktop.NetworkManager", - dbus::ObjectPath("/org/freedesktop/NetworkManager"))) + "/org/freedesktop/NetworkManager")) .WillOnce(Return(mock_network_manager_proxy_.get())); // Likewise, set an expectation for mock_device_proxy_. EXPECT_CALL(*mock_bus_, GetObjectProxy( "org.freedesktop.NetworkManager", - dbus::ObjectPath("/org/freedesktop/NetworkManager/Devices/0"))) + "/org/freedesktop/NetworkManager/Devices/0")) .WillOnce(Return(mock_device_proxy_.get())) .WillOnce(Return(mock_device_proxy_.get())); // Likewise, set an expectation for mock_access_point_proxy_. EXPECT_CALL(*mock_bus_, GetObjectProxy( "org.freedesktop.NetworkManager", - dbus::ObjectPath("/org/freedesktop/NetworkManager/AccessPoint/0"))) + "/org/freedesktop/NetworkManager/AccessPoint/0")) .WillOnce(Return(mock_access_point_proxy_.get())); // ShutdownAndBlock() should be called. @@ -118,9 +115,8 @@ class GeolocationWifiDataProviderLinuxTest : public testing::Test { if (method_call->GetInterface() == "org.freedesktop.NetworkManager" && method_call->GetMember() == "GetDevices") { // The list of devices is asked. Return the object path. - std::vector<dbus::ObjectPath> object_paths; - object_paths.push_back( - dbus::ObjectPath("/org/freedesktop/NetworkManager/Devices/0")); + std::vector<std::string> object_paths; + object_paths.push_back("/org/freedesktop/NetworkManager/Devices/0"); dbus::Response* response = dbus::Response::CreateEmpty(); dbus::MessageWriter writer(response); @@ -156,9 +152,8 @@ class GeolocationWifiDataProviderLinuxTest : public testing::Test { // The list of access points is asked. Return the object path. dbus::Response* response = dbus::Response::CreateEmpty(); dbus::MessageWriter writer(response); - std::vector<dbus::ObjectPath> object_paths; - object_paths.push_back( - dbus::ObjectPath("/org/freedesktop/NetworkManager/AccessPoint/0")); + std::vector<std::string> object_paths; + object_paths.push_back("/org/freedesktop/NetworkManager/AccessPoint/0"); writer.AppendArrayOfObjectPaths(object_paths); return response; } |