122 Commits

Author SHA1 Message Date
Hiroyuki Ikezoe
665da78452 Bug 1364799 - Add PostRestyleEventForCSSRuleChanges to distinguish PostRestyleEvent. r=birtles,heycam
The difference is that PostRestyleEventForCSSRuleChanges sets
mRestyleForCSSRuleChanges true. In a subsequent patch,
we propagate a new TraversalRestyleBehavior flag to servo side
if mRestyleForCSSRuleChanges is true.

MozReview-Commit-ID: IKsBbm09uT9

--HG--
extra : rebase_source : 5014c0a978f98e81543ec7766d2daa415317069c
2017-05-21 08:16:26 +09:00
Sebastian Hengst
af0f9643cf merge mozilla-central to autoland. r=merge a=merge 2017-05-20 18:53:36 +02:00
Olli Pettay
2d735273d9 Bug 1366250, don't flush layout when calling element.focus() on already focused element. Ensure layout is flushed after changing input.type, r=ehsan
--HG--
extra : rebase_source : 294d0220cc3c2b6be38566ff28722c5e9acc87a9
2017-05-19 23:20:48 +03:00
Boris Chiou
38215cedea Bug 1334036 - Part 11: Trigger animation-only restyle when we handle an event with coordinates. r=birtles,heycam
We need to request an animation-only restyle to force flush all throttled
animations on main thread when we handle an event with coordinates
(e.g. mouse event).

MozReview-Commit-ID: KkjeQVsLgTl

--HG--
extra : rebase_source : 314408062e719e9f52df9a6726e2f3dad817bbef
2017-05-19 16:16:41 +08:00
Wes Kocher
02bf8c4425 Merge m-c to inbound, a=merge
MozReview-Commit-ID: FfNikA7un6F
2017-05-10 17:31:18 -07:00
Bas Schouten
dafd50f856 Bug 1331718 - Part 3: Store pointers to DisplayItemData directly on nsIFrame. r=mattwoodrow r=dbaron
This patch aims to speed up the lookup and storage of DisplayItemData objects, by removing a level of indirection and preventing the previously required hashtable lookup in order to access these. Instead it stores an array of pointers on each frame that allows direct access to the DisplayItemData object by dereferencing the frame. Since most frames get either 1 or 2 DisplayItemData objects attached to them a specialized class is used that is of minimal size (2 * sizeof(void)) and that performs well for sizes 1 or 2.

MozReview-Commit-ID: HONKAmpk5H8
2017-05-10 05:07:38 +02:00
Chris H-C
b465ec140b bug 1362404 - Handle out-of-order overlapping event coalescing. r=masayuki
There are situations where events may be handled out-of-order. Allow
coalescing to happen backwards in time as well as forwards to cover them.

MozReview-Commit-ID: 3k7vNFxE1cz

--HG--
extra : rebase_source : 636a3671536747cf62cb410836b4c5a2275bbb49
2017-05-09 11:07:40 -04:00
Carsten "Tomcat" Book
a1263f8111 Backed out changeset ff6861518bc3 (bug 1331718) 2017-05-10 12:09:04 +02:00
Bas Schouten
70d011d12c Bug 1331718 - Part 3: Store pointers to DisplayItemData directly on nsIFrame. r=mattwoodrow r=dbaron
This patch aims to speed up the lookup and storage of DisplayItemData objects, by removing a level of indirection and preventing the previously required hashtable lookup in order to access these. Instead it stores an array of pointers on each frame that allows direct access to the DisplayItemData object by dereferencing the frame. Since most frames get either 1 or 2 DisplayItemData objects attached to them a specialized class is used that is of minimal size (2 * sizeof(void)) and that performs well for sizes 1 or 2.

MozReview-Commit-ID: HONKAmpk5H8
2017-05-10 05:07:38 +02:00
Wei-Cheng Pan
cd1468cb2b Bug 1345540 - Measure input event handling latency. r=bsmedberg,smaug, data-review?bsmedberg
MozReview-Commit-ID: 9mvwMewgIkJ

--HG--
extra : rebase_source : 659976746df68beddfc3281586d03b25a56e0ca0
2017-04-18 11:25:21 +08:00
Carsten "Tomcat" Book
2a74ba4261 Merge mozilla-central to autoland 2017-05-02 11:23:38 +02:00
Matt Woodrow
82005900e6 Bug 1349418 - Put the unscrolled item in the right place when we're doing container scrolling. r=mstange 2017-04-28 12:45:36 +12:00
Emilio Cobos Álvarez
23bce99ae1 Bug 1361051: rename mozilla::FrameType to mozilla::LayoutFrameType. r=xidorn
This avoids conflicts with mozilla::dom::FrameType.

MozReview-Commit-ID: 7aEMbHRaTFk

--HG--
extra : rebase_source : 2d01321f5ce0ec8c0e3f70984674f82678034b3c
2017-05-01 19:32:52 +02:00
Markus Stange
2a35142b62 Bug 1349418 - Remove checkerboarding code and just use an opaque background color behind root scroll frames. r=kats 2017-04-21 14:02:15 +12:00
Emilio Cobos Álvarez
1e75c0c5e1 Bug 1361041: Avoid posting ReconstructFrame hints to an uninitialized PresShell. r=bz
The call that's causing the crash seems to be [1], that is, we're trying to
recreate frames for the root element, which should always have a frame created
at the initialization of the PresShell.

So the function I removed in that bug had something like the following:

  if (!mDidInitialize) {
    // Nothing to do here.  In fact, if we proceed and aContent is the
    // root we will crash.
    return NS_OK;
  }

Which PostRecreateFramesFor doesn't guard against (because I thought it was not
needed, per tryserver results).

Sounds a lot like we do need that check, though I'd like to have a testcase
where it happens :(

[1]: http://searchfox.org/mozilla-central/rev/3dc6ceb42746ab40f1441e1e659ffb8f62ae78e3/layout/base/nsCSSFrameConstructor.cpp#2420

MozReview-Commit-ID: Lh6SohNmmI6

--HG--
extra : rebase_source : 5b7076f86d41f5489e47ca16ac2f3620812ee9e8
2017-05-01 18:59:50 +02:00
Emilio Cobos Álvarez
e44543aad4 Bug 1360241: Devirtualize nsIFrame::GetType. r=heycam
MozReview-Commit-ID: 5Nzhyta5Hle

--HG--
extra : rebase_source : c2e9d4bfb9239f5e851d110cd7dff98c1e1a8d8b
2017-04-30 17:30:08 +02:00
Chris H-C
c2c97d341c bug 1357457 - Report non-overlapping Input Responses to Telemetry. r=bsmedberg,masayuki data-r=bsmedberg
Say there's a single lag event, a GC or a busy loop, during which the user
types several characters.

Is this one (lag) event? Several (input) events?

We have INPUT_EVENT_RESPONSE_MS which will accumulate several lagged events in
this case. However, that is more of an indication of how users use Firefox than
how good we've been at eliminating sources of lag.

INPUT_EVENT_RESPONSE_COALESCED_MS records the coalesced time spend waiting for
responses to input events. So in this case it will record one value for the
entire duration of the lag.

MozReview-Commit-ID: H5rYnhwF0q3

--HG--
extra : rebase_source : b9be179dac6c6a007d2835b909ec4ce71a3f1c90
2017-04-19 15:53:30 -04:00
Masatoshi Kimura
a4c9e326d4 Bug 1358758 - Use CSSIntRect for nsIFrame::GetScreenRect. r=kats
MozReview-Commit-ID: KXPL1ERbFDa

--HG--
extra : rebase_source : 263b18d1736b09bb62d914f066481281966b288c
2017-04-25 07:33:13 +09:00
Emilio Cobos Álvarez
e868552184 Bug 1336863: Flush stylesheets in RestyleForCSSRuleChanges if not under an update. r=heycam
This also moves the NoteStyleSheetsChanged to RecordStylesheetChange, which
makes more sense, and stopped special-casing author styles, since it's not
needed now.

MozReview-Commit-ID: 9WKFa0JxqlU

--HG--
extra : rebase_source : 5803620c98309bd2fbb542158e69ef3ddcee9a4b
2017-04-25 21:03:18 +02:00
Emilio Cobos Álvarez
d2f3dc13ec Bug 1357142: Kill PresShell::RecreateFramesFor. r=bz
It's not only inefficient, but also prone to buggyness. Since styles may not be
up-to-date when it happens.

Post a reconstruct instead, which ensures a style flush happens before running
frame construction.

MozReview-Commit-ID: DrakHsJv5fY
Signed-off-by: Emilio Cobos Álvarez <emilio@crisal.io>

--HG--
extra : rebase_source : 11900af908654336cc2391ab9480542c5474e38f
2017-04-17 18:01:37 +02:00
Sebastian Hengst
6e1c138a06 Backed out changeset 435e638babd1 (bug 1349418) for failing checkerboard-{1,2,3}.html on Android 4.3. r=backout a=backout
MozReview-Commit-ID: Au7FbypQNvf
2017-04-21 18:01:24 +02:00
Markus Stange
853d16cc7d Bug 1349418 - Remove checkerboarding code and just use an opaque background color behind root scroll frames. r=kats
--HG--
extra : rebase_source : d6b27d8b36eb8329cead0bd184c7ec6fd983ba53
2017-04-21 14:02:15 +12:00
Astley Chen
e4081a158f Bug 1355752 - Remove B2G code from PresShell files. r=jrmuizel
MozReview-Commit-ID: FIap9QM0vve

--HG--
extra : rebase_source : f80c009d67293b74b4c645f0e013842c6098d8ad
2017-04-20 13:16:42 +08:00
Chris H-C
7553f146c1 bug 1357742 - Drop INPUT_EVENT_RESPONSE_MS measurements across sleep/wake r=smaug
It is possible that events created before the OS goes to sleep will remain
unhandled until after the OS wakes. They will have long response times on
platforms where TimeStamp increments during sleep (like Windows) even though
they really shouldn't. (and the user likely doesn't care if they do).

So don't record those.

MozReview-Commit-ID: 4ybjF8gjkae

--HG--
extra : rebase_source : ff48923c6589d9cbac3284dd81f28598677ca449
2017-04-19 11:17:20 -04:00
Ting-Yu Lin
4dfd125235 Bug 1356971 - Use StyleSetHandle::BackendType in PresShell::Init(). r=bholley
MozReview-Commit-ID: DCKafKa6SLt

--HG--
extra : rebase_source : 8b6b80df31e2c5c8f9dcb87fc775d66737d5a820
2017-04-17 14:52:17 +08:00
Brad Werth
e50d5d4bbe Bug 1341721 Part 1: ServoStyleSet implementation of SetAuthorStyleDisabled. r=heycam
MozReview-Commit-ID: Bd0TJDfcj94

--HG--
extra : rebase_source : c5904f67f4303e14a785d0526190e51bc987f4c9
2017-04-11 15:43:14 +08:00
Iris Hsiao
22dd380d12 Backed out changeset 3910de7acce3 (bug 1349418)
--HG--
extra : rebase_source : e0ddc3d0c48256acd0996f16d3198560041f9c3e
2017-04-10 14:42:38 +08:00
Nicholas Nethercote
c54a8b6198 Bug 1353948 - Add SizeOfIncludingThis() methods to ServoStyle{Set,Sheet,SheetInner}. r=heycam.
This fills things in a bit more on the Gecko side.

--HG--
extra : rebase_source : a7cd16969fa0ce06f7d9e39f83d67bf3bd472ea4
2017-04-06 12:22:36 +10:00
Markus Stange
650ae288f5 Bug 1349418 - Remove checkerboarding code and just use an opaque background color behind root scroll frames. r=kats 2017-04-10 17:01:53 +12:00
Masayuki Nakano
09c6c60b8a Bug 1343642 - Ensure to grab nsFrameSelection before calling its methods unless calling only const methods. r=smaug
MozReview-Commit-ID: 9GKujCcrhly
2017-04-06 13:11:52 +09:00
Timothy Nikkel
cba42d43ac Bug 1346109. Call NotifyApproximateFrameVisibilityUpdate after we set a display port base rect. r=botond
NotifyApproximateFrameVisibilityUpdate gets the displayport so we want the base rect set before calling it.

We also don't want to record the displayport if we ignored it in the actual visibility pass.
2017-04-05 00:18:11 -05:00
Markus Stange
fcdd5dbd1f Bug 1351920 - Remove the nsCString&& version of PROFILER_LABEL_DYNAMIC because it makes misleading promises about performance. r=njn
MozReview-Commit-ID: I4y5xnFyfUj

--HG--
extra : rebase_source : 8cd3d9fc90df1cb7ff6199cf0a5b1cf3319bebe0
2017-03-29 21:47:51 -04:00
Wei-Cheng Pan
8134134fcf Bug 1350624 - Adjust *_EVENT_RECEIVED_MS telemetry probes. r=mystor
MozReview-Commit-ID: KUsBulGRINn

--HG--
extra : rebase_source : 76767393dc918f883d2ee7620960de76e6bc798a
2017-03-30 14:52:14 -04:00
Emilio Cobos Álvarez
fc80cf434d Bug 1351275: Move style flush observer logic to nsIPresShell, and align layout observing code. r=bholley
MozReview-Commit-ID: 2oUTNfTS4Ku
Signed-off-by: Emilio Cobos Álvarez <emilio@crisal.io>

--HG--
extra : rebase_source : 97d055e6682cbe81eaf32c365004f194a0ae1935
2017-03-29 15:41:11 +02:00
Cameron McCormack
c4f1f8e321 Bug 1350671 - stylo: Allow resolving out of date styles when explicitly reconstructing frames for an element. r=bholley
MozReview-Commit-ID: 7w9pehHNXQ

--HG--
extra : rebase_source : 1476b4397a4384046c324f0176ecd9f699b026bd
2017-03-28 15:31:41 +08:00
Bobby Holley
574f17af66 Bug 1351518 - Stop bailing out before NS_DOCUMENT_STATE_WINDOW_INACTIVE check for stylo. r=heycam
MozReview-Commit-ID: 2XQS3XJcvj4
2017-03-28 18:54:10 -07:00
Iris Hsiao
5bed2bfda5 Backed out changeset 6e4ccddb5c4b (bug 1350671) for build bustage 2017-03-28 15:23:59 +08:00
Cameron McCormack
e945f00cd0 Bug 1350671 - stylo: Allow resolving out of date styles when explicitly reconstructing frames for an element. r=bholley
MozReview-Commit-ID: A7ssy7ygWLh

--HG--
extra : rebase_source : 7f8fa109f1a739b68525e3ff662024267189d93f
2017-03-28 13:46:59 +08:00
Jan Henning
8a6b5c9c8a Bug 1328868 - Part 2 - Apply the system font scale as an additional text zoom factor to all pages that are not font inflated. r=tnikkel
We want to use a similar model as Chrome on Android does for scaling our display of web content, that is use font inflation for desktop pages and plain text zooming for everything else.

Since we don't want to simply clobber any text zoom that might have been set by the user/front-end code, we allow setting and storing the system font scale separately on the PresContext. We then calculate the effective text zoom value as the product of the system font scale and the current text zoom value.

Any function that is using the PresContext's TextZoom value for layouting/rendering is switched over to this new EffectiveTextZoom value, whereas functions that are interested in the text zoom as actually set by the user/front-end (e.g. the nsDocumentViewer, or the code responsible for copying text and full zoom settings into the new PresContext on page navigation) continue using the plain TextZoom value.

As long as font inflation is enabled in principle (e.g. font.size.inflation.minTwips != 0), every page starts out as eligible for font inflation until the relevant meta viewport tags marking the page as "mobile friendly" have been detected. Since the PresShell caches the font inflation state and only recalculates it when necessary, we make use of that and set the PresContext's system font scale as necessary whenever the font inflation state has been refreshed.

MozReview-Commit-ID: 2InyE04wKAW

--HG--
extra : rebase_source : 3f6d7128f37c1dc18f67a6655f86d9a3003fe90b
extra : source : 6100458b97289f9aea5ac8fda57ded045e6860b7
2017-02-25 13:22:52 +01:00
Thinker K.F. Li
b8ad325f66 Bug 1323076 - Part 6: HandleEvent with flag checking for TaskTracer. r=smaug 2017-03-22 21:41:00 +01:00
KuoE0
c3873bb1dc Bug 1342863 - (Part 6) DocGroup labeling for timer callback in PresShell. r=dholbert
MozReview-Commit-ID: 9gfiu9DN2aT

--HG--
extra : rebase_source : d34c368a9b495bf7d84ceb93222dc8c33465a205
2017-03-15 17:37:24 +08:00
KuoE0
e6b40608fd Bug 1342863 - (Part 1) DocGroup labeling for runnables dispatched by NS_DispatchTo(Main|Current)Thread in PresShell. r=dholbert
MozReview-Commit-ID: HNBIDrSAo5B

--HG--
extra : rebase_source : edba806b7f7e9e9c5da99285828d8c99001eee38
2017-03-09 17:08:41 +08:00
Wei-Cheng Pan
60a694bdf1 Bug 1341531 - Measure input event dispatching latency. (*_EVENT_RECEIVED_MS) r=smaug
This patch measures the time from an input event creation, to it been
dispatched to PresShell, but just before any handler been executed.

MozReview-Commit-ID: 6ZYra7YYICY

--HG--
extra : rebase_source : fb864ab2ec7af3d59f4a4ccf52667f34dcd588d6
2017-02-08 15:11:53 +08:00
Carsten "Tomcat" Book
ebfcff23e8 Backed out changeset 17d753a5dd9a (bug 1342863) for bustage 2017-03-23 08:41:57 +01:00
Carsten "Tomcat" Book
c1e924f7d0 Backed out changeset 07e257b46b6f (bug 1342863) 2017-03-23 08:41:25 +01:00
KuoE0
16cb383ef6 Bug 1342863 - (Part 6) DocGroup labeling for timer callback in PresShell. r=dholbert
MozReview-Commit-ID: 9gfiu9DN2aT

--HG--
extra : rebase_source : d34c368a9b495bf7d84ceb93222dc8c33465a205
2017-03-15 17:37:24 +08:00
KuoE0
940546aa6f Bug 1342863 - (Part 1) DocGroup labeling for runnables dispatched by NS_DispatchTo(Main|Current)Thread in PresShell. r=dholbert
MozReview-Commit-ID: HNBIDrSAo5B

--HG--
extra : rebase_source : edba806b7f7e9e9c5da99285828d8c99001eee38
2017-03-09 17:08:41 +08:00
Markus Stange
730b4fc829 Bug 1339897 - Rename PROFILER_LABEL_PRINTF to PROFILER_LABEL_DYNAMIC and make it really cheap. r=Ehsan,njn
Instead of copying and concatenating strings into an mDest buffer in
SamplerStackFramePrintfRAII, require callers to keep the string buffer alive
for the duration of the current scope, and store the pointer to the annotation
string in the ProfileEntry. During stackwalking, concatenate the label and the
annotation (separated by a space) and store the resulting string in the
profile buffer.

MozReview-Commit-ID: GEjcLrhhdvb

--HG--
extra : rebase_source : 683749421ee2122805a249cf413e882ee5f33331
2017-03-22 19:37:33 -04:00
Iris Hsiao
25b734e893 Backed out changeset 140374af2570 (bug 1341531) for build bustage 2017-03-22 15:52:39 +08:00
Wei-Cheng Pan
4c78d0812e Bug 1341531 - Measure input event dispatching latency. (*_EVENT_RECEIVED_MS) r=smaug
This patch measures the time from an input event creation, to it been
dispatched to PresShell, but just before any handler been executed.

MozReview-Commit-ID: 6ZYra7YYICY

--HG--
extra : rebase_source : 019521545132e72113a87c06cfbe562a9915522d
2017-02-08 15:11:53 +08:00