Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3981)

Unified Diff: chrome/browser/chromeos/chrome_browser_main_chromeos.cc

Issue 11469044: Implement new network change notifier that uses NetworkStateHandler (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: . Created 8 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | chromeos/chromeos.gyp » ('j') | chromeos/network/connection_change_notifier_unittest.cc » ('J')
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 2e3799a7d0c71136a7b669e8657e7d98cf0306ed..183e1ae6b8f9d2236d35b76818fd99b10e010976 100644
--- a/chrome/browser/chromeos/chrome_browser_main_chromeos.cc
+++ b/chrome/browser/chromeos/chrome_browser_main_chromeos.cc
@@ -82,6 +82,7 @@
#include "chromeos/dbus/session_manager_client.h"
#include "chromeos/disks/disk_mount_manager.h"
#include "chromeos/display/output_configurator.h"
+#include "chromeos/network/connection_change_notifier_factory.h"
#include "chromeos/network/network_event_log.h"
#include "chromeos/network/network_state_handler.h"
#include "chromeos/power/power_state_override.h"
@@ -243,7 +244,10 @@ class DBusServices {
// Initialize the network change notifier for Chrome OS. The network
// change notifier starts to monitor changes from the power manager and
// the network manager.
- CrosNetworkChangeNotifierFactory::GetInstance()->Init();
+ if (!CommandLine::ForCurrentProcess()->HasSwitch(
+ chromeos::switches::kEnableNewNetworkHandlers)) {
+ CrosNetworkChangeNotifierFactory::GetInstance()->Init();
+ }
// Likewise, initialize the upgrade detector for Chrome OS. The upgrade
// detector starts to monitor changes from the update engine.
@@ -275,6 +279,9 @@ class DBusServices {
chromeos::network_event_log::Initialize();
chromeos::NetworkStateHandler::Initialize();
network_handlers_initialized_ = true;
+ // TODO(gauravsh): This needs re-factoring. NetworkChangeNotifier choice
+ // needs to be made before about:flags are processed.
+ ConnectionChangeNotifierFactory::GetInstance()->Initialize();
}
~DBusServices() {
@@ -365,9 +372,18 @@ void ChromeBrowserMainPartsChromeos::PreMainMessageLoopStart() {
// Replace the default NetworkChangeNotifierFactory with ChromeOS specific
// implementation. This must be done before BrowserMainLoop calls
// net::NetworkChangeNotifier::Create() in MainMessageLoopStart().
- net::NetworkChangeNotifier::SetFactory(
- new CrosNetworkChangeNotifierFactory());
-
+ net::NetworkChangeNotifierFactory* network_change_factory;
+ // Note: At the time this is called, we have not processed about:flags
+ // so this requires that the network handler flag was passed in at the command
+ // line.
+ if (!CommandLine::ForCurrentProcess()->HasSwitch(
+ chromeos::switches::kEnableNewNetworkHandlers)) {
+ network_change_factory = new CrosNetworkChangeNotifierFactory();
+ } else {
+ LOG(ERROR) << "Using new connection change notifier.";
+ network_change_factory = new ConnectionChangeNotifierFactory();
+ }
+ net::NetworkChangeNotifier::SetFactory(network_change_factory);
ChromeBrowserMainPartsLinux::PreMainMessageLoopStart();
}
@@ -382,7 +398,6 @@ void ChromeBrowserMainPartsChromeos::PostMainMessageLoopStart() {
// Threads are initialized between MainMessageLoopStart and MainMessageLoopRun.
// about_flags settings are applied in ChromeBrowserMainParts::PreCreateThreads.
-
void ChromeBrowserMainPartsChromeos::PreMainMessageLoopRun() {
// Must be called after about_flags settings are applied (see note above).
dbus_services_->InitializeNetworkHandlers();
@@ -612,6 +627,8 @@ void ChromeBrowserMainPartsChromeos::PostMainMessageLoopRun() {
// the network manager.
if (CrosNetworkChangeNotifierFactory::GetInstance())
CrosNetworkChangeNotifierFactory::GetInstance()->Shutdown();
+ if (ConnectionChangeNotifierFactory::GetInstance())
+ ConnectionChangeNotifierFactory::GetInstance()->Shutdown();
if (chromeos::NetworkPortalDetector::IsEnabled() &&
chromeos::NetworkPortalDetector::GetInstance()) {
« no previous file with comments | « no previous file | chromeos/chromeos.gyp » ('j') | chromeos/network/connection_change_notifier_unittest.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698