Commit Graph

73 Commits

Author SHA1 Message Date
Markus Stange
6bb3620330 Back out bug 1012752 for causing bug 1285532 and bug 1286674.
MozReview-Commit-ID: DYZ3D4yL1eZ

--HG--
extra : source : b98df554a6f0aa154275d363163ec618189503ed
2016-07-16 17:10:08 -04:00
Markus Stange
f8e66e0cdf Bug 1012752 - Snap scrolled area to layer pixels. r=tnikkel
We want the maximum scroll position to be aligned with layer pixels. That way
we don't have to re-rasterize the scrolled contents once scrolling hits the
edge of the scrollable area.

Here's how we determine the maximum scroll position: We get the scroll port
rect, snapped to layer pixels. Then we get the scrolled rect and also snap
that to layer pixels. The maximum scroll position is set to the difference
between right/bottom edges of these rectangles.
Now the scrollable area is computed by adding this maximum scroll position
to the unsnapped scroll port size.
The underlying idea here is: Pretend we have overflow:visible so that the
scrolled contents start at (0, 0) relative to the scroll port and spill over
the scroll port edges. When these contents are rendered, their rendering is
snapped to layer pixels. We want those exact pixels to be accessible by
scrolling.

This way of computing the snapped scrollable area ensures that, if you scroll
to the maximum scroll position, the right/bottom edges of the rendered
scrolled contents line up exactly with the right/bottom edges of the scroll
port. The scrolled contents are neither cut off nor are they moved too far.
(This is something that no other browser engine gets completely right, see the
testcase in bug 1012752.)

There are also a few disadvantages to this solution. We snap to layer pixels,
and the size of a layer pixel can depend on the zoom level, the document
resolution, the current screen's scale factor, and CSS transforms. The snap
origin is the position of the reference frame. So a change to any of these
things can influence the scrollable area and the maximum scroll position.
This patch does not make us adjust the current scroll position in the event
that the maximum scroll position changes such that the current scroll position
would be out of range, unless there's a reflow of the scrolled contents. This
means that we can sometimes render a slightly inconsistent state where the
current scroll position exceeds the maximum scroll position. We can fix this
once it turns out to be a problem; I doubt that it will be a problem because
none of the other browsers seems to prevent this problem either.

The size of the scrollable area is exposed through the DOM properties
scrollWidth and scrollHeight. At the moment, these are integer properties, so
their value is rounded to the nearest CSS pixel. Before this patch, the
returned value would always be within 0.5 CSS pixels of the value that layout
computed for the content's scrollable overflow based on the CSS styles of the
contents.
Now that scrollWidth and scrollHeight also depend on pixel snapping, their
values can deviate by up to one layer pixel from what the page might expect
based on the styles of the contents. This change requires a few changes to
existing tests.
The fact that scrollWidth and scrollHeight can change based on the position of
the scrollable element and the zoom level / resolution may surprise some web
pages. However, this also seems to happen in Edge. Edge seems to always round
scrollWidth and scrollHeight upwards, possibly to their equivalent of layout
device pixels.

MozReview-Commit-ID: 3LFV7Lio4tG

--HG--
extra : histedit_source : 5390eeebfe9a2791d9ac8e91ec1dfec4ec7b4118
2016-06-02 15:41:51 -04:00
Mason Chang
328a9da0c1 Bug 1282626. Windows skia reftest fuzzing. r=lsalzman 2016-06-27 18:12:57 -07:00
Geoff Brown
fd1e09d12b Bug 1251013 - Update AndroidVersion annotations in test manifests - reftests; r=jmaher 2016-03-17 10:00:47 -06:00
Ryan VanderMeulen
a3835b03c5 Bug 1253849 - Tweak some reftest annotations.
--HG--
extra : rebase_source : 449d1c23f7c0041f6114376694ef71845b792ffb
2016-03-08 21:23:17 -05:00
Mason Chang
b4c228baec Bug 1246213 - Skia reftest fuzzing for Skia content on OS X. r=jmuizelaar 2016-02-16 09:07:52 -08:00
Joel Maher
dccc504cec Bug 1236076 - 3 tests in text-overflow reftests are failing when run in linux64 docker images. r=mats 2016-01-05 03:20:20 -08:00
Matt Woodrow
5ff40cc89c Bug 1216851 - Allow flattening of opacity when it contains text. r=roc
--HG--
extra : rebase_source : 3861829d42298838eaa87912fa849b60b6f698e6
2015-10-23 11:22:45 +13:00
Carsten "Tomcat" Book
513d05c444 Backed out changeset 0e8e25c04938 (bug 1216851) for reftest failures 2015-10-29 13:52:29 +01:00
Matt Woodrow
bab116d797 Bug 1216851 - Allow flattening of opacity when it contains text. r=roc
--HG--
extra : rebase_source : 48b64c9ba86e89ae8d15ae05f7379fd518ca01b5
2015-10-23 11:22:45 +13:00
James Willcox
f3e7b2c099 Bug 1148131 - Enable DrawTargetTiled on Android r=Bas 2015-09-28 09:37:00 -05:00
Kartikaya Gupta
75997e4ed0 Bug 1186004 - Split the asyncPanZoom reftest sandbox condition into asyncPan and asyncZoom. r=mstange 2015-07-22 23:42:08 -04:00
Andrew Comminos
1fd1765334 Bug 1174755 - Improve reftest consistency on GTK3. r=karlt 2015-06-15 10:00:00 -04:00
Ryan VanderMeulen
df9a24ed23 Backed out changeset cc153acac9df (bug 1169502) for test_leaf_layers_partition_browser_window.xul permafail on Win7/8 debug.
CLOSED TREE

--HG--
extra : amend_source : e1ca077f359673986b94b71f6e1e4e5da767c2e8
2015-06-16 13:41:59 -04:00
Markus Stange
1a786425ca Bug 1169502 - Simplify visible regions to tiles, not to a number of rects. r=jrmuizel, r=roc
--HG--
extra : rebase_source : affd6655b864223cb1bb2ffe6e47a4759fd6b411
2015-06-10 15:54:20 -04:00
Andrew Comminos
065394444c Bug 1170158 - Apply GTK2 reftest exceptions to GTK3. r=karlt 2015-06-02 13:47:00 -04:00
Jonathan Kew
a34e6fd938 Bug 1157951 patch 3 - Reftests for text-overflow with text decorations in vertical writing mode. r=roc 2015-04-28 12:50:21 +01:00
David Anderson
979949ce62 Mark unaccelerated antialiasing reftest failures with APZ as fuzzy. (bug 1157716, r=mstange)
With APZ, we always layerize the first scrollable element of the page,
if the page itself is not scrollable. These additional layers can cause
fuzzy reftest failures in two ways: differences in blending, and by
disabling sub-pixel test anti-aliasing. The latter is only a problem
with unaccelerated drawing, because we don't support component alpha
layers with BasicLayers. (We also don't support them with
BasicCompositor, but "Reftest unaccelerated" only tests BasicLayers).
2015-04-24 10:13:32 -04:00
Kartikaya Gupta
53dd599648 Back out cset 17aad8f83237 (bug 1154499) now that we have a nightly with APZ enabled. r=me a=me 2015-04-22 09:36:25 -04:00
David Anderson
9ae1c872f4 Enable APZ for E10S on Windows for one Nightly. This patch will be backed out after one nightly. (bug 1154459, r=kats, a=ryanvm) 2015-04-21 15:35:19 -04:00
Phil Ringnalda
d68dd54c30 Backed out changeset ffde08dc5ceb (bug 1154459) for bustage
CLOSED TREE
2015-04-19 08:19:14 -07:00
David Anderson
4f6a850738 Enable APZ for E10S on Windows for one nightly build. (bug 1154459, r=kats) 2015-04-17 11:49:55 -04:00
Alexandre Lissy
366fdcfa2e Bug 1153574 - Re-enable Mulet reftests taskcluster-specific disables. r=ahal, a=test-only 2015-04-13 14:26:00 -04:00
Alexandre Lissy
16ab34d6ec Bug 1144080 - Disable reftests on Mulet for TaskCluster. r=ahal 2015-03-20 00:45:00 +01:00
Alexandre Lissy
e8b4f395c0 Bug 1138442 - Disable reftests on Mulet in parity with B2G/B2G Desktop. r=ahal 2015-03-10 02:43:00 +01:00
Seth Fowler
84f29f6166 Bug 1128229 - Add fuzzy annotations to tests that depend on imgFrame::Optimize being called on Android. r=me DONTBUILD 2015-01-31 21:41:06 -08:00
L. David Baron
eb5285b396 Bug 1121327 patch 2 - Update reftest and crashtest manifests for new OSX variable in condition sandbox. r=ted.mielczarek 2015-01-15 15:07:50 -08:00
Mats Palmgren
7b738252f8 Bug 649849, part 1 - Make -moz-appearance:none on a combobox remove the dropdown button (for WebKit compat). r=roc 2014-10-02 13:05:15 +00:00
Markus Stange
b207dd338d Bug 1009679 - Layerize the scrollbar thumb on desktop, too. r=roc 2014-05-28 12:52:13 +02:00
Daniel Holbert
5b3b530dc0 backout c3f1ab75ea51 (bug 421436) for regressing bug 439462 2014-05-22 15:10:20 -07:00
Simon Montagu
93df14c3c1 Remove the hack making all <br> frames 1 app unit wide. Bug 421436, r=roc 2014-05-13 07:12:16 -07:00
Ed Morley
bfa64d1dcc Backed out changeset 83fd85b082d1 (bug 1009679) for crashtest and reftest failures; CLOSED TREE 2014-05-14 15:55:04 +01:00
Markus Stange
3ec8e6b5ec Bug 1009679 - Layerize the scrollbar thumb on desktop, too. r=roc 2014-05-14 14:33:52 +02:00
Mats Palmgren
efd3ece2e8 Bug 990655 - Don't apply 'text-overflow' to nsComboboxControlFrame, its anon block deals with it. r=roc 2014-04-03 18:02:09 +00:00
L. David Baron
fbcb130e34 Bug 709014 patch 1: Honor margin-left and margin-right on elements in inline layout that have 0 width and/or height (commonly, inline-blocks). r=roc
Prior to this patch, we failed to honor:
 * margin-left on elements in inline layout with 0 width and 0 height
 * margin-right on elements in inline layout with 0 width
I think that was because the code in CanPlaceFrame to discard both
margins when the width was 0 was running after the left-margin was
applied, unless the later code in PlaceFrame (checking both width 0 and
height 0) un-applied that left margin.

The assertion count change in test_value_computation.html is due to 2
additional "bad width" assertions (I presume from honoring large
margins that were previously ignored).

The change to 538935-1-ref.html is to match an improvement in rendering
of the margins in the test, where both sides of the margin are now
honored.

The change to layout/reftests/text-overflow/marker-basic-ref.html is to
keep the reference (which uses margins) rendering the same way following
the changes to margin handling.

The new behavior (in the reftests added in layout/reftests/inline/)
matches at least Chromium; I didn't check any other browsers.
2014-02-17 20:07:45 -08:00
Robert O'Callahan
748b9049f1 Bug 157846. Part 0: Make tests more robust to padding changes and clipping of overflowing glyph edges. r=mats
--HG--
extra : rebase_source : f7d8ecb0df3fbbea593e46e515db47ee705392c7
2014-01-15 22:42:05 +13:00
Simon Montagu
07e1ec2854 Bug 936935: Mark lines dirty more accurately in Bidi resolution, r=roc 2013-11-07 16:39:49 +02:00
Daniel Holbert
5ac6d26487 Bug 886313: Make DisplayLine generate display items in a temporary collection, so we can apply text-overflow clipping without affecting earlier lines. r=roc 2013-06-28 00:22:57 -07:00
Dan Minor (dminor@mozilla.com)
bc0735b08b Bug 877266 - Add AndroidVersion to reftests and modify manifests for pandaboards. r=jmaher 2013-06-24 08:51:32 -04:00
Chris Lord
fc4a148647 Bug 846772 - Fuzz/un-fuzz tests for the dynamic toolbar on Android. r=jwatt,matspal
The dynamic toolbar enlarges the browser slightly, which causes extra fuzzing
to be required on dynamic-clipPath-01.svg and scroll-rounding layout tests,
but also makes translate-pattern-1.sg pass.
2013-03-12 18:32:26 +00:00
Ryan VanderMeulen
b16b9555c1 Backed out 5 changesets (bug 846772) for Android reftest-3 orange on a CLOSED TREE. 2013-03-12 17:37:16 -04:00
Chris Lord
e6517b4238 Bug 846772 - Fuzz dynamic-clipPath-01 and scroll-rounding tests for Android. r=jwatt,matspal
These tests need extra fuzzing when the dynamic toolbar is enabled.
2013-03-12 18:32:26 +00:00
Mats Palmgren
ae67dd75c4 Bug 843322 - Make CSS 'text-overflow' apply to ::-moz-placeholder. r=roc 2013-02-23 11:38:15 +01:00
Andrew Halberstadt
221179f50b Bug 811779 - Enable larger set of reftests on B2G emulators, r=jgriffin 2013-01-03 15:35:01 -05:00
Joel Maher
a3da963e31 Bug 800099 - scroll-rounding reftest requires > 600x600 resolution. r=mats 2012-10-15 07:10:51 -04:00
Matt Woodrow
7507512379 Bug 539356 - Part 10 - Test changes required for DLBI. r=roc
* * *
[mq]: test-fixes
2012-08-29 17:48:13 +12:00
Ed Morley
aba3a8f5ef Revert mozilla-inbound to e4dd1fa6d222 for crashes and test failures on a CLOSED TREE 2012-09-27 16:34:46 +01:00
Ehsan Akhgari
21329c0636 Followup to bug 539356: fix the text-overflow reftest manifest
Landing on a CLOSED TREE
2012-09-27 10:04:01 -04:00
Matt Woodrow
6f5a5e2a30 Bug 539356 - Part 10 - Test changes required for DLBI. r=roc
* * *
[mq]: test-fixes
2012-08-29 17:48:13 +12:00
Matt Woodrow
82891a358e Bug 539356 - Part 33 - Change test-overflow/single-value reftest to use MozReftestInvalidate. r=roc 2012-08-13 22:11:16 +12:00