Commit Graph

5576 Commits

Author SHA1 Message Date
Xidorn Quan
6cedec7667 Bug 1299741 part 3 - Add LinearBlendColors function for linear blending two colors. r=mstange
MozReview-Commit-ID: KVzV2DxXRqu

--HG--
extra : rebase_source : de1003c5546f77dc251d1dc1c3634ac79b73481f
2016-09-02 17:13:11 +10:00
Xidorn Quan
3e7bcf1437 Bug 1299741 part 2 - Move ClampColor to nsColor.h. r=mstange
MozReview-Commit-ID: 6qbVhOA3DE4

--HG--
extra : rebase_source : a5ee990caffef332cfd0bfa6753dff392e48166d
2016-09-02 14:59:28 +10:00
Manish Goregaokar
aad318e17a Bug 1300337 - Replace None_ variants from nsStyleConsts.h with None; r=heycam,TYLin
MozReview-Commit-ID: CxHzbEzjLxT

--HG--
extra : rebase_source : 232f90b8b107f7fb49f47a29a4e493660b8a7d87
2016-09-04 00:16:58 +05:30
Nicholas Nethercote
b71747b2ac Bug 1299727 - Rename NS_WARN_IF_FALSE as NS_WARNING_ASSERTION. r=erahm.
The new name makes the sense of the condition much clearer. E.g. compare:

  NS_WARN_IF_FALSE(!rv.Failed());

with:

  NS_WARNING_ASSERTION(!rv.Failed());

The new name also makes it clearer that it only has effect in debug builds,
because that's standard for assertions.

--HG--
extra : rebase_source : 886e57a9e433e0cb6ed635cc075b34b7ebf81853
2016-09-01 15:01:16 +10:00
Botond Ballo
2af3f87bb6 Bug 1288686 - Avoid X11's |#define None 0L| intruding on other parts of the code. r=jrmuizel
MozReview-Commit-ID: 9rD0KLTLg7l

--HG--
extra : rebase_source : a537ba1913b6959e74fc4fcaf58f51f759cc5882
extra : source : 9278e13a7d664e787f763a7c21a32833700899e1
2016-08-29 16:51:43 -04:00
Milan Sreckovic
ff3ca93c38 Bug 1287316 - Release assert or deal with empty arrays. r=mstange
--HG--
extra : rebase_source : 07b022071bf63b213f78d361d18464cbcbf6b562
2016-08-30 18:38:30 -04:00
David Anderson
7df82d4b70 Enable Direct3D 11 in the GPU process. (bug 1294988 part 3, r=mattwoodrow) 2016-08-20 20:59:10 -07:00
Ryan VanderMeulen
ce55e7b71a Merge m-c to inbound. a=merge 2016-08-19 09:59:49 -04:00
Jonathan Kew
95a82f84cc Bug 1280887 - patch 2 - Make gfxTextRun refcounted, replace usage of UniquePtr<> with RefPtr<> for textruns, and make nsTextFrame hold a strong reference to its run(s). r=mats 2016-08-19 13:14:22 +01:00
Jeremy Chen
7fe92af520 Bug 1293210 - add cap height support to nsFontMetrics. r=jfkthame
MozReview-Commit-ID: 8EXWUtbuN3s

--HG--
extra : rebase_source : 120cc3476faae7d63f2e96f2973ea9e6d9a93c16
2016-08-18 17:43:54 +08:00
Markus Stange
ebb461c874 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 : rebase_source : 3e4e0b60493397e61283aa1d7fd93d7c197dec29
extra : source : d43c2d5e87f31ff47d7f3ada66c3f5f27cef84a9
2016-08-04 23:51:58 -04:00
David Anderson
21cab137bc Move D3D11 device creation out of gfxWindowsPlatform. (bug 1282364 part 3, r=mattwoodrow)
--HG--
extra : rebase_source : 2eadd72cf0c101c61fc3b2ab35d958fb3d540562
2016-07-26 13:22:13 -07:00
Tom Tromey
5538d692d3 Bug 1286877 - do not set c-basic-offset for python-mode; r=gps
This removes the unnecessary setting of c-basic-offset from all
python-mode files.

This was automatically generated using

    perl -pi -e 's/; *c-basic-offset: *[0-9]+//'

... on the affected files.

The bulk of these files are moz.build files but there a few others as
well.

MozReview-Commit-ID: 2pPf3DEiZqx

--HG--
extra : rebase_source : 0a7dcac80b924174a2c429b093791148ea6ac204
2016-07-14 10:16:42 -06:00
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
Kartikaya Gupta
85a734ff8d Bug 1283826. r=mstange,Bas
MozReview-Commit-ID: HiwjHBlhmKk
2016-07-19 21:50:09 -04:00
Wes Kocher
881322b8cb Backed out changeset 7985dab6e65e (bug 1283826) for crashtest failures CLOSED TREE 2016-07-18 11:43:15 -07:00
Kartikaya Gupta
f006a9f9b3 Bug 1283826. r=mstange,Bas
MozReview-Commit-ID: HiwjHBlhmKk
2016-07-18 11:15:00 -04:00
Lee Salzman
16ca3223d9 Bug 1286317 - part 1 - remove Qt widget usage from gfx. r=jrmuizel 2016-07-12 20:27:57 -04:00
Kartikaya Gupta
8c95549f67 Bug 1284940 - Increase the max number of tiles in a TiledRegion. r=mstange
MozReview-Commit-ID: 4ndRuvllDAr

--HG--
extra : rebase_source : 128da79a0a7afa87c2f80e3479564bc0fa09e3ce
2016-07-11 13:06:53 -04:00
Benjamin Smedberg
bf05496a83 Bug 1282866 - remove widget/qt and other supporting QT code, r=dougt. This patch does not remove all of the checks for MOZ_WIDGET_QT (which are dead code), but that will be a followup mentored bug.
MozReview-Commit-ID: EGqHHhCD7vD

--HG--
extra : rebase_source : a4b9593959dd3ba80189db47eabb056ea207490f
extra : amend_source : a744d833693f0fe7adbea961c00bb5fb55a91580
2016-07-07 12:14:25 -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
Kartikaya Gupta
2238872488 Bug 1262807 - Change the heuristic at which the TiledRegion collapses down to a single rect. r=mstange
MozReview-Commit-ID: CYi3NbPLvnS
2016-06-20 14:50:15 -04:00
Kartikaya Gupta
2c6b1d658a Bug 1262807 - Add logging support for TiledRegion classes. r=mstange
MozReview-Commit-ID: JsmqcpYsyip
2016-06-20 14:50:04 -04:00
Jonathan Watt
4a3d84e333 Bug 1278278 - Remove gfxPDFSurface and move its logic to a PrintTargetPDF subclass of PrintTarget. r=Bas
--HG--
rename : gfx/thebes/gfxPDFSurface.cpp => gfx/thebes/PrintTargetPDF.cpp
rename : gfx/thebes/gfxPDFSurface.h => gfx/thebes/PrintTargetPDF.h
2016-06-06 16:10:28 +01:00
Jonathan Watt
cc6d4f9c08 Bug 1278276 - Remove gfxPSSurface and move its logic to a PrintTargetPS subclass of PrintTarget. r=Bas
--HG--
rename : gfx/thebes/gfxPSSurface.cpp => gfx/thebes/PrintTargetPS.cpp
rename : gfx/thebes/gfxPSSurface.h => gfx/thebes/PrintTargetPS.h
2016-06-06 16:10:28 +01:00
Jonathan Watt
0676eabe9f Bug 1278269 - Make a PrintTarget class and PrintTargetThebes subclass and convert all nsIDeviceContextSpec subclasses to use them. r=Bas 2016-06-03 11:27:31 +01:00
Nicholas Nethercote
a02611e830 Bug 1276824 (part 1) - Rename gfxContext::ForDrawTarget{,WithTransform}(). r=milan.
The new names Create{,PreservingTransform}OrNull() better communicate that
these functions (a) do object creation, and (b) are fallible.

--HG--
extra : rebase_source : a36bd9a2bcdfae281868959403f811f2bc690ad4
2016-06-07 09:39:56 +10:00
Milan Sreckovic
a1cd4e106d Bug 1276947: Environment variable to force the use of the crash guard in nightly. r=dvander
MozReview-Commit-ID: 22O5Qtd0VUZ

--HG--
extra : rebase_source : bceca8e9e74db4a7f40dbafd5f02c22e98b5d695
2016-05-31 10:13:08 -04:00
Keith Yeung
28a4bc1e9e Bug 1274339 - Align resizerpanel and caret in -moz-appearance. r=bobbyholley
--HG--
extra : rebase_source : ce28fd34fd7738abf440d6ae6052059ff549f974
2016-05-19 10:58:00 +02:00
Kartikaya Gupta
9994166655 Bug 1274589 - Rename RegionBuilder::Or to RegionBuilder::OrWith for consistency with the region classes. r=jrmuizel
MozReview-Commit-ID: CIzTVKXUVSs
2016-05-21 00:06:51 -04:00
Keith Yeung
90a39873d8 Bug 1273424 - Rename -moz-appearance keyword constants to be more consistent with CSS keywords. r=bholley 2016-05-18 11:07:47 -07:00
stefanh@inbox.com
d76d8b9c90 Bug 1192053 - Native theming: Support for Mac OS X source lists (background part). r=gijs, mstange. 2016-05-17 07:37:05 +02:00
Chris Peterson
8a9e2d2bd4 Bug 1272513 - Part 2: Remove redundant -Wshadow CXXFLAGS from moz.build files. r=glandium 2016-05-14 00:54:55 -07:00
David Anderson
d180b0cc2a Add an nsIGfxInfo for describing active crash guards. (bug 1270894 part 1, r=milan) 2016-05-10 11:49:16 -07:00
L. David Baron
9ee89fe42f Bug 567283 patch 2 - Rename NS_HexToRGB to NS_HexToRGBA and add parameter saying whether 4 and 8 digit colors are allowed. r=xidorn
This patch tells all callers to use the existing behavior, so it is
intended not to change behavior.  Callers that will be modified in later
patches are marked with "FIXME" comments that will be removed in those
later patches (patches 3 and 4).

MozReview-Commit-ID: FaLryfxaeHv
2016-05-08 22:16:41 -07:00
L. David Baron
bf5666a4c5 Bug 567283 patch 1 - Convert if enclosing most of function into early return. r=xidorn
This conversion just reindents most of the function, but it then avoids
having indentation changes in patch 2.

MozReview-Commit-ID: A5unK4grJ47
2016-05-08 22:16:41 -07:00
David Anderson
0499cd8b51 Fix assertion failure in gfxConfig. (bug 1269565, r=milan)
--HG--
extra : rebase_source : 699112ba0801ea3418b1582b59524f55af21d5cd
2016-05-03 14:53:52 -04:00
David Anderson
a4bd3b332b Replace gfxWindowsPlatform::mD3D11Status with gfxConfig. (bug 1254899 part 9, r=jrmuizel) 2016-04-28 21:52:55 -07:00
David Anderson
802cde670e Give FeatureState a public interface. (bug 1254899 part 8, r=milan) 2016-04-28 21:52:55 -07:00
David Anderson
dbc599bf9b Merge gfxWindowsPlatform::mAcceleration into gfxConfig. (bug 1254899 part 6, r=milan) 2016-04-28 21:52:55 -07:00
David Anderson
47e60f5ed3 Rename FeatureStatus::Crashed to CrashedInHandler. (bug 1254899 part 4, r=milan) 2016-04-28 21:52:55 -07:00
David Anderson
b7528e9778 Introduce gfxConfig, a manager for graphics feature settings. (bug 1254899 part 3, r=milan) 2016-04-28 21:52:54 -07:00
Nicholas Nethercote
2511b2c327 Bug 1267550 (part 2) - Rename MOZ_WARN_UNUSED_RESULT as MOZ_MUST_USE. r=froydnj.
It's an annotation that is used a lot, and should be used even more, so a
shorter name is better.

MozReview-Commit-ID: 1VS4Dney4WX

--HG--
extra : rebase_source : b26919c1b0fcb32e5339adeef5be5becae6032cf
2016-04-27 14:16:50 +10:00
Sebastian Hengst
cab1c27b22 Backed out 13 changesets (bug 1254899) for test failure in browser_Troubleshoot.js. r=backout
Backed out changeset f749ee384012 (bug 1254899)
Backed out changeset 1d7eeee5a5c5 (bug 1254899)
Backed out changeset b5ab83af342c (bug 1254899)
Backed out changeset 993906e53329 (bug 1254899)
Backed out changeset e8abac801a51 (bug 1254899)
Backed out changeset e9c311c68e4a (bug 1254899)
Backed out changeset f8f3ae8c5cef (bug 1254899)
Backed out changeset d17f98a9918a (bug 1254899)
Backed out changeset 21c8a7ea2b93 (bug 1254899)
Backed out changeset 64e58f9625eb (bug 1254899)
Backed out changeset 2de214d5d1e0 (bug 1254899)
Backed out changeset f2056259d227 (bug 1254899)
Backed out changeset b805df0c8296 (bug 1254899)
2016-04-28 10:32:25 +02:00
David Anderson
80d9b8c4ce Replace gfxWindowsPlatform::mD3D11Status with gfxConfig. (bug 1254899 part 9, r=jrmuizel) 2016-04-27 22:54:26 -07:00
David Anderson
d639372189 Give FeatureState a public interface. (bug 1254899 part 8, r=milan) 2016-04-27 22:54:26 -07:00
David Anderson
61b7fa9e83 Merge gfxWindowsPlatform::mAcceleration into gfxConfig. (bug 1254899 part 6, r=milan) 2016-04-27 22:54:25 -07:00
David Anderson
a3c075d00c Rename FeatureStatus::Crashed to CrashedInHandler. (bug 1254899 part 4, r=milan) 2016-04-27 22:54:25 -07:00
David Anderson
98f11088fc Introduce gfxConfig, a manager for graphics feature settings. (bug 1254899 part 3, r=milan) 2016-04-27 22:54:25 -07:00
Kyle Huey
c73656947b Bug 1265927: Move nsRunnable to mozilla::Runnable, CancelableRunnable to mozilla::CancelableRunnable. r=froydnj 2016-04-25 17:23:21 -07:00