The various harness addons and test related addons used by talos all need
to be signed before we can enforce addon signing. For now, signing will be
a manual process. See the following guide for more details:
https://wiki.mozilla.org/EngineeringProductivity/HowTo/SignExtensions
MozReview-Commit-ID: CKeOyuN4JJG
Failure to do this will result in the consumers of
nsIHttpChannel::GetReferrer() observing the wrong referrer. The test in this
patch shows the scenarios which would fail under such conditions.
I tested this via running fx_desktop_build.py with and without this patch and
compared self.config:
```
./scripts/fx_desktop_build.py --cfg
configs/builds/releng_base_linux_64_builds.py --custom-build-variant-cfg debug
--branch date --build-pool production --developer-run --dump-config
```
diff -pU 10 logs/localconfig_without_patch.json logs/localconfig_with_patch.json
here is the diff of the above:
http://people.mozilla.org/~jlund/update-channel-self-config.diff
MozReview-Commit-ID: J82rgamohTk
This is necessary in order to be able to open new tabs from the initial
browser window, since the initial browser window needs to have its
BrowserDOMWindow attribute set when it goes remote - and if it fires
before the onLoad handler in browser.js, the BrowserDOMWindow attribute
that's set on the XUL window (which gets copied over to the remote browser),
hasn't been set yet.
MozReview-Commit-ID: AYyFdyoX8g9
This introduces TalosContentProfiler.js, which can be used within content, and
TalosParentProfiler.js, which can be used inside the parent process.
MozReview-Commit-ID: 4L7rRuNALOy
Setting GRADLE_USER_HOME in this way ensures all Gradle invocations in
automation have the right flags, rather than just the ones we
remember.
MozReview-Commit-ID: IL53nZVsFuV
EventUtils.js previously allowed you to override the Window object
reference through passing it as an optional argument to its functions.
This change fixes certain uses of implicit globals that reside on Window.
MozReview-Commit-ID: EJT8iIs85ej
This change removes almost all the remaining uses of loadSubScript and
global scope pollution. The only remaining use is for common.js, which
is resolved by a later bug for evaluating scripts.
MozReview-Commit-ID: 96h0yLElauq
To simplify the dependency chain and reduce the number of duplicate
functions in Marionette, a number of functions have been removed from
interactions.js and added to elements.js. This makes them more easily
re-usable and works around a circular dependency issue.
MozReview-Commit-ID: TZc3VZzHqM
Through some very clever hacking of the arguments to each of the atoms,
we are able to contain this in a JS module: Atoms normally extract their
arguments directly from the function scoped `arguments' variable, but
by explicitly naming `window' as the last argument in the functions'
prototype we are able to set the `window' variable used inside.
This is obviously a big hack, but it encapsulates the atoms and we are
moving away from atoms in the long term.
MozReview-Commit-ID: KGO77fjRN2d
testing/marionette/sendkeys.js has been merged into the
new testing/marionette/event.js module, together with
testing/marionette/EventUtils.js.
There is a lot of functionality still left in this module that we can
probably remove, as it is not in use by Marionette.
MozReview-Commit-ID: GrjNuK9VPjp
Generally, Error prototypes that are not based on WebDriverError must
be wrapped so that they can be serialised across the AsyncMessageChannel.
MozReview-Commit-ID: EtkpEOBhrST
Due to a previous programming error, error.isError only recognised
the base Error prototype. It must also test for the other built-in
prototypes, such as TypeError et al.
MozReview-Commit-ID: HLkiOAg0Jl1
Before we go fixing endTime, we should add tests that activeDuration (which
endTime builds on) is being calculated correctly. (Spoiler: it wasn't, hence
parts 2 and 3 in this patch series.)
This patch just simplifies the keyframe-effect tests so that we don't have to
repeat default values. This makes the tests shorter, easier to scan, and
easier to understand what is being tested.
In some cases we still repeat the default values in order to indicate that
we're testing that we get a particular default value.
This already had review, landed, and got backed out in Bug 1247375.
The backout was just a precaution; this should work fine, and be
scheduled just like android-b2gdroid is scheduled.
MozReview-Commit-ID: C3I7HOrcfFf
Mochitest no longer passes in debug_args in via the commandline. Instead, it passes
them in via a marionette chrome script, meaning they no longer need to be escaped.
Since web-platform-tests still passes debug_args on the commandline, we can't simply
remove the feature entirely. Instead, just make mochitest ignore requiresEscapedArgs.
MozReview-Commit-ID: KBVviGpkvQS
We can now define a list of "tags" for a task. Specifying "-j <tag>"
in Try syntax will run all tasks having that tag.
MozReview-Commit-ID: Ih9Z0tRZ5VA
Firefox's automation currently tends to run all the jobs all the time.
It is wasteful to do this. For example, running ESLint when the commit
only changes a .cpp file adds no value.
This commit adds support for only running tasks when certain files
change. The new-style tasks introduced by the previous commit have been
taught a "when" dictionary property that defines conditions that should
hold for the task to be executed. We define a "file_patterns" list that
defines lists of mozpack path matching expressions that will be matched
against the set of files changed by the changesets relevant to the
changeset being built. The eslint task has been updated to only run if
files related to it change.
Because conditions may not be accurate, we add a CLI argument to ignore
conditions and force all would-be-filtered tasks to run.
MozReview-Commit-ID: 3OeBSKAQAeg
Currently, tasks are either "build" or "test" tasks. And "test" tasks
are dependent on "build" tasks, so they are effectively an extension of
"build" tasks.
Not everything is a "build" task. Not everything is associated with a
specific platform.
This commit introduces support for defining non-build "tasks" under the
"tasks" top-level element of a jobs YAML file. Interally, they are
treated as "build" tasks but are declared differently.
By default, all these tasks run.
The -j/--job argument has been added to the try syntax parser. It
specifies an opt-in list of these non-build tasks to run. By default, it
runs all of them.
The eslint-gecko "build" task has been moved to this new mechanism.
Documentation for the new task type have been added.
There is definitely some wonkiness in this implementation. For example,
there are references to "build_name," "build_type," and "build_product,"
which arguably are no longer relevant to generic tasks. However, they
appear to be so integrated into task processing (including route names)
that I'm a bit scared to change them.
MozReview-Commit-ID: BY219tLFb6Z
It is possible to hook up in-tree documentation to Sphinx. Convert the
one-off README.md to ReStructuredText and add it to the Sphinx docs.
I added a moz.build file under testing/ because I don't think it is
appropriate for the Sphinx directive to live in the root moz.build file.
MozReview-Commit-ID: 90tCb7mA63C
We're about to introduce a mechanism to influence which tasks run based
on what files change. To help debug what's happening, print out the list
of commits that influence the task selection.
MozReview-Commit-ID: Kfj2pf1PSIS
Over in bug 1247802 we deployed a new JSON web API on hg.mozilla.org
that returns JSON metadata for changesets that are relevant for build
automation. It returns a superset of what is returned by the pushlog
JSON API. So we switch to it.
MozReview-Commit-ID: 6X3NANo1mgq
Before, we attempted to build and query a URL that potentially had
"None" in it. This printed some wonky messages in the log and may have
contributed to added latency due to the HTTP request that was doomed to
fail.
MozReview-Commit-ID: JrR5PK33vCn
requests should *always* be used for performing HTTP requests because it
has a better API *and* has sane security defaults compared to the HTTP
request APIs in the Python standard library. Although, Python 2.7.9+
does have slightly saner defaults in the standard library. I still trust
requests more.
MozReview-Commit-ID: GqohpfYYGBw
This defines a few additional globals but also turns on the browser environment
for everything in browser and toolkit. This may lead to some false negatives
but we have lots of code that runs in a browser context so in the name of
getting rules turned on I think this is a useful step.
MozReview-Commit-ID: BdWouZGK6d