Skip to content

Commit

Permalink
Merge pull request #7202 from yurydelendik/firefox-deps
Browse files Browse the repository at this point in the history
Refactors dependencies of PDFViewerApplication on external services
  • Loading branch information
yurydelendik committed Apr 24, 2016
2 parents ff6669d + 3132941 commit 55581b1
Show file tree
Hide file tree
Showing 10 changed files with 359 additions and 257 deletions.
11 changes: 11 additions & 0 deletions examples/components/simpleviewer.js
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ PDFJS.workerSrc = '../../build/pdf.worker.js';
// PDFJS.cMapPacked = true;

var DEFAULT_URL = '../../web/compressed.tracemonkey-pldi-09.pdf';
var SEARCH_FOR = ''; // try 'Mozilla';

var container = document.getElementById('viewerContainer');

Expand All @@ -42,9 +43,19 @@ var pdfViewer = new PDFJS.PDFViewer({
});
pdfLinkService.setViewer(pdfViewer);

// (Optionally) enable find controller.
var pdfFindController = new PDFJS.PDFFindController({
pdfViewer: pdfViewer
});
pdfViewer.setFindController(pdfFindController);

container.addEventListener('pagesinit', function () {
// We can use pdfViewer now, e.g. let's change default scale.
pdfViewer.currentScaleValue = 'page-width';

if (SEARCH_FOR) { // We can try search for things
pdfFindController.executeCommand('find', {query: SEARCH_FOR});
}
});

// Loading document.
Expand Down
25 changes: 21 additions & 4 deletions extensions/firefox/tools/l10n.js
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
/* globals FirefoxCom */

'use strict';

// Small subset of the webL10n API by Fabien Cazenave for pdf.js extension.
(function(window) {
var gLanguage = '';
var gExternalLocalizerServices = null;

// fetch an l10n objects
function getL10nData(key) {
var response = FirefoxCom.requestSync('getStrings', key);
var response = gExternalLocalizerServices.getStrings(key);
var data = JSON.parse(response);
if (!data) {
console.warn('[l10n] #' + key + ' missing for [' + gLanguage + ']');
Expand Down Expand Up @@ -94,8 +94,8 @@
}
}

window.addEventListener('DOMContentLoaded', function() {
gLanguage = FirefoxCom.requestSync('getLocale', null);
function translateDocument() {
gLanguage = gExternalLocalizerServices.getLocale();

translateFragment();

Expand All @@ -104,6 +104,13 @@
evtObject.initEvent('localized', false, false);
evtObject.language = gLanguage;
window.dispatchEvent(evtObject);
}

window.addEventListener('DOMContentLoaded', function() {
if (gExternalLocalizerServices) {
translateDocument();
}
// ... else see setExternalLocalizerServices below
});

// Public API
Expand All @@ -128,6 +135,16 @@
return (rtlList.indexOf(shortCode) >= 0) ? 'rtl' : 'ltr';
},

setExternalLocalizerServices: function (externalLocalizerServices) {
gExternalLocalizerServices = externalLocalizerServices;

// ... in case if we missed DOMContentLoaded above.
if (window.document.readyState === 'interactive' ||
window.document.readyState === 'complete') {
translateDocument();
}
},

// translate an element or document fragment
translate: translateFragment
};
Expand Down
6 changes: 4 additions & 2 deletions make.js
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,7 @@ target.generic = function() {

var TMP_VIEWER = GENERIC_DIR + '/web/viewer.js.tmp';
cd('web/');
var viewerBundleFiles = ['app.js'];
var viewerBundleFiles = ['app.js', 'mozPrintCallback_polyfill.js'];
bundle('viewer.js', ROOT_DIR + TMP_VIEWER, viewerBundleFiles,
'pdfjs-dist/web/viewer', defines, true);
cd(ROOT_DIR);
Expand Down Expand Up @@ -179,6 +179,7 @@ target.components = function() {
var bundleFiles = [
'pdf_viewer.js',
'pdf_history.js',
'pdf_find_controller.js',
'download_manager.js'
];
bundle('pdf_viewer.component.js', ROOT_DIR + TMP_PDF_VIEWER, bundleFiles,
Expand Down Expand Up @@ -1131,7 +1132,8 @@ target.chromium = function() {

var TMP_VIEWER = CHROME_BUILD_CONTENT_DIR + '/web/viewer.js.tmp';
cd('web/');
var viewerBundleFiles = ['app.js', 'chromecom.js'];
var viewerBundleFiles = ['app.js', 'chromecom.js',
'mozPrintCallback_polyfill.js'];
bundle('viewer.js', ROOT_DIR + TMP_VIEWER, viewerBundleFiles,
'pdfjs-dist/web/viewer', defines, true);
cd(ROOT_DIR);
Expand Down
Loading

0 comments on commit 55581b1

Please sign in to comment.