***
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 current code only capitalizes the "keyName" and not the
"modifier.key" property. As such the capitalization gets lost,
because in "event.createKeyboardEventDictionary_()" the
"modifier.key" property gets precedence over "keyName".
To not have to capitalize both at this level, it's better to move
this code directly into "event.createKeyboardEventDictionary_()".
This also makes the method "event.sendSingleKey()" useless, so it
can be removed.
--HG--
extra : rebase_source : 44c69c8856a64ed5aa6f0eac35425e6b2a161ef1
As already mentioned in the comment above the code it is all
done automatically by "event.synthesizeKey()".
--HG--
extra : rebase_source : 4acf138b68be6c13eac6d42d9c1568beb7ad8866
Until now we only supported the internal Unicode to virtual
key mapping at the standard and left location of the keyboard.
This patch adds all the remaining special keys which are
located at the right side and in the numpad area.
This mapping table is somewhat equivalent to the normalized
key translation, but is using the "VK_" prefix.
--HG--
extra : rebase_source : 69030a613fc33e6e3b87eabc44281981c84ee0d7
The global "window" object is mostly a left-over from the copy
of event.js from EventUtils.js, which was included as subscript.
But for Javascript modules, and frame scripts it is not available.
--HG--
extra : rebase_source : 56744e1483f03102c3b930b380db19f0d783ea4e
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
This was done using the following script:
37e3803c7a/processors/chromeutils-import.jsm
MozReview-Commit-ID: 1Nc3XDu0wGl
--HG--
extra : source : 12fc4dee861c812fd2bd032c63ef17af61800c70
extra : intermediate-source : 34c999fa006bffe8705cf50c54708aa21a962e62
extra : histedit_source : b2be2c5e5d226e6c347312456a6ae339c1e634b0
This was done using the following script:
37e3803c7a/processors/chromeutils-import.jsm
MozReview-Commit-ID: 1Nc3XDu0wGl
--HG--
extra : source : 12fc4dee861c812fd2bd032c63ef17af61800c70
This was done using the following script:
37e3803c7a/processors/chromeutils-import.jsm
MozReview-Commit-ID: 1Nc3XDu0wGl
--HG--
extra : rebase_source : c004a023389f1f6bf3d2f3efe93c13d423b23ccd
Instead of generating custom focus events when interacting with elements,
we can run the HTMLElement.focus() function will do the correct thing.
Before this patch we only simulated focus events, whereas this
patch will actually focus the element.
MozReview-Commit-ID: IoBV2ngqOA5
--HG--
extra : rebase_source : c133a8ac7fc91dfa373a9d8adbc3f30d2441c46d
This makes more sense with the UIEvent spec and it should fix
intermittent failures caused by extra dblclick events that arise
from different tests polluting each other's state.
For the wdspec actions tests, the `test_actions_page`
fixture is function-scoped, so the page is reloaded between
each subtest.
MozReview-Commit-ID: HxPbMzYeXIV
--HG--
extra : rebase_source : d1e5da2b2e53475beab513c2159a990a17a373cf
As part of the focussing steps we subsequently need to blur the
element after a focus.
MozReview-Commit-ID: xyCcmqeOpO
--HG--
extra : rebase_source : 6645d354841a67730f2cfd89f59af390bb19691e
Each call to sendKeysToElement should go through the interaction
module, and never by directly calling event.sendKeysToElement. This
will make sure that keyboard interactability checks will always be
performed, even for chrome scope like alerts or modal dialogs.
MozReview-Commit-ID: GoDKjMsNZsq
--HG--
extra : rebase_source : c305c748e68e60abd01dab37d00a7e3aff7d3d64
Various fixes to make the generated API documentation from
testing/marionette somewhat easier to read.
MozReview-Commit-ID: F9duuQoOYBt
--HG--
extra : rebase_source : 3ade69773ceba42826aedef05b1371240b51cf82
In particular, XPCNativeWrapper should probably be made available
by default.
MozReview-Commit-ID: E1oYFyApbLi
--HG--
extra : rebase_source : 4e27ad6882bd4e43dadc97d4fd2a186e01510dfd
Instead of importing everything from the testing/marionette/error.js
module into the global scope, we need to be selective about what symbols
we want.
MozReview-Commit-ID: HZDAS0bs0GD
--HG--
extra : rebase_source : 14a300bb2cedc0716168d50846755a6faed83012
The underlying code that this method calls from nsIDOMWindowUtils
was removed and has not caused issues in here. This is dead code.
MozReview-Commit-ID: K245et5SmxJ
--HG--
extra : rebase_source : f5345219b9e9ae9299a1884c3424f2d8bfdf3d20