| Index: chrome/browser/chromeos/net/network_portal_detector_impl.cc
|
| diff --git a/chrome/browser/chromeos/net/network_portal_detector_impl.cc b/chrome/browser/chromeos/net/network_portal_detector_impl.cc
|
| index e58698103d432c11710eb725c0029d14839210ee..7f717b2a1148a0c7c08c9d35b7ffb8a5874108ef 100644
|
| --- a/chrome/browser/chromeos/net/network_portal_detector_impl.cc
|
| +++ b/chrome/browser/chromeos/net/network_portal_detector_impl.cc
|
| @@ -13,11 +13,13 @@
|
| #include "base/metrics/histogram.h"
|
| #include "base/strings/stringprintf.h"
|
| #include "chrome/browser/chrome_notification_types.h"
|
| +#include "chrome/browser/chromeos/net/network_portal_notification_controller.h"
|
| #include "chromeos/dbus/dbus_thread_manager.h"
|
| #include "chromeos/dbus/shill_profile_client.h"
|
| #include "chromeos/login/login_state.h"
|
| #include "chromeos/network/network_state.h"
|
| #include "chromeos/network/network_state_handler.h"
|
| +#include "chromeos/network/portal_detector/network_portal_detector_stub.h"
|
| #include "components/device_event_log/device_event_log.h"
|
| #include "content/public/browser/notification_service.h"
|
| #include "content/public/common/content_switches.h"
|
| @@ -209,34 +211,38 @@ const char NetworkPortalDetectorImpl::kSessionPortalToOnlineHistogram[] =
|
| // static
|
| void NetworkPortalDetectorImpl::Initialize(
|
| net::URLRequestContextGetter* url_context) {
|
| - if (NetworkPortalDetector::set_for_testing())
|
| + if (set_for_testing())
|
| return;
|
| - CHECK(!NetworkPortalDetector::network_portal_detector())
|
| + CHECK(!network_portal_detector())
|
| << "NetworkPortalDetector was initialized twice.";
|
| - NET_LOG(EVENT) << "NetworkPortalDetectorImpl::Initialize()";
|
| - if (base::CommandLine::ForCurrentProcess()->HasSwitch(::switches::kTestType))
|
| - set_network_portal_detector(new NetworkPortalDetectorStubImpl());
|
| - else
|
| - set_network_portal_detector(new NetworkPortalDetectorImpl(url_context));
|
| + NET_LOG(EVENT) << "NetworkPortalDetectorImpl::Initialize";
|
| + if (base::CommandLine::ForCurrentProcess()->HasSwitch(
|
| + ::switches::kTestType)) {
|
| + set_network_portal_detector(new NetworkPortalDetectorStub());
|
| + } else {
|
| + set_network_portal_detector(
|
| + new NetworkPortalDetectorImpl(url_context, true));
|
| + }
|
| }
|
|
|
| NetworkPortalDetectorImpl::NetworkPortalDetectorImpl(
|
| - const scoped_refptr<net::URLRequestContextGetter>& request_context)
|
| - : state_(STATE_IDLE),
|
| - test_url_(CaptivePortalDetector::kDefaultURL),
|
| - enabled_(false),
|
| + const scoped_refptr<net::URLRequestContextGetter>& request_context,
|
| + bool create_notification_controller)
|
| + : test_url_(CaptivePortalDetector::kDefaultURL),
|
| strategy_(PortalDetectorStrategy::CreateById(
|
| PortalDetectorStrategy::STRATEGY_ID_LOGIN_SCREEN,
|
| this)),
|
| - last_detection_result_(CAPTIVE_PORTAL_STATUS_UNKNOWN),
|
| - same_detection_result_count_(0),
|
| - no_response_result_count_(0),
|
| weak_factory_(this) {
|
| NET_LOG(EVENT) << "NetworkPortalDetectorImpl::NetworkPortalDetectorImpl()";
|
| captive_portal_detector_.reset(new CaptivePortalDetector(request_context));
|
|
|
| - notification_controller_.set_retry_detection_callback(base::Bind(
|
| - &NetworkPortalDetectorImpl::RetryDetection, base::Unretained(this)));
|
| + if (create_notification_controller) {
|
| + notification_controller_.reset(
|
| + new NetworkPortalNotificationController(this));
|
| + notification_controller_->set_retry_detection_callback(
|
| + base::Bind(&NetworkPortalDetectorImpl::RetryDetection,
|
| + weak_factory_.GetWeakPtr()));
|
| + }
|
|
|
| registrar_.Add(this,
|
| chrome::NOTIFICATION_LOGIN_PROXY_CHANGED,
|
| @@ -337,14 +343,14 @@ void NetworkPortalDetectorImpl::SetStrategy(
|
| }
|
|
|
| void NetworkPortalDetectorImpl::OnLockScreenRequest() {
|
| - notification_controller_.CloseDialog();
|
| + if (notification_controller_)
|
| + notification_controller_->CloseDialog();
|
| }
|
|
|
| void NetworkPortalDetectorImpl::DefaultNetworkChanged(
|
| const NetworkState* default_network) {
|
| DCHECK(CalledOnValidThread());
|
|
|
| - notification_controller_.DefaultNetworkChanged(default_network);
|
| if (!default_network) {
|
| NET_LOG(EVENT) << "Default network changed: None";
|
|
|
| @@ -354,7 +360,7 @@ void NetworkPortalDetectorImpl::DefaultNetworkChanged(
|
|
|
| CaptivePortalState state;
|
| state.status = CAPTIVE_PORTAL_STATUS_OFFLINE;
|
| - OnDetectionCompleted(NULL, state);
|
| + OnDetectionCompleted(nullptr, state);
|
| return;
|
| }
|
|
|
| @@ -608,7 +614,6 @@ void NetworkPortalDetectorImpl::NotifyDetectionCompleted(
|
| const CaptivePortalState& state) {
|
| FOR_EACH_OBSERVER(
|
| Observer, observers_, OnPortalDetectionCompleted(network, state));
|
| - notification_controller_.OnPortalDetectionCompleted(network, state);
|
| }
|
|
|
| bool NetworkPortalDetectorImpl::AttemptTimeoutIsCancelledForTesting() const {
|
|
|