mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-28 07:13:20 +00:00
Merge m-c to autoland, a=merge
MozReview-Commit-ID: BipzgOEInZh
This commit is contained in:
commit
e457683b2d
@ -68,7 +68,8 @@ browser/components/sessionstore/**
|
||||
browser/components/tabview/**
|
||||
# generated files in cld2
|
||||
browser/components/translation/cld2/cld-worker.js
|
||||
browser/extensions/pdfjs/content/**
|
||||
browser/extensions/pdfjs/content/build**
|
||||
browser/extensions/pdfjs/content/web**
|
||||
# generated or library files in pocket
|
||||
browser/extensions/pocket/content/panels/js/tmpl.js
|
||||
browser/extensions/pocket/content/panels/js/vendor/**
|
||||
|
@ -1,7 +1,6 @@
|
||||
MOZ_AUTOMATION_L10N_CHECK=0
|
||||
MOZ_AUTOMATION_UPLOAD_SYMBOLS=0
|
||||
MOZ_AUTOMATION_UPDATE_PACKAGING=0
|
||||
MOZ_AUTOMATION_SDK=0
|
||||
. "$topsrcdir/b2g/config/mozconfigs/common"
|
||||
. "$topsrcdir/build/unix/mozconfig.linux32"
|
||||
|
||||
|
@ -1,7 +1,6 @@
|
||||
MOZ_AUTOMATION_L10N_CHECK=0
|
||||
MOZ_AUTOMATION_UPLOAD_SYMBOLS=0
|
||||
MOZ_AUTOMATION_UPDATE_PACKAGING=0
|
||||
MOZ_AUTOMATION_SDK=0
|
||||
. "$topsrcdir/b2g/config/mozconfigs/common"
|
||||
. "$topsrcdir/build/unix/mozconfig.linux"
|
||||
|
||||
|
@ -1,6 +1,5 @@
|
||||
MOZ_AUTOMATION_UPLOAD_SYMBOLS=0
|
||||
MOZ_AUTOMATION_UPDATE_PACKAGING=0
|
||||
MOZ_AUTOMATION_SDK=0
|
||||
. "$topsrcdir/b2g/config/mozconfigs/common"
|
||||
|
||||
# Use sccache
|
||||
|
@ -1,7 +1,6 @@
|
||||
MOZ_AUTOMATION_L10N_CHECK=0
|
||||
MOZ_AUTOMATION_UPLOAD_SYMBOLS=0
|
||||
MOZ_AUTOMATION_UPDATE_PACKAGING=0
|
||||
MOZ_AUTOMATION_SDK=0
|
||||
. "$topsrcdir/b2g/config/mozconfigs/common"
|
||||
|
||||
ac_add_options --enable-update-channel=${MOZ_UPDATE_CHANNEL}
|
||||
|
@ -1,7 +1,6 @@
|
||||
MOZ_AUTOMATION_L10N_CHECK=0
|
||||
MOZ_AUTOMATION_UPLOAD_SYMBOLS=0
|
||||
MOZ_AUTOMATION_UPDATE_PACKAGING=0
|
||||
MOZ_AUTOMATION_SDK=0
|
||||
. "$topsrcdir/browser/config/mozconfigs/linux64/nightly"
|
||||
|
||||
ac_add_options --enable-application=b2g/dev
|
||||
|
@ -1,7 +1,6 @@
|
||||
MOZ_AUTOMATION_L10N_CHECK=0
|
||||
MOZ_AUTOMATION_UPLOAD_SYMBOLS=0
|
||||
MOZ_AUTOMATION_UPDATE_PACKAGING=0
|
||||
MOZ_AUTOMATION_SDK=0
|
||||
. "$topsrcdir/browser/config/mozconfigs/linux64/nightly"
|
||||
|
||||
ac_add_options --enable-application=b2g/dev
|
||||
|
@ -1,7 +1,6 @@
|
||||
MOZ_AUTOMATION_L10N_CHECK=0
|
||||
MOZ_AUTOMATION_UPLOAD_SYMBOLS=0
|
||||
MOZ_AUTOMATION_UPDATE_PACKAGING=0
|
||||
MOZ_AUTOMATION_SDK=0
|
||||
. "$topsrcdir/browser/config/mozconfigs/linux64/nightly"
|
||||
|
||||
ac_add_options --enable-application=b2g/dev
|
||||
|
@ -2,7 +2,6 @@ MOZ_AUTOMATION_BUILD_SYMBOLS=0
|
||||
MOZ_AUTOMATION_PACKAGE_TESTS=0
|
||||
MOZ_AUTOMATION_UPLOAD_SYMBOLS=0
|
||||
MOZ_AUTOMATION_UPDATE_PACKAGING=0
|
||||
MOZ_AUTOMATION_SDK=0
|
||||
. $topsrcdir/build/macosx/mozconfig.common
|
||||
|
||||
ac_add_options --enable-application=b2g/dev
|
||||
|
@ -4,7 +4,6 @@ MOZ_AUTOMATION_PACKAGE_TESTS=0
|
||||
MOZ_AUTOMATION_INSTALLER=0
|
||||
MOZ_AUTOMATION_UPLOAD_SYMBOLS=0
|
||||
MOZ_AUTOMATION_UPDATE_PACKAGING=0
|
||||
MOZ_AUTOMATION_SDK=0
|
||||
. "$topsrcdir/browser/config/mozconfigs/win32/nightly"
|
||||
|
||||
ac_add_options --enable-application=b2g/dev
|
||||
|
@ -6,7 +6,6 @@
|
||||
# This needs to be set prior to the next include for it to take effect.
|
||||
MOZ_AUTOMATION_PACKAGE_TESTS=0
|
||||
MOZ_AUTOMATION_L10N_CHECK=0
|
||||
MOZ_AUTOMATION_SDK=0
|
||||
|
||||
. "$topsrcdir/build/mozconfig.common"
|
||||
|
||||
|
@ -6,7 +6,6 @@
|
||||
# This needs to be set prior to the next include for it to take effect.
|
||||
MOZ_AUTOMATION_PACKAGE_TESTS=0
|
||||
MOZ_AUTOMATION_L10N_CHECK=0
|
||||
MOZ_AUTOMATION_SDK=0
|
||||
|
||||
. "$topsrcdir/build/mozconfig.common"
|
||||
|
||||
|
@ -14,9 +14,6 @@ package-compare:
|
||||
stage-package:
|
||||
@$(MAKE) -C browser/installer stage-package
|
||||
|
||||
sdk:
|
||||
@$(MAKE) -C browser/installer make-sdk
|
||||
|
||||
install::
|
||||
@$(MAKE) -C browser/installer install
|
||||
|
||||
|
@ -1,4 +1,3 @@
|
||||
MOZ_AUTOMATION_SDK=${MOZ_AUTOMATION_SDK-1}
|
||||
if [ -n "$ENABLE_RELEASE_PROMOTION" ]; then
|
||||
MOZ_AUTOMATION_UPLOAD_SYMBOLS=${MOZ_AUTOMATION_UPLOAD_SYMBOLS-1}
|
||||
MOZ_AUTOMATION_UPDATE_PACKAGING=1
|
||||
|
@ -1,6 +1,5 @@
|
||||
# This make file should be identical to the beta mozconfig, apart from the
|
||||
# safeguard below
|
||||
MOZ_AUTOMATION_SDK=${MOZ_AUTOMATION_SDK-1}
|
||||
|
||||
if [ -n "$ENABLE_RELEASE_PROMOTION" ]; then
|
||||
MOZ_AUTOMATION_UPLOAD_SYMBOLS=${MOZ_AUTOMATION_UPLOAD_SYMBOLS-1}
|
||||
|
@ -1,4 +1,3 @@
|
||||
MOZ_AUTOMATION_SDK=${MOZ_AUTOMATION_SDK-1}
|
||||
if [ -n "$ENABLE_RELEASE_PROMOTION" ]; then
|
||||
MOZ_AUTOMATION_UPLOAD_SYMBOLS=${MOZ_AUTOMATION_UPLOAD_SYMBOLS-1}
|
||||
MOZ_AUTOMATION_UPDATE_PACKAGING=1
|
||||
|
@ -1,6 +1,5 @@
|
||||
# This make file should be identical to the beta mozconfig, apart from the
|
||||
# safeguard below
|
||||
MOZ_AUTOMATION_SDK=${MOZ_AUTOMATION_SDK-1}
|
||||
|
||||
if [ -n "$ENABLE_RELEASE_PROMOTION" ]; then
|
||||
MOZ_AUTOMATION_UPLOAD_SYMBOLS=${MOZ_AUTOMATION_UPLOAD_SYMBOLS-1}
|
||||
|
@ -1,5 +1,3 @@
|
||||
MOZ_AUTOMATION_SDK=${MOZ_AUTOMATION_SDK-1}
|
||||
|
||||
if [ -n "$ENABLE_RELEASE_PROMOTION" ]; then
|
||||
MOZ_AUTOMATION_UPLOAD_SYMBOLS=${MOZ_AUTOMATION_UPLOAD_SYMBOLS-1}
|
||||
MOZ_AUTOMATION_UPDATE_PACKAGING=1
|
||||
|
@ -1,6 +1,5 @@
|
||||
# This make file should be identical to the beta mozconfig, apart from the
|
||||
# safeguard below
|
||||
MOZ_AUTOMATION_SDK=${MOZ_AUTOMATION_SDK-1}
|
||||
|
||||
if [ -n "$ENABLE_RELEASE_PROMOTION" ]; then
|
||||
MOZ_AUTOMATION_UPLOAD_SYMBOLS=${MOZ_AUTOMATION_UPLOAD_SYMBOLS-1}
|
||||
|
@ -1,5 +1,3 @@
|
||||
MOZ_AUTOMATION_SDK=${MOZ_AUTOMATION_SDK-1}
|
||||
|
||||
if [ -n "$ENABLE_RELEASE_PROMOTION" ]; then
|
||||
MOZ_AUTOMATION_UPLOAD_SYMBOLS=1
|
||||
MOZ_AUTOMATION_UPDATE_PACKAGING=1
|
||||
|
@ -1,6 +1,5 @@
|
||||
# This make file should be identical to the beta mozconfig, apart from the
|
||||
# safeguard below
|
||||
MOZ_AUTOMATION_SDK=${MOZ_AUTOMATION_SDK-1}
|
||||
|
||||
if [ -n "$ENABLE_RELEASE_PROMOTION" ]; then
|
||||
MOZ_AUTOMATION_UPLOAD_SYMBOLS=1
|
||||
|
@ -78,7 +78,6 @@ for platform in all_platforms:
|
||||
'MOZ_AUTOMATION_UPLOAD_SYMBOLS=1',
|
||||
'MOZ_AUTOMATION_UPDATE_PACKAGING=1',
|
||||
'fi',
|
||||
'MOZ_AUTOMATION_SDK=${MOZ_AUTOMATION_SDK-1}',
|
||||
]
|
||||
whitelist['release']['win32'] += ['mk_add_options MOZ_PGO=1']
|
||||
whitelist['release']['win64'] += ['mk_add_options MOZ_PGO=1']
|
||||
|
@ -1,5 +1,3 @@
|
||||
MOZ_AUTOMATION_SDK=${MOZ_AUTOMATION_SDK-1}
|
||||
|
||||
if [ -n "$ENABLE_RELEASE_PROMOTION" ]; then
|
||||
MOZ_AUTOMATION_UPLOAD_SYMBOLS=1
|
||||
MOZ_AUTOMATION_UPDATE_PACKAGING=1
|
||||
|
@ -1,6 +1,5 @@
|
||||
# This make file should be identical to the beta mozconfig, apart from the
|
||||
# safeguard below
|
||||
MOZ_AUTOMATION_SDK=${MOZ_AUTOMATION_SDK-1}
|
||||
|
||||
if [ -n "$ENABLE_RELEASE_PROMOTION" ]; then
|
||||
MOZ_AUTOMATION_UPLOAD_SYMBOLS=1
|
||||
|
@ -1,5 +1,3 @@
|
||||
MOZ_AUTOMATION_SDK=${MOZ_AUTOMATION_SDK-1}
|
||||
|
||||
if [ -n "$ENABLE_RELEASE_PROMOTION" ]; then
|
||||
MOZ_AUTOMATION_UPLOAD_SYMBOLS=1
|
||||
MOZ_AUTOMATION_UPDATE_PACKAGING=1
|
||||
|
@ -1,6 +1,5 @@
|
||||
# This make file should be identical to the beta mozconfig, apart from the
|
||||
# safeguard below
|
||||
MOZ_AUTOMATION_SDK=${MOZ_AUTOMATION_SDK-1}
|
||||
|
||||
if [ -n "$ENABLE_RELEASE_PROMOTION" ]; then
|
||||
MOZ_AUTOMATION_UPLOAD_SYMBOLS=1
|
||||
|
@ -1,3 +1,3 @@
|
||||
This is the pdf.js project output, https://github.com/mozilla/pdf.js
|
||||
|
||||
Current extension version is: 1.7.227
|
||||
Current extension version is: 1.7.235
|
||||
|
@ -15,9 +15,9 @@
|
||||
/* globals Components, Services, XPCOMUtils, PdfjsChromeUtils,
|
||||
PdfjsContentUtils, PdfStreamConverter */
|
||||
|
||||
'use strict';
|
||||
"use strict";
|
||||
|
||||
var EXPORTED_SYMBOLS = ['PdfJs'];
|
||||
var EXPORTED_SYMBOLS = ["PdfJs"];
|
||||
|
||||
const Cc = Components.classes;
|
||||
const Ci = Components.interfaces;
|
||||
@ -25,32 +25,32 @@ const Cr = Components.results;
|
||||
const Cm = Components.manager;
|
||||
const Cu = Components.utils;
|
||||
|
||||
const PREF_PREFIX = 'pdfjs';
|
||||
const PREF_DISABLED = PREF_PREFIX + '.disabled';
|
||||
const PREF_MIGRATION_VERSION = PREF_PREFIX + '.migrationVersion';
|
||||
const PREF_PREVIOUS_ACTION = PREF_PREFIX + '.previousHandler.preferredAction';
|
||||
const PREF_PREFIX = "pdfjs";
|
||||
const PREF_DISABLED = PREF_PREFIX + ".disabled";
|
||||
const PREF_MIGRATION_VERSION = PREF_PREFIX + ".migrationVersion";
|
||||
const PREF_PREVIOUS_ACTION = PREF_PREFIX + ".previousHandler.preferredAction";
|
||||
const PREF_PREVIOUS_ASK = PREF_PREFIX +
|
||||
'.previousHandler.alwaysAskBeforeHandling';
|
||||
const PREF_DISABLED_PLUGIN_TYPES = 'plugin.disable_full_page_plugin_for_types';
|
||||
const TOPIC_PDFJS_HANDLER_CHANGED = 'pdfjs:handlerChanged';
|
||||
const TOPIC_PLUGINS_LIST_UPDATED = 'plugins-list-updated';
|
||||
const TOPIC_PLUGIN_INFO_UPDATED = 'plugin-info-updated';
|
||||
const PDF_CONTENT_TYPE = 'application/pdf';
|
||||
".previousHandler.alwaysAskBeforeHandling";
|
||||
const PREF_DISABLED_PLUGIN_TYPES = "plugin.disable_full_page_plugin_for_types";
|
||||
const TOPIC_PDFJS_HANDLER_CHANGED = "pdfjs:handlerChanged";
|
||||
const TOPIC_PLUGINS_LIST_UPDATED = "plugins-list-updated";
|
||||
const TOPIC_PLUGIN_INFO_UPDATED = "plugin-info-updated";
|
||||
const PDF_CONTENT_TYPE = "application/pdf";
|
||||
|
||||
Cu.import('resource://gre/modules/XPCOMUtils.jsm');
|
||||
Cu.import('resource://gre/modules/Services.jsm');
|
||||
Cu.import("resource://gre/modules/XPCOMUtils.jsm");
|
||||
Cu.import("resource://gre/modules/Services.jsm");
|
||||
|
||||
var Svc = {};
|
||||
XPCOMUtils.defineLazyServiceGetter(Svc, 'mime',
|
||||
'@mozilla.org/mime;1',
|
||||
'nsIMIMEService');
|
||||
XPCOMUtils.defineLazyServiceGetter(Svc, 'pluginHost',
|
||||
'@mozilla.org/plugin/host;1',
|
||||
'nsIPluginHost');
|
||||
XPCOMUtils.defineLazyModuleGetter(this, 'PdfjsChromeUtils',
|
||||
'resource://pdf.js/PdfjsChromeUtils.jsm');
|
||||
XPCOMUtils.defineLazyModuleGetter(this, 'PdfjsContentUtils',
|
||||
'resource://pdf.js/PdfjsContentUtils.jsm');
|
||||
XPCOMUtils.defineLazyServiceGetter(Svc, "mime",
|
||||
"@mozilla.org/mime;1",
|
||||
"nsIMIMEService");
|
||||
XPCOMUtils.defineLazyServiceGetter(Svc, "pluginHost",
|
||||
"@mozilla.org/plugin/host;1",
|
||||
"nsIPluginHost");
|
||||
XPCOMUtils.defineLazyModuleGetter(this, "PdfjsChromeUtils",
|
||||
"resource://pdf.js/PdfjsChromeUtils.jsm");
|
||||
XPCOMUtils.defineLazyModuleGetter(this, "PdfjsContentUtils",
|
||||
"resource://pdf.js/PdfjsContentUtils.jsm");
|
||||
|
||||
function getBoolPref(aPref, aDefaultValue) {
|
||||
try {
|
||||
@ -98,18 +98,18 @@ function initializeDefaultPreferences() {
|
||||
}
|
||||
|
||||
|
||||
var defaultBranch = Services.prefs.getDefaultBranch(PREF_PREFIX + '.');
|
||||
var defaultBranch = Services.prefs.getDefaultBranch(PREF_PREFIX + ".");
|
||||
var defaultValue;
|
||||
for (var key in DEFAULT_PREFERENCES) {
|
||||
defaultValue = DEFAULT_PREFERENCES[key];
|
||||
switch (typeof defaultValue) {
|
||||
case 'boolean':
|
||||
case "boolean":
|
||||
defaultBranch.setBoolPref(key, defaultValue);
|
||||
break;
|
||||
case 'number':
|
||||
case "number":
|
||||
defaultBranch.setIntPref(key, defaultValue);
|
||||
break;
|
||||
case 'string':
|
||||
case "string":
|
||||
defaultBranch.setCharPref(key, defaultValue);
|
||||
break;
|
||||
}
|
||||
@ -155,8 +155,8 @@ var PdfJs = {
|
||||
init: function init(remote) {
|
||||
if (Services.appinfo.processType !==
|
||||
Services.appinfo.PROCESS_TYPE_DEFAULT) {
|
||||
throw new Error('PdfJs.init should only get called ' +
|
||||
'in the parent process.');
|
||||
throw new Error("PdfJs.init should only get called " +
|
||||
"in the parent process.");
|
||||
}
|
||||
PdfjsChromeUtils.init();
|
||||
if (!remote) {
|
||||
@ -219,13 +219,13 @@ var PdfJs = {
|
||||
}
|
||||
if (currentVersion < 2) {
|
||||
// cleaning up of unused database preference (see #3994)
|
||||
Services.prefs.clearUserPref(PREF_PREFIX + '.database');
|
||||
Services.prefs.clearUserPref(PREF_PREFIX + ".database");
|
||||
}
|
||||
Services.prefs.setIntPref(PREF_MIGRATION_VERSION, VERSION);
|
||||
},
|
||||
|
||||
_becomeHandler: function _becomeHandler() {
|
||||
let handlerInfo = Svc.mime.getFromTypeAndExtension(PDF_CONTENT_TYPE, 'pdf');
|
||||
let handlerInfo = Svc.mime.getFromTypeAndExtension(PDF_CONTENT_TYPE, "pdf");
|
||||
let prefs = Services.prefs;
|
||||
if (handlerInfo.preferredAction !== Ci.nsIHandlerInfo.handleInternally &&
|
||||
handlerInfo.preferredAction !== false) {
|
||||
@ -236,7 +236,7 @@ var PdfJs = {
|
||||
prefs.setBoolPref(PREF_PREVIOUS_ASK, handlerInfo.alwaysAskBeforeHandling);
|
||||
}
|
||||
|
||||
let handlerService = Cc['@mozilla.org/uriloader/handler-service;1'].
|
||||
let handlerService = Cc["@mozilla.org/uriloader/handler-service;1"].
|
||||
getService(Ci.nsIHandlerService);
|
||||
|
||||
// Change and save mime handler settings.
|
||||
@ -245,24 +245,24 @@ var PdfJs = {
|
||||
handlerService.store(handlerInfo);
|
||||
|
||||
// Also disable any plugins for pdfs.
|
||||
var stringTypes = '';
|
||||
var stringTypes = "";
|
||||
var types = [];
|
||||
if (prefs.prefHasUserValue(PREF_DISABLED_PLUGIN_TYPES)) {
|
||||
stringTypes = prefs.getCharPref(PREF_DISABLED_PLUGIN_TYPES);
|
||||
}
|
||||
if (stringTypes !== '') {
|
||||
types = stringTypes.split(',');
|
||||
if (stringTypes !== "") {
|
||||
types = stringTypes.split(",");
|
||||
}
|
||||
|
||||
if (types.indexOf(PDF_CONTENT_TYPE) === -1) {
|
||||
types.push(PDF_CONTENT_TYPE);
|
||||
}
|
||||
prefs.setCharPref(PREF_DISABLED_PLUGIN_TYPES, types.join(','));
|
||||
prefs.setCharPref(PREF_DISABLED_PLUGIN_TYPES, types.join(","));
|
||||
|
||||
// Update the category manager in case the plugins are already loaded.
|
||||
let categoryManager = Cc['@mozilla.org/categorymanager;1'];
|
||||
let categoryManager = Cc["@mozilla.org/categorymanager;1"];
|
||||
categoryManager.getService(Ci.nsICategoryManager).
|
||||
deleteCategoryEntry('Gecko-Content-Viewers',
|
||||
deleteCategoryEntry("Gecko-Content-Viewers",
|
||||
PDF_CONTENT_TYPE,
|
||||
false);
|
||||
},
|
||||
@ -272,7 +272,7 @@ var PdfJs = {
|
||||
this.updateRegistration();
|
||||
if (Services.appinfo.processType ===
|
||||
Services.appinfo.PROCESS_TYPE_DEFAULT) {
|
||||
let jsm = 'resource://pdf.js/PdfjsChromeUtils.jsm';
|
||||
let jsm = "resource://pdf.js/PdfjsChromeUtils.jsm";
|
||||
let PdfjsChromeUtils = Components.utils.import(jsm, {}).PdfjsChromeUtils;
|
||||
PdfjsChromeUtils.notifyChildOfSettingsChange();
|
||||
}
|
||||
@ -297,7 +297,7 @@ var PdfJs = {
|
||||
// Check if we have disabled plugin handling of 'application/pdf' in prefs
|
||||
if (Services.prefs.prefHasUserValue(PREF_DISABLED_PLUGIN_TYPES)) {
|
||||
let disabledPluginTypes =
|
||||
Services.prefs.getCharPref(PREF_DISABLED_PLUGIN_TYPES).split(',');
|
||||
Services.prefs.getCharPref(PREF_DISABLED_PLUGIN_TYPES).split(",");
|
||||
if (disabledPluginTypes.indexOf(PDF_CONTENT_TYPE) >= 0) {
|
||||
return true;
|
||||
}
|
||||
@ -306,7 +306,7 @@ var PdfJs = {
|
||||
// Check if there is an enabled pdf plugin.
|
||||
// Note: this check is performed last because getPluginTags() triggers
|
||||
// costly plugin list initialization (bug 881575)
|
||||
let tags = Cc['@mozilla.org/plugin/host;1'].
|
||||
let tags = Cc["@mozilla.org/plugin/host;1"].
|
||||
getService(Ci.nsIPluginHost).
|
||||
getPluginTags();
|
||||
let enabledPluginFound = tags.some(function(tag) {
|
||||
@ -328,7 +328,7 @@ var PdfJs = {
|
||||
return;
|
||||
}
|
||||
this._pdfStreamConverterFactory = new Factory();
|
||||
Cu.import('resource://pdf.js/PdfStreamConverter.jsm');
|
||||
Cu.import("resource://pdf.js/PdfStreamConverter.jsm");
|
||||
this._pdfStreamConverterFactory.register(PdfStreamConverter);
|
||||
|
||||
this._registered = true;
|
||||
@ -339,7 +339,7 @@ var PdfJs = {
|
||||
return;
|
||||
}
|
||||
this._pdfStreamConverterFactory.unregister();
|
||||
Cu.unload('resource://pdf.js/PdfStreamConverter.jsm');
|
||||
Cu.unload("resource://pdf.js/PdfStreamConverter.jsm");
|
||||
delete this._pdfStreamConverterFactory;
|
||||
|
||||
this._registered = false;
|
||||
|
@ -14,14 +14,14 @@
|
||||
*/
|
||||
/* globals Components, Services */
|
||||
|
||||
'use strict';
|
||||
"use strict";
|
||||
|
||||
Components.utils.import('resource://gre/modules/Services.jsm');
|
||||
Components.utils.import("resource://gre/modules/Services.jsm");
|
||||
|
||||
var EXPORTED_SYMBOLS = ['NetworkManager'];
|
||||
var EXPORTED_SYMBOLS = ["NetworkManager"];
|
||||
|
||||
function log(aMsg) {
|
||||
var msg = 'PdfJsNetwork.jsm: ' + (aMsg.join ? aMsg.join('') : aMsg);
|
||||
var msg = "PdfJsNetwork.jsm: " + (aMsg.join ? aMsg.join("") : aMsg);
|
||||
Services.console.logStringMessage(msg);
|
||||
}
|
||||
|
||||
@ -32,7 +32,7 @@ var NetworkManager = (function NetworkManagerClosure() {
|
||||
|
||||
function getArrayBuffer(xhr) {
|
||||
var data = xhr.response;
|
||||
if (typeof data !== 'string') {
|
||||
if (typeof data !== "string") {
|
||||
return data;
|
||||
}
|
||||
var length = data.length;
|
||||
@ -82,18 +82,18 @@ var NetworkManager = (function NetworkManagerClosure() {
|
||||
xhr,
|
||||
};
|
||||
|
||||
xhr.open('GET', this.url);
|
||||
xhr.open("GET", this.url);
|
||||
xhr.withCredentials = this.withCredentials;
|
||||
for (var property in this.httpHeaders) {
|
||||
var value = this.httpHeaders[property];
|
||||
if (typeof value === 'undefined') {
|
||||
if (typeof value === "undefined") {
|
||||
continue;
|
||||
}
|
||||
xhr.setRequestHeader(property, value);
|
||||
}
|
||||
if (this.isHttp && 'begin' in args && 'end' in args) {
|
||||
var rangeStr = args.begin + '-' + (args.end - 1);
|
||||
xhr.setRequestHeader('Range', 'bytes=' + rangeStr);
|
||||
if (this.isHttp && "begin" in args && "end" in args) {
|
||||
var rangeStr = args.begin + "-" + (args.end - 1);
|
||||
xhr.setRequestHeader("Range", "bytes=" + rangeStr);
|
||||
pendingRequest.expectedStatus = 206;
|
||||
} else {
|
||||
pendingRequest.expectedStatus = 200;
|
||||
@ -101,11 +101,11 @@ var NetworkManager = (function NetworkManagerClosure() {
|
||||
|
||||
var useMozChunkedLoading = !!args.onProgressiveData;
|
||||
if (useMozChunkedLoading) {
|
||||
xhr.responseType = 'moz-chunked-arraybuffer';
|
||||
xhr.responseType = "moz-chunked-arraybuffer";
|
||||
pendingRequest.onProgressiveData = args.onProgressiveData;
|
||||
pendingRequest.mozChunked = true;
|
||||
} else {
|
||||
xhr.responseType = 'arraybuffer';
|
||||
xhr.responseType = "arraybuffer";
|
||||
}
|
||||
|
||||
if (args.onError) {
|
||||
@ -197,7 +197,7 @@ var NetworkManager = (function NetworkManagerClosure() {
|
||||
|
||||
var chunk = getArrayBuffer(xhr);
|
||||
if (xhrStatus === PARTIAL_CONTENT_RESPONSE) {
|
||||
var rangeHeader = xhr.getResponseHeader('Content-Range');
|
||||
var rangeHeader = xhr.getResponseHeader("Content-Range");
|
||||
var matches = /bytes (\d+)-(\d+)\/(\d+)/.exec(rangeHeader);
|
||||
var begin = parseInt(matches[1], 10);
|
||||
pendingRequest.onDone({
|
||||
|
@ -15,56 +15,56 @@
|
||||
/* eslint max-len: ["error", 100] */
|
||||
/* globals Components, Services */
|
||||
|
||||
'use strict';
|
||||
"use strict";
|
||||
|
||||
this.EXPORTED_SYMBOLS = ['PdfJsTelemetry'];
|
||||
this.EXPORTED_SYMBOLS = ["PdfJsTelemetry"];
|
||||
|
||||
const Cu = Components.utils;
|
||||
Cu.import('resource://gre/modules/Services.jsm');
|
||||
Cu.import("resource://gre/modules/Services.jsm");
|
||||
|
||||
this.PdfJsTelemetry = {
|
||||
onViewerIsUsed() {
|
||||
let histogram = Services.telemetry.getHistogramById('PDF_VIEWER_USED');
|
||||
let histogram = Services.telemetry.getHistogramById("PDF_VIEWER_USED");
|
||||
histogram.add(true);
|
||||
},
|
||||
onFallback() {
|
||||
let histogram = Services.telemetry.getHistogramById('PDF_VIEWER_FALLBACK_SHOWN');
|
||||
let histogram = Services.telemetry.getHistogramById("PDF_VIEWER_FALLBACK_SHOWN");
|
||||
histogram.add(true);
|
||||
},
|
||||
onDocumentSize(size) {
|
||||
let histogram = Services.telemetry.getHistogramById('PDF_VIEWER_DOCUMENT_SIZE_KB');
|
||||
let histogram = Services.telemetry.getHistogramById("PDF_VIEWER_DOCUMENT_SIZE_KB");
|
||||
histogram.add(size / 1024);
|
||||
},
|
||||
onDocumentVersion(versionId) {
|
||||
let histogram = Services.telemetry.getHistogramById('PDF_VIEWER_DOCUMENT_VERSION');
|
||||
let histogram = Services.telemetry.getHistogramById("PDF_VIEWER_DOCUMENT_VERSION");
|
||||
histogram.add(versionId);
|
||||
},
|
||||
onDocumentGenerator(generatorId) {
|
||||
let histogram = Services.telemetry.getHistogramById('PDF_VIEWER_DOCUMENT_GENERATOR');
|
||||
let histogram = Services.telemetry.getHistogramById("PDF_VIEWER_DOCUMENT_GENERATOR");
|
||||
histogram.add(generatorId);
|
||||
},
|
||||
onEmbed(isObject) {
|
||||
let histogram = Services.telemetry.getHistogramById('PDF_VIEWER_EMBED');
|
||||
let histogram = Services.telemetry.getHistogramById("PDF_VIEWER_EMBED");
|
||||
histogram.add(isObject);
|
||||
},
|
||||
onFontType(fontTypeId) {
|
||||
let histogram = Services.telemetry.getHistogramById('PDF_VIEWER_FONT_TYPES');
|
||||
let histogram = Services.telemetry.getHistogramById("PDF_VIEWER_FONT_TYPES");
|
||||
histogram.add(fontTypeId);
|
||||
},
|
||||
onForm(isAcroform) {
|
||||
let histogram = Services.telemetry.getHistogramById('PDF_VIEWER_FORM');
|
||||
let histogram = Services.telemetry.getHistogramById("PDF_VIEWER_FORM");
|
||||
histogram.add(isAcroform);
|
||||
},
|
||||
onPrint() {
|
||||
let histogram = Services.telemetry.getHistogramById('PDF_VIEWER_PRINT');
|
||||
let histogram = Services.telemetry.getHistogramById("PDF_VIEWER_PRINT");
|
||||
histogram.add(true);
|
||||
},
|
||||
onStreamType(streamTypeId) {
|
||||
let histogram = Services.telemetry.getHistogramById('PDF_VIEWER_STREAM_TYPES');
|
||||
let histogram = Services.telemetry.getHistogramById("PDF_VIEWER_STREAM_TYPES");
|
||||
histogram.add(streamTypeId);
|
||||
},
|
||||
onTimeToView(ms) {
|
||||
let histogram = Services.telemetry.getHistogramById('PDF_VIEWER_TIME_TO_VIEW_MS');
|
||||
let histogram = Services.telemetry.getHistogramById("PDF_VIEWER_TIME_TO_VIEW_MS");
|
||||
histogram.add(ms);
|
||||
}
|
||||
};
|
||||
|
@ -15,43 +15,43 @@
|
||||
/* globals Components, Services, XPCOMUtils, NetUtil, PrivateBrowsingUtils,
|
||||
dump, NetworkManager, PdfJsTelemetry, PdfjsContentUtils */
|
||||
|
||||
'use strict';
|
||||
"use strict";
|
||||
|
||||
var EXPORTED_SYMBOLS = ['PdfStreamConverter'];
|
||||
var EXPORTED_SYMBOLS = ["PdfStreamConverter"];
|
||||
|
||||
const Cc = Components.classes;
|
||||
const Ci = Components.interfaces;
|
||||
const Cr = Components.results;
|
||||
const Cu = Components.utils;
|
||||
// True only if this is the version of pdf.js that is included with firefox.
|
||||
const MOZ_CENTRAL = JSON.parse('true');
|
||||
const PDFJS_EVENT_ID = 'pdf.js.message';
|
||||
const PDF_CONTENT_TYPE = 'application/pdf';
|
||||
const PREF_PREFIX = 'pdfjs';
|
||||
const PDF_VIEWER_WEB_PAGE = 'resource://pdf.js/web/viewer.html';
|
||||
const MOZ_CENTRAL = JSON.parse("true");
|
||||
const PDFJS_EVENT_ID = "pdf.js.message";
|
||||
const PDF_CONTENT_TYPE = "application/pdf";
|
||||
const PREF_PREFIX = "pdfjs";
|
||||
const PDF_VIEWER_WEB_PAGE = "resource://pdf.js/web/viewer.html";
|
||||
const MAX_NUMBER_OF_PREFS = 50;
|
||||
const MAX_STRING_PREF_LENGTH = 128;
|
||||
|
||||
Cu.import('resource://gre/modules/XPCOMUtils.jsm');
|
||||
Cu.import('resource://gre/modules/Services.jsm');
|
||||
Cu.import('resource://gre/modules/NetUtil.jsm');
|
||||
Cu.import("resource://gre/modules/XPCOMUtils.jsm");
|
||||
Cu.import("resource://gre/modules/Services.jsm");
|
||||
Cu.import("resource://gre/modules/NetUtil.jsm");
|
||||
|
||||
XPCOMUtils.defineLazyModuleGetter(this, 'NetworkManager',
|
||||
'resource://pdf.js/PdfJsNetwork.jsm');
|
||||
XPCOMUtils.defineLazyModuleGetter(this, "NetworkManager",
|
||||
"resource://pdf.js/PdfJsNetwork.jsm");
|
||||
|
||||
XPCOMUtils.defineLazyModuleGetter(this, 'PrivateBrowsingUtils',
|
||||
'resource://gre/modules/PrivateBrowsingUtils.jsm');
|
||||
XPCOMUtils.defineLazyModuleGetter(this, "PrivateBrowsingUtils",
|
||||
"resource://gre/modules/PrivateBrowsingUtils.jsm");
|
||||
|
||||
XPCOMUtils.defineLazyModuleGetter(this, 'PdfJsTelemetry',
|
||||
'resource://pdf.js/PdfJsTelemetry.jsm');
|
||||
XPCOMUtils.defineLazyModuleGetter(this, "PdfJsTelemetry",
|
||||
"resource://pdf.js/PdfJsTelemetry.jsm");
|
||||
|
||||
XPCOMUtils.defineLazyModuleGetter(this, 'PdfjsContentUtils',
|
||||
'resource://pdf.js/PdfjsContentUtils.jsm');
|
||||
XPCOMUtils.defineLazyModuleGetter(this, "PdfjsContentUtils",
|
||||
"resource://pdf.js/PdfjsContentUtils.jsm");
|
||||
|
||||
var Svc = {};
|
||||
XPCOMUtils.defineLazyServiceGetter(Svc, 'mime',
|
||||
'@mozilla.org/mime;1',
|
||||
'nsIMIMEService');
|
||||
XPCOMUtils.defineLazyServiceGetter(Svc, "mime",
|
||||
"@mozilla.org/mime;1",
|
||||
"nsIMIMEService");
|
||||
|
||||
function getContainingBrowser(domWindow) {
|
||||
return domWindow.QueryInterface(Ci.nsIInterfaceRequestor)
|
||||
@ -62,7 +62,7 @@ function getContainingBrowser(domWindow) {
|
||||
|
||||
function getFindBar(domWindow) {
|
||||
if (PdfjsContentUtils.isRemote) {
|
||||
throw new Error('FindBar is not accessible from the content process.');
|
||||
throw new Error("FindBar is not accessible from the content process.");
|
||||
}
|
||||
try {
|
||||
var browser = getContainingBrowser(domWindow);
|
||||
@ -101,12 +101,12 @@ function getStringPref(pref, def) {
|
||||
}
|
||||
|
||||
function log(aMsg) {
|
||||
if (!getBoolPref(PREF_PREFIX + '.pdfBugEnabled', false)) {
|
||||
if (!getBoolPref(PREF_PREFIX + ".pdfBugEnabled", false)) {
|
||||
return;
|
||||
}
|
||||
var msg = 'PdfStreamConverter.js: ' + (aMsg.join ? aMsg.join('') : aMsg);
|
||||
var msg = "PdfStreamConverter.js: " + (aMsg.join ? aMsg.join("") : aMsg);
|
||||
Services.console.logStringMessage(msg);
|
||||
dump(msg + '\n');
|
||||
dump(msg + "\n");
|
||||
}
|
||||
|
||||
function getDOMWindow(aChannel) {
|
||||
@ -118,16 +118,16 @@ function getDOMWindow(aChannel) {
|
||||
}
|
||||
|
||||
function getLocalizedStrings(path) {
|
||||
var stringBundle = Cc['@mozilla.org/intl/stringbundle;1'].
|
||||
var stringBundle = Cc["@mozilla.org/intl/stringbundle;1"].
|
||||
getService(Ci.nsIStringBundleService).
|
||||
createBundle('chrome://pdf.js/locale/' + path);
|
||||
createBundle("chrome://pdf.js/locale/" + path);
|
||||
|
||||
var map = {};
|
||||
var enumerator = stringBundle.getSimpleEnumeration();
|
||||
while (enumerator.hasMoreElements()) {
|
||||
var string = enumerator.getNext().QueryInterface(Ci.nsIPropertyElement);
|
||||
var key = string.key, property = 'textContent';
|
||||
var i = key.lastIndexOf('.');
|
||||
var key = string.key, property = "textContent";
|
||||
var i = key.lastIndexOf(".");
|
||||
if (i >= 0) {
|
||||
property = key.substring(i + 1);
|
||||
key = key.substring(0, i);
|
||||
@ -140,7 +140,7 @@ function getLocalizedStrings(path) {
|
||||
return map;
|
||||
}
|
||||
function getLocalizedString(strings, id, property) {
|
||||
property = property || 'textContent';
|
||||
property = property || "textContent";
|
||||
if (id in strings) {
|
||||
return strings[id][property];
|
||||
}
|
||||
@ -233,13 +233,13 @@ class ChromeActions {
|
||||
// the original url.
|
||||
var originalUri = NetUtil.newURI(originalUrl);
|
||||
var filename = data.filename;
|
||||
if (typeof filename !== 'string' ||
|
||||
if (typeof filename !== "string" ||
|
||||
(!/\.pdf$/i.test(filename) && !data.isAttachment)) {
|
||||
filename = 'document.pdf';
|
||||
filename = "document.pdf";
|
||||
}
|
||||
var blobUri = NetUtil.newURI(blobUrl);
|
||||
var extHelperAppSvc =
|
||||
Cc['@mozilla.org/uriloader/external-helper-app-service;1'].
|
||||
Cc["@mozilla.org/uriloader/external-helper-app-service;1"].
|
||||
getService(Ci.nsIExternalHelperAppService);
|
||||
|
||||
var docIsPrivate = this.isInPrivateBrowsing();
|
||||
@ -247,7 +247,7 @@ class ChromeActions {
|
||||
uri: blobUri,
|
||||
loadUsingSystemPrincipal: true,
|
||||
});
|
||||
if ('nsIPrivateBrowsingChannel' in Ci &&
|
||||
if ("nsIPrivateBrowsingChannel" in Ci &&
|
||||
netChannel instanceof Ci.nsIPrivateBrowsingChannel) {
|
||||
netChannel.setPrivate(docIsPrivate);
|
||||
}
|
||||
@ -260,7 +260,7 @@ class ChromeActions {
|
||||
}
|
||||
// Create a nsIInputStreamChannel so we can set the url on the channel
|
||||
// so the filename will be correct.
|
||||
var channel = Cc['@mozilla.org/network/input-stream-channel;1'].
|
||||
var channel = Cc["@mozilla.org/network/input-stream-channel;1"].
|
||||
createInstance(Ci.nsIInputStreamChannel);
|
||||
channel.QueryInterface(Ci.nsIChannel);
|
||||
try {
|
||||
@ -275,7 +275,7 @@ class ChromeActions {
|
||||
channel.setURI(originalUri);
|
||||
channel.loadInfo = netChannel.loadInfo;
|
||||
channel.contentStream = aInputStream;
|
||||
if ('nsIPrivateBrowsingChannel' in Ci &&
|
||||
if ("nsIPrivateBrowsingChannel" in Ci &&
|
||||
channel instanceof Ci.nsIPrivateBrowsingChannel) {
|
||||
channel.setPrivate(docIsPrivate);
|
||||
}
|
||||
@ -288,8 +288,8 @@ class ChromeActions {
|
||||
.getInterface(Ci.nsIWebNavigation)
|
||||
.QueryInterface(Ci.nsILoadContext);
|
||||
this.extListener = extHelperAppSvc.doContent(
|
||||
(data.isAttachment ? 'application/octet-stream' :
|
||||
'application/pdf'),
|
||||
(data.isAttachment ? "application/octet-stream" :
|
||||
"application/pdf"),
|
||||
aRequest, loadContext, false);
|
||||
this.extListener.onStartRequest(aRequest, aContext);
|
||||
},
|
||||
@ -313,20 +313,20 @@ class ChromeActions {
|
||||
}
|
||||
|
||||
getLocale() {
|
||||
return getStringPref('general.useragent.locale', 'en-US');
|
||||
return getStringPref("general.useragent.locale", "en-US");
|
||||
}
|
||||
|
||||
getStrings(data) {
|
||||
try {
|
||||
// Lazy initialization of localizedStrings
|
||||
if (!('localizedStrings' in this)) {
|
||||
this.localizedStrings = getLocalizedStrings('viewer.properties');
|
||||
if (!("localizedStrings" in this)) {
|
||||
this.localizedStrings = getLocalizedStrings("viewer.properties");
|
||||
}
|
||||
var result = this.localizedStrings[data];
|
||||
return JSON.stringify(result || null);
|
||||
} catch (e) {
|
||||
log('Unable to retrieve localized strings: ' + e);
|
||||
return 'null';
|
||||
log("Unable to retrieve localized strings: " + e);
|
||||
return "null";
|
||||
}
|
||||
}
|
||||
|
||||
@ -343,52 +343,52 @@ class ChromeActions {
|
||||
|
||||
// ... or when the new find events code exists.
|
||||
var findBar = getFindBar(this.domWindow);
|
||||
return !!findBar && ('updateControlState' in findBar);
|
||||
return !!findBar && ("updateControlState" in findBar);
|
||||
}
|
||||
|
||||
supportsDocumentFonts() {
|
||||
var prefBrowser = getIntPref('browser.display.use_document_fonts', 1);
|
||||
var prefGfx = getBoolPref('gfx.downloadable_fonts.enabled', true);
|
||||
var prefBrowser = getIntPref("browser.display.use_document_fonts", 1);
|
||||
var prefGfx = getBoolPref("gfx.downloadable_fonts.enabled", true);
|
||||
return (!!prefBrowser && prefGfx);
|
||||
}
|
||||
|
||||
supportsDocumentColors() {
|
||||
return getIntPref('browser.display.document_color_use', 0) !== 2;
|
||||
return getIntPref("browser.display.document_color_use", 0) !== 2;
|
||||
}
|
||||
|
||||
supportedMouseWheelZoomModifierKeys() {
|
||||
return {
|
||||
ctrlKey: getIntPref('mousewheel.with_control.action', 3) === 3,
|
||||
metaKey: getIntPref('mousewheel.with_meta.action', 1) === 3,
|
||||
ctrlKey: getIntPref("mousewheel.with_control.action", 3) === 3,
|
||||
metaKey: getIntPref("mousewheel.with_meta.action", 1) === 3,
|
||||
};
|
||||
}
|
||||
|
||||
reportTelemetry(data) {
|
||||
var probeInfo = JSON.parse(data);
|
||||
switch (probeInfo.type) {
|
||||
case 'documentInfo':
|
||||
case "documentInfo":
|
||||
if (!this.telemetryState.documentInfo) {
|
||||
PdfJsTelemetry.onDocumentVersion(probeInfo.version | 0);
|
||||
PdfJsTelemetry.onDocumentGenerator(probeInfo.generator | 0);
|
||||
if (probeInfo.formType) {
|
||||
PdfJsTelemetry.onForm(probeInfo.formType === 'acroform');
|
||||
PdfJsTelemetry.onForm(probeInfo.formType === "acroform");
|
||||
}
|
||||
this.telemetryState.documentInfo = true;
|
||||
}
|
||||
break;
|
||||
case 'pageInfo':
|
||||
case "pageInfo":
|
||||
if (!this.telemetryState.firstPageInfo) {
|
||||
var duration = Date.now() - this.telemetryState.startAt;
|
||||
PdfJsTelemetry.onTimeToView(duration);
|
||||
this.telemetryState.firstPageInfo = true;
|
||||
}
|
||||
break;
|
||||
case 'documentStats':
|
||||
case "documentStats":
|
||||
// documentStats can be called several times for one documents.
|
||||
// if stream/font types are reported, trying not to submit the same
|
||||
// enumeration value multiple times.
|
||||
var documentStats = probeInfo.stats;
|
||||
if (!documentStats || typeof documentStats !== 'object') {
|
||||
if (!documentStats || typeof documentStats !== "object") {
|
||||
break;
|
||||
}
|
||||
var i, streamTypes = documentStats.streamTypes;
|
||||
@ -414,7 +414,7 @@ class ChromeActions {
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 'print':
|
||||
case "print":
|
||||
PdfJsTelemetry.onPrint();
|
||||
break;
|
||||
}
|
||||
@ -428,29 +428,29 @@ class ChromeActions {
|
||||
var featureId = args.featureId;
|
||||
|
||||
var domWindow = this.domWindow;
|
||||
var strings = getLocalizedStrings('chrome.properties');
|
||||
var strings = getLocalizedStrings("chrome.properties");
|
||||
var message;
|
||||
if (featureId === 'forms') {
|
||||
message = getLocalizedString(strings, 'unsupported_feature_forms');
|
||||
if (featureId === "forms") {
|
||||
message = getLocalizedString(strings, "unsupported_feature_forms");
|
||||
} else {
|
||||
message = getLocalizedString(strings, 'unsupported_feature');
|
||||
message = getLocalizedString(strings, "unsupported_feature");
|
||||
}
|
||||
PdfJsTelemetry.onFallback();
|
||||
PdfjsContentUtils.displayWarning(domWindow, message,
|
||||
getLocalizedString(strings, 'open_with_different_viewer'),
|
||||
getLocalizedString(strings, 'open_with_different_viewer', 'accessKey'));
|
||||
getLocalizedString(strings, "open_with_different_viewer"),
|
||||
getLocalizedString(strings, "open_with_different_viewer", "accessKey"));
|
||||
|
||||
let winmm = domWindow.QueryInterface(Ci.nsIInterfaceRequestor)
|
||||
.getInterface(Ci.nsIDocShell)
|
||||
.QueryInterface(Ci.nsIInterfaceRequestor)
|
||||
.getInterface(Ci.nsIContentFrameMessageManager);
|
||||
|
||||
winmm.addMessageListener('PDFJS:Child:fallbackDownload',
|
||||
winmm.addMessageListener("PDFJS:Child:fallbackDownload",
|
||||
function fallbackDownload(msg) {
|
||||
let data = msg.data;
|
||||
sendResponse(data.download);
|
||||
|
||||
winmm.removeMessageListener('PDFJS:Child:fallbackDownload',
|
||||
winmm.removeMessageListener("PDFJS:Child:fallbackDownload",
|
||||
fallbackDownload);
|
||||
});
|
||||
}
|
||||
@ -463,8 +463,8 @@ class ChromeActions {
|
||||
var result = data.result;
|
||||
var findPrevious = data.findPrevious;
|
||||
var findPreviousType = typeof findPrevious;
|
||||
if ((typeof result !== 'number' || result < 0 || result > 3) ||
|
||||
(findPreviousType !== 'undefined' && findPreviousType !== 'boolean')) {
|
||||
if ((typeof result !== "number" || result < 0 || result > 3) ||
|
||||
(findPreviousType !== "undefined" && findPreviousType !== "boolean")) {
|
||||
return;
|
||||
}
|
||||
|
||||
@ -473,34 +473,34 @@ class ChromeActions {
|
||||
.QueryInterface(Ci.nsIInterfaceRequestor)
|
||||
.getInterface(Ci.nsIContentFrameMessageManager);
|
||||
|
||||
winmm.sendAsyncMessage('PDFJS:Parent:updateControlState', data);
|
||||
winmm.sendAsyncMessage("PDFJS:Parent:updateControlState", data);
|
||||
}
|
||||
|
||||
setPreferences(prefs, sendResponse) {
|
||||
var defaultBranch = Services.prefs.getDefaultBranch(PREF_PREFIX + '.');
|
||||
var defaultBranch = Services.prefs.getDefaultBranch(PREF_PREFIX + ".");
|
||||
var numberOfPrefs = 0;
|
||||
var prefValue, prefName;
|
||||
for (var key in prefs) {
|
||||
if (++numberOfPrefs > MAX_NUMBER_OF_PREFS) {
|
||||
log('setPreferences - Exceeded the maximum number of preferences ' +
|
||||
'that is allowed to be set at once.');
|
||||
log("setPreferences - Exceeded the maximum number of preferences " +
|
||||
"that is allowed to be set at once.");
|
||||
break;
|
||||
} else if (!defaultBranch.getPrefType(key)) {
|
||||
continue;
|
||||
}
|
||||
prefValue = prefs[key];
|
||||
prefName = (PREF_PREFIX + '.' + key);
|
||||
prefName = (PREF_PREFIX + "." + key);
|
||||
switch (typeof prefValue) {
|
||||
case 'boolean':
|
||||
case "boolean":
|
||||
PdfjsContentUtils.setBoolPref(prefName, prefValue);
|
||||
break;
|
||||
case 'number':
|
||||
case "number":
|
||||
PdfjsContentUtils.setIntPref(prefName, prefValue);
|
||||
break;
|
||||
case 'string':
|
||||
case "string":
|
||||
if (prefValue.length > MAX_STRING_PREF_LENGTH) {
|
||||
log('setPreferences - Exceeded the maximum allowed length ' +
|
||||
'for a string preference.');
|
||||
log("setPreferences - Exceeded the maximum allowed length " +
|
||||
"for a string preference.");
|
||||
} else {
|
||||
PdfjsContentUtils.setStringPref(prefName, prefValue);
|
||||
}
|
||||
@ -513,36 +513,36 @@ class ChromeActions {
|
||||
}
|
||||
|
||||
getPreferences(prefs, sendResponse) {
|
||||
var defaultBranch = Services.prefs.getDefaultBranch(PREF_PREFIX + '.');
|
||||
var defaultBranch = Services.prefs.getDefaultBranch(PREF_PREFIX + ".");
|
||||
var currentPrefs = {}, numberOfPrefs = 0;
|
||||
var prefValue, prefName;
|
||||
for (var key in prefs) {
|
||||
if (++numberOfPrefs > MAX_NUMBER_OF_PREFS) {
|
||||
log('getPreferences - Exceeded the maximum number of preferences ' +
|
||||
'that is allowed to be fetched at once.');
|
||||
log("getPreferences - Exceeded the maximum number of preferences " +
|
||||
"that is allowed to be fetched at once.");
|
||||
break;
|
||||
} else if (!defaultBranch.getPrefType(key)) {
|
||||
continue;
|
||||
}
|
||||
prefValue = prefs[key];
|
||||
prefName = (PREF_PREFIX + '.' + key);
|
||||
prefName = (PREF_PREFIX + "." + key);
|
||||
switch (typeof prefValue) {
|
||||
case 'boolean':
|
||||
case "boolean":
|
||||
currentPrefs[key] = getBoolPref(prefName, prefValue);
|
||||
break;
|
||||
case 'number':
|
||||
case "number":
|
||||
currentPrefs[key] = getIntPref(prefName, prefValue);
|
||||
break;
|
||||
case 'string':
|
||||
case "string":
|
||||
currentPrefs[key] = getStringPref(prefName, prefValue);
|
||||
break;
|
||||
}
|
||||
}
|
||||
let result = JSON.stringify(currentPrefs);
|
||||
if (sendResponse) {
|
||||
sendResponse(JSON.stringify(currentPrefs));
|
||||
} else {
|
||||
return JSON.stringify(currentPrefs);
|
||||
sendResponse(result);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
||||
@ -566,7 +566,7 @@ class RangedChromeActions extends ChromeActions {
|
||||
var httpHeaderVisitor = {
|
||||
headers: {},
|
||||
visitHeader(aHeader, aValue) {
|
||||
if (aHeader === 'Range') {
|
||||
if (aHeader === "Range") {
|
||||
// When loading the PDF from cache, firefox seems to set the Range
|
||||
// request header to fetch only the unfetched portions of the file
|
||||
// (e.g. 'Range: bytes=1024-'). However, we want to set this header
|
||||
@ -584,7 +584,7 @@ class RangedChromeActions extends ChromeActions {
|
||||
var xhr_onreadystatechange = function xhr_onreadystatechange() {
|
||||
if (this.readyState === 1) { // LOADING
|
||||
var netChannel = this.channel;
|
||||
if ('nsIPrivateBrowsingChannel' in Ci &&
|
||||
if ("nsIPrivateBrowsingChannel" in Ci &&
|
||||
netChannel instanceof Ci.nsIPrivateBrowsingChannel) {
|
||||
var docIsPrivate = self.isInPrivateBrowsing();
|
||||
netChannel.setPrivate(docIsPrivate);
|
||||
@ -593,9 +593,9 @@ class RangedChromeActions extends ChromeActions {
|
||||
};
|
||||
var getXhr = function getXhr() {
|
||||
const XMLHttpRequest = Components.Constructor(
|
||||
'@mozilla.org/xmlextras/xmlhttprequest;1');
|
||||
"@mozilla.org/xmlextras/xmlhttprequest;1");
|
||||
var xhr = new XMLHttpRequest();
|
||||
xhr.addEventListener('readystatechange', xhr_onreadystatechange);
|
||||
xhr.addEventListener("readystatechange", xhr_onreadystatechange);
|
||||
return xhr;
|
||||
};
|
||||
|
||||
@ -606,7 +606,7 @@ class RangedChromeActions extends ChromeActions {
|
||||
|
||||
// If we are in range request mode, this means we manually issued xhr
|
||||
// requests, which we need to abort when we leave the page
|
||||
domWindow.addEventListener('unload', function unload(e) {
|
||||
domWindow.addEventListener("unload", function unload(e) {
|
||||
domWindow.removeEventListener(e.type, unload);
|
||||
self.abortLoading();
|
||||
});
|
||||
@ -624,11 +624,11 @@ class RangedChromeActions extends ChromeActions {
|
||||
|
||||
this.dataListener.onprogress = (loaded, total) => {
|
||||
this.domWindow.postMessage({
|
||||
pdfjsLoadAction: 'progressiveRead',
|
||||
pdfjsLoadAction: "progressiveRead",
|
||||
loaded,
|
||||
total,
|
||||
chunk: this.dataListener.readData(),
|
||||
}, '*');
|
||||
}, "*");
|
||||
};
|
||||
this.dataListener.oncomplete = () => {
|
||||
this.dataListener = null;
|
||||
@ -636,13 +636,13 @@ class RangedChromeActions extends ChromeActions {
|
||||
}
|
||||
|
||||
this.domWindow.postMessage({
|
||||
pdfjsLoadAction: 'supportsRangedLoading',
|
||||
pdfjsLoadAction: "supportsRangedLoading",
|
||||
rangeEnabled: this.rangeEnabled,
|
||||
streamingEnabled: this.streamingEnabled,
|
||||
pdfUrl: this.pdfUrl,
|
||||
length: this.contentLength,
|
||||
data,
|
||||
}, '*');
|
||||
}, "*");
|
||||
|
||||
return true;
|
||||
}
|
||||
@ -661,16 +661,16 @@ class RangedChromeActions extends ChromeActions {
|
||||
this.networkManager.requestRange(begin, end, {
|
||||
onDone: function RangedChromeActions_onDone(aArgs) {
|
||||
domWindow.postMessage({
|
||||
pdfjsLoadAction: 'range',
|
||||
pdfjsLoadAction: "range",
|
||||
begin: aArgs.begin,
|
||||
chunk: aArgs.chunk,
|
||||
}, '*');
|
||||
}, "*");
|
||||
},
|
||||
onProgress: function RangedChromeActions_onProgress(evt) {
|
||||
domWindow.postMessage({
|
||||
pdfjsLoadAction: 'rangeProgress',
|
||||
pdfjsLoadAction: "rangeProgress",
|
||||
loaded: evt.loaded,
|
||||
}, '*');
|
||||
}, "*");
|
||||
}
|
||||
});
|
||||
}
|
||||
@ -703,18 +703,18 @@ class StandardChromeActions extends ChromeActions {
|
||||
|
||||
this.dataListener.onprogress = (loaded, total) => {
|
||||
this.domWindow.postMessage({
|
||||
pdfjsLoadAction: 'progress',
|
||||
pdfjsLoadAction: "progress",
|
||||
loaded,
|
||||
total,
|
||||
}, '*');
|
||||
}, "*");
|
||||
};
|
||||
|
||||
this.dataListener.oncomplete = (data, errorCode) => {
|
||||
this.domWindow.postMessage({
|
||||
pdfjsLoadAction: 'complete',
|
||||
pdfjsLoadAction: "complete",
|
||||
data,
|
||||
errorCode,
|
||||
}, '*');
|
||||
}, "*");
|
||||
|
||||
this.dataListener = null;
|
||||
this.originalRequest = null;
|
||||
@ -749,7 +749,7 @@ class RequestListener {
|
||||
var sync = event.detail.sync;
|
||||
var actions = this.actions;
|
||||
if (!(action in actions)) {
|
||||
log('Unknown action: ' + action);
|
||||
log("Unknown action: " + action);
|
||||
return;
|
||||
}
|
||||
var response;
|
||||
@ -763,9 +763,9 @@ class RequestListener {
|
||||
} else {
|
||||
response = function sendResponse(aResponse) {
|
||||
try {
|
||||
var listener = doc.createEvent('CustomEvent');
|
||||
var listener = doc.createEvent("CustomEvent");
|
||||
let detail = Cu.cloneInto({ response: aResponse }, doc.defaultView);
|
||||
listener.initCustomEvent('pdf.js.response', true, false, detail);
|
||||
listener.initCustomEvent("pdf.js.response", true, false, detail);
|
||||
return message.dispatchEvent(listener);
|
||||
} catch (e) {
|
||||
// doc is no longer accessible because the requestor is already
|
||||
@ -797,14 +797,14 @@ class FindEventManager {
|
||||
this.unbind();
|
||||
this.contentWindow.removeEventListener(e.type, unload);
|
||||
}.bind(this);
|
||||
this.contentWindow.addEventListener('unload', unload);
|
||||
this.contentWindow.addEventListener("unload", unload);
|
||||
|
||||
// We cannot directly attach listeners to for the find events
|
||||
// since the FindBar is in the parent process. Instead we're
|
||||
// asking the PdfjsChromeUtils to do it for us and forward
|
||||
// all the find events to us.
|
||||
this.winmm.sendAsyncMessage('PDFJS:Parent:addEventListener');
|
||||
this.winmm.addMessageListener('PDFJS:Child:handleEvent', this);
|
||||
this.winmm.sendAsyncMessage("PDFJS:Parent:addEventListener");
|
||||
this.winmm.addMessageListener("PDFJS:Child:handleEvent", this);
|
||||
}
|
||||
|
||||
receiveMessage(msg) {
|
||||
@ -813,13 +813,13 @@ class FindEventManager {
|
||||
var contentWindow = this.contentWindow;
|
||||
|
||||
detail = Cu.cloneInto(detail, contentWindow);
|
||||
var forward = contentWindow.document.createEvent('CustomEvent');
|
||||
var forward = contentWindow.document.createEvent("CustomEvent");
|
||||
forward.initCustomEvent(type, true, true, detail);
|
||||
contentWindow.dispatchEvent(forward);
|
||||
}
|
||||
|
||||
unbind() {
|
||||
this.winmm.sendAsyncMessage('PDFJS:Parent:removeEventListener');
|
||||
this.winmm.sendAsyncMessage("PDFJS:Parent:removeEventListener");
|
||||
}
|
||||
}
|
||||
|
||||
@ -829,12 +829,12 @@ function PdfStreamConverter() {
|
||||
PdfStreamConverter.prototype = {
|
||||
|
||||
// properties required for XPCOM registration:
|
||||
classID: Components.ID('{d0c5195d-e798-49d4-b1d3-9324328b2291}'),
|
||||
classDescription: 'pdf.js Component',
|
||||
contractID: '@mozilla.org/streamconv;1?from=application/pdf&to=*/*',
|
||||
classID: Components.ID("{d0c5195d-e798-49d4-b1d3-9324328b2291}"),
|
||||
classDescription: "pdf.js Component",
|
||||
contractID: "@mozilla.org/streamconv;1?from=application/pdf&to=*/*",
|
||||
|
||||
classID2: Components.ID('{d0c5195d-e798-49d4-b1d3-9324328b2292}'),
|
||||
contractID2: '@mozilla.org/streamconv;1?from=application/pdf&to=text/html',
|
||||
classID2: Components.ID("{d0c5195d-e798-49d4-b1d3-9324328b2292}"),
|
||||
contractID2: "@mozilla.org/streamconv;1?from=application/pdf&to=text/html",
|
||||
|
||||
QueryInterface: XPCOMUtils.generateQI([
|
||||
Ci.nsISupports,
|
||||
@ -894,29 +894,29 @@ PdfStreamConverter.prototype = {
|
||||
var rangeRequest = false;
|
||||
var streamRequest = false;
|
||||
if (isHttpRequest) {
|
||||
var contentEncoding = 'identity';
|
||||
var contentEncoding = "identity";
|
||||
try {
|
||||
contentEncoding = aRequest.getResponseHeader('Content-Encoding');
|
||||
contentEncoding = aRequest.getResponseHeader("Content-Encoding");
|
||||
} catch (e) {}
|
||||
|
||||
var acceptRanges;
|
||||
try {
|
||||
acceptRanges = aRequest.getResponseHeader('Accept-Ranges');
|
||||
acceptRanges = aRequest.getResponseHeader("Accept-Ranges");
|
||||
} catch (e) {}
|
||||
|
||||
var hash = aRequest.URI.ref;
|
||||
var isPDFBugEnabled = getBoolPref(PREF_PREFIX + '.pdfBugEnabled', false);
|
||||
rangeRequest = contentEncoding === 'identity' &&
|
||||
acceptRanges === 'bytes' &&
|
||||
var isPDFBugEnabled = getBoolPref(PREF_PREFIX + ".pdfBugEnabled", false);
|
||||
rangeRequest = contentEncoding === "identity" &&
|
||||
acceptRanges === "bytes" &&
|
||||
aRequest.contentLength >= 0 &&
|
||||
!getBoolPref(PREF_PREFIX + '.disableRange', false) &&
|
||||
!getBoolPref(PREF_PREFIX + ".disableRange", false) &&
|
||||
(!isPDFBugEnabled ||
|
||||
hash.toLowerCase().indexOf('disablerange=true') < 0);
|
||||
streamRequest = contentEncoding === 'identity' &&
|
||||
hash.toLowerCase().indexOf("disablerange=true") < 0);
|
||||
streamRequest = contentEncoding === "identity" &&
|
||||
aRequest.contentLength >= 0 &&
|
||||
!getBoolPref(PREF_PREFIX + '.disableStream', false) &&
|
||||
!getBoolPref(PREF_PREFIX + ".disableStream", false) &&
|
||||
(!isPDFBugEnabled ||
|
||||
hash.toLowerCase().indexOf('disablestream=true') < 0);
|
||||
hash.toLowerCase().indexOf("disablestream=true") < 0);
|
||||
}
|
||||
|
||||
aRequest.QueryInterface(Ci.nsIChannel);
|
||||
@ -929,15 +929,15 @@ PdfStreamConverter.prototype = {
|
||||
} catch (e) {}
|
||||
|
||||
// Change the content type so we don't get stuck in a loop.
|
||||
aRequest.setProperty('contentType', aRequest.contentType);
|
||||
aRequest.contentType = 'text/html';
|
||||
aRequest.setProperty("contentType", aRequest.contentType);
|
||||
aRequest.contentType = "text/html";
|
||||
if (isHttpRequest) {
|
||||
// We trust PDF viewer, using no CSP
|
||||
aRequest.setResponseHeader('Content-Security-Policy', '', false);
|
||||
aRequest.setResponseHeader('Content-Security-Policy-Report-Only', '',
|
||||
aRequest.setResponseHeader("Content-Security-Policy", "", false);
|
||||
aRequest.setResponseHeader("Content-Security-Policy-Report-Only", "",
|
||||
false);
|
||||
// The viewer does not need to handle HTTP Refresh header.
|
||||
aRequest.setResponseHeader('Refresh', '', false);
|
||||
aRequest.setResponseHeader("Refresh", "", false);
|
||||
}
|
||||
|
||||
PdfJsTelemetry.onViewerIsUsed();
|
||||
@ -946,7 +946,7 @@ PdfStreamConverter.prototype = {
|
||||
// Creating storage for PDF data
|
||||
var contentLength = aRequest.contentLength;
|
||||
this.dataListener = new PdfDataListener(contentLength);
|
||||
this.binaryStream = Cc['@mozilla.org/binaryinputstream;1']
|
||||
this.binaryStream = Cc["@mozilla.org/binaryinputstream;1"]
|
||||
.createInstance(Ci.nsIBinaryInputStream);
|
||||
|
||||
// Create a new channel that is viewer loaded as a resource.
|
||||
@ -993,8 +993,8 @@ PdfStreamConverter.prototype = {
|
||||
listener.onStopRequest(aRequest, aContext, statusCode);
|
||||
|
||||
if (domWindow.frameElement) {
|
||||
var isObjectEmbed = domWindow.frameElement.tagName !== 'IFRAME' ||
|
||||
domWindow.frameElement.className === 'previewPluginContentFrame';
|
||||
var isObjectEmbed = domWindow.frameElement.tagName !== "IFRAME" ||
|
||||
domWindow.frameElement.className === "previewPluginContentFrame";
|
||||
PdfJsTelemetry.onEmbed(isObjectEmbed);
|
||||
}
|
||||
}
|
||||
@ -1008,7 +1008,7 @@ PdfStreamConverter.prototype = {
|
||||
// We can use the resource principal when data is fetched by the chrome,
|
||||
// e.g. useful for NoScript. Make make sure we reuse the origin attributes
|
||||
// from the request channel to keep isolation consistent.
|
||||
var ssm = Cc['@mozilla.org/scriptsecuritymanager;1']
|
||||
var ssm = Cc["@mozilla.org/scriptsecuritymanager;1"]
|
||||
.getService(Ci.nsIScriptSecurityManager);
|
||||
var uri = NetUtil.newURI(PDF_VIEWER_WEB_PAGE);
|
||||
var resourcePrincipal =
|
||||
|
@ -14,25 +14,25 @@
|
||||
*/
|
||||
/* globals Components, Services, XPCOMUtils */
|
||||
|
||||
'use strict';
|
||||
"use strict";
|
||||
|
||||
var EXPORTED_SYMBOLS = ['PdfjsChromeUtils'];
|
||||
var EXPORTED_SYMBOLS = ["PdfjsChromeUtils"];
|
||||
|
||||
const Cc = Components.classes;
|
||||
const Ci = Components.interfaces;
|
||||
const Cr = Components.results;
|
||||
const Cu = Components.utils;
|
||||
|
||||
const PREF_PREFIX = 'pdfjs';
|
||||
const PDF_CONTENT_TYPE = 'application/pdf';
|
||||
const PREF_PREFIX = "pdfjs";
|
||||
const PDF_CONTENT_TYPE = "application/pdf";
|
||||
|
||||
Cu.import('resource://gre/modules/XPCOMUtils.jsm');
|
||||
Cu.import('resource://gre/modules/Services.jsm');
|
||||
Cu.import("resource://gre/modules/XPCOMUtils.jsm");
|
||||
Cu.import("resource://gre/modules/Services.jsm");
|
||||
|
||||
var Svc = {};
|
||||
XPCOMUtils.defineLazyServiceGetter(Svc, 'mime',
|
||||
'@mozilla.org/mime;1',
|
||||
'nsIMIMEService');
|
||||
XPCOMUtils.defineLazyServiceGetter(Svc, "mime",
|
||||
"@mozilla.org/mime;1",
|
||||
"nsIMIMEService");
|
||||
|
||||
var DEFAULT_PREFERENCES =
|
||||
{
|
||||
@ -71,46 +71,46 @@ var PdfjsChromeUtils = {
|
||||
this._browsers = new WeakSet();
|
||||
if (!this._ppmm) {
|
||||
// global parent process message manager (PPMM)
|
||||
this._ppmm = Cc['@mozilla.org/parentprocessmessagemanager;1'].
|
||||
this._ppmm = Cc["@mozilla.org/parentprocessmessagemanager;1"].
|
||||
getService(Ci.nsIMessageBroadcaster);
|
||||
this._ppmm.addMessageListener('PDFJS:Parent:clearUserPref', this);
|
||||
this._ppmm.addMessageListener('PDFJS:Parent:setIntPref', this);
|
||||
this._ppmm.addMessageListener('PDFJS:Parent:setBoolPref', this);
|
||||
this._ppmm.addMessageListener('PDFJS:Parent:setCharPref', this);
|
||||
this._ppmm.addMessageListener('PDFJS:Parent:setStringPref', this);
|
||||
this._ppmm.addMessageListener('PDFJS:Parent:isDefaultHandlerApp', this);
|
||||
this._ppmm.addMessageListener("PDFJS:Parent:clearUserPref", this);
|
||||
this._ppmm.addMessageListener("PDFJS:Parent:setIntPref", this);
|
||||
this._ppmm.addMessageListener("PDFJS:Parent:setBoolPref", this);
|
||||
this._ppmm.addMessageListener("PDFJS:Parent:setCharPref", this);
|
||||
this._ppmm.addMessageListener("PDFJS:Parent:setStringPref", this);
|
||||
this._ppmm.addMessageListener("PDFJS:Parent:isDefaultHandlerApp", this);
|
||||
|
||||
// global dom message manager (MMg)
|
||||
this._mmg = Cc['@mozilla.org/globalmessagemanager;1'].
|
||||
this._mmg = Cc["@mozilla.org/globalmessagemanager;1"].
|
||||
getService(Ci.nsIMessageListenerManager);
|
||||
this._mmg.addMessageListener('PDFJS:Parent:displayWarning', this);
|
||||
this._mmg.addMessageListener("PDFJS:Parent:displayWarning", this);
|
||||
|
||||
this._mmg.addMessageListener('PDFJS:Parent:addEventListener', this);
|
||||
this._mmg.addMessageListener('PDFJS:Parent:removeEventListener', this);
|
||||
this._mmg.addMessageListener('PDFJS:Parent:updateControlState', this);
|
||||
this._mmg.addMessageListener("PDFJS:Parent:addEventListener", this);
|
||||
this._mmg.addMessageListener("PDFJS:Parent:removeEventListener", this);
|
||||
this._mmg.addMessageListener("PDFJS:Parent:updateControlState", this);
|
||||
|
||||
// observer to handle shutdown
|
||||
Services.obs.addObserver(this, 'quit-application', false);
|
||||
Services.obs.addObserver(this, "quit-application", false);
|
||||
}
|
||||
},
|
||||
|
||||
uninit() {
|
||||
if (this._ppmm) {
|
||||
this._ppmm.removeMessageListener('PDFJS:Parent:clearUserPref', this);
|
||||
this._ppmm.removeMessageListener('PDFJS:Parent:setIntPref', this);
|
||||
this._ppmm.removeMessageListener('PDFJS:Parent:setBoolPref', this);
|
||||
this._ppmm.removeMessageListener('PDFJS:Parent:setCharPref', this);
|
||||
this._ppmm.removeMessageListener('PDFJS:Parent:setStringPref', this);
|
||||
this._ppmm.removeMessageListener('PDFJS:Parent:isDefaultHandlerApp',
|
||||
this._ppmm.removeMessageListener("PDFJS:Parent:clearUserPref", this);
|
||||
this._ppmm.removeMessageListener("PDFJS:Parent:setIntPref", this);
|
||||
this._ppmm.removeMessageListener("PDFJS:Parent:setBoolPref", this);
|
||||
this._ppmm.removeMessageListener("PDFJS:Parent:setCharPref", this);
|
||||
this._ppmm.removeMessageListener("PDFJS:Parent:setStringPref", this);
|
||||
this._ppmm.removeMessageListener("PDFJS:Parent:isDefaultHandlerApp",
|
||||
this);
|
||||
|
||||
this._mmg.removeMessageListener('PDFJS:Parent:displayWarning', this);
|
||||
this._mmg.removeMessageListener("PDFJS:Parent:displayWarning", this);
|
||||
|
||||
this._mmg.removeMessageListener('PDFJS:Parent:addEventListener', this);
|
||||
this._mmg.removeMessageListener('PDFJS:Parent:removeEventListener', this);
|
||||
this._mmg.removeMessageListener('PDFJS:Parent:updateControlState', this);
|
||||
this._mmg.removeMessageListener("PDFJS:Parent:addEventListener", this);
|
||||
this._mmg.removeMessageListener("PDFJS:Parent:removeEventListener", this);
|
||||
this._mmg.removeMessageListener("PDFJS:Parent:updateControlState", this);
|
||||
|
||||
Services.obs.removeObserver(this, 'quit-application');
|
||||
Services.obs.removeObserver(this, "quit-application");
|
||||
|
||||
this._mmg = null;
|
||||
this._ppmm = null;
|
||||
@ -131,7 +131,7 @@ var PdfjsChromeUtils = {
|
||||
// manager, which means this is going to fire to every child process
|
||||
// we have open. Unfortunately I can't find a way to get at that
|
||||
// process specific mm from js.
|
||||
this._ppmm.broadcastAsyncMessage('PDFJS:Child:refreshSettings', {});
|
||||
this._ppmm.broadcastAsyncMessage("PDFJS:Child:refreshSettings", {});
|
||||
}
|
||||
},
|
||||
|
||||
@ -140,42 +140,42 @@ var PdfjsChromeUtils = {
|
||||
*/
|
||||
|
||||
observe(aSubject, aTopic, aData) {
|
||||
if (aTopic === 'quit-application') {
|
||||
if (aTopic === "quit-application") {
|
||||
this.uninit();
|
||||
}
|
||||
},
|
||||
|
||||
receiveMessage(aMsg) {
|
||||
switch (aMsg.name) {
|
||||
case 'PDFJS:Parent:clearUserPref':
|
||||
case "PDFJS:Parent:clearUserPref":
|
||||
this._clearUserPref(aMsg.data.name);
|
||||
break;
|
||||
case 'PDFJS:Parent:setIntPref':
|
||||
case "PDFJS:Parent:setIntPref":
|
||||
this._setIntPref(aMsg.data.name, aMsg.data.value);
|
||||
break;
|
||||
case 'PDFJS:Parent:setBoolPref':
|
||||
case "PDFJS:Parent:setBoolPref":
|
||||
this._setBoolPref(aMsg.data.name, aMsg.data.value);
|
||||
break;
|
||||
case 'PDFJS:Parent:setCharPref':
|
||||
case "PDFJS:Parent:setCharPref":
|
||||
this._setCharPref(aMsg.data.name, aMsg.data.value);
|
||||
break;
|
||||
case 'PDFJS:Parent:setStringPref':
|
||||
case "PDFJS:Parent:setStringPref":
|
||||
this._setStringPref(aMsg.data.name, aMsg.data.value);
|
||||
break;
|
||||
case 'PDFJS:Parent:isDefaultHandlerApp':
|
||||
case "PDFJS:Parent:isDefaultHandlerApp":
|
||||
return this.isDefaultHandlerApp();
|
||||
case 'PDFJS:Parent:displayWarning':
|
||||
case "PDFJS:Parent:displayWarning":
|
||||
this._displayWarning(aMsg);
|
||||
break;
|
||||
|
||||
|
||||
case 'PDFJS:Parent:updateControlState':
|
||||
case "PDFJS:Parent:updateControlState":
|
||||
return this._updateControlState(aMsg);
|
||||
case 'PDFJS:Parent:addEventListener':
|
||||
case "PDFJS:Parent:addEventListener":
|
||||
return this._addEventListener(aMsg);
|
||||
case 'PDFJS:Parent:removeEventListener':
|
||||
case "PDFJS:Parent:removeEventListener":
|
||||
return this._removeEventListener(aMsg);
|
||||
}
|
||||
return undefined;
|
||||
},
|
||||
|
||||
/*
|
||||
@ -208,25 +208,25 @@ var PdfjsChromeUtils = {
|
||||
|
||||
let browser = aEvent.currentTarget.browser;
|
||||
if (!this._browsers.has(browser)) {
|
||||
throw new Error('FindEventManager was not bound ' +
|
||||
'for the current browser.');
|
||||
throw new Error("FindEventManager was not bound " +
|
||||
"for the current browser.");
|
||||
}
|
||||
// Only forward the events if the current browser is a registered browser.
|
||||
let mm = browser.messageManager;
|
||||
mm.sendAsyncMessage('PDFJS:Child:handleEvent', { type, detail, });
|
||||
mm.sendAsyncMessage("PDFJS:Child:handleEvent", { type, detail, });
|
||||
aEvent.preventDefault();
|
||||
},
|
||||
|
||||
_types: ['find',
|
||||
'findagain',
|
||||
'findhighlightallchange',
|
||||
'findcasesensitivitychange'],
|
||||
_types: ["find",
|
||||
"findagain",
|
||||
"findhighlightallchange",
|
||||
"findcasesensitivitychange"],
|
||||
|
||||
_addEventListener(aMsg) {
|
||||
let browser = aMsg.target;
|
||||
if (this._browsers.has(browser)) {
|
||||
throw new Error('FindEventManager was bound 2nd time ' +
|
||||
'without unbinding it first.');
|
||||
throw new Error("FindEventManager was bound 2nd time " +
|
||||
"without unbinding it first.");
|
||||
}
|
||||
|
||||
// Since this jsm is global, we need to store all the browsers
|
||||
@ -244,7 +244,7 @@ var PdfjsChromeUtils = {
|
||||
_removeEventListener(aMsg) {
|
||||
let browser = aMsg.target;
|
||||
if (!this._browsers.has(browser)) {
|
||||
throw new Error('FindEventManager was unbound without binding it first.');
|
||||
throw new Error("FindEventManager was unbound without binding it first.");
|
||||
}
|
||||
|
||||
this._browsers.delete(browser);
|
||||
@ -258,11 +258,11 @@ var PdfjsChromeUtils = {
|
||||
},
|
||||
|
||||
_ensurePreferenceAllowed(aPrefName) {
|
||||
let unPrefixedName = aPrefName.split(PREF_PREFIX + '.');
|
||||
if (unPrefixedName[0] !== '' ||
|
||||
let unPrefixedName = aPrefName.split(PREF_PREFIX + ".");
|
||||
if (unPrefixedName[0] !== "" ||
|
||||
this._allowedPrefNames.indexOf(unPrefixedName[1]) === -1) {
|
||||
let msg = '"' + aPrefName + '" ' +
|
||||
'can\'t be accessed from content. See PdfjsChromeUtils.';
|
||||
let msg = "\"" + aPrefName + "\" " +
|
||||
"can't be accessed from content. See PdfjsChromeUtils.";
|
||||
throw new Error(msg);
|
||||
}
|
||||
},
|
||||
@ -289,7 +289,7 @@ var PdfjsChromeUtils = {
|
||||
|
||||
_setStringPref(aPrefName, aPrefValue) {
|
||||
this._ensurePreferenceAllowed(aPrefName);
|
||||
let str = Cc['@mozilla.org/supports-string;1']
|
||||
let str = Cc["@mozilla.org/supports-string;1"]
|
||||
.createInstance(Ci.nsISupportsString);
|
||||
str.data = aPrefValue;
|
||||
Services.prefs.setComplexValue(aPrefName, Ci.nsISupportsString, str);
|
||||
@ -301,7 +301,7 @@ var PdfjsChromeUtils = {
|
||||
* parent.
|
||||
*/
|
||||
isDefaultHandlerApp() {
|
||||
var handlerInfo = Svc.mime.getFromTypeAndExtension(PDF_CONTENT_TYPE, 'pdf');
|
||||
var handlerInfo = Svc.mime.getFromTypeAndExtension(PDF_CONTENT_TYPE, "pdf");
|
||||
return (!handlerInfo.alwaysAskBeforeHandling &&
|
||||
handlerInfo.preferredAction === Ci.nsIHandlerInfo.handleInternally);
|
||||
},
|
||||
@ -323,7 +323,7 @@ var PdfjsChromeUtils = {
|
||||
let messageSent = false;
|
||||
function sendMessage(download) {
|
||||
let mm = browser.messageManager;
|
||||
mm.sendAsyncMessage('PDFJS:Child:fallbackDownload', { download, });
|
||||
mm.sendAsyncMessage("PDFJS:Child:fallbackDownload", { download, });
|
||||
}
|
||||
let buttons = [{
|
||||
label: data.label,
|
||||
@ -333,13 +333,13 @@ var PdfjsChromeUtils = {
|
||||
sendMessage(true);
|
||||
}
|
||||
}];
|
||||
notificationBox.appendNotification(data.message, 'pdfjs-fallback', null,
|
||||
notificationBox.appendNotification(data.message, "pdfjs-fallback", null,
|
||||
notificationBox.PRIORITY_INFO_LOW,
|
||||
buttons,
|
||||
function eventsCallback(eventType) {
|
||||
// Currently there is only one event "removed" but if there are any other
|
||||
// added in the future we still only care about removed at the moment.
|
||||
if (eventType !== 'removed') {
|
||||
if (eventType !== "removed") {
|
||||
return;
|
||||
}
|
||||
// Don't send a response again if we already responded when the button was
|
||||
|
@ -14,17 +14,17 @@
|
||||
*/
|
||||
/* globals Components, Services, XPCOMUtils */
|
||||
|
||||
'use strict';
|
||||
"use strict";
|
||||
|
||||
var EXPORTED_SYMBOLS = ['PdfjsContentUtils'];
|
||||
var EXPORTED_SYMBOLS = ["PdfjsContentUtils"];
|
||||
|
||||
const Cc = Components.classes;
|
||||
const Ci = Components.interfaces;
|
||||
const Cr = Components.results;
|
||||
const Cu = Components.utils;
|
||||
|
||||
Cu.import('resource://gre/modules/XPCOMUtils.jsm');
|
||||
Cu.import('resource://gre/modules/Services.jsm');
|
||||
Cu.import("resource://gre/modules/XPCOMUtils.jsm");
|
||||
Cu.import("resource://gre/modules/Services.jsm");
|
||||
|
||||
var PdfjsContentUtils = {
|
||||
_mm: null,
|
||||
@ -42,17 +42,17 @@ var PdfjsContentUtils = {
|
||||
// child *process* mm, or when loaded into the parent for in-content
|
||||
// support the psuedo child process mm 'child PPMM'.
|
||||
if (!this._mm) {
|
||||
this._mm = Cc['@mozilla.org/childprocessmessagemanager;1'].
|
||||
this._mm = Cc["@mozilla.org/childprocessmessagemanager;1"].
|
||||
getService(Ci.nsISyncMessageSender);
|
||||
this._mm.addMessageListener('PDFJS:Child:refreshSettings', this);
|
||||
Services.obs.addObserver(this, 'quit-application', false);
|
||||
this._mm.addMessageListener("PDFJS:Child:refreshSettings", this);
|
||||
Services.obs.addObserver(this, "quit-application", false);
|
||||
}
|
||||
},
|
||||
|
||||
uninit() {
|
||||
if (this._mm) {
|
||||
this._mm.removeMessageListener('PDFJS:Child:refreshSettings', this);
|
||||
Services.obs.removeObserver(this, 'quit-application');
|
||||
this._mm.removeMessageListener("PDFJS:Child:refreshSettings", this);
|
||||
Services.obs.removeObserver(this, "quit-application");
|
||||
}
|
||||
this._mm = null;
|
||||
},
|
||||
@ -64,34 +64,34 @@ var PdfjsContentUtils = {
|
||||
*/
|
||||
|
||||
clearUserPref(aPrefName) {
|
||||
this._mm.sendSyncMessage('PDFJS:Parent:clearUserPref', {
|
||||
this._mm.sendSyncMessage("PDFJS:Parent:clearUserPref", {
|
||||
name: aPrefName
|
||||
});
|
||||
},
|
||||
|
||||
setIntPref(aPrefName, aPrefValue) {
|
||||
this._mm.sendSyncMessage('PDFJS:Parent:setIntPref', {
|
||||
this._mm.sendSyncMessage("PDFJS:Parent:setIntPref", {
|
||||
name: aPrefName,
|
||||
value: aPrefValue
|
||||
});
|
||||
},
|
||||
|
||||
setBoolPref(aPrefName, aPrefValue) {
|
||||
this._mm.sendSyncMessage('PDFJS:Parent:setBoolPref', {
|
||||
this._mm.sendSyncMessage("PDFJS:Parent:setBoolPref", {
|
||||
name: aPrefName,
|
||||
value: aPrefValue
|
||||
});
|
||||
},
|
||||
|
||||
setCharPref(aPrefName, aPrefValue) {
|
||||
this._mm.sendSyncMessage('PDFJS:Parent:setCharPref', {
|
||||
this._mm.sendSyncMessage("PDFJS:Parent:setCharPref", {
|
||||
name: aPrefName,
|
||||
value: aPrefValue
|
||||
});
|
||||
},
|
||||
|
||||
setStringPref(aPrefName, aPrefValue) {
|
||||
this._mm.sendSyncMessage('PDFJS:Parent:setStringPref', {
|
||||
this._mm.sendSyncMessage("PDFJS:Parent:setStringPref", {
|
||||
name: aPrefName,
|
||||
value: aPrefValue
|
||||
});
|
||||
@ -102,7 +102,7 @@ var PdfjsContentUtils = {
|
||||
* handler app settings only available in the parent process.
|
||||
*/
|
||||
isDefaultHandlerApp() {
|
||||
return this._mm.sendSyncMessage('PDFJS:Parent:isDefaultHandlerApp')[0];
|
||||
return this._mm.sendSyncMessage("PDFJS:Parent:isDefaultHandlerApp")[0];
|
||||
},
|
||||
|
||||
/*
|
||||
@ -115,7 +115,7 @@ var PdfjsContentUtils = {
|
||||
.getInterface(Ci.nsIDocShell)
|
||||
.QueryInterface(Ci.nsIInterfaceRequestor)
|
||||
.getInterface(Ci.nsIContentFrameMessageManager);
|
||||
winmm.sendAsyncMessage('PDFJS:Parent:displayWarning', {
|
||||
winmm.sendAsyncMessage("PDFJS:Parent:displayWarning", {
|
||||
message: aMessage,
|
||||
label: aLabel,
|
||||
accessKey: aAccessKey,
|
||||
@ -127,18 +127,18 @@ var PdfjsContentUtils = {
|
||||
*/
|
||||
|
||||
observe(aSubject, aTopic, aData) {
|
||||
if (aTopic === 'quit-application') {
|
||||
if (aTopic === "quit-application") {
|
||||
this.uninit();
|
||||
}
|
||||
},
|
||||
|
||||
receiveMessage(aMsg) {
|
||||
switch (aMsg.name) {
|
||||
case 'PDFJS:Child:refreshSettings':
|
||||
case "PDFJS:Child:refreshSettings":
|
||||
// Only react to this if we are remote.
|
||||
if (Services.appinfo.processType ===
|
||||
Services.appinfo.PROCESS_TYPE_CONTENT) {
|
||||
let jsm = 'resource://pdf.js/PdfJs.jsm';
|
||||
let jsm = "resource://pdf.js/PdfJs.jsm";
|
||||
let pdfjs = Components.utils.import(jsm, {}).PdfJs;
|
||||
pdfjs.updateRegistration();
|
||||
}
|
||||
|
@ -23,8 +23,8 @@
|
||||
}
|
||||
}(this, function (exports) {
|
||||
'use strict';
|
||||
var pdfjsVersion = '1.7.227';
|
||||
var pdfjsBuild = 'e132fa97';
|
||||
var pdfjsVersion = '1.7.235';
|
||||
var pdfjsBuild = '3f320f0b';
|
||||
var pdfjsFilePath = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : null;
|
||||
var pdfjsLibs = {};
|
||||
(function pdfjsWrapper() {
|
||||
@ -1620,7 +1620,7 @@
|
||||
clear: function fontLoaderClear() {
|
||||
var styleElement = this.styleElement;
|
||||
if (styleElement) {
|
||||
styleElement.remove();
|
||||
styleElement.parentNode.removeChild(styleElement);
|
||||
styleElement = this.styleElement = null;
|
||||
}
|
||||
}
|
||||
@ -4693,13 +4693,7 @@
|
||||
needRestore = true;
|
||||
}
|
||||
if (this.pendingEOFill) {
|
||||
if (ctx.mozFillRule !== undefined) {
|
||||
ctx.mozFillRule = 'evenodd';
|
||||
ctx.fill();
|
||||
ctx.mozFillRule = 'nonzero';
|
||||
} else {
|
||||
ctx.fill('evenodd');
|
||||
}
|
||||
ctx.fill('evenodd');
|
||||
this.pendingEOFill = false;
|
||||
} else {
|
||||
ctx.fill();
|
||||
@ -5531,13 +5525,7 @@
|
||||
var ctx = this.ctx;
|
||||
if (this.pendingClip) {
|
||||
if (this.pendingClip === EO_CLIP) {
|
||||
if (ctx.mozFillRule !== undefined) {
|
||||
ctx.mozFillRule = 'evenodd';
|
||||
ctx.clip();
|
||||
ctx.mozFillRule = 'nonzero';
|
||||
} else {
|
||||
ctx.clip('evenodd');
|
||||
}
|
||||
ctx.clip('evenodd');
|
||||
} else {
|
||||
ctx.clip();
|
||||
}
|
||||
|
4432
browser/extensions/pdfjs/content/build/pdf.worker.js
vendored
4432
browser/extensions/pdfjs/content/build/pdf.worker.js
vendored
File diff suppressed because it is too large
Load Diff
@ -14,16 +14,16 @@
|
||||
*/
|
||||
/* globals Components, PdfjsContentUtils, PdfJs, Services */
|
||||
|
||||
'use strict';
|
||||
"use strict";
|
||||
|
||||
/*
|
||||
* pdfjschildbootstrap.js loads into the content process to take care of
|
||||
* initializing our built-in version of pdfjs when running remote.
|
||||
*/
|
||||
|
||||
Components.utils.import('resource://gre/modules/Services.jsm');
|
||||
Components.utils.import('resource://pdf.js/PdfJs.jsm');
|
||||
Components.utils.import('resource://pdf.js/PdfjsContentUtils.jsm');
|
||||
Components.utils.import("resource://gre/modules/Services.jsm");
|
||||
Components.utils.import("resource://pdf.js/PdfJs.jsm");
|
||||
Components.utils.import("resource://pdf.js/PdfjsContentUtils.jsm");
|
||||
|
||||
// init content utils shim pdfjs will use to access privileged apis.
|
||||
PdfjsContentUtils.init();
|
||||
|
@ -1,17 +1,17 @@
|
||||
'use strict';
|
||||
"use strict";
|
||||
|
||||
// Small subset of the webL10n API by Fabien Cazenave for pdf.js extension.
|
||||
(function(window) {
|
||||
var gLanguage = '';
|
||||
var gLanguage = "";
|
||||
var gExternalLocalizerServices = null;
|
||||
var gReadyState = 'loading';
|
||||
var gReadyState = "loading";
|
||||
|
||||
// fetch an l10n objects
|
||||
function getL10nData(key) {
|
||||
var response = gExternalLocalizerServices.getStrings(key);
|
||||
var data = JSON.parse(response);
|
||||
if (!data) {
|
||||
console.warn('[l10n] #' + key + ' missing for [' + gLanguage + ']');
|
||||
console.warn("[l10n] #" + key + " missing for [" + gLanguage + "]");
|
||||
}
|
||||
return data;
|
||||
}
|
||||
@ -22,25 +22,25 @@
|
||||
return text;
|
||||
}
|
||||
return text.replace(/\{\{\s*(\w+)\s*\}\}/g, function(all, name) {
|
||||
return (name in args ? args[name] : '{{' + name + '}}');
|
||||
return (name in args ? args[name] : "{{" + name + "}}");
|
||||
});
|
||||
}
|
||||
|
||||
// translate a string
|
||||
function translateString(key, args, fallback) {
|
||||
var i = key.lastIndexOf('.');
|
||||
var i = key.lastIndexOf(".");
|
||||
var name, property;
|
||||
if (i >= 0) {
|
||||
name = key.substring(0, i);
|
||||
property = key.substring(i + 1);
|
||||
} else {
|
||||
name = key;
|
||||
property = 'textContent';
|
||||
property = "textContent";
|
||||
}
|
||||
var data = getL10nData(name);
|
||||
var value = (data && data[property]) || fallback;
|
||||
if (!value) {
|
||||
return '{{' + key + '}}';
|
||||
return "{{" + key + "}}";
|
||||
}
|
||||
return substArguments(value, args);
|
||||
}
|
||||
@ -65,7 +65,7 @@
|
||||
try {
|
||||
args = JSON.parse(element.dataset.l10nArgs);
|
||||
} catch (e) {
|
||||
console.warn('[l10n] could not parse arguments for #' + key + '');
|
||||
console.warn("[l10n] could not parse arguments for #" + key + "");
|
||||
}
|
||||
}
|
||||
|
||||
@ -79,10 +79,10 @@
|
||||
|
||||
// translate an HTML subtree
|
||||
function translateFragment(element) {
|
||||
element = element || document.querySelector('html');
|
||||
element = element || document.querySelector("html");
|
||||
|
||||
// check all translatable children (= w/ a `data-l10n-id' attribute)
|
||||
var children = element.querySelectorAll('*[data-l10n-id]');
|
||||
var children = element.querySelectorAll("*[data-l10n-id]");
|
||||
var elementCount = children.length;
|
||||
for (var i = 0; i < elementCount; i++) {
|
||||
translateElement(children[i]);
|
||||
@ -99,16 +99,16 @@
|
||||
|
||||
translateFragment();
|
||||
|
||||
gReadyState = 'complete';
|
||||
gReadyState = "complete";
|
||||
|
||||
// fire a 'localized' DOM event
|
||||
var evtObject = document.createEvent('Event');
|
||||
evtObject.initEvent('localized', false, false);
|
||||
var evtObject = document.createEvent("Event");
|
||||
evtObject.initEvent("localized", false, false);
|
||||
evtObject.language = gLanguage;
|
||||
window.dispatchEvent(evtObject);
|
||||
}
|
||||
|
||||
window.addEventListener('DOMContentLoaded', function() {
|
||||
window.addEventListener("DOMContentLoaded", function() {
|
||||
if (gExternalLocalizerServices) {
|
||||
translateDocument();
|
||||
}
|
||||
@ -129,12 +129,12 @@
|
||||
getDirection() {
|
||||
// http://www.w3.org/International/questions/qa-scripts
|
||||
// Arabic, Hebrew, Farsi, Pashto, Urdu
|
||||
var rtlList = ['ar', 'he', 'fa', 'ps', 'ur'];
|
||||
var rtlList = ["ar", "he", "fa", "ps", "ur"];
|
||||
|
||||
// use the short language code for "full" codes like 'ar-sa' (issue 5440)
|
||||
var shortCode = gLanguage.split('-')[0];
|
||||
var shortCode = gLanguage.split("-")[0];
|
||||
|
||||
return (rtlList.indexOf(shortCode) >= 0) ? 'rtl' : 'ltr';
|
||||
return (rtlList.indexOf(shortCode) >= 0) ? "rtl" : "ltr";
|
||||
},
|
||||
|
||||
getReadyState() {
|
||||
@ -145,8 +145,8 @@
|
||||
gExternalLocalizerServices = externalLocalizerServices;
|
||||
|
||||
// ... in case if we missed DOMContentLoaded above.
|
||||
if (window.document.readyState === 'interactive' ||
|
||||
window.document.readyState === 'complete') {
|
||||
if (window.document.readyState === "interactive" ||
|
||||
window.document.readyState === "complete") {
|
||||
translateDocument();
|
||||
}
|
||||
},
|
||||
|
@ -125,7 +125,7 @@ var pdfjsWebLibs;
|
||||
this.document.removeEventListener('mousemove', this._onmousemove, true);
|
||||
this.document.removeEventListener('mouseup', this._endPan, true);
|
||||
if (this.overlay.parentNode) {
|
||||
this.overlay.remove();
|
||||
this.overlay.parentNode.removeChild(this.overlay);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
@ -73,9 +73,9 @@ this.shutdown = function(data, reason) {
|
||||
}
|
||||
|
||||
const modules = [
|
||||
"data/EventEmitter.js",
|
||||
"lib/CleanupManager.jsm",
|
||||
"lib/EnvExpressions.jsm",
|
||||
"lib/EventEmitter.jsm",
|
||||
"lib/Heartbeat.jsm",
|
||||
"lib/LogManager.jsm",
|
||||
"lib/NormandyApi.jsm",
|
||||
|
@ -1,34 +1,39 @@
|
||||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
// This file is meant to run inside action sandboxes
|
||||
|
||||
"use strict";
|
||||
|
||||
const {utils: Cu} = Components;
|
||||
Cu.import("resource://shield-recipe-client/lib/LogManager.jsm");
|
||||
|
||||
this.EventEmitter = function(driver) {
|
||||
if (!driver) {
|
||||
throw new Error("driver must be provided");
|
||||
}
|
||||
this.EXPORTED_SYMBOLS = ["EventEmitter"];
|
||||
|
||||
const log = LogManager.getLogger("event-emitter");
|
||||
|
||||
this.EventEmitter = function(sandboxManager) {
|
||||
const listeners = {};
|
||||
|
||||
return {
|
||||
createSandboxedEmitter() {
|
||||
return sandboxManager.cloneInto({
|
||||
on: this.on.bind(this),
|
||||
off: this.off.bind(this),
|
||||
once: this.once.bind(this),
|
||||
}, {cloneFunctions: true});
|
||||
},
|
||||
|
||||
emit(eventName, event) {
|
||||
// Fire events async
|
||||
Promise.resolve()
|
||||
.then(() => {
|
||||
if (!(eventName in listeners)) {
|
||||
driver.log(`EventEmitter: Event fired with no listeners: ${eventName}`);
|
||||
log.info(`EventEmitter: Event fired with no listeners: ${eventName}`);
|
||||
return;
|
||||
}
|
||||
// freeze event to prevent handlers from modifying it
|
||||
const frozenEvent = Object.freeze(event);
|
||||
// Clone callbacks array to avoid problems with mutation while iterating
|
||||
const callbacks = Array.from(listeners[eventName]);
|
||||
for (const cb of callbacks) {
|
||||
cb(frozenEvent);
|
||||
cb(sandboxManager.cloneInto(event));
|
||||
}
|
||||
});
|
||||
},
|
@ -10,6 +10,7 @@ Cu.import("resource://gre/modules/Preferences.jsm");
|
||||
Cu.import("resource://gre/modules/TelemetryController.jsm");
|
||||
Cu.import("resource://gre/modules/Timer.jsm"); /* globals setTimeout, clearTimeout */
|
||||
Cu.import("resource://shield-recipe-client/lib/CleanupManager.jsm");
|
||||
Cu.import("resource://shield-recipe-client/lib/EventEmitter.jsm");
|
||||
Cu.import("resource://shield-recipe-client/lib/LogManager.jsm");
|
||||
|
||||
Cu.importGlobalProperties(["URL"]); /* globals URL */
|
||||
@ -25,8 +26,6 @@ const NOTIFICATION_TIME = 3000;
|
||||
*
|
||||
* @param chromeWindow
|
||||
* The chrome window that the heartbeat notification is displayed in.
|
||||
* @param eventEmitter
|
||||
* An EventEmitter instance to report status to.
|
||||
* @param sandboxManager
|
||||
* The manager for the sandbox this was called from. Heartbeat will
|
||||
* increment the hold counter on the manager.
|
||||
@ -56,7 +55,7 @@ const NOTIFICATION_TIME = 3000;
|
||||
* The url to visit after the user answers the question.
|
||||
*/
|
||||
this.Heartbeat = class {
|
||||
constructor(chromeWindow, eventEmitter, sandboxManager, options) {
|
||||
constructor(chromeWindow, sandboxManager, options) {
|
||||
if (typeof options.flowId !== "string") {
|
||||
throw new Error("flowId must be a string");
|
||||
}
|
||||
@ -92,7 +91,7 @@ this.Heartbeat = class {
|
||||
}
|
||||
|
||||
this.chromeWindow = chromeWindow;
|
||||
this.eventEmitter = eventEmitter;
|
||||
this.eventEmitter = new EventEmitter(sandboxManager);
|
||||
this.sandboxManager = sandboxManager;
|
||||
this.options = options;
|
||||
this.surveyResults = {};
|
||||
@ -261,7 +260,7 @@ this.Heartbeat = class {
|
||||
|
||||
data.timestamp = timestamp;
|
||||
data.flowId = this.options.flowId;
|
||||
this.eventEmitter.emit(name, Cu.cloneInto(data, this.sandboxManager.sandbox));
|
||||
this.eventEmitter.emit(name, data);
|
||||
|
||||
if (sendPing) {
|
||||
// Send the ping to Telemetry
|
||||
@ -279,7 +278,7 @@ this.Heartbeat = class {
|
||||
});
|
||||
|
||||
// only for testing
|
||||
this.eventEmitter.emit("TelemetrySent", Cu.cloneInto(payload, this.sandboxManager.sandbox));
|
||||
this.eventEmitter.emit("TelemetrySent", payload);
|
||||
|
||||
// Survey is complete, clear out the expiry timer & survey configuration
|
||||
this.endTimerIfPresent("surveyEndTimer");
|
||||
|
@ -59,11 +59,9 @@ this.NormandyDriver = function(sandboxManager, extraContext = {}) {
|
||||
return sandbox.Promise.reject(new sandbox.Error("No window to show heartbeat in"));
|
||||
}
|
||||
|
||||
const sandboxedDriver = Cu.cloneInto(this, sandbox, {cloneFunctions: true});
|
||||
const ee = new sandbox.EventEmitter(sandboxedDriver).wrappedJSObject;
|
||||
const internalOptions = Object.assign({}, options, {testing: this.testing});
|
||||
new Heartbeat(aWindow, ee, sandboxManager, internalOptions);
|
||||
return sandbox.Promise.resolve(ee);
|
||||
const heartbeat = new Heartbeat(aWindow, sandboxManager, internalOptions);
|
||||
return sandbox.Promise.resolve(heartbeat.eventEmitter.createSandboxedEmitter());
|
||||
},
|
||||
|
||||
saveHeartbeatFlow() {
|
||||
@ -92,7 +90,11 @@ this.NormandyDriver = function(sandboxManager, extraContext = {}) {
|
||||
|
||||
const pluginsPromise = new Promise(resolve => {
|
||||
AddonManager.getAddonsByTypes(["plugin"], plugins => {
|
||||
plugins.forEach(plugin => appinfo.plugins[plugin.name] = plugin);
|
||||
plugins.forEach(plugin => appinfo.plugins[plugin.name] = {
|
||||
name: plugin.name,
|
||||
description: plugin.description,
|
||||
version: plugin.version,
|
||||
});
|
||||
resolve();
|
||||
});
|
||||
});
|
||||
|
@ -145,7 +145,6 @@ this.RecipeRunner = {
|
||||
executeAction(recipe, extraContext, actionScript) {
|
||||
return new Promise((resolve, reject) => {
|
||||
const sandboxManager = new SandboxManager();
|
||||
const {sandbox} = sandboxManager;
|
||||
const prepScript = `
|
||||
function registerAction(name, Action) {
|
||||
let a = new Action(sandboxedDriver, sandboxedRecipe);
|
||||
@ -161,17 +160,17 @@ this.RecipeRunner = {
|
||||
`;
|
||||
|
||||
const driver = new NormandyDriver(sandboxManager, extraContext);
|
||||
sandbox.sandboxedDriver = Cu.cloneInto(driver, sandbox, {cloneFunctions: true});
|
||||
sandbox.sandboxedRecipe = Cu.cloneInto(recipe, sandbox);
|
||||
sandboxManager.cloneIntoGlobal("sandboxedDriver", driver, {cloneFunctions: true});
|
||||
sandboxManager.cloneIntoGlobal("sandboxedRecipe", recipe);
|
||||
|
||||
// Results are cloned so that they don't become inaccessible when
|
||||
// the sandbox they came from is nuked when the hold is removed.
|
||||
sandbox.actionFinished = result => {
|
||||
sandboxManager.addGlobal("actionFinished", result => {
|
||||
const clonedResult = Cu.cloneInto(result, {});
|
||||
sandboxManager.removeHold("recipeExecution");
|
||||
resolve(clonedResult);
|
||||
};
|
||||
sandbox.actionFailed = err => {
|
||||
});
|
||||
sandboxManager.addGlobal("actionFailed", err => {
|
||||
Cu.reportError(err);
|
||||
|
||||
// Error objects can't be cloned, so we just copy the message
|
||||
@ -179,11 +178,11 @@ this.RecipeRunner = {
|
||||
const message = err.message;
|
||||
sandboxManager.removeHold("recipeExecution");
|
||||
reject(new Error(message));
|
||||
};
|
||||
});
|
||||
|
||||
sandboxManager.addHold("recipeExecution");
|
||||
Cu.evalInSandbox(prepScript, sandbox);
|
||||
Cu.evalInSandbox(actionScript, sandbox);
|
||||
sandboxManager.evalInSandbox(prepScript);
|
||||
sandboxManager.evalInSandbox(actionScript);
|
||||
});
|
||||
},
|
||||
};
|
||||
|
@ -29,6 +29,24 @@ this.SandboxManager = class {
|
||||
this.tryCleanup();
|
||||
}
|
||||
|
||||
cloneInto(value, options = {}) {
|
||||
return Cu.cloneInto(value, this.sandbox, options);
|
||||
}
|
||||
|
||||
cloneIntoGlobal(name, value, options = {}) {
|
||||
const clonedValue = Cu.cloneInto(value, this.sandbox, options);
|
||||
this.addGlobal(name, clonedValue);
|
||||
return clonedValue;
|
||||
}
|
||||
|
||||
addGlobal(name, value) {
|
||||
this.sandbox[name] = value;
|
||||
}
|
||||
|
||||
evalInSandbox(script) {
|
||||
return Cu.evalInSandbox(script, this.sandbox);
|
||||
}
|
||||
|
||||
tryCleanup() {
|
||||
if (this.holds.length === 0) {
|
||||
const sandbox = this._sandbox;
|
||||
@ -56,8 +74,5 @@ function makeSandbox() {
|
||||
wantGlobalProperties: ["URL", "URLSearchParams"],
|
||||
});
|
||||
|
||||
const url = "resource://shield-recipe-client/data/EventEmitter.js";
|
||||
Services.scriptloader.loadSubScript(url, sandbox);
|
||||
|
||||
return sandbox;
|
||||
}
|
||||
|
@ -10,6 +10,7 @@ module.exports = {
|
||||
ok: false,
|
||||
SpecialPowers: false,
|
||||
SimpleTest: false,
|
||||
registerCleanupFunction: false,
|
||||
},
|
||||
rules: {
|
||||
"spaced-comment": 2,
|
||||
|
@ -1,16 +1,8 @@
|
||||
"use strict";
|
||||
|
||||
const {utils: Cu} = Components;
|
||||
Cu.import("resource://gre/modules/Log.jsm", this);
|
||||
Cu.import("resource://shield-recipe-client/lib/NormandyDriver.jsm", this);
|
||||
Cu.import("resource://shield-recipe-client/lib/SandboxManager.jsm", this);
|
||||
|
||||
const sandboxManager = new SandboxManager();
|
||||
sandboxManager.addHold("test running");
|
||||
const driver = new NormandyDriver(sandboxManager);
|
||||
const sandboxedDriver = Cu.cloneInto(driver, sandboxManager.sandbox, {cloneFunctions: true});
|
||||
const eventEmitter = new sandboxManager.sandbox.EventEmitter(sandboxedDriver).wrappedJSObject;
|
||||
|
||||
Cu.import("resource://shield-recipe-client/test/browser/Utils.jsm", this);
|
||||
Cu.import("resource://shield-recipe-client/lib/EventEmitter.jsm", this);
|
||||
|
||||
const evidence = {
|
||||
a: 0,
|
||||
@ -34,7 +26,9 @@ function listenerC(x = 1) {
|
||||
evidence.log += "c";
|
||||
}
|
||||
|
||||
add_task(function* () {
|
||||
add_task(Utils.withSandboxManager(Assert, function* (sandboxManager) {
|
||||
const eventEmitter = new EventEmitter(sandboxManager);
|
||||
|
||||
// Fire an unrelated event, to make sure nothing goes wrong
|
||||
eventEmitter.on("nothing");
|
||||
|
||||
@ -84,9 +78,50 @@ add_task(function* () {
|
||||
log: "abcaba", // events are in order
|
||||
}, "events fired as expected");
|
||||
|
||||
sandboxManager.removeHold("test running");
|
||||
// Test that mutating the data passed to the event doesn't actually
|
||||
// mutate it for other events.
|
||||
let handlerRunCount = 0;
|
||||
const mutationHandler = data => {
|
||||
handlerRunCount++;
|
||||
data.count++;
|
||||
is(data.count, 1, "Event data is not mutated between handlers.");
|
||||
};
|
||||
eventEmitter.on("mutationTest", mutationHandler);
|
||||
eventEmitter.on("mutationTest", mutationHandler);
|
||||
|
||||
yield sandboxManager.isNuked()
|
||||
.then(() => ok(true, "sandbox is nuked"))
|
||||
.catch(e => ok(false, "sandbox is nuked", e));
|
||||
});
|
||||
const data = {count: 0};
|
||||
eventEmitter.emit("mutationTest", data);
|
||||
yield Promise.resolve();
|
||||
|
||||
is(handlerRunCount, 2, "Mutation handler was executed twice.");
|
||||
is(data.count, 0, "Event data cannot be mutated by handlers.");
|
||||
}));
|
||||
|
||||
add_task(Utils.withSandboxManager(Assert, function* sandboxedEmitter(sandboxManager) {
|
||||
const eventEmitter = new EventEmitter(sandboxManager);
|
||||
|
||||
// Event handlers inside the sandbox should be run in response to
|
||||
// events triggered outside the sandbox.
|
||||
sandboxManager.addGlobal("emitter", eventEmitter.createSandboxedEmitter());
|
||||
sandboxManager.evalInSandbox(`
|
||||
this.eventCounts = {on: 0, once: 0};
|
||||
emitter.on("event", value => {
|
||||
this.eventCounts.on += value;
|
||||
});
|
||||
emitter.once("eventOnce", value => {
|
||||
this.eventCounts.once += value;
|
||||
});
|
||||
`);
|
||||
|
||||
eventEmitter.emit("event", 5);
|
||||
eventEmitter.emit("event", 10);
|
||||
eventEmitter.emit("eventOnce", 5);
|
||||
eventEmitter.emit("eventOnce", 10);
|
||||
yield Promise.resolve();
|
||||
|
||||
const eventCounts = sandboxManager.evalInSandbox("this.eventCounts");
|
||||
Assert.deepEqual(eventCounts, {
|
||||
on: 15,
|
||||
once: 5,
|
||||
}, "Events emitted outside a sandbox trigger handlers within a sandbox.");
|
||||
}));
|
||||
|
@ -5,7 +5,6 @@ const {utils: Cu} = Components;
|
||||
Cu.import("resource://gre/modules/Services.jsm", this);
|
||||
Cu.import("resource://shield-recipe-client/lib/Heartbeat.jsm", this);
|
||||
Cu.import("resource://shield-recipe-client/lib/SandboxManager.jsm", this);
|
||||
Cu.import("resource://shield-recipe-client/lib/NormandyDriver.jsm", this);
|
||||
|
||||
/**
|
||||
* Assert an array is in non-descending order, and that every element is a number
|
||||
@ -54,7 +53,7 @@ function closeAllNotifications(targetWindow, notificationBox) {
|
||||
});
|
||||
}
|
||||
|
||||
/* Check that the correct telmetry was sent */
|
||||
/* Check that the correct telemetry was sent */
|
||||
function assertTelemetrySent(hb, eventNames) {
|
||||
return new Promise(resolve => {
|
||||
hb.eventEmitter.once("TelemetrySent", payload => {
|
||||
@ -73,9 +72,7 @@ function assertTelemetrySent(hb, eventNames) {
|
||||
|
||||
|
||||
const sandboxManager = new SandboxManager();
|
||||
const driver = new NormandyDriver(sandboxManager);
|
||||
sandboxManager.addHold("test running");
|
||||
const sandboxedDriver = Cu.cloneInto(driver, sandboxManager.sandbox, {cloneFunctions: true});
|
||||
|
||||
|
||||
// Several of the behaviors of heartbeat prompt are mutually exclusive, so checks are broken up
|
||||
@ -83,12 +80,11 @@ const sandboxedDriver = Cu.cloneInto(driver, sandboxManager.sandbox, {cloneFunct
|
||||
|
||||
/* Batch #1 - General UI, Stars, and telemetry data */
|
||||
add_task(function* () {
|
||||
const eventEmitter = new sandboxManager.sandbox.EventEmitter(sandboxedDriver).wrappedJSObject;
|
||||
const targetWindow = Services.wm.getMostRecentWindow("navigator:browser");
|
||||
const notificationBox = targetWindow.document.querySelector("#high-priority-global-notificationbox");
|
||||
|
||||
const preCount = notificationBox.childElementCount;
|
||||
const hb = new Heartbeat(targetWindow, eventEmitter, sandboxManager, {
|
||||
const hb = new Heartbeat(targetWindow, sandboxManager, {
|
||||
testing: true,
|
||||
flowId: "test",
|
||||
message: "test",
|
||||
@ -126,10 +122,9 @@ add_task(function* () {
|
||||
|
||||
// Batch #2 - Engagement buttons
|
||||
add_task(function* () {
|
||||
const eventEmitter = new sandboxManager.sandbox.EventEmitter(sandboxedDriver).wrappedJSObject;
|
||||
const targetWindow = Services.wm.getMostRecentWindow("navigator:browser");
|
||||
const notificationBox = targetWindow.document.querySelector("#high-priority-global-notificationbox");
|
||||
const hb = new Heartbeat(targetWindow, eventEmitter, sandboxManager, {
|
||||
const hb = new Heartbeat(targetWindow, sandboxManager, {
|
||||
testing: true,
|
||||
flowId: "test",
|
||||
message: "test",
|
||||
@ -162,10 +157,9 @@ add_task(function* () {
|
||||
|
||||
// Batch 3 - Closing the window while heartbeat is open
|
||||
add_task(function* () {
|
||||
const eventEmitter = new sandboxManager.sandbox.EventEmitter(sandboxedDriver).wrappedJSObject;
|
||||
const targetWindow = yield BrowserTestUtils.openNewBrowserWindow();
|
||||
|
||||
const hb = new Heartbeat(targetWindow, eventEmitter, sandboxManager, {
|
||||
const hb = new Heartbeat(targetWindow, sandboxManager, {
|
||||
testing: true,
|
||||
flowId: "test",
|
||||
message: "test",
|
||||
|
@ -96,8 +96,6 @@ MOZ_PKG_MAC_ICON=branding/disk.icns
|
||||
MOZ_PKG_MAC_EXTRA=--symlink '/Applications:/ '
|
||||
endif
|
||||
|
||||
INSTALL_SDK = 1
|
||||
|
||||
include $(topsrcdir)/toolkit/mozapps/installer/signing.mk
|
||||
include $(topsrcdir)/toolkit/mozapps/installer/packager.mk
|
||||
|
||||
|
@ -179,16 +179,7 @@ class Automation(object):
|
||||
if Automation().IS_WIN32:
|
||||
import platform
|
||||
pid = "%i" % self.pid
|
||||
if platform.release() == "2000":
|
||||
# Windows 2000 needs 'kill.exe' from the
|
||||
#'Windows 2000 Resource Kit tools'. (See bug 475455.)
|
||||
try:
|
||||
subprocess.Popen(["kill", "-f", pid]).wait()
|
||||
except:
|
||||
self.log.info("TEST-UNEXPECTED-FAIL | automation.py | Missing 'kill' utility to kill process with pid=%s. Kill it manually!", pid)
|
||||
else:
|
||||
# Windows XP and later.
|
||||
subprocess.Popen(["taskkill", "/F", "/PID", pid]).wait()
|
||||
subprocess.Popen(["taskkill", "/F", "/PID", pid]).wait()
|
||||
else:
|
||||
os.kill(self.pid, signal.SIGKILL)
|
||||
|
||||
|
@ -297,9 +297,6 @@ needs to be prefixed with ``static:`` in ``USE_LIBS``
|
||||
Miscellaneous
|
||||
=============
|
||||
|
||||
The ``SDK_LIBRARY`` boolean variable defines whether the library in the current
|
||||
directory is going to be installed in the SDK.
|
||||
|
||||
The ``SONAME`` variable declares a "shared object name" for the library. It
|
||||
defaults to the ``Library`` name or the ``SHARED_LIBRARY_NAME`` if set. When
|
||||
linking to a library with a ``SONAME``, the resulting library or program will
|
||||
|
@ -7,7 +7,6 @@ MOZ_AUTOMATION_L10N_CHECK=0
|
||||
if [ "x$IS_NIGHTLY" = "xyes" ]; then
|
||||
# Some nightlies (eg: Mulet) don't want these set.
|
||||
MOZ_AUTOMATION_UPDATE_PACKAGING=${MOZ_AUTOMATION_UPDATE_PACKAGING-1}
|
||||
MOZ_AUTOMATION_SDK=${MOZ_AUTOMATION_SDK-1}
|
||||
fi
|
||||
. "$topsrcdir/build/mozconfig.common"
|
||||
|
||||
|
@ -6,7 +6,6 @@ if [ "x$IS_NIGHTLY" = "xyes" ]; then
|
||||
# Some nightlies (eg: Mulet) don't want these set.
|
||||
MOZ_AUTOMATION_UPLOAD_SYMBOLS=${MOZ_AUTOMATION_UPLOAD_SYMBOLS-1}
|
||||
MOZ_AUTOMATION_UPDATE_PACKAGING=${MOZ_AUTOMATION_UPDATE_PACKAGING-1}
|
||||
MOZ_AUTOMATION_SDK=${MOZ_AUTOMATION_SDK-1}
|
||||
fi
|
||||
. "$topsrcdir/build/mozconfig.common"
|
||||
|
||||
|
@ -34,7 +34,6 @@ tier_MOZ_AUTOMATION_UPDATE_PACKAGING = update-packaging
|
||||
tier_MOZ_AUTOMATION_PRETTY_UPDATE_PACKAGING = pretty-update-packaging
|
||||
tier_MOZ_AUTOMATION_UPLOAD_SYMBOLS = uploadsymbols
|
||||
tier_MOZ_AUTOMATION_UPLOAD = upload
|
||||
tier_MOZ_AUTOMATION_SDK = sdk
|
||||
|
||||
# Automation build steps. Everything in MOZ_AUTOMATION_TIERS also gets used in
|
||||
# TIERS for mach display. As such, the MOZ_AUTOMATION_TIERS are roughly sorted
|
||||
@ -54,7 +53,6 @@ moz_automation_symbols = \
|
||||
MOZ_AUTOMATION_L10N_CHECK \
|
||||
MOZ_AUTOMATION_PRETTY_L10N_CHECK \
|
||||
MOZ_AUTOMATION_UPLOAD \
|
||||
MOZ_AUTOMATION_SDK \
|
||||
$(NULL)
|
||||
MOZ_AUTOMATION_TIERS := $(foreach sym,$(moz_automation_symbols),$(if $(filter 1,$($(sym))),$(tier_$(sym))))
|
||||
|
||||
@ -76,7 +74,6 @@ automation/upload: automation/package
|
||||
automation/upload: automation/package-tests
|
||||
automation/upload: automation/buildsymbols
|
||||
automation/upload: automation/update-packaging
|
||||
automation/upload: automation/sdk
|
||||
|
||||
# buildsymbols will modify our test binaries, which can interfere with
|
||||
# packaging them. A finer-grained dependency can help performance here
|
||||
@ -88,10 +85,9 @@ automation/pretty-package-tests: automation/buildsymbols
|
||||
# binaries/libs, and that's what we package/test.
|
||||
automation/pretty-package: automation/buildsymbols
|
||||
|
||||
# The installer, sdk and packager all run stage-package, and may conflict
|
||||
# The installer and packager all run stage-package, and may conflict
|
||||
# with each other.
|
||||
automation/installer: automation/package
|
||||
automation/sdk: automation/installer automation/package
|
||||
|
||||
# The 'pretty' versions of targets run before the regular ones to avoid
|
||||
# conflicts in writing to the same files.
|
||||
|
@ -17,7 +17,6 @@ mk_add_options "export MOZ_AUTOMATION_INSTALLER=${MOZ_AUTOMATION_INSTALLER-0}"
|
||||
mk_add_options "export MOZ_AUTOMATION_UPDATE_PACKAGING=${MOZ_AUTOMATION_UPDATE_PACKAGING-0}"
|
||||
mk_add_options "export MOZ_AUTOMATION_UPLOAD=${MOZ_AUTOMATION_UPLOAD-1}"
|
||||
mk_add_options "export MOZ_AUTOMATION_UPLOAD_SYMBOLS=${MOZ_AUTOMATION_UPLOAD_SYMBOLS-0}"
|
||||
mk_add_options "export MOZ_AUTOMATION_SDK=${MOZ_AUTOMATION_SDK-0}"
|
||||
|
||||
# If we are also building with MOZ_PKG_PRETTYNAMES, set the corresponding
|
||||
# stages.
|
||||
|
@ -6,7 +6,6 @@ if [ "x$IS_NIGHTLY" = "xyes" ]; then
|
||||
# Some nightlies (eg: Mulet) don't want these set.
|
||||
MOZ_AUTOMATION_UPLOAD_SYMBOLS=${MOZ_AUTOMATION_UPLOAD_SYMBOLS-1}
|
||||
MOZ_AUTOMATION_UPDATE_PACKAGING=${MOZ_AUTOMATION_UPDATE_PACKAGING-1}
|
||||
MOZ_AUTOMATION_SDK=${MOZ_AUTOMATION_SDK-1}
|
||||
fi
|
||||
|
||||
# Some builds (eg: Mulet) don't want the installer, so only set this if it
|
||||
|
@ -13,10 +13,6 @@ if CONFIG['USE_ELF_HACK']:
|
||||
if CONFIG['LLVM_SYMBOLIZER']:
|
||||
FINAL_TARGET_FILES += ['/' + CONFIG['LLVM_SYMBOLIZER']]
|
||||
|
||||
SDK_FILES.bin += [
|
||||
'run-mozilla.sh',
|
||||
]
|
||||
|
||||
FINAL_TARGET_FILES += [
|
||||
'run-mozilla.sh',
|
||||
]
|
||||
|
@ -2,7 +2,6 @@ if [ "x$IS_NIGHTLY" = "xyes" ]; then
|
||||
# Some nightlies (eg: Mulet) don't want these set.
|
||||
MOZ_AUTOMATION_UPLOAD_SYMBOLS=${MOZ_AUTOMATION_UPLOAD_SYMBOLS-1}
|
||||
MOZ_AUTOMATION_UPDATE_PACKAGING=${MOZ_AUTOMATION_UPDATE_PACKAGING-1}
|
||||
MOZ_AUTOMATION_SDK=${MOZ_AUTOMATION_SDK-1}
|
||||
fi
|
||||
|
||||
. "$topsrcdir/build/mozconfig.common"
|
||||
|
@ -373,9 +373,6 @@ endif
|
||||
#
|
||||
# Override defaults
|
||||
|
||||
SDK_LIB_DIR = $(DIST)/sdk/lib
|
||||
SDK_BIN_DIR = $(DIST)/sdk/bin
|
||||
|
||||
DEPENDENCIES = .md
|
||||
|
||||
ifdef MACOSX_DEPLOYMENT_TARGET
|
||||
|
@ -116,8 +116,8 @@ else
|
||||
LIBRARY := $(REAL_LIBRARY).$(LIBS_DESC_SUFFIX)
|
||||
endif
|
||||
else
|
||||
# Only build actual library if it is installed in DIST/lib or SDK
|
||||
ifeq (,$(SDK_LIBRARY)$(DIST_INSTALL)$(NO_EXPAND_LIBS))
|
||||
# Only build actual library if it is installed in DIST/lib
|
||||
ifeq (,$(DIST_INSTALL)$(NO_EXPAND_LIBS))
|
||||
LIBRARY := $(REAL_LIBRARY).$(LIBS_DESC_SUFFIX)
|
||||
else
|
||||
ifdef NO_EXPAND_LIBS
|
||||
@ -249,7 +249,6 @@ SIMPLE_PROGRAMS :=
|
||||
HOST_LIBRARY :=
|
||||
HOST_PROGRAM :=
|
||||
HOST_SIMPLE_PROGRAMS :=
|
||||
SDK_LIBRARY :=
|
||||
endif
|
||||
|
||||
ALL_TRASH = \
|
||||
@ -1198,18 +1197,6 @@ ifneq (,$(DIST_SUBDIR)$(XPI_NAME))
|
||||
PREF_DIR = defaults/preferences
|
||||
endif
|
||||
|
||||
################################################################################
|
||||
# SDK
|
||||
|
||||
ifneq (,$(SDK_LIBRARY))
|
||||
ifndef NO_DIST_INSTALL
|
||||
SDK_LIBRARY_FILES := $(SDK_LIBRARY)
|
||||
SDK_LIBRARY_DEST := $(SDK_LIB_DIR)
|
||||
SDK_LIBRARY_TARGET := target
|
||||
INSTALL_TARGETS += SDK_LIBRARY
|
||||
endif
|
||||
endif # SDK_LIBRARY
|
||||
|
||||
################################################################################
|
||||
# CHROME PACKAGING
|
||||
|
||||
|
@ -111,6 +111,7 @@
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
padding: 5px;
|
||||
direction: ltr;
|
||||
}
|
||||
|
||||
.theme-light .font-css-code,
|
||||
|
@ -10,6 +10,6 @@ asserts(0-1) load 436900-2.html # bug 566159
|
||||
load 500328-1.html
|
||||
load 514779-1.xhtml
|
||||
load 614499-1.html
|
||||
load 678872-1.html
|
||||
asserts-if(stylo,1) load 678872-1.html # bug 1324683
|
||||
skip-if(Android) pref(dom.disable_open_during_load,false) load 914521.html
|
||||
pref(browser.send_pings,true) load 1257730-1.html
|
||||
|
@ -1,5 +1,5 @@
|
||||
pref(dom.animations-api.core.enabled,true) load 1239889-1.html
|
||||
pref(dom.animations-api.core.enabled,true) load 1244595-1.html
|
||||
asserts-if(stylo,2) pref(dom.animations-api.core.enabled,true) load 1244595-1.html # bug 1324696
|
||||
pref(dom.animations-api.core.enabled,true) load 1216842-1.html # bug 1334036
|
||||
pref(dom.animations-api.core.enabled,true) load 1216842-2.html # bug 1334036
|
||||
pref(dom.animations-api.core.enabled,true) load 1216842-3.html
|
||||
@ -9,7 +9,7 @@ pref(dom.animations-api.core.enabled,true) load 1216842-6.html # bug 1334036
|
||||
skip-if(stylo) pref(dom.animations-api.core.enabled,true) load 1272475-1.html # bug 1324693 and bug 1332657
|
||||
skip-if(stylo) pref(dom.animations-api.core.enabled,true) load 1272475-2.html # bug 1324693 and bug 1332657
|
||||
pref(dom.animations-api.core.enabled,true) load 1278485-1.html
|
||||
pref(dom.animations-api.core.enabled,true) load 1277272-1.html
|
||||
asserts-if(stylo,10) pref(dom.animations-api.core.enabled,true) load 1277272-1.html # bug 1324694
|
||||
pref(dom.animations-api.core.enabled,true) load 1290535-1.html
|
||||
pref(dom.animations-api.core.enabled,true) load 1304886-1.html
|
||||
pref(dom.animations-api.core.enabled,true) load 1322382-1.html
|
||||
|
@ -45,14 +45,14 @@ load 371466-1.xhtml
|
||||
load 372554-1.html
|
||||
load 375399-1.html
|
||||
load 377360-1.xhtml
|
||||
load 377960-1.html
|
||||
asserts-if(stylo,3) load 377960-1.html # bug 1324633
|
||||
load 377960-2.html
|
||||
load 384663-1.html
|
||||
load 386000-1.html
|
||||
load 386794-1.html
|
||||
skip-if(stylo) load 387460-1.html # bug 1323647
|
||||
load 395469-1.xhtml
|
||||
load 395469-2.xhtml
|
||||
asserts-if(stylo,2) load 395469-1.xhtml # bug 1324704
|
||||
asserts-if(stylo,3) load 395469-2.xhtml # bug 1324704
|
||||
load 398088-1.xul
|
||||
skip load 399712-1.html # sporadically times out (bug 473680)
|
||||
load 400763-1.html
|
||||
@ -79,7 +79,7 @@ load 472593-1.html
|
||||
load 473284.xul
|
||||
load 474041-1.svg
|
||||
load 476526.html
|
||||
load 483818-1.html
|
||||
asserts-if(stylo,1) load 483818-1.html # bug 1324683
|
||||
load 490760-1.xhtml
|
||||
load 493281-1.html
|
||||
load 493281-2.html
|
||||
@ -168,8 +168,8 @@ load 824719.html
|
||||
load 827190.html
|
||||
load 828054.html
|
||||
load 828903.html
|
||||
load 829428.html
|
||||
load 830098.html
|
||||
asserts-if(stylo,2) load 829428.html # bug 1324669
|
||||
asserts-if(stylo,2) load 830098.html # bug 1324669
|
||||
load 831287.html
|
||||
load 832644.html
|
||||
load 836890.html
|
||||
@ -183,7 +183,7 @@ load 847127.html
|
||||
load 849601.html
|
||||
load 849727.html
|
||||
load 849732.html
|
||||
load 851353-1.html
|
||||
asserts-if(stylo,17) load 851353-1.html # bug 1324699
|
||||
load 852381.html
|
||||
load 863950.html
|
||||
load 864448.html
|
||||
@ -193,7 +193,7 @@ load 930250.html
|
||||
load 942979.html
|
||||
load 973401.html
|
||||
load 978646.html
|
||||
pref(dom.webcomponents.enabled,true) load 1024428-1.html
|
||||
asserts-if(stylo,1-11) pref(dom.webcomponents.enabled,true) load 1024428-1.html # bug 1324671
|
||||
load 1026714.html
|
||||
pref(dom.webcomponents.enabled,true) load 1027461-1.html
|
||||
pref(dom.webcomponents.enabled,true) load 1029710.html
|
||||
|
@ -812,15 +812,17 @@ MaybeWrapNonDOMObjectOrNullValue(JSContext* cx, JS::MutableHandle<JS::Value> rva
|
||||
MOZ_ALWAYS_INLINE bool
|
||||
MaybeWrapValue(JSContext* cx, JS::MutableHandle<JS::Value> rval)
|
||||
{
|
||||
if (rval.isString()) {
|
||||
return MaybeWrapStringValue(cx, rval);
|
||||
if (rval.isGCThing()) {
|
||||
if (rval.isString()) {
|
||||
return MaybeWrapStringValue(cx, rval);
|
||||
}
|
||||
if (rval.isObject()) {
|
||||
return MaybeWrapObjectValue(cx, rval);
|
||||
}
|
||||
MOZ_ASSERT(rval.isSymbol());
|
||||
JS_MarkCrossZoneId(cx, SYMBOL_TO_JSID(rval.toSymbol()));
|
||||
}
|
||||
|
||||
if (!rval.isObject()) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return MaybeWrapObjectValue(cx, rval);
|
||||
return true;
|
||||
}
|
||||
|
||||
namespace binding_detail {
|
||||
|
@ -10955,6 +10955,7 @@ class CGResolveOwnPropertyViaResolve(CGAbstractBindingMethod):
|
||||
// to avoid re-resolving the properties if someone deletes
|
||||
// them.
|
||||
JSAutoCompartment ac(cx, obj);
|
||||
JS_MarkCrossZoneId(cx, id);
|
||||
JS::Rooted<JS::PropertyDescriptor> objDesc(cx);
|
||||
if (!self->DoResolve(cx, obj, id, &objDesc)) {
|
||||
return false;
|
||||
|
@ -1,40 +1,40 @@
|
||||
load 0px-size-font-667225.html
|
||||
load 0px-size-font-shadow.html
|
||||
asserts-if(stylo,1) load 0px-size-font-667225.html # bug 1324700
|
||||
asserts-if(stylo,1) load 0px-size-font-shadow.html # bug 1324700
|
||||
load 360293-1.html
|
||||
load 421715-1.html
|
||||
load 553938-1.html
|
||||
load 647480.html
|
||||
load 727547.html
|
||||
load 729116.html
|
||||
load 745699-1.html
|
||||
asserts-if(stylo,1) load 745699-1.html # bug 1324700
|
||||
load 746813-1.html
|
||||
load 743499-negative-size.html
|
||||
skip-if(Android) load 745818-large-source.html # Bug XXX - Crashes Android mid-run w/o a stack
|
||||
load 767337-1.html
|
||||
skip-if(Android) load 780392-1.html
|
||||
asserts-if(stylo,1) skip-if(Android) load 780392-1.html # bug 1324700
|
||||
skip-if(Android) skip-if(gtkWidget&&isDebugBuild) load 789933-1.html # bug 1155252 for linux
|
||||
load 794463-1.html
|
||||
load 802926-1.html
|
||||
load 896047-1.html
|
||||
load 916128-1.html
|
||||
load 934939-1.html
|
||||
load 1099143-1.html
|
||||
asserts-if(stylo,1) load 1099143-1.html # bug 1324700
|
||||
load 1161277-1.html
|
||||
load 1183363.html
|
||||
load 1190705.html
|
||||
load 1223740-1.html
|
||||
load 1225381-1.html
|
||||
asserts-if(stylo,1) load 1190705.html # bug 1324700
|
||||
asserts-if(stylo,1) load 1223740-1.html # bug 1324700
|
||||
asserts-if(stylo,1) load 1225381-1.html # bug 1324700
|
||||
skip-if(azureCairo) load 1229983-1.html
|
||||
load 1229932-1.html
|
||||
asserts-if(stylo,1) load 1229932-1.html # bug 1324700
|
||||
load 1244850-1.html
|
||||
load 1246775-1.html
|
||||
load 1284356-1.html
|
||||
asserts-if(stylo,1) load 1284356-1.html # bug 1324700
|
||||
load 1284578-1.html
|
||||
skip-if(d2d) load 1287515-1.html
|
||||
load 1287652-1.html
|
||||
load 1288872-1.html
|
||||
asserts-if(stylo,1) load 1287652-1.html # bug 1324700
|
||||
asserts-if(stylo,1) load 1288872-1.html # bug 1324700
|
||||
load 1290628-1.html
|
||||
load 1283113-1.html
|
||||
asserts-if(stylo,1) load 1283113-1.html # bug 1324700
|
||||
load 1286458-1.html
|
||||
load 1299062-1.html
|
||||
load 1305312-1.html
|
||||
|
@ -1,31 +1,31 @@
|
||||
# DO NOT EDIT! This is a auto-generated temporary list for Stylo testing
|
||||
default-preferences pref(canvas.filters.enabled,true)
|
||||
|
||||
== default-color.html default-color.html
|
||||
fails == default-color.html default-color.html
|
||||
# == drop-shadow.html drop-shadow.html
|
||||
== drop-shadow-transformed.html drop-shadow-transformed.html
|
||||
== global-alpha.html global-alpha.html
|
||||
== global-composite-operation.html global-composite-operation.html
|
||||
== liveness.html liveness.html
|
||||
== multiple-drop-shadows.html multiple-drop-shadows.html
|
||||
== shadow.html shadow.html
|
||||
== subregion-fill-paint.html subregion-fill-paint.html
|
||||
== subregion-stroke-paint.html subregion-stroke-paint.html
|
||||
== svg-bbox.html svg-bbox.html
|
||||
== svg-inline.html svg-inline.html
|
||||
== svg-liveness.html svg-liveness.html
|
||||
== svg-off-screen.html svg-off-screen.html
|
||||
== units.html units.html
|
||||
== units-em.html units-em.html
|
||||
== units-ex.html units-ex.html
|
||||
== units-off-screen.html units-off-screen.html
|
||||
== fillText-with-filter-opacity-1.html fillText-with-filter-opacity-1.html
|
||||
== fillText-with-filter-opacity-2.html fillText-with-filter-opacity-2.html
|
||||
== strokeText-with-filter-grayscale-1.html strokeText-with-filter-grayscale-1.html
|
||||
== strokeText-with-filter-grayscale-2.html strokeText-with-filter-grayscale-2.html
|
||||
== fillText-with-shadow-1.html fillText-with-shadow-1.html
|
||||
== fillText-with-shadow-2.html fillText-with-shadow-2.html
|
||||
== fillText-with-filter-grayscale-1.html fillText-with-filter-grayscale-1.html
|
||||
== fillText-with-filter-grayscale-2.html fillText-with-filter-grayscale-2.html
|
||||
== strokeText-with-shadow-1.html strokeText-with-shadow-1.html
|
||||
== strokeText-with-shadow-2.html strokeText-with-shadow-2.html
|
||||
fails == drop-shadow-transformed.html drop-shadow-transformed.html
|
||||
fails == global-alpha.html global-alpha.html
|
||||
fails == global-composite-operation.html global-composite-operation.html
|
||||
fails == liveness.html liveness.html
|
||||
fails == multiple-drop-shadows.html multiple-drop-shadows.html
|
||||
fails == shadow.html shadow.html
|
||||
fails == subregion-fill-paint.html subregion-fill-paint.html
|
||||
fails == subregion-stroke-paint.html subregion-stroke-paint.html
|
||||
fails == svg-bbox.html svg-bbox.html
|
||||
fails == svg-inline.html svg-inline.html
|
||||
fails == svg-liveness.html svg-liveness.html
|
||||
fails == svg-off-screen.html svg-off-screen.html
|
||||
fails == units.html units.html
|
||||
fails == units-em.html units-em.html
|
||||
fails == units-ex.html units-ex.html
|
||||
fails == units-off-screen.html units-off-screen.html
|
||||
fails == fillText-with-filter-opacity-1.html fillText-with-filter-opacity-1.html
|
||||
fails == fillText-with-filter-opacity-2.html fillText-with-filter-opacity-2.html
|
||||
fails == strokeText-with-filter-grayscale-1.html strokeText-with-filter-grayscale-1.html
|
||||
fails == strokeText-with-filter-grayscale-2.html strokeText-with-filter-grayscale-2.html
|
||||
fails == fillText-with-shadow-1.html fillText-with-shadow-1.html
|
||||
fails == fillText-with-shadow-2.html fillText-with-shadow-2.html
|
||||
fails == fillText-with-filter-grayscale-1.html fillText-with-filter-grayscale-1.html
|
||||
fails == fillText-with-filter-grayscale-2.html fillText-with-filter-grayscale-2.html
|
||||
fails == strokeText-with-shadow-1.html strokeText-with-shadow-1.html
|
||||
fails == strokeText-with-shadow-2.html strokeText-with-shadow-2.html
|
||||
|
@ -18,7 +18,7 @@ skip-if(Android) == webgl-clear-test.html?stencil webgl-clear-test.html?stencil
|
||||
skip-if(Android) == webgl-clear-test.html?depth&stencil webgl-clear-test.html?depth&stencil
|
||||
|
||||
# Check that resize works:
|
||||
== webgl-resize-test.html webgl-resize-test.html
|
||||
fails == webgl-resize-test.html webgl-resize-test.html
|
||||
|
||||
# Check that captureStream() displays in a local video element
|
||||
skip-if(Android) == webgl-capturestream-test.html?preserve webgl-capturestream-test.html?preserve
|
||||
@ -155,7 +155,7 @@ skip-if(!winWidget) pref(webgl.disable-angle,true) == webgl-color-test.html?nati
|
||||
== clip-multiple-move-2.html clip-multiple-move-2.html
|
||||
|
||||
# Bug 815648
|
||||
== stroketext-shadow.html stroketext-shadow.html
|
||||
fails == stroketext-shadow.html stroketext-shadow.html
|
||||
|
||||
# focus rings
|
||||
pref(canvas.focusring.enabled,true) skip-if(cocoaWidget) skip-if(winWidget) needs-focus == drawFocusIfNeeded.html drawFocusIfNeeded.html
|
||||
@ -164,7 +164,7 @@ pref(canvas.customfocusring.enabled,true) skip-if(Android||cocoaWidget||winWidge
|
||||
# Check that captureStream() displays in a local video element
|
||||
== capturestream.html capturestream.html
|
||||
|
||||
== 1177726-text-stroke-bounds.html 1177726-text-stroke-bounds.html
|
||||
fails == 1177726-text-stroke-bounds.html 1177726-text-stroke-bounds.html
|
||||
|
||||
# Canvas Filter Reftests
|
||||
include filters/reftest-stylo.list
|
||||
|
@ -1,6 +1,6 @@
|
||||
# DO NOT EDIT! This is a auto-generated temporary list for Stylo testing
|
||||
# == bug863728-1.html bug863728-1.html
|
||||
== bug863728-2.html bug863728-2.html
|
||||
fails == bug863728-2.html bug863728-2.html
|
||||
== bug863728-3.html bug863728-3.html
|
||||
# == bug945215-1.html bug945215-1.html
|
||||
== bug945215-2.html bug945215-2.html
|
||||
fails == bug945215-2.html bug945215-2.html
|
||||
|
@ -9,7 +9,7 @@ load 339501-1.xhtml
|
||||
load 339501-2.xhtml
|
||||
load 378993-1.xhtml
|
||||
load 382568-1.html
|
||||
load 383137.xhtml
|
||||
asserts-if(stylo,1) load 383137.xhtml # bug 1324704
|
||||
load 388183-1.html
|
||||
skip-if(stylo) load 395340-1.html # bug 1323652
|
||||
load 399694-1.html
|
||||
@ -51,19 +51,19 @@ load 680922-1.xul
|
||||
load 682058.xhtml
|
||||
load 682460.html
|
||||
load 738744.xhtml
|
||||
load 741218.json
|
||||
asserts-if(stylo,6-30) load 741218.json # bug 1324634
|
||||
load 741250.xhtml
|
||||
load 795221-1.html
|
||||
load 795221-2.html
|
||||
asserts-if(stylo,1) load 795221-2.html # bug 1324702
|
||||
load 795221-3.html
|
||||
load 795221-4.html
|
||||
asserts-if(stylo,2) load 795221-4.html # bug 1324669
|
||||
load 795221-5.xml
|
||||
load 811226.html
|
||||
load 819745.html
|
||||
load 828180.html
|
||||
pref(dom.experimental_forms,true) load 828472.html
|
||||
load 837033.html
|
||||
load 838256-1.html
|
||||
asserts-if(stylo,3) load 838256-1.html # bug 1324671
|
||||
load 862084.html
|
||||
load 865147.html
|
||||
load 877910.html
|
||||
|
@ -1,15 +1,15 @@
|
||||
# DO NOT EDIT! This is a auto-generated temporary list for Stylo testing
|
||||
default-preferences pref(dom.forms.number,true) pref(dom.forms.datetime,true)
|
||||
== input-load.html input-load.html
|
||||
== input-create.html input-create.html
|
||||
fails == input-load.html input-load.html
|
||||
fails == input-create.html input-create.html
|
||||
# fuzzy-if(skiaContent,1,3) needs-focus == input-number.html input-number.html
|
||||
== input-time.html input-time.html
|
||||
== button-load.html button-load.html
|
||||
== button-create.html button-create.html
|
||||
== textarea-load.html textarea-load.html
|
||||
== textarea-create.html textarea-create.html
|
||||
== select-load.html select-load.html
|
||||
== select-create.html select-create.html
|
||||
needs-focus == autofocus-after-load.html autofocus-after-load.html
|
||||
== autofocus-leaves-iframe.html autofocus-leaves-iframe.html
|
||||
== autofocus-after-body-focus.html autofocus-after-body-focus.html
|
||||
fails == input-time.html input-time.html
|
||||
fails == button-load.html button-load.html
|
||||
fails == button-create.html button-create.html
|
||||
fails == textarea-load.html textarea-load.html
|
||||
fails == textarea-create.html textarea-create.html
|
||||
fails == select-load.html select-load.html
|
||||
fails == select-create.html select-create.html
|
||||
fails needs-focus == autofocus-after-load.html autofocus-after-load.html
|
||||
fails == autofocus-leaves-iframe.html autofocus-leaves-iframe.html
|
||||
fails == autofocus-after-body-focus.html autofocus-after-body-focus.html
|
||||
|
@ -3,11 +3,11 @@
|
||||
include autofocus/reftest-stylo.list
|
||||
include toblob-todataurl/reftest-stylo.list
|
||||
|
||||
== 41464-1a.html 41464-1a.html
|
||||
== 41464-1b.html 41464-1b.html
|
||||
== 52019-1.html 52019-1.html
|
||||
== 82711-1.html 82711-1.html
|
||||
== 82711-2.html 82711-2.html
|
||||
fails == 41464-1a.html 41464-1a.html
|
||||
fails == 41464-1b.html 41464-1b.html
|
||||
fails == 52019-1.html 52019-1.html
|
||||
fails == 82711-1.html 82711-1.html
|
||||
fails == 82711-2.html 82711-2.html
|
||||
# == 82711-1-ref.html 82711-1-ref.html
|
||||
== 468263-1a.html 468263-1a.html
|
||||
== 468263-1b.html 468263-1b.html
|
||||
@ -15,20 +15,20 @@ include toblob-todataurl/reftest-stylo.list
|
||||
# == 468263-1d.html 468263-1d.html
|
||||
# == 468263-2.html 468263-2.html
|
||||
# == 468263-2.html 468263-2.html
|
||||
== 484200-1.html 484200-1.html
|
||||
fails == 484200-1.html 484200-1.html
|
||||
# == 485377.html 485377.html
|
||||
== 557840.html 557840.html
|
||||
== 560059-video-dimensions.html 560059-video-dimensions.html
|
||||
== 573322-quirks.html 573322-quirks.html
|
||||
== 573322-no-quirks.html 573322-no-quirks.html
|
||||
== 596455-1a.html 596455-1a.html
|
||||
== 596455-1b.html 596455-1b.html
|
||||
== 596455-2a.html 596455-2a.html
|
||||
== 596455-2b.html 596455-2b.html
|
||||
== 610935.html 610935.html
|
||||
fails == 573322-quirks.html 573322-quirks.html
|
||||
fails == 573322-no-quirks.html 573322-no-quirks.html
|
||||
fails == 596455-1a.html 596455-1a.html
|
||||
fails == 596455-1b.html 596455-1b.html
|
||||
fails == 596455-2a.html 596455-2a.html
|
||||
fails == 596455-2b.html 596455-2b.html
|
||||
fails == 610935.html 610935.html
|
||||
== 649134-1.html 649134-1.html
|
||||
# == 649134-2.html 649134-2.html
|
||||
== 741776-1.vtt 741776-1.vtt
|
||||
fails == 741776-1.vtt 741776-1.vtt
|
||||
|
||||
# == bug448564-1_malformed.html bug448564-1_malformed.html
|
||||
# == bug448564-1_malformed.html bug448564-1_malformed.html
|
||||
@ -45,15 +45,15 @@ include toblob-todataurl/reftest-stylo.list
|
||||
# (Fuzzy necessary due to pixel-wise comparison of different JPEGs.
|
||||
# The vast majority of the fuzziness comes from Linux and WinXP.)
|
||||
# == bug917595-iframe-1.html bug917595-iframe-1.html
|
||||
== bug917595-exif-rotated.jpg bug917595-exif-rotated.jpg
|
||||
fails == bug917595-exif-rotated.jpg bug917595-exif-rotated.jpg
|
||||
|
||||
# Test support for SVG-as-image in <picture> elements.
|
||||
== bug1106522-1.html bug1106522-1.html
|
||||
== bug1106522-2.html bug1106522-2.html
|
||||
|
||||
== href-attr-change-restyles.html href-attr-change-restyles.html
|
||||
fails == href-attr-change-restyles.html href-attr-change-restyles.html
|
||||
# == figure.html figure.html
|
||||
== pre-1.html pre-1.html
|
||||
fails == pre-1.html pre-1.html
|
||||
# == table-border-1.html table-border-1.html
|
||||
# == table-border-2.html table-border-2.html
|
||||
# == table-border-2.html table-border-2.html
|
||||
|
@ -2581,6 +2581,16 @@ TabChild::InitRenderingState(const TextureFactoryIdentifier& aTextureFactoryIden
|
||||
Unused << compositorChild->SendGetCompositorOptions(aLayersId, &options);
|
||||
mCompositorOptions = Some(options);
|
||||
|
||||
mRemoteFrame = static_cast<RenderFrameChild*>(aRenderFrame);
|
||||
if (aLayersId != 0) {
|
||||
if (!sTabChildren) {
|
||||
sTabChildren = new TabChildMap;
|
||||
}
|
||||
MOZ_ASSERT(!sTabChildren->Get(aLayersId));
|
||||
sTabChildren->Put(aLayersId, this);
|
||||
mLayersId = aLayersId;
|
||||
}
|
||||
|
||||
ShadowLayerForwarder* lf =
|
||||
mPuppetWidget->GetLayerManager(
|
||||
nullptr, mTextureFactoryIdentifier.mParentBackend)
|
||||
@ -2601,21 +2611,10 @@ TabChild::InitRenderingState(const TextureFactoryIdentifier& aTextureFactoryIden
|
||||
lf->IdentifyTextureHost(mTextureFactoryIdentifier);
|
||||
ImageBridgeChild::IdentifyCompositorTextureHost(mTextureFactoryIdentifier);
|
||||
gfx::VRManagerChild::IdentifyTextureHost(mTextureFactoryIdentifier);
|
||||
InitAPZState();
|
||||
}
|
||||
}
|
||||
|
||||
mRemoteFrame = static_cast<RenderFrameChild*>(aRenderFrame);
|
||||
if (aLayersId != 0) {
|
||||
if (!sTabChildren) {
|
||||
sTabChildren = new TabChildMap;
|
||||
}
|
||||
MOZ_ASSERT(!sTabChildren->Get(aLayersId));
|
||||
sTabChildren->Put(aLayersId, this);
|
||||
mLayersId = aLayersId;
|
||||
}
|
||||
|
||||
InitAPZState();
|
||||
|
||||
nsCOMPtr<nsIObserverService> observerService =
|
||||
mozilla::services::GetObserverService();
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
load 341963-1.html
|
||||
load 344874-1.html
|
||||
load 344996-1.xhtml
|
||||
load 457050-1.html
|
||||
asserts-if(stylo,4) load 457050-1.html # bug 1324634
|
||||
load 1018583.html
|
||||
load 1180389.html
|
||||
|
@ -8,14 +8,7 @@
|
||||
#include "MediaStreamListener.h"
|
||||
#include "mozilla/Logging.h"
|
||||
#include "VideoUtils.h"
|
||||
|
||||
#undef LOG
|
||||
#ifdef MOZ_WIDGET_GONK
|
||||
#include <android/log.h>
|
||||
#define LOG(args...) __android_log_print(ANDROID_LOG_INFO, "MediaEncoder", ## args);
|
||||
#else
|
||||
#define LOG(args, ...)
|
||||
#endif
|
||||
#include "mozilla/Logging.h"
|
||||
|
||||
namespace mozilla {
|
||||
|
||||
@ -78,7 +71,7 @@ AudioTrackEncoder::NotifyQueuedTrackChanges(MediaStreamGraph* aGraph,
|
||||
if (!chunk.IsNull()) {
|
||||
nsresult rv = Init(chunk.mChannelData.Length(), aGraph->GraphRate());
|
||||
if (NS_FAILED(rv)) {
|
||||
LOG("[AudioTrackEncoder]: Fail to initialize the encoder!");
|
||||
TRACK_LOG(LogLevel::Error, ("[AudioTrackEncoder]: Fail to initialize the encoder!"));
|
||||
NotifyCancel();
|
||||
}
|
||||
break;
|
||||
@ -91,7 +84,7 @@ AudioTrackEncoder::NotifyQueuedTrackChanges(MediaStreamGraph* aGraph,
|
||||
if (!mInitialized &&
|
||||
(mNotInitDuration / aGraph->GraphRate() > INIT_FAILED_DURATION) &&
|
||||
mInitCounter > 1) {
|
||||
LOG("[AudioTrackEncoder]: Initialize failed for 30s.");
|
||||
TRACK_LOG(LogLevel::Warning, ("[AudioTrackEncoder]: Initialize failed for 30s."));
|
||||
NotifyEndOfStream();
|
||||
return;
|
||||
}
|
||||
@ -103,7 +96,7 @@ AudioTrackEncoder::NotifyQueuedTrackChanges(MediaStreamGraph* aGraph,
|
||||
|
||||
// The stream has stopped and reached the end of track.
|
||||
if (aTrackEvents == TrackEventCommand::TRACK_EVENT_ENDED) {
|
||||
LOG("[AudioTrackEncoder]: Receive TRACK_EVENT_ENDED .");
|
||||
TRACK_LOG(LogLevel::Info, ("[AudioTrackEncoder]: Receive TRACK_EVENT_ENDED ."));
|
||||
NotifyEndOfStream();
|
||||
}
|
||||
}
|
||||
@ -216,7 +209,7 @@ VideoTrackEncoder::Init(const VideoSegment& aSegment)
|
||||
intrinsicSize.width, intrinsicSize.height);
|
||||
|
||||
if (NS_FAILED(rv)) {
|
||||
LOG("[VideoTrackEncoder]: Fail to initialize the encoder!");
|
||||
TRACK_LOG(LogLevel::Error, ("[VideoTrackEncoder]: Fail to initialize the encoder!"));
|
||||
NotifyCancel();
|
||||
}
|
||||
break;
|
||||
@ -228,7 +221,7 @@ VideoTrackEncoder::Init(const VideoSegment& aSegment)
|
||||
mNotInitDuration += aSegment.GetDuration();
|
||||
if ((mNotInitDuration / mTrackRate > INIT_FAILED_DURATION) &&
|
||||
mInitCounter > 1) {
|
||||
LOG("[VideoTrackEncoder]: Initialize failed for %ds.", INIT_FAILED_DURATION);
|
||||
TRACK_LOG(LogLevel::Debug, ("[VideoTrackEncoder]: Initialize failed for %ds.", INIT_FAILED_DURATION));
|
||||
NotifyEndOfStream();
|
||||
return;
|
||||
}
|
||||
@ -274,7 +267,7 @@ VideoTrackEncoder::NotifyQueuedTrackChanges(MediaStreamGraph* aGraph,
|
||||
|
||||
// The stream has stopped and reached the end of track.
|
||||
if (aTrackEvents == TrackEventCommand::TRACK_EVENT_ENDED) {
|
||||
LOG("[VideoTrackEncoder]: Receive TRACK_EVENT_ENDED .");
|
||||
TRACK_LOG(LogLevel::Info, ("[VideoTrackEncoder]: Receive TRACK_EVENT_ENDED ."));
|
||||
NotifyEndOfStream();
|
||||
}
|
||||
|
||||
|
@ -4,7 +4,7 @@ load 466607-1.html
|
||||
load 466945-1.html
|
||||
load 468763-1.html
|
||||
load 474744-1.html
|
||||
HTTP load 481136-1.html # needs to be HTTP to recognize the ogg as an audio file?
|
||||
asserts-if(stylo,8) HTTP load 481136-1.html # bug 1324671 # needs to be HTTP to recognize the ogg as an audio file?
|
||||
load 492286-1.xhtml
|
||||
load 493915-1.html
|
||||
load 495794-1.html
|
||||
@ -71,7 +71,7 @@ load 995289.html
|
||||
load 1012609.html
|
||||
load 1015662.html
|
||||
load 1020205.html
|
||||
skip-if(Android) test-pref(media.navigator.permission.disabled,true) load 1028458.html # bug 1048863
|
||||
asserts-if(stylo,8) skip-if(Android) test-pref(media.navigator.permission.disabled,true) load 1028458.html # bug 1324671 # bug 1048863
|
||||
load 1041466.html
|
||||
load 1045650.html
|
||||
load 1080986.html
|
||||
|
@ -4,9 +4,9 @@ load 780790.html
|
||||
load 791270.html
|
||||
load 791278.html
|
||||
load 791330.html
|
||||
load 799419.html
|
||||
asserts-if(stylo,16) load 799419.html # bug 1324671
|
||||
load 802982.html
|
||||
load 812785.html
|
||||
asserts-if(stylo,48) load 812785.html # bug 1324671
|
||||
load 834100.html
|
||||
load 836349.html
|
||||
load 837324.html
|
||||
|
@ -722,6 +722,12 @@ GetProperty(JSContext *cx, JSObject *objArg, NPIdentifier npid, JS::MutableHandl
|
||||
return ::JS_GetPropertyById(cx, obj, id, rval);
|
||||
}
|
||||
|
||||
static void
|
||||
MarkCrossZoneNPIdentifier(JSContext* cx, NPIdentifier npid)
|
||||
{
|
||||
JS_MarkCrossZoneId(cx, NPIdentifierToJSId(npid));
|
||||
}
|
||||
|
||||
// static
|
||||
bool
|
||||
nsJSObjWrapper::NP_HasMethod(NPObject *npobj, NPIdentifier id)
|
||||
@ -745,6 +751,7 @@ nsJSObjWrapper::NP_HasMethod(NPObject *npobj, NPIdentifier id)
|
||||
nsJSObjWrapper *npjsobj = (nsJSObjWrapper *)npobj;
|
||||
|
||||
JSAutoCompartment ac(cx, npjsobj->mJSObj);
|
||||
MarkCrossZoneNPIdentifier(cx, id);
|
||||
|
||||
AutoJSExceptionSuppressor suppressor(aes, npjsobj);
|
||||
|
||||
@ -784,6 +791,7 @@ doInvoke(NPObject *npobj, NPIdentifier method, const NPVariant *args,
|
||||
|
||||
JS::Rooted<JSObject*> jsobj(cx, npjsobj->mJSObj);
|
||||
JSAutoCompartment ac(cx, jsobj);
|
||||
MarkCrossZoneNPIdentifier(cx, method);
|
||||
JS::Rooted<JS::Value> fv(cx);
|
||||
|
||||
AutoJSExceptionSuppressor suppressor(aes, npjsobj);
|
||||
@ -876,6 +884,7 @@ nsJSObjWrapper::NP_HasProperty(NPObject *npobj, NPIdentifier npid)
|
||||
AutoJSExceptionSuppressor suppressor(aes, npjsobj);
|
||||
JS::Rooted<JSObject*> jsobj(cx, npjsobj->mJSObj);
|
||||
JSAutoCompartment ac(cx, jsobj);
|
||||
MarkCrossZoneNPIdentifier(cx, npid);
|
||||
|
||||
NS_ASSERTION(NPIdentifierIsInt(npid) || NPIdentifierIsString(npid),
|
||||
"id must be either string or int!\n");
|
||||
@ -912,6 +921,7 @@ nsJSObjWrapper::NP_GetProperty(NPObject *npobj, NPIdentifier id,
|
||||
|
||||
AutoJSExceptionSuppressor suppressor(aes, npjsobj);
|
||||
JSAutoCompartment ac(cx, npjsobj->mJSObj);
|
||||
MarkCrossZoneNPIdentifier(cx, id);
|
||||
|
||||
JS::Rooted<JS::Value> v(cx);
|
||||
return (GetProperty(cx, npjsobj->mJSObj, id, &v) &&
|
||||
@ -948,6 +958,7 @@ nsJSObjWrapper::NP_SetProperty(NPObject *npobj, NPIdentifier npid,
|
||||
AutoJSExceptionSuppressor suppressor(aes, npjsobj);
|
||||
JS::Rooted<JSObject*> jsObj(cx, npjsobj->mJSObj);
|
||||
JSAutoCompartment ac(cx, jsObj);
|
||||
MarkCrossZoneNPIdentifier(cx, npid);
|
||||
|
||||
JS::Rooted<JS::Value> v(cx, NPVariantToJSVal(npp, cx, value));
|
||||
|
||||
@ -985,6 +996,7 @@ nsJSObjWrapper::NP_RemoveProperty(NPObject *npobj, NPIdentifier npid)
|
||||
JS::ObjectOpResult result;
|
||||
JS::Rooted<JSObject*> obj(cx, npjsobj->mJSObj);
|
||||
JSAutoCompartment ac(cx, obj);
|
||||
MarkCrossZoneNPIdentifier(cx, npid);
|
||||
|
||||
NS_ASSERTION(NPIdentifierIsInt(npid) || NPIdentifierIsString(npid),
|
||||
"id must be either string or int!\n");
|
||||
@ -2313,6 +2325,7 @@ nsJSObjWrapper::HasOwnProperty(NPObject *npobj, NPIdentifier npid)
|
||||
AutoJSExceptionSuppressor suppressor(aes, npjsobj);
|
||||
JS::Rooted<JSObject*> jsobj(cx, npjsobj->mJSObj);
|
||||
JSAutoCompartment ac(cx, jsobj);
|
||||
MarkCrossZoneNPIdentifier(cx, npid);
|
||||
|
||||
NS_ASSERTION(NPIdentifierIsInt(npid) || NPIdentifierIsString(npid),
|
||||
"id must be either string or int!\n");
|
||||
|
@ -11,4 +11,4 @@ load 570884.html
|
||||
skip-if(!haveTestPlugin||http.platform!="X11") load 598862.html
|
||||
skip-if(Android) load 626602-1.html # bug 908363
|
||||
load 752340.html
|
||||
load 843086.xhtml
|
||||
asserts-if(stylo,1) load 843086.xhtml # bug 1324647
|
||||
|
@ -2,7 +2,7 @@
|
||||
# basic sanity checking
|
||||
# == plugin-sanity.html plugin-sanity.html
|
||||
# == plugin-sanity.html plugin-sanity.html
|
||||
== plugin-alpha-zindex.html plugin-alpha-zindex.html
|
||||
fails == plugin-alpha-zindex.html plugin-alpha-zindex.html
|
||||
== plugin-alpha-opacity.html plugin-alpha-opacity.html
|
||||
== windowless-clipping-1.html windowless-clipping-1.html
|
||||
# fuzzy because of anti-aliasing in dashed border
|
||||
@ -12,16 +12,16 @@
|
||||
# The following two "pluginproblemui-direction" tests are unreliable on all platforms. They should be re-written or replaced.
|
||||
#random-if(cocoaWidget||d2d||/^Windows\x20NT\x205\.1/.test(http.oscpu)) fails-if(!haveTestPlugin&&!Android) == pluginproblemui-direction-1.html pluginproblemui-direction-1.html
|
||||
#random-if(cocoaWidget) fails-if(!haveTestPlugin&&!Android) == pluginproblemui-direction-2.html pluginproblemui-direction-2.html
|
||||
== plugin-canvas-alpha-zindex.html plugin-canvas-alpha-zindex.html
|
||||
== plugin-transform-alpha-zindex.html plugin-transform-alpha-zindex.html
|
||||
== plugin-busy-alpha-zindex.html plugin-busy-alpha-zindex.html
|
||||
fails == plugin-canvas-alpha-zindex.html plugin-canvas-alpha-zindex.html
|
||||
fails == plugin-transform-alpha-zindex.html plugin-transform-alpha-zindex.html
|
||||
fails == plugin-busy-alpha-zindex.html plugin-busy-alpha-zindex.html
|
||||
# == plugin-background.html plugin-background.html
|
||||
== plugin-background-1-step.html plugin-background-1-step.html
|
||||
== plugin-background-2-step.html plugin-background-2-step.html
|
||||
== plugin-background-5-step.html plugin-background-5-step.html
|
||||
== plugin-background-10-step.html plugin-background-10-step.html
|
||||
fails == plugin-background-1-step.html plugin-background-1-step.html
|
||||
fails == plugin-background-2-step.html plugin-background-2-step.html
|
||||
fails == plugin-background-5-step.html plugin-background-5-step.html
|
||||
fails == plugin-background-10-step.html plugin-background-10-step.html
|
||||
== plugin-transform-1.html plugin-transform-1.html
|
||||
== plugin-transform-2.html plugin-transform-2.html
|
||||
== shrink-1.html shrink-1.html
|
||||
== update-1.html update-1.html
|
||||
fails == plugin-transform-2.html plugin-transform-2.html
|
||||
fails == shrink-1.html shrink-1.html
|
||||
fails == update-1.html update-1.html
|
||||
skip-if(!haveTestPlugin) == windowless-layers.html windowless-layers.html
|
||||
|
@ -23,13 +23,13 @@ load 572938-3.svg
|
||||
load 572938-4.svg
|
||||
load 588287-1.svg
|
||||
load 588287-2.svg
|
||||
load 590425-1.html
|
||||
load 592477-1.xhtml
|
||||
asserts-if(stylo,2) load 590425-1.html # bug 1324669
|
||||
asserts-if(stylo,1-27) load 592477-1.xhtml # bug 1324669
|
||||
load 594653-1.svg
|
||||
load 596796-1.svg
|
||||
load 605345-1.svg
|
||||
load 606101-1.svg
|
||||
load 608295-1.html
|
||||
asserts-if(stylo,2) load 608295-1.html # bug 1324689
|
||||
load 608549-1.svg
|
||||
load 611927-1.svg
|
||||
load 615002-1.svg
|
||||
|
@ -4,7 +4,7 @@ load 336994-1.html
|
||||
load 344888-1.svg
|
||||
load 345445-1.svg
|
||||
load 360836-1.svg
|
||||
load 367357-1.xhtml
|
||||
asserts-if(stylo,2) load 367357-1.xhtml # bug 1324669
|
||||
load 369051-1.svg
|
||||
load 369249-1.svg
|
||||
load 369291-1.svg
|
||||
@ -75,13 +75,13 @@ load 898915-1.svg
|
||||
load 1035248-1.svg
|
||||
load 1035248-2.svg
|
||||
load 1244898-1.xhtml
|
||||
load 1250725.html
|
||||
asserts-if(stylo,2) load 1250725.html # bug 1324669
|
||||
load 1267272-1.svg
|
||||
load 1282985-1.svg
|
||||
# Disabled for now due to it taking a very long time to run - bug 1259356
|
||||
#load long-clipPath-reference-chain.svg
|
||||
load zero-size-image.svg
|
||||
load 1322286.html
|
||||
asserts-if(stylo,2) load 1322286.html # bug 1324669
|
||||
load 1329849-1.svg
|
||||
load 1329849-2.svg
|
||||
load 1329849-3.svg
|
||||
|
@ -1,10 +1,10 @@
|
||||
# DO NOT EDIT! This is a auto-generated temporary list for Stylo testing
|
||||
== bug453105.html bug453105.html
|
||||
== optiontext.html optiontext.html
|
||||
== bug456008.xhtml bug456008.xhtml
|
||||
fails == bug453105.html bug453105.html
|
||||
fails == optiontext.html optiontext.html
|
||||
fails == bug456008.xhtml bug456008.xhtml
|
||||
== bug439965.html bug439965.html
|
||||
== bug427779.xml bug427779.xml
|
||||
== bug559996.html bug559996.html
|
||||
fails == bug559996.html bug559996.html
|
||||
== bug591981-1.html bug591981-1.html
|
||||
== bug591981-2.html bug591981-2.html
|
||||
== bug592366-1.html bug592366-1.html
|
||||
|
@ -1,5 +1,5 @@
|
||||
load 336081-1.xhtml
|
||||
load 336104.html
|
||||
asserts-if(stylo,2-3) load 336104.html # bug 1324669
|
||||
load 382527-1.html
|
||||
load 382778-1.html
|
||||
load 402172-1.html
|
||||
|
@ -2,23 +2,23 @@
|
||||
# include the XUL reftests
|
||||
include xul/reftest-stylo.list
|
||||
|
||||
== newline-1.html newline-1.html
|
||||
== newline-2.html newline-2.html
|
||||
== newline-3.html newline-3.html
|
||||
== newline-4.html newline-4.html
|
||||
== dynamic-1.html dynamic-1.html
|
||||
== dynamic-type-1.html dynamic-type-1.html
|
||||
== dynamic-type-2.html dynamic-type-2.html
|
||||
== dynamic-type-3.html dynamic-type-3.html
|
||||
== dynamic-type-4.html dynamic-type-4.html
|
||||
== passwd-1.html passwd-1.html
|
||||
== passwd-2.html passwd-2.html
|
||||
== passwd-3.html passwd-3.html
|
||||
needs-focus == passwd-4.html passwd-4.html
|
||||
== emptypasswd-1.html emptypasswd-1.html
|
||||
== emptypasswd-2.html emptypasswd-2.html
|
||||
== caret_on_positioned.html caret_on_positioned.html
|
||||
== spellcheck-input-disabled.html spellcheck-input-disabled.html
|
||||
fails == newline-1.html newline-1.html
|
||||
fails == newline-2.html newline-2.html
|
||||
fails == newline-3.html newline-3.html
|
||||
fails == newline-4.html newline-4.html
|
||||
fails == dynamic-1.html dynamic-1.html
|
||||
fails == dynamic-type-1.html dynamic-type-1.html
|
||||
fails == dynamic-type-2.html dynamic-type-2.html
|
||||
fails == dynamic-type-3.html dynamic-type-3.html
|
||||
fails == dynamic-type-4.html dynamic-type-4.html
|
||||
fails == passwd-1.html passwd-1.html
|
||||
fails == passwd-2.html passwd-2.html
|
||||
fails == passwd-3.html passwd-3.html
|
||||
fails needs-focus == passwd-4.html passwd-4.html
|
||||
fails == emptypasswd-1.html emptypasswd-1.html
|
||||
fails == emptypasswd-2.html emptypasswd-2.html
|
||||
fails == caret_on_positioned.html caret_on_positioned.html
|
||||
fails == spellcheck-input-disabled.html spellcheck-input-disabled.html
|
||||
# == spellcheck-input-attr-before.html spellcheck-input-attr-before.html
|
||||
# == spellcheck-input-attr-before.html spellcheck-input-attr-before.html
|
||||
# == spellcheck-input-attr-after.html spellcheck-input-attr-after.html
|
||||
@ -44,67 +44,67 @@ needs-focus == passwd-4.html passwd-4.html
|
||||
# == spellcheck-textarea-attr.html spellcheck-textarea-attr.html
|
||||
#the random-if(Android) tests pass on android native, but fail on android-xul, see bug 728942
|
||||
# == spellcheck-textarea-attr.html spellcheck-textarea-attr.html
|
||||
needs-focus == spellcheck-textarea-focused.html spellcheck-textarea-focused.html
|
||||
needs-focus == spellcheck-textarea-focused-reframe.html spellcheck-textarea-focused-reframe.html
|
||||
needs-focus == spellcheck-textarea-focused-notreadonly.html spellcheck-textarea-focused-notreadonly.html
|
||||
== spellcheck-textarea-nofocus.html spellcheck-textarea-nofocus.html
|
||||
== spellcheck-textarea-disabled.html spellcheck-textarea-disabled.html
|
||||
== spellcheck-textarea-attr-inherit.html spellcheck-textarea-attr-inherit.html
|
||||
== spellcheck-textarea-attr-dynamic.html spellcheck-textarea-attr-dynamic.html
|
||||
== spellcheck-textarea-attr-dynamic-inherit.html spellcheck-textarea-attr-dynamic-inherit.html
|
||||
== spellcheck-textarea-property-dynamic.html spellcheck-textarea-property-dynamic.html
|
||||
== spellcheck-textarea-property-dynamic-inherit.html spellcheck-textarea-property-dynamic-inherit.html
|
||||
== spellcheck-textarea-attr-dynamic-override.html spellcheck-textarea-attr-dynamic-override.html
|
||||
== spellcheck-textarea-attr-dynamic-override-inherit.html spellcheck-textarea-attr-dynamic-override-inherit.html
|
||||
== spellcheck-textarea-property-dynamic-override.html spellcheck-textarea-property-dynamic-override.html
|
||||
== spellcheck-textarea-property-dynamic-override-inherit.html spellcheck-textarea-property-dynamic-override-inherit.html
|
||||
needs-focus == caret_on_focus.html caret_on_focus.html
|
||||
needs-focus == caret_on_textarea_lastline.html caret_on_textarea_lastline.html
|
||||
needs-focus == input-text-onfocus-reframe.html input-text-onfocus-reframe.html
|
||||
needs-focus == input-text-notheme-onfocus-reframe.html input-text-notheme-onfocus-reframe.html
|
||||
needs-focus == caret_after_reframe.html caret_after_reframe.html
|
||||
fails needs-focus == spellcheck-textarea-focused.html spellcheck-textarea-focused.html
|
||||
fails needs-focus == spellcheck-textarea-focused-reframe.html spellcheck-textarea-focused-reframe.html
|
||||
fails needs-focus == spellcheck-textarea-focused-notreadonly.html spellcheck-textarea-focused-notreadonly.html
|
||||
fails == spellcheck-textarea-nofocus.html spellcheck-textarea-nofocus.html
|
||||
fails == spellcheck-textarea-disabled.html spellcheck-textarea-disabled.html
|
||||
fails == spellcheck-textarea-attr-inherit.html spellcheck-textarea-attr-inherit.html
|
||||
fails == spellcheck-textarea-attr-dynamic.html spellcheck-textarea-attr-dynamic.html
|
||||
fails == spellcheck-textarea-attr-dynamic-inherit.html spellcheck-textarea-attr-dynamic-inherit.html
|
||||
fails == spellcheck-textarea-property-dynamic.html spellcheck-textarea-property-dynamic.html
|
||||
fails == spellcheck-textarea-property-dynamic-inherit.html spellcheck-textarea-property-dynamic-inherit.html
|
||||
fails == spellcheck-textarea-attr-dynamic-override.html spellcheck-textarea-attr-dynamic-override.html
|
||||
fails == spellcheck-textarea-attr-dynamic-override-inherit.html spellcheck-textarea-attr-dynamic-override-inherit.html
|
||||
fails == spellcheck-textarea-property-dynamic-override.html spellcheck-textarea-property-dynamic-override.html
|
||||
fails == spellcheck-textarea-property-dynamic-override-inherit.html spellcheck-textarea-property-dynamic-override-inherit.html
|
||||
fails needs-focus == caret_on_focus.html caret_on_focus.html
|
||||
fails needs-focus == caret_on_textarea_lastline.html caret_on_textarea_lastline.html
|
||||
fails needs-focus == input-text-onfocus-reframe.html input-text-onfocus-reframe.html
|
||||
fails needs-focus == input-text-notheme-onfocus-reframe.html input-text-notheme-onfocus-reframe.html
|
||||
fails needs-focus == caret_after_reframe.html caret_after_reframe.html
|
||||
# == nobogusnode-1.html nobogusnode-1.html
|
||||
# == nobogusnode-2.html nobogusnode-2.html
|
||||
== spellcheck-hyphen-valid.html spellcheck-hyphen-valid.html
|
||||
== spellcheck-hyphen-invalid.html spellcheck-hyphen-invalid.html
|
||||
== spellcheck-slash-valid.html spellcheck-slash-valid.html
|
||||
== spellcheck-period-valid.html spellcheck-period-valid.html
|
||||
== spellcheck-space-valid.html spellcheck-space-valid.html
|
||||
== spellcheck-comma-valid.html spellcheck-comma-valid.html
|
||||
== spellcheck-hyphen-multiple-valid.html spellcheck-hyphen-multiple-valid.html
|
||||
== spellcheck-hyphen-multiple-invalid.html spellcheck-hyphen-multiple-invalid.html
|
||||
== spellcheck-dotafterquote-valid.html spellcheck-dotafterquote-valid.html
|
||||
== spellcheck-url-valid.html spellcheck-url-valid.html
|
||||
needs-focus == spellcheck-non-latin-arabic.html spellcheck-non-latin-arabic.html
|
||||
needs-focus == spellcheck-non-latin-chinese-simplified.html spellcheck-non-latin-chinese-simplified.html
|
||||
needs-focus == spellcheck-non-latin-chinese-traditional.html spellcheck-non-latin-chinese-traditional.html
|
||||
needs-focus == spellcheck-non-latin-hebrew.html spellcheck-non-latin-hebrew.html
|
||||
needs-focus == spellcheck-non-latin-japanese.html spellcheck-non-latin-japanese.html
|
||||
needs-focus == spellcheck-non-latin-korean.html spellcheck-non-latin-korean.html
|
||||
== unneeded_scroll.html unneeded_scroll.html
|
||||
fails == spellcheck-hyphen-valid.html spellcheck-hyphen-valid.html
|
||||
fails == spellcheck-hyphen-invalid.html spellcheck-hyphen-invalid.html
|
||||
fails == spellcheck-slash-valid.html spellcheck-slash-valid.html
|
||||
fails == spellcheck-period-valid.html spellcheck-period-valid.html
|
||||
fails == spellcheck-space-valid.html spellcheck-space-valid.html
|
||||
fails == spellcheck-comma-valid.html spellcheck-comma-valid.html
|
||||
fails == spellcheck-hyphen-multiple-valid.html spellcheck-hyphen-multiple-valid.html
|
||||
fails == spellcheck-hyphen-multiple-invalid.html spellcheck-hyphen-multiple-invalid.html
|
||||
fails == spellcheck-dotafterquote-valid.html spellcheck-dotafterquote-valid.html
|
||||
fails == spellcheck-url-valid.html spellcheck-url-valid.html
|
||||
fails needs-focus == spellcheck-non-latin-arabic.html spellcheck-non-latin-arabic.html
|
||||
fails needs-focus == spellcheck-non-latin-chinese-simplified.html spellcheck-non-latin-chinese-simplified.html
|
||||
fails needs-focus == spellcheck-non-latin-chinese-traditional.html spellcheck-non-latin-chinese-traditional.html
|
||||
fails needs-focus == spellcheck-non-latin-hebrew.html spellcheck-non-latin-hebrew.html
|
||||
fails needs-focus == spellcheck-non-latin-japanese.html spellcheck-non-latin-japanese.html
|
||||
fails needs-focus == spellcheck-non-latin-korean.html spellcheck-non-latin-korean.html
|
||||
fails == unneeded_scroll.html unneeded_scroll.html
|
||||
# == caret_on_presshell_reinit.html caret_on_presshell_reinit.html
|
||||
# == caret_on_presshell_reinit-2.html caret_on_presshell_reinit-2.html
|
||||
== 642800.html 642800.html
|
||||
== selection_visibility_after_reframe.html selection_visibility_after_reframe.html
|
||||
== selection_visibility_after_reframe-2.html selection_visibility_after_reframe-2.html
|
||||
== selection_visibility_after_reframe-3.html selection_visibility_after_reframe-3.html
|
||||
== 672709.html 672709.html
|
||||
== 338427-1.html 338427-1.html
|
||||
== 674212-spellcheck.html 674212-spellcheck.html
|
||||
== 338427-2.html 338427-2.html
|
||||
== 338427-3.html 338427-3.html
|
||||
== 462758-grabbers-resizers.html 462758-grabbers-resizers.html
|
||||
== readwrite-non-editable.html readwrite-non-editable.html
|
||||
== readwrite-editable.html readwrite-editable.html
|
||||
== readonly-non-editable.html readonly-non-editable.html
|
||||
== readonly-editable.html readonly-editable.html
|
||||
== dynamic-overflow-change.html dynamic-overflow-change.html
|
||||
== 694880-1.html 694880-1.html
|
||||
== 694880-2.html 694880-2.html
|
||||
== 694880-3.html 694880-3.html
|
||||
== 388980-1.html 388980-1.html
|
||||
needs-focus == spellcheck-superscript-1.html spellcheck-superscript-1.html
|
||||
== spellcheck-superscript-2.html spellcheck-superscript-2.html
|
||||
fails == 642800.html 642800.html
|
||||
fails == selection_visibility_after_reframe.html selection_visibility_after_reframe.html
|
||||
fails == selection_visibility_after_reframe-2.html selection_visibility_after_reframe-2.html
|
||||
fails == selection_visibility_after_reframe-3.html selection_visibility_after_reframe-3.html
|
||||
fails == 672709.html 672709.html
|
||||
fails == 338427-1.html 338427-1.html
|
||||
fails == 674212-spellcheck.html 674212-spellcheck.html
|
||||
fails == 338427-2.html 338427-2.html
|
||||
fails == 338427-3.html 338427-3.html
|
||||
fails == 462758-grabbers-resizers.html 462758-grabbers-resizers.html
|
||||
fails == readwrite-non-editable.html readwrite-non-editable.html
|
||||
fails == readwrite-editable.html readwrite-editable.html
|
||||
fails == readonly-non-editable.html readonly-non-editable.html
|
||||
fails == readonly-editable.html readonly-editable.html
|
||||
fails == dynamic-overflow-change.html dynamic-overflow-change.html
|
||||
fails == 694880-1.html 694880-1.html
|
||||
fails == 694880-2.html 694880-2.html
|
||||
fails == 694880-3.html 694880-3.html
|
||||
fails == 388980-1.html 388980-1.html
|
||||
fails needs-focus == spellcheck-superscript-1.html spellcheck-superscript-1.html
|
||||
fails == spellcheck-superscript-2.html spellcheck-superscript-2.html
|
||||
== 824080-1.html 824080-1.html
|
||||
# == 824080-2.html 824080-2.html
|
||||
# == 824080-3.html 824080-3.html
|
||||
@ -113,7 +113,7 @@ needs-focus == spellcheck-superscript-1.html spellcheck-superscript-1.html
|
||||
# == 824080-5.html 824080-5.html
|
||||
# needs-focus == 824080-4.html 824080-4.html
|
||||
# needs-focus == 824080-6.html 824080-6.html
|
||||
needs-focus pref(layout.accessiblecaret.enabled,false) pref(layout.accessiblecaret.enabled_on_touch,false) == 824080-7.html 824080-7.html
|
||||
fails needs-focus pref(layout.accessiblecaret.enabled,false) pref(layout.accessiblecaret.enabled_on_touch,false) == 824080-7.html 824080-7.html
|
||||
# needs-focus == 824080-6.html 824080-6.html
|
||||
# Bug 674927: copy spellcheck-textarea tests to contenteditable
|
||||
# == spellcheck-contenteditable-attr.html spellcheck-contenteditable-attr.html
|
||||
@ -133,6 +133,6 @@ needs-focus pref(layout.accessiblecaret.enabled,false) pref(layout.accessiblecar
|
||||
# == spellcheck-contenteditable-property-dynamic-override.html spellcheck-contenteditable-property-dynamic-override.html
|
||||
== spellcheck-contenteditable-property-dynamic-override-inherit.html spellcheck-contenteditable-property-dynamic-override-inherit.html
|
||||
# == 911201.html 911201.html
|
||||
needs-focus == 969773.html 969773.html
|
||||
== 997805.html 997805.html
|
||||
== 1088158.html 1088158.html
|
||||
fails needs-focus == 969773.html 969773.html
|
||||
fails == 997805.html 997805.html
|
||||
fails == 1088158.html 1088158.html
|
||||
|
@ -11,8 +11,8 @@ fuzzy-if(Android,3,5) skip-if(!Android) pref(apz.allow_zooming,true) == async-sc
|
||||
# Different async zoom levels. Since the scrollthumb gets async-scaled in the
|
||||
# compositor, the border-radius ends of the scrollthumb are going to be a little
|
||||
# off, hence the fuzzy-if clauses.
|
||||
== async-scrollbar-zoom-1.html async-scrollbar-zoom-1.html
|
||||
== async-scrollbar-zoom-2.html async-scrollbar-zoom-2.html
|
||||
fails == async-scrollbar-zoom-1.html async-scrollbar-zoom-1.html
|
||||
fails == async-scrollbar-zoom-2.html async-scrollbar-zoom-2.html
|
||||
|
||||
# Meta-viewport tag support
|
||||
# == initial-scale-1.html initial-scale-1.html
|
||||
|
@ -31,7 +31,7 @@ load 385423-1.html
|
||||
load 385423-2.html
|
||||
load 385719-1.html
|
||||
load 389326-1.html
|
||||
load 390476.html
|
||||
asserts-if(stylo,1) load 390476.html # bug 1324700
|
||||
load 393746-1.xhtml
|
||||
load 393749-1.html
|
||||
load 393822-1.html
|
||||
@ -103,18 +103,18 @@ load 693143-1.html
|
||||
load 696936-1.html
|
||||
load 699563-1.html
|
||||
load 710149-1.html
|
||||
load 766452-1.html
|
||||
asserts-if(stylo,1) load 766452-1.html # bug 1324700
|
||||
load 766452-2.html
|
||||
load 768079-1.html
|
||||
load 783041-1.html
|
||||
asserts-if(stylo,2) load 783041-1.html # bug 1324661
|
||||
load 783041-2.html
|
||||
load 783041-3.html
|
||||
asserts-if(stylo,1) load 783041-3.html # bug 1324671
|
||||
load 783041-4.html
|
||||
load 798853.html # bug 868792
|
||||
load 805760-1.html
|
||||
skip-if(Android) load 815489.html # bug 1216304
|
||||
load 836225-1.html
|
||||
load 839745-1.html
|
||||
asserts-if(stylo,2) load 839745-1.html # bug 1324669
|
||||
load 856784-1.html
|
||||
load 893572-1.html
|
||||
load 893572-2.html
|
||||
@ -122,14 +122,14 @@ load 893572-3.html
|
||||
load 893572-4.html
|
||||
pref(layers.force-active,true) load 914457-1.html
|
||||
load 944579.svg
|
||||
load 944579.html
|
||||
pref(security.fileuri.strict_origin_policy,false) load 950000.html
|
||||
asserts-if(stylo,2) load 944579.html # bug 1324669
|
||||
asserts-if(stylo,1) pref(security.fileuri.strict_origin_policy,false) load 950000.html # bug 1324700
|
||||
load 1034403-1.html
|
||||
load 1205900.html
|
||||
load 1134549-1.svg
|
||||
load balinese-letter-spacing.html
|
||||
load 1216832-1.html
|
||||
load 1225125-1.html
|
||||
load 1308394.html
|
||||
asserts-if(stylo,2) load 1308394.html # bug 1324669
|
||||
skip-if(stylo) load 1317403-1.html # bug 1331533
|
||||
load 1325159-1.html
|
||||
|
@ -1,10 +1,10 @@
|
||||
# DO NOT EDIT! This is a auto-generated temporary list for Stylo testing
|
||||
# 468496-1 will also detect bugs in video drivers.
|
||||
== 468496-1.html 468496-1.html
|
||||
fails == 468496-1.html 468496-1.html
|
||||
# == 611498-1.html 611498-1.html
|
||||
== 709477-1.html 709477-1.html
|
||||
fails == 709477-1.html 709477-1.html
|
||||
skip-if(!asyncPan) == 1086723.html 1086723.html
|
||||
== 853889-1.html 853889-1.html
|
||||
fails == 853889-1.html 853889-1.html
|
||||
skip-if(Android) fuzzy-if(skiaContent,1,587) == 1143303-1.svg 1143303-1.svg
|
||||
fuzzy(100,30) == 1149923.html 1149923.html
|
||||
== 1131264-1.svg 1131264-1.svg
|
||||
|
@ -22,4 +22,4 @@
|
||||
== top-to-bottom-16x16-4bpp.bmp top-to-bottom-16x16-4bpp.bmp
|
||||
# test that delta skips are drawn as transparent
|
||||
# taken from http://bmptestsuite.sourceforge.net/
|
||||
== rle4-delta-320x240.bmp rle4-delta-320x240.bmp
|
||||
fails == rle4-delta-320x240.bmp rle4-delta-320x240.bmp
|
||||
|
@ -22,12 +22,12 @@
|
||||
# others make them black, and others assign them palette color 0 (purple, in
|
||||
# this case)."
|
||||
# [We make the undefined pixels transparent. So does Chromium.]
|
||||
== pal4rletrns.bmp pal4rletrns.bmp
|
||||
fails == pal4rletrns.bmp pal4rletrns.bmp
|
||||
|
||||
# BMP: bihsize=40, 127 x 64, bpp=8, compression=1, colors=253
|
||||
# "8-bit version of q/pal4rletrns.bmp."
|
||||
# [Ditto.]
|
||||
== pal8rletrns.bmp pal8rletrns.bmp
|
||||
fails == pal8rletrns.bmp pal8rletrns.bmp
|
||||
|
||||
# BMP: bihsize=40, 127 x 64, bpp=8, compression=0, colors=252
|
||||
# "A file with some unused bytes between the palette and the image. This is
|
||||
@ -72,7 +72,7 @@
|
||||
# "A 16-bit image with an alpha channel. There are 4 bits for each color
|
||||
# channel, and 4 bits for the alpha channel. It’s not clear if this is valid,
|
||||
# but I can’t find anything that suggests it isn’t."
|
||||
== rgba16-4444.bmp rgba16-4444.bmp
|
||||
fails == rgba16-4444.bmp rgba16-4444.bmp
|
||||
|
||||
# BMP: bihsize=40, 127 x 64, bpp=24, compression=0, colors=300
|
||||
# "A 24-bit image, with a palette containing 300 colors. The fact that the
|
||||
@ -120,7 +120,7 @@
|
||||
# possible that this file is not correctly formed. The color channels are in an
|
||||
# unusual order, to prevent viewers from passing this test by making a lucky
|
||||
# guess."
|
||||
== rgba32.bmp rgba32.bmp
|
||||
fails == rgba32.bmp rgba32.bmp
|
||||
|
||||
# BMP: bihsize=40, 127 x 64, bpp=32, compression=6, colors=0
|
||||
# "An image of type BI_ALPHABITFIELDS. Supposedly, this was used on Windows CE.
|
||||
|
@ -27,12 +27,12 @@
|
||||
|
||||
# RUN TESTS NOT AFFECTED BY DOWNSCALE-DURING-DECODE:
|
||||
# #
|
||||
== downscale-svg-1a.html downscale-svg-1a.html
|
||||
== downscale-svg-1b.html downscale-svg-1b.html
|
||||
== downscale-svg-1c.html downscale-svg-1c.html
|
||||
== downscale-svg-1d.html downscale-svg-1d.html
|
||||
== downscale-svg-1e.html downscale-svg-1e.html
|
||||
== downscale-svg-1f.html downscale-svg-1f.html
|
||||
fails == downscale-svg-1a.html downscale-svg-1a.html
|
||||
fails == downscale-svg-1b.html downscale-svg-1b.html
|
||||
fails == downscale-svg-1c.html downscale-svg-1c.html
|
||||
fails == downscale-svg-1d.html downscale-svg-1d.html
|
||||
fails == downscale-svg-1e.html downscale-svg-1e.html
|
||||
fails == downscale-svg-1f.html downscale-svg-1f.html
|
||||
|
||||
# RUN TESTS WITH DOWNSCALE-DURING-DECODE DISABLED:
|
||||
# #
|
||||
@ -40,74 +40,74 @@ default-preferences pref(image.downscale-during-decode.enabled,false)
|
||||
|
||||
== downscale-1.html downscale-1.html
|
||||
|
||||
== downscale-2a.html?203,52,left downscale-2a.html?203,52,left
|
||||
== downscale-2b.html?203,52,left downscale-2b.html?203,52,left
|
||||
== downscale-2c.html?203,52,left downscale-2c.html?203,52,left
|
||||
== downscale-2d.html?203,52,left downscale-2d.html?203,52,left
|
||||
== downscale-2e.html?203,52,left downscale-2e.html?203,52,left
|
||||
fails == downscale-2a.html?203,52,left downscale-2a.html?203,52,left
|
||||
fails == downscale-2b.html?203,52,left downscale-2b.html?203,52,left
|
||||
fails == downscale-2c.html?203,52,left downscale-2c.html?203,52,left
|
||||
fails == downscale-2d.html?203,52,left downscale-2d.html?203,52,left
|
||||
fails == downscale-2e.html?203,52,left downscale-2e.html?203,52,left
|
||||
|
||||
== downscale-2a.html?205,53,left downscale-2a.html?205,53,left
|
||||
== downscale-2b.html?205,53,left downscale-2b.html?205,53,left
|
||||
== downscale-2c.html?205,53,left downscale-2c.html?205,53,left
|
||||
== downscale-2d.html?205,53,left downscale-2d.html?205,53,left
|
||||
== downscale-2e.html?205,53,left downscale-2e.html?205,53,left
|
||||
fails == downscale-2a.html?205,53,left downscale-2a.html?205,53,left
|
||||
fails == downscale-2b.html?205,53,left downscale-2b.html?205,53,left
|
||||
fails == downscale-2c.html?205,53,left downscale-2c.html?205,53,left
|
||||
fails == downscale-2d.html?205,53,left downscale-2d.html?205,53,left
|
||||
fails == downscale-2e.html?205,53,left downscale-2e.html?205,53,left
|
||||
|
||||
== downscale-2a.html?203,52,right downscale-2a.html?203,52,right
|
||||
== downscale-2b.html?203,52,right downscale-2b.html?203,52,right
|
||||
== downscale-2c.html?203,52,right downscale-2c.html?203,52,right
|
||||
== downscale-2d.html?203,52,right downscale-2d.html?203,52,right
|
||||
== downscale-2e.html?203,52,right downscale-2e.html?203,52,right
|
||||
fails == downscale-2a.html?203,52,right downscale-2a.html?203,52,right
|
||||
fails == downscale-2b.html?203,52,right downscale-2b.html?203,52,right
|
||||
fails == downscale-2c.html?203,52,right downscale-2c.html?203,52,right
|
||||
fails == downscale-2d.html?203,52,right downscale-2d.html?203,52,right
|
||||
fails == downscale-2e.html?203,52,right downscale-2e.html?203,52,right
|
||||
|
||||
== downscale-2a.html?205,53,right downscale-2a.html?205,53,right
|
||||
== downscale-2b.html?205,53,right downscale-2b.html?205,53,right
|
||||
== downscale-2c.html?205,53,right downscale-2c.html?205,53,right
|
||||
== downscale-2d.html?205,53,right downscale-2d.html?205,53,right
|
||||
== downscale-2e.html?205,53,right downscale-2e.html?205,53,right
|
||||
fails == downscale-2a.html?205,53,right downscale-2a.html?205,53,right
|
||||
fails == downscale-2b.html?205,53,right downscale-2b.html?205,53,right
|
||||
fails == downscale-2c.html?205,53,right downscale-2c.html?205,53,right
|
||||
fails == downscale-2d.html?205,53,right downscale-2d.html?205,53,right
|
||||
fails == downscale-2e.html?205,53,right downscale-2e.html?205,53,right
|
||||
|
||||
== downscale-2a.html?203,52,top downscale-2a.html?203,52,top
|
||||
== downscale-2b.html?203,52,top downscale-2b.html?203,52,top
|
||||
== downscale-2c.html?203,52,top downscale-2c.html?203,52,top
|
||||
== downscale-2d.html?203,52,top downscale-2d.html?203,52,top
|
||||
== downscale-2e.html?203,52,top downscale-2e.html?203,52,top
|
||||
fails == downscale-2a.html?203,52,top downscale-2a.html?203,52,top
|
||||
fails == downscale-2b.html?203,52,top downscale-2b.html?203,52,top
|
||||
fails == downscale-2c.html?203,52,top downscale-2c.html?203,52,top
|
||||
fails == downscale-2d.html?203,52,top downscale-2d.html?203,52,top
|
||||
fails == downscale-2e.html?203,52,top downscale-2e.html?203,52,top
|
||||
|
||||
== downscale-2a.html?205,53,top downscale-2a.html?205,53,top
|
||||
== downscale-2b.html?205,53,top downscale-2b.html?205,53,top
|
||||
== downscale-2c.html?205,53,top downscale-2c.html?205,53,top
|
||||
== downscale-2d.html?205,53,top downscale-2d.html?205,53,top
|
||||
== downscale-2e.html?205,53,top downscale-2e.html?205,53,top
|
||||
fails == downscale-2a.html?205,53,top downscale-2a.html?205,53,top
|
||||
fails == downscale-2b.html?205,53,top downscale-2b.html?205,53,top
|
||||
fails == downscale-2c.html?205,53,top downscale-2c.html?205,53,top
|
||||
fails == downscale-2d.html?205,53,top downscale-2d.html?205,53,top
|
||||
fails == downscale-2e.html?205,53,top downscale-2e.html?205,53,top
|
||||
|
||||
== downscale-2a.html?203,52,bottom downscale-2a.html?203,52,bottom
|
||||
== downscale-2b.html?203,52,bottom downscale-2b.html?203,52,bottom
|
||||
== downscale-2c.html?203,52,bottom downscale-2c.html?203,52,bottom
|
||||
== downscale-2d.html?203,52,bottom downscale-2d.html?203,52,bottom
|
||||
== downscale-2e.html?203,52,bottom downscale-2e.html?203,52,bottom
|
||||
fails == downscale-2a.html?203,52,bottom downscale-2a.html?203,52,bottom
|
||||
fails == downscale-2b.html?203,52,bottom downscale-2b.html?203,52,bottom
|
||||
fails == downscale-2c.html?203,52,bottom downscale-2c.html?203,52,bottom
|
||||
fails == downscale-2d.html?203,52,bottom downscale-2d.html?203,52,bottom
|
||||
fails == downscale-2e.html?203,52,bottom downscale-2e.html?203,52,bottom
|
||||
|
||||
== downscale-2a.html?205,53,bottom downscale-2a.html?205,53,bottom
|
||||
== downscale-2b.html?205,53,bottom downscale-2b.html?205,53,bottom
|
||||
== downscale-2c.html?205,53,bottom downscale-2c.html?205,53,bottom
|
||||
== downscale-2d.html?205,53,bottom downscale-2d.html?205,53,bottom
|
||||
== downscale-2e.html?205,53,bottom downscale-2e.html?205,53,bottom
|
||||
fails == downscale-2a.html?205,53,bottom downscale-2a.html?205,53,bottom
|
||||
fails == downscale-2b.html?205,53,bottom downscale-2b.html?205,53,bottom
|
||||
fails == downscale-2c.html?205,53,bottom downscale-2c.html?205,53,bottom
|
||||
fails == downscale-2d.html?205,53,bottom downscale-2d.html?205,53,bottom
|
||||
fails == downscale-2e.html?205,53,bottom downscale-2e.html?205,53,bottom
|
||||
|
||||
== downscale-moz-icon-1.html downscale-moz-icon-1.html
|
||||
|
||||
== downscale-png.html?16,16,interlaced downscale-png.html?16,16,interlaced
|
||||
== downscale-png.html?24,24,interlaced downscale-png.html?24,24,interlaced
|
||||
fails == downscale-png.html?16,16,interlaced downscale-png.html?16,16,interlaced
|
||||
fails == downscale-png.html?24,24,interlaced downscale-png.html?24,24,interlaced
|
||||
|
||||
# Non-transparent and transparent ICO images
|
||||
== downscale-16px.html?ff-0RGB.ico downscale-16px.html?ff-0RGB.ico
|
||||
== downscale-16px.html?ff-ARGB.ico downscale-16px.html?ff-ARGB.ico
|
||||
fails == downscale-16px.html?ff-0RGB.ico downscale-16px.html?ff-0RGB.ico
|
||||
fails == downscale-16px.html?ff-ARGB.ico downscale-16px.html?ff-ARGB.ico
|
||||
|
||||
# Upside-down (negative height) BMP
|
||||
== downscale-8px.html?top-to-bottom-16x16-24bpp.bmp downscale-8px.html?top-to-bottom-16x16-24bpp.bmp
|
||||
fails == downscale-8px.html?top-to-bottom-16x16-24bpp.bmp downscale-8px.html?top-to-bottom-16x16-24bpp.bmp
|
||||
|
||||
# Test downscaling from all supported formats from 256 to 32.
|
||||
== downscale-32px.html?.bmp downscale-32px.html?.bmp
|
||||
== downscale-32px.html?.gif downscale-32px.html?.gif
|
||||
== downscale-32px.html?.jpg downscale-32px.html?.jpg
|
||||
== downscale-32px.html?.png downscale-32px.html?.png
|
||||
== downscale-32px.html?.svg downscale-32px.html?.svg
|
||||
== downscale-32px.html?-bmp-in.ico downscale-32px.html?-bmp-in.ico
|
||||
== downscale-32px.html?-png-in.ico downscale-32px.html?-png-in.ico
|
||||
fails == downscale-32px.html?.bmp downscale-32px.html?.bmp
|
||||
fails == downscale-32px.html?.gif downscale-32px.html?.gif
|
||||
fails == downscale-32px.html?.jpg downscale-32px.html?.jpg
|
||||
fails == downscale-32px.html?.png downscale-32px.html?.png
|
||||
fails == downscale-32px.html?.svg downscale-32px.html?.svg
|
||||
fails == downscale-32px.html?-bmp-in.ico downscale-32px.html?-bmp-in.ico
|
||||
fails == downscale-32px.html?-png-in.ico downscale-32px.html?-png-in.ico
|
||||
|
||||
# RUN TESTS WITH DOWNSCALE-DURING-DECODE ENABLED:
|
||||
# #
|
||||
@ -115,80 +115,80 @@ default-preferences pref(image.downscale-during-decode.enabled,true)
|
||||
|
||||
== downscale-1.html downscale-1.html
|
||||
|
||||
== downscale-2a.html?203,52,left downscale-2a.html?203,52,left
|
||||
== downscale-2b.html?203,52,left downscale-2b.html?203,52,left
|
||||
== downscale-2c.html?203,52,left downscale-2c.html?203,52,left
|
||||
== downscale-2d.html?203,52,left downscale-2d.html?203,52,left
|
||||
== downscale-2e.html?203,52,left downscale-2e.html?203,52,left
|
||||
== downscale-2f.html?203,52,left downscale-2f.html?203,52,left
|
||||
fails == downscale-2a.html?203,52,left downscale-2a.html?203,52,left
|
||||
fails == downscale-2b.html?203,52,left downscale-2b.html?203,52,left
|
||||
fails == downscale-2c.html?203,52,left downscale-2c.html?203,52,left
|
||||
fails == downscale-2d.html?203,52,left downscale-2d.html?203,52,left
|
||||
fails == downscale-2e.html?203,52,left downscale-2e.html?203,52,left
|
||||
fails == downscale-2f.html?203,52,left downscale-2f.html?203,52,left
|
||||
|
||||
== downscale-2a.html?205,53,left downscale-2a.html?205,53,left
|
||||
== downscale-2b.html?205,53,left downscale-2b.html?205,53,left
|
||||
== downscale-2c.html?205,53,left downscale-2c.html?205,53,left
|
||||
== downscale-2d.html?205,53,left downscale-2d.html?205,53,left
|
||||
== downscale-2e.html?205,53,left downscale-2e.html?205,53,left
|
||||
== downscale-2f.html?205,53,left downscale-2f.html?205,53,left
|
||||
fails == downscale-2a.html?205,53,left downscale-2a.html?205,53,left
|
||||
fails == downscale-2b.html?205,53,left downscale-2b.html?205,53,left
|
||||
fails == downscale-2c.html?205,53,left downscale-2c.html?205,53,left
|
||||
fails == downscale-2d.html?205,53,left downscale-2d.html?205,53,left
|
||||
fails == downscale-2e.html?205,53,left downscale-2e.html?205,53,left
|
||||
fails == downscale-2f.html?205,53,left downscale-2f.html?205,53,left
|
||||
|
||||
== downscale-2a.html?203,52,right downscale-2a.html?203,52,right
|
||||
== downscale-2b.html?203,52,right downscale-2b.html?203,52,right
|
||||
== downscale-2c.html?203,52,right downscale-2c.html?203,52,right
|
||||
== downscale-2d.html?203,52,right downscale-2d.html?203,52,right
|
||||
== downscale-2e.html?203,52,right downscale-2e.html?203,52,right
|
||||
== downscale-2f.html?203,52,right downscale-2f.html?203,52,right
|
||||
fails == downscale-2a.html?203,52,right downscale-2a.html?203,52,right
|
||||
fails == downscale-2b.html?203,52,right downscale-2b.html?203,52,right
|
||||
fails == downscale-2c.html?203,52,right downscale-2c.html?203,52,right
|
||||
fails == downscale-2d.html?203,52,right downscale-2d.html?203,52,right
|
||||
fails == downscale-2e.html?203,52,right downscale-2e.html?203,52,right
|
||||
fails == downscale-2f.html?203,52,right downscale-2f.html?203,52,right
|
||||
|
||||
== downscale-2a.html?205,53,right downscale-2a.html?205,53,right
|
||||
== downscale-2b.html?205,53,right downscale-2b.html?205,53,right
|
||||
== downscale-2c.html?205,53,right downscale-2c.html?205,53,right
|
||||
== downscale-2d.html?205,53,right downscale-2d.html?205,53,right
|
||||
== downscale-2e.html?205,53,right downscale-2e.html?205,53,right
|
||||
== downscale-2f.html?205,53,right downscale-2f.html?205,53,right
|
||||
fails == downscale-2a.html?205,53,right downscale-2a.html?205,53,right
|
||||
fails == downscale-2b.html?205,53,right downscale-2b.html?205,53,right
|
||||
fails == downscale-2c.html?205,53,right downscale-2c.html?205,53,right
|
||||
fails == downscale-2d.html?205,53,right downscale-2d.html?205,53,right
|
||||
fails == downscale-2e.html?205,53,right downscale-2e.html?205,53,right
|
||||
fails == downscale-2f.html?205,53,right downscale-2f.html?205,53,right
|
||||
|
||||
== downscale-2a.html?203,52,top downscale-2a.html?203,52,top
|
||||
== downscale-2b.html?203,52,top downscale-2b.html?203,52,top
|
||||
== downscale-2c.html?203,52,top downscale-2c.html?203,52,top
|
||||
== downscale-2d.html?203,52,top downscale-2d.html?203,52,top
|
||||
== downscale-2e.html?203,52,top downscale-2e.html?203,52,top
|
||||
== downscale-2f.html?203,52,top downscale-2f.html?203,52,top
|
||||
fails == downscale-2a.html?203,52,top downscale-2a.html?203,52,top
|
||||
fails == downscale-2b.html?203,52,top downscale-2b.html?203,52,top
|
||||
fails == downscale-2c.html?203,52,top downscale-2c.html?203,52,top
|
||||
fails == downscale-2d.html?203,52,top downscale-2d.html?203,52,top
|
||||
fails == downscale-2e.html?203,52,top downscale-2e.html?203,52,top
|
||||
fails == downscale-2f.html?203,52,top downscale-2f.html?203,52,top
|
||||
|
||||
== downscale-2a.html?205,53,top downscale-2a.html?205,53,top
|
||||
== downscale-2b.html?205,53,top downscale-2b.html?205,53,top
|
||||
== downscale-2c.html?205,53,top downscale-2c.html?205,53,top
|
||||
== downscale-2d.html?205,53,top downscale-2d.html?205,53,top
|
||||
== downscale-2e.html?205,53,top downscale-2e.html?205,53,top
|
||||
== downscale-2f.html?205,53,top downscale-2f.html?205,53,top
|
||||
fails == downscale-2a.html?205,53,top downscale-2a.html?205,53,top
|
||||
fails == downscale-2b.html?205,53,top downscale-2b.html?205,53,top
|
||||
fails == downscale-2c.html?205,53,top downscale-2c.html?205,53,top
|
||||
fails == downscale-2d.html?205,53,top downscale-2d.html?205,53,top
|
||||
fails == downscale-2e.html?205,53,top downscale-2e.html?205,53,top
|
||||
fails == downscale-2f.html?205,53,top downscale-2f.html?205,53,top
|
||||
|
||||
== downscale-2a.html?203,52,bottom downscale-2a.html?203,52,bottom
|
||||
== downscale-2b.html?203,52,bottom downscale-2b.html?203,52,bottom
|
||||
== downscale-2c.html?203,52,bottom downscale-2c.html?203,52,bottom
|
||||
== downscale-2d.html?203,52,bottom downscale-2d.html?203,52,bottom
|
||||
== downscale-2e.html?203,52,bottom downscale-2e.html?203,52,bottom
|
||||
== downscale-2f.html?203,52,bottom downscale-2f.html?203,52,bottom
|
||||
fails == downscale-2a.html?203,52,bottom downscale-2a.html?203,52,bottom
|
||||
fails == downscale-2b.html?203,52,bottom downscale-2b.html?203,52,bottom
|
||||
fails == downscale-2c.html?203,52,bottom downscale-2c.html?203,52,bottom
|
||||
fails == downscale-2d.html?203,52,bottom downscale-2d.html?203,52,bottom
|
||||
fails == downscale-2e.html?203,52,bottom downscale-2e.html?203,52,bottom
|
||||
fails == downscale-2f.html?203,52,bottom downscale-2f.html?203,52,bottom
|
||||
|
||||
== downscale-2a.html?205,53,bottom downscale-2a.html?205,53,bottom
|
||||
== downscale-2b.html?205,53,bottom downscale-2b.html?205,53,bottom
|
||||
== downscale-2c.html?205,53,bottom downscale-2c.html?205,53,bottom
|
||||
== downscale-2d.html?205,53,bottom downscale-2d.html?205,53,bottom
|
||||
== downscale-2e.html?205,53,bottom downscale-2e.html?205,53,bottom
|
||||
== downscale-2f.html?205,53,bottom downscale-2f.html?205,53,bottom
|
||||
fails == downscale-2a.html?205,53,bottom downscale-2a.html?205,53,bottom
|
||||
fails == downscale-2b.html?205,53,bottom downscale-2b.html?205,53,bottom
|
||||
fails == downscale-2c.html?205,53,bottom downscale-2c.html?205,53,bottom
|
||||
fails == downscale-2d.html?205,53,bottom downscale-2d.html?205,53,bottom
|
||||
fails == downscale-2e.html?205,53,bottom downscale-2e.html?205,53,bottom
|
||||
fails == downscale-2f.html?205,53,bottom downscale-2f.html?205,53,bottom
|
||||
|
||||
# Skip on WinXP with skia content
|
||||
== downscale-moz-icon-1.html downscale-moz-icon-1.html
|
||||
|
||||
== downscale-png.html?16,16,interlaced downscale-png.html?16,16,interlaced
|
||||
== downscale-png.html?24,24,interlaced downscale-png.html?24,24,interlaced
|
||||
fails == downscale-png.html?16,16,interlaced downscale-png.html?16,16,interlaced
|
||||
fails == downscale-png.html?24,24,interlaced downscale-png.html?24,24,interlaced
|
||||
|
||||
# Non-transparent and transparent ICO images
|
||||
== downscale-16px.html?ff-0RGB.ico downscale-16px.html?ff-0RGB.ico
|
||||
== downscale-16px.html?ff-ARGB.ico downscale-16px.html?ff-ARGB.ico
|
||||
fails == downscale-16px.html?ff-0RGB.ico downscale-16px.html?ff-0RGB.ico
|
||||
fails == downscale-16px.html?ff-ARGB.ico downscale-16px.html?ff-ARGB.ico
|
||||
|
||||
# Upside-down (negative height) BMP
|
||||
== downscale-8px.html?top-to-bottom-16x16-24bpp.bmp downscale-8px.html?top-to-bottom-16x16-24bpp.bmp
|
||||
fails == downscale-8px.html?top-to-bottom-16x16-24bpp.bmp downscale-8px.html?top-to-bottom-16x16-24bpp.bmp
|
||||
|
||||
# Test downscaling from all supported formats from 256 to 32.
|
||||
== downscale-32px.html?.bmp downscale-32px.html?.bmp
|
||||
== downscale-32px.html?.gif downscale-32px.html?.gif
|
||||
== downscale-32px.html?.jpg downscale-32px.html?.jpg
|
||||
== downscale-32px.html?.png downscale-32px.html?.png
|
||||
== downscale-32px.html?.svg downscale-32px.html?.svg
|
||||
== downscale-32px.html?-bmp-in.ico downscale-32px.html?-bmp-in.ico
|
||||
== downscale-32px.html?-png-in.ico downscale-32px.html?-png-in.ico
|
||||
fails == downscale-32px.html?.bmp downscale-32px.html?.bmp
|
||||
fails == downscale-32px.html?.gif downscale-32px.html?.gif
|
||||
fails == downscale-32px.html?.jpg downscale-32px.html?.jpg
|
||||
fails == downscale-32px.html?.png downscale-32px.html?.png
|
||||
fails == downscale-32px.html?.svg downscale-32px.html?.svg
|
||||
fails == downscale-32px.html?-bmp-in.ico downscale-32px.html?-bmp-in.ico
|
||||
fails == downscale-32px.html?-png-in.ico downscale-32px.html?-png-in.ico
|
||||
|
@ -2,29 +2,29 @@
|
||||
# GIF tests
|
||||
|
||||
# tests for bug 519589
|
||||
== 1bit-255-trans.gif 1bit-255-trans.gif
|
||||
== in-colormap-trans.gif in-colormap-trans.gif
|
||||
== out-of-colormap-trans.gif out-of-colormap-trans.gif
|
||||
fails == 1bit-255-trans.gif 1bit-255-trans.gif
|
||||
fails == in-colormap-trans.gif in-colormap-trans.gif
|
||||
fails == out-of-colormap-trans.gif out-of-colormap-trans.gif
|
||||
|
||||
# a GIF file that uses the comment extension
|
||||
== comment.gif comment.gif
|
||||
|
||||
# a GIF file with a background smaller than the size of the canvas
|
||||
== small-background-size.gif small-background-size.gif
|
||||
== small-background-size-2.gif small-background-size-2.gif
|
||||
fails == small-background-size.gif small-background-size.gif
|
||||
fails == small-background-size-2.gif small-background-size-2.gif
|
||||
|
||||
# a transparent gif that disposes previous frames with clear; we must properly
|
||||
# clear each frame to pass.
|
||||
random == delaytest.html?transparent-animation.gif delaytest.html?transparent-animation.gif
|
||||
|
||||
# test for bug 641198
|
||||
== test_bug641198.html test_bug641198.html
|
||||
fails == test_bug641198.html test_bug641198.html
|
||||
|
||||
# Bug 1062886: a gif with a single color and an offset
|
||||
== one-color-offset.gif one-color-offset.gif
|
||||
fails == one-color-offset.gif one-color-offset.gif
|
||||
|
||||
# Bug 1068230
|
||||
== tile-transform.html tile-transform.html
|
||||
fails == tile-transform.html tile-transform.html
|
||||
|
||||
# Bug 1234077
|
||||
== truncated-framerect.html truncated-framerect.html
|
||||
@ -51,4 +51,4 @@ random == delaytest.html?transparent-animation.gif delaytest.html?transparent-an
|
||||
# won't be in the text of the contents themselves. --$(boundary)\r\n means
|
||||
# "Here is the beginning of a boundary," and --$(boundary)-- means "All done
|
||||
# sending you parts.")
|
||||
HTTP == webcam.html webcam.html
|
||||
fails HTTP == webcam.html webcam.html
|
||||
|
@ -18,7 +18,7 @@
|
||||
== ico-size-32x32-1bpp.ico ico-size-32x32-1bpp.ico
|
||||
== ico-size-33x33-1bpp.ico ico-size-33x33-1bpp.ico
|
||||
== ico-size-256x256-1bpp.ico ico-size-256x256-1bpp.ico
|
||||
== ico-partial-transparent-1bpp.ico ico-partial-transparent-1bpp.ico
|
||||
== ico-transparent-1bpp.ico ico-transparent-1bpp.ico
|
||||
== ico-not-square-transparent-1bpp.ico ico-not-square-transparent-1bpp.ico
|
||||
fails == ico-partial-transparent-1bpp.ico ico-partial-transparent-1bpp.ico
|
||||
fails == ico-transparent-1bpp.ico ico-transparent-1bpp.ico
|
||||
fails == ico-not-square-transparent-1bpp.ico ico-not-square-transparent-1bpp.ico
|
||||
|
||||
|
@ -18,7 +18,7 @@
|
||||
== ico-size-32x32-24bpp.ico ico-size-32x32-24bpp.ico
|
||||
== ico-size-33x33-24bpp.ico ico-size-33x33-24bpp.ico
|
||||
== ico-size-256x256-24bpp.ico ico-size-256x256-24bpp.ico
|
||||
== ico-partial-transparent-24bpp.ico ico-partial-transparent-24bpp.ico
|
||||
== ico-transparent-24bpp.ico ico-transparent-24bpp.ico
|
||||
== ico-not-square-transparent-24bpp.ico ico-not-square-transparent-24bpp.ico
|
||||
fails == ico-partial-transparent-24bpp.ico ico-partial-transparent-24bpp.ico
|
||||
fails == ico-transparent-24bpp.ico ico-transparent-24bpp.ico
|
||||
fails == ico-not-square-transparent-24bpp.ico ico-not-square-transparent-24bpp.ico
|
||||
|
||||
|
@ -18,6 +18,6 @@
|
||||
== ico-size-32x32-32bpp.ico ico-size-32x32-32bpp.ico
|
||||
== ico-size-33x33-32bpp.ico ico-size-33x33-32bpp.ico
|
||||
== ico-size-256x256-32bpp.ico ico-size-256x256-32bpp.ico
|
||||
== ico-partial-transparent-32bpp.ico ico-partial-transparent-32bpp.ico
|
||||
== ico-transparent-32bpp.ico ico-transparent-32bpp.ico
|
||||
== ico-not-square-transparent-32bpp.ico ico-not-square-transparent-32bpp.ico
|
||||
fails == ico-partial-transparent-32bpp.ico ico-partial-transparent-32bpp.ico
|
||||
fails == ico-transparent-32bpp.ico ico-transparent-32bpp.ico
|
||||
fails == ico-not-square-transparent-32bpp.ico ico-not-square-transparent-32bpp.ico
|
||||
|
@ -18,7 +18,7 @@
|
||||
== ico-size-32x32-4bpp.ico ico-size-32x32-4bpp.ico
|
||||
== ico-size-33x33-4bpp.ico ico-size-33x33-4bpp.ico
|
||||
== ico-size-256x256-4bpp.ico ico-size-256x256-4bpp.ico
|
||||
== ico-partial-transparent-4bpp.ico ico-partial-transparent-4bpp.ico
|
||||
== ico-transparent-4bpp.ico ico-transparent-4bpp.ico
|
||||
== ico-not-square-transparent-4bpp.ico ico-not-square-transparent-4bpp.ico
|
||||
fails == ico-partial-transparent-4bpp.ico ico-partial-transparent-4bpp.ico
|
||||
fails == ico-transparent-4bpp.ico ico-transparent-4bpp.ico
|
||||
fails == ico-not-square-transparent-4bpp.ico ico-not-square-transparent-4bpp.ico
|
||||
|
||||
|
@ -18,7 +18,7 @@
|
||||
== ico-size-32x32-8bpp.ico ico-size-32x32-8bpp.ico
|
||||
== ico-size-33x33-8bpp.ico ico-size-33x33-8bpp.ico
|
||||
== ico-size-256x256-8bpp.ico ico-size-256x256-8bpp.ico
|
||||
== ico-partial-transparent-8bpp.ico ico-partial-transparent-8bpp.ico
|
||||
== ico-transparent-8bpp.ico ico-transparent-8bpp.ico
|
||||
== ico-not-square-transparent-8bpp.ico ico-not-square-transparent-8bpp.ico
|
||||
fails == ico-partial-transparent-8bpp.ico ico-partial-transparent-8bpp.ico
|
||||
fails == ico-transparent-8bpp.ico ico-transparent-8bpp.ico
|
||||
fails == ico-not-square-transparent-8bpp.ico ico-not-square-transparent-8bpp.ico
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
# DO NOT EDIT! This is a auto-generated temporary list for Stylo testing
|
||||
# ICO BMP and PNG mixed tests
|
||||
|
||||
== mixed-bmp-png.ico mixed-bmp-png.ico
|
||||
fails == mixed-bmp-png.ico mixed-bmp-png.ico
|
||||
|
@ -26,5 +26,5 @@
|
||||
== wrapper.html?xcrn0g04.ico wrapper.html?xcrn0g04.ico
|
||||
|
||||
# Test ICO PNG transparency
|
||||
== transparent-png.ico transparent-png.ico
|
||||
fails == transparent-png.ico transparent-png.ico
|
||||
|
||||
|
@ -29,8 +29,6 @@ Library('unicharutil_external_s')
|
||||
|
||||
FORCE_STATIC_LIB = True
|
||||
|
||||
SDK_LIBRARY = True
|
||||
|
||||
USE_STATIC_LIBS = True
|
||||
|
||||
if CONFIG['_MSC_VER']:
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user