Source code

Revision control

Copy as Markdown

Other Tools

/* 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