Index: chrome/browser/chromeos/chrome_browser_main_chromeos.cc |
diff --git a/chrome/browser/chromeos/chrome_browser_main_chromeos.cc b/chrome/browser/chromeos/chrome_browser_main_chromeos.cc |
index fa32096034d392640984ef88faa047cd8a50c479..bee47b77073be70e3e2546322334518bf23ce94c 100644 |
--- a/chrome/browser/chromeos/chrome_browser_main_chromeos.cc |
+++ b/chrome/browser/chromeos/chrome_browser_main_chromeos.cc |
@@ -96,6 +96,7 @@ |
#include "chromeos/dbus/dbus_thread_manager.h" |
#include "chromeos/dbus/power_policy_controller.h" |
#include "chromeos/dbus/session_manager_client.h" |
+#include "chromeos/dbus/shill_manager_client.h" |
#include "chromeos/disks/disk_mount_manager.h" |
#include "chromeos/ime/ime_keyboard.h" |
#include "chromeos/ime/input_method_manager.h" |
@@ -105,6 +106,7 @@ |
#include "chromeos/network/network_handler.h" |
#include "chromeos/system/statistics_provider.h" |
#include "chromeos/tpm_token_loader.h" |
+#include "components/gcm_driver/default_gcm_app_handler.h" |
#include "components/metrics/metrics_service.h" |
#include "content/public/browser/browser_thread.h" |
#include "content/public/browser/notification_service.h" |
@@ -750,9 +752,36 @@ void ChromeBrowserMainPartsChromeos::PreBrowserStart() { |
system::InputDeviceSettings::Get()->SetTapToClick(true); |
} |
+ // Register GCM connection callbacks. |
+ gcm::DefaultGCMAppHandler::RegisterConnectionCallbacks( |
+ ChromeBrowserMainPartsChromeos::OnGCMConnected, |
+ ChromeBrowserMainPartsChromeos::OnGCMDisconnected); |
+ |
ChromeBrowserMainPartsLinux::PreBrowserStart(); |
} |
+// static |
+void ChromeBrowserMainPartsChromeos::GCMErrorCallback( |
+ const std::string &error_name, |
+ const std::string &error) { |
+ LOG(ERROR) << "GCM callback error " << error_name << ": " << error; |
+} |
+ |
+// static |
+void ChromeBrowserMainPartsChromeos::OnGCMConnected( |
+ const net::IPEndPoint& ip_endpoint) { |
+ const std::string ip_endpoint_string = ip_endpoint.ToString(); |
+ chromeos::DBusThreadManager::Get()-> |
+ GetShillManagerClient()-> |
+ AddWakeOnPacketConnection( |
+ ip_endpoint_string, |
+ base::Bind(&base::DoNothing), |
+ base::Bind(&ChromeBrowserMainPartsChromeos::GCMErrorCallback)); |
+} |
+ |
+void ChromeBrowserMainPartsChromeos::OnGCMDisconnected() { |
+} |
+ |
void ChromeBrowserMainPartsChromeos::PostBrowserStart() { |
// These are dependent on the ash::Shell singleton already having been |
// initialized. |