Remove redundant check already implied by earlier condition: If the focus
manager's focused content is in our document, all parent windows including the
root window must have their focused node set to non-null.
MozReview-Commit-ID: CryGb6mfczK
--HG--
extra : rebase_source : ed5c452f68b76a656512026b5d162d8782083c2c
The autofocus attribute on form elements forces layout in CheckIfFocusable.
To avoid unpleasant FOUCs, defer autofocus processing until frames are
constructed in PresShell::Initialize.
Resolve the race between nsAutoFocusEvent running and page load by checking the
readystate at time of event posting. Skip autofocus if the element moved to a
different window in the meantime.
MozReview-Commit-ID: 90jiJYJWmRg
--HG--
extra : rebase_source : f94b479075df3e37ec1a658d71596c03930bab92
BaseEventFlags::mOnlySystemGroupDispatchInContent was used only when the
key combination is reserved by chrome, and used for preventing to fire
in web content on non-e10s window (bug 1203059).
However, now, this is also used for preventing to fire keypress event for
non-printable key combinations on web contents in the default event group
(bug 1433101). Therefore, now, we need to send events whose
mFlags.mOnlySystemGroupDispatchInContent is true because some event listeners
in the system event group in remote process may want to handle specific
keyboard events before nsXBLWindowKeyHandler.
This patch makes nsXBLWindowKeyHandler::HandleEventOnCaptureInSystemEventGroup()
treat KeyboardEvent whose mFlags.mOnlySystemGroupDispatchInContent is true
but which will be sent to remote process as usual event.
MozReview-Commit-ID: 4x0co9X2QV7
--HG--
extra : rebase_source : 260f05145bc3b80a90fa5114d982ebb5fec8f0fc
When ContentChild::RecvInitRendering is received, it tries to setup the
IPDL actors related to rendering. If the GPU process crashes before or
during this process, it will fail, and cause the content process to
crash as well. This is unnecessary because the UI process will either
restart the GPU process, or subsume its job into itself, and trigger
ContentChild::RecvReinitRendering. It is a similar case for failures in
ContentChild::RecvReinitRendering.
Since the GPU process crashing should be a recoverable scenario, we now
check if the remote IPDL actor is in the UI or the GPU process. If it is
in the UI process, it will fail/crash as it does today. If it is in the
GPU process, it will wait for the next
ContentChild::RecvReinitRendering.
For failures that are not IPDL related (e.g. failed to get some resource
like spawning a thread), we release assert specifically for those
failures. They are not recoverable.
We will use this to calculate the unconstrained current time when we implement
pending playback rate changes.
MozReview-Commit-ID: 7GlmHiGeXF6
--HG--
extra : rebase_source : 32c0c4d86293bf11220017fa1b126ae239b0301d
We will re-use these methods to perform various calculations once we introduce
the pending playback rate.
MozReview-Commit-ID: 2HV44TTNxHg
--HG--
extra : rebase_source : 19e32b13c6fee9cfe9993918557f2433aa687e11
This is the IDL added to the Web Animations specification:
5af5e276ba
Note that some of the changes in the above commit were reverted in the following
commit:
673f6fc126
A folded version of the changes:
https://gist.github.com/birtles/d147eb2e0e2d4d37fadf217abd709411
MozReview-Commit-ID: CJV7bzizXg4
--HG--
extra : rebase_source : 3b168e779883ba91c8f572478185b55013952d1a
I looked at the diff in the generated code, and the only change is that
SpeechRecognitionEvent's unlink impl goes from:
NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN_INHERITED(SpeechRecognitionEvent, Event)
NS_IMPL_CYCLE_COLLECTION_UNLINK(mResults)
tmp->mInterpretation.setUndefined();
NS_IMPL_CYCLE_COLLECTION_UNLINK(mEmma)
NS_IMPL_CYCLE_COLLECTION_UNLINK_END
to:
NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN_INHERITED(SpeechRecognitionEvent, Event)
NS_IMPL_CYCLE_COLLECTION_UNLINK(mResults)
NS_IMPL_CYCLE_COLLECTION_UNLINK(mEmma)
+ tmp->mInterpretation.setUndefined();
NS_IMPL_CYCLE_COLLECTION_UNLINK_END
MozReview-Commit-ID: FISIphljlT6
The change to RootAccessible.cpp fixes an obvious bug introduced in bug 741707.
The visibility changes in gfx/thebes are because NS_DECL_ISUPPORTS has a
trailing "public:" that those classes were relying on to have public
constructors.
MozReview-Commit-ID: IeB8KIJCGhU
MutableBlobStreamListener isn't retargetable, in order to avoid warning about
it we don't try retarget it at all. This should remove about 4,000 warnings
during testing.
--HG--
extra : rebase_source : 9ff00b9c5e818c5eba813915b4118749da1ecad6
This removes the most verbose fetch related warnings. Cumulatively these
account for about 11,000 warnings during testing.
--HG--
extra : rebase_source : ee930dec1e18b9a7f34d5c66944dc015be10be69
These conditions are rare and do indicate a problem which breaks accessibility.
However, we aren't getting any closer to diagnosing these as a result of these crashes, so they cause user pain without any gain to us.
MozReview-Commit-ID: D9U4et3Bg7d
--HG--
extra : rebase_source : a81263a0ef97a8ed87129d15ef30ded3005e740c
In the case where we throttle transform animations in visibility:hidden
element, we just need to unthrottle only if the element is scrolled out since
unlike the scrolled out element, visibility:hidden element keeps invisible
even after the element moved into view.
MozReview-Commit-ID: 7X2SsOLz4Y5
--HG--
extra : rebase_source : ca7210f7ed637f858127c4008fe98fbeec874a10
This patch does basically throttle animations on visibility:hidden element
and unthrottle it once the animating element became visible or a child of the
animating element became visible. But still there are some cases that we don't
throttle such animations perfectly. For example;
div.style.visibility = 'hidden'; // the 'div' has no children at this moment
div.animate(..);
// The animation is throttled
div.appendChild(visibleChild);
// The animation isn't throttled
visibleChild.style.visibility = 'hidden';
// Now the animation should be throttled again, but actually it's not.
To throttle this case properly, when the |visibleChild|'s visibility changed
to hidden, we would need to do either
1) Check all siblings of the |visibleChild| have no visible children
or
2) The parent element stores visible children count somewhere and decrease it
and check whether the count is zero
To achieve 1) we need to walk up ancestors and their siblings, actually it's
inefficient.
2) is somewhat similar to what we already do for animating images but it's hard
to reuse it for CSS animations since it does not take into account that
descendants' visibilities.
Another example that this patch does not optimize is the the case where
animating element has children whose visibility is inherited and the element
itself initially visible something like this;
let child = document.createElement('div'); // child visibility is 'inherit'
div.appendChild(child);
div.animate(..); // the 'div' is visible
// The animation isn't throttled since the animating element is visible
div.style.visiblily = 'hidden';
// Now the animation should be throttled, but it's not since this patch does
// not descend down all descendants to check they are invisible or not when the
// animating element visibility changed to hidden.
This patch adds a test case for this case introduced with todo_is().
Another test case added in this patch fails if we don't use
nsPlaceholderFrame::GetRealFrameFor() in HasNoVisibleDescendants().
MozReview-Commit-ID: BJwzQvP9Yc4
--HG--
extra : rebase_source : e56505706bb2799b59bbfb3bbcce4a9ce86892f4