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

Unified Diff: chrome/browser/extensions/api/networking_private/networking_private_api_chromeos.cc

Issue 219333002: Added method getCaptivePortalStatus to networkingPrivate extension. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebase. Created 6 years, 9 months 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
Index: chrome/browser/extensions/api/networking_private/networking_private_api_chromeos.cc
diff --git a/chrome/browser/extensions/api/networking_private/networking_private_api_chromeos.cc b/chrome/browser/extensions/api/networking_private/networking_private_api_chromeos.cc
index 091e564ed63cb1587927f3836a014812ae5c0ffe..564d035f6ae18915d5abc2210cc8e0bf99d2fb87 100644
--- a/chrome/browser/extensions/api/networking_private/networking_private_api_chromeos.cc
+++ b/chrome/browser/extensions/api/networking_private/networking_private_api_chromeos.cc
@@ -10,6 +10,7 @@
#include "base/command_line.h"
#include "chrome/browser/browser_process.h"
#include "chrome/browser/browser_process_platform_part_chromeos.h"
+#include "chrome/browser/chromeos/net/network_portal_detector.h"
#include "chrome/browser/chromeos/profiles/profile_helper.h"
#include "chrome/common/chrome_switches.h"
#include "chrome/common/extensions/api/networking_private.h"
@@ -31,6 +32,7 @@ namespace api = extensions::api::networking_private;
using chromeos::DBusThreadManager;
using chromeos::ManagedNetworkConfigurationHandler;
using chromeos::NetworkHandler;
+using chromeos::NetworkPortalDetector;
using chromeos::NetworkState;
using chromeos::NetworkStateHandler;
using chromeos::NetworkTypePattern;
@@ -688,3 +690,32 @@ void NetworkingPrivateGetWifiTDLSStatusFunction::Failure(
error_ = error_name;
SendResponse(false);
}
+
+////////////////////////////////////////////////////////////////////////////////
+// NetworkingPrivateGetCaptivePortalStatusFunction
+
+NetworkingPrivateGetCaptivePortalStatusFunction::
+ ~NetworkingPrivateGetCaptivePortalStatusFunction() {}
+
+bool NetworkingPrivateGetCaptivePortalStatusFunction::RunImpl() {
+ scoped_ptr<api::GetCaptivePortalStatus::Params> params =
+ api::GetCaptivePortalStatus::Params::Create(*args_);
+ EXTENSION_FUNCTION_VALIDATE(params);
+
+ // The |network_guid| parameter is storing the service path.
+ const std::string& service_path = params->network_guid;
+
+ NetworkPortalDetector* detector = NetworkPortalDetector::Get();
+ if (!detector) {
+ error_ = "Error.NotReady";
+ return false;
+ }
+
+ NetworkPortalDetector::CaptivePortalState state =
+ detector->GetCaptivePortalState(service_path);
+
+ SetResult(new base::StringValue(
+ NetworkPortalDetector::CaptivePortalStatusString(state.status)));
+ SendResponse(true);
+ return true;
+}

Powered by Google App Engine
This is Rietveld 408576698