summaryrefslogtreecommitdiffstats
path: root/content/browser/geolocation
diff options
context:
space:
mode:
authordpapad@chromium.org <dpapad@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-02-14 20:22:53 +0000
committerdpapad@chromium.org <dpapad@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-02-14 20:22:53 +0000
commit02743b707e2743cd0f0916e3b405191a48fa3947 (patch)
tree2b0c0be422f99a2e0dce81c6de92f9a8bc80b969 /content/browser/geolocation
parent7f58f3f417a0598ad796ca7de7b14a38252d91bd (diff)
downloadchromium_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.cc59
-rw-r--r--content/browser/geolocation/wifi_data_provider_linux_unittest.cc35
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;
}