servo/components/script/dom/webidls/BrowserElement.webidl
bors-servo 8255e74a61 Auto merge of #10081 - jdm:interfacepref, r=nox
Support controlling interface and member visibility via preferences

This was easier to throw together than per-attribute/method support, and it gets rid of some nonstandard properties from our globals.

Fixes #7626.

r? @Ms2ger

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/10081)
<!-- Reviewable:end -->
2016-05-02 11:35:38 -07:00

238 lines
7 KiB
Text

/* 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/. */
// https://developer.mozilla.org/en-US/docs/Web/API/Using_the_Browser_API
callback BrowserElementNextPaintEventCallback = void ();
//enum BrowserFindCaseSensitivity { "case-sensitive", "case-insensitive" };
//enum BrowserFindDirection { "forward", "backward" };
//dictionary BrowserElementDownloadOptions {
// DOMString? filename;
// DOMString? referrer;
//};
//dictionary BrowserElementExecuteScriptOptions {
// DOMString? url;
// DOMString? origin;
//};
[NoInterfaceObject]
interface BrowserElement {
};
dictionary BrowserElementSecurityChangeDetail {
// state:
// "insecure" indicates that the data corresponding to
// the request was received over an insecure channel.
//
// "broken" indicates an unknown security state. This
// may mean that the request is being loaded as part
// of a page in which some content was received over
// an insecure channel.
//
// "secure" indicates that the data corresponding to the
// request was received over a secure channel.
DOMString state;
// trackingState:
// "loaded_tracking_content": tracking content has been loaded.
// "blocked_tracking_content": tracking content has been blocked from loading.
DOMString trackingState;
// mixedState:
// "blocked_mixed_active_content": Mixed active content has been blocked from loading.
// "loaded_mixed_active_content": Mixed active content has been loaded.
DOMString mixedState;
boolean extendedValidation;
boolean trackingContent;
boolean mixedContent;
};
dictionary BrowserElementErrorEventDetail {
// https://developer.mozilla.org/en-US/docs/Web/Events/mozbrowsererror
// just requires a "type" field, but we also provide
// an optional human-readable description, and
// an optional machine-readable report (e.g. a backtrace for panics)
DOMString type;
DOMString description;
DOMString report;
};
dictionary BrowserElementLocationChangeEventDetail {
DOMString uri;
boolean canGoBack;
boolean canGoForward;
};
dictionary BrowserElementIconChangeEventDetail {
DOMString rel;
DOMString href;
DOMString sizes;
};
dictionary BrowserShowModalPromptEventDetail {
DOMString promptType;
DOMString title;
DOMString message;
DOMString returnValue;
// TODO(simartin) unblock() callback
};
BrowserElement implements BrowserElementCommon;
BrowserElement implements BrowserElementPrivileged;
[NoInterfaceObject]
interface BrowserElementCommon {
//[Throws,
// Pref="dom.mozBrowserFramesEnabled",
// CheckAnyPermissions="browser embed-widgets"]
//void setVisible(boolean visible);
//[Throws,
// Pref="dom.mozBrowserFramesEnabled",
// CheckAnyPermissions="browser embed-widgets"]
//DOMRequest getVisible();
//[Throws,
// Pref="dom.mozBrowserFramesEnabled",
// CheckAnyPermissions="browser embed-widgets"]
//void setActive(boolean active);
//[Throws,
// Pref="dom.mozBrowserFramesEnabled",
// CheckAnyPermissions="browser embed-widgets"]
//boolean getActive();
//[Throws,
// Pref="dom.mozBrowserFramesEnabled",
// CheckAnyPermissions="browser embed-widgets"]
//void addNextPaintListener(BrowserElementNextPaintEventCallback listener);
//[Throws,
// Pref="dom.mozBrowserFramesEnabled",
// CheckAnyPermissions="browser embed-widgets"]
//void removeNextPaintListener(BrowserElementNextPaintEventCallback listener);
};
[NoInterfaceObject]
interface BrowserElementPrivileged {
//[Throws,
// Pref="dom.mozBrowserFramesEnabled",
// CheckAnyPermissions="browser"]
//void sendMouseEvent(DOMString type,
// unsigned long x,
// unsigned long y,
// unsigned long button,
// unsigned long clickCount,
// unsigned long modifiers);
//[Throws,
// Pref="dom.mozBrowserFramesEnabled",
// Func="TouchEvent::PrefEnabled",
// CheckAnyPermissions="browser"]
//void sendTouchEvent(DOMString type,
// sequence<unsigned long> identifiers,
// sequence<long> x,
// sequence<long> y,
// sequence<unsigned long> rx,
// sequence<unsigned long> ry,
// sequence<float> rotationAngles,
// sequence<float> forces,
// unsigned long count,
// unsigned long modifiers);
[Throws,
Pref="dom.mozbrowser.enabled",
CheckAnyPermissions="browser"]
void goBack();
[Throws,
Pref="dom.mozbrowser.enabled",
CheckAnyPermissions="browser"]
void goForward();
[Throws,
Pref="dom.mozbrowser.enabled",
CheckAnyPermissions="browser"]
void reload(optional boolean hardReload = false);
[Throws,
Pref="dom.mozbrowser.enabled",
CheckAnyPermissions="browser"]
void stop();
//[Throws,
// Pref="dom.mozBrowserFramesEnabled",
// CheckAnyPermissions="browser"]
//DOMRequest download(DOMString url,
// optional BrowserElementDownloadOptions options);
//[Throws,
// Pref="dom.mozBrowserFramesEnabled",
// CheckAnyPermissions="browser"]
//DOMRequest purgeHistory();
//[Throws,
// Pref="dom.mozBrowserFramesEnabled",
// CheckAnyPermissions="browser"]
//DOMRequest getScreenshot([EnforceRange] unsigned long width,
// [EnforceRange] unsigned long height,
// optional DOMString mimeType="");
//[Throws,
// Pref="dom.mozBrowserFramesEnabled",
// CheckAnyPermissions="browser"]
//void zoom(float zoom);
//[Throws,
// Pref="dom.mozBrowserFramesEnabled",
// CheckAnyPermissions="browser"]
//DOMRequest getCanGoBack();
//[Throws,
// Pref="dom.mozBrowserFramesEnabled",
// CheckAnyPermissions="browser"]
//DOMRequest getCanGoForward();
//[Throws,
// Pref="dom.mozBrowserFramesEnabled",
// CheckAnyPermissions="browser"]
//DOMRequest getContentDimensions();
//[Throws,
// Pref="dom.mozBrowserFramesEnabled",
// CheckAllPermissions="browser input-manage"]
//DOMRequest setInputMethodActive(boolean isActive);
//[Throws,
// Pref="dom.mozBrowserFramesEnabled",
// CheckAllPermissions="browser nfc-manager"]
//void setNFCFocus(boolean isFocus);
//[Throws,
// Pref="dom.mozBrowserFramesEnabled",
// CheckAnyPermissions="browser"]
//void findAll(DOMString searchString, BrowserFindCaseSensitivity caseSensitivity);
//[Throws,
// Pref="dom.mozBrowserFramesEnabled",
// CheckAnyPermissions="browser"]
//void findNext(BrowserFindDirection direction);
//[Throws,
// Pref="dom.mozBrowserFramesEnabled",
// CheckAnyPermissions="browser"]
//void clearMatch();
//[Throws,
// Pref="dom.mozBrowserFramesEnabled",
// CheckAllPermissions="browser browser:universalxss"]
//DOMRequest executeScript(DOMString script,
// optional BrowserElementExecuteScriptOptions options);
};