From d804881151fd980c81f4062c55350ac2cf640fe4 Mon Sep 17 00:00:00 2001 From: Andrew McCreight Date: Thu, 30 Mar 2017 13:37:45 -0700 Subject: [PATCH] Split bootstrap script. pdfjschildbootstrap.js will always be run, but pdfjschildbootstrap-enabled.js will only be run if PdfJs.enabled is true. This will let us avoid some work in the child process in the next patch. This will need to be landed in the mozilla-central repository at the same time as a change to nsBrowserGlue.js. See bug 1352218. --- .../content/pdfjschildbootstrap-enabled.js | 31 +++++++++++++++++++ .../firefox/content/pdfjschildbootstrap.js | 9 +----- gulpfile.js | 2 ++ 3 files changed, 34 insertions(+), 8 deletions(-) create mode 100644 extensions/firefox/content/pdfjschildbootstrap-enabled.js diff --git a/extensions/firefox/content/pdfjschildbootstrap-enabled.js b/extensions/firefox/content/pdfjschildbootstrap-enabled.js new file mode 100644 index 000000000..c228be082 --- /dev/null +++ b/extensions/firefox/content/pdfjschildbootstrap-enabled.js @@ -0,0 +1,31 @@ +/* Copyright 2014 Mozilla Foundation +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ +/* globals Components, PdfJs, Services */ + +"use strict"; + +/* + * pdfjschildbootstrap-enabled.js loads into the content process to + * take care of initializing our built-in version of pdfjs when + * running remote. It will only be run when PdfJs.enable is true. + */ + +Components.utils.import("resource://gre/modules/Services.jsm"); +Components.utils.import("resource://pdf.js/PdfJs.jsm"); + +if (Services.appinfo.processType === Services.appinfo.PROCESS_TYPE_CONTENT) { + // register various pdfjs factories that hook us into content loading. + PdfJs.updateRegistration(); +} diff --git a/extensions/firefox/content/pdfjschildbootstrap.js b/extensions/firefox/content/pdfjschildbootstrap.js index 2a4573ce5..d70c15ed5 100644 --- a/extensions/firefox/content/pdfjschildbootstrap.js +++ b/extensions/firefox/content/pdfjschildbootstrap.js @@ -12,7 +12,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -/* globals Components, PdfjsContentUtils, PdfJs, Services */ +/* globals Components, PdfjsContentUtils */ "use strict"; @@ -21,14 +21,7 @@ * 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"); // init content utils shim pdfjs will use to access privileged apis. PdfjsContentUtils.init(); - -if (Services.appinfo.processType === Services.appinfo.PROCESS_TYPE_CONTENT) { - // register various pdfjs factories that hook us into content loading. - PdfJs.updateRegistration(); -} diff --git a/gulpfile.js b/gulpfile.js index fe9fdfe49..1b57ae82a 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -821,6 +821,8 @@ gulp.task('mozcentral-pre', ['buildnumber', 'locale'], function () { .pipe(gulp.dest(MOZCENTRAL_CONTENT_DIR)), gulp.src(FIREFOX_CONTENT_DIR + 'pdfjschildbootstrap.js') .pipe(gulp.dest(MOZCENTRAL_CONTENT_DIR)), + gulp.src(FIREFOX_CONTENT_DIR + 'pdfjschildbootstrap-enabled.js') + .pipe(gulp.dest(MOZCENTRAL_CONTENT_DIR)), gulp.src(FIREFOX_EXTENSION_DIR + 'chrome-mozcentral.manifest') .pipe(rename('chrome.manifest')) .pipe(gulp.dest(MOZCENTRAL_EXTENSION_DIR)),