mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 1000305 - Part 2 - imported patch bug-1000305-fix-part2. r=mcmanus
--HG-- extra : rebase_source : 980af8e81cc0358a04073d3cc98d90c3a98c5228
This commit is contained in:
parent
611876b197
commit
b8d4e5cde4
@ -1,13 +1,19 @@
|
||||
{
|
||||
"name": "My W3C Web App",
|
||||
"short_name": "My App",
|
||||
"icons": [
|
||||
{
|
||||
"src": "/favicon.ico",
|
||||
"sizes": "64x64",
|
||||
"type": "image/png"
|
||||
}
|
||||
],
|
||||
"icons": {
|
||||
"15": "/tests/dom/apps/tests/icon15.png",
|
||||
"48": "/tests/dom/apps/tests/icon48.png"
|
||||
},
|
||||
"start_url": "/index.html",
|
||||
"display": "standalone"
|
||||
}
|
||||
"display": "standalone",
|
||||
"entry_points": {
|
||||
"ep1": {
|
||||
"name": "This is an entry point",
|
||||
"icons": {
|
||||
"15": "/tests/dom/apps/tests/icon15alternate.png",
|
||||
"48": "/tests/dom/apps/tests/icon48.png"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -17,6 +17,26 @@ var gAppName = "appname";
|
||||
var gDevName = "devname";
|
||||
var gDevUrl = "http://dev.url";
|
||||
|
||||
var gIconData =
|
||||
"\x89\x50\x4E\x47\x0D\x0A\x1A\x0A\x00\x00\x00\x0D\x49\x48\x44\x52" +
|
||||
"\x00\x00\x00\x0F\x00\x00\x00\x0F\x08\x03\x00\x00\x00\x0C\x08\x65" +
|
||||
"\x78\x00\x00\x00\x04\x67\x41\x4D\x41\x00\x00\xD6\xD8\xD4\x4F\x58" +
|
||||
"\x32\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6F\x66\x74\x77\x61\x72" +
|
||||
"\x65\x00\x41\x64\x6F\x62\x65\x20\x49\x6D\x61\x67\x65\x52\x65\x61" +
|
||||
"\x64\x79\x71\xC9\x65\x3C\x00\x00\x00\x39\x50\x4C\x54\x45\xB5\x42" +
|
||||
"\x42\xCE\x94\x94\xCE\x84\x84\x9C\x21\x21\xAD\x21\x21\xCE\x73\x73" +
|
||||
"\x9C\x10\x10\xBD\x52\x52\xEF\xD6\xD6\xB5\x63\x63\xA5\x10\x10\xB5" +
|
||||
"\x00\x00\xE7\xC6\xC6\xE7\xB5\xB5\x9C\x00\x00\x8C\x00\x00\xFF\xFF" +
|
||||
"\xFF\x7B\x00\x00\xAD\x00\x00\xEC\xAD\x83\x63\x00\x00\x00\x66\x49" +
|
||||
"\x44\x41\x54\x78\xDA\x6C\x89\x0B\x12\xC2\x40\x08\x43\xB3\xDB\x8F" +
|
||||
"\x5A\x21\x40\xEF\x7F\x58\xA1\x55\x67\xB6\xD3\xC0\x03\x42\xF0\xDE" +
|
||||
"\x87\xC2\x3E\xEA\xCE\xF3\x4B\x0D\x30\x27\xAB\xCF\x03\x9C\xFB\xA3" +
|
||||
"\xEB\xBC\x2D\xBA\xD4\x0F\x84\x97\x9E\x49\x67\xE5\x74\x87\x26\x70" +
|
||||
"\x21\x0D\x66\xAE\xB6\x26\xB5\x8D\xE5\xE5\xCF\xB4\x9E\x79\x1C\xB9" +
|
||||
"\x4C\x2E\xB0\x90\x16\x96\x84\xB6\x68\x2F\x84\x45\xF5\x0F\xC4\xA8" +
|
||||
"\xAB\xFF\x08\x30\x00\x16\x91\x0C\xDD\xAB\xF1\x05\x11\x00\x00\x00" +
|
||||
"\x00\x49\x45\x4E\x44\xAE\x42\x60\x82";
|
||||
|
||||
function handleRequest(request, response) {
|
||||
var query = getQuery(request);
|
||||
|
||||
@ -87,6 +107,9 @@ function handleRequest(request, response) {
|
||||
appName, devName, devUrl);
|
||||
addZipEntry(zipWriter, app, "index.html");
|
||||
|
||||
var iconString = gIconData;
|
||||
addZipEntry(zipWriter, iconString, "icon.png");
|
||||
|
||||
zipWriter.close();
|
||||
}
|
||||
|
||||
|
@ -12,6 +12,9 @@
|
||||
"downloads": {}
|
||||
},
|
||||
"launch_path": "tests/dom/apps/tests/file_packaged_app.sjs",
|
||||
"icons": {
|
||||
"15": "icon.png"
|
||||
},
|
||||
"developer": {
|
||||
"name": "DEVELOPERTOKEN",
|
||||
"url": "DEVELOPERURLTOKEN"
|
||||
|
BIN
dom/apps/tests/icon15.png
Normal file
BIN
dom/apps/tests/icon15.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 281 B |
BIN
dom/apps/tests/icon15alternate.png
Normal file
BIN
dom/apps/tests/icon15alternate.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 224 B |
BIN
dom/apps/tests/icon48.png
Normal file
BIN
dom/apps/tests/icon48.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 4.7 KiB |
@ -29,6 +29,9 @@ support-files =
|
||||
test_packaged_app_common.js
|
||||
marketplace/*
|
||||
pkg_install_iframe.html
|
||||
icon15.png
|
||||
icon15alternate.png
|
||||
icon48.png
|
||||
|
||||
[test_app_addons.html]
|
||||
skip-if = os == "android" || toolkit == "gonk" # embed-apps doesn't work in mochitest app
|
||||
|
@ -76,6 +76,28 @@ function checkInstalledApp(aMiniManifestURL,
|
||||
};
|
||||
}
|
||||
|
||||
var gIconData =
|
||||
"\x89\x50\x4E\x47\x0D\x0A\x1A\x0A\x00\x00\x00\x0D\x49\x48\x44\x52" +
|
||||
"\x00\x00\x00\x0F\x00\x00\x00\x0F\x08\x03\x00\x00\x00\x0C\x08\x65" +
|
||||
"\x78\x00\x00\x00\x04\x67\x41\x4D\x41\x00\x00\xD6\xD8\xD4\x4F\x58" +
|
||||
"\x32\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6F\x66\x74\x77\x61\x72" +
|
||||
"\x65\x00\x41\x64\x6F\x62\x65\x20\x49\x6D\x61\x67\x65\x52\x65\x61" +
|
||||
"\x64\x79\x71\xC9\x65\x3C\x00\x00\x00\x39\x50\x4C\x54\x45\xB5\x42" +
|
||||
"\x42\xCE\x94\x94\xCE\x84\x84\x9C\x21\x21\xAD\x21\x21\xCE\x73\x73" +
|
||||
"\x9C\x10\x10\xBD\x52\x52\xEF\xD6\xD6\xB5\x63\x63\xA5\x10\x10\xB5" +
|
||||
"\x00\x00\xE7\xC6\xC6\xE7\xB5\xB5\x9C\x00\x00\x8C\x00\x00\xFF\xFF" +
|
||||
"\xFF\x7B\x00\x00\xAD\x00\x00\xEC\xAD\x83\x63\x00\x00\x00\x66\x49" +
|
||||
"\x44\x41\x54\x78\xDA\x6C\x89\x0B\x12\xC2\x40\x08\x43\xB3\xDB\x8F" +
|
||||
"\x5A\x21\x40\xEF\x7F\x58\xA1\x55\x67\xB6\xD3\xC0\x03\x42\xF0\xDE" +
|
||||
"\x87\xC2\x3E\xEA\xCE\xF3\x4B\x0D\x30\x27\xAB\xCF\x03\x9C\xFB\xA3" +
|
||||
"\xEB\xBC\x2D\xBA\xD4\x0F\x84\x97\x9E\x49\x67\xE5\x74\x87\x26\x70" +
|
||||
"\x21\x0D\x66\xAE\xB6\x26\xB5\x8D\xE5\xE5\xCF\xB4\x9E\x79\x1C\xB9" +
|
||||
"\x4C\x2E\xB0\x90\x16\x96\x84\xB6\x68\x2F\x84\x45\xF5\x0F\xC4\xA8" +
|
||||
"\xAB\xFF\x08\x30\x00\x16\x91\x0C\xDD\xAB\xF1\x05\x11\x00\x00\x00" +
|
||||
"\x00\x49\x45\x4E\x44\xAE\x42\x60\x82";
|
||||
|
||||
var gIconSize = 15;
|
||||
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
SimpleTest.requestFlakyTimeout("untriaged");
|
||||
|
||||
@ -195,6 +217,7 @@ var steps = [
|
||||
info("== TEST == Install packaged app");
|
||||
var miniManifestURL = PackagedTestHelper.gSJS +
|
||||
"?getManifest=true";
|
||||
|
||||
navigator.mozApps.mgmt.oninstall = function(evt) {
|
||||
info("Got oninstall event");
|
||||
PackagedTestHelper.gApp = evt.application;
|
||||
@ -231,6 +254,25 @@ var steps = [
|
||||
function() {
|
||||
PackagedTestHelper.setAppVersion(3, PackagedTestHelper.next, false, true);
|
||||
},
|
||||
function() {
|
||||
info("== TEST == Get icon");
|
||||
var app = PackagedTestHelper.gApp;
|
||||
|
||||
navigator.mozApps.mgmt.getIcon(app, gIconSize).then((blob) => {
|
||||
var reader = new FileReader();
|
||||
|
||||
reader.onloadend = function() {
|
||||
var success = reader.result == gIconData;
|
||||
ok(success, "== TEST == Icon matches expected icon");
|
||||
PackagedTestHelper.next();
|
||||
}
|
||||
|
||||
reader.readAsBinaryString(blob);
|
||||
}, (err) => {
|
||||
ok(false, "Can't get icon: " + err);
|
||||
PackagedTestHelper.finish();
|
||||
});
|
||||
},
|
||||
function() {
|
||||
info("== TEST == Install packaged app with a cancel/resume");
|
||||
var miniManifestURL = PackagedTestHelper.gSJS +
|
||||
|
@ -19,6 +19,43 @@ https://bugzilla.mozilla.org/show_bug.cgi?id={1075716}
|
||||
<pre id="test">
|
||||
<script class="testbody" type="application/javascript;version=1.7">
|
||||
|
||||
var gIconData =
|
||||
"\x89\x50\x4E\x47\x0D\x0A\x1A\x0A\x00\x00\x00\x0D\x49\x48\x44\x52" +
|
||||
"\x00\x00\x00\x0F\x00\x00\x00\x0F\x08\x03\x00\x00\x00\x0C\x08\x65" +
|
||||
"\x78\x00\x00\x00\x04\x67\x41\x4D\x41\x00\x00\xD6\xD8\xD4\x4F\x58" +
|
||||
"\x32\x00\x00\x00\x19\x74\x45\x58\x74\x53\x6F\x66\x74\x77\x61\x72" +
|
||||
"\x65\x00\x41\x64\x6F\x62\x65\x20\x49\x6D\x61\x67\x65\x52\x65\x61" +
|
||||
"\x64\x79\x71\xC9\x65\x3C\x00\x00\x00\x39\x50\x4C\x54\x45\xB5\x42" +
|
||||
"\x42\xCE\x94\x94\xCE\x84\x84\x9C\x21\x21\xAD\x21\x21\xCE\x73\x73" +
|
||||
"\x9C\x10\x10\xBD\x52\x52\xEF\xD6\xD6\xB5\x63\x63\xA5\x10\x10\xB5" +
|
||||
"\x00\x00\xE7\xC6\xC6\xE7\xB5\xB5\x9C\x00\x00\x8C\x00\x00\xFF\xFF" +
|
||||
"\xFF\x7B\x00\x00\xAD\x00\x00\xEC\xAD\x83\x63\x00\x00\x00\x66\x49" +
|
||||
"\x44\x41\x54\x78\xDA\x6C\x89\x0B\x12\xC2\x40\x08\x43\xB3\xDB\x8F" +
|
||||
"\x5A\x21\x40\xEF\x7F\x58\xA1\x55\x67\xB6\xD3\xC0\x03\x42\xF0\xDE" +
|
||||
"\x87\xC2\x3E\xEA\xCE\xF3\x4B\x0D\x30\x27\xAB\xCF\x03\x9C\xFB\xA3" +
|
||||
"\xEB\xBC\x2D\xBA\xD4\x0F\x84\x97\x9E\x49\x67\xE5\x74\x87\x26\x70" +
|
||||
"\x21\x0D\x66\xAE\xB6\x26\xB5\x8D\xE5\xE5\xCF\xB4\x9E\x79\x1C\xB9" +
|
||||
"\x4C\x2E\xB0\x90\x16\x96\x84\xB6\x68\x2F\x84\x45\xF5\x0F\xC4\xA8" +
|
||||
"\xAB\xFF\x08\x30\x00\x16\x91\x0C\xDD\xAB\xF1\x05\x11\x00\x00\x00" +
|
||||
"\x00\x49\x45\x4E\x44\xAE\x42\x60\x82";
|
||||
|
||||
var gAlternateIconData =
|
||||
"\x89\x50\x4E\x47\x0D\x0A\x1A\x0A\x00\x00\x00\x0D\x49\x48\x44\x52" +
|
||||
"\x00\x00\x00\x0F\x00\x00\x00\x0F\x08\x02\x00\x00\x00\xB4\xB4\x02" +
|
||||
"\x1D\x00\x00\x00\xA7\x49\x44\x41\x54\x28\x15\x63\x64\x95\x9D\xC0" +
|
||||
"\x40\x34\x60\x22\x5A\x25\x48\xE1\x50\x55\xCD\x02\xF1\xE5\xAF\x47" +
|
||||
"\xF9\xC8\xDE\x7D\x79\xE3\x86\xB8\x86\x06\x44\x64\x6F\x67\x9B\xE7" +
|
||||
"\x54\x6E\x08\x1B\xC5\x97\x0B\x7C\x5C\x6F\xEF\xDC\x06\x94\x00\x2A" +
|
||||
"\x05\xB2\x81\x08\xC8\x56\x72\x70\x82\x28\x05\x92\x50\xB3\x81\x2C" +
|
||||
"\xA0\xBA\x5B\xD7\x8F\x3C\xCF\xBF\x54\x79\xE3\x25\x84\x0D\x51\xF4" +
|
||||
"\xE7\xC3\x3B\xB8\x6A\x84\xD9\x2C\x02\x42\x40\xD1\xCF\xBF\x3F\x01" +
|
||||
"\x49\x08\x1B\xA2\x08\x85\x0D\xD7\x07\x31\xE3\xC3\xEF\xBF\x40\x11" +
|
||||
"\x64\xF3\x20\x0A\x80\x1E\xBB\x7F\xF2\x04\xD4\x25\x40\xD6\xB3\xFB" +
|
||||
"\x0F\x80\x4A\x05\x58\x99\xE1\x6C\xA0\x3A\xA0\x93\x80\xE2\x40\xC6" +
|
||||
"\xC1\x19\xD3\x1E\x5F\x3C\xCF\x38\x68\xD2\x09\x00\x73\x68\x4B\x47" +
|
||||
"\x39\xF8\xEA\x1A\x00\x00\x00\x00\x49\x45\x4E\x44\xAE\x42\x60\x82";
|
||||
|
||||
|
||||
var gGenerator = runTest();
|
||||
|
||||
function go() {
|
||||
@ -45,6 +82,20 @@ function cbError(aEvent) {
|
||||
finish();
|
||||
}
|
||||
|
||||
function iconTest(app, iconSize, entryPoint, testFunction) {
|
||||
navigator.mozApps.mgmt.getIcon(app, iconSize, entryPoint).then((blob) => {
|
||||
var reader = new FileReader();
|
||||
reader.onloadend = function() {
|
||||
testFunction(reader.result);
|
||||
continueTest();
|
||||
}
|
||||
reader.readAsBinaryString(blob);
|
||||
}, (err) => {
|
||||
ok(false, "Couldn't get icon.");
|
||||
finish();
|
||||
});
|
||||
}
|
||||
|
||||
SimpleTest.waitForExplicitFinish();
|
||||
|
||||
/**
|
||||
@ -77,6 +128,30 @@ function runTest() {
|
||||
ok(app, "App is non-null");
|
||||
is(app.manifestURL, manifestURL, "App manifest url is correct.");
|
||||
|
||||
info("Fetching 15x15 icon");
|
||||
iconTest(app, 15, undefined, (iconData) => {
|
||||
is(iconData, gIconData, "Fetches 15x15 icon successfully.")
|
||||
});
|
||||
yield undefined;
|
||||
|
||||
info("Fetching 48x48 icon");
|
||||
iconTest(app, 48, "ep1", (iconData) => {
|
||||
ok(iconData.length == 4762, "Fetches 48x48 icon successfully.")
|
||||
});
|
||||
yield undefined;
|
||||
|
||||
info("Fetching 30x30 icon");
|
||||
iconTest(app, 30, undefined, (iconData) => {
|
||||
is(iconData, gIconData, "Fetches 15x15 icon as best fit for 30x30.")
|
||||
});
|
||||
yield undefined;
|
||||
|
||||
info("Fetching entry-point icon");
|
||||
iconTest(app, 15, "ep1", (iconData) => {
|
||||
is(iconData, gAlternateIconData, "Entry-point Icon fetched successfully.")
|
||||
});
|
||||
yield undefined;
|
||||
|
||||
request = navigator.mozApps.mgmt.uninstall(app);
|
||||
request.onerror = cbError;
|
||||
request.onsuccess = continueTest;
|
||||
|
@ -42,6 +42,7 @@ var mgmtProps = {
|
||||
dispatchEvent: "function",
|
||||
getEventHandler: "function",
|
||||
getAll: "function",
|
||||
getIcon: "function",
|
||||
getNotInstalled: "function",
|
||||
uninstall: "function",
|
||||
oninstall: "object",
|
||||
|
Loading…
Reference in New Issue
Block a user