mirror of
https://github.com/servo/servo.git
synced 2025-06-09 17:13:24 +00:00
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 -->
238 lines
7 KiB
Text
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);
|
|
|
|
};
|