This implements the OS X backend for the bootstrapper. It ensures that
the system is in the proper state to build Firefox by installing
required packages.
This was tested with a fresh install of OS X 10.8. Basic support for OS
X 10.6 and 10.7 is implemented, but not thorougly tested.
Bug 748144 switched our opus decoding to use the
opus_multistream api so we could handle surround
audio files. The version of opus in our tree at
the time didn't include extern "C" {} protection
in the corresponding header, so we had to provide
our own.
With the update to the opus 1.0.0 source release
in bug 790381, this oversight is corrected and
we can remove our work-around.
Return PL_DHASH_STOP if JS_SetProperty fails, and check
the return code of the enumerator to propagate the failure
back to javascript through the return value of mozGetMetadata.
In addition, use JS_DefineProperty in mozGetMetadata so
web content can't intercept and alter our creation calls.
JS_SetProperty() will define a new property if it doesn't
exist, but it will also call any existing setters, in
particular those on Object.prototype. This is confusing
for an object that created by a platform object method
from internal data.
The interface /proc/<pid>/oom_score_adj has been added as a replacement for /proc/<pid>/oom_adj. It
is now supported and used by default within Gonk. If oom_scrore_adj is not available, the code falls
back to the old interface.
The preference settings
hal.processPriorityManager.gonk.backgroundOomAdjust,
hal.processPriorityManager.gonk.foregroundOomAdjust, and
hal.processPriorityManager.gonk.masterOomAdjust
have been replaced by
hal.processPriorityManager.gonk.backgroundOomScoreAdjust,
hal.processPriorityManager.gonk.foregroundOomScoreAdjust, and
hal.processPriorityManager.gonk.masterOomScoreAdjust.
The new settings adopt the semantics of /proc/<pid>/oom_score_adj and the default
values have been changed accordingly. The interface to the OOM killer interface is
still /proc/<pid>/oom_adj, and its input values are computed from the settings.
For supporting multiple files in the OOM adjustment, we need to know if a file
has been successfully written to. in this case WriteToFile now returns 'true',
otherwise it returns 'false'.