Commit Graph

613074 Commits

Author SHA1 Message Date
Andreea Pavel
2b539c7b7e Merge autoland to mozilla-central. a=merge 2018-09-11 00:58:48 +03:00
Brad Werth
ab814002d3 Bug 1414597 Part 2: Add a test that nodes in XUL documents can be inspected, including after reload. r=jdescottes
Depends on D4495

Differential Revision: https://phabricator.services.mozilla.com/D4799

--HG--
extra : moz-landing-system : lando
2018-09-10 19:16:13 +00:00
Brad Werth
f6fd1a0004 Bug 1414597: Fix devtools inspector load events to correctly listen to XUL documents. r=ochameau
Differential Revision: https://phabricator.services.mozilla.com/D4495

--HG--
extra : moz-landing-system : lando
2018-09-10 19:20:01 +00:00
Chris Manchester
e7c71ddca8 Bug 1487505 - Prompt user to run tup init in an appropriate location when building an objdir outside of the srcdir in tup. r=mshal
Differential Revision: https://phabricator.services.mozilla.com/D4808

--HG--
extra : moz-landing-system : lando
2018-09-10 18:40:42 +00:00
Andrea Marchesini
774bf5cc26 Bug 1489844 - Port DOMPrefs to StaticPrefs - part 27 - dom.worker.canceling.timeoutMilliseconds, r=ehsan 2018-09-10 20:36:18 +02:00
Andrea Marchesini
7f5b4be48c Bug 1489844 - Port DOMPrefs to StaticPrefs - part 26 - browser_dom_window_dump_enabled, r=ehsan 2018-09-10 20:36:18 +02:00
Andrea Marchesini
9fb73897b2 Bug 1489844 - Port DOMPrefs to StaticPrefs - part 25 - Renaming macros, r=ehsan 2018-09-10 20:36:18 +02:00
Andrea Marchesini
7b40fcb2a2 Bug 1489844 - Port DOMPrefs to StaticPrefs - part 24 - dom_performance_enable_scheduler_timing, r=ehsan 2018-09-10 20:36:18 +02:00
Andrea Marchesini
53323036ee Bug 1489844 - Port DOMPrefs to StaticPrefs - part 23 - dom.script_loader.binast_encoding.enabled, r=ehsan 2018-09-10 20:36:17 +02:00
Andrea Marchesini
194f006ba9 Bug 1489844 - Port DOMPrefs to StaticPrefs - part 22 - dom.indexedDB.storageOption.enabled, r=ehsan 2018-09-10 20:36:17 +02:00
Andrea Marchesini
a08ebce8d8 Bug 1489844 - Port DOMPrefs to StaticPrefs - part 21 - dom.enable_performance_observer, r=ehsan 2018-09-10 20:36:17 +02:00
Andrea Marchesini
841dd1282e Bug 1489844 - Port DOMPrefs to StaticPrefs - part 20 - devtools.enabled, r=ehsan 2018-09-10 20:36:17 +02:00
Andrea Marchesini
7de64f2060 Bug 1489844 - Port DOMPrefs to StaticPrefs - part 19 - privacy.resistFingerprinting.autoDeclineNoUserInputCanvasPrompts, r=ehsan 2018-09-10 20:36:17 +02:00
Andrea Marchesini
f7d3352ce2 Bug 1489844 - Port DOMPrefs to StaticPrefs - part 18 - privacy.resistFingerprinting, r=ehsan 2018-09-10 20:36:17 +02:00
Andrea Marchesini
fda9223d0e Bug 1489844 - Port DOMPrefs to StaticPrefs - part 17 - dom.fetchObserver.enabled, r=ehsan 2018-09-10 20:36:17 +02:00
Andrea Marchesini
82b6a8da30 Bug 1489844 - Port DOMPrefs to StaticPrefs - part 16 - dom.netinfo.enabled, r=ehsan 2018-09-10 20:36:17 +02:00
Andrea Marchesini
c47168b4b7 Bug 1489844 - Port DOMPrefs to StaticPrefs - part 15 - dom.webkitBlink.dirPicker.enabled, r=ehsan 2018-09-10 20:36:16 +02:00
Andrea Marchesini
7a7da121dc Bug 1489844 - Port DOMPrefs to StaticPrefs - part 14 - gfx.offscreencanvas.enabled, r=ehsan 2018-09-10 20:36:16 +02:00
Andrea Marchesini
54cc64fa25 Bug 1489844 - Port DOMPrefs to StaticPrefs - part 13 - dom.streams.enabled, r=ehsan 2018-09-10 20:36:16 +02:00
Andrea Marchesini
50429ea3ae Bug 1489844 - Port DOMPrefs to StaticPrefs - part 12 - dom.push.enabled, r=ehsan 2018-09-10 20:36:16 +02:00
Andrea Marchesini
eb04a59fb8 Bug 1489844 - Port DOMPrefs to StaticPrefs - part 11 - dom.promise_rejection_events.enabled, r=ehsan 2018-09-10 20:36:16 +02:00
Andrea Marchesini
deaf03b28e Bug 1489844 - Port DOMPrefs to StaticPrefs - part 10 - dom.storageManager.enabled, r=ehsan 2018-09-10 20:36:16 +02:00
Andrea Marchesini
7cef10ddb5 Bug 1489844 - Port DOMPrefs to StaticPrefs - part 9 - dom.serviceWorkers.testing.enabled, r=ehsan 2018-09-10 20:36:16 +02:00
Andrea Marchesini
70d8e635cf Bug 1489844 - Port DOMPrefs to StaticPrefs - part 8 - dom.serviceWorkers.enabled, r=ehsan 2018-09-10 20:36:15 +02:00
Andrea Marchesini
ddda8d451e Bug 1489844 - Port DOMPrefs to StaticPrefs - part 7 - dom.webnotifications.requireinteraction.enabled, r=ehsan 2018-09-10 20:36:15 +02:00
Andrea Marchesini
e3c7a44eb3 Bug 1489844 - Port DOMPrefs to StaticPrefs - part 6 - dom.webnotifications.serviceworker.enabled, r=ehsan 2018-09-10 20:36:15 +02:00
Andrea Marchesini
857ed47a4a Bug 1489844 - Port DOMPrefs to StaticPrefs - part 5 - dom.webnotifications.enabled, r=ehsan 2018-09-10 20:36:15 +02:00
Andrea Marchesini
74d358af13 Bug 1489844 - Port DOMPrefs to StaticPrefs - part 4 - dom.performance.enable_user_timing_logging, r=ehsan 2018-09-10 20:36:15 +02:00
Andrea Marchesini
8288bddafb Bug 1489844 - Port DOMPrefs to StaticPrefs - part 3 - dom.caches.testing.enabled, r=ehsan 2018-09-10 20:36:15 +02:00
Andrea Marchesini
d26d5425d9 Bug 1489844 - Port DOMPrefs to StaticPrefs - part 2 - dom.caches.enabled, r=ehsan 2018-09-10 20:36:15 +02:00
Andrea Marchesini
84efbc6ccd Bug 1489844 - Port DOMPrefs to StaticPrefs - part 1 - canvas_imagebitmap_extensions_enabled, r=ehsan 2018-09-10 20:36:14 +02:00
Jared Wein
ee03acf81a Bug 1489629 - Adjust the size of the error images, sizing and position of text, and add footer branding to the error pages. r=sfoster
Differential Revision: https://phabricator.services.mozilla.com/D5320

--HG--
extra : moz-landing-system : lando
2018-09-10 18:16:55 +00:00
Robert Longson
63cb9a2572 Bug 1482196 - Increase minimum clang version to 3.9 r=froydnj 2018-09-10 18:59:07 +01:00
Daniel Holbert
b93eae7de2 Bug 1486086: Switch to use logical axes, for stale physical-axis-based flex-item border/padding calculation. r=mats
Differential Revision: https://phabricator.services.mozilla.com/D4974

--HG--
extra : moz-landing-system : lando
2018-09-10 17:40:41 +00:00
Kirk Steuber
e3df1a80e2 Bug 1489607 - Make nsXREDirProvider::GetInstallHash consistent with the NSIS CityHash plugin r=mossop
I would like to migrate the update directory to use a version of the hash consistent with what our installer generates as part of the work already being done to migrate the update directory (Bug 1458314).

This patch is a bit of a shim to ensure that no one uses the newly-exposed nsXREDirProvider::GetInstallHash to get the *old* value before Bug 1458314 lands. This way new callers will get a value that is stable, but also consistent with the hash generated by the installer.

Differential Revision: https://phabricator.services.mozilla.com/D5334

--HG--
extra : moz-landing-system : lando
2018-09-10 17:35:23 +00:00
Jim Chen
4801fffa0d Bug 1489569 - 2. Don't blur window on temporary focus loss; r=droeh
When the window temporarily loses focus (e.g. due to auto-fill popups),
don't call setFocus(false). Otherwise, we can end up disrupting user
interaction (e.g. causing the auto-fill popup to flicker). Only call
setFocus(false) when we are reasonably sure the focus loss is not
temporary.

Differential Revision: https://phabricator.services.mozilla.com/D5329
2018-09-10 12:42:35 -04:00
Jim Chen
b5db081f11 Bug 1489569 - 1. Avoid unnecessary setActive calls; r=droeh
To avoid unnecessary setActive calls, only call it when we have a
display and when the display acquires or releases a surface. In other
cases, we can delay the setActive call until later.

Differential Revision: https://phabricator.services.mozilla.com/D5328
2018-09-10 12:42:34 -04:00
Daniel Varga
67945694c1 Merge mozilla-central to mozilla-inbound 2018-09-10 19:23:14 +03:00
Daniel Varga
9e7995b3c3 Merge mozilla-inbound to mozilla-central. a=merge 2018-09-10 19:14:55 +03:00
Johann Hofmann
bf36bd3839 Bug 1438402 - Fix intermittent browser_csp_block_all_mixedcontent.js. r=nhnt11
Differential Revision: https://phabricator.services.mozilla.com/D5406

--HG--
extra : moz-landing-system : lando
2018-09-10 13:53:19 +00:00
Daniel Varga
2ddac974c2 Backed out changeset c80bc4f44b7f (bug 1489996) for bc failures in browser/extensions/pdfjs/test/browser_pdfjs_main.js 2018-09-10 16:43:52 +03:00
Julian Seward
4d15d8f78a Bug 1471500 - Complete initial implementation of the bulk-memory proposal. Part 10 of 10. r=bbouvier.
Test cases for new instructions {mem,table}.{init,drop} and table.copy.

* New file passive-segs-nonboundary.js:
  This tests the new instructions for "normal" (non-boundary) cases enough to
  be reasonably convinced that the implementation works.  It does not test any
  exceptional/boundary cases, except for the case where we attempt to call
  through an empty table slot.

  This file also incorporates tests for memory.copy and memory.fill that were
  previously in memory-bulk.js, which, in turn, has been removed.

* New file passive-segs-boundary.js:
  This tests boundary / validation cases for the new instructions.  Almost all
  tests wind up throwing some kind of exception.

--HG--
extra : rebase_source : ec91c595c2f9af92ac440134cf965c736b90d03a
2018-09-10 15:09:33 +02:00
Julian Seward
fe52931272 Bug 1471500 - Complete initial implementation of the bulk-memory proposal. Part 9 of 10. r=bbouvier.
This patch adds support for: {memory,table}.{init,drop} and table.copy, in
the areas of code generation and implementation.  Code generation is trivial
and done simply by creating calls to the following new functions:

  Instance::memInit Instance::memDrop
  Instance::tableInit Instance::tableDrop Instance::tableCopy

For both Ion and Baseline, the actual code generation for memory- vs table-
cases is so similar that a single function is used for both cases, and given
only a bool to differentiate them (eg EmitMemOrTableDrop, etc).

The new Instance::{mem,table}::Init functions then pull out the relevant
segment data (via instance->code()) and initialisation data (directly
attached to the instance) [per patches 4 and 5 respectively] and perform the
required updates.

All of this is mechanical and in line with existing code.

--HG--
extra : rebase_source : 4cf3cc503fe7fe24b4995fe51383851e84bf99fa
2018-09-10 15:09:33 +02:00
Julian Seward
18589f31f3 Bug 1471500 - Complete initial implementation of the bulk-memory proposal. Part 8 of 10. r=lth.
This patch adds a general mechanism that allows the Wasm compilers and
verifier to handle situations where the correctness of some constructions seen
in the byte stream cannot be determined until further along in the byte stream
-- in effect, forward references.  It then uses this mechanism to check data
segment indices that appear in the instruction section (resulting from
memory.{drop,init} instructions) as the number of data sections will not be
known until after the code section.

* new struct DeferredValidationState, which holds whatever state is required

* new type ExclusiveDeferredValidationState, needed because
  DeferredValidationState is shared between compilation threads and is mutable

* the new DeferredValidationState lives in class ModuleGenerator, since that
  is really the running state for the compilation of a given module.

* a reference to the DeferredValidationState is added to OpIter, so that the
  iterator can update the state as it visits instructions.

* consequently, there is a bunch of plumbing (extra parameters) to get a
  reference to the DeferredValidationState to places where an OpIter has to be
  created.

* also, CompileTask acquires a reference to the DeferredValidationState, as
  there is no other way to get hold of it in
  wasm::ExecuteCompileTaskFromHelperThread.

* when iteration is finished, we call
  DeferredValidation::performDeferredValidation so as to perform any final
  checks.  This takes a const ModuleEnvironment& parameter, so that it can
  crosscheck the deferred state against information collected in the
  environment.

* compilation runs use the DeferredValidationState in the ModuleGenerator. But
  pure validation runs (wasm::Validate) have no associated ModuleGenerator.
  So it simply creates its own DeferredValidationState on the stack and uses
  that.

Although at first it seems plausible to add this mutable shared state to
CompileTaskState, that is not so attractive because it means

* plumbing that into the core of the compilers.  It contains information about
  task management that has nothing to do with the details of compilation.

* there's no way to pull out the deferred validation state into its own type
  without using a different lock than for CompileTaskState.  In other words,
  there appears to be no way to go from an ExclusiveData<CompileTaskState> to
  an ExclusiveData<some field of CompileTaskState>.

In terms of the actual deferred checking added:

* data segment indices seen in memory.{drop,init} instructions are noted in
  the running state.  At least, the highest value is noted, along with its
  bytecode offset.  That way, if any index exceeds the number of data sections
  (discovered later), we can reject the module and issue a suitable error
  message.  The message will be for the highest offending value rather than
  the first appearance of an offending value, but that is presumably good
  enough.

--HG--
extra : rebase_source : dd60f21edc124361109e7b8d1ebe5faec4e9b058
2018-09-10 15:09:33 +02:00
Julian Seward
2af9e38dfb Bug 1471500 - Complete initial implementation of the bulk-memory proposal. Part 7 of 10. r=bbouvier.
This patch adds support for: {memory,table}.{init,drop} and table.copy, in
the areas of parsing, AST representation, binary reading/iteration and
validation (pipeline stages up to but not including code generation).  This
is mechanical and in line with existing code.

--HG--
extra : rebase_source : de483c851dce723bb6618d24ac35ba1c05de0721
2018-09-10 15:09:32 +02:00
Julian Seward
4c79286011 Bug 1471500 - Complete initial implementation of the bulk-memory proposal. Part 6 of 10. r=bbouvier.
This changes classes ElemSegment and DataSegment so that passive segments
can be represented.  The basic change is to change the type of the |offset|
field from InitExpr to Maybe<InitExpr>, with Nothing denoting a passive
segment, and rename it to |offsetIfActive|.

The relevant AST types are changed similarly, along with the parsing and
validation code.

There's a new enum class InitializerKind to encapsulate the binary encoding
changes, per the bulk-memory/lazy-initialiser proposal.

Module::initSegments, when processing segments, is changed so as to skip
passive segments (since those must be deferred till run time).  It also uses
the new helper ComputeWasmCallee from the previous patch in the series, to
compute initialisation values for active element segments.

This patch also adds code to create the {Elem,Data}SegmentInitVectors for
passive data and element segments at instantiation time.  This is done in
Instance::init.  For memory.init, that means copying initialising bytes from
the bytecode image.  For table.init, a new helper function ComputeWasmCallee
computes the (entry point, instance pointer) pairs.

ComputeWasmCallee is not new code.  It merely encapsulates existing logic that
would otherwise have to be duplicated for active and passive table
initialisers.  It is called from Instance::initSegments, where it processes
active element segments, and Instance::init, where it processes passive
element segments.

--HG--
extra : rebase_source : 4c2c271a412d2a1051987ba0eee72bf66b0d7123
2018-09-10 15:09:32 +02:00
Julian Seward
86b79103eb Bug 1471500 - Complete initial implementation of the bulk-memory proposal. Part 5 of 10. r=bbouvier.
At run time, the implementation of {memory,table}.init needs to know the
actual bytes to be copied to complete the required initialisations, for
passive initialisers.  It seems simplest to compute them exactly at
instantiation time, and have the computed data owned by the instance.

This also means it is possible for that data to be released by
{memory,table}.drop, independently of all other instances.

This patch adds new types DataSegmentInit, ElemSegmentInit,
DataSegmentInitVector, and ElemSegmentInitVector to hold this data.  They are
explained in detail in a comment in WasmTypes.h.

For a data segment, the initialising values for a memory are merely bytes, but
for a table it is more complex -- a pair of (entry point, instance pointer).
This patch also adds a type WasmCallee to encapsulate that.

--HG--
extra : rebase_source : adaee69ee3662432bd2fc6e9924b8ce8093a7a46
2018-09-10 15:09:32 +02:00
Julian Seward
84c591be8c Bug 1471500 - Complete initial implementation of the bulk-memory proposal. Part 4 of 10. r=bbouvier.
This patch moves |const DataSegmentVector dataSegments_| and |const
ElemSegmentVector elemSegments_| from class Module to class Code, so as to
make their lifetimes at least as long as that of any instance derived from the
originating module.  That is because they need to be reachable from an
Instance, in turn because they need to be consulted at runtime by the
implementation of {memory,table}.{init,drop}.

The change is mostly mechanical.  Functions that had to change include:

* "sizeOf" memory reporting functions

* serialisation/deserialisation functions

The only complication is in Module::instantiate.  In the case where
debugging is active, the resulting instantiation cannot share code with
other instantiations of the same module, and many structures are cloned.
This patch accordingly adds cloning of the data segments (easy) and the
element segments (not so easy) since ElemSegment has no copy constructor.

--HG--
extra : rebase_source : 3e3c74eefc04a742eed1606161ac2c7088870b3e
2018-09-10 15:09:32 +02:00
Julian Seward
7de5bc3b8e Bug 1471500 - Complete initial implementation of the bulk-memory proposal. Part 3 of 10. r=bbouvier.
Some small changes to class Table:

* Table::set no longer takes an |Instance&| but rather a |const Instance*|.
  This because we now need to call Table::set at run time, from
  Instance::tableInit, at which point we only have an Instance* available, not
  an Instance&.

* There's a new method Table::copy, which copies elements.  Used to
  implement Instance::tableCopy.

--HG--
extra : rebase_source : 0e3ad6c6a2605b34d16742da4cb9177f0eeba1e0
2018-09-10 15:09:32 +02:00
Julian Seward
4070b0e41a Bug 1471500 - Complete initial implementation of the bulk-memory proposal. Part 2 of 10. r=bbouvier.
No functional change.  Contains layout, naming and removal-of-duplicate-
expression changes to Instance::{memCopy,Fill} so as to be consistent with new
Instance:: functions added in patch 8 of this series.

The duplicated expression |CheckedU32(len - 1)| is lifted out into its own definition.

--HG--
extra : rebase_source : 5fcaccc472f7f9645221687441ebffef12e9acee
2018-09-10 15:09:32 +02:00