Bug 1191230 added override lines with # characters to chrome manifests
for Windows.
So far, chrome manifests were handled with buildlist.py like in the
RecursiveMake backend, fed with Make variables. Without proper quoting,
those Make variables are just truncated by Make on the first # character,
and this results in mach build faster failing because of that.
However, the reason why chrome manifests were handled with buildlist.py
originally is that not all chrome manifest entries were known to the
FasterMake backend, but they now all are.
So instead of relying on Make variables and buildlist.py, we can now
rely on the newly added install manifests feature allowing to create files
with a given content.
This patch moves the SyncRunEvent logic from GLControllerSupport to
nsAppShell, as it could be useful elsewhere. This patch fixes a race
condition related to shutdown, where a deadlock could occur if Gecko
shuts down when another thread is waiting for a synchronous event to
finish running. This patch also fixes a crash on shutdown when we tried
to create a mutex after the deadlock detector has shut down.
When getting nsAppShell from another thread, there could be a race with
nsAppShell being destroyed on the main thread. This patch makes the raw
nsAppShell pointer only accessible from the main thread, and use a
static mutex to coordinate accessing nsAppShell from other threads.
This patch changes onAttachedToWindow in GeckoView, so that if we have
states that have been restored, we use those states for initialization
instead of creating new states (e.g. opening a new nsWindow). Because
the GLController instance is associated with the nsWindow instance, we
need to keep the GLController instance as part of our saved states. This
patch also adds a reattach method to GeckoView.Window, because
GeckoEditable needs to be notified when its target View changes.
This patch adds an implementation of onSaveInstanceState and
onRestoreInstanceState to GeckoView, so that when GeckoView is destroyed
and later recreated, we would properly save and restore necessary states
and JNI associations. The patch also fixes onDetachedFromWindow, so that
we keep the nsWindow if we saved states, and close the nsWindow if we
did not save states.
As GeckoViews get destroyed and recreated, we want to carry its states
across. In particular, we want to keep a reference to our GLController
instance, and keep the association with the native nsWindow instance.
GLContextEGL needs a widget in order to recreate its surface. This patch
adds a widget parameter to RenewSurface so that the compositor can pass
in its widget.
This patch makes GLContextProviderEGL create EGL surfaces through
nsWindow/nsIWidget on Android. nsWindow then calls GLController in Java
to actually create the surface.
GLController instances are associated with a particular nsWindow, rather
than a particular View. Therefore, we need to let GeckoView manage
GLController instances, as part of GeckoView's handling of saving and
restoring states.
One nsWindow will have one corresponding GLController, and using native
GLController methods instead of GeckoEvents lets us control the
compositor for each nsWindow separately.
GeckoViewSupport better reflects the purpose of the class and will match
the GLControllerSupport class that another patch is adding. This patch
also changes the way GeckoViewSupport is constructed in order to be more
encapsulating.
Right now, code that queues native calls through GeckoThread can
encounter a race condition, after the GeckoThread state changes but
before we flush the existing queued calls. In that case, the new call
will be made before existing queued calls are made, and the order of
calls is disrupted. This patch moves flushing existing calls to before
the state changes, to avoid this race condition.
Right now LayerView depends on geckoConnected being called by GeckoApp
or GeckoView during its initialization. However, we can get rid of it
and let LayerView handle the task itself. As part of this change, screen
depth overriding is moved to native code in nsAppShell.
This patch adds auto-generated bindings for LayerRenderer.Frame, and
uses the new bindings in nsWindow, in place of the old manual bindings
in AndroidJavaWrappers.
LibAV 0.8 produces rubbish floating point data. We had restricted LibAV 0.8 to produce 16 bits audio instead, unfortunately some ubuntu version appears to have bumped the minor version.
The functions addSaturate() and subSaturate() are defined on the 8x16 and 16x8
integer SIMD types only.
Theee are no 32x4 variants defined in SIMD.js because current hardware doesn't
support it directly.
--HG--
extra : rebase_source : 876bd6ab47ccd007dd15d5b34948ebf33aca4f16
This is the right shift function that the SIMD.js spec requires. The old
shiftRightArithmeticByScalar() and shiftRightLogicalByScalar() functions will go
away.
These functions perform an arithmetic shift for signed types and a logical
shift for unsigned types.
Add support to Odin and Ion too, at least for the Int32x4 variant.
--HG--
extra : rebase_source : 7852f266a1ad505436c4c1607c17d542d81b2673
Fix a bug in ShiftRightArithmetic when the underlying Elem type is unsigned.
Need to cast to a signed type to so it sign-extends to int when shifting.
Implement both logical and arithmetic right shift implementations for both
signed and unsigned integers. This is needed to test our current implementation
where both signed and unsigned SIMD types have the two
shiftRightArithmeticByScalar() and shiftRightLogicalByScalar() functions.
Soon, shiftRightArithmeticByScalar() and shiftRightLogicalByScalar() will be
replaced by a single shiftRightByScalar() function whose behavior is dependent
on the signedness of the underlying type.
--HG--
extra : rebase_source : 00fa414d32592d8d923d2413a9d0f2082fb899d0
- Add new types UInt8x16, UInt16x8, UInt32x4 with all the boilerplate.
- Add corresponding conversion and bitcast functions to existing types.
- Add tests/ecma_7/SIMD tests for all new functions. Mostly boilerplate.
- Add full type coverage in ToSource.js. Fix existing SIMD types that were
broken.
- Use shared test vectors for all the 32x4 integer binary-op test cases.
- Fix a bug in the 32-bit multiplication reference implementation for Int32x4
and Uint32x4. A simple 'a*b' double multiplication loses precision to rounding
for some inputs.
--HG--
extra : rebase_source : 7268170538aae82766d661f3936657f368c6363f
The lists TypeDescriptorMethods and TypedObjectMethods are identical for all
SIMD types, so save a bit of memory and source code by sharing a single list.
--HG--
extra : rebase_source : 01f65e7eac8c8c99fb6c869206d75d2e5875002b
In the current SIMD.js spec, value conversions are only defined between types
with the same number of lanes:
Float32x4.fromInt32x4()
Float32x4.fromUInt32x4()
Int32x4.fromFloat32x4()
UInt32x4.fromFloat32x4()
Remove existing conversion operators between vectors with different numbers of
lanes:
Int32x4.fromFloat64x2()
Float32x4.fromFloat64x2()
Float64x2.fromInt32x4()
Float64x2.fromFloat32x4()
Add a static assertion to FuncConvert.
--HG--
extra : rebase_source : c7be47268c913134aa9b718000080e1d54a79f9f