mirror of
https://github.com/classilla/tenfourfox.git
synced 2024-07-18 09:29:05 +00:00
123 lines
3.5 KiB
JavaScript
123 lines
3.5 KiB
JavaScript
/*
|
|
* Copyright 2013 Mozilla Foundation
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
|
|
var SHUMWAY_ROOT = "resource://shumway/";
|
|
|
|
var easel;
|
|
function createEasel(backgroundColor) {
|
|
var Stage = Shumway.GFX.Stage;
|
|
var Easel = Shumway.GFX.Easel;
|
|
var Canvas2DRenderer = Shumway.GFX.Canvas2DRenderer;
|
|
|
|
Shumway.GFX.WebGL.SHADER_ROOT = SHUMWAY_ROOT + "gfx/gl/shaders/";
|
|
easel = new Easel(document.getElementById("easelContainer"), false, backgroundColor);
|
|
|
|
if (ShumwayCom.environment === 'test') {
|
|
ShumwayCom.setScreenShotCallback(function () {
|
|
// flush rendering buffers
|
|
easel.render();
|
|
return easel.screenShot(null, true, false).dataURL;
|
|
});
|
|
}
|
|
|
|
easel.startRendering();
|
|
return easel;
|
|
}
|
|
|
|
var easelHost;
|
|
function createEaselHost() {
|
|
var peer = new Shumway.Remoting.ShumwayComTransportPeer();
|
|
easelHost = new Shumway.GFX.Window.WindowEaselHost(easel, peer);
|
|
return easelHost;
|
|
}
|
|
|
|
function setHudVisible(visible) {
|
|
Shumway.GFX.hud.value = !!visible;
|
|
}
|
|
|
|
function fallback() {
|
|
parent.postMessage({callback: 'fallback'}, '*');
|
|
}
|
|
|
|
function showURL() {
|
|
parent.postMessage({callback: 'showURL'}, '*' );
|
|
}
|
|
|
|
function showInInspector() {
|
|
parent.postMessage({callback: 'showInInspector'}, '*');
|
|
}
|
|
|
|
function reportIssue() {
|
|
parent.postMessage({callback: 'reportIssue'}, '*');
|
|
}
|
|
|
|
function showAbout() {
|
|
parent.postMessage({callback: 'showAbout'}, '*');
|
|
}
|
|
|
|
function enableDebug() {
|
|
parent.postMessage({callback: 'enableDebug'}, '*');
|
|
}
|
|
|
|
function prepareUI(params) {
|
|
if (params.isOverlay) {
|
|
var fallbackMenu = document.getElementById('fallbackMenu');
|
|
fallbackMenu.removeAttribute('hidden');
|
|
fallbackMenu.addEventListener('click', fallback);
|
|
}
|
|
document.getElementById('showURLMenu').addEventListener('click', showURL);
|
|
document.getElementById('inspectorMenu').addEventListener('click', showInInspector);
|
|
document.getElementById('reportMenu').addEventListener('click', reportIssue);
|
|
document.getElementById('aboutMenu').addEventListener('click', showAbout);
|
|
|
|
var version = Shumway.version || '';
|
|
document.getElementById('aboutMenu').label =
|
|
document.getElementById('aboutMenu').label.replace('%version%', version);
|
|
|
|
if (params.isDebuggerEnabled) {
|
|
document.getElementById('debugMenu').addEventListener('click', enableDebug);
|
|
} else {
|
|
document.getElementById('debugMenu').remove();
|
|
}
|
|
|
|
setHudVisible(params.isHudOn);
|
|
|
|
createEasel(params.backgroundColor);
|
|
createEaselHost();
|
|
|
|
var displayParameters = easel.getDisplayParameters();
|
|
window.parent.postMessage({
|
|
callback: 'displayParameters',
|
|
params: displayParameters
|
|
}, '*');
|
|
}
|
|
|
|
window.addEventListener('message', function onWindowMessage(e) {
|
|
var data = e.data;
|
|
if (typeof data !== 'object' || data === null) {
|
|
console.error('Unexpected message for gfx frame.');
|
|
return;
|
|
}
|
|
switch (data.type) {
|
|
case "prepareUI":
|
|
prepareUI(data.params);
|
|
break;
|
|
default:
|
|
console.error('Unexpected message for gfx frame: ' + args.callback);
|
|
break;
|
|
}
|
|
}, true);
|