Merge inbound to mozilla-central. a=merge
authorAndreea Pavel <apavel@mozilla.com>
Sun, 28 Jan 2018 23:48:41 +0200
changeset 401173 a6c753e77345e968954e8d61e3871c5883015ede
parent 401165 98a2ad850c9fed80c14afb40080e231385ca5a40 (current diff)
parent 401172 11230e686cee2960a11babf44e0f1ecd5a578eff (diff)
child 401192 436b20f91ec657cc7231370df2eaae7bcfbf1d1b
child 401196 9b520d529b4a22350c4ef483333f62f68e8b22ca
push id33335
push userapavel@mozilla.com
push dateSun, 28 Jan 2018 21:49:01 +0000
treeherdermozilla-central@a6c753e77345 [default view] [failures only]
perfherder[talos] [build metrics] [platform microbench] (compared to previous push)
reviewersmerge
milestone60.0a1
first release with
nightly linux32
a6c753e77345 / 60.0a1 / 20180128220152 / files
nightly linux64
a6c753e77345 / 60.0a1 / 20180128220152 / files
nightly mac
a6c753e77345 / 60.0a1 / 20180128220152 / files
nightly win32
a6c753e77345 / 60.0a1 / 20180128220152 / files
nightly win64
a6c753e77345 / 60.0a1 / 20180128220152 / files
last release without
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
releases
nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
Merge inbound to mozilla-central. a=merge
--- a/gfx/layers/wr/ScrollingLayersHelper.cpp
+++ b/gfx/layers/wr/ScrollingLayersHelper.cpp
@@ -86,17 +86,23 @@ ScrollingLayersHelper::BeginItem(nsDispl
     // do the work of popping the old stuff and then pushing it right back on
     // for the new item.
     SLH_LOG("early-exit for %p\n", aItem);
     return;
   }
   mItemClipStack.back().Unapply(mBuilder);
   mItemClipStack.pop_back();
 
+  // Zoom display items report their bounds etc using the parent document's
+  // APD because zoom items act as a conversion layer between the two different
+  // APDs.
   int32_t auPerDevPixel = aItem->Frame()->PresContext()->AppUnitsPerDevPixel();
+  if (aItem->GetType() == DisplayItemType::TYPE_ZOOM) {
+    auPerDevPixel = static_cast<nsDisplayZoom*>(aItem)->GetParentAppUnitsPerDevPixel();
+  }
 
   // There are two ASR chains here that we need to be fully defined. One is the
   // ASR chain pointed to by aItem->GetActiveScrolledRoot(). The other is the
   // ASR chain pointed to by clip->mASR. We pick the leafmost
   // of these two chains because that one will include the other.
   // The leafmost clip is trivially going to be |clip|.
   // So we call DefineClipChain with these two leafmost things, and it will
   // recursively define all the clips and scroll layers with the appropriate
new file mode 100644
--- /dev/null
+++ b/gfx/tests/reftest/1429411-ref.html
@@ -0,0 +1,25 @@
+<!DOCTYPE html>
+<html lang="en">
+<meta charset="utf-8">
+<style>
+
+.outer {
+  position: absolute;
+  width: 200px;
+  height: 150px;
+  overflow: hidden;
+}
+.inner {
+  position: absolute;
+  top: 3px;
+  left: 3px;
+  width: 200px;
+  height: 150px;
+  box-shadow: blue 0px 0px 20px inset;
+}
+
+</style>
+
+<div class="outer">
+<div class="inner"></div>
+</div>
new file mode 100644
--- /dev/null
+++ b/gfx/tests/reftest/1429411.html
@@ -0,0 +1,27 @@
+<!DOCTYPE html>
+<html lang="en">
+<meta charset="utf-8">
+<style>
+
+.outer {
+  position: absolute;
+  margin-top: 3px;
+  margin-left: 3px;
+  width: 200px;
+  height: 150px;
+  overflow: hidden;
+}
+.inner {
+  position: absolute;
+  margin-top: -3px;
+  margin-left: -3px;
+  width: 200px;
+  height: 150px;
+  box-shadow: blue 3px 3px 20px inset;
+}
+
+</style>
+
+<div class="outer">
+<div class="inner"></div>
+</div>
--- a/gfx/tests/reftest/reftest.list
+++ b/gfx/tests/reftest/reftest.list
@@ -4,8 +4,9 @@ fuzzy(175,443) skip-if(styloVsGecko) == 
 fuzzy-if(Android,8,1000) == 709477-1.html 709477-1-ref.html
 skip-if(!asyncPan) == 1086723.html 1086723-ref.html
 == 853889-1.html 853889-1-ref.html
 skip-if(Android) fuzzy-if(skiaContent,1,587) == 1143303-1.svg pass.svg
 fuzzy(100,30) == 1149923.html 1149923-ref.html # use fuzzy due to few distorted pixels caused by border-radius
 == 1131264-1.svg pass.svg
 == 1419528.html 1419528-ref.html
 == 1424673.html 1424673-ref.html
+== 1429411.html 1429411-ref.html