2014-10-14 01:34:03 +04:00
|
|
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
|
|
|
|
#include "nsISupports.idl"
|
|
|
|
|
|
|
|
[scriptable, uuid(b5fd5629-d04c-4138-9529-9311f291ecd4)]
|
|
|
|
interface nsICaptivePortalServiceCallback : nsISupports
|
|
|
|
{
|
|
|
|
/**
|
|
|
|
* Invoke callbacks after captive portal detection finished.
|
|
|
|
*/
|
|
|
|
void complete(in bool success, in nsresult error);
|
|
|
|
};
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Service used for captive portal detection.
|
2016-11-17 19:35:24 +03:00
|
|
|
* The service is only active in the main process. It is also available in the
|
|
|
|
* content process, but only to mirror the captive portal state from the main
|
|
|
|
* process.
|
2014-10-14 01:34:03 +04:00
|
|
|
*/
|
|
|
|
[scriptable, uuid(bdbe0555-fc3d-4f7b-9205-c309ceb2d641)]
|
|
|
|
interface nsICaptivePortalService : nsISupports
|
|
|
|
{
|
|
|
|
const long UNKNOWN = 0;
|
|
|
|
const long NOT_CAPTIVE = 1;
|
|
|
|
const long UNLOCKED_PORTAL = 2;
|
|
|
|
const long LOCKED_PORTAL = 3;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Called from XPCOM to trigger a captive portal recheck.
|
|
|
|
* A network request will only be performed if no other checks are currently
|
|
|
|
* ongoing.
|
2016-11-17 19:35:24 +03:00
|
|
|
* Will not do anything if called in the content process.
|
2014-10-14 01:34:03 +04:00
|
|
|
*/
|
|
|
|
void recheckCaptivePortal();
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Returns the state of the captive portal.
|
|
|
|
*/
|
|
|
|
readonly attribute long state;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Returns the time difference between NOW and the last time a request was
|
|
|
|
* completed in milliseconds.
|
|
|
|
*/
|
|
|
|
readonly attribute unsigned long long lastChecked;
|
|
|
|
};
|
2016-11-17 19:35:24 +03:00
|
|
|
|
|
|
|
%{C++
|
|
|
|
/**
|
|
|
|
* This observer notification will be emitted when the captive portal state
|
|
|
|
* changes. After receiving it, the ContentParent will send an IPC message
|
|
|
|
* to the ContentChild, which will set the state in the captive portal service
|
|
|
|
* in the child.
|
|
|
|
*/
|
|
|
|
#define NS_IPC_CAPTIVE_PORTAL_SET_STATE "ipc:network:captive-portal-set-state"
|
|
|
|
|
|
|
|
%}
|