netwerk/base/nsICaptivePortalService.idl
author Andrew Osmond <aosmond@mozilla.com>
Fri, 17 Nov 2017 06:45:28 -0500
changeset 392351 b9a29d94ccac646c9336fa75e084bbc8581501ad
parent 323047 1eedf8ccdc1ef3980b6097d89cb3d665bd4b8d81
child 394698 ab96653f9122bb2ac5b8af25893df7f800bd71e0
permissions -rw-r--r--
Bug 1368776 - Part 15. Cache flags passed to ImageResource::GetImageContainerImpl for consistency. r=tnikkel When FLAG_HIGH_QUALITY_SCALING is used, we need to make sure we continue using that flag when we update the container. We should also use it for comparing whether or not an existing image container is equivalent.

/* 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.
 * 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.
 */
[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.
   * Will not do anything if called in the content process.
   */
  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;
};

%{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"

%}