summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjanekptacijarabaci <janekptacijarabaci@seznam.cz>2018-05-15 21:14:18 +0200
committerjanekptacijarabaci <janekptacijarabaci@seznam.cz>2018-05-15 21:14:18 +0200
commite968422d299e49d1906e6f4c7746cfd9a677e72b (patch)
tree53539b4056d934c3886fc77f1b728d78482d199c
parent9c075dc4cdaeef79bc570ed2219bb757cb325c47 (diff)
downloadUXP-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.html32
-rw-r--r--docshell/test/navigation/mochitest.ini1
-rw-r--r--docshell/test/navigation/test_sessionhistory.html3
-rw-r--r--layout/base/nsPresContext.cpp13
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));
+ }
}
}