mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-20 00:35:44 +00:00
2feab69a17
This is what Chrome and Safari do. See https://webcompat.com/issues/20701#issuecomment-436054739 So for exmaple, if there are two viewport meta tags like this; <meta name="viewport" content="width=980"> <meta name="viewport" content="initial-scale=1,maximum-scale=1"> We will use "initial-scale=1,maximum-scale=1". Before this change we used to use merged "width=980,initial-scale=1,maximum-scale=1". Another example is to replace the content of a single viewport meta tag like this; <meta id="viewport" name="viewport" content="width=device-width, initial-scale=1"> what will happen when this tag is replaced by below; <meta id="viewport" name="viewport" content="width=1080"> We will use the replacing one (i.e. "width=1080"), before this change, we used to use merged "width=1080,initial-scale=1". As of this commit, we don't properly remove corresponding viewport meta data when a) viewport meta tag is detached from document and b) `name` attribute is changed from 'viewport'. These cases will be handled in subsequent commits. Note that we no longer store invididual viewport meta data in Document::mHeaderData so that nsIDOMWindowUtils.getDocumentMetadata doesn't work any more for the invididual viewport meta data, but there is no use cases for them other than two test cases which are removed in this commit. Differential Revision: https://phabricator.services.mozilla.com/D38922 --HG-- extra : moz-landing-system : lando
42 lines
1.6 KiB
HTML
42 lines
1.6 KiB
HTML
<!DOCTYPE HTML>
|
|
<html>
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<title>meta viewport test</title>
|
|
<script src="/tests/SimpleTest/SimpleTest.js"></script>
|
|
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
|
|
<script src="viewport_helpers.js"></script>
|
|
</head>
|
|
<body>
|
|
<p>No <meta name="viewport"> tag</p>
|
|
<script type="application/javascript">
|
|
"use strict";
|
|
|
|
add_task(async function test1() {
|
|
await SpecialPowers.pushPrefEnv(scaleRatio(1.0));
|
|
|
|
let info = getViewportInfo(800, 480);
|
|
fuzzeq(info.defaultZoom, 0.25, "initial scale is clamped to the default mimumim scale");
|
|
fuzzeq(info.minZoom, 0.25, "minimum scale defaults to the absolute minimum");
|
|
is(info.maxZoom, 10, "maximum scale defaults to the absolute maximum");
|
|
is(info.width, 980, "width is the default width");
|
|
is(info.height, 588, "height is proportional to displayHeight");
|
|
is(info.autoSize, false, "autoSize is disabled by default");
|
|
is(info.allowZoom, true, "zooming is enabled by default");
|
|
|
|
info = getViewportInfo(490, 600);
|
|
is(info.width, 980, "width is still the default width");
|
|
is(info.height, 1200, "height is proportional to the new displayHeight");
|
|
});
|
|
|
|
add_task(async function test2() {
|
|
await SpecialPowers.pushPrefEnv(scaleRatio(1.5));
|
|
|
|
let info = getViewportInfo(800, 480);
|
|
is(info.width, 980, "width is still the default width");
|
|
is(info.height, 588, "height is still proportional to displayHeight");
|
|
});
|
|
</script>
|
|
</body>
|
|
</html>
|