1/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ 2/* This Source Code Form is subject to the terms of the Mozilla Public 3 * License, v. 2.0. If a copy of the MPL was not distributed with this file, 4 * You can obtain one at http://mozilla.org/MPL/2.0/. 5 */ 6 7callback BrowserElementNextPaintEventCallback = undefined (); 8 9enum BrowserFindCaseSensitivity { "case-sensitive", "case-insensitive" }; 10enum BrowserFindDirection { "forward", "backward" }; 11 12dictionary BrowserElementDownloadOptions { 13 DOMString? filename; 14 DOMString? referrer; 15}; 16 17dictionary BrowserElementExecuteScriptOptions { 18 DOMString? url; 19 DOMString? origin; 20}; 21 22interface mixin BrowserElement { 23}; 24 25BrowserElement includes BrowserElementCommon; 26BrowserElement includes BrowserElementPrivileged; 27 28interface mixin BrowserElementCommon { 29 [Throws, 30 Pref="dom.mozBrowserFramesEnabled", 31 ChromeOnly] 32 undefined addNextPaintListener(BrowserElementNextPaintEventCallback listener); 33 34 [Throws, 35 Pref="dom.mozBrowserFramesEnabled", 36 ChromeOnly] 37 undefined removeNextPaintListener(BrowserElementNextPaintEventCallback listener); 38}; 39 40interface mixin BrowserElementPrivileged { 41 [Throws, 42 Pref="dom.mozBrowserFramesEnabled", 43 ChromeOnly] 44 undefined sendMouseEvent(DOMString type, 45 unsigned long x, 46 unsigned long y, 47 unsigned long button, 48 unsigned long clickCount, 49 unsigned long modifiers); 50 51 [Throws, 52 Pref="dom.mozBrowserFramesEnabled", 53 Func="TouchEvent::PrefEnabled", 54 ChromeOnly] 55 undefined sendTouchEvent(DOMString type, 56 sequence<unsigned long> identifiers, 57 sequence<long> x, 58 sequence<long> y, 59 sequence<unsigned long> rx, 60 sequence<unsigned long> ry, 61 sequence<float> rotationAngles, 62 sequence<float> forces, 63 unsigned long count, 64 unsigned long modifiers); 65 66 [Throws, 67 Pref="dom.mozBrowserFramesEnabled", 68 ChromeOnly] 69 undefined goBack(); 70 71 [Throws, 72 Pref="dom.mozBrowserFramesEnabled", 73 ChromeOnly] 74 undefined goForward(); 75 76 [Throws, 77 Pref="dom.mozBrowserFramesEnabled", 78 ChromeOnly] 79 undefined reload(optional boolean hardReload = false); 80 81 [Throws, 82 Pref="dom.mozBrowserFramesEnabled", 83 ChromeOnly] 84 undefined stop(); 85 86 [Throws, 87 Pref="dom.mozBrowserFramesEnabled", 88 ChromeOnly] 89 DOMRequest download(DOMString url, 90 optional BrowserElementDownloadOptions options); 91 92 [Throws, 93 Pref="dom.mozBrowserFramesEnabled", 94 ChromeOnly] 95 DOMRequest purgeHistory(); 96 97 [Throws, 98 Pref="dom.mozBrowserFramesEnabled", 99 ChromeOnly] 100 DOMRequest getScreenshot([EnforceRange] unsigned long width, 101 [EnforceRange] unsigned long height, 102 optional DOMString mimeType=""); 103 104 [Throws, 105 Pref="dom.mozBrowserFramesEnabled", 106 ChromeOnly] 107 undefined zoom(float zoom); 108 109 [Throws, 110 Pref="dom.mozBrowserFramesEnabled", 111 ChromeOnly] 112 DOMRequest getCanGoBack(); 113 114 [Throws, 115 Pref="dom.mozBrowserFramesEnabled", 116 ChromeOnly] 117 DOMRequest getCanGoForward(); 118 119 [Throws, 120 Pref="dom.mozBrowserFramesEnabled", 121 ChromeOnly] 122 DOMRequest getContentDimensions(); 123 124 [Throws, 125 Pref="dom.mozBrowserFramesEnabled", 126 ChromeOnly] 127 undefined findAll(DOMString searchString, BrowserFindCaseSensitivity caseSensitivity); 128 129 [Throws, 130 Pref="dom.mozBrowserFramesEnabled", 131 ChromeOnly] 132 undefined findNext(BrowserFindDirection direction); 133 134 [Throws, 135 Pref="dom.mozBrowserFramesEnabled", 136 ChromeOnly] 137 undefined clearMatch(); 138 139 [Throws, 140 Pref="dom.mozBrowserFramesEnabled", 141 ChromeOnly] 142 DOMRequest executeScript(DOMString script, 143 optional BrowserElementExecuteScriptOptions options); 144 145 [Throws, 146 Pref="dom.mozBrowserFramesEnabled", 147 ChromeOnly] 148 DOMRequest getWebManifest(); 149 150}; 151