gecko-dev/dom
Xidorn Quan 67fd806b66 Bug 1449087 part 2 - Use Servo data to back @font-face rule. r=emilio
This patch does the following things:
* Create a new class ServoFontFaceRule for CSSOM of @font-face rule
  which mostly follows how nsCSSFontFaceRule was implemented.
* Remove the old nsCSSFontFaceRule and binding code to create it.
* Have FontFace backed by Servo data via making mRule and mDescriptors
  of the class hold RawServoFontFaceRule like ServoFontFaceRule.

To keep this patch small, it effectively just delays the conversion
from Servo data to nsCSSValue from parsing to using. This may cause
worse performance if the font set is flushed repeatedly. Supposing we
don't flush font set very frequently, it may not be a big deal.

We may still want to remove the intermediate nsCSSValue conversion at
some point, and have everything converted to their final form directly
when used, but that can happen in followups.

There are some unfortunate bits from this change:
* We lose style sheet for logging in FontFaceSet. This is probably not
  all that worse, because we wouldn't have that before either if the
  page doesn't use CSSOM to visit it. But we should figure out some
  approach to fix it anyway.
* InspectorFontFace no longer shares the same rule object as CSSOM.
  This isn't really a problem if the @font-face rule isn't very mutable.
  Unless we want to make the rule returned from InspectorFontFace to be
  mutable (i.e. via inspector), not using the same object probably isn't
  too bad.

This patch switches the code we use to serialize stuff in FontFace and
CSSFontFaceRule, which leads to some failures in tests. Specifically,
the expected changes including:
* Value of font-family now can be serialized to identifier sequence like
  font-family property. The old code always serializes it to string,
  but it doesn't seem to have different requirement than the property.
  Blink can serialize to identifier as well.
* Family name inside local() is also changed to use the same way as
  family names elsewhere (i.e. can be identifier sequence). Blink has
  the same behavior as the old code, but I don't think it's a big deal.
* The order of descriptors serialized gets changed. I don't think it
  matters at all.
* Empty string as font-family via using string syntax is no longer
  considered invalid for FontFace. I don't find it is mentioned anywhere
  that it should be specifically treated invalid.


MozReview-Commit-ID: 32Fk3Fi9uTs

--HG--
extra : rebase_source : 6221ec8fc56de357b06dd27e770fb175348a2f77
2018-04-04 08:42:10 +10:00
..
abort
animation Bug 1443358 - Consider that the target frame is scrolled out if scrollable parent frame size is empty. r=birtles 2018-04-02 13:34:14 +09:00
asmjscache
audiochannel Bug 1448576 - Use AssignLiteral for short ASCII literal AudioChannelService. r=baku. 2018-03-24 20:11:14 +02:00
base Merge inbound to mozilla-central. a=merge 2018-04-04 00:54:16 +03:00
battery
bindings Bug 1449087 part 2 - Use Servo data to back @font-face rule. r=emilio 2018-04-04 08:42:10 +10:00
broadcastchannel Bug 1442465 - Part 4.2: Stop unnecessarily awaiting on BrowserTestUtils.removeTab (simple part). r=dao 2018-03-19 11:16:45 +09:00
browser-element Bug 1448490 - Make the layers id a struct instead of a uint64_t. r=mattwoodrow 2018-03-24 19:06:01 -04:00
cache Bug 1448500: Add speculative request content policy type. r=bz, r=kmag 2018-03-23 15:27:08 -07:00
canvas Bug 1362248 - Disable dom/canvas/test/reftest/webgl-color-test.html?native-gl == dom/canvas/test/reftest/wrapper.html?colors-no-alpha.png for frequent failures. r=jmaher 2018-04-03 17:48:22 +02:00
chrome-webidl Bug 1448500: Add speculative request content policy type. r=bz, r=kmag 2018-03-23 15:27:08 -07:00
clients Bug 1446225 - Ensure client id's are consistently {}-less UUIDs. r=catalinb 2018-03-22 11:33:13 -04:00
commandhandler
console Bug 1378552 - Reduce the liklihood of inadvertently misusing NullPrincipal::Create(). r=ckerschb 2018-03-22 13:36:20 -05:00
credentialmanagement Bug 1444605 - Fix perma-orange browser_active_document.js r=johannh 2018-03-12 11:51:05 +01:00
crypto Bug 1440627 - Use fallible setLength in StructuredCloneHolder. r=baku 2018-02-23 14:57:00 +01:00
encoding
events Bug 1437281 - OSX dragging image to desktop changes OSX File associations r=mystor 2018-03-27 14:55:33 -07:00
fetch Bug 1448500: Add speculative request content policy type. r=bz, r=kmag 2018-03-23 15:27:08 -07:00
file Bug 1447330 - nsHostObjectURI does not define ReadPrivate. r=mayhemer 2018-03-20 16:40:36 +01:00
filehandle
filesystem
flex
gamepad Bug 1403185 - Fix button value index lookup oob for Windows Gamepads; r=ted 2018-03-28 15:54:53 -07:00
geolocation Bug 1442039 part 14. Remove nsDOMClassInfoID.h. r=peterv 2018-03-21 23:13:30 -04:00
grid
html Bug 1443958 - Synthesizing a click() on input type=date should not show the date picker UI , r=mconley 2018-03-30 02:51:17 +03:00
imptests
indexedDB Bug 1441141 - Update the StructuredCloneAlgorithm to follow the latest version of the spec, r=smaug, r=sfink 2018-03-28 09:23:17 +02:00
interfaces Bug 1450418. Get rid of nsIDOMScreen. r=qdot 2018-04-03 00:42:41 -04:00
ipc Merge mozilla-central to inbound. a=merge CLOSED TREE 2018-03-29 01:00:42 +03:00
jsurl Bug 1442242 - Make the constuctors of URI implementations private r=mayhemer 2018-03-20 23:23:31 +01:00
locales Bug 1446668: Remove now unused localization message. r=smaug 2018-03-18 01:53:14 +01:00
manifest
mathml Bug 1449798 - Remove GenericSpecifiedValues::ShouldComputeStyleStruct and mSIDs. r=emilio 2018-03-29 12:39:07 +11:00
media Merge mozilla-central to autoland. a=merge CLOSED TREE 2018-04-04 00:56:56 +03:00
messagechannel Bug 1441141 - Update the StructuredCloneAlgorithm to follow the latest version of the spec, r=smaug, r=sfink 2018-03-28 09:23:17 +02:00
midi
network Bug 1436784 - Use WorkerRef in DOM Connection, r=smaug 2018-03-13 21:17:02 +01:00
notification Bug 1446527 part 7. Remove the various NS_FORWARD_TO_EVENT bits. r=qdot 2018-03-26 14:53:03 -04:00
offline
payments Bug 1441709 - Support PaymentRequest.show() with an optional PaymentDetailsUpdate promise parameter. r=baku 2018-04-02 23:12:21 +08:00
performance Merge mozilla-central to autoland. a=merge on a CLOSED TREE 2018-03-15 00:10:23 +02:00
permission
plugins Bug 1443892 - Add -MOZ_LOG and -MOZ_LOG_FILE command line arguments. r=erahm, r=nfroyd 2018-04-03 11:32:00 -04:00
power
presentation Bug 1444143 part 2. Remove nsIFrameLoader::GetDocShell. r=mystor 2018-03-21 22:43:15 -04:00
promise Bug 1445540 - Use WorkerRef in PromiseWorkerProxy, r=smaug 2018-03-14 15:26:33 +01:00
push Bug 1447397 - avoid allocating too much memory in test_crypto_encrypt.js, avoiding OOM on win32. r=kitcambridge 2018-03-21 09:34:41 +11:00
quota Bug 1443079 - nsScriptError.isFromPrivateWindow must match the correct value also in e10s mode, r=smaug 2018-03-13 06:40:38 +01:00
res
script Bug 1440827 - Cancel preloaded requests if we decide not to use them r=baku 2018-03-29 17:11:41 +01:00
security Bug 1448500: Add speculative request content policy type. r=bz, r=kmag 2018-03-23 15:27:08 -07:00
serviceworkers Bug 1448141 P5 Remove the service worker script load failure runnable. r=asuth 2018-04-02 07:50:23 -07:00
smil Backed out 3 changesets (bug 1449321, bug 1449566, bug 1449565) as per developer request. 2018-03-28 18:10:11 +03:00
storage Backed out 4 changesets (bug 1437167) for build bustages on nsUpdateDriver.cpp and WindowsMessageLoop.cpp on a CLOSED TREE. 2018-03-06 00:09:46 +02:00
svg Bug 1446617 - support the SVG 2 path attribute for textPath elements r=dholbert 2018-03-31 18:50:10 +01:00
system
tests Bug 1446247 - Pass namespace into IsCustomElementName to allow for non-dashed XUL elements;r=e7358d9c+590837,smaug 2018-03-29 09:34:56 -07:00
u2f Bug 1442465 - Part 4.2: Stop unnecessarily awaiting on BrowserTestUtils.removeTab (simple part). r=dao 2018-03-19 11:16:45 +09:00
url Bug 1448586 - Avoid useless use of NS_LITERAL_CSTRING when prefixing query string with question mark. r=smaug. 2018-03-24 21:16:51 +02:00
vr Bug 1436791 - Implement gfxVRExternal,r=rbarker 2018-03-13 17:09:54 -07:00
webauthn Bug 1449034 - Update Rust crates to use lazy_static 1.0. r=ted 2018-03-26 15:12:56 -07:00
webbrowserpersist Bug 1444143 part 12. Remove use of nsIFrameLoader from XPIDL files. r=mystor 2018-03-21 22:43:17 -04:00
webidl Bug 1441709 - Support PaymentRequest.show() with an optional PaymentDetailsUpdate promise parameter. r=baku 2018-04-02 23:12:21 +08:00
websocket Bug 1439713 - Change nsIContentPolicy shouldLoad to take an <uri, loadInfo> pair instead of the various args. r=bz 2018-03-29 12:16:23 +02:00
workers Bug 1448141 P5 Remove the service worker script load failure runnable. r=asuth 2018-04-02 07:50:23 -07:00
worklet
xbl Bug 1449807: Don't flush in nsXBLResourceLoader::NotifyBoundElements. r=bz 2018-03-31 00:03:39 +02:00
xhr Bug 1448587 - Use AssignASCII for XHR event type. r=baku. 2018-03-24 21:21:51 +02:00
xml Bug 1439713 - Change nsIContentPolicy shouldLoad to take an <uri, loadInfo> pair instead of the various args. r=bz 2018-03-29 12:16:23 +02:00
xslt Bug 1449404 part 3. Get rid of nsIContent::AppendTextTo. r=mccr8 2018-03-28 18:01:47 -04:00
xul Bug 1335191 - Remove support for the attributes "activetitlebarcolor" and "inactivetitlebarcolor" for XUL window elements. r=emilio 2018-03-24 01:14:23 -04:00
jar.mn
moz.build Backed out 2 changesets (bug 1442931) for build bustages at ..\dom\bindings\mozwebidlcodegen\test\test_mozwebidlcodegen.py::TestWebIDLCodegenManager::test_copy_input on a CLOSED TREE 2018-03-07 08:53:06 +02:00