Merge pull request #1690 from yurydelendik/stringbundle-1
Loading extension resources via stringbundle
This commit is contained in:
commit
5afef149ea
1
extensions/chrome/.gitignore
vendored
Normal file
1
extensions/chrome/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
content/
|
2
extensions/firefox/.gitignore
vendored
2
extensions/firefox/.gitignore
vendored
@ -1,2 +1,4 @@
|
|||||||
content/
|
content/
|
||||||
metadata.inc
|
metadata.inc
|
||||||
|
chrome.manifest.inc
|
||||||
|
locale/
|
||||||
|
3
extensions/firefox/chrome.manifest
Normal file
3
extensions/firefox/chrome.manifest
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
# Additional resources for pdf.js
|
||||||
|
|
||||||
|
# PDFJS_SUPPORTED_LOCALES
|
@ -70,6 +70,28 @@ function getDOMWindow(aChannel) {
|
|||||||
return win;
|
return win;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function getLocalizedStrings(path) {
|
||||||
|
var stringBundle = Cc['@mozilla.org/intl/stringbundle;1'].
|
||||||
|
getService(Ci.nsIStringBundleService).
|
||||||
|
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('.');
|
||||||
|
if (i >= 0) {
|
||||||
|
property = key.substring(i + 1);
|
||||||
|
key = key.substring(0, i);
|
||||||
|
}
|
||||||
|
if (!(key in map))
|
||||||
|
map[key] = {};
|
||||||
|
map[key][property] = string.value;
|
||||||
|
}
|
||||||
|
return map;
|
||||||
|
}
|
||||||
|
|
||||||
// All the priviledged actions.
|
// All the priviledged actions.
|
||||||
function ChromeActions() {
|
function ChromeActions() {
|
||||||
}
|
}
|
||||||
@ -124,6 +146,19 @@ ChromeActions.prototype = {
|
|||||||
getLocale: function() {
|
getLocale: function() {
|
||||||
return getStringPref('general.useragent.locale', 'en-US');
|
return getStringPref('general.useragent.locale', 'en-US');
|
||||||
},
|
},
|
||||||
|
getStrings: function(data) {
|
||||||
|
try {
|
||||||
|
// Lazy initialization of localizedStrings
|
||||||
|
if (!('localizedStrings' in this))
|
||||||
|
this.localizedStrings = getLocalizedStrings('viewer.properties');
|
||||||
|
|
||||||
|
var result = this.localizedStrings[data];
|
||||||
|
return JSON.stringify(result || null);
|
||||||
|
} catch (e) {
|
||||||
|
log('Unable to retrive localized strings: ' + e);
|
||||||
|
return 'null';
|
||||||
|
}
|
||||||
|
},
|
||||||
pdfBugEnabled: function() {
|
pdfBugEnabled: function() {
|
||||||
return getBoolPref(EXT_PREFIX + '.pdfBugEnabled', false);
|
return getBoolPref(EXT_PREFIX + '.pdfBugEnabled', false);
|
||||||
}
|
}
|
||||||
|
114
extensions/firefox/tools/l10n.js
Normal file
114
extensions/firefox/tools/l10n.js
Normal file
@ -0,0 +1,114 @@
|
|||||||
|
/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||||
|
/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */
|
||||||
|
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
// Small subset of the webL10n API by Fabien Cazenave for pdf.js extension.
|
||||||
|
(function(window) {
|
||||||
|
var gLanguage = '';
|
||||||
|
|
||||||
|
// fetch an l10n objects
|
||||||
|
function getL10nData(key) {
|
||||||
|
var response = FirefoxCom.request('getStrings', key);
|
||||||
|
var data = JSON.parse(response);
|
||||||
|
if (!data)
|
||||||
|
console.warn('[l10n] #' + key + ' missing for [' + gLanguage + ']');
|
||||||
|
return data;
|
||||||
|
}
|
||||||
|
|
||||||
|
// replace {{arguments}} with their values
|
||||||
|
function substArguments(text, args) {
|
||||||
|
if (!args)
|
||||||
|
return text;
|
||||||
|
|
||||||
|
return text.replace(/\{\{\s*(\w+)\s*\}\}/g, function(all, name) {
|
||||||
|
return name in args ? args[name] : '{{' + name + '}}';
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// translate a string
|
||||||
|
function translateString(key, args, fallback) {
|
||||||
|
var data = getL10nData(key);
|
||||||
|
if (!data && fallback)
|
||||||
|
data = {textContent: fallback};
|
||||||
|
if (!data)
|
||||||
|
return '{{' + key + '}}';
|
||||||
|
return substArguments(data.textContent, args);
|
||||||
|
}
|
||||||
|
|
||||||
|
// translate an HTML element
|
||||||
|
function translateElement(element) {
|
||||||
|
if (!element || !element.dataset)
|
||||||
|
return;
|
||||||
|
|
||||||
|
// get the related l10n object
|
||||||
|
var data = getL10nData(element.dataset.l10nId);
|
||||||
|
if (!data)
|
||||||
|
return;
|
||||||
|
|
||||||
|
// get arguments (if any)
|
||||||
|
// TODO: more flexible parser?
|
||||||
|
var args;
|
||||||
|
if (element.dataset.l10nArgs) try {
|
||||||
|
args = JSON.parse(element.dataset.l10nArgs);
|
||||||
|
} catch (e) {
|
||||||
|
console.warn('[l10n] could not parse arguments for #' + key + '');
|
||||||
|
}
|
||||||
|
|
||||||
|
// translate element
|
||||||
|
// TODO: security check?
|
||||||
|
for (var k in data)
|
||||||
|
element[k] = substArguments(data[k], args);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// translate an HTML subtree
|
||||||
|
function translateFragment(element) {
|
||||||
|
element = element || document.querySelector('html');
|
||||||
|
|
||||||
|
// check all translatable children (= w/ a `data-l10n-id' attribute)
|
||||||
|
var children = element.querySelectorAll('*[data-l10n-id]');
|
||||||
|
var elementCount = children.length;
|
||||||
|
for (var i = 0; i < elementCount; i++)
|
||||||
|
translateElement(children[i]);
|
||||||
|
|
||||||
|
// translate element itself if necessary
|
||||||
|
if (element.dataset.l10nId)
|
||||||
|
translateElement(element);
|
||||||
|
}
|
||||||
|
|
||||||
|
window.addEventListener('DOMContentLoaded', function() {
|
||||||
|
gLanguage = FirefoxCom.request('getLocale', null);
|
||||||
|
|
||||||
|
translateFragment();
|
||||||
|
|
||||||
|
// fire a 'localized' DOM event
|
||||||
|
var evtObject = document.createEvent('Event');
|
||||||
|
evtObject.initEvent('localized', false, false);
|
||||||
|
evtObject.language = gLanguage;
|
||||||
|
window.dispatchEvent(evtObject);
|
||||||
|
});
|
||||||
|
|
||||||
|
// Public API
|
||||||
|
document.mozL10n = {
|
||||||
|
// get a localized string
|
||||||
|
get: translateString,
|
||||||
|
|
||||||
|
// get|set the document language and direction
|
||||||
|
get language() {
|
||||||
|
return {
|
||||||
|
// get|set the document language (ISO-639-1)
|
||||||
|
get code() { return gLanguage; },
|
||||||
|
|
||||||
|
// get the direction (ltr|rtl) of the current language
|
||||||
|
get direction() {
|
||||||
|
// http://www.w3.org/International/questions/qa-scripts
|
||||||
|
// Arabic, Hebrew, Farsi, Pashto, Urdu
|
||||||
|
var rtlList = ['ar', 'he', 'fa', 'ps', 'ur'];
|
||||||
|
return (rtlList.indexOf(gLanguage) >= 0) ? 'rtl' : 'ltr';
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
};
|
||||||
|
})(this);
|
||||||
|
|
57
make.js
57
make.js
@ -6,6 +6,7 @@ var ROOT_DIR = __dirname + '/', // absolute path to project's root
|
|||||||
BUILD_TARGET = BUILD_DIR + 'pdf.js',
|
BUILD_TARGET = BUILD_DIR + 'pdf.js',
|
||||||
FIREFOX_BUILD_DIR = BUILD_DIR + '/firefox/',
|
FIREFOX_BUILD_DIR = BUILD_DIR + '/firefox/',
|
||||||
EXTENSION_SRC_DIR = 'extensions/',
|
EXTENSION_SRC_DIR = 'extensions/',
|
||||||
|
LOCALE_SRC_DIR = 'l10n/',
|
||||||
GH_PAGES_DIR = BUILD_DIR + 'gh-pages/',
|
GH_PAGES_DIR = BUILD_DIR + 'gh-pages/',
|
||||||
REPO = 'git@github.com:mozilla/pdf.js.git',
|
REPO = 'git@github.com:mozilla/pdf.js.git',
|
||||||
PYTHON_BIN = 'python2.7';
|
PYTHON_BIN = 'python2.7';
|
||||||
@ -67,8 +68,9 @@ target.web = function() {
|
|||||||
// Creates localized resources for the viewer and extension.
|
// Creates localized resources for the viewer and extension.
|
||||||
//
|
//
|
||||||
target.locale = function() {
|
target.locale = function() {
|
||||||
var L10N_PATH = 'l10n';
|
|
||||||
var METADATA_OUTPUT = 'extensions/firefox/metadata.inc';
|
var METADATA_OUTPUT = 'extensions/firefox/metadata.inc';
|
||||||
|
var CHROME_MANIFEST_OUTPUT = 'extensions/firefox/chrome.manifest.inc';
|
||||||
|
var EXTENSION_LOCALE_OUTPUT = 'extensions/firefox/locale';
|
||||||
var VIEWER_OUTPUT = 'web/locale.properties';
|
var VIEWER_OUTPUT = 'web/locale.properties';
|
||||||
var DEFAULT_LOCALE = 'en-US';
|
var DEFAULT_LOCALE = 'en-US';
|
||||||
|
|
||||||
@ -76,13 +78,17 @@ target.locale = function() {
|
|||||||
echo();
|
echo();
|
||||||
echo('### Building localization files');
|
echo('### Building localization files');
|
||||||
|
|
||||||
var subfolders = ls(L10N_PATH);
|
rm('-rf', EXTENSION_LOCALE_OUTPUT);
|
||||||
|
mkdir('-p', EXTENSION_LOCALE_OUTPUT);
|
||||||
|
|
||||||
|
var subfolders = ls(LOCALE_SRC_DIR);
|
||||||
subfolders.sort();
|
subfolders.sort();
|
||||||
var metadataContent = '';
|
var metadataContent = '';
|
||||||
|
var chromeManifestContent = '';
|
||||||
var viewerOutput = '';
|
var viewerOutput = '';
|
||||||
for (var i = 0; i < subfolders.length; i++) {
|
for (var i = 0; i < subfolders.length; i++) {
|
||||||
var locale = subfolders[i];
|
var locale = subfolders[i];
|
||||||
var path = L10N_PATH + '/' + locale;
|
var path = LOCALE_SRC_DIR + locale;
|
||||||
if (!test('-d', path))
|
if (!test('-d', path))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
@ -91,12 +97,13 @@ target.locale = function() {
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mkdir('-p', EXTENSION_LOCALE_OUTPUT + '/' + locale);
|
||||||
|
chromeManifestContent += 'locale pdf.js ' + locale + ' locale/' + locale + '/\n';
|
||||||
|
|
||||||
if (test('-f', path + '/viewer.properties')) {
|
if (test('-f', path + '/viewer.properties')) {
|
||||||
var properties = cat(path + '/viewer.properties');
|
var properties = cat(path + '/viewer.properties');
|
||||||
if (locale == DEFAULT_LOCALE)
|
viewerOutput += '[' + locale + ']\n' + properties + '\n';
|
||||||
viewerOutput = '[*]\n' + properties + '\n' + viewerOutput;
|
cp(path + '/viewer.properties', EXTENSION_LOCALE_OUTPUT + '/' + locale);
|
||||||
else
|
|
||||||
viewerOutput = viewerOutput + '[' + locale + ']\n' + properties + '\n';
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (test('-f', path + '/metadata.inc')) {
|
if (test('-f', path + '/metadata.inc')) {
|
||||||
@ -106,6 +113,7 @@ target.locale = function() {
|
|||||||
}
|
}
|
||||||
viewerOutput.to(VIEWER_OUTPUT);
|
viewerOutput.to(VIEWER_OUTPUT);
|
||||||
metadataContent.to(METADATA_OUTPUT);
|
metadataContent.to(METADATA_OUTPUT);
|
||||||
|
chromeManifestContent.to(CHROME_MANIFEST_OUTPUT);
|
||||||
};
|
};
|
||||||
|
|
||||||
//
|
//
|
||||||
@ -227,7 +235,7 @@ var EXTENSION_WEB_FILES =
|
|||||||
'web/viewer.css',
|
'web/viewer.css',
|
||||||
'web/viewer.js',
|
'web/viewer.js',
|
||||||
'web/viewer.html',
|
'web/viewer.html',
|
||||||
'external/webL10n/l10n.js',
|
'extensions/firefox/tools/l10n.js',
|
||||||
'web/viewer-production.html'],
|
'web/viewer-production.html'],
|
||||||
EXTENSION_BASE_VERSION = 'f0f0418a9c6637981fe1182b9212c2d592774c7d',
|
EXTENSION_BASE_VERSION = 'f0f0418a9c6637981fe1182b9212c2d592774c7d',
|
||||||
EXTENSION_VERSION_PREFIX = '0.3.',
|
EXTENSION_VERSION_PREFIX = '0.3.',
|
||||||
@ -242,6 +250,7 @@ target.extension = function() {
|
|||||||
echo();
|
echo();
|
||||||
echo('### Building extensions');
|
echo('### Building extensions');
|
||||||
|
|
||||||
|
target.locale();
|
||||||
target.production();
|
target.production();
|
||||||
target.firefox();
|
target.firefox();
|
||||||
target.chrome();
|
target.chrome();
|
||||||
@ -277,21 +286,24 @@ target.firefox = function() {
|
|||||||
'*.rdf',
|
'*.rdf',
|
||||||
'*.svg',
|
'*.svg',
|
||||||
'*.png',
|
'*.png',
|
||||||
|
'*.manifest',
|
||||||
'components',
|
'components',
|
||||||
|
'locale',
|
||||||
'../../LICENSE'],
|
'../../LICENSE'],
|
||||||
FIREFOX_EXTENSION_FILES =
|
FIREFOX_EXTENSION_FILES =
|
||||||
['bootstrap.js',
|
['bootstrap.js',
|
||||||
'install.rdf',
|
'install.rdf',
|
||||||
|
'chrome.manifest',
|
||||||
'icon.png',
|
'icon.png',
|
||||||
'icon64.png',
|
'icon64.png',
|
||||||
'components',
|
'components',
|
||||||
'content',
|
'content',
|
||||||
|
'locale',
|
||||||
'LICENSE'],
|
'LICENSE'],
|
||||||
FIREFOX_EXTENSION_NAME = 'pdf.js.xpi',
|
FIREFOX_EXTENSION_NAME = 'pdf.js.xpi',
|
||||||
FIREFOX_AMO_EXTENSION_NAME = 'pdf.js.amo.xpi';
|
FIREFOX_AMO_EXTENSION_NAME = 'pdf.js.amo.xpi';
|
||||||
|
|
||||||
var LOCALE_CONTENT = cat('web/locale.properties');
|
target.locale();
|
||||||
|
|
||||||
target.production();
|
target.production();
|
||||||
target.buildnumber();
|
target.buildnumber();
|
||||||
cd(ROOT_DIR);
|
cd(ROOT_DIR);
|
||||||
@ -310,7 +322,6 @@ target.firefox = function() {
|
|||||||
// Copy a standalone version of pdf.js inside the content directory
|
// Copy a standalone version of pdf.js inside the content directory
|
||||||
cp(BUILD_TARGET, FIREFOX_BUILD_CONTENT_DIR + BUILD_DIR);
|
cp(BUILD_TARGET, FIREFOX_BUILD_CONTENT_DIR + BUILD_DIR);
|
||||||
cp('-R', EXTENSION_WEB_FILES, FIREFOX_BUILD_CONTENT_DIR + '/web');
|
cp('-R', EXTENSION_WEB_FILES, FIREFOX_BUILD_CONTENT_DIR + '/web');
|
||||||
cp('web/locale.properties', FIREFOX_BUILD_CONTENT_DIR + '/web');
|
|
||||||
rm(FIREFOX_BUILD_CONTENT_DIR + '/web/viewer-production.html');
|
rm(FIREFOX_BUILD_CONTENT_DIR + '/web/viewer-production.html');
|
||||||
|
|
||||||
// Copy over the firefox extension snippet so we can inline pdf.js in it
|
// Copy over the firefox extension snippet so we can inline pdf.js in it
|
||||||
@ -319,7 +330,6 @@ target.firefox = function() {
|
|||||||
// Modify the viewer so it does all the extension-only stuff.
|
// Modify the viewer so it does all the extension-only stuff.
|
||||||
cd(FIREFOX_BUILD_CONTENT_DIR + '/web');
|
cd(FIREFOX_BUILD_CONTENT_DIR + '/web');
|
||||||
sed('-i', /.*PDFJSSCRIPT_INCLUDE_BUNDLE.*\n/, cat(ROOT_DIR + BUILD_TARGET), 'viewer-snippet-firefox-extension.html');
|
sed('-i', /.*PDFJSSCRIPT_INCLUDE_BUNDLE.*\n/, cat(ROOT_DIR + BUILD_TARGET), 'viewer-snippet-firefox-extension.html');
|
||||||
sed('-i', /.*PDFJSSCRIPT_LOCALE_DATA.*\n/, LOCALE_CONTENT, 'viewer-snippet-firefox-extension.html');
|
|
||||||
sed('-i', /.*PDFJSSCRIPT_REMOVE_CORE.*\n/g, '', 'viewer.html');
|
sed('-i', /.*PDFJSSCRIPT_REMOVE_CORE.*\n/g, '', 'viewer.html');
|
||||||
sed('-i', /.*PDFJSSCRIPT_REMOVE_FIREFOX_EXTENSION.*\n/g, '', 'viewer.html');
|
sed('-i', /.*PDFJSSCRIPT_REMOVE_FIREFOX_EXTENSION.*\n/g, '', 'viewer.html');
|
||||||
sed('-i', /.*PDFJSSCRIPT_INCLUDE_FIREFOX_EXTENSION.*\n/, cat('viewer-snippet-firefox-extension.html'), 'viewer.html');
|
sed('-i', /.*PDFJSSCRIPT_INCLUDE_FIREFOX_EXTENSION.*\n/, cat('viewer-snippet-firefox-extension.html'), 'viewer.html');
|
||||||
@ -328,7 +338,6 @@ target.firefox = function() {
|
|||||||
// We don't need pdf.js anymore since its inlined
|
// We don't need pdf.js anymore since its inlined
|
||||||
rm('-Rf', FIREFOX_BUILD_CONTENT_DIR + BUILD_DIR);
|
rm('-Rf', FIREFOX_BUILD_CONTENT_DIR + BUILD_DIR);
|
||||||
rm(FIREFOX_BUILD_CONTENT_DIR + '/web/viewer-snippet-firefox-extension.html');
|
rm(FIREFOX_BUILD_CONTENT_DIR + '/web/viewer-snippet-firefox-extension.html');
|
||||||
rm(FIREFOX_BUILD_CONTENT_DIR + '/web/locale.properties');
|
|
||||||
// Remove '.DS_Store' and other hidden files
|
// Remove '.DS_Store' and other hidden files
|
||||||
find(FIREFOX_BUILD_DIR).forEach(function(file) {
|
find(FIREFOX_BUILD_DIR).forEach(function(file) {
|
||||||
if (file.match(/^\./))
|
if (file.match(/^\./))
|
||||||
@ -342,6 +351,8 @@ target.firefox = function() {
|
|||||||
// Update localized metadata
|
// Update localized metadata
|
||||||
var localizedMetadata = cat(EXTENSION_SRC_DIR + '/firefox/metadata.inc');
|
var localizedMetadata = cat(EXTENSION_SRC_DIR + '/firefox/metadata.inc');
|
||||||
sed('-i', /.*PDFJS_LOCALIZED_METADATA.*\n/, localizedMetadata, FIREFOX_BUILD_DIR + '/install.rdf');
|
sed('-i', /.*PDFJS_LOCALIZED_METADATA.*\n/, localizedMetadata, FIREFOX_BUILD_DIR + '/install.rdf');
|
||||||
|
var chromeManifest = cat(EXTENSION_SRC_DIR + '/firefox/chrome.manifest.inc');
|
||||||
|
sed('-i', /.*PDFJS_SUPPORTED_LOCALES.*\n/, chromeManifest, FIREFOX_BUILD_DIR + '/chrome.manifest');
|
||||||
|
|
||||||
// Create the xpi
|
// Create the xpi
|
||||||
cd(FIREFOX_BUILD_DIR);
|
cd(FIREFOX_BUILD_DIR);
|
||||||
@ -365,25 +376,27 @@ target.mozcentral = function() {
|
|||||||
echo();
|
echo();
|
||||||
echo('### Building mozilla-central extension');
|
echo('### Building mozilla-central extension');
|
||||||
|
|
||||||
var MOZCENTRAL_DIR = BUILD_DIR + '/mozcentral',
|
var MOZCENTRAL_DIR = BUILD_DIR + 'mozcentral/',
|
||||||
MOZCENTRAL_CONTENT_DIR = MOZCENTRAL_DIR + '/content/',
|
MOZCENTRAL_EXTENSION_DIR = MOZCENTRAL_DIR + 'browser/app/profile/extensions/uriloader@pdf.js/',
|
||||||
MOZCENTRAL_L10N_DIR = MOZCENTRAL_DIR + '/l10n/',
|
MOZCENTRAL_CONTENT_DIR = MOZCENTRAL_EXTENSION_DIR + 'content/',
|
||||||
|
MOZCENTRAL_L10N_DIR = MOZCENTRAL_DIR + 'browser/locales/en-US/pdfviewer/',
|
||||||
FIREFOX_CONTENT_DIR = EXTENSION_SRC_DIR + '/firefox/content/',
|
FIREFOX_CONTENT_DIR = EXTENSION_SRC_DIR + '/firefox/content/',
|
||||||
FIREFOX_EXTENSION_FILES_TO_COPY =
|
FIREFOX_EXTENSION_FILES_TO_COPY =
|
||||||
['*.js',
|
['*.js',
|
||||||
'*.svg',
|
'*.svg',
|
||||||
'*.png',
|
'*.png',
|
||||||
|
'*.manifest',
|
||||||
'install.rdf.in',
|
'install.rdf.in',
|
||||||
'README.mozilla',
|
'README.mozilla',
|
||||||
'components',
|
'components',
|
||||||
'../../LICENSE'],
|
'../../LICENSE'],
|
||||||
DEFAULT_LOCALE_FILES =
|
DEFAULT_LOCALE_FILES =
|
||||||
['l10n/en-US/viewer.properties',
|
[LOCALE_SRC_DIR + 'en-US/viewer.properties'],
|
||||||
'l10n/en-US/metadata.inc'],
|
|
||||||
FIREFOX_MC_EXTENSION_FILES =
|
FIREFOX_MC_EXTENSION_FILES =
|
||||||
['bootstrap.js',
|
['bootstrap.js',
|
||||||
'icon.png',
|
'icon.png',
|
||||||
'icon64.png',
|
'icon64.png',
|
||||||
|
'chrome.manifest',
|
||||||
'components',
|
'components',
|
||||||
'content',
|
'content',
|
||||||
'LICENSE'];
|
'LICENSE'];
|
||||||
@ -401,7 +414,7 @@ target.mozcentral = function() {
|
|||||||
|
|
||||||
// Copy extension files
|
// Copy extension files
|
||||||
cd('extensions/firefox');
|
cd('extensions/firefox');
|
||||||
cp('-R', FIREFOX_EXTENSION_FILES_TO_COPY, ROOT_DIR + MOZCENTRAL_DIR);
|
cp('-R', FIREFOX_EXTENSION_FILES_TO_COPY, ROOT_DIR + MOZCENTRAL_EXTENSION_DIR);
|
||||||
cd(ROOT_DIR);
|
cd(ROOT_DIR);
|
||||||
|
|
||||||
// Copy a standalone version of pdf.js inside the content directory
|
// Copy a standalone version of pdf.js inside the content directory
|
||||||
@ -433,11 +446,11 @@ target.mozcentral = function() {
|
|||||||
cp(DEFAULT_LOCALE_FILES, MOZCENTRAL_L10N_DIR);
|
cp(DEFAULT_LOCALE_FILES, MOZCENTRAL_L10N_DIR);
|
||||||
|
|
||||||
// Update the build version number
|
// Update the build version number
|
||||||
sed('-i', /PDFJSSCRIPT_VERSION/, EXTENSION_VERSION, MOZCENTRAL_DIR + '/install.rdf.in');
|
sed('-i', /PDFJSSCRIPT_VERSION/, EXTENSION_VERSION, MOZCENTRAL_EXTENSION_DIR + 'install.rdf.in');
|
||||||
sed('-i', /PDFJSSCRIPT_VERSION/, EXTENSION_VERSION, MOZCENTRAL_DIR + '/README.mozilla');
|
sed('-i', /PDFJSSCRIPT_VERSION/, EXTENSION_VERSION, MOZCENTRAL_EXTENSION_DIR + 'README.mozilla');
|
||||||
|
|
||||||
// List all files for mozilla-central
|
// List all files for mozilla-central
|
||||||
cd(MOZCENTRAL_DIR);
|
cd(MOZCENTRAL_EXTENSION_DIR);
|
||||||
var extensionFiles = '';
|
var extensionFiles = '';
|
||||||
find(FIREFOX_MC_EXTENSION_FILES).forEach(function(file){
|
find(FIREFOX_MC_EXTENSION_FILES).forEach(function(file){
|
||||||
if (test('-f', file))
|
if (test('-f', file))
|
||||||
|
@ -1362,11 +1362,12 @@ window.addEventListener('load', function webViewerLoad(evt) {
|
|||||||
if ('disableWorker' in hashParams)
|
if ('disableWorker' in hashParams)
|
||||||
PDFJS.disableWorker = (hashParams['disableWorker'] === 'true');
|
PDFJS.disableWorker = (hashParams['disableWorker'] === 'true');
|
||||||
|
|
||||||
var locale = !PDFJS.isFirefoxExtension ? navigator.language :
|
if (!PDFJS.isFirefoxExtension) {
|
||||||
FirefoxCom.request('getLocale', null);
|
var locale = navigator.language;
|
||||||
if ('locale' in hashParams)
|
if ('locale' in hashParams)
|
||||||
locale = hashParams['locale'];
|
locale = hashParams['locale'];
|
||||||
mozL10n.language.code = locale;
|
mozL10n.language.code = locale;
|
||||||
|
}
|
||||||
|
|
||||||
if ('disableTextLayer' in hashParams)
|
if ('disableTextLayer' in hashParams)
|
||||||
PDFJS.disableTextLayer = (hashParams['disableTextLayer'] === 'true');
|
PDFJS.disableTextLayer = (hashParams['disableTextLayer'] === 'true');
|
||||||
|
Loading…
x
Reference in New Issue
Block a user