diff --git a/make.js b/make.js index f20ec6601..065a679bc 100644 --- a/make.js +++ b/make.js @@ -38,6 +38,7 @@ var ROOT_DIR = __dirname + '/', // absolute path to project's root LOCALE_SRC_DIR = 'l10n/', GH_PAGES_DIR = BUILD_DIR + 'gh-pages/', GENERIC_DIR = BUILD_DIR + 'generic/', + MINIFIED_DIR = BUILD_DIR + 'minified/', REPO = 'git@github.com:mozilla/pdf.js.git', PYTHON_BIN = 'python2.7', MOZCENTRAL_PREF_PREFIX = 'pdfjs', @@ -53,6 +54,7 @@ var DEFINES = { MOZCENTRAL: false, B2G: false, CHROME: false, + MINIFIED: false, SINGLE_FILE: false }; @@ -390,6 +392,83 @@ function cleanupJSSource(file) { content.to(file); } +// +// make minified +// Builds the minified production viewer that should be compatible with most +// modern HTML5 browsers. Requires Google Closure Compiler. +// +target.minified = function() { + var compilerPath = process.env['CLOSURE_COMPILER']; + if (!compilerPath) { + echo('### Closure Compiler is not set. Specify CLOSURE_COMPILER variable'); + exit(1); + } + + target.bundle({}); + target.locale(); + + cd(ROOT_DIR); + echo(); + echo('### Creating minified viewer'); + + rm('-rf', MINIFIED_DIR); + mkdir('-p', MINIFIED_DIR); + mkdir('-p', MINIFIED_DIR + BUILD_DIR); + mkdir('-p', MINIFIED_DIR + '/web'); + + var defines = builder.merge(DEFINES, {GENERIC: true, MINIFIED: true}); + + var setup = { + defines: defines, + copy: [ + [COMMON_WEB_FILES, MINIFIED_DIR + '/web'], + ['web/viewer.css', MINIFIED_DIR + '/web'], + ['web/compressed.tracemonkey-pldi-09.pdf', MINIFIED_DIR + '/web'], + ['web/locale', MINIFIED_DIR + '/web'] + ], + preprocess: [ + [BUILD_TARGETS, MINIFIED_DIR + BUILD_DIR], + [COMMON_WEB_FILES_PREPROCESS, MINIFIED_DIR + '/web'] + ] + }; + builder.build(setup); + + var viewerFiles = [ + 'web/compatibility.js', + 'external/webL10n/l10n.js', + MINIFIED_DIR + BUILD_DIR + 'pdf.js', + MINIFIED_DIR + '/web/viewer.js' + ]; + var cmdPrefix = 'java -jar \"' + compilerPath + '\" ' + + '--language_in ECMASCRIPT5 ' + + '--warning_level QUIET ' + + '--compilation_level SIMPLE_OPTIMIZATIONS '; + + echo(); + echo('### Minifying js files'); + + exec(cmdPrefix + viewerFiles.map(function(s) { + return '--js \"' + s + '\"'; + }).join(' ') + + ' --js_output_file \"' + MINIFIED_DIR + '/web/pdf.viewer.js\"'); + exec(cmdPrefix + '--js \"' + MINIFIED_DIR + '/build/pdf.js' + '\" ' + + '--js_output_file \"' + MINIFIED_DIR + '/build/pdf.min.js' + '\"'); + exec(cmdPrefix + '--js \"' + MINIFIED_DIR + '/build/pdf.worker.js' + '\" ' + + '--js_output_file \"' + MINIFIED_DIR + '/build/pdf.worker.min.js' + '\"'); + + echo(); + echo('### Cleaning js files'); + + rm(MINIFIED_DIR + '/web/viewer.js'); + rm(MINIFIED_DIR + '/web/debugger.js'); + rm(MINIFIED_DIR + '/build/pdf.js'); + rm(MINIFIED_DIR + '/build/pdf.worker.js'); + mv(MINIFIED_DIR + '/build/pdf.min.js', + MINIFIED_DIR + '/build/pdf.js'); + mv(MINIFIED_DIR + '/build/pdf.worker.min.js', + MINIFIED_DIR + '/build/pdf.worker.js'); +}; + //////////////////////////////////////////////////////////////////////////////// // // Extension stuff diff --git a/web/viewer-snippet-minified.html b/web/viewer-snippet-minified.html new file mode 100644 index 000000000..0d011d3de --- /dev/null +++ b/web/viewer-snippet-minified.html @@ -0,0 +1,3 @@ + + + diff --git a/web/viewer.html b/web/viewer.html index 5c9e8a81b..ec887e84e 100644 --- a/web/viewer.html +++ b/web/viewer.html @@ -35,7 +35,7 @@ limitations under the License. - + @@ -56,7 +56,7 @@ limitations under the License. - + @@ -79,8 +79,12 @@ limitations under the License. + + + +