On a CLOSED TREE
I don't understand why I didn't see this in local testing or try
builds, but I didn't. Simple enough: we now load a distribution from
/data/data as a matter of course, which means that tests that install
such a distribution need to remove it when they are done. This patch
does that.
On a CLOSED TREE.
So, apparently we race to have a non-null application context from the
target context. No matter, we can use the target context directly.
This patch adds th state machine for supporting the Gonk sensors
daemon in Gecko. The daemon gets started when the first sensor is
enabled. Sensors can be enabled and disabled at will. The daemon
will send events about detected sensors and sensor events. Gecko's
state machine receives themand forwards them as DOM events.
The old support for device sensors is still present for devices without
sensorsd. A future patch will remove this code.
This patch adds the interface for the Gonk sensors daemon. There
are only two major interfaces: connect and disconnect. The sensors
daemon is started before connecting and stopped after a disconnect.
Connections are race-free: we first set up a listen socket and let
Gecko listen for connections. Then the daemon gets started with the
socket's address as parameter. When the daemon connects to the
socket, Gecko will continue the startup and signal success to the
caller.
The sensor daemon's poll service reads events from the device's
sensors. This patch adds Gecko support for this service. Gecko
receives information about existing sensors and can subscribe to
sensor events. Events will be delivered for each enabled sensor.
A system daemon can contain several services. One of them is the registry
service that manages all other services. This patch adds support for this
service in the Gonk sensors daemon.
This patch adds helpers for using the Gonk sensors daemon. The types
and functions allow for packing and unpacking messages of the daemon's
IPC protocol.
Something defines HEADER_SIZE when including the PDU headers from
hal/gonk. This break the HEADER_SIZE constant in |DaemonSocketPDU|.
This patch adds the prefix PDU_ to all PDU constants.
All the methods in CDMProxy except CDMProxy::OnExpirationChange() that use
mKeys null check mKeys before using it because it can go away during shutdown
before the IPC message to call the methods have had a chance to run.
We should do the null check in CDMProxy::OnExpirationChange() too.
We have very few directories where we have SOURCES declared that are not
part of a library or program in some way. In fact, there is only one
where it is legitimate because we only use the object file
(build/unix/elfhack/inject). Others are the result of moz.build control
flow (see e.g. netwerk/standalone), and we end up building more objects
than we need to.
There are other cases where we need objects without actually linking
them anywhere, but there are other sources in the same directory, and a
corresponding Linkable is emitted. And in fact, the only case I knew
about (media/libvpx), doesn't use such objects since bug 1151175.
Please see the Kinto.js PR for the storage adapter changes:
https://github.com/Kinto/kinto.js/pull/303
Additions and changes to the Firefox storage adapter tests have been made
accordingly.