MFH: r461350
www/waterfox: apply more FF57 fixes Approved by: ports-secteam blanket
This commit is contained in:
parent
16f18608e0
commit
5088bf5d9c
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/branches/2018Q1/; revision=461353
@ -2,7 +2,7 @@
|
||||
|
||||
PORTNAME= waterfox
|
||||
DISTVERSION= 56.0.4
|
||||
PORTREVISION= 2
|
||||
PORTREVISION= 3
|
||||
CATEGORIES= www ipv6
|
||||
|
||||
MAINTAINER= jbeich@FreeBSD.org
|
||||
|
120
www/waterfox/files/patch-bug1338764
Normal file
120
www/waterfox/files/patch-bug1338764
Normal file
@ -0,0 +1,120 @@
|
||||
commit 0e98738d78b9
|
||||
Author: Xidorn Quan <me@upsuper.org>
|
||||
Date: Mon Jul 17 15:10:50 2017 +1000
|
||||
|
||||
Bug 1338764 part 1 - Use const rather than enum for context flags of nsStyleSVG. r=manishearth
|
||||
|
||||
MozReview-Commit-ID: KzORnfVXgLJ
|
||||
|
||||
--HG--
|
||||
extra : rebase_source : 365842d6e6fda4b35a5932272773a3d88bfc04c6
|
||||
---
|
||||
layout/style/nsStyleStruct.h | 22 +++++++++++++---------
|
||||
1 file changed, 13 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git layout/style/nsStyleStruct.h layout/style/nsStyleStruct.h
|
||||
index 59833e37f3bb..eccc02380f7e 100644
|
||||
--- layout/style/nsStyleStruct.h
|
||||
+++ layout/style/nsStyleStruct.h
|
||||
@@ -3603,15 +3603,19 @@ private:
|
||||
// Flags to represent the use of context-fill and context-stroke
|
||||
// for fill-opacity or stroke-opacity, and context-value for stroke-dasharray,
|
||||
// stroke-dashoffset and stroke-width.
|
||||
- enum {
|
||||
- FILL_OPACITY_SOURCE_MASK = 0x03, // fill-opacity: context-{fill,stroke}
|
||||
- STROKE_OPACITY_SOURCE_MASK = 0x0C, // stroke-opacity: context-{fill,stroke}
|
||||
- STROKE_DASHARRAY_CONTEXT = 0x10, // stroke-dasharray: context-value
|
||||
- STROKE_DASHOFFSET_CONTEXT = 0x20, // stroke-dashoffset: context-value
|
||||
- STROKE_WIDTH_CONTEXT = 0x40, // stroke-width: context-value
|
||||
- FILL_OPACITY_SOURCE_SHIFT = 0,
|
||||
- STROKE_OPACITY_SOURCE_SHIFT = 2,
|
||||
- };
|
||||
+
|
||||
+ // fill-opacity: context-{fill,stroke}
|
||||
+ static const uint8_t FILL_OPACITY_SOURCE_MASK = 0x03;
|
||||
+ // stroke-opacity: context-{fill,stroke}
|
||||
+ static const uint8_t STROKE_OPACITY_SOURCE_MASK = 0x0C;
|
||||
+ // stroke-dasharray: context-value
|
||||
+ static const uint8_t STROKE_DASHARRAY_CONTEXT = 0x10;
|
||||
+ // stroke-dashoffset: context-value
|
||||
+ static const uint8_t STROKE_DASHOFFSET_CONTEXT = 0x20;
|
||||
+ // stroke-width: context-value
|
||||
+ static const uint8_t STROKE_WIDTH_CONTEXT = 0x40;
|
||||
+ static const uint8_t FILL_OPACITY_SOURCE_SHIFT = 0;
|
||||
+ static const uint8_t STROKE_OPACITY_SOURCE_SHIFT = 2;
|
||||
|
||||
uint8_t mContextFlags; // [inherited]
|
||||
};
|
||||
|
||||
commit 63d6f06939ee
|
||||
Author: Xidorn Quan <me@upsuper.org>
|
||||
Date: Tue Aug 1 16:05:04 2017 +1000
|
||||
|
||||
Bug 1338764 part 2 - Add context-{fill,stroke}-opacity support to {fill,stroke}-opacity. r=manishearth
|
||||
|
||||
MozReview-Commit-ID: HzUHmZb8ICl
|
||||
|
||||
--HG--
|
||||
extra : rebase_source : b8746c4d9d4cfc3abe6645f583dc08d0f7c75341
|
||||
---
|
||||
layout/style/ServoBindings.toml | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git layout/style/ServoBindings.toml layout/style/ServoBindings.toml
|
||||
index 5e09c24eb0e3..6d8e979fdc1f 100644
|
||||
--- layout/style/ServoBindings.toml
|
||||
+++ layout/style/ServoBindings.toml
|
||||
@@ -232,6 +232,7 @@ whitelist-types = [
|
||||
"nsStylePadding",
|
||||
"nsStylePosition",
|
||||
"nsStyleSVG",
|
||||
+ "nsStyleSVGOpacitySource",
|
||||
"nsStyleSVGPaint",
|
||||
"nsStyleSVGReset",
|
||||
"nsStyleTable",
|
||||
@@ -458,6 +459,7 @@ structs-types = [
|
||||
"nsStylePosition",
|
||||
"nsStyleQuoteValues",
|
||||
"nsStyleSVG",
|
||||
+ "nsStyleSVGOpacitySource",
|
||||
"nsStyleSVGPaint",
|
||||
"nsStyleSVGReset",
|
||||
"nsStyleTable",
|
||||
|
||||
commit 03e036aff26d
|
||||
Author: Xidorn Quan <me@upsuper.org>
|
||||
Date: Tue Aug 1 16:38:27 2017 +1000
|
||||
|
||||
Bug 1338764 part 3 - Update test expectations. r=manishearth
|
||||
|
||||
MozReview-Commit-ID: HzN5WP210G7
|
||||
|
||||
--HG--
|
||||
extra : rebase_source : c3585958cb5159a242515a80f226e43f506319d8
|
||||
---
|
||||
layout/style/test/stylo-failures.md | 8 --------
|
||||
1 file changed, 8 deletions(-)
|
||||
|
||||
diff --git layout/style/test/stylo-failures.md layout/style/test/stylo-failures.md
|
||||
index 0509269b1334..d69fa898d9be 100644
|
||||
--- layout/style/test/stylo-failures.md
|
||||
+++ layout/style/test/stylo-failures.md
|
||||
@@ -34,10 +34,6 @@ to mochitest command.
|
||||
* Animation support:
|
||||
* SMIL Animation
|
||||
* test_restyles_in_smil_animation.html [2]
|
||||
-* Unsupported values
|
||||
- * SVG-in-OpenType values not supported servo/servo#15211 bug 1338764
|
||||
- * test_value_storage.html `context-` [7]
|
||||
- * test_bug798843_pref.html [3]
|
||||
* Incorrect serialization
|
||||
* place-{content,items,self} shorthands bug 1363971
|
||||
* test_align_shorthand_serialization.html [6]
|
||||
@@ -58,7 +54,3 @@ to mochitest command.
|
||||
## Unknown / Unsure
|
||||
|
||||
## Ignore
|
||||
-
|
||||
-* Ignore for now since should be mostly identical to test_value_storage.html
|
||||
- * test_value_cloning.html [*]
|
||||
- * test_value_computation.html [*]
|
27
www/waterfox/files/patch-bug1352453
Normal file
27
www/waterfox/files/patch-bug1352453
Normal file
@ -0,0 +1,27 @@
|
||||
commit 96ac0874dc2e
|
||||
Author: Ethan Lin <ethlin@mozilla.com>
|
||||
Date: Sat Sep 23 15:06:07 2017 +0800
|
||||
|
||||
Bug 1352453 - Check image dimension when computing border space size. r=heycam, a=sledru
|
||||
|
||||
MozReview-Commit-ID: LQcf9UGyUUq
|
||||
|
||||
--HG--
|
||||
extra : source : 6974ff079df11b3e7dc46e2df754149321e3f3aa
|
||||
---
|
||||
layout/painting/nsCSSRendering.cpp | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git layout/painting/nsCSSRendering.cpp layout/painting/nsCSSRendering.cpp
|
||||
index 89760f33229b..55051c9ac376 100644
|
||||
--- layout/painting/nsCSSRendering.cpp
|
||||
+++ layout/painting/nsCSSRendering.cpp
|
||||
@@ -3068,7 +3068,7 @@ nsCSSRendering::ComputeBorderSpacedRepeatSize(nscoord aImageDimension,
|
||||
nscoord aAvailableSpace,
|
||||
nscoord& aSpace)
|
||||
{
|
||||
- int32_t count = aAvailableSpace / aImageDimension;
|
||||
+ int32_t count = aImageDimension ? (aAvailableSpace / aImageDimension) : 0;
|
||||
aSpace = (aAvailableSpace - aImageDimension * count) / (count + 1);
|
||||
return aSpace + aImageDimension;
|
||||
}
|
101
www/waterfox/files/patch-bug1360603
Normal file
101
www/waterfox/files/patch-bug1360603
Normal file
@ -0,0 +1,101 @@
|
||||
commit b5d0a61cd5df
|
||||
Author: Amy Chung <amchung@mozilla.com>
|
||||
Date: Sun Sep 24 00:38:32 2017 +0800
|
||||
|
||||
Bug 1360603 - Mark the save channel as throttleable. r=baku, a=sledru
|
||||
|
||||
--HG--
|
||||
extra : source : d409c2ac7d88b7193e8369aa3359a9368e1135b3
|
||||
---
|
||||
dom/webbrowserpersist/nsWebBrowserPersist.cpp | 7 +++++++
|
||||
1 file changed, 7 insertions(+)
|
||||
|
||||
diff --git dom/webbrowserpersist/nsWebBrowserPersist.cpp dom/webbrowserpersist/nsWebBrowserPersist.cpp
|
||||
index a9b37ed281ca..a5971216d8b4 100644
|
||||
--- dom/webbrowserpersist/nsWebBrowserPersist.cpp
|
||||
+++ dom/webbrowserpersist/nsWebBrowserPersist.cpp
|
||||
@@ -13,6 +13,7 @@
|
||||
#include "nsAutoPtr.h"
|
||||
#include "nsNetCID.h"
|
||||
#include "nsNetUtil.h"
|
||||
+#include "nsIClassOfService.h"
|
||||
#include "nsIInterfaceRequestorUtils.h"
|
||||
#include "nsILoadContext.h"
|
||||
#include "nsIPrivateBrowsingChannel.h"
|
||||
@@ -1497,6 +1498,12 @@ nsresult nsWebBrowserPersist::SaveChannelInternal(
|
||||
return StartUpload(bufferedInputStream, aFile, contentType);
|
||||
}
|
||||
|
||||
+ // Mark save channel as throttleable.
|
||||
+ nsCOMPtr<nsIClassOfService> cos(do_QueryInterface(aChannel));
|
||||
+ if (cos) {
|
||||
+ cos->AddClassFlags(nsIClassOfService::Throttleable);
|
||||
+ }
|
||||
+
|
||||
// Read from the input channel
|
||||
nsresult rv = NS_MaybeOpenChannelUsingAsyncOpen2(aChannel, this);
|
||||
if (rv == NS_ERROR_NO_CONTENT)
|
||||
commit 1e11071bc4f9
|
||||
Author: Amy Chung <amchung@mozilla.com>
|
||||
Date: Sun Sep 24 00:56:04 2017 +0800
|
||||
|
||||
Bug 1360603 - Confirm the Throttleable flag on browser_saveImageURL.js. r=baku, a=sledru
|
||||
|
||||
--HG--
|
||||
extra : source : 6d7610f4d26d76878b83b1f2489a96116c2bdf15
|
||||
---
|
||||
toolkit/content/contentAreaUtils.js | 4 ++++
|
||||
toolkit/content/tests/browser/browser_saveImageURL.js | 18 ++++++++++++++++++
|
||||
2 files changed, 22 insertions(+)
|
||||
|
||||
diff --git toolkit/content/contentAreaUtils.js toolkit/content/contentAreaUtils.js
|
||||
index fba70c91c8a3..1492b4c1654c 100644
|
||||
--- toolkit/content/contentAreaUtils.js
|
||||
+++ toolkit/content/contentAreaUtils.js
|
||||
@@ -1264,6 +1264,10 @@ function openURL(aURL) {
|
||||
loadUsingSystemPrincipal: true
|
||||
});
|
||||
|
||||
+ if (channel) {
|
||||
+ channel.channelIsForDownload = true;
|
||||
+ }
|
||||
+
|
||||
var uriLoader = Components.classes["@mozilla.org/uriloader;1"]
|
||||
.getService(Components.interfaces.nsIURILoader);
|
||||
uriLoader.openURI(channel,
|
||||
diff --git toolkit/content/tests/browser/browser_saveImageURL.js toolkit/content/tests/browser/browser_saveImageURL.js
|
||||
index fe10482f35dc..0d9c872921c2 100644
|
||||
--- toolkit/content/tests/browser/browser_saveImageURL.js
|
||||
+++ toolkit/content/tests/browser/browser_saveImageURL.js
|
||||
@@ -37,6 +37,15 @@ add_task(async function preferred_API() {
|
||||
});
|
||||
|
||||
saveImageURL(url, "image.jpg", null, true, false, null, null, null, null, false);
|
||||
+ let channel = content.document.docShell.currentDocumentChannel;
|
||||
+ if (channel) {
|
||||
+ ok(true, channel.QueryInterface(Ci.nsIHttpChannelInternal)
|
||||
+ .channelIsForDownload);
|
||||
+
|
||||
+ // Throttleable is the only class flag assigned to downloads.
|
||||
+ ok(channel.QueryInterface(Ci.nsIClassOfService).classFlags,
|
||||
+ Ci.nsIClassOfService.Throttleable);
|
||||
+ }
|
||||
await waitForFilePicker();
|
||||
});
|
||||
});
|
||||
@@ -64,6 +73,15 @@ add_task(async function deprecated_API() {
|
||||
// pass the XUL document instead to test this interface.
|
||||
let doc = document;
|
||||
|
||||
+ let channel = content.document.docShell.currentDocumentChannel;
|
||||
+ if (channel) {
|
||||
+ ok(true, channel.QueryInterface(Ci.nsIHttpChannelInternal)
|
||||
+ .channelIsForDownload);
|
||||
+
|
||||
+ // Throttleable is the only class flag assigned to downloads.
|
||||
+ ok(channel.QueryInterface(Ci.nsIClassOfService).classFlags,
|
||||
+ Ci.nsIClassOfService.Throttleable);
|
||||
+ }
|
||||
saveImageURL(url, "image.jpg", null, true, false, null, doc, null, null);
|
||||
await waitForFilePicker();
|
||||
});
|
79
www/waterfox/files/patch-bug1370508
Normal file
79
www/waterfox/files/patch-bug1370508
Normal file
@ -0,0 +1,79 @@
|
||||
commit c40f44ef9b35
|
||||
Author: Xidorn Quan <me@upsuper.org>
|
||||
Date: Wed Aug 9 19:57:33 2017 +1000
|
||||
|
||||
Bug 1370508 - Enable stylo on generic XML documents. r=heycam
|
||||
|
||||
MozReview-Commit-ID: 4XQ9RPQ7oa1
|
||||
|
||||
--HG--
|
||||
extra : rebase_source : 74e411e2280e818fc1fbd2efda677565cfa2f8b6
|
||||
---
|
||||
dom/base/nsDocument.cpp | 3 +--
|
||||
layout/reftests/w3c-css/failures.list | 4 ++++
|
||||
layout/reftests/w3c-css/received/reftest.list | 2 +-
|
||||
layout/xul/crashtests/crashtests.list | 2 +-
|
||||
testing/web-platform/meta/css/css-namespaces-3/syntax-013.xml.ini | 4 ++++
|
||||
5 files changed, 11 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git dom/base/nsDocument.cpp dom/base/nsDocument.cpp
|
||||
index 2a01e6ec3a67..66a860ff3257 100644
|
||||
--- dom/base/nsDocument.cpp
|
||||
+++ dom/base/nsDocument.cpp
|
||||
@@ -13293,8 +13293,7 @@ nsIDocument::UpdateStyleBackendType()
|
||||
mStyleBackendType = StyleBackendType::Servo;
|
||||
} else if (!mDocumentContainer) {
|
||||
NS_WARNING("stylo: No docshell yet, assuming Gecko style system");
|
||||
- } else if ((IsHTMLOrXHTML() || IsSVGDocument()) &&
|
||||
- IsContentDocument()) {
|
||||
+ } else if (!IsXULDocument() && IsContentDocument()) {
|
||||
// Disable stylo for about: pages other than about:blank, since
|
||||
// they tend to use unsupported selectors like XUL tree pseudos.
|
||||
bool isAbout = false;
|
||||
diff --git layout/reftests/w3c-css/failures.list layout/reftests/w3c-css/failures.list
|
||||
index 966f69ff9ae0..1560f4ad673d 100644
|
||||
--- layout/reftests/w3c-css/failures.list
|
||||
+++ layout/reftests/w3c-css/failures.list
|
||||
@@ -314,3 +314,7 @@ fuzzy(255,2808) css-multicol-1/multicol-rule-large-001.xht
|
||||
fails-if(!styloVsGecko) css-multicol-1/multicol-fill-auto-block-children-001.xht
|
||||
fails-if(!styloVsGecko) css-multicol-1/multicol-fill-auto-block-children-002.xht
|
||||
fails-if(!styloVsGecko) css-multicol-1/multicol-span-all-block-sibling-003.xht
|
||||
+
|
||||
+#### CSS Namespaces 3 ##############################################
|
||||
+
|
||||
+fails-if(stylo||styloVsGecko) css-namespaces-3/syntax-013.xml
|
||||
diff --git layout/reftests/w3c-css/received/reftest.list layout/reftests/w3c-css/received/reftest.list
|
||||
index eb6151266acd..128d1fcf8121 100644
|
||||
--- layout/reftests/w3c-css/received/reftest.list
|
||||
+++ layout/reftests/w3c-css/received/reftest.list
|
||||
@@ -205,7 +205,7 @@ fails-if(!styloVsGecko) == css-multicol-1/multicol-zero-height-001.xht css-multi
|
||||
== css-namespaces-3/syntax-010.xml css-namespaces-3/reftest/ref-lime-3.xml
|
||||
== css-namespaces-3/syntax-011.xml css-namespaces-3/reftest/ref-lime-6.xml
|
||||
== css-namespaces-3/syntax-012.xml css-namespaces-3/reftest/ref-lime-3.xml
|
||||
-== css-namespaces-3/syntax-013.xml css-namespaces-3/reftest/ref-lime-5.xml
|
||||
+fails-if(stylo||styloVsGecko) == css-namespaces-3/syntax-013.xml css-namespaces-3/reftest/ref-lime-5.xml # bug 1388911
|
||||
== css-namespaces-3/syntax-014.xml css-namespaces-3/reftest/ref-lime-3.xml
|
||||
== css-namespaces-3/syntax-015.xml css-namespaces-3/reftest/ref-lime-1.xml
|
||||
fails-if(!styloVsGecko) == css-values-3/attr-color-invalid-cast.html css-values-3/reference/200-200-green.html
|
||||
diff --git layout/xul/crashtests/crashtests.list layout/xul/crashtests/crashtests.list
|
||||
index c1445cb5ec7a..e60af3526383 100644
|
||||
--- layout/xul/crashtests/crashtests.list
|
||||
+++ layout/xul/crashtests/crashtests.list
|
||||
@@ -1,6 +1,6 @@
|
||||
load 131008-1.xul
|
||||
load 137216-1.xul
|
||||
-load 140218-1.xml
|
||||
+asserts-if(stylo,3) load 140218-1.xml
|
||||
load 151826-1.xul
|
||||
load 168724-1.xul
|
||||
load 189814-1.xul
|
||||
diff --git testing/web-platform/meta/css/css-namespaces-3/syntax-013.xml.ini testing/web-platform/meta/css/css-namespaces-3/syntax-013.xml.ini
|
||||
new file mode 100644
|
||||
index 000000000000..b034ccf978f5
|
||||
--- /dev/null
|
||||
+++ testing/web-platform/meta/css/css-namespaces-3/syntax-013.xml.ini
|
||||
@@ -0,0 +1,4 @@
|
||||
+[syntax-013.xml]
|
||||
+ type: reftest
|
||||
+ expected:
|
||||
+ if stylo: FAIL
|
285
www/waterfox/files/patch-bug1377158
Normal file
285
www/waterfox/files/patch-bug1377158
Normal file
@ -0,0 +1,285 @@
|
||||
commit 9e809e01c262
|
||||
Author: Xidorn Quan <me@upsuper.org>
|
||||
Date: Thu Aug 3 11:24:55 2017 +1000
|
||||
|
||||
Bug 1377158 - (Part 1) Set style backend to stylo when SVG is used as an image. r=heycam
|
||||
|
||||
MozReview-Commit-ID: 9FnA8X84h87
|
||||
|
||||
--HG--
|
||||
extra : rebase_source : 49a6140c4c78c35f755710934c798ce46dafa213
|
||||
---
|
||||
dom/base/nsDocument.cpp | 5 ++++-
|
||||
1 file changed, 4 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git dom/base/nsDocument.cpp dom/base/nsDocument.cpp
|
||||
index 3585a7e222df..b4773160af92 100644
|
||||
--- dom/base/nsDocument.cpp
|
||||
+++ dom/base/nsDocument.cpp
|
||||
@@ -13219,7 +13219,10 @@ nsIDocument::UpdateStyleBackendType()
|
||||
|
||||
#ifdef MOZ_STYLO
|
||||
if (nsLayoutUtils::StyloEnabled()) {
|
||||
- if (!mDocumentContainer) {
|
||||
+ if (IsBeingUsedAsImage()) {
|
||||
+ // Enable stylo for SVG-as-image.
|
||||
+ mStyleBackendType = StyleBackendType::Servo;
|
||||
+ } else if (!mDocumentContainer) {
|
||||
NS_WARNING("stylo: No docshell yet, assuming Gecko style system");
|
||||
} else if ((IsHTMLOrXHTML() || IsSVGDocument()) &&
|
||||
IsContentDocument()) {
|
||||
|
||||
commit e418f1ccf520
|
||||
Author: KuoE0 <kuoe0.tw@gmail.com>
|
||||
Date: Mon Jul 24 11:51:20 2017 +0800
|
||||
|
||||
Bug 1377158 - (Part 2) Add the info of StyloEnabled() to hash function to make reftests of styloVsGecko get the correct caches. r=heycam
|
||||
|
||||
MozReview-Commit-ID: 7cyXheHQ7Ot
|
||||
|
||||
--HG--
|
||||
extra : rebase_source : 4a92de63228cb2a138d95d8f366b39122dbdc05e
|
||||
---
|
||||
image/ImageCacheKey.cpp | 20 ++++++++++++++++----
|
||||
image/ImageCacheKey.h | 7 ++++++-
|
||||
2 files changed, 22 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git image/ImageCacheKey.cpp image/ImageCacheKey.cpp
|
||||
index c3327155c1cd..2dfdc7c763cc 100644
|
||||
--- image/ImageCacheKey.cpp
|
||||
+++ image/ImageCacheKey.cpp
|
||||
@@ -8,6 +8,7 @@
|
||||
#include "mozilla/Move.h"
|
||||
#include "ImageURL.h"
|
||||
#include "nsHostObjectProtocolHandler.h"
|
||||
+#include "nsLayoutUtils.h"
|
||||
#include "nsString.h"
|
||||
#include "mozilla/dom/File.h"
|
||||
#include "mozilla/dom/workers/ServiceWorkerManager.h"
|
||||
@@ -53,6 +54,7 @@ ImageCacheKey::ImageCacheKey(nsIURI* aURI,
|
||||
, mOriginAttributes(aAttrs)
|
||||
, mControlledDocument(GetControlledDocumentToken(aDocument))
|
||||
, mIsChrome(URISchemeIs(mURI, "chrome"))
|
||||
+ , mIsStyloEnabled(nsLayoutUtils::StyloEnabled())
|
||||
{
|
||||
NS_ENSURE_SUCCESS_VOID(aRv);
|
||||
|
||||
@@ -62,7 +64,8 @@ ImageCacheKey::ImageCacheKey(nsIURI* aURI,
|
||||
mBlobSerial = BlobSerial(mURI);
|
||||
}
|
||||
|
||||
- mHash = ComputeHash(mURI, mBlobSerial, mOriginAttributes, mControlledDocument);
|
||||
+ mHash = ComputeHash(mURI, mBlobSerial, mOriginAttributes, mControlledDocument,
|
||||
+ mIsStyloEnabled);
|
||||
}
|
||||
|
||||
ImageCacheKey::ImageCacheKey(ImageURL* aURI,
|
||||
@@ -72,6 +75,7 @@ ImageCacheKey::ImageCacheKey(ImageURL* aURI,
|
||||
, mOriginAttributes(aAttrs)
|
||||
, mControlledDocument(GetControlledDocumentToken(aDocument))
|
||||
, mIsChrome(URISchemeIs(mURI, "chrome"))
|
||||
+ , mIsStyloEnabled(nsLayoutUtils::StyloEnabled())
|
||||
{
|
||||
MOZ_ASSERT(aURI);
|
||||
|
||||
@@ -79,7 +83,8 @@ ImageCacheKey::ImageCacheKey(ImageURL* aURI,
|
||||
mBlobSerial = BlobSerial(mURI);
|
||||
}
|
||||
|
||||
- mHash = ComputeHash(mURI, mBlobSerial, mOriginAttributes, mControlledDocument);
|
||||
+ mHash = ComputeHash(mURI, mBlobSerial, mOriginAttributes, mControlledDocument,
|
||||
+ mIsStyloEnabled);
|
||||
}
|
||||
|
||||
ImageCacheKey::ImageCacheKey(const ImageCacheKey& aOther)
|
||||
@@ -89,6 +94,7 @@ ImageCacheKey::ImageCacheKey(const ImageCacheKey& aOther)
|
||||
, mControlledDocument(aOther.mControlledDocument)
|
||||
, mHash(aOther.mHash)
|
||||
, mIsChrome(aOther.mIsChrome)
|
||||
+ , mIsStyloEnabled(aOther.mIsStyloEnabled)
|
||||
{ }
|
||||
|
||||
ImageCacheKey::ImageCacheKey(ImageCacheKey&& aOther)
|
||||
@@ -98,11 +104,15 @@ ImageCacheKey::ImageCacheKey(ImageCacheKey&& aOther)
|
||||
, mControlledDocument(aOther.mControlledDocument)
|
||||
, mHash(aOther.mHash)
|
||||
, mIsChrome(aOther.mIsChrome)
|
||||
+ , mIsStyloEnabled(aOther.mIsStyloEnabled)
|
||||
{ }
|
||||
|
||||
bool
|
||||
ImageCacheKey::operator==(const ImageCacheKey& aOther) const
|
||||
{
|
||||
+ if (mIsStyloEnabled != aOther.mIsStyloEnabled) {
|
||||
+ return false;
|
||||
+ }
|
||||
// Don't share the image cache between a controlled document and anything else.
|
||||
if (mControlledDocument != aOther.mControlledDocument) {
|
||||
return false;
|
||||
@@ -132,7 +142,8 @@ ImageCacheKey::Spec() const
|
||||
ImageCacheKey::ComputeHash(ImageURL* aURI,
|
||||
const Maybe<uint64_t>& aBlobSerial,
|
||||
const OriginAttributes& aAttrs,
|
||||
- void* aControlledDocument)
|
||||
+ void* aControlledDocument,
|
||||
+ bool aIsStyloEnabled)
|
||||
{
|
||||
// Since we frequently call Hash() several times in a row on the same
|
||||
// ImageCacheKey, as an optimization we compute our hash once and store it.
|
||||
@@ -142,7 +153,8 @@ ImageCacheKey::ComputeHash(ImageURL* aURI,
|
||||
aAttrs.CreateSuffix(suffix);
|
||||
|
||||
return AddToHash(0, aURI->ComputeHash(aBlobSerial),
|
||||
- HashString(suffix), HashString(ptr));
|
||||
+ HashString(suffix), HashString(ptr),
|
||||
+ aIsStyloEnabled);
|
||||
}
|
||||
|
||||
/* static */ void*
|
||||
diff --git image/ImageCacheKey.h image/ImageCacheKey.h
|
||||
index c5acd0ea495e..6d676ccb6338 100644
|
||||
--- image/ImageCacheKey.h
|
||||
+++ image/ImageCacheKey.h
|
||||
@@ -58,7 +58,8 @@ private:
|
||||
static PLDHashNumber ComputeHash(ImageURL* aURI,
|
||||
const Maybe<uint64_t>& aBlobSerial,
|
||||
const OriginAttributes& aAttrs,
|
||||
- void* aControlledDocument);
|
||||
+ void* aControlledDocument,
|
||||
+ bool aIsStyloEnabled);
|
||||
static void* GetControlledDocumentToken(nsIDocument* aDocument);
|
||||
|
||||
RefPtr<ImageURL> mURI;
|
||||
@@ -67,6 +68,10 @@ private:
|
||||
void* mControlledDocument;
|
||||
PLDHashNumber mHash;
|
||||
bool mIsChrome;
|
||||
+ // To prevent the reftests of styloVsGecko taking the same image cache after
|
||||
+ // refreshing, we need to store different caches of stylo and gecko. So, we
|
||||
+ // also consider the info of StyloEnabled() in ImageCacheKey.
|
||||
+ bool mIsStyloEnabled;
|
||||
};
|
||||
|
||||
} // namespace image
|
||||
|
||||
commit c95ed14053c7
|
||||
Author: KuoE0 <kuoe0.tw@gmail.com>
|
||||
Date: Thu Jul 27 14:06:54 2017 +0800
|
||||
|
||||
Bug 1377158 - (Part 3) Update the expectation of test cases. r=bholley,heycam
|
||||
|
||||
MozReview-Commit-ID: K3gmTudkzol
|
||||
|
||||
--HG--
|
||||
extra : rebase_source : 32ba6ceb37fa2f29cde8d2534d73108e87dfa406
|
||||
---
|
||||
layout/reftests/css-break/reftest.list | 2 +-
|
||||
layout/reftests/svg/as-image/reftest.list | 2 +-
|
||||
layout/reftests/table-background/reftest.list | 8 ++++----
|
||||
3 files changed, 6 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git layout/reftests/css-break/reftest.list layout/reftests/css-break/reftest.list
|
||||
index 4364cf7d93fc..54cfbcbbeefc 100644
|
||||
--- layout/reftests/css-break/reftest.list
|
||||
+++ layout/reftests/css-break/reftest.list
|
||||
@@ -2,7 +2,7 @@ default-preferences pref(layout.css.box-decoration-break.enabled,true)
|
||||
|
||||
== box-decoration-break-1.html box-decoration-break-1-ref.html
|
||||
fuzzy(1,20) fuzzy-if(skiaContent,1,700) fuzzy-if(webrender,4-4,3273-3273) == box-decoration-break-with-inset-box-shadow-1.html box-decoration-break-with-inset-box-shadow-1-ref.html
|
||||
-fuzzy(16,460) fuzzy-if(Android,10,3673) fuzzy-if(skiaContent,57,374) == box-decoration-break-with-outset-box-shadow-1.html box-decoration-break-with-outset-box-shadow-1-ref.html
|
||||
+fuzzy(16,460) fuzzy-if(Android,10,3673) fuzzy-if(skiaContent,57,374) fuzzy-if(styloVsGecko,1,420) == box-decoration-break-with-outset-box-shadow-1.html box-decoration-break-with-outset-box-shadow-1-ref.html # Bug 1386543
|
||||
random-if(!gtkWidget) HTTP(..) == box-decoration-break-border-image.html box-decoration-break-border-image-ref.html
|
||||
== box-decoration-break-block-border-padding.html box-decoration-break-block-border-padding-ref.html
|
||||
== box-decoration-break-block-margin.html box-decoration-break-block-margin-ref.html
|
||||
diff --git layout/reftests/svg/as-image/reftest.list layout/reftests/svg/as-image/reftest.list
|
||||
index d5feb66693ad..acff18d18b50 100644
|
||||
--- layout/reftests/svg/as-image/reftest.list
|
||||
+++ layout/reftests/svg/as-image/reftest.list
|
||||
@@ -58,7 +58,7 @@ fuzzy(1,2) fuzzy-if(azureSkia,1,40000) == canvas-drawImage-alpha-2.html canvas-d
|
||||
# context-fill:
|
||||
== context-fill-01.html blue100x100-ref.html
|
||||
test-pref(svg.context-properties.content.enabled,true) == context-fill-01.html lime100x100-ref.html
|
||||
-== context-fill-02.html transparent100x100-w-border-ref.html
|
||||
+fails-if(styloVsGecko||stylo) == context-fill-02.html transparent100x100-w-border-ref.html # Bug 1380590
|
||||
test-pref(svg.context-properties.content.enabled,true) == context-fill-02.html lime100x100-w-border-ref.html
|
||||
test-pref(svg.context-properties.content.enabled,true) == context-fill-03.html lime100x100-50pct-ref.html
|
||||
# fuzz because on win8 the r & b components are off by one
|
||||
diff --git layout/reftests/table-background/reftest.list layout/reftests/table-background/reftest.list
|
||||
index d8a138112527..df2f629d0d7f 100644
|
||||
--- layout/reftests/table-background/reftest.list
|
||||
+++ layout/reftests/table-background/reftest.list
|
||||
@@ -1,11 +1,11 @@
|
||||
# these could be moved to crashtests
|
||||
!= backgr_border-table-cell.html empty.html
|
||||
-!= backgr_border-table-column-group.html empty.html
|
||||
+fuzzy-if(styloVsGecko,5,330) != backgr_border-table-column-group.html empty.html # Bug 1386543
|
||||
# This seems to be caused by bug 527825
|
||||
-asserts-if(gtkWidget,0-12) != backgr_border-table-column.html empty.html
|
||||
+fuzzy-if(styloVsGecko,5,561) asserts-if(gtkWidget,0-12) != backgr_border-table-column.html empty.html # Bug 1386543
|
||||
asserts-if(gtkWidget,0-6) != backgr_border-table-quirks.html empty.html
|
||||
-!= backgr_border-table-row-group.html empty.html
|
||||
-!= backgr_border-table-row.html empty.html
|
||||
+fuzzy-if(styloVsGecko,1,168) != backgr_border-table-row-group.html empty.html # Bug 1386543
|
||||
+fuzzy-if(styloVsGecko,1,168) != backgr_border-table-row.html empty.html # Bug 1386543
|
||||
!= backgr_border-table.html empty.html
|
||||
!= backgr_fixed-bg.html empty.html
|
||||
!= backgr_index.html empty.html
|
||||
|
||||
commit dd7cb82fb7b5
|
||||
Author: KuoE0 <kuoe0.tw@gmail.com>
|
||||
Date: Fri Jul 28 00:23:05 2017 +0800
|
||||
|
||||
Bug 1377158 - (Part 4) Reduce the assertion cost to check reconstruction frame hint. r=bholley,heycam
|
||||
|
||||
The original assertion took too long time to check nsStyleChangeList. It
|
||||
caused the test case with many elements timed-out and failed.
|
||||
|
||||
MozReview-Commit-ID: FpNZvdQFTtR
|
||||
|
||||
--HG--
|
||||
extra : rebase_source : c68072448061c4dcc8399131924cf718a5e53700
|
||||
---
|
||||
layout/base/nsStyleChangeList.cpp | 30 +++++++++++++++++++-----------
|
||||
1 file changed, 19 insertions(+), 11 deletions(-)
|
||||
|
||||
diff --git layout/base/nsStyleChangeList.cpp layout/base/nsStyleChangeList.cpp
|
||||
index 6f68cded3814..af6256f46c22 100644
|
||||
--- layout/base/nsStyleChangeList.cpp
|
||||
+++ layout/base/nsStyleChangeList.cpp
|
||||
@@ -41,17 +41,25 @@ nsStyleChangeList::AppendChange(nsIFrame* aFrame, nsIContent* aContent, nsChange
|
||||
(aHint & nsChangeHint_NeedReflow),
|
||||
"Reflow hint bits set without actually asking for a reflow");
|
||||
|
||||
- // If Servo fires reconstruct at a node, it is the only change hint fired at
|
||||
- // that node.
|
||||
- if (IsServo()) {
|
||||
- for (size_t i = 0; i < Length(); ++i) {
|
||||
- MOZ_ASSERT(!aContent || !((aHint | (*this)[i].mHint) & nsChangeHint_ReconstructFrame) ||
|
||||
- (*this)[i].mContent != aContent);
|
||||
- }
|
||||
- } else {
|
||||
- // Filter out all other changes for same content for Gecko (Servo asserts against this
|
||||
- // case above).
|
||||
- if (aContent && (aHint & nsChangeHint_ReconstructFrame)) {
|
||||
+ if (aContent && (aHint & nsChangeHint_ReconstructFrame)) {
|
||||
+ // If Servo fires reconstruct at a node, it is the only change hint fired at
|
||||
+ // that node.
|
||||
+ if (IsServo()) {
|
||||
+ // Note: Because we check whether |aHint| is a reconstruct above (which is
|
||||
+ // necessary to avoid debug test timeouts on certain crashtests), this check
|
||||
+ // will not find bugs where we add a non-reconstruct hint for an element after
|
||||
+ // adding a reconstruct. This is ok though, since ProcessRestyledFrames will
|
||||
+ // handle that case via mDestroyedFrames.
|
||||
+ for (size_t i = 0; i < Length(); ++i) {
|
||||
+ MOZ_ASSERT(aContent != (*this)[i].mContent ||
|
||||
+ !((*this)[i].mHint & nsChangeHint_ReconstructFrame),
|
||||
+ "Should not append a non-ReconstructFrame hint after \
|
||||
+ appending a ReconstructFrame hint for the same \
|
||||
+ content.");
|
||||
+ }
|
||||
+ } else {
|
||||
+ // Filter out all other changes for same content for Gecko (Servo asserts against this
|
||||
+ // case above).
|
||||
// NOTE: This is captured by reference to please static analysis.
|
||||
// Capturing it by value as a pointer should be fine in this case.
|
||||
RemoveElementsBy([&](const nsStyleChangeData& aData) {
|
30
www/waterfox/files/patch-bug1388319
Normal file
30
www/waterfox/files/patch-bug1388319
Normal file
@ -0,0 +1,30 @@
|
||||
commit e572d7e6e7cf
|
||||
Author: Xidorn Quan <me@upsuper.org>
|
||||
Date: Tue Aug 8 22:41:32 2017 +1000
|
||||
|
||||
Bug 1388319 - Mark ServoStyleSet dirty in its Init. r=emilio
|
||||
|
||||
MozReview-Commit-ID: 804KasIiS6E
|
||||
|
||||
--HG--
|
||||
extra : rebase_source : 36eb21c5ffc4321aef652947455e73970419803a
|
||||
---
|
||||
layout/style/ServoStyleSet.cpp | 5 +++--
|
||||
1 file changed, 3 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git layout/style/ServoStyleSet.cpp layout/style/ServoStyleSet.cpp
|
||||
index adb3cba922d2..a1cd15903ade 100644
|
||||
--- layout/style/ServoStyleSet.cpp
|
||||
+++ layout/style/ServoStyleSet.cpp
|
||||
@@ -81,8 +81,9 @@ ServoStyleSet::Init(nsPresContext* aPresContext, nsBindingManager* aBindingManag
|
||||
}
|
||||
}
|
||||
|
||||
- // No need to Servo_StyleSet_FlushStyleSheets because we just created the
|
||||
- // mRawSet, so there was nothing to flush.
|
||||
+ // We added prefilled stylesheets into mRawSet, so the stylist is dirty.
|
||||
+ // The Stylist should be updated later when necessary.
|
||||
+ SetStylistStyleSheetsDirty();
|
||||
}
|
||||
|
||||
void
|
119
www/waterfox/files/patch-bug1394146
Normal file
119
www/waterfox/files/patch-bug1394146
Normal file
@ -0,0 +1,119 @@
|
||||
commit f8221b58e542
|
||||
Author: Sean Stangl <sstangl@mozilla.com>
|
||||
Date: Thu Sep 21 15:37:00 2017 -0400
|
||||
|
||||
Bug 1394146 - Avoid overflow on backwards iteration of IC entries. r=jandem, a=sledru
|
||||
|
||||
--HG--
|
||||
extra : source : 9f05ef54c84d9b63fb3ad2dd2916df34cb35df8d
|
||||
extra : histedit_source : 753ccc8652983bb35d3a1f9f89638902d3b0a2a5
|
||||
---
|
||||
js/src/jit/BaselineJIT.cpp | 11 +++++++++--
|
||||
js/src/jit/IonControlFlow.cpp | 16 ++++++++++++----
|
||||
2 files changed, 21 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git js/src/jit/BaselineJIT.cpp js/src/jit/BaselineJIT.cpp
|
||||
index 3e25fd7b7120..baec7b63b8f0 100644
|
||||
--- js/src/jit/BaselineJIT.cpp
|
||||
+++ js/src/jit/BaselineJIT.cpp
|
||||
@@ -669,12 +669,16 @@ BaselineScript::maybeICEntryFromPCOffset(uint32_t pcOffset)
|
||||
if (!ComputeBinarySearchMid(this, pcOffset, &mid))
|
||||
return nullptr;
|
||||
|
||||
+ MOZ_ASSERT(mid < numICEntries());
|
||||
+
|
||||
// Found an IC entry with a matching PC offset. Search backward, and then
|
||||
// forward from this IC entry, looking for one with the same PC offset which
|
||||
// has isForOp() set.
|
||||
- for (size_t i = mid; i < numICEntries() && icEntry(i).pcOffset() == pcOffset; i--) {
|
||||
+ for (size_t i = mid; icEntry(i).pcOffset() == pcOffset; i--) {
|
||||
if (icEntry(i).isForOp())
|
||||
return &icEntry(i);
|
||||
+ if (i == 0)
|
||||
+ break;
|
||||
}
|
||||
for (size_t i = mid+1; i < numICEntries() && icEntry(i).pcOffset() == pcOffset; i++) {
|
||||
if (icEntry(i).isForOp())
|
||||
@@ -728,10 +732,13 @@ BaselineScript::callVMEntryFromPCOffset(uint32_t pcOffset)
|
||||
// inserted by VM calls.
|
||||
size_t mid;
|
||||
MOZ_ALWAYS_TRUE(ComputeBinarySearchMid(this, pcOffset, &mid));
|
||||
+ MOZ_ASSERT(mid < numICEntries());
|
||||
|
||||
- for (size_t i = mid; i < numICEntries() && icEntry(i).pcOffset() == pcOffset; i--) {
|
||||
+ for (size_t i = mid; icEntry(i).pcOffset() == pcOffset; i--) {
|
||||
if (icEntry(i).kind() == ICEntry::Kind_CallVM)
|
||||
return icEntry(i);
|
||||
+ if (i == 0)
|
||||
+ break;
|
||||
}
|
||||
for (size_t i = mid+1; i < numICEntries() && icEntry(i).pcOffset() == pcOffset; i++) {
|
||||
if (icEntry(i).kind() == ICEntry::Kind_CallVM)
|
||||
diff --git js/src/jit/IonControlFlow.cpp js/src/jit/IonControlFlow.cpp
|
||||
index 4f27cd53dcaa..8d8a796d3f3b 100644
|
||||
--- js/src/jit/IonControlFlow.cpp
|
||||
+++ js/src/jit/IonControlFlow.cpp
|
||||
@@ -1619,7 +1619,7 @@ ControlFlowGenerator::processBreak(JSOp op, jssrcnote* sn)
|
||||
DebugOnly<bool> found = false;
|
||||
|
||||
if (SN_TYPE(sn) == SRC_BREAK2LABEL) {
|
||||
- for (size_t i = labels_.length() - 1; i < labels_.length(); i--) {
|
||||
+ for (size_t i = labels_.length() - 1; ; i--) {
|
||||
CFGState& cfg = cfgStack_[labels_[i].cfgEntry];
|
||||
MOZ_ASSERT(cfg.state == CFGState::LABEL);
|
||||
if (cfg.stopAt == target) {
|
||||
@@ -1627,9 +1627,11 @@ ControlFlowGenerator::processBreak(JSOp op, jssrcnote* sn)
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
+ if (i == 0)
|
||||
+ break;
|
||||
}
|
||||
} else {
|
||||
- for (size_t i = loops_.length() - 1; i < loops_.length(); i--) {
|
||||
+ for (size_t i = loops_.length() - 1; ; i--) {
|
||||
CFGState& cfg = cfgStack_[loops_[i].cfgEntry];
|
||||
MOZ_ASSERT(cfg.isLoop());
|
||||
if (cfg.loop.exitpc == target) {
|
||||
@@ -1637,6 +1639,8 @@ ControlFlowGenerator::processBreak(JSOp op, jssrcnote* sn)
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
+ if (i == 0)
|
||||
+ break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1665,7 +1669,7 @@ ControlFlowGenerator::processContinue(JSOp op)
|
||||
// Find the target loop.
|
||||
CFGState* found = nullptr;
|
||||
jsbytecode* target = pc + GetJumpOffset(pc);
|
||||
- for (size_t i = loops_.length() - 1; i < loops_.length(); i--) {
|
||||
+ for (size_t i = loops_.length() - 1; ; i--) {
|
||||
// +1 to skip JSOP_JUMPTARGET.
|
||||
if (loops_[i].continuepc == target + 1 ||
|
||||
EffectiveContinue(loops_[i].continuepc) == target)
|
||||
@@ -1673,6 +1677,8 @@ ControlFlowGenerator::processContinue(JSOp op)
|
||||
found = &cfgStack_[loops_[i].cfgEntry];
|
||||
break;
|
||||
}
|
||||
+ if (i == 0)
|
||||
+ break;
|
||||
}
|
||||
|
||||
// There must always be a valid target loop structure. If not, there's
|
||||
@@ -1698,11 +1704,13 @@ ControlFlowGenerator::processSwitchBreak(JSOp op)
|
||||
// Find the target switch.
|
||||
CFGState* found = nullptr;
|
||||
jsbytecode* target = pc + GetJumpOffset(pc);
|
||||
- for (size_t i = switches_.length() - 1; i < switches_.length(); i--) {
|
||||
+ for (size_t i = switches_.length() - 1; ; i--) {
|
||||
if (switches_[i].continuepc == target) {
|
||||
found = &cfgStack_[switches_[i].cfgEntry];
|
||||
break;
|
||||
}
|
||||
+ if (i == 0)
|
||||
+ break;
|
||||
}
|
||||
|
||||
// There must always be a valid target loop structure. If not, there's
|
105
www/waterfox/files/patch-bug1397671
Normal file
105
www/waterfox/files/patch-bug1397671
Normal file
@ -0,0 +1,105 @@
|
||||
commit 553df1231272
|
||||
Author: Matt Woodrow <mwoodrow@mozilla.com>
|
||||
Date: Tue Sep 26 15:57:56 2017 +1300
|
||||
|
||||
Bug 1397671 - Don't treat SVG transformed frames as being transformed for the purposes of computing Combines3DTransformWithAncestors. r=dbaron, a=sledru
|
||||
|
||||
--HG--
|
||||
extra : source : 70b150570407df427bed31965fe29cf8736beab6
|
||||
---
|
||||
layout/generic/nsFrame.cpp | 11 +++++++++--
|
||||
layout/generic/nsIFrame.h | 6 ++++++
|
||||
layout/reftests/transform-3d/preserve3d-8-ref.html | 11 +++++++++++
|
||||
layout/reftests/transform-3d/preserve3d-8.html | 17 +++++++++++++++++
|
||||
4 files changed, 43 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git layout/generic/nsFrame.cpp layout/generic/nsFrame.cpp
|
||||
index 6e6f2bfa5379..02d1dafec21e 100644
|
||||
--- layout/generic/nsFrame.cpp
|
||||
+++ layout/generic/nsFrame.cpp
|
||||
@@ -1326,11 +1326,18 @@ nsIFrame::GetMarginRectRelativeToSelf() const
|
||||
bool
|
||||
nsIFrame::IsTransformed(const nsStyleDisplay* aStyleDisplay,
|
||||
EffectSet* aEffectSet) const
|
||||
+{
|
||||
+ return IsCSSTransformed(aStyleDisplay, aEffectSet) ||
|
||||
+ IsSVGTransformed();
|
||||
+}
|
||||
+
|
||||
+bool
|
||||
+nsIFrame::IsCSSTransformed(const nsStyleDisplay* aStyleDisplay,
|
||||
+ EffectSet* aEffectSet) const
|
||||
{
|
||||
MOZ_ASSERT(aStyleDisplay == StyleDisplay());
|
||||
return ((mState & NS_FRAME_MAY_BE_TRANSFORMED) &&
|
||||
(aStyleDisplay->HasTransform(this) ||
|
||||
- IsSVGTransformed() ||
|
||||
HasAnimationOfTransform(aEffectSet)));
|
||||
}
|
||||
|
||||
@@ -1402,7 +1409,7 @@ nsIFrame::Combines3DTransformWithAncestors(const nsStyleDisplay* aStyleDisplay,
|
||||
if (!parent || !parent->Extend3DContext()) {
|
||||
return false;
|
||||
}
|
||||
- return IsTransformed(aStyleDisplay,aEffectSet) ||
|
||||
+ return IsCSSTransformed(aStyleDisplay, aEffectSet) ||
|
||||
BackfaceIsHidden(aStyleDisplay);
|
||||
}
|
||||
|
||||
diff --git layout/generic/nsIFrame.h layout/generic/nsIFrame.h
|
||||
index e8fb4c71a16f..b3ca08370d34 100644
|
||||
--- layout/generic/nsIFrame.h
|
||||
+++ layout/generic/nsIFrame.h
|
||||
@@ -1724,6 +1724,12 @@ public:
|
||||
return IsTransformed(StyleDisplay(), aEffectSet);
|
||||
}
|
||||
|
||||
+ /**
|
||||
+ * Same as IsTransformed, except that it doesn't take SVG transforms
|
||||
+ * into account.
|
||||
+ */
|
||||
+ bool IsCSSTransformed(const nsStyleDisplay* aStyleDisplay, mozilla::EffectSet* aEffectSet = nullptr) const;
|
||||
+
|
||||
/**
|
||||
* True if this frame has any animation of transform in effect.
|
||||
*
|
||||
diff --git layout/reftests/transform-3d/preserve3d-8-ref.html layout/reftests/transform-3d/preserve3d-8-ref.html
|
||||
new file mode 100644
|
||||
index 000000000000..afddf05d4d81
|
||||
--- /dev/null
|
||||
+++ layout/reftests/transform-3d/preserve3d-8-ref.html
|
||||
@@ -0,0 +1,11 @@
|
||||
+<html>
|
||||
+<head>
|
||||
+</head>
|
||||
+<body style="width:100px">
|
||||
+ <svg xmlns="http://www.w3.org/2000/svg" version="1.1" id="js" viewBox="0 0 200 200" style="transform: rotateX(180deg)">
|
||||
+ <g>
|
||||
+ <rect width="100" height="100" style="fill:rgb(0,0,255)"></rect>
|
||||
+ </g>
|
||||
+ </svg>
|
||||
+</body>
|
||||
+</html>
|
||||
diff --git layout/reftests/transform-3d/preserve3d-8.html layout/reftests/transform-3d/preserve3d-8.html
|
||||
new file mode 100644
|
||||
index 000000000000..76e9c10c33bc
|
||||
--- /dev/null
|
||||
+++ layout/reftests/transform-3d/preserve3d-8.html
|
||||
@@ -0,0 +1,17 @@
|
||||
+<html>
|
||||
+<head>
|
||||
+</head>
|
||||
+<body>
|
||||
+ <div style="transform: rotatex(45deg); transform-style: preserve-3d; width: 100px;">
|
||||
+ <div style="transform: rotatex(45deg); transform-style: preserve-3d; width: 100px;">
|
||||
+ <div style="transform: rotatex(45deg); transform-style: preserve-3d; width: 100px;">
|
||||
+ <svg xmlns="http://www.w3.org/2000/svg" version="1.1" id="js" viewBox="0 0 200 200" style="transform: rotateX(45deg)">
|
||||
+ <g>
|
||||
+ <rect width="100" height="100" style="fill:rgb(0,0,255)"></rect>
|
||||
+ </g>
|
||||
+ </svg>
|
||||
+ </div>
|
||||
+ </div>
|
||||
+ </div>
|
||||
+</body>
|
||||
+</html>
|
25
www/waterfox/files/patch-bug1398983
Normal file
25
www/waterfox/files/patch-bug1398983
Normal file
@ -0,0 +1,25 @@
|
||||
commit 6b2dbc2b8216
|
||||
Author: Bobby Holley <bobbyholley@gmail.com>
|
||||
Date: Fri Sep 15 12:25:46 2017 -0700
|
||||
|
||||
Bug 1398983 - Remove warning about assuming gecko style system. r=me
|
||||
|
||||
MozReview-Commit-ID: BCeG81uxLvS
|
||||
---
|
||||
dom/base/nsDocument.cpp | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git dom/base/nsDocument.cpp dom/base/nsDocument.cpp
|
||||
index 9d9af08ba04b..076fe1a5d444 100644
|
||||
--- dom/base/nsDocument.cpp
|
||||
+++ dom/base/nsDocument.cpp
|
||||
@@ -13490,7 +13490,8 @@ nsIDocument::UpdateStyleBackendType()
|
||||
// Enable stylo for SVG-as-image.
|
||||
mStyleBackendType = StyleBackendType::Servo;
|
||||
} else if (!mDocumentContainer) {
|
||||
- NS_WARNING("stylo: No docshell yet, assuming Gecko style system");
|
||||
+ // Not docshell, assume Gecko. Various callers can end up setting this
|
||||
+ // explicitly afterwards to inherit it in various situations.
|
||||
} else if (!IsXULDocument() && IsContentDocument()) {
|
||||
// Disable stylo for about: pages other than about:blank, since
|
||||
// they tend to use unsupported selectors like XUL tree pseudos.
|
47
www/waterfox/files/patch-bug1400540
Normal file
47
www/waterfox/files/patch-bug1400540
Normal file
@ -0,0 +1,47 @@
|
||||
commit 6905267b2878
|
||||
Author: Xidorn Quan <me@upsuper.org>
|
||||
Date: Wed Sep 20 08:26:53 2017 +1000
|
||||
|
||||
Bug 1400540 - Decide style backend type based on principal. r=bholley
|
||||
|
||||
MozReview-Commit-ID: A4y9Shdbr7g
|
||||
|
||||
--HG--
|
||||
extra : source : cdfe5e5e059273a1c7fc6506d6e0fecb2bb7affb
|
||||
---
|
||||
dom/base/nsDocument.cpp | 21 ++++++++-------------
|
||||
1 file changed, 8 insertions(+), 13 deletions(-)
|
||||
|
||||
diff --git dom/base/nsDocument.cpp dom/base/nsDocument.cpp
|
||||
index 642960e6a155..265af0df07b9 100644
|
||||
--- dom/base/nsDocument.cpp
|
||||
+++ dom/base/nsDocument.cpp
|
||||
@@ -13465,20 +13465,15 @@ nsIDocument::UpdateStyleBackendType()
|
||||
|
||||
#ifdef MOZ_STYLO
|
||||
if (nsLayoutUtils::StyloEnabled()) {
|
||||
- if (IsBeingUsedAsImage()) {
|
||||
- // Enable stylo for SVG-as-image.
|
||||
+ // Disable stylo only for system principal. Other principals aren't
|
||||
+ // able to use XUL by default, and the back door to enable XUL is
|
||||
+ // mostly just for testing, which means they don't matter, and we
|
||||
+ // shouldn't respect them at the same time.
|
||||
+ // Note that, since tests can have XUL support, we still need to
|
||||
+ // explicitly exclude XUL documents here.
|
||||
+ if (!nsContentUtils::IsSystemPrincipal(NodePrincipal()) &&
|
||||
+ !IsXULDocument()) {
|
||||
mStyleBackendType = StyleBackendType::Servo;
|
||||
- } else if (!mDocumentContainer) {
|
||||
- // Not docshell, assume Gecko. Various callers can end up setting this
|
||||
- // explicitly afterwards to inherit it in various situations.
|
||||
- } else if (!IsXULDocument() && IsContentDocument()) {
|
||||
- // Disable stylo for about: pages other than about:blank, since
|
||||
- // they tend to use unsupported selectors like XUL tree pseudos.
|
||||
- bool isAbout = false;
|
||||
- mDocumentURI->SchemeIs("about", &isAbout);
|
||||
- if (!isAbout || NS_IsAboutBlank(mDocumentURI)) {
|
||||
- mStyleBackendType = StyleBackendType::Servo;
|
||||
- }
|
||||
}
|
||||
}
|
||||
#endif
|
29
www/waterfox/files/patch-bug1401416
Normal file
29
www/waterfox/files/patch-bug1401416
Normal file
@ -0,0 +1,29 @@
|
||||
commit c5123938eb1e
|
||||
Author: Tobias Schneider <schneider@jancona.com>
|
||||
Date: Thu Sep 21 12:43:35 2017 -0700
|
||||
|
||||
Bug 1401416 - [intersection-observer] Let intersection rect be empty if do_QueryFrame(rootFrame) returns null. r=dholbert, a=sledru
|
||||
|
||||
--HG--
|
||||
extra : source : 90be30b5206c2b2724d61f4f6782197bfa768428
|
||||
---
|
||||
dom/base/DOMIntersectionObserver.cpp | 6 +++++-
|
||||
1 file changed, 5 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git dom/base/DOMIntersectionObserver.cpp dom/base/DOMIntersectionObserver.cpp
|
||||
index 606a1de5ed8c..1ca909e3cfbf 100644
|
||||
--- dom/base/DOMIntersectionObserver.cpp
|
||||
+++ dom/base/DOMIntersectionObserver.cpp
|
||||
@@ -308,7 +308,11 @@ DOMIntersectionObserver::Update(nsIDocument* aDocument, DOMHighResTimeStamp time
|
||||
}
|
||||
root = rootFrame->GetContent()->AsElement();
|
||||
nsIScrollableFrame* scrollFrame = do_QueryFrame(rootFrame);
|
||||
- rootRect = scrollFrame->GetScrollPortRect();
|
||||
+ // If we end up with a null root frame for some reason, we'll proceed
|
||||
+ // with an empty root intersection rect.
|
||||
+ if (scrollFrame) {
|
||||
+ rootRect = scrollFrame->GetScrollPortRect();
|
||||
+ }
|
||||
}
|
||||
}
|
||||
}
|
30
www/waterfox/files/patch-bug1401909
Normal file
30
www/waterfox/files/patch-bug1401909
Normal file
@ -0,0 +1,30 @@
|
||||
commit ec17ee7e24b2
|
||||
Author: Kaku Kuo <kaku@mozilla.com>
|
||||
Date: Thu Sep 21 17:47:45 2017 +0800
|
||||
|
||||
Bug 1401909 - Turn on preference of ShutdownDecoder feature on desktop version release and beta channel. r=bwu, a=sledru
|
||||
|
||||
MozReview-Commit-ID: JB3RmyjhvK9
|
||||
|
||||
--HG--
|
||||
extra : source : 27953b6cbc9b9bff5fb14cb0e69b492f08e62da8
|
||||
---
|
||||
modules/libpref/init/all.js | 4 ----
|
||||
1 file changed, 4 deletions(-)
|
||||
|
||||
diff --git modules/libpref/init/all.js modules/libpref/init/all.js
|
||||
index 6d66d27d987c..c74659f8d4a5 100644
|
||||
--- modules/libpref/init/all.js
|
||||
+++ modules/libpref/init/all.js
|
||||
@@ -432,11 +432,7 @@ pref("media.decoder-doctor.wmf-disabled-is-failure", false);
|
||||
pref("media.decoder-doctor.new-issue-endpoint", "https://webcompat.com/issues/new");
|
||||
|
||||
// Whether to suspend decoding of videos in background tabs.
|
||||
-#ifdef RELEASE_OR_BETA
|
||||
-pref("media.suspend-bkgnd-video.enabled", false);
|
||||
-#else
|
||||
pref("media.suspend-bkgnd-video.enabled", true);
|
||||
-#endif
|
||||
// Delay, in ms, from time window goes to background to suspending
|
||||
// video decoders. Defaults to 10 seconds.
|
||||
pref("media.suspend-bkgnd-video.delay-ms", 10000);
|
239
www/waterfox/files/patch-bug1401992
Normal file
239
www/waterfox/files/patch-bug1401992
Normal file
@ -0,0 +1,239 @@
|
||||
commit b00a6f8952ad
|
||||
Author: Bobby Holley <bobbyholley@gmail.com>
|
||||
Date: Fri Sep 22 12:34:00 2017 -0700
|
||||
|
||||
Bug 1401992 - Don't cross anonymous boundaries when finding the fieldset. r=bz, a=sledru
|
||||
|
||||
MozReview-Commit-ID: DiywRognpqx
|
||||
|
||||
--HG--
|
||||
extra : source : 581b6ab2826a3a90f3d47713b3940f176aa4d39f
|
||||
---
|
||||
dom/html/nsGenericHTMLElement.cpp | 8 ++++++--
|
||||
1 file changed, 6 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git dom/html/nsGenericHTMLElement.cpp dom/html/nsGenericHTMLElement.cpp
|
||||
index 61953dab88ce..eda85c9eebaf 100644
|
||||
--- dom/html/nsGenericHTMLElement.cpp
|
||||
+++ dom/html/nsGenericHTMLElement.cpp
|
||||
@@ -545,7 +545,7 @@ nsGenericHTMLElement::FindAncestorForm(HTMLFormElement* aCurrentForm)
|
||||
"FindAncestorForm should not be called if @form is set!");
|
||||
|
||||
// Make sure we don't end up finding a form that's anonymous from
|
||||
- // our point of view.
|
||||
+ // our point of view. See also nsGenericHTMLFormElement::UpdateFieldSet.
|
||||
nsIContent* bindingParent = GetBindingParent();
|
||||
|
||||
nsIContent* content = this;
|
||||
@@ -2365,7 +2365,11 @@ nsGenericHTMLFormElement::UpdateFieldSet(bool aNotify)
|
||||
nsIContent* parent = nullptr;
|
||||
nsIContent* prev = nullptr;
|
||||
|
||||
- for (parent = GetParent(); parent;
|
||||
+ // Don't walk out of anonymous subtrees. Note the similar code in
|
||||
+ // nsGenericHTMLElement::FindAncestorForm.
|
||||
+ nsIContent* bindingParent = GetBindingParent();
|
||||
+
|
||||
+ for (parent = GetParent(); parent && parent != bindingParent;
|
||||
prev = parent, parent = parent->GetParent()) {
|
||||
HTMLFieldSetElement* fieldset =
|
||||
HTMLFieldSetElement::FromContent(parent);
|
||||
|
||||
commit 637fd3497d25
|
||||
Author: Bobby Holley <bobbyholley@gmail.com>
|
||||
Date: Fri Sep 22 17:06:00 2017 -0700
|
||||
|
||||
Bug 1401992 - Reftest. r=me, a=sledru
|
||||
|
||||
MozReview-Commit-ID: C7UQEQOkE7q
|
||||
|
||||
--HG--
|
||||
extra : source : 5bfa23832767e42835f4c144fcbd4a351b7feca2
|
||||
extra : histedit_source : 31c6d70fac5308f511033692eeb3d8907a88ccab%2Ce5b28d61e7e6cffa0aee00cc2d563be5052830f0
|
||||
---
|
||||
layout/reftests/bugs/1401992-ref.html | 21 +++++++++++++++++++++
|
||||
layout/reftests/bugs/1401992.html | 32 ++++++++++++++++++++++++++++++++
|
||||
layout/reftests/bugs/reftest.list | 1 +
|
||||
3 files changed, 54 insertions(+)
|
||||
|
||||
diff --git layout/reftests/bugs/1401992-ref.html layout/reftests/bugs/1401992-ref.html
|
||||
new file mode 100644
|
||||
index 000000000000..8fb36196cf39
|
||||
--- /dev/null
|
||||
+++ layout/reftests/bugs/1401992-ref.html
|
||||
@@ -0,0 +1,21 @@
|
||||
+<!doctype html>
|
||||
+<html>
|
||||
+<head>
|
||||
+<style>
|
||||
+video {
|
||||
+ width: 100px;
|
||||
+ height: 100px;
|
||||
+ border: 10px solid purple;
|
||||
+}
|
||||
+fieldset {
|
||||
+ border: 10px solid blue;
|
||||
+ border-color: green;
|
||||
+}
|
||||
+</style>
|
||||
+<script>
|
||||
+</script>
|
||||
+</head>
|
||||
+<body>
|
||||
+<fieldset><video id="x" style="visibility:hidden"></video></fieldset>
|
||||
+</body>
|
||||
+</html>
|
||||
diff --git layout/reftests/bugs/1401992.html layout/reftests/bugs/1401992.html
|
||||
new file mode 100644
|
||||
index 000000000000..f48f563a01a8
|
||||
--- /dev/null
|
||||
+++ layout/reftests/bugs/1401992.html
|
||||
@@ -0,0 +1,32 @@
|
||||
+<!doctype html>
|
||||
+<html>
|
||||
+<head>
|
||||
+<style>
|
||||
+video {
|
||||
+ width: 100px;
|
||||
+ height: 100px;
|
||||
+ border: 10px solid purple;
|
||||
+}
|
||||
+fieldset {
|
||||
+ border: 10px solid blue;
|
||||
+}
|
||||
+fieldset:valid {
|
||||
+ border-color: green;
|
||||
+}
|
||||
+fieldset:invalid {
|
||||
+ border-color: red;
|
||||
+}
|
||||
+</style>
|
||||
+<script>
|
||||
+window.onload = function() {
|
||||
+ let v = document.getElementById("x");
|
||||
+ v.currentTime = -128;
|
||||
+ v.controls = !v.controls;
|
||||
+}
|
||||
+</script>
|
||||
+</head>
|
||||
+<body>
|
||||
+<!-- Native anonymous content shouldn't affect fieldset validity -->
|
||||
+<fieldset><video id="x" style="visibility:hidden"></video></fieldset>
|
||||
+</body>
|
||||
+</html>
|
||||
diff --git layout/reftests/bugs/reftest.list layout/reftests/bugs/reftest.list
|
||||
index e95eb8318a5a..55eb7da5611f 100644
|
||||
--- layout/reftests/bugs/reftest.list
|
||||
+++ layout/reftests/bugs/reftest.list
|
||||
@@ -2037,3 +2037,4 @@ needs-focus != 1377447-1.html 1377447-2.html
|
||||
== 1380224-1.html 1380224-1-ref.html
|
||||
== 1384065.html 1384065-ref.html
|
||||
== 1384275-1.html 1384275-1-ref.html
|
||||
+== 1401992.html 1401992-ref.html
|
||||
|
||||
commit 67ad215f14ae
|
||||
Author: Bobby Holley <bobbyholley@gmail.com>
|
||||
Date: Fri Sep 22 17:20:31 2017 -0700
|
||||
|
||||
Bug 1401992 - Mark some tests as passing on android. r=me, a=sledru
|
||||
|
||||
MozReview-Commit-ID: HJuIX5VXBm5
|
||||
|
||||
--HG--
|
||||
extra : source : 4c191b4e631f2f6f672598d70359438d18d05884
|
||||
extra : histedit_source : ad3d624a38b1f0134cd286ea592586f23c52d21b
|
||||
---
|
||||
layout/reftests/bugs/reftest.list | 2 +-
|
||||
layout/reftests/css-disabled/select/reftest.list | 10 +++++-----
|
||||
layout/reftests/css-invalid/select/reftest.list | 4 ++--
|
||||
layout/reftests/css-ui-invalid/select/reftest.list | 4 ++--
|
||||
layout/reftests/css-ui-valid/select/reftest.list | 4 ++--
|
||||
layout/reftests/css-valid/select/reftest.list | 4 ++--
|
||||
6 files changed, 14 insertions(+), 14 deletions(-)
|
||||
|
||||
diff --git layout/reftests/bugs/reftest.list layout/reftests/bugs/reftest.list
|
||||
index 55eb7da5611f..7815eaf2b69d 100644
|
||||
--- layout/reftests/bugs/reftest.list
|
||||
+++ layout/reftests/bugs/reftest.list
|
||||
@@ -1502,7 +1502,7 @@ random != 553571-1.html 553571-1-notref.html # expect dotted circle in test, not
|
||||
fuzzy-if(!contentSameGfxBackendAsCanvas,128,91) random-if(d2d) skip-if(azureSkiaGL) fuzzy-if(skiaContent,32,150) == 555388-1.html 555388-1-ref.html
|
||||
== 556661-1.html 556661-1-ref.html
|
||||
fuzzy-if(skiaContent,4,5) == 557087-1.html 557087-ref.html
|
||||
-fails-if(Android) fuzzy-if(skiaContent&&!Android,2,5) == 557087-2.html 557087-ref.html
|
||||
+fuzzy-if(skiaContent&&!Android,2,5) == 557087-2.html 557087-ref.html
|
||||
== 557736-1.html 557736-1-ref.html
|
||||
!= 558011-1.xul 558011-1-ref.xul
|
||||
== 559284-1.html 559284-1-ref.html
|
||||
diff --git layout/reftests/css-disabled/select/reftest.list layout/reftests/css-disabled/select/reftest.list
|
||||
index 700f06471cda..d6abbd6bd903 100644
|
||||
--- layout/reftests/css-disabled/select/reftest.list
|
||||
+++ layout/reftests/css-disabled/select/reftest.list
|
||||
@@ -1,9 +1,9 @@
|
||||
fuzzy-if(Android,12,1) == select-fieldset-1.html select-fieldset-ref.html
|
||||
-fails-if(Android) fuzzy-if(skiaContent&&!Android,2,17) == select-fieldset-2.html select-fieldset-ref-disabled.html
|
||||
-fails-if(Android) fuzzy-if(skiaContent&&!Android,2,17) == select-fieldset-3.html select-fieldset-ref-disabled.html
|
||||
-fails-if(Android) fuzzy-if(skiaContent&&!Android,2,13) == select-fieldset-4.html select-fieldset-ref.html
|
||||
+fuzzy-if(skiaContent&&!Android,2,17) == select-fieldset-2.html select-fieldset-ref-disabled.html
|
||||
+fuzzy-if(skiaContent&&!Android,2,17) == select-fieldset-3.html select-fieldset-ref-disabled.html
|
||||
+fuzzy-if(skiaContent&&!Android,2,13) == select-fieldset-4.html select-fieldset-ref.html
|
||||
== select-fieldset-legend-1.html select-fieldset-legend-ref-1.html
|
||||
-fails-if(Android) fuzzy-if(skiaContent&&!Android,2,6) == select-fieldset-legend-2.html select-fieldset-legend-ref-2.html
|
||||
-fails-if(Android) fuzzy-if(skiaContent&&!Android,2,8) == select-fieldset-legend-3.html select-fieldset-legend-ref-3.html
|
||||
+fuzzy-if(skiaContent&&!Android,2,6) == select-fieldset-legend-2.html select-fieldset-legend-ref-2.html
|
||||
+fuzzy-if(skiaContent&&!Android,2,8) == select-fieldset-legend-3.html select-fieldset-legend-ref-3.html
|
||||
fuzzy-if(skiaContent,2,12) == select-fieldset-legend-4.html select-fieldset-legend-ref-4.html
|
||||
fuzzy-if(skiaContent,2,5) == select-fieldset-legend-5.html select-fieldset-legend-ref-5.html
|
||||
diff --git layout/reftests/css-invalid/select/reftest.list layout/reftests/css-invalid/select/reftest.list
|
||||
index 2d16e1603b0c..44bd631b6215 100644
|
||||
--- layout/reftests/css-invalid/select/reftest.list
|
||||
+++ layout/reftests/css-invalid/select/reftest.list
|
||||
@@ -7,6 +7,6 @@ needs-focus == select-required-invalid.html select-required-ref.html
|
||||
needs-focus == select-required-valid.html select-required-ref.html
|
||||
needs-focus == select-required-multiple-still-valid.html select-required-multiple-ref.html
|
||||
fuzzy-if(skiaContent,1,250) needs-focus == select-required-multiple-valid.html select-required-multiple-ref.html
|
||||
-fails-if(Android) fuzzy-if(skiaContent&&!Android,1,3) needs-focus == select-disabled-fieldset-1.html select-fieldset-ref.html
|
||||
-fails-if(Android) fuzzy-if(skiaContent&&!Android,2,3) needs-focus == select-disabled-fieldset-2.html select-fieldset-ref.html
|
||||
+fuzzy-if(skiaContent&&!Android,1,3) needs-focus == select-disabled-fieldset-1.html select-fieldset-ref.html
|
||||
+fuzzy-if(skiaContent&&!Android,2,3) needs-focus == select-disabled-fieldset-2.html select-fieldset-ref.html
|
||||
fuzzy-if(skiaContent,2,5) needs-focus == select-fieldset-legend.html select-fieldset-legend-ref.html
|
||||
diff --git layout/reftests/css-ui-invalid/select/reftest.list layout/reftests/css-ui-invalid/select/reftest.list
|
||||
index 1fd197793914..f0b298401ced 100644
|
||||
--- layout/reftests/css-ui-invalid/select/reftest.list
|
||||
+++ layout/reftests/css-ui-invalid/select/reftest.list
|
||||
@@ -12,7 +12,7 @@ fuzzy-if(skiaContent,2,5) needs-focus == select-required-valid.html select-requi
|
||||
needs-focus == select-required-multiple-invalid.html select-required-multiple-ref.html
|
||||
fuzzy-if(asyncPan&&!layersGPUAccelerated,84,77) fuzzy-if(skiaContent,1,1000) needs-focus == select-required-multiple-invalid-changed.html select-required-multiple-ref.html
|
||||
needs-focus == select-required-multiple-valid.html select-required-multiple-ref.html
|
||||
-fails-if(Android) fuzzy-if(skiaContent&&!Android,2,10) needs-focus == select-disabled-fieldset-1.html select-fieldset-ref.html
|
||||
-fails-if(Android) fuzzy-if(skiaContent&&!Android,2,10) needs-focus == select-disabled-fieldset-2.html select-fieldset-ref.html
|
||||
+fuzzy-if(skiaContent&&!Android,2,10) needs-focus == select-disabled-fieldset-1.html select-fieldset-ref.html
|
||||
+fuzzy-if(skiaContent&&!Android,2,10) needs-focus == select-disabled-fieldset-2.html select-fieldset-ref.html
|
||||
fuzzy-if(skiaContent,2,10) needs-focus == select-fieldset-legend.html select-fieldset-legend-ref.html
|
||||
fuzzy-if(skiaContent,1,5) needs-focus == select-novalidate.html select-required-ref.html
|
||||
diff --git layout/reftests/css-ui-valid/select/reftest.list layout/reftests/css-ui-valid/select/reftest.list
|
||||
index 082a6fc0ce40..815cb4635ddb 100644
|
||||
--- layout/reftests/css-ui-valid/select/reftest.list
|
||||
+++ layout/reftests/css-ui-valid/select/reftest.list
|
||||
@@ -12,7 +12,7 @@ fuzzy-if(skiaContent,2,5) needs-focus == select-required-valid-changed-2.html se
|
||||
needs-focus == select-required-multiple-invalid.html select-required-multiple-ref.html
|
||||
needs-focus == select-required-multiple-valid.html select-required-multiple-ref.html
|
||||
fuzzy(64,4) fuzzy-if(asyncPan&&layersGPUAccelerated,84,77) fuzzy-if(skiaContent,1,1000) needs-focus == select-required-multiple-valid-changed.html select-required-multiple-ref.html
|
||||
-fails-if(Android) needs-focus == select-disabled-fieldset-1.html select-fieldset-ref.html
|
||||
-fails-if(Android) fuzzy-if(skiaContent&&!Android,2,10) needs-focus == select-disabled-fieldset-2.html select-fieldset-ref.html
|
||||
+needs-focus == select-disabled-fieldset-1.html select-fieldset-ref.html
|
||||
+fuzzy-if(skiaContent&&!Android,2,10) needs-focus == select-disabled-fieldset-2.html select-fieldset-ref.html
|
||||
fuzzy-if(skiaContent,2,10) needs-focus == select-fieldset-legend.html select-fieldset-legend-ref.html
|
||||
fuzzy-if(skiaContent,2,5) needs-focus == select-novalidate.html select-required-ref.html
|
||||
diff --git layout/reftests/css-valid/select/reftest.list layout/reftests/css-valid/select/reftest.list
|
||||
index ac77e60d68a7..fc84eb8541c5 100644
|
||||
--- layout/reftests/css-valid/select/reftest.list
|
||||
+++ layout/reftests/css-valid/select/reftest.list
|
||||
@@ -7,6 +7,6 @@ needs-focus == select-required-invalid.html select-required-ref.html
|
||||
needs-focus == select-required-valid.html select-required-ref.html
|
||||
needs-focus == select-required-multiple-still-valid.html select-required-multiple-ref.html
|
||||
fuzzy-if(skiaContent,1,250) needs-focus == select-required-multiple-valid.html select-required-multiple-ref.html
|
||||
-fails-if(Android) needs-focus == select-disabled-fieldset-1.html select-fieldset-ref.html
|
||||
-fails-if(Android) fuzzy-if(skiaContent&&!Android,1,3) needs-focus == select-disabled-fieldset-2.html select-fieldset-ref.html
|
||||
+needs-focus == select-disabled-fieldset-1.html select-fieldset-ref.html
|
||||
+fuzzy-if(skiaContent&&!Android,1,3) needs-focus == select-disabled-fieldset-2.html select-fieldset-ref.html
|
||||
needs-focus == select-fieldset-legend.html select-fieldset-legend-ref.html
|
57
www/waterfox/files/patch-bug1402094
Normal file
57
www/waterfox/files/patch-bug1402094
Normal file
@ -0,0 +1,57 @@
|
||||
commit 447413f00860
|
||||
Author: Xidorn Quan <me@upsuper.org>
|
||||
Date: Thu Sep 28 16:19:45 2017 +1000
|
||||
|
||||
Bug 1402094 - Blacklist about:reader from using stylo. r=bholley, a=sledru
|
||||
|
||||
MozReview-Commit-ID: 6cG1x1tcOwn
|
||||
|
||||
--HG--
|
||||
extra : source : 813556d9e389f580d8e6efa9c24825edec952259
|
||||
---
|
||||
dom/base/nsDocument.cpp | 25 ++++++++++++++++++++++++-
|
||||
1 file changed, 24 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git dom/base/nsDocument.cpp dom/base/nsDocument.cpp
|
||||
index 07ef9ef817b7..7f8ebecffa97 100644
|
||||
--- dom/base/nsDocument.cpp
|
||||
+++ dom/base/nsDocument.cpp
|
||||
@@ -13575,6 +13575,29 @@ nsIDocument::ReportHasScrollLinkedEffect()
|
||||
"ScrollLinkedEffectFound2");
|
||||
}
|
||||
|
||||
+#ifdef MOZ_STYLO
|
||||
+// URL-based blacklist for stylo.
|
||||
+static bool
|
||||
+ShouldUseGeckoBackend(nsIURI* aDocumentURI)
|
||||
+{
|
||||
+ if (!aDocumentURI) {
|
||||
+ return false;
|
||||
+ }
|
||||
+ bool isScheme = false;
|
||||
+ if (NS_SUCCEEDED(aDocumentURI->SchemeIs("about", &isScheme))) {
|
||||
+ nsAutoCString path;
|
||||
+ aDocumentURI->GetFilePath(path);
|
||||
+ // about:reader requires support of :scope pseudo-class so we have
|
||||
+ // to use Gecko backend for now. See bug 1402094.
|
||||
+ // This should be fixed by bug 1204818.
|
||||
+ if (path.EqualsLiteral("reader")) {
|
||||
+ return true;
|
||||
+ }
|
||||
+ }
|
||||
+ return false;
|
||||
+}
|
||||
+#endif // MOZ_STYLO
|
||||
+
|
||||
void
|
||||
nsIDocument::UpdateStyleBackendType()
|
||||
{
|
||||
@@ -13593,7 +13616,7 @@ nsIDocument::UpdateStyleBackendType()
|
||||
// Note that, since tests can have XUL support, we still need to
|
||||
// explicitly exclude XUL documents here.
|
||||
if (!nsContentUtils::IsSystemPrincipal(NodePrincipal()) &&
|
||||
- !IsXULDocument()) {
|
||||
+ !IsXULDocument() && !ShouldUseGeckoBackend(mDocumentURI)) {
|
||||
mStyleBackendType = StyleBackendType::Servo;
|
||||
}
|
||||
}
|
77
www/waterfox/files/patch-bug1402205
Normal file
77
www/waterfox/files/patch-bug1402205
Normal file
@ -0,0 +1,77 @@
|
||||
commit 86b6592ab804
|
||||
Author: Haik Aftandilian <haftandilian@mozilla.com>
|
||||
Date: Mon Sep 25 15:48:40 2017 -0700
|
||||
|
||||
Bug 1402205 - Non-existent background page blocks extension startup. r=kmag, a=sledru
|
||||
|
||||
Add calls to OnStartRequest() and OnStopRequest() to properly handle async
|
||||
read failures for remote JAR's and remote unpacked extension resources.
|
||||
|
||||
MozReview-Commit-ID: Dcg0LDht9B9
|
||||
|
||||
--HG--
|
||||
extra : source : 611582e42451dd26fcaa38f251e2203a6e8b0bf9
|
||||
---
|
||||
netwerk/protocol/res/ExtensionProtocolHandler.cpp | 23 +++++++++++++++++------
|
||||
1 file changed, 17 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git netwerk/protocol/res/ExtensionProtocolHandler.cpp netwerk/protocol/res/ExtensionProtocolHandler.cpp
|
||||
index 326c21d13057..a2d900f95b96 100644
|
||||
--- netwerk/protocol/res/ExtensionProtocolHandler.cpp
|
||||
+++ netwerk/protocol/res/ExtensionProtocolHandler.cpp
|
||||
@@ -253,6 +253,19 @@ ExtensionStreamGetter::GetAsync(nsIStreamListener* aListener,
|
||||
return Ok();
|
||||
}
|
||||
|
||||
+static void
|
||||
+CancelRequest(nsIStreamListener* aListener,
|
||||
+ nsIChannel* aChannel,
|
||||
+ nsresult aResult)
|
||||
+{
|
||||
+ MOZ_ASSERT(aListener);
|
||||
+ MOZ_ASSERT(aChannel);
|
||||
+
|
||||
+ aListener->OnStartRequest(aChannel, nullptr);
|
||||
+ aListener->OnStopRequest(aChannel, nullptr, aResult);
|
||||
+ aChannel->Cancel(NS_BINDING_ABORTED);
|
||||
+}
|
||||
+
|
||||
// Handle an input stream sent from the parent.
|
||||
void
|
||||
ExtensionStreamGetter::OnStream(nsIInputStream* aStream)
|
||||
@@ -269,9 +282,7 @@ ExtensionStreamGetter::OnStream(nsIInputStream* aStream)
|
||||
|
||||
if (!aStream) {
|
||||
// The parent didn't send us back a stream.
|
||||
- listener->OnStartRequest(mChannel, nullptr);
|
||||
- listener->OnStopRequest(mChannel, nullptr, NS_ERROR_FILE_ACCESS_DENIED);
|
||||
- mChannel->Cancel(NS_BINDING_ABORTED);
|
||||
+ CancelRequest(listener, mChannel, NS_ERROR_FILE_ACCESS_DENIED);
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -279,13 +290,13 @@ ExtensionStreamGetter::OnStream(nsIInputStream* aStream)
|
||||
nsresult rv = NS_NewInputStreamPump(getter_AddRefs(pump), aStream, -1, -1, 0,
|
||||
0, false, mMainThreadEventTarget);
|
||||
if (NS_FAILED(rv)) {
|
||||
- mChannel->Cancel(NS_BINDING_ABORTED);
|
||||
+ CancelRequest(listener, mChannel, rv);
|
||||
return;
|
||||
}
|
||||
|
||||
rv = pump->AsyncRead(listener, nullptr);
|
||||
if (NS_FAILED(rv)) {
|
||||
- mChannel->Cancel(NS_BINDING_ABORTED);
|
||||
+ CancelRequest(listener, mChannel, rv);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -310,7 +321,7 @@ ExtensionStreamGetter::OnFD(const FileDescriptor& aFD)
|
||||
mJarChannel->SetJarFile(fdFile);
|
||||
nsresult rv = mJarChannel->AsyncOpen2(listener);
|
||||
if (NS_FAILED(rv)) {
|
||||
- mChannel->Cancel(NS_BINDING_ABORTED);
|
||||
+ CancelRequest(listener, mChannel, rv);
|
||||
}
|
||||
}
|
||||
|
87
www/waterfox/files/patch-bug1402366
Normal file
87
www/waterfox/files/patch-bug1402366
Normal file
@ -0,0 +1,87 @@
|
||||
commit 0211305e7012
|
||||
Author: Emilio Cobos Álvarez <emilio@crisal.io>
|
||||
Date: Fri Sep 22 21:23:11 2017 +0200
|
||||
|
||||
Bug 1402366 - Mark datetimebox as not needing xul.css. r=bholley, r=jessica, a=sledru
|
||||
|
||||
We create a datetimebox in content documents that gets an XBL binding on
|
||||
nsDateTimeControlFrame::CreateAnonymousContent.
|
||||
|
||||
This is done during frame construction, and loading a datetimebox insert xul.css
|
||||
in the document, which causes invalidation to run.
|
||||
|
||||
datetimebox styles are in html.css, and there's no rule in xul.css that styles
|
||||
it, so we don't need to load the stylesheet at all.
|
||||
|
||||
MozReview-Commit-ID: 2SbIOoER2uB
|
||||
|
||||
--HG--
|
||||
extra : source : 5b642e09aacd450f7ea2b667d2d453a701a30e15
|
||||
---
|
||||
dom/xul/nsXULElement.cpp | 5 ++---
|
||||
1 file changed, 2 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git dom/xul/nsXULElement.cpp dom/xul/nsXULElement.cpp
|
||||
index f1a87e917182..2c3574cd6580 100644
|
||||
--- dom/xul/nsXULElement.cpp
|
||||
+++ dom/xul/nsXULElement.cpp
|
||||
@@ -696,6 +696,7 @@ static inline bool XULElementsRulesInMinimalXULSheet(nsIAtom* aTag)
|
||||
aTag == nsGkAtoms::thumb ||
|
||||
aTag == nsGkAtoms::scale ||
|
||||
// other
|
||||
+ aTag == nsGkAtoms::datetimebox ||
|
||||
aTag == nsGkAtoms::resizer ||
|
||||
aTag == nsGkAtoms::label ||
|
||||
aTag == nsGkAtoms::videocontrols;
|
||||
@@ -810,9 +811,7 @@ nsXULElement::BindToTree(nsIDocument* aDocument,
|
||||
// pulling in xul.css.
|
||||
// Note that add-ons may introduce bindings that cause this assertion to
|
||||
// fire.
|
||||
- NS_ASSERTION(IsInVideoControls(this) ||
|
||||
- IsInFeedSubscribeLine(this) ||
|
||||
- IsXULElement(nsGkAtoms::datetimebox),
|
||||
+ NS_ASSERTION(IsInVideoControls(this) || IsInFeedSubscribeLine(this),
|
||||
"Unexpected XUL element in non-XUL doc");
|
||||
}
|
||||
}
|
||||
|
||||
commit 07adf4398955
|
||||
Author: Emilio Cobos Álvarez <emilio@crisal.io>
|
||||
Date: Mon Sep 25 10:16:36 2017 +0200
|
||||
|
||||
Bug 1402366 - Crashtest. r=me, a=sledru
|
||||
|
||||
MozReview-Commit-ID: 8ZcVBHKNntj
|
||||
|
||||
--HG--
|
||||
extra : source : 7fde3082d44b416af788f2ba09834fb3403eb8ff
|
||||
---
|
||||
layout/style/crashtests/1402366.html | 10 ++++++++++
|
||||
layout/style/crashtests/crashtests.list | 1 +
|
||||
2 files changed, 11 insertions(+)
|
||||
|
||||
diff --git layout/style/crashtests/1402366.html layout/style/crashtests/1402366.html
|
||||
new file mode 100644
|
||||
index 000000000000..9cffd08f0415
|
||||
--- /dev/null
|
||||
+++ layout/style/crashtests/1402366.html
|
||||
@@ -0,0 +1,10 @@
|
||||
+<script>
|
||||
+document.documentElement.appendChild(document.createElement('x'))
|
||||
+a = document.createElement('x')
|
||||
+document.documentElement.appendChild(a)
|
||||
+new Range().getClientRects()
|
||||
+document.documentElement.appendChild(document.createElement('tr'))
|
||||
+b = document.createElement('input')
|
||||
+b.type = 'date'
|
||||
+document.documentElement.insertBefore(b, a)
|
||||
+</script>
|
||||
diff --git layout/style/crashtests/crashtests.list layout/style/crashtests/crashtests.list
|
||||
index 9cd557a44187..be05f417d6aa 100644
|
||||
--- layout/style/crashtests/crashtests.list
|
||||
+++ layout/style/crashtests/crashtests.list
|
||||
@@ -203,3 +203,4 @@ load 1387499.html
|
||||
load 1391577.html
|
||||
load 1398581.html
|
||||
load 1402218-1.html
|
||||
+load 1402366.html
|
182
www/waterfox/files/patch-bug1402469
Normal file
182
www/waterfox/files/patch-bug1402469
Normal file
@ -0,0 +1,182 @@
|
||||
commit 6b4f644b9a4e
|
||||
Author: Makoto Kato <m_kato@ga2.so-net.ne.jp>
|
||||
Date: Mon Sep 25 14:15:50 2017 +0900
|
||||
|
||||
Bug 1402469 - Part 1. Return value of ConvertListType should use Element instead of nsresult. r=masayuki, a=sledru
|
||||
|
||||
This is a typo bug of Bug 1053779 Part 2. ConvertListType might return NS_OK
|
||||
even if ReplaceContainer doesn't return valid value.
|
||||
|
||||
So, to clean up code, we should return Element instead of nsresult since out
|
||||
parameter of this function is Element only.
|
||||
|
||||
MozReview-Commit-ID: 44UHETzcdGy
|
||||
|
||||
--HG--
|
||||
extra : source : 5efdecc086858b4b4e5b0fcf9b7f27ef63d91738
|
||||
---
|
||||
editor/libeditor/HTMLEditRules.cpp | 47 +++++++++++++++++---------------------
|
||||
editor/libeditor/HTMLEditRules.h | 4 ++--
|
||||
2 files changed, 23 insertions(+), 28 deletions(-)
|
||||
|
||||
diff --git editor/libeditor/HTMLEditRules.cpp editor/libeditor/HTMLEditRules.cpp
|
||||
index ad613517269d..fdb15fec7b2f 100644
|
||||
--- editor/libeditor/HTMLEditRules.cpp
|
||||
+++ editor/libeditor/HTMLEditRules.cpp
|
||||
@@ -2960,9 +2960,8 @@ HTMLEditRules::TryToJoinBlocks(nsIContent& aLeftNode,
|
||||
// Nodes are same type. merge them.
|
||||
EditorDOMPoint pt = JoinNodesSmart(*leftBlock, *rightBlock);
|
||||
if (pt.node && mergeLists) {
|
||||
- nsCOMPtr<Element> newBlock;
|
||||
- ConvertListType(rightBlock, getter_AddRefs(newBlock),
|
||||
- existingList, nsGkAtoms::li);
|
||||
+ RefPtr<Element> newBlock =
|
||||
+ ConvertListType(rightBlock, existingList, nsGkAtoms::li);
|
||||
}
|
||||
ret.MarkAsHandled();
|
||||
} else {
|
||||
@@ -3320,18 +3319,19 @@ HTMLEditRules::WillMakeList(Selection* aSelection,
|
||||
NS_ENSURE_STATE(mHTMLEditor);
|
||||
rv = mHTMLEditor->MoveNode(curNode, curList, -1);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
- rv = ConvertListType(curNode->AsElement(), getter_AddRefs(newBlock),
|
||||
- listType, itemType);
|
||||
- NS_ENSURE_SUCCESS(rv, rv);
|
||||
+ newBlock = ConvertListType(curNode->AsElement(), listType, itemType);
|
||||
+ if (NS_WARN_IF(!newBlock)) {
|
||||
+ return NS_ERROR_FAILURE;
|
||||
+ }
|
||||
NS_ENSURE_STATE(mHTMLEditor);
|
||||
rv = mHTMLEditor->RemoveBlockContainer(*newBlock);
|
||||
NS_ENSURE_SUCCESS(rv, rv);
|
||||
} else {
|
||||
// replace list with new list type
|
||||
- rv = ConvertListType(curNode->AsElement(), getter_AddRefs(newBlock),
|
||||
- listType, itemType);
|
||||
- NS_ENSURE_SUCCESS(rv, rv);
|
||||
- curList = newBlock;
|
||||
+ curList = ConvertListType(curNode->AsElement(), listType, itemType);
|
||||
+ if (NS_WARN_IF(!curList)) {
|
||||
+ return NS_ERROR_FAILURE;
|
||||
+ }
|
||||
}
|
||||
prevListItem = nullptr;
|
||||
continue;
|
||||
@@ -4495,14 +4495,12 @@ HTMLEditRules::OutdentPartOfBlock(Element& aBlock,
|
||||
/**
|
||||
* ConvertListType() converts list type and list item type.
|
||||
*/
|
||||
-nsresult
|
||||
+already_AddRefed<Element>
|
||||
HTMLEditRules::ConvertListType(Element* aList,
|
||||
- Element** aOutList,
|
||||
nsIAtom* aListType,
|
||||
nsIAtom* aItemType)
|
||||
{
|
||||
MOZ_ASSERT(aList);
|
||||
- MOZ_ASSERT(aOutList);
|
||||
MOZ_ASSERT(aListType);
|
||||
MOZ_ASSERT(aItemType);
|
||||
|
||||
@@ -4513,29 +4511,26 @@ HTMLEditRules::ConvertListType(Element* aList,
|
||||
if (HTMLEditUtils::IsListItem(element) &&
|
||||
!element->IsHTMLElement(aItemType)) {
|
||||
child = mHTMLEditor->ReplaceContainer(element, aItemType);
|
||||
- NS_ENSURE_STATE(child);
|
||||
+ if (NS_WARN_IF(!child)) {
|
||||
+ return nullptr;
|
||||
+ }
|
||||
} else if (HTMLEditUtils::IsList(element) &&
|
||||
!element->IsHTMLElement(aListType)) {
|
||||
- nsCOMPtr<dom::Element> temp;
|
||||
- nsresult rv = ConvertListType(child->AsElement(), getter_AddRefs(temp),
|
||||
- aListType, aItemType);
|
||||
- NS_ENSURE_SUCCESS(rv, rv);
|
||||
- child = temp.forget();
|
||||
+ child = ConvertListType(child->AsElement(), aListType, aItemType);
|
||||
+ if (NS_WARN_IF(!child)) {
|
||||
+ return nullptr;
|
||||
+ }
|
||||
}
|
||||
}
|
||||
child = child->GetNextSibling();
|
||||
}
|
||||
|
||||
if (aList->IsHTMLElement(aListType)) {
|
||||
- nsCOMPtr<dom::Element> list = aList->AsElement();
|
||||
- list.forget(aOutList);
|
||||
- return NS_OK;
|
||||
+ RefPtr<dom::Element> list = aList->AsElement();
|
||||
+ return list.forget();
|
||||
}
|
||||
|
||||
- *aOutList = mHTMLEditor->ReplaceContainer(aList, aListType).take();
|
||||
- NS_ENSURE_STATE(aOutList);
|
||||
-
|
||||
- return NS_OK;
|
||||
+ return mHTMLEditor->ReplaceContainer(aList, aListType);
|
||||
}
|
||||
|
||||
|
||||
diff --git editor/libeditor/HTMLEditRules.h editor/libeditor/HTMLEditRules.h
|
||||
index d1bb1fa7e3b2..0dde7f01e408 100644
|
||||
--- editor/libeditor/HTMLEditRules.h
|
||||
+++ editor/libeditor/HTMLEditRules.h
|
||||
@@ -316,8 +316,8 @@ protected:
|
||||
nsIContent** aOutLeftNode,
|
||||
nsIContent** aOutRightNode);
|
||||
|
||||
- nsresult ConvertListType(Element* aList, Element** aOutList,
|
||||
- nsIAtom* aListType, nsIAtom* aItemType);
|
||||
+ already_AddRefed<Element> ConvertListType(Element* aList, nsIAtom* aListType,
|
||||
+ nsIAtom* aItemType);
|
||||
|
||||
nsresult CreateStyleForInsertText(Selection& aSelection, nsIDocument& aDoc);
|
||||
enum class MozBRCounts { yes, no };
|
||||
|
||||
commit 5e5f298b8e42
|
||||
Author: Makoto Kato <m_kato@ga2.so-net.ne.jp>
|
||||
Date: Mon Sep 25 14:11:29 2017 +0900
|
||||
|
||||
Bug 1402469 - Part 2. Add crash test. r=masayuki, a=sledru
|
||||
|
||||
MozReview-Commit-ID: HogVH2OTyd6
|
||||
|
||||
--HG--
|
||||
extra : source : 5e311cd7074e6b649187f5a79371f0681c2d7504
|
||||
---
|
||||
editor/libeditor/crashtests/1402469.html | 16 ++++++++++++++++
|
||||
editor/libeditor/crashtests/crashtests.list | 1 +
|
||||
2 files changed, 17 insertions(+)
|
||||
|
||||
diff --git editor/libeditor/crashtests/1402469.html editor/libeditor/crashtests/1402469.html
|
||||
new file mode 100644
|
||||
index 000000000000..04b1adc96f25
|
||||
--- /dev/null
|
||||
+++ editor/libeditor/crashtests/1402469.html
|
||||
@@ -0,0 +1,16 @@
|
||||
+<html>
|
||||
+<head>
|
||||
+<script type="application/javascript">
|
||||
+function do_test() {
|
||||
+ document.execCommand("insertUnorderedList", false);
|
||||
+}
|
||||
+</script>
|
||||
+</head>
|
||||
+<body onload="do_test()">
|
||||
+<table>
|
||||
+ <th contenteditable="true">
|
||||
+ <ol contenteditable="false">
|
||||
+ </th>
|
||||
+</table>
|
||||
+</body>
|
||||
+</html>
|
||||
diff --git editor/libeditor/crashtests/crashtests.list editor/libeditor/crashtests/crashtests.list
|
||||
index 11672c41d102..840e26f2fe62 100644
|
||||
--- editor/libeditor/crashtests/crashtests.list
|
||||
+++ editor/libeditor/crashtests/crashtests.list
|
||||
@@ -80,3 +80,4 @@ load 1366176.html
|
||||
load 1375131.html
|
||||
load 1381541.html
|
||||
load 1383755.html
|
||||
+load 1402469.html
|
138
www/waterfox/files/patch-bug1402681
Normal file
138
www/waterfox/files/patch-bug1402681
Normal file
@ -0,0 +1,138 @@
|
||||
commit ffcf40b7a0e9
|
||||
Author: Alastor Wu <alwu@mozilla.com>
|
||||
Date: Tue Sep 26 17:48:19 2017 +0800
|
||||
|
||||
Bug 1402681 - Part 1: Do not queue the task without task queue. r=jya, a=sledru
|
||||
|
||||
Since the source buffer is a wrapped native, it would be unlinked twice and then the
|
||||
TrackBuffersManager::Detach() would also be called twice.
|
||||
|
||||
The first detach task would clear the task queue of TrackBuffersManager, and then we
|
||||
won't accept any new task without task queue. The second detach task should not be
|
||||
executed.
|
||||
|
||||
MozReview-Commit-ID: AWTzVbRH5B1
|
||||
|
||||
--HG--
|
||||
extra : source : 145eac8ba70636cdb1a235d6d7094b87bbfd8022
|
||||
---
|
||||
dom/media/mediasource/TrackBuffersManager.cpp | 9 +++++++++
|
||||
1 file changed, 9 insertions(+)
|
||||
|
||||
diff --git dom/media/mediasource/TrackBuffersManager.cpp dom/media/mediasource/TrackBuffersManager.cpp
|
||||
index 50293810064b..cda89faaff51 100644
|
||||
--- dom/media/mediasource/TrackBuffersManager.cpp
|
||||
+++ dom/media/mediasource/TrackBuffersManager.cpp
|
||||
@@ -145,6 +145,15 @@ TrackBuffersManager::DoAppendData(already_AddRefed<MediaByteBuffer> aData,
|
||||
void
|
||||
TrackBuffersManager::QueueTask(SourceBufferTask* aTask)
|
||||
{
|
||||
+ // The source buffer is a wrapped native, it would be unlinked twice and so
|
||||
+ // the TrackBuffersManager::Detach() would also be called twice. Since the
|
||||
+ // detach task has been done before, we could ignore this task.
|
||||
+ if (!GetTaskQueue()) {
|
||||
+ MOZ_ASSERT(aTask->GetType() == SourceBufferTask::Type::Detach,
|
||||
+ "only detach task could happen here!");
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
if (!OnTaskQueue()) {
|
||||
GetTaskQueue()->Dispatch(NewRunnableMethod<RefPtr<SourceBufferTask>>(
|
||||
"TrackBuffersManager::QueueTask",
|
||||
|
||||
commit 99e2204da6a1
|
||||
Author: Alastor Wu <alwu@mozilla.com>
|
||||
Date: Tue Sep 26 17:48:39 2017 +0800
|
||||
|
||||
Bug 1402681 - Part 2: Add log. r=jya, a=sledru
|
||||
|
||||
MozReview-Commit-ID: 8qINxSCKrvg
|
||||
|
||||
--HG--
|
||||
extra : source : 0cac2e15b4ca7cf03e75ee208da624495215382f
|
||||
---
|
||||
dom/media/mediasource/SourceBufferTask.h | 7 +++++++
|
||||
dom/media/mediasource/TrackBuffersManager.cpp | 4 ++++
|
||||
2 files changed, 11 insertions(+)
|
||||
|
||||
diff --git dom/media/mediasource/SourceBufferTask.h dom/media/mediasource/SourceBufferTask.h
|
||||
index 183e7b4b2a0b..b73094fbd282 100644
|
||||
--- dom/media/mediasource/SourceBufferTask.h
|
||||
+++ dom/media/mediasource/SourceBufferTask.h
|
||||
@@ -32,6 +32,7 @@ public:
|
||||
typedef MozPromise<bool, nsresult, /* IsExclusive = */ true> RangeRemovalPromise;
|
||||
|
||||
virtual Type GetType() const = 0;
|
||||
+ virtual const char* GetTypeName() const = 0;
|
||||
|
||||
template<typename ReturnType>
|
||||
ReturnType* As()
|
||||
@@ -54,6 +55,7 @@ public:
|
||||
|
||||
static const Type sType = Type::AppendBuffer;
|
||||
Type GetType() const override { return Type::AppendBuffer; }
|
||||
+ const char* GetTypeName() const override { return "AppendBuffer"; }
|
||||
|
||||
RefPtr<MediaByteBuffer> mBuffer;
|
||||
SourceBufferAttributes mAttributes;
|
||||
@@ -64,12 +66,14 @@ class AbortTask : public SourceBufferTask {
|
||||
public:
|
||||
static const Type sType = Type::Abort;
|
||||
Type GetType() const override { return Type::Abort; }
|
||||
+ const char* GetTypeName() const override { return "Abort"; }
|
||||
};
|
||||
|
||||
class ResetTask : public SourceBufferTask {
|
||||
public:
|
||||
static const Type sType = Type::Reset;
|
||||
Type GetType() const override { return Type::Reset; }
|
||||
+ const char* GetTypeName() const override { return "Reset"; }
|
||||
};
|
||||
|
||||
class RangeRemovalTask : public SourceBufferTask {
|
||||
@@ -80,6 +84,7 @@ public:
|
||||
|
||||
static const Type sType = Type::RangeRemoval;
|
||||
Type GetType() const override { return Type::RangeRemoval; }
|
||||
+ const char* GetTypeName() const override { return "RangeRemoval"; }
|
||||
|
||||
media::TimeInterval mRange;
|
||||
MozPromiseHolder<RangeRemovalPromise> mPromise;
|
||||
@@ -94,6 +99,7 @@ public:
|
||||
|
||||
static const Type sType = Type::EvictData;
|
||||
Type GetType() const override { return Type::EvictData; }
|
||||
+ const char* GetTypeName() const override { return "EvictData"; }
|
||||
|
||||
media::TimeUnit mPlaybackTime;
|
||||
int64_t mSizeToEvict;
|
||||
@@ -103,6 +109,7 @@ class DetachTask : public SourceBufferTask {
|
||||
public:
|
||||
static const Type sType = Type::Detach;
|
||||
Type GetType() const override { return Type::Detach; }
|
||||
+ const char* GetTypeName() const override { return "Detach"; }
|
||||
};
|
||||
|
||||
} // end mozilla namespace
|
||||
diff --git dom/media/mediasource/TrackBuffersManager.cpp dom/media/mediasource/TrackBuffersManager.cpp
|
||||
index cda89faaff51..b9b768b726a2 100644
|
||||
--- dom/media/mediasource/TrackBuffersManager.cpp
|
||||
+++ dom/media/mediasource/TrackBuffersManager.cpp
|
||||
@@ -151,6 +151,8 @@ TrackBuffersManager::QueueTask(SourceBufferTask* aTask)
|
||||
if (!GetTaskQueue()) {
|
||||
MOZ_ASSERT(aTask->GetType() == SourceBufferTask::Type::Detach,
|
||||
"only detach task could happen here!");
|
||||
+ MSE_DEBUG("Could not queue the task '%s' without task queue",
|
||||
+ aTask->GetTypeName());
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -183,6 +185,8 @@ TrackBuffersManager::ProcessTasks()
|
||||
// nothing to do.
|
||||
return;
|
||||
}
|
||||
+
|
||||
+ MSE_DEBUG("Process task '%s'", task->GetTypeName());
|
||||
switch (task->GetType()) {
|
||||
case Type::AppendBuffer:
|
||||
mCurrentTask = task;
|
180
www/waterfox/files/patch-bug1403282
Normal file
180
www/waterfox/files/patch-bug1403282
Normal file
@ -0,0 +1,180 @@
|
||||
commit fc20d87173c4
|
||||
Author: Manish Goregaokar <manishearth@gmail.com>
|
||||
Date: Tue Sep 26 23:56:15 2017 -0500
|
||||
|
||||
Bug 1403282 - stylo: Don't error out on trailing whitespace in attr(). r=bz, a=sledru
|
||||
|
||||
Source-Repo: https://github.com/servo/servo
|
||||
Source-Revision: 97227aaca3613e22afc832554d29f7f7fdfb7220
|
||||
|
||||
--HG--
|
||||
extra : source : 4263e1c081c940b4eae7bcd388274ec8c5b5dd8b
|
||||
---
|
||||
servo/components/style/values/specified/mod.rs | 44 ++++++++++++++------------
|
||||
1 file changed, 24 insertions(+), 20 deletions(-)
|
||||
|
||||
diff --git servo/components/style/values/specified/mod.rs servo/components/style/values/specified/mod.rs
|
||||
index 856aecca90ac..72ed1b1de83a 100644
|
||||
--- servo/components/style/values/specified/mod.rs
|
||||
+++ servo/components/style/values/specified/mod.rs
|
||||
@@ -739,28 +739,32 @@ impl Attr {
|
||||
let first = input.try(|i| i.expect_ident_cloned()).ok();
|
||||
if let Ok(token) = input.try(|i| i.next_including_whitespace().map(|t| t.clone())) {
|
||||
match token {
|
||||
- Token::Delim('|') => {}
|
||||
+ Token::Delim('|') => {
|
||||
+ // must be followed by an ident
|
||||
+ let second_token = match *input.next_including_whitespace()? {
|
||||
+ Token::Ident(ref second) => second,
|
||||
+ ref t => return Err(BasicParseError::UnexpectedToken(t.clone()).into()),
|
||||
+ };
|
||||
+
|
||||
+ let ns_with_id = if let Some(ns) = first {
|
||||
+ let ns = Namespace::from(ns.as_ref());
|
||||
+ let id: Result<_, ParseError> =
|
||||
+ get_id_for_namespace(&ns, context)
|
||||
+ .map_err(|()| StyleParseError::UnspecifiedError.into());
|
||||
+ Some((ns, id?))
|
||||
+ } else {
|
||||
+ None
|
||||
+ };
|
||||
+ return Ok(Attr {
|
||||
+ namespace: ns_with_id,
|
||||
+ attribute: second_token.as_ref().to_owned(),
|
||||
+ })
|
||||
+ }
|
||||
+ // In the case of attr(foobar ) we don't want to error out
|
||||
+ // because of the trailing whitespace
|
||||
+ Token::WhiteSpace(_) => (),
|
||||
ref t => return Err(BasicParseError::UnexpectedToken(t.clone()).into()),
|
||||
}
|
||||
- // must be followed by an ident
|
||||
- let second_token = match *input.next_including_whitespace()? {
|
||||
- Token::Ident(ref second) => second,
|
||||
- ref t => return Err(BasicParseError::UnexpectedToken(t.clone()).into()),
|
||||
- };
|
||||
-
|
||||
- let ns_with_id = if let Some(ns) = first {
|
||||
- let ns = Namespace::from(ns.as_ref());
|
||||
- let id: Result<_, ParseError> =
|
||||
- get_id_for_namespace(&ns, context)
|
||||
- .map_err(|()| StyleParseError::UnspecifiedError.into());
|
||||
- Some((ns, id?))
|
||||
- } else {
|
||||
- None
|
||||
- };
|
||||
- return Ok(Attr {
|
||||
- namespace: ns_with_id,
|
||||
- attribute: second_token.as_ref().to_owned(),
|
||||
- })
|
||||
}
|
||||
|
||||
if let Some(first) = first {
|
||||
|
||||
commit 20bbda2d12de
|
||||
Author: Manish Goregaokar <manishearth@gmail.com>
|
||||
Date: Tue Sep 26 13:54:22 2017 -0700
|
||||
|
||||
Bug 1403282 - stylo: Add reftests for whitespace in attr(). r=bz, a=sledru
|
||||
|
||||
MozReview-Commit-ID: IMXFY7bpKGf
|
||||
|
||||
--HG--
|
||||
extra : source : cfcb518088438415e5c6f7776dc268abd0b86119
|
||||
---
|
||||
.../generated-content/attr-whitespace-ref.html | 10 ++++
|
||||
.../generated-content/attr-whitespace.xhtml | 60 ++++++++++++++++++++++
|
||||
layout/reftests/generated-content/reftest.list | 1 +
|
||||
3 files changed, 71 insertions(+)
|
||||
|
||||
diff --git layout/reftests/generated-content/attr-whitespace-ref.html layout/reftests/generated-content/attr-whitespace-ref.html
|
||||
new file mode 100644
|
||||
index 000000000000..54a74fe4d81f
|
||||
--- /dev/null
|
||||
+++ layout/reftests/generated-content/attr-whitespace-ref.html
|
||||
@@ -0,0 +1,10 @@
|
||||
+<!DOCTYPE HTML>
|
||||
+<html>
|
||||
+<body>
|
||||
+<div>HelloWorld</div>
|
||||
+<div>HelloWorld</div>
|
||||
+<div>HelloWorld</div>
|
||||
+<div>Hello</div>
|
||||
+<div>Hello</div>
|
||||
+</body>
|
||||
+</html>
|
||||
diff --git layout/reftests/generated-content/attr-whitespace.xhtml layout/reftests/generated-content/attr-whitespace.xhtml
|
||||
new file mode 100644
|
||||
index 000000000000..e9b6554849b0
|
||||
--- /dev/null
|
||||
+++ layout/reftests/generated-content/attr-whitespace.xhtml
|
||||
@@ -0,0 +1,60 @@
|
||||
+<?xml version="1.0" encoding="UTF-8"?>
|
||||
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
|
||||
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
||||
+<html lang="en" xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
|
||||
+<head>
|
||||
+ <title>Whitespace in attributes</title>
|
||||
+ <link rel="author" title="Manish Goregaokar" href="mailto:manishearth@gmail.com" />
|
||||
+ <link rel="author" title="Mozilla Corporation" href="http://mozilla.com/" />
|
||||
+ <link rel="help" href="https://drafts.csswg.org/css-values-3/#attr-notation"/>
|
||||
+<style>
|
||||
+@namespace ns url(http://www.example.com/ns);
|
||||
+/* Spaces within attr() are fine*/
|
||||
+#a::after {
|
||||
+
|
||||
+ content: attr(
|
||||
+ data-text
|
||||
+
|
||||
+
|
||||
+ );
|
||||
+}
|
||||
+#b::after {
|
||||
+
|
||||
+ content: attr(ns|data-text);
|
||||
+}
|
||||
+#c::after {
|
||||
+
|
||||
+ content: attr(
|
||||
+ ns|data-text
|
||||
+
|
||||
+
|
||||
+ );
|
||||
+}
|
||||
+
|
||||
+/* No whitespace around the | */
|
||||
+#d::after {
|
||||
+
|
||||
+ content: attr(
|
||||
+ ns |data-text
|
||||
+
|
||||
+
|
||||
+ );
|
||||
+}
|
||||
+#e::after {
|
||||
+
|
||||
+ content: attr(
|
||||
+ ns| data-text
|
||||
+
|
||||
+
|
||||
+ );
|
||||
+}
|
||||
+</style>
|
||||
+</head>
|
||||
+<body xmlns:ns="http://www.example.com/ns">
|
||||
+<div id="a" data-text="World">Hello</div>
|
||||
+<div id="b" ns:data-text="World">Hello</div>
|
||||
+<div id="b" ns:data-text="World">Hello</div>
|
||||
+<div id="d" ns:data-text="World">Hello</div>
|
||||
+<div id="e" ns:data-text="World">Hello</div>
|
||||
+</body>
|
||||
+</html>
|
||||
diff --git layout/reftests/generated-content/reftest.list layout/reftests/generated-content/reftest.list
|
||||
index e07a0dd565a5..c789f1845421 100644
|
||||
--- layout/reftests/generated-content/reftest.list
|
||||
+++ layout/reftests/generated-content/reftest.list
|
||||
@@ -19,3 +19,4 @@ fuzzy-if(OSX==1010,1,10) == table-parts-01.html table-parts-01-ref.html
|
||||
== before-style-sharing.html before-style-sharing-ref.html
|
||||
== transitive-style-invalidation.html transitive-style-invalidation-ref.html
|
||||
== dynamic-content.html dynamic-content-ref.html
|
||||
+== attr-whitespace.xhtml attr-whitespace-ref.html
|
60
www/waterfox/files/patch-bug1403465
Normal file
60
www/waterfox/files/patch-bug1403465
Normal file
@ -0,0 +1,60 @@
|
||||
commit f2c88f86dc5b
|
||||
Author: Emilio Cobos Álvarez <emilio@crisal.io>
|
||||
Date: Thu Sep 28 10:40:02 2017 +0200
|
||||
|
||||
Bug 1403465 - style: Avoid creating element data in Servo_ResolvePseudoStyle. r=bholley, a=sledru
|
||||
|
||||
The reason the patch in bug 1402285 doesn't work is that we call this function
|
||||
multiple times with the same element. This fixes it.
|
||||
|
||||
MozReview-Commit-ID: Ko9zirCOzTR
|
||||
|
||||
--HG--
|
||||
extra : transplant_source : qegB%06%15r/%F2%BDm%86%9C%C7%91%06%FA-%1E%A8
|
||||
---
|
||||
servo/ports/geckolib/glue.rs | 27 +++++++++++++++++----------
|
||||
1 file changed, 17 insertions(+), 10 deletions(-)
|
||||
|
||||
diff --git servo/ports/geckolib/glue.rs servo/ports/geckolib/glue.rs
|
||||
index 714947fc1812..2f2938f4890b 100644
|
||||
--- servo/ports/geckolib/glue.rs
|
||||
+++ servo/ports/geckolib/glue.rs
|
||||
@@ -1767,21 +1767,28 @@ pub extern "C" fn Servo_ResolvePseudoStyle(element: RawGeckoElementBorrowed,
|
||||
-> ServoStyleContextStrong
|
||||
{
|
||||
let element = GeckoElement(element);
|
||||
- let data = unsafe { element.ensure_data() };
|
||||
let doc_data = PerDocumentStyleData::from_ffi(raw_data).borrow();
|
||||
|
||||
debug!("Servo_ResolvePseudoStyle: {:?} {:?}, is_probe: {}",
|
||||
element, PseudoElement::from_pseudo_type(pseudo_type), is_probe);
|
||||
|
||||
- // FIXME(bholley): Assert against this.
|
||||
- if !data.has_styles() {
|
||||
- warn!("Calling Servo_ResolvePseudoStyle on unstyled element");
|
||||
- return if is_probe {
|
||||
- Strong::null()
|
||||
- } else {
|
||||
- doc_data.default_computed_values().clone().into()
|
||||
- };
|
||||
- }
|
||||
+ let data = element.borrow_data();
|
||||
+
|
||||
+ let data = match data.as_ref() {
|
||||
+ Some(data) if data.has_styles() => data,
|
||||
+ _ => {
|
||||
+ // FIXME(bholley, emilio): Assert against this.
|
||||
+ //
|
||||
+ // Known offender is nsMathMLmoFrame::MarkIntrinsicISizesDirty,
|
||||
+ // which goes and does a bunch of work involving style resolution.
|
||||
+ warn!("Calling Servo_ResolvePseudoStyle on unstyled element");
|
||||
+ return if is_probe {
|
||||
+ Strong::null()
|
||||
+ } else {
|
||||
+ doc_data.default_computed_values().clone().into()
|
||||
+ };
|
||||
+ }
|
||||
+ };
|
||||
|
||||
let pseudo = PseudoElement::from_pseudo_type(pseudo_type)
|
||||
.expect("ResolvePseudoStyle with a non-pseudo?");
|
27
www/waterfox/files/patch-bug1403473
Normal file
27
www/waterfox/files/patch-bug1403473
Normal file
@ -0,0 +1,27 @@
|
||||
commit 3da3e74521d4 (HEAD)
|
||||
Author: Thomas Nguyen <tnguyen@mozilla.com>
|
||||
Date: Fri Sep 29 01:46:00 2017 -0400
|
||||
|
||||
Bug 1403473 - Init loggingEnable for hashcompleter. r=dimi, a=sledru
|
||||
|
||||
MozReview-Commit-ID: 1BpErwmbgCM
|
||||
|
||||
--HG--
|
||||
extra : amend_source : 5993fe27195003ac1fa77f89b4d14187cbff591e
|
||||
---
|
||||
toolkit/components/url-classifier/nsUrlClassifierHashCompleter.js | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git toolkit/components/url-classifier/nsUrlClassifierHashCompleter.js toolkit/components/url-classifier/nsUrlClassifierHashCompleter.js
|
||||
index eac72dadabd3..16b1b7dc7c52 100644
|
||||
--- toolkit/components/url-classifier/nsUrlClassifierHashCompleter.js
|
||||
+++ toolkit/components/url-classifier/nsUrlClassifierHashCompleter.js
|
||||
@@ -184,6 +184,8 @@ function HashCompleter() {
|
||||
|
||||
Services.obs.addObserver(this, "quit-application");
|
||||
Services.prefs.addObserver(PREF_DEBUG_ENABLED, this);
|
||||
+
|
||||
+ loggingEnabled = Services.prefs.getBoolPref(PREF_DEBUG_ENABLED);
|
||||
}
|
||||
|
||||
HashCompleter.prototype = {
|
157
www/waterfox/files/patch-bug1403592
Normal file
157
www/waterfox/files/patch-bug1403592
Normal file
@ -0,0 +1,157 @@
|
||||
commit 79c72166bf05
|
||||
Author: Emilio Cobos Álvarez <emilio@crisal.io>
|
||||
Date: Wed Sep 27 18:09:31 2017 +0200
|
||||
|
||||
Bug 1403592 - Never flush the user font set when getting font metrics from style resolution. r=Manishearth, a=sledru
|
||||
|
||||
In this case, the caller doesn't go through all the PreTraverseSync stuff (we
|
||||
don't really want it to do so), via GetComputedStyleNoFlush.
|
||||
|
||||
It makes sense to not flush the user font set that case, we'll schedule a
|
||||
restyle properly if / when needed.
|
||||
|
||||
Since the set should be flushed otherwise, let's just not flush it from the
|
||||
styling code.
|
||||
|
||||
MozReview-Commit-ID: LLHfxemJ8QQ
|
||||
|
||||
--HG--
|
||||
extra : source : 0a0cc4bb885a2487b643e94fc244620751616d03
|
||||
---
|
||||
layout/style/ServoBindings.cpp | 7 ++++---
|
||||
layout/style/nsRuleNode.cpp | 13 ++++++++-----
|
||||
layout/style/nsRuleNode.h | 8 +++++++-
|
||||
3 files changed, 19 insertions(+), 9 deletions(-)
|
||||
|
||||
diff --git layout/style/ServoBindings.cpp layout/style/ServoBindings.cpp
|
||||
index ac2a6cc2ec01..d248e6ad1401 100644
|
||||
--- layout/style/ServoBindings.cpp
|
||||
+++ layout/style/ServoBindings.cpp
|
||||
@@ -2482,9 +2482,10 @@ Gecko_GetFontMetrics(RawGeckoPresContextBorrowed aPresContext,
|
||||
|
||||
nsPresContext* presContext = const_cast<nsPresContext*>(aPresContext);
|
||||
presContext->SetUsesExChUnits(true);
|
||||
- RefPtr<nsFontMetrics> fm = nsRuleNode::GetMetricsFor(presContext, aIsVertical,
|
||||
- aFont, aFontSize,
|
||||
- aUseUserFontSet);
|
||||
+ RefPtr<nsFontMetrics> fm = nsRuleNode::GetMetricsFor(
|
||||
+ presContext, aIsVertical, aFont, aFontSize, aUseUserFontSet,
|
||||
+ nsRuleNode::FlushUserFontSet::No);
|
||||
+
|
||||
ret.mXSize = fm->XHeight();
|
||||
gfxFloat zeroWidth = fm->GetThebesFontGroup()->GetFirstValidFont()->
|
||||
GetMetrics(fm->Orientation()).zeroOrAveCharWidth;
|
||||
diff --git layout/style/nsRuleNode.cpp layout/style/nsRuleNode.cpp
|
||||
index ccccce98009e..fbb5e3824e2f 100644
|
||||
--- layout/style/nsRuleNode.cpp
|
||||
+++ layout/style/nsRuleNode.cpp
|
||||
@@ -377,7 +377,8 @@ nsRuleNode::GetMetricsFor(nsPresContext* aPresContext,
|
||||
bool aIsVertical,
|
||||
const nsStyleFont* aStyleFont,
|
||||
nscoord aFontSize,
|
||||
- bool aUseUserFontSet)
|
||||
+ bool aUseUserFontSet,
|
||||
+ FlushUserFontSet aFlushUserFontSet)
|
||||
{
|
||||
nsFont font = aStyleFont->mFont;
|
||||
font.size = aFontSize;
|
||||
@@ -387,8 +388,9 @@ nsRuleNode::GetMetricsFor(nsPresContext* aPresContext,
|
||||
params.language = aStyleFont->mLanguage;
|
||||
params.explicitLanguage = aStyleFont->mExplicitLanguage;
|
||||
params.orientation = orientation;
|
||||
- params.userFontSet =
|
||||
- aUseUserFontSet ? aPresContext->GetUserFontSet() : nullptr;
|
||||
+ params.userFontSet = aUseUserFontSet
|
||||
+ ? aPresContext->GetUserFontSet(aFlushUserFontSet == FlushUserFontSet::Yes)
|
||||
+ : nullptr;
|
||||
params.textPerf = aPresContext->GetTextPerfMetrics();
|
||||
return aPresContext->DeviceContext()->GetMetricsFor(font, params);
|
||||
}
|
||||
@@ -408,8 +410,9 @@ nsRuleNode::GetMetricsFor(nsPresContext* aPresContext,
|
||||
isVertical = true;
|
||||
}
|
||||
}
|
||||
- return nsRuleNode::GetMetricsFor(aPresContext, isVertical, aStyleFont,
|
||||
- aFontSize, aUseUserFontSet);
|
||||
+ return nsRuleNode::GetMetricsFor(
|
||||
+ aPresContext, isVertical, aStyleFont, aFontSize, aUseUserFontSet,
|
||||
+ FlushUserFontSet::Yes);
|
||||
}
|
||||
|
||||
/* static */
|
||||
diff --git layout/style/nsRuleNode.h layout/style/nsRuleNode.h
|
||||
index 423545ffd198..719eb0c51eb0 100644
|
||||
--- layout/style/nsRuleNode.h
|
||||
+++ layout/style/nsRuleNode.h
|
||||
@@ -807,11 +807,17 @@ public:
|
||||
bool aConvertListItem = false);
|
||||
static void EnsureInlineDisplay(mozilla::StyleDisplay& display);
|
||||
|
||||
+ enum class FlushUserFontSet {
|
||||
+ Yes,
|
||||
+ No,
|
||||
+ };
|
||||
+
|
||||
static already_AddRefed<nsFontMetrics> GetMetricsFor(nsPresContext* aPresContext,
|
||||
bool aIsVertical,
|
||||
const nsStyleFont* aStyleFont,
|
||||
nscoord aFontSize,
|
||||
- bool aUseUserFontSet);
|
||||
+ bool aUseUserFontSet,
|
||||
+ FlushUserFontSet aFlushUserFontSet);
|
||||
|
||||
static already_AddRefed<nsFontMetrics> GetMetricsFor(nsPresContext* aPresContext,
|
||||
nsStyleContext* aStyleContext,
|
||||
commit f01f1d6ac516
|
||||
Author: Emilio Cobos Álvarez <emilio@crisal.io>
|
||||
Date: Wed Sep 27 18:16:25 2017 +0200
|
||||
|
||||
Bug 1403592 - Crashtest. r=Manishearth, a=sledru
|
||||
|
||||
I've made it crash at least once, though it's intermittent-y. I guess it's
|
||||
better than no crashtest.
|
||||
|
||||
MozReview-Commit-ID: 5m2VCrEs8lM
|
||||
|
||||
--HG--
|
||||
extra : source : c050d8574203c0344a9570fef73df51a1a489091
|
||||
extra : amend_source : 45265a4fbe7d484fc784c3389f912d45eebf15de
|
||||
---
|
||||
layout/style/crashtests/1403592.html | 19 +++++++++++++++++++
|
||||
layout/style/crashtests/crashtests.list | 1 +
|
||||
2 files changed, 20 insertions(+)
|
||||
|
||||
diff --git layout/style/crashtests/1403592.html layout/style/crashtests/1403592.html
|
||||
new file mode 100644
|
||||
index 000000000000..fdd810b88603
|
||||
--- /dev/null
|
||||
+++ layout/style/crashtests/1403592.html
|
||||
@@ -0,0 +1,19 @@
|
||||
+<!DOCTYPE html>
|
||||
+<html class="reftest-wait">
|
||||
+<head>
|
||||
+<style></style>
|
||||
+<script>
|
||||
+function boom() {
|
||||
+ a = document.createElement("x")
|
||||
+ a.style.overflow = "o"
|
||||
+ document.styleSheets[0].insertRule("i {}", 0)
|
||||
+ requestIdleCallback(function() {
|
||||
+ document.documentElement.className = "";
|
||||
+ });
|
||||
+}
|
||||
+requestIdleCallback(boom)
|
||||
+</script>
|
||||
+</head>
|
||||
+<i id=id0 style="margin: 15ch">
|
||||
+<svg><animate xlink:href=#id0 attributeName=width to></svg>
|
||||
+</html>
|
||||
diff --git layout/style/crashtests/crashtests.list layout/style/crashtests/crashtests.list
|
||||
index 565abf6c1f83..e811e54554b3 100644
|
||||
--- layout/style/crashtests/crashtests.list
|
||||
+++ layout/style/crashtests/crashtests.list
|
||||
@@ -204,3 +204,4 @@ load 1391577.html
|
||||
load 1398581.html
|
||||
load 1402218-1.html
|
||||
load 1402366.html
|
||||
+load 1403592.html
|
Loading…
Reference in New Issue
Block a user