To allow Marionette to capture the content of OOP iframes, the
new Fission compatible screenshot API has to be used.
For callers requesting a read-back of the pixel data as
currently in the compositor/window, the 'drawWindow()'
method still has to be called.
Differential Revision: https://phabricator.services.mozilla.com/D40654
--HG--
extra : moz-landing-system : lando
This moves all the screenshot related code from the framescript to
the parent process, so that canvas.js is no longer called from
within a content process.
The remaining code in the framescript is only needed to compute
the dimensions of the screenshot, and from all the to highlight
elements.
This move is necessary to allow switching to the new drawSnapshot
API which only works from within the parent process.
Differential Revision: https://phabricator.services.mozilla.com/D40209
--HG--
extra : moz-landing-system : lando
The feature was used in the past to highlight broken elements for l10n
specific tests. Given that those tests don't exist anymore (for already
a long time) the highlight feature doesn't have to be kept alive.
Also it isn't covered by the WebDriver spec, and as such a custom feature
which is not worth keeping its code working. Especially with the Fission
work upcoming.
Differential Revision: https://phabricator.services.mozilla.com/D42823
--HG--
extra : moz-landing-system : lando
All dependencies are fixed, or no longer reproducible. As such both
flags can be re-enabled. Also reftests won't have to specify the
exactly same flags on its own anymore.
Differential Revision: https://phabricator.services.mozilla.com/D40395
--HG--
extra : moz-landing-system : lando
***
Bug 1514594: Part 3a - Change ChromeUtils.import to return an exports object; not pollute global. r=mccr8
This changes the behavior of ChromeUtils.import() to return an exports object,
rather than a module global, in all cases except when `null` is passed as a
second argument, and changes the default behavior not to pollute the global
scope with the module's exports. Thus, the following code written for the old
model:
ChromeUtils.import("resource://gre/modules/Services.jsm");
is approximately the same as the following, in the new model:
var {Services} = ChromeUtils.import("resource://gre/modules/Services.jsm");
Since the two behaviors are mutually incompatible, this patch will land with a
scripted rewrite to update all existing callers to use the new model rather
than the old.
***
Bug 1514594: Part 3b - Mass rewrite all JS code to use the new ChromeUtils.import API. rs=Gijs
This was done using the followng script:
https://bitbucket.org/kmaglione/m-c-rewrites/src/tip/processors/cu-import-exports.jsm
***
Bug 1514594: Part 3c - Update ESLint plugin for ChromeUtils.import API changes. r=Standard8
Differential Revision: https://phabricator.services.mozilla.com/D16747
***
Bug 1514594: Part 3d - Remove/fix hundreds of duplicate imports from sync tests. r=Gijs
Differential Revision: https://phabricator.services.mozilla.com/D16748
***
Bug 1514594: Part 3e - Remove no-op ChromeUtils.import() calls. r=Gijs
Differential Revision: https://phabricator.services.mozilla.com/D16749
***
Bug 1514594: Part 3f.1 - Cleanup various test corner cases after mass rewrite. r=Gijs
***
Bug 1514594: Part 3f.2 - Cleanup various non-test corner cases after mass rewrite. r=Gijs
Differential Revision: https://phabricator.services.mozilla.com/D16750
--HG--
extra : rebase_source : 359574ee3064c90f33bf36c2ebe3159a24cc8895
extra : histedit_source : b93c8f42808b1599f9122d7842d2c0b3e656a594%2C64a3a4e3359dc889e2ab2b49461bab9e27fc10a7
The WebDriver:TakeScreenshot command relied on the document element's
clientWidth/clientHeight, but should according to the WebDriver
specification use the viewport's dimensions.
Thanks-to: JinaJita <jitajina@gmail.com>
The WebDriver:TakeScreenshot command relied on the document element's
clientWidth/clientHeight, but should according to the WebDriver
specification use the viewport's dimensions.
Thanks-to: JinaJita <jitajina@gmail.com>
The Skia GFX backend limits the dimension of canvases to a maximum
of 32767 for the width and height.
--HG--
extra : rebase_source : b0e1f60cc2f0c1b83e7cb7551216323983cb3407
Calling Cu.importGlobalProperties immediately defines the import
properties and any prototypes that they require. Aside from CPU
overhead, this also tends to consume a lot of memory, especially
for objects with complex prototypes. And it does this once for
every global you call it in. This is especially a problem for
content processes, since we get this memory overhead in each and
every content process.
This patch moves Marionette to use the new
XPCOMUtils.defineLazyGlobalGetters so that symbols are constructed
only when actually needed.
MozReview-Commit-ID: 3RYWTcdO7FM
--HG--
extra : rebase_source : 0c450c8900e5de5446796b34ae4ab6bdf0fe9118
The WebDriver:TakeScreenshot command should return an invalid
argument error when the input is malformed.
MozReview-Commit-ID: HZFkq6QkWze
--HG--
extra : rebase_source : c44f42938df1e818926f38a608f13c94a3f7e2fc
This patch was autogenerated by my decomponents.py
It covers almost every file with the extension js, jsm, html, py,
xhtml, or xul.
It removes blank lines after removed lines, when the removed lines are
preceded by either blank lines or the start of a new block. The "start
of a new block" is defined fairly hackily: either the line starts with
//, ends with */, ends with {, <![CDATA[, """ or '''. The first two
cover comments, the third one covers JS, the fourth covers JS embedded
in XUL, and the final two cover JS embedded in Python. This also
applies if the removed line was the first line of the file.
It covers the pattern matching cases like "var {classes: Cc,
interfaces: Ci, utils: Cu, results: Cr} = Components;". It'll remove
the entire thing if they are all either Ci, Cr, Cc or Cu, or it will
remove the appropriate ones and leave the residue behind. If there's
only one behind, then it will turn it into a normal, non-pattern
matching variable definition. (For instance, "const { classes: Cc,
Constructor: CC, interfaces: Ci, utils: Cu } = Components" becomes
"const CC = Components.Constructor".)
MozReview-Commit-ID: DeSHcClQ7cG
--HG--
extra : rebase_source : d9c41878036c1ef7766ef5e91a7005025bc1d72b
Various fixes to make the generated API documentation from
testing/marionette somewhat easier to read.
MozReview-Commit-ID: F9duuQoOYBt
--HG--
extra : rebase_source : 3ade69773ceba42826aedef05b1371240b51cf82
The screenshot code in chrome scope is updated to use the generic capture module,
which is already used for content scope. By that change the code which captures
the canvas makes use of devicePixelRatio now. It means the screenshot will be
scaled depending on the screen configuration, eg. on Andoid this mostly 2.
MozReview-Commit-ID: EBKmJEKVXPQ
--HG--
extra : rebase_source : cd399eb3ee012516b218b9d1a5fd26422ebc9be0
The screenshot code in chrome scope is updated to use the generic capture module,
which is already used for content scope. By that change the code which captures
the canvas makes use of devicePixelRatio now. It means the screenshot will be
scaled depending on the screen configuration, eg. on Andoid this mostly 2.
MozReview-Commit-ID: EBKmJEKVXPQ
--HG--
extra : rebase_source : 3d177eeac4935660f43727a20445a39fe78a2c45
Errors thrown by takeScreenshot used to be silently ignored. When the
command started using the new dispatching technique in bug 1202663,
it was surfaced we do not support taking screen captures of SVG documents.
Since this is a requirement for Web Platform Tests, this patch corrects
the wrong assumptions about document body and document element.
This patch also significantly refactors the screen capture code, but
only uses the new implementation in contnent space, since some further
modifications are required to use it in chrome.
r=dburns
r=jgriffin
--HG--
extra : commitid : DdCIEpd5PEJ
extra : rebase_source : 7357010f992d7f995765c685000892cc59d9ec9a