/* 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; int32_t preferredAction; }; [ChildImpl=virtual, ParentImpl=virtual] sync 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