Commit Graph

3540 Commits

Author SHA1 Message Date
Robert O'Callahan
91cae0fac8 Bug 754556. Ensure that setting scroll positions in CSS pixels doesn't unexpectedly move the scroll position, especially not in the wrong direction. r=matspal
If the current scroll position is fractional, e.g. y=N.4 CSS pixels, and something tries to read the
position in CSS pixels and scroll to that position (e.g. calling window.scrollTo(0, rootElem.scrollTop),
or equivalently window.scrollBy(0, 0)), it can actually end up scrolling backwards. So create a new
method nsIScrollableFrame::ScrollToCSSPixels which ensures that scrolling to a CSS pixel offset tries to
preserve the current fractional scroll position if that's possible, and if that's not possible at least does
not allow the scroll position to move in the wrong direction.
2012-05-15 17:58:09 +12:00
Mats Palmgren
c6512a9065 Bug 749935 - Make all nsRect Union methods saturating. If width/height overflows nscoord_MAX then clamp the x/y to nscoord_MIN / 2 and try again. r=roc 2012-05-14 22:11:39 +02:00
Alexander Surkov
08d70a910e Bug 754627 - GetBounds on bullet return wrong values, r=tbsaunde, roc 2012-05-14 13:51:45 +09:00
Christopher De Cairos
1d388d679e Bug 517363: Make poster frames scale to size of the display frame r=roc 2012-05-11 20:32:29 +12:00
Christopher De Cairos
a51913e89c Bug 726904: Make nsVideoFrame::GetVideoIntrinsicSize return the video size before the poster size. r=cpearce 2012-05-11 20:32:15 +12:00
Matt Woodrow
5939c267ea Bug 722603 - Improve dirty rect calculation with 3d transforms and preserve-3d. r=roc 2012-05-11 19:49:14 +12:00
Matt Woodrow
6e453c5d34 Bug 722603 - Add 3d transforms debugging code to nsBlockFrame. r=roc 2012-05-11 19:49:12 +12:00
Robert O'Callahan
b9dab8f854 Bug 681192. Part 16: Reduce assertion counts some more. r=matspal
--HG--
extra : rebase_source : 48cdef6c9792d6e35dcdfaecae3e3982c37171fd
2012-05-10 17:24:21 +12:00
Robert O'Callahan
cc4c60522a Bug 681192. Part 12: more fixes to remove unnecessary rounding to pixels. r=matspal
--HG--
extra : rebase_source : 39f2c0ef3220b3f0d4f6bc2564a86daa2112dc3b
2012-05-10 17:24:20 +12:00
Robert O'Callahan
28e494af4f Bug 681192. Part 11: Don't snap scrollrange endpoints to device pixels anymore. r=matspal
--HG--
extra : rebase_source : a4ad5072fbb1a9e1e8d0fcf31268fee8812be41e
2012-05-10 17:24:20 +12:00
Robert O'Callahan
d526469de5 Bug 681192. Part 9: Adjust assertion counts downward. r=mats
--HG--
extra : rebase_source : 5cb44d6572d19d462897b1b50037946d5d8edf67
2012-05-10 17:24:20 +12:00
Robert O'Callahan
41b38a3c31 Bug 681192. Part 8: Use a generous allowed range when scrolling in CurPosAttributeChanged. r=matspal
There was a subtle reftest failure on Mac in RTL text-overflow tests.
I tracked it down to RTL overflow:auto areas being automatically scrolled by a subpixel amount.
This was because we try to set scrollbar "curpos" attributes to an integer number of CSS pixels representing
the scroll amount, relative to the top-left of GetScrolledRect, which is a noninteger number of CSS pixels
in this case. Then in ReflowFinished() we scroll to the saved curpos values plus the top-left of GetScrolledRect.
This patch fixes the problem by making CurPosAttributeChanged pass an allowed scroll range to
ScrollToWithOrigin. We allow any scroll destination that, when rounded to CSS pixels, would give the same
value as "curpos".
This fixes the bug, ensuring that ReflowFinished's call to CurPosAttributeChanged will not normally need
to scroll because the current position will be in the acceptable range. Also, it means that code that
scrolls by setting the "curpos" attribute will be optimized to try to hit a layer pixel boundary.

--HG--
extra : rebase_source : 3a768883feee4ff2b88fe3c729ea1058e911f2ea
2012-05-10 17:24:19 +12:00
Robert O'Callahan
5c62ce11f2 Bug 681192. Part 7: nsTypedSelection should be scrolling a 0,0 size into view to get a particular coordinate into view, not 1,1. r=matspal
When asked to scroll a 1,1 appunit rectangle into view, ScrollFrameRectIntoView will now actually
succeed!
For example if the window is 6000 appunits high and we ask to scroll a 1x1 rect at 0,6000 into view,
before bug 681192 was fixed we'd actually fail to do so. We'd compute a desired scroll destination of 0,1,
and ScrollTo would round that to 0,0 and we wouldn't scroll at all.
Now, we compute a desired scroll destination of 0,1 but also an allowed scroll range for y of
"1 to <someting large>", so ScrollFrameRectIntoView will scroll down by a full pixel to 0,60. This is correct ---
it gets the subpixel area into view, which the previous code didn't --- but it's not really what DoAutoScroll
wants, at least the way test_mousecapture.xul is written. test_mousecapture.xul expects DoAutoScroll to scroll
windowheight+N into view by scrolling down by exactly N pixels, so the desired point is exactly at the bottom
edge of the window rect. Using a zero-sized rect achieves this.

--HG--
extra : rebase_source : 5d3d8cc4417c35dc88ad296a4f13e01d2c1c9233
2012-05-10 17:24:19 +12:00
Oleg Romashin
5120270d4b Bug 681192. Part 2: Make nsIScrollableFrame::ScrollBy automatically set a generous allowed destination range. r=roc
--HG--
extra : rebase_source : 392359b325ca0435031e8f31a47154a82943c2b4
2012-02-07 12:20:57 -08:00
Oleg Romashin
14a398fcf0 Bug 681192. Part 1: Add "allowed scroll destination range" to nsIScrollableFrame::ScrollTo and nsGfxScrollFrame implementation. r=roc,matspal
--HG--
extra : rebase_source : 51d04f7e7db35c02de3401a3481d4cc3827c19ec
2012-02-07 16:53:18 -08:00
Ehsan Akhgari
d50878a182 Bug 612128 - Prevent the editor from modifying nodes which are not under an editing host; r=roc,bzbarsky
This patch ensures that the NODE_IS_EDITABLE flag is only set on nodes living
under an editing host.  Things like text controls which used to have that flag
previously will not have it any more.  The flag would be set on their anonymous
div node instead.  Note that if text controls actually fall under an editing
host, they will get the NODE_IS_EDITABLE flag.

This patch also makes nsHTMLEditor::IsEditable return sane results (text nodes
are always considered to be editable).
2010-11-16 15:45:49 -05:00
Ed Morley
d68bf1a175 Merge last PGO-green changeset of mozilla-inbound to mozilla-central 2012-05-09 10:15:40 +01:00
Joe Drew
756646f15d Back out changeset 501d38d3892c (Bug 733553) for causing crashes in xpcshell tests. 2012-05-08 21:59:30 -04:00
Adam Dane [:hobophobe]
e1da62aa08 Bug 733553 - Allow multipart image streams to cope with stream changes. r=joe
--HG--
extra : rebase_source : 21ebc85f26fcbc4a4a27387d1ec5007c0886c386
2012-05-08 16:19:01 -05:00
Timothy Nikkel
6ffee527c4 Bug 749425. Push the scroll frame clip inside the scroll layer so it gets transformed by the shadow transform. r=roc 2012-05-08 23:15:00 -04:00
Jeff Muizelaar
b86c4d522e Bug 753058. Add SAMPLE_LABELS for shadows. r=ehsan
This will make this things more obvious on the profile.
2012-05-08 18:10:02 -04:00
Makoto Kato
ae4279cc0e Bug 249159 - Part 2 Implement CSS3 Text word-break property. r=dbaron, smontagu 2012-05-07 12:18:23 -07:00
L. David Baron
f4ce7f74f9 Add missing GetFirstInFlow() call that was causing a crash in ComputeDescendantWidth when printing with font inflation enabled (or a debug build). (Bug 751797) r=roc
--HG--
extra : transplant_source : %ED%23%02%AFR%24tw%FE%96%D7%D3p%D8%87%F7gV%28L
2012-05-07 07:17:00 +02:00
Jonathan Kew
ce78dd76d0 bug 752176 - only read the style array for valid offsets within the textrun. r=smontagu 2012-05-06 15:55:12 +01:00
L. David Baron
b61149484a Make effect of form controls on font size inflation text threshold not depend on user changes to their value. (Bug 747857) r=roc
--HG--
extra : transplant_source : %82%DCX%81%B2%AAM%A3%A1%A1-%87%10%B3%B6%10kw%F4%FB
2012-05-05 15:24:45 +02:00
Ms2ger
de7c676373 Bug 716439 - Followup: remove unused variable 'sf'; r=roc 2012-05-05 11:00:06 +02:00
Scott Johnson
9d44d76b7d Bug 749186: Make the root frame always be an inflation container to prevent a crash during font inflation. [r=dbaron] 2012-05-04 12:08:23 -05:00
Scott Johnson
adac9ae3ae Bug 746966: Conditionally set NS_FRAME_IN_CONSTRAINED_HEIGHT for font inflation on percentage-based height so fonts with room to inflate can do so. [r=dbaron] 2012-05-04 12:07:37 -05:00
Ed Morley
3c9ca1882b Backout f8125b89352d (bug 747857) for frequent test failures 2012-05-04 15:24:42 +01:00
L. David Baron
6619db8bda Add missing GetFirstInFlow() call that was causing a crash in ComputeDescendantWidth when printing with font inflation enabled (or a debug build). (Bug 751797) r=roc
--HG--
extra : transplant_source : %B5%FE%E5%DFaH%06%0F%3B%26%C0%E2%8B%3E4%F37%BFi-
2012-05-03 22:55:33 -04:00
L. David Baron
39891d906d Make effect of form controls on font size inflation text threshold not depend on user changes to their value. (Bug 747857) r=roc
--HG--
extra : transplant_source : %1F%7B%3Fk%A6%F1%2C%EAZ%920%FB%FD%FB%3D%8E%9C%C9y%19
2012-05-03 20:04:30 -04:00
Mats Palmgren
3a8a0731b4 Bug 750745 - Allocate nsLineBoxes from their own presshell arena list. part=3/3 r=roc 2012-05-04 02:14:02 +02:00
Mats Palmgren
59250ec053 Bug 750745 - Introduce AllocateByObjectID/FreeByObjectID for allocating non-frame objects from per-type lists in the PresArena. part=2/3 r=roc 2012-05-04 02:14:02 +02:00
Mats Palmgren
1ce63ca0d8 Bug 735641 - No way to deselect image of image document after select all (Ctrl+A). r=bz 2012-05-04 02:14:01 +02:00
Mats Palmgren
ff736d775f Bug 747688. r=roc 2012-05-04 02:14:01 +02:00
Mats Palmgren
07fa8272f6 Bug 750066. r=roc 2012-05-04 02:14:01 +02:00
Mats Palmgren
18a32fcc02 Bug 748961 - Flush styles to ensure frames are created. r=smaug,Ms2ger 2012-05-04 02:14:01 +02:00
Andreas Gal
6ced71cf11 Do image scaling on the GPU (bug 650988, r=roc,cjones). 2012-05-03 07:05:55 -07:00
Ed Morley
8266a4291c Merge mozilla-central to mozilla-inbound 2012-05-03 20:13:41 +01:00
Ali Juma
d068bda688 Bug 748048 - Part 1: Remove SetInvalidationDimensions and GetInvalidationDimensions. r=roc 2012-05-03 12:33:51 -04:00
Jared Wein
1504e6e3d5 Bug 702463 - Increasing the timeout of the tests due to the presence of multiple refresh drivers. r=ehsan 2012-04-30 13:44:55 -04:00
Avi Halachmi
968bd575ff Bug 702463 - Smooth scrolling should use refresh observer instead of a timer. r=roc 2012-03-31 16:08:00 +03:00
Masatoshi Kimura
95f8a3cace Bug 745498 - Add testcases for DOM4 exception types. r=sicking 2012-04-26 09:42:26 -07:00
Jonathan Kew
13d8ee2427 bug 307039 - implement Greek-specific uppercasing for text-transform & small-caps. r=past 2012-05-03 08:57:18 +01:00
Nicholas Cameron
a387d019ba Bug 716439; remove a check for rounded rects to enable the use of mask layers. r=roc 2012-02-08 11:26:46 +13:00
Aryeh Gregor
7b0c6d74e3 Bug 702948 - Make Range.detach() a no-op; r=smaug 2012-04-25 15:03:48 +03:00
Masayuki Nakano
ba56663cd3 Bug 630811 part.2 Replace nsInputEvent::isShift, nsInputEvent::isControl, nsInputEvent::isAlt and nsInputEvent::isMeta r=smaug 2012-04-25 12:00:02 +09:00
Timothy Nikkel
5fce132cd1 Bug 732016 Allow override of the scroll port size used for clamping scroll positions. r=roc 2012-04-24 13:52:35 -05:00
Jonathan Kew
15627b7207 bug 744357 - implement mappings from Unicode's SpecialCasing.txt for text-transform. r=smontagu 2012-04-24 18:53:39 +01:00
Robert O'Callahan
3e30bf4a46 Bug 749075. Part 1: Refactor the nsDisplayItem API for testing whether the item needs to be rendered to a transparent surface. r=mattwoodrow
Currently we return an extra out parameter on GetOpaqueRegion. This is ugly and it's also going to be inefficient
because in a followup patch I'm going to avoid calls to GetOpaqueRegion, but we still need to know whether the item
needs a transparent surface. So this patch removes that out parameter. Instead, we rely on the fact that only
Windows' glass-window-background display item needs to force a transparent surface, and there can only be one
of those per window. So we store a reference to it in the nsDisplayListBuilder if there is one, and then we can
efficiently tell if any leaf display item is the one that forces a transparent surface. For display items that
wrap a list, we continue to store whether they need to force a transparent surface in a boolean in the list.
2012-05-03 16:29:05 +12:00