Commit 8e7b4ff4 authored by skuhne's avatar skuhne Committed by Commit bot

Revert of GCM: D-Bus methods for wake-on-packet (patchset #15 id:280001 of...

Revert of GCM: D-Bus methods for wake-on-packet (patchset #15 id:280001 of https://codereview.chromium.org/409883006/)

Reason for revert:
See issue https://code.google.com/p/chromium/issues/detail?id=415281

I bissected chrome to this patch and figured that this is causing chrome to crash.

Sorry.

Original issue's description:
> GCM: D-Bus methods for wake-on-packet
>
> Program the NIC to wake-on-packet for packets arriving from
> the GCM server.  Chrome notifies the connection manager (shill)
> by calling D-Bus methods.  The return status indicates if the
> operation succeeded or not (depending on hardware support and
> the type of connection).
>
> Keywords: wowlan, wake-on-lan, wake-on-wlan
>
> BUG=360295
> TEST=verified dbus methods are called, and packets are sent on the
> TEST=connection passed to the methods.  Also verified that shill
> TEST=programs the NIC correctly, and packets wake up the device.
>
> Committed: https://crrev.com/88a95a70fa94bb578b371490d0f9868584b7096e
> Cr-Commit-Position: refs/heads/master@{#294936}

TBR=derat@chromium.org,fgorski@chromium.org,stevenjb@chromium.org,zea@chromium.org,scheib@chromium.org,yoz@chromium.org,semenzato@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=360295

Review URL: https://codereview.chromium.org/584753002

Cr-Commit-Position: refs/heads/master@{#295592}
parent 01c68e87
......@@ -432,7 +432,7 @@ deps_os = {
# For Linux and Chromium OS.
'src/third_party/cros_system_api':
Var('chromium_git') + '/chromiumos/platform/system_api.git' + '@' + '58e64ad700fb0e9d182feba37fa02af612d4179e',
Var('chromium_git') + '/chromiumos/platform/system_api.git' + '@' + '3a7cfa4ba91518b8dd03282d09996d2f42ec6a2b',
# Note that this is different from Android's freetype repo.
'src/third_party/freetype2/src':
......
......@@ -56,7 +56,6 @@
#include "chrome/browser/chromeos/login/users/scoped_test_user_manager.h"
#include "chrome/browser/chromeos/settings/cros_settings.h"
#include "chrome/browser/chromeos/settings/device_settings_service.h"
#include "chromeos/dbus/dbus_thread_manager.h"
#endif
namespace extensions {
......@@ -221,9 +220,6 @@ class ExtensionGCMAppHandlerTest : public testing::Test {
// This is needed to create extension service under CrOS.
#if defined(OS_CHROMEOS)
test_user_manager_.reset(new chromeos::ScopedTestUserManager());
// Create a DBus thread manager setter for its side effect.
// Ignore the return value.
chromeos::DBusThreadManager::GetSetterForTesting();
#endif
// Create a new profile.
......
// Copyright (c) 2014 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 "chrome/browser/services/gcm/chromeos_gcm_connection_observer.h"
#include "base/callback.h"
#include "base/logging.h"
#include "chromeos/dbus/dbus_thread_manager.h"
#include "chromeos/dbus/shill_manager_client.h"
namespace gcm {
ChromeOSGCMConnectionObserver::ChromeOSGCMConnectionObserver() {
}
ChromeOSGCMConnectionObserver::~ChromeOSGCMConnectionObserver() {
}
// static
void ChromeOSGCMConnectionObserver::ErrorCallback(
const std::string& error_name,
const std::string& error) {
LOG(ERROR) << "GCM D-Bus method error " << error_name << ": " << error;
}
void ChromeOSGCMConnectionObserver::OnConnected(
const net::IPEndPoint& ip_endpoint) {
ip_endpoint_ = ip_endpoint;
chromeos::DBusThreadManager::Get()->
GetShillManagerClient()->
AddWakeOnPacketConnection(
ip_endpoint,
base::Bind(&base::DoNothing),
base::Bind(&ChromeOSGCMConnectionObserver::ErrorCallback));
}
void ChromeOSGCMConnectionObserver::OnDisconnected() {
chromeos::DBusThreadManager::Get()->
GetShillManagerClient()->
RemoveWakeOnPacketConnection(
ip_endpoint_,
base::Bind(&base::DoNothing),
base::Bind(&ChromeOSGCMConnectionObserver::ErrorCallback));
}
} // namespace gcm
// Copyright (c) 2014 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.
#ifndef CHROME_BROWSER_SERVICES_GCM_CHROMEOS_GCM_CONNECTION_OBSERVER_H_
#define CHROME_BROWSER_SERVICES_GCM_CHROMEOS_GCM_CONNECTION_OBSERVER_H_
#include "base/compiler_specific.h"
#include "components/gcm_driver/gcm_connection_observer.h"
#include "net/base/ip_endpoint.h"
namespace gcm {
class ChromeOSGCMConnectionObserver : public GCMConnectionObserver {
public:
ChromeOSGCMConnectionObserver();
virtual ~ChromeOSGCMConnectionObserver();
// gcm::GCMConnectionObserver implementation:
virtual void OnConnected(const net::IPEndPoint& ip_endpoint) OVERRIDE;
virtual void OnDisconnected() OVERRIDE;
static void ErrorCallback(
const std::string& error_name,
const std::string& error);
private:
net::IPEndPoint ip_endpoint_;
DISALLOW_COPY_AND_ASSIGN(ChromeOSGCMConnectionObserver);
};
} // namespace gcm
#endif // CHROME_BROWSER_SERVICES_GCM_CHROMEOS_GCM_CONNECTION_OBSERVER_H_
......@@ -16,9 +16,6 @@
#include "components/gcm_driver/gcm_driver_android.h"
#else
#include "base/bind.h"
#if defined(OS_CHROMEOS)
#include "chrome/browser/services/gcm/chromeos_gcm_connection_observer.h"
#endif
#include "base/files/file_path.h"
#include "base/memory/weak_ptr.h"
#include "chrome/browser/services/gcm/gcm_account_tracker.h"
......@@ -172,11 +169,6 @@ GCMProfileService::GCMProfileService(
profile_->GetPath().Append(chrome::kGCMStoreDirname),
profile_->GetRequestContext());
#ifdef CHROMEOS
chromeos_connection_observer_.reset(new gcm::ChromeOSGCMConnectionObserver);
driver_->AddConnectionObserver(chromeos_connection_observer_.get());
#endif
identity_observer_.reset(new IdentityObserver(
profile, static_cast<gcm::GCMDriverDesktop*>(driver_.get())));
}
......@@ -212,10 +204,6 @@ void GCMProfileService::Shutdown() {
#if !defined(OS_ANDROID)
identity_observer_.reset();
#endif // !defined(OS_ANDROID)
#if defined(OS_CHROMEOS)
driver_->RemoveConnectionObserver(chromeos_connection_observer_.get());
chromeos_connection_observer_.reset();
#endif
if (driver_) {
driver_->Shutdown();
......
......@@ -86,9 +86,6 @@ class GCMProfileService : public KeyedService {
class IdentityObserver;
scoped_ptr<IdentityObserver> identity_observer_;
#endif
#if defined(OS_CHROMEOS)
scoped_ptr<GCMConnectionObserver> chromeos_connection_observer_;
#endif
DISALLOW_COPY_AND_ASSIGN(GCMProfileService);
};
......
......@@ -15,9 +15,6 @@
#include "chrome/browser/services/gcm/gcm_profile_service_factory.h"
#include "chrome/browser/signin/signin_manager_factory.h"
#include "chrome/test/base/testing_profile.h"
#if defined(OS_CHROMEOS)
#include "chromeos/dbus/dbus_thread_manager.h"
#endif
#include "components/gcm_driver/fake_gcm_app_handler.h"
#include "components/gcm_driver/fake_gcm_client.h"
#include "components/gcm_driver/fake_gcm_client_factory.h"
......@@ -119,11 +116,6 @@ FakeGCMClient* GCMProfileServiceTest::GetGCMClient() const {
}
void GCMProfileServiceTest::SetUp() {
#if defined(OS_CHROMEOS)
// Create a DBus thread manager setter for its side effect.
// Ignore the return value.
chromeos::DBusThreadManager::GetSetterForTesting();
#endif
TestingProfile::Builder builder;
builder.AddTestingFactory(SigninManagerFactory::GetInstance(),
FakeSigninManager::Build);
......
......@@ -2629,8 +2629,6 @@
# support ChromeOS with enable_plugins==0.
'browser/renderer_host/pepper/pepper_platform_verification_message_filter.cc',
'browser/renderer_host/pepper/pepper_platform_verification_message_filter.h',
'browser/services/gcm/chromeos_gcm_connection_observer.cc',
'browser/services/gcm/chromeos_gcm_connection_observer.h',
],
# Used everywhere but ChromeOS.
'chrome_browser_non_chromeos_sources': [
......
......@@ -355,23 +355,6 @@ void FakeShillManagerClient::ConnectToBestServices(
dbus::ObjectPath(best_service_), callback, error_callback);
}
void FakeShillManagerClient::AddWakeOnPacketConnection(
const net::IPEndPoint& ip_endpoint,
const base::Closure& callback,
const ErrorCallback& error_callback) {
}
void FakeShillManagerClient::RemoveWakeOnPacketConnection(
const net::IPEndPoint& ip_endpoint,
const base::Closure& callback,
const ErrorCallback& error_callback) {
}
void FakeShillManagerClient::RemoveAllWakeOnPacketConnections(
const base::Closure& callback,
const ErrorCallback& error_callback) {
}
ShillManagerClient::TestInterface* FakeShillManagerClient::GetTestInterface() {
return this;
}
......
......@@ -12,10 +12,6 @@
#include "chromeos/chromeos_export.h"
#include "chromeos/dbus/shill_manager_client.h"
namespace net {
class IPEndPoint;
}
namespace chromeos {
// A fake implementation of ShillManagerClient. This works in close coordination
......@@ -81,18 +77,6 @@ class CHROMEOS_EXPORT FakeShillManagerClient
virtual void ConnectToBestServices(
const base::Closure& callback,
const ErrorCallback& error_callback) OVERRIDE;
virtual void AddWakeOnPacketConnection(
const net::IPEndPoint& ip_connection,
const base::Closure& callback,
const ErrorCallback& error_callback) OVERRIDE;
virtual void RemoveWakeOnPacketConnection(
const net::IPEndPoint& ip_endpoint,
const base::Closure& callback,
const ErrorCallback& error_callback) OVERRIDE;
virtual void RemoveAllWakeOnPacketConnections(
const base::Closure& callback,
const ErrorCallback& error_callback) OVERRIDE;
virtual ShillManagerClient::TestInterface* GetTestInterface() OVERRIDE;
// ShillManagerClient::TestInterface overrides.
......
......@@ -8,7 +8,6 @@
#include "base/values.h"
#include "chromeos/dbus/shill_manager_client.h"
#include "chromeos/dbus/shill_property_changed_observer.h"
#include "net/base/ip_endpoint.h"
#include "testing/gmock/include/gmock/gmock.h"
namespace chromeos {
......@@ -67,17 +66,6 @@ class MockShillManagerClient : public ShillManagerClient {
MOCK_METHOD2(ConnectToBestServices,
void(const base::Closure& callback,
const ErrorCallback& error_callback));
MOCK_METHOD3(AddWakeOnPacketConnection,
void(const net::IPEndPoint& ip_connection,
const base::Closure& callback,
const ErrorCallback& error_callback));
MOCK_METHOD3(RemoveWakeOnPacketConnection,
void(const net::IPEndPoint& ip_connection,
const base::Closure& callback,
const ErrorCallback& error_callback));
MOCK_METHOD2(RemoveAllWakeOnPacketConnections,
void(const base::Closure& callback,
const ErrorCallback& error_callback));
MOCK_METHOD0(GetTestInterface, TestInterface*());
};
......
......@@ -14,7 +14,6 @@
#include "dbus/object_path.h"
#include "dbus/object_proxy.h"
#include "dbus/values_util.h"
#include "net/base/ip_endpoint.h"
#include "third_party/cros_system_api/dbus/service_constants.h"
namespace chromeos {
......@@ -211,43 +210,6 @@ class ShillManagerClientImpl : public ShillManagerClient {
error_callback);
}
virtual void AddWakeOnPacketConnection(
const net::IPEndPoint& ip_endpoint,
const base::Closure& callback,
const ErrorCallback& error_callback) OVERRIDE {
dbus::MethodCall method_call(shill::kFlimflamManagerInterface,
shill::kAddWakeOnPacketConnectionFunction);
dbus::MessageWriter writer(&method_call);
writer.AppendString(net::IPAddressToString(ip_endpoint.address()));
helper_->CallVoidMethodWithErrorCallback(&method_call,
callback,
error_callback);
}
virtual void RemoveWakeOnPacketConnection(
const net::IPEndPoint& ip_endpoint,
const base::Closure& callback,
const ErrorCallback& error_callback) OVERRIDE {
dbus::MethodCall method_call(shill::kFlimflamManagerInterface,
shill::kRemoveWakeOnPacketConnectionFunction);
dbus::MessageWriter writer(&method_call);
writer.AppendString(net::IPAddressToString(ip_endpoint.address()));
helper_->CallVoidMethodWithErrorCallback(&method_call,
callback,
error_callback);
}
virtual void RemoveAllWakeOnPacketConnections(
const base::Closure& callback,
const ErrorCallback& error_callback) OVERRIDE {
dbus::MethodCall method_call(
shill::kFlimflamManagerInterface,
shill::kRemoveAllWakeOnPacketConnectionsFunction);
helper_->CallVoidMethodWithErrorCallback(&method_call,
callback,
error_callback);
}
virtual TestInterface* GetTestInterface() OVERRIDE {
return NULL;
}
......
......@@ -14,12 +14,10 @@
#include "chromeos/dbus/shill_client_helper.h"
namespace dbus {
class ObjectPath;
}
namespace net {
class IPEndPoint;
}
} // namespace dbus
namespace chromeos {
......@@ -195,53 +193,35 @@ class CHROMEOS_EXPORT ShillManagerClient : public DBusClient {
const ObjectPathCallback& callback,
const ErrorCallback& error_callback) = 0;
// Verifies that the given data corresponds to a trusted device, and returns
// true to the callback if it is.
// Verify that the given data corresponds to a trusted device, and return true
// to the callback if it is.
virtual void VerifyDestination(const VerificationProperties& properties,
const BooleanCallback& callback,
const ErrorCallback& error_callback) = 0;
// Verifies that the given data corresponds to a trusted device, and if it is,
// returns the encrypted credentials for connecting to the network represented
// Verify that the given data corresponds to a trusted device, and if it is,
// return the encrypted credentials for connecting to the network represented
// by the given |service_path|, encrypted using the |public_key| for the
// trusted device. If the device is not trusted, returns the empty string.
// trusted device. If the device is not trusted, return the empty string.
virtual void VerifyAndEncryptCredentials(
const VerificationProperties& properties,
const std::string& service_path,
const StringCallback& callback,
const ErrorCallback& error_callback) = 0;
// Verifies that the given data corresponds to a trusted device, and returns
// the |data| encrypted using the |public_key| for the trusted device. If the
// device is not trusted, returns the empty string.
// Verify that the given data corresponds to a trusted device, and return the
// |data| encrypted using the |public_key| for the trusted device. If the
// device is not trusted, return the empty string.
virtual void VerifyAndEncryptData(const VerificationProperties& properties,
const std::string& data,
const StringCallback& callback,
const ErrorCallback& error_callback) = 0;
// For each technology present, connects to the "best" service available.
// For each technology present, connect to the "best" service available.
// Called once the user is logged in and certificates are loaded.
virtual void ConnectToBestServices(const base::Closure& callback,
const ErrorCallback& error_callback) = 0;
// Requests that shill program the NIC so that packets incoming on
// |ip_connection| wake up the CPU.
virtual void AddWakeOnPacketConnection(
const net::IPEndPoint& ip_endpoint,
const base::Closure& callback,
const ErrorCallback& error_callback) = 0;
// Removes a request to wake up on packets coming on |ip_connection|.
virtual void RemoveWakeOnPacketConnection(
const net::IPEndPoint& ip_endpoint,
const base::Closure& callback,
const ErrorCallback& error_callback) = 0;
// Clears all requests to wake up on packets.
virtual void RemoveAllWakeOnPacketConnections(
const base::Closure& callback,
const ErrorCallback& error_callback) = 0;
// Returns an interface for testing (stub only), or returns NULL.
virtual TestInterface* GetTestInterface() = 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment