From the bug it corresponds to, this test was designed to make sure that we don't
read ogg duration by seeking (which causes network activity) when the server
offers the X-Content-Duration header. However, preserving this behavior requires
the ogg reader to be aware of the presence of network duration when it's reading
metadata, which isn't easily accomplished in our new model here. I think both ogg
and X-Content-Duration are sufficiently unimportant at this point that this is an
acceptable regression.
Without this, we get failures in test_TruncatedDuration.html etc. I decided that
integrating this into the precisely correct position in the patch stack was too
much work.
It would be better for SetDuration to do this, and base it off of the current
MDSM state rather than the cause of the duration change. But this clarifies the
current situation a bit without adding more risk to this patch stack.
I contemplated using the mIsValid bit on CheckedInt for nullability, but
eventually decided that it's too much of an overload. typedef-ing a Maybe<>
solves things nicely.
The current clash between the constants makes it impossible to do using
|using namespace mozilla::media;| in most cpp files. It would be nice to
put the constants in mozilla::media, but that requires updating a bunch of
files, so I'm not doing it now.
nsContentUtils::CallOnAllRemoteChildren calls a callback on all tabs
connected to a given window but it has only worked in Firefox e10s tabs.
This patch adds a list of (weak) references to each top-level document's
WindowRoot so that e.g. the nsPresContext can access them instead of
using nsContentUtils. This provides a solution to the problem of finding remote PBrowsers generally.
When connecting a lowdpi external monitor on hidpi mac, TabChild gets an
UpdateDimensions call, followed by a UIResolutionChanged call. After
the UpdateDimensions call, the content process is in an incorrect state
where it has the dimensions of the new display and scale of the old one.
After the UIResolutionChanged message, the values are again consistent.
In the interim, reflow resizes layers based on the incorrect (old) scale
and subsequently uses those incorrect values when the new scale comes
in. This patch normalizes the message parameters by dividing by scale
(the result is what OS X calls point coordinates) so that this doesn't happen.
We should not dispatch an event if it is not safe to run script since
the event handlers might be implemented by Javascript.
To fix this, we always use AsyncEventDispatcher to dispatch the event.
--HG--
extra : transplant_source : %1F%C0%7C%DBGDn%F7%F7%E5%92%18Cw%28%D5C%88%23%9F