Bug 906643. Part 1: Add nsRefreshDriver::Add/Remove/PostRefreshObserver so we can receive notifications when a refresh has occurred, without triggering one. r=dbaron

--HG--
extra : rebase_source : fbfdd2678f4561f421fda2eb17e9e7ae8754f8d3
Bug 906643. Part 4: Make each gfxFontEntry track its gfxFonts with SVG glyphs. r=jfkthame

--HG--
extra : rebase_source : cd2cbdc8f6722e71f523c3fbe19e515a0e44f043
Bug 906643. Part 5: Add nsIPresShell::AddPostRefreshObserver/RemovePostRefreshObserver. r=mats
Bug 906643. Part 5.2: Add gfxFont::GlyphChangeObserver. r=jfkthame
Bug 906643. Part 5.6: Make nsTextFrames register themselves as observers when they have animated glyphs (but only the text frames that are the start of a run of continuations using a particulr textrun). r=jfkthame
Bug 906643. Part 6: Add gfxFontEntry::NotifyGlyphsChanged, which calls new gfxFont::NotifyGlyphsChanged, which calls new gfxGlyphExtents::NotifyGlyphsChanged; these methods flush out existing glyph extents and notify all affected gfxUserFontGroups of the glyph changes. r=jfkthame
Bug 906643. Part 7: Hook up animation support for gfxSVGGlyphs. r=jfkthame
There's a few things mashed together in this patch:
-- Enable animations in glyph documents
-- Make gfxSVGGlyphsDocument monitor the document's refresh driver to detect
updates
-- Forward updates to the gfxFontEntry
Bug 909922 - don't pragma pack ipc message headers; r=bent

The IPC::Message header is surrounded by:

#pragma pack(push,2)
...
#pragma pack(pop)

which (at least on GCC) specifies that structure members defined lexically
within the pragma should be two-byte aligned, rather than the ABI's declared
alignment.

But for IPC::Message::Header, this is a silly requirement, as everything there
is four bytes; there's no reason to pack the members any tighter.  And packing
tighter means that strict alignment platforms (like ARM) need to use more
complex code for something as simple as storing to one of the members--like
when we set a message's request ID, over and over and over.  The current code
for setting a message's request ID on ARM looks like:

     264:	6863      	ldr	r3, [r4, #4]
     266:	696a      	ldr	r2, [r5, #20]
     268:	809a      	strh	r2, [r3, #4]
     26a:	0c12      	lsrs	r2, r2, #16
     26c:	80da      	strh	r2, [r3, #6]

With the patch, it looks like:

     264:	6863      	ldr	r3, [r4, #4]
     266:	696a      	ldr	r2, [r5, #20]
     268:	605a      	str	r2, [r3, #4]

Only four bytes, but multiplied over several hundred set_routing_id calls, it
saves some code size and runtime.  I verified that the header's length doesn't
change by looking at debug information.
Bug 915717 - reduce duplication in moz.build's emission of simple lists; r=gps
Bug 915848 - make check_spidermonkey_style.py work correctly with git; r=njn
Bug 915629 - Chrome doesn't need to check the indexedDB permission. r=bent
Bug 915848 - copy modified check_spidermonkey_style.py to satisfy check-sync-dirs.py; r=bustage
bug 906643 - fix nsTextFrame build bustage on a CLOSED TREE. r=bustage
Bug 915171 - IonMonkey: Remove bogus assertion, r=jandem
Bug 910523 - about:home tests now take into account async startup of SessionRestore;r=felipe
Bug 910523 - about:home now takes into account async startup of SessionRestore;r=felipe
Bug 733644 - Make nsNSSComponent use mozilla::Preferences. r=keeler, sr=bsmith
Bug 880204 - Asm.js: support constant global variables and make their loads hoistable. r=luke
Bug 897105 - Part 1: Add RectTyped::operator== to allow use in IPDL structs. r=roc
Bug 897105 - Part 2: Add layer fields for sticky positioning. r=roc