DXR is a code search and navigation tool aimed at making sense of large projects. It supports full-text and regex searches as well as structural queries.

Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
/* 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 protocol PContent;

namespace mozilla {
namespace dom {

struct HandlerApp {
  nsString name;
  nsString detailedDescription;
};

struct HandlerInfo {
  nsCString type;
  bool isMIMEInfo;
  nsString description;
  bool alwaysAskBeforeHandling;
  nsCString[] extensions;
  HandlerApp preferredApplicationHandler;
  HandlerApp[] possibleApplicationHandlers;
  long preferredAction;
};

sync refcounted protocol PHandlerService
{
  manager PContent;

parent:
  sync FillHandlerInfo(HandlerInfo aHandlerInfoData,
                       nsCString aOverrideType)
      returns (HandlerInfo handlerInfoData);

  /*
   * Check if an OS handler exists for the given protocol scheme.
   */
  sync ExistsForProtocolOS(nsCString aProtocolScheme)
      returns (bool exists);

  /*
   * Check if a handler exists for the given protocol scheme. Check
   * the datastore first and then fallback to an OS handler check.
   */
  sync ExistsForProtocol(nsCString aProtocolScheme)
      returns (bool exists);

  sync Exists(HandlerInfo aHandlerInfo)
      returns (bool exists);
  sync GetTypeFromExtension(nsCString aFileExtension)
      returns (nsCString type);
  sync GetMIMEInfoFromOS(nsCString aMIMEType, nsCString aExtension)
      returns (nsresult rv, HandlerInfo handlerInfoData, bool found);
  sync GetApplicationDescription(nsCString aScheme)
      returns (nsresult rv, nsString description);
  async __delete__();
};


} // namespace dom
} // namespace mozilla