Fixes #8544 No test yet. Is there a way to mock a https connection? Also, I wish I could use the `HTTPSState` enum instead of a `String` when calling `trigger_mozbrowser_event` (https://github.com/servo/servo/compare/master...paulrouget:securitychange?expand=1#diff-30a18e04d7e0b66aafdf192e416cad44R306) but that would require `constellation_msg.rs` to know about `HTTPSState`, which is defined in `document.rs`, which would add a dependency to `components/msg`. I could define `HTTPSState` somewhere else maybe? Or maybe it's fine to use a `String`. But then, should I use the HTTPSState strings (`"modern/deprecated/none"`) or the mozbrowser strings (`"secure/insecure/broken"`) (as it is now) Source-Repo: https://github.com/servo/servo Source-Revision: 3d63f09361afa80b9d5c4f6b192c9bd8936094b7
224 lines
6.6 KiB
Plaintext
224 lines
6.6 KiB
Plaintext
/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
|
/* 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 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.mozBrowserFramesEnabled",
|
|
CheckAnyPermissions="browser"]
|
|
void goBack();
|
|
|
|
[Throws,
|
|
Pref="dom.mozBrowserFramesEnabled",
|
|
CheckAnyPermissions="browser"]
|
|
void goForward();
|
|
|
|
[Throws,
|
|
Pref="dom.mozBrowserFramesEnabled",
|
|
CheckAnyPermissions="browser"]
|
|
void reload(optional boolean hardReload = false);
|
|
|
|
[Throws,
|
|
Pref="dom.mozBrowserFramesEnabled",
|
|
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);
|
|
|
|
};
|