Bug 1352218, part 1 - Split pdf.js boot strap file. r=Yury draft
authorAndrew McCreight <continuation@gmail.com>
Thu, 30 Mar 2017 14:43:04 -0700
changeset 555065 cdefc81affbc221f08f3074980b7eebce2d8ec84
parent 553745 2ea14fbab5265940e9f87c81af179bed72418f41
child 555066 4f6fb4740b15a96a94818f0c37db827b8f921a25
push id52145
push userbmo:continuation@gmail.com
push dateMon, 03 Apr 2017 15:57:20 +0000
reviewersYury
bugs1352218
milestone55.0a1
Bug 1352218, part 1 - Split pdf.js boot strap file. r=Yury One is always run, the other is only run when PdfJs.enabled is true in the parent process. This refactoring enables the next patch. The extensions changes are from: https://github.com/mozilla/pdf.js/pull/8218 MozReview-Commit-ID: HwQ3yk8Jck4
browser/components/nsBrowserGlue.js
browser/extensions/pdfjs/content/pdfjschildbootstrap-enabled.js
browser/extensions/pdfjs/content/pdfjschildbootstrap.js
--- a/browser/components/nsBrowserGlue.js
+++ b/browser/components/nsBrowserGlue.js
@@ -902,16 +902,19 @@ BrowserGlue.prototype = {
     // pdf content handler, and initializes parent side message manager
     // shim for privileged api access.
     PdfJs.init(true);
     // child only: similar to the call above for parent - register content
     // handler and init message manager child shim for privileged api access.
     // With older versions of the extension installed, this load will fail
     // passively.
     Services.ppmm.loadProcessScript("resource://pdf.js/pdfjschildbootstrap.js", true);
+    if (PdfJs.enabled) {
+      Services.ppmm.loadProcessScript("resource://pdf.js/pdfjschildbootstrap-enabled.js", true);
+    }
 
     if (AppConstants.platform == "win") {
       // For Windows 7, initialize the jump list module.
       const WINTASKBAR_CONTRACTID = "@mozilla.org/windows-taskbar;1";
       if (WINTASKBAR_CONTRACTID in Cc &&
           Cc[WINTASKBAR_CONTRACTID].getService(Ci.nsIWinTaskbar).available) {
         let temp = {};
         Cu.import("resource:///modules/WindowsJumpLists.jsm", temp);
new file mode 100644
--- /dev/null
+++ b/browser/extensions/pdfjs/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();
+}
--- a/browser/extensions/pdfjs/content/pdfjschildbootstrap.js
+++ b/browser/extensions/pdfjs/content/pdfjschildbootstrap.js
@@ -7,28 +7,21 @@
 * 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, PdfjsContentUtils, PdfJs, Services */
+/* globals Components, PdfjsContentUtils */
 
 "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");
 
 // 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();
-}