зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1162844 - Add meta name="viewmode" to have configurable VR experiences. r=fabrice
--HG-- extra : rebase_source : cfabbfd656966e42b8bc00dfaf1bb6356118c5e0
This commit is contained in:
Родитель
21c81346cc
Коммит
930310e210
|
@ -530,6 +530,7 @@ BrowserElementChild.prototype = {
|
|||
debug('Got metaChanged: (' + e.target.name + ') ' + e.target.content);
|
||||
|
||||
let handlers = {
|
||||
'viewmode': this._viewmodeChangedHandler,
|
||||
'theme-color': this._themeColorChangedHandler,
|
||||
'application-name': this._applicationNameChangedHandler
|
||||
};
|
||||
|
@ -702,6 +703,16 @@ BrowserElementChild.prototype = {
|
|||
sendAsyncMsg('selectionstatechanged', detail);
|
||||
},
|
||||
|
||||
|
||||
_viewmodeChangedHandler: function(eventType, target) {
|
||||
let meta = {
|
||||
name: 'viewmode',
|
||||
content: target.content,
|
||||
type: eventType.replace('DOMMeta', '').toLowerCase()
|
||||
};
|
||||
sendAsyncMsg('metachange', meta);
|
||||
},
|
||||
|
||||
_themeColorChangedHandler: function(eventType, target) {
|
||||
let meta = {
|
||||
name: 'theme-color',
|
||||
|
|
|
@ -0,0 +1,71 @@
|
|||
/* Any copyright is dedicated to the public domain.
|
||||
http://creativecommons.org/publicdomain/zero/1.0/ */
|
||||
|
||||
// Test that the onmozbrowsermetachange event for viewmode works.
|
||||
"use strict";
|
||||
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
browserElementTestHelpers.setEnabledPref(true);
|
||||
browserElementTestHelpers.addPermission();
|
||||
|
||||
function runTest() {
|
||||
function loadFrameScript(script) {
|
||||
SpecialPowers.getBrowserFrameMessageManager(iframe1)
|
||||
.loadFrameScript('data:,' + script,
|
||||
/* allowDelayedLoad = */ false);
|
||||
}
|
||||
|
||||
let iframe1 = document.createElement('iframe');
|
||||
iframe1.setAttribute('mozbrowser', 'true');
|
||||
iframe1.src = "http://test/tests/dom/browser-element/mochitest/file_browserElement_Viewmode.html";
|
||||
iframe1.addEventListener('mozbrowsermetachange', tests);
|
||||
document.body.appendChild(iframe1);
|
||||
|
||||
let numMetaChanges = 0;
|
||||
function tests(e) {
|
||||
let detail = e.detail;
|
||||
|
||||
switch (numMetaChanges++) {
|
||||
case 0: {
|
||||
is(detail.name, 'viewmode', 'name matches');
|
||||
is(detail.content, 'projection=stereo', 'content matches');
|
||||
is(detail.type, 'added', 'type matches');
|
||||
|
||||
let script =
|
||||
"var meta = content.document.head.querySelector('meta');" +
|
||||
"meta.content = 'projection=mono';";
|
||||
loadFrameScript(script);
|
||||
break;
|
||||
}
|
||||
|
||||
case 1: {
|
||||
is(detail.name, 'viewmode', 'name matches');
|
||||
is(detail.content, 'projection=mono', 'content matches');
|
||||
is(detail.type, 'changed', 'type matches');
|
||||
|
||||
let script =
|
||||
"var meta = content.document.head.querySelector('meta');" +
|
||||
"meta.parentNode.removeChild(meta);";
|
||||
loadFrameScript(script);
|
||||
break;
|
||||
}
|
||||
|
||||
case 2: {
|
||||
is(detail.name, 'viewmode', 'name matches');
|
||||
is(detail.content, 'projection=mono', 'content matches');
|
||||
is(detail.type, 'removed', 'type matches');
|
||||
|
||||
SimpleTest.finish();
|
||||
break;
|
||||
}
|
||||
|
||||
default: {
|
||||
ok(false, 'Too many metachange events.');
|
||||
break;
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
window.addEventListener('testready', runTest);
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
<html>
|
||||
<head>
|
||||
<meta name="viewmode" content="projection=stereo">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
</body>
|
||||
</html>
|
|
@ -9,6 +9,7 @@ support-files =
|
|||
file_browserElement_OpenMixedProcess.html
|
||||
browserElement_OpenTab.js
|
||||
|
||||
[test_browserElement_oop_Viewmode.html]
|
||||
[test_browserElement_oop_ThemeColor.html]
|
||||
[test_browserElement_inproc_ErrorSecurity.html]
|
||||
skip-if = toolkit=='gonk'
|
||||
|
|
|
@ -12,6 +12,7 @@ support-files =
|
|||
browserElement_Auth.js
|
||||
browserElement_BackForward.js
|
||||
browserElement_BadScreenshot.js
|
||||
browserElement_Viewmode.js
|
||||
browserElement_ThemeColor.js
|
||||
browserElement_BrowserWindowNamespace.js
|
||||
browserElement_BrowserWindowResize.js
|
||||
|
@ -77,6 +78,7 @@ support-files =
|
|||
file_browserElement_AllowEmbedAppsInNestedOOIframe.html
|
||||
file_browserElement_AppFramePermission.html
|
||||
file_browserElement_AppWindowNamespace.html
|
||||
file_browserElement_Viewmode.html
|
||||
file_browserElement_ThemeColor.html
|
||||
file_browserElement_BrowserWindowNamespace.html
|
||||
file_browserElement_CloseApp.html
|
||||
|
@ -126,6 +128,7 @@ support-files =
|
|||
[test_browserElement_NoPref.html]
|
||||
[test_browserElement_NoPermission.html]
|
||||
[test_browserElement_inproc_Alert.html]
|
||||
[test_browserElement_inproc_Viewmode.html]
|
||||
[test_browserElement_inproc_ThemeColor.html]
|
||||
skip-if = buildapp == 'b2g'
|
||||
[test_browserElement_inproc_AlertInFrame.html]
|
||||
|
|
|
@ -0,0 +1,19 @@
|
|||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<!--
|
||||
https://bugzilla.mozilla.org/show_bug.cgi?id=1162844
|
||||
-->
|
||||
<head>
|
||||
<title>Test for Bug 1162844</title>
|
||||
<script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
|
||||
<script type="application/javascript" src="browserElementTestHelpers.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
|
||||
</head>
|
||||
<body>
|
||||
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1162844">Mozilla Bug 1162844</a>
|
||||
|
||||
<script type="application/javascript;version=1.7" src="browserElement_Viewmode.js">
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
|
@ -0,0 +1,19 @@
|
|||
<!DOCTYPE HTML>
|
||||
<html>
|
||||
<!--
|
||||
https://bugzilla.mozilla.org/show_bug.cgi?id=1162844
|
||||
-->
|
||||
<head>
|
||||
<title>Test for Bug 1162844</title>
|
||||
<script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"></script>
|
||||
<script type="application/javascript" src="browserElementTestHelpers.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/>
|
||||
</head>
|
||||
<body>
|
||||
<a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=1162844">Mozilla Bug 1162844</a>
|
||||
|
||||
<script type="application/javascript;version=1.7" src="browserElement_Viewmode.js">
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
Загрузка…
Ссылка в новой задаче