diff options
author | janekptacijarabaci <janekptacijarabaci@seznam.cz> | 2018-05-15 21:14:18 +0200 |
---|---|---|
committer | janekptacijarabaci <janekptacijarabaci@seznam.cz> | 2018-05-15 21:14:18 +0200 |
commit | e968422d299e49d1906e6f4c7746cfd9a677e72b (patch) | |
tree | 53539b4056d934c3886fc77f1b728d78482d199c | |
parent | 9c075dc4cdaeef79bc570ed2219bb757cb325c47 (diff) | |
download | UXP-e968422d299e49d1906e6f4c7746cfd9a677e72b.tar UXP-e968422d299e49d1906e6f4c7746cfd9a677e72b.tar.gz UXP-e968422d299e49d1906e6f4c7746cfd9a677e72b.tar.lz UXP-e968422d299e49d1906e6f4c7746cfd9a677e72b.tar.xz UXP-e968422d299e49d1906e6f4c7746cfd9a677e72b.zip |
Bug 1379762 part 1. Don't call MediaFeaturesChanged if our override device pixel ratio is set to its current value
Issue #357
-rw-r--r-- | docshell/test/navigation/file_bug1379762-1.html | 32 | ||||
-rw-r--r-- | docshell/test/navigation/mochitest.ini | 1 | ||||
-rw-r--r-- | docshell/test/navigation/test_sessionhistory.html | 3 | ||||
-rw-r--r-- | layout/base/nsPresContext.cpp | 13 |
4 files changed, 44 insertions, 5 deletions
diff --git a/docshell/test/navigation/file_bug1379762-1.html b/docshell/test/navigation/file_bug1379762-1.html new file mode 100644 index 000000000..e8cd8b30b --- /dev/null +++ b/docshell/test/navigation/file_bug1379762-1.html @@ -0,0 +1,32 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8"> + <title>Bug 1379762</title> + </head> + <img srcset> <!-- This tries to add load blockers during bfcache restoration --> + <script> + onunload = null; // enable bfcache + opener.is(opener.testCount, 0, + "We should only run once; otherwise the loadCount variable makes no sense"); + var loadCount = 0; + onpageshow = function() { + ++opener.testCount; + if (opener.testCount == 1) { + // Navigate forward and then back. + setTimeout(function() { location = "goback.html"; }, 0); + } else if (opener.testCount == 2) { + // Do this async so our load event gets a chance to fire if it plans to + // do it. + setTimeout(function() { + opener.nextTest(); + window.close(); + }); + } + }; + onload = function() { + ++loadCount; + opener.is(loadCount, 1, "Should only get one onload"); + } + </script> +</html> diff --git a/docshell/test/navigation/mochitest.ini b/docshell/test/navigation/mochitest.ini index 1b5f33c7f..f3bb3d244 100644 --- a/docshell/test/navigation/mochitest.ini +++ b/docshell/test/navigation/mochitest.ini @@ -59,6 +59,7 @@ skip-if = (toolkit == 'android') || (!debug && (os == 'mac' || os == 'win')) # B skip-if = (toolkit == 'android') || (debug && e10s) #too slow on Android 4.3 aws only; bug 1030403; bug 1263213 for debug e10s [test_sessionhistory.html] skip-if = toolkit == 'android' #RANDOM +support-files = file_bug1379762-1.html [test_sibling-matching-parent.html] [test_sibling-off-domain.html] [test_triggeringprincipal_frame_nav.html] diff --git a/docshell/test/navigation/test_sessionhistory.html b/docshell/test/navigation/test_sessionhistory.html index 452271a41..b922ce4ea 100644 --- a/docshell/test/navigation/test_sessionhistory.html +++ b/docshell/test/navigation/test_sessionhistory.html @@ -31,7 +31,8 @@ var testFiles = "file_nested_frames.html", "file_shiftReload_and_pushState.html", "file_scrollRestoration.html", - "file_bug1300461.html" + "file_bug1300461.html", + "file_bug1379762-1.html", ]; var testCount = 0; // Used by the test files. diff --git a/layout/base/nsPresContext.cpp b/layout/base/nsPresContext.cpp index 4a54a8432..3106ff386 100644 --- a/layout/base/nsPresContext.cpp +++ b/layout/base/nsPresContext.cpp @@ -1307,10 +1307,15 @@ nsPresContext::SetFullZoom(float aZoom) void nsPresContext::SetOverrideDPPX(float aDPPX) { - mOverrideDPPX = aDPPX; - - if (HasCachedStyleData()) { - MediaFeatureValuesChanged(nsRestyleHint(0), nsChangeHint(0)); + // SetOverrideDPPX is called during navigations, including history + // traversals. In that case, it's typically called with our current value, + // and we don't need to actually do anything. + if (aDPPX != mOverrideDPPX) { + mOverrideDPPX = aDPPX; + + if (HasCachedStyleData()) { + MediaFeatureValuesChanged(nsRestyleHint(0), nsChangeHint(0)); + } } } |