This patch use the union of all child scrollable overflow frame rects to
clamp the caret dragging point.
MozReview-Commit-ID: GEF9BpQkQNd
--HG--
extra : rebase_source : 3722e8a0f32a45439fed753b7d5f9a76add4553f
These tests are added per bug 1251519 comment 10.
test_move_cursor_to_front_by_dragging_caret_to_front_br_element() covers
example 1, and test_drag_caret_from_front_to_end_across_columns() covers
example 3. Example 4 is not easy to write in marionette test since it's
difficult to know whether an image is selected.
Both tests will fail if we clamp the dragging point by using only the
text frame rects as the patch attached in bug 1251519 comment 7.
MozReview-Commit-ID: CKZQKGI6YUw
--HG--
extra : rebase_source : 72f5c2a960c2659fe5015a3ab488d4baa1918059
nsLayoutUtils::IsRectVisibleInScrollFrames() was used only by
SelectionCarets which was removed in bug 1221459.
MozReview-Commit-ID: 4dQAq1umHY7
--HG--
extra : rebase_source : 9c35effc9ac44bb9de5df1e4ddfc0d32edcfb9c9
Bug 655877 Part 20 made this deliberately to let nsTextFrame
QueryFrame-able. https://hg.mozilla.org/mozilla-central/rev/d8c6025c0881
But other types like nsPlaceholderFrame or nsBulletFrame are also
implemented QureyFrame, which do not have this inheritance indirection.
I guess it was for historical reason, and can be removed safely.
MozReview-Commit-ID: CPeQvpKzEKh
--HG--
extra : rebase_source : 86e784648cab3982ff16b3d45a312b98cd963841
Rather than passing around a bool flag to indicate if we should be creating
an AnimationCollection when none is found, it would be a lot easier to read
if we simply introduce a separate method for this.
MozReview-Commit-ID: 6bg8jGoH5pL
By moving GetAnimationCollection to AnimationCollection itself, we can remove
a bunch of virtual methods on the animation managers, simplify call sites,
and provide better type safety by ensuring a correspondence between element
property names and concrete animation types.
One change in behavior, however, is that in doing this we can no longer
add any newly-created AnimationCollection to the corresponding manager's linked
list of collections inside GetAnimationCollection. Instead we take a bool
outparam to indicate if a new collection was created and leave managing the
linked list to the manager. This is just a temporary measure, however, since
by the end of this patch series will will eliminate this linked list altogether
along with this flag.
MozReview-Commit-ID: 1jsc4QcmVDg
This patch templatizes the type of Animation stored in an AnimationCollection.
This allows us to remove a number AsCSSAnimation() calls in nsAnimationManager.
This patch also removes the AnimationPtrArray typedef. In its place we
introduce OwningCSSAnimationPtrArray and OwningCSSTransitionPtrArray but we
don't use these as widely. There was some comment previously that the typedefs
in animation code make it hard to read, particularly when these typedefs don't
make it clear if the data type is an owning reference or not.
In doing this we need to templatize CommonAnimationManager as well and move the
implementation of its (few) methods to the header file. We may be able to
remove the need for templatizing CommonAnimationManager later in this patch
series depending on how we ultimately decide to handle the lifetime of
AnimationCollection objects.
CommonAnimationManager::GetAnimationCollection is a bit messy but this will be
significantly tidied up in subsequent patches in this series.
MozReview-Commit-ID: 3ywatY53pRR
- To avoid confusion, call the blinking cursor (nsCaret) "cursor" so that
AccessibleCaret can be called caret for short.
- Add second_caret_location() as a helper function, and use it in
selection mode tests.
MozReview-Commit-ID: IKN6KuR92HE
--HG--
extra : rebase_source : c247ad6b61bc1b1cc3c4d8784584e19d9ef5c1ea
* Inline some of the open_*_html methods since they're called only once.
* Save test running time by finding the elements needed in tests instead
of find all of the elements in open_*_html methods.
* Remove test_long_press_to_select_non_selectable_word() since it's
covered by test_focus_not_changed_by_long_press_on_non_selectable().
* Use hyphen for element ids.
* Replace "left" and "right" caret by "first" and "second" caret,
respectively.
MozReview-Commit-ID: Ey5m5zO3HYc
--HG--
extra : rebase_source : c94b84ced75560ce1167cda35ee94dd4cc81ee4d
Remove _test_touch_caret_hides_after_receiving_wheel_event() completely
since it was a test only for touch caret, which is a leftover in bug
1221459.
MozReview-Commit-ID: 4szwuG6t5SF
--HG--
extra : rebase_source : 85a201d76016da65f14cd2cc0a641c342e266904
I don't feel these tests are helpful. It's unlikely that someone will
accidentally turn on AccessibleCaret on desktop platforms without being
noticed. Remove these tests also reduces the test running time.
MozReview-Commit-ID: 33RQQSy77gZ
--HG--
extra : rebase_source : 5cd7fd77a48f07ee137d8140481ea6210070d139
This is needed because blending for nsDisplayBackgroundImage items will soon
happen outside of nsDisplayBackgroundImage::Paint, it will be done by an
nsDisplayBlendMode item that wraps the nsDisplayBackgroundImage item.
MozReview-Commit-ID: 20cILOGVFEG
--HG--
extra : rebase_source : 306725c99a1cd8d450149482817b8b51bc660908
We're going to use it both for background-blend-mode and for mix-blend-mode.
MozReview-Commit-ID: 6zKCDSkLspc
--HG--
extra : rebase_source : 81b4691d2b74e56c634bdf08f85636ba2abbf486