Merge pull request #14745 from Snuffleupagus/debugger-module
Convert `web/debugger.js` to a *basic* module
This commit is contained in:
		
						commit
						3e50e578c2
					
				
							
								
								
									
										21
									
								
								gulpfile.js
									
									
									
									
									
								
							
							
						
						
									
										21
									
								
								gulpfile.js
									
									
									
									
									
								
							@ -327,6 +327,10 @@ function replaceWebpackRequire() {
 | 
				
			|||||||
  return replace("__webpack_require__", "__w_pdfjs_require__");
 | 
					  return replace("__webpack_require__", "__w_pdfjs_require__");
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function replaceNonWebpackImport() {
 | 
				
			||||||
 | 
					  return replace("__non_webpack_import__", "import");
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function replaceJSRootName(amdName, jsName) {
 | 
					function replaceJSRootName(amdName, jsName) {
 | 
				
			||||||
  // Saving old-style JS module name.
 | 
					  // Saving old-style JS module name.
 | 
				
			||||||
  return replace(
 | 
					  return replace(
 | 
				
			||||||
@ -349,6 +353,7 @@ function createMainBundle(defines) {
 | 
				
			|||||||
    .src("./src/pdf.js")
 | 
					    .src("./src/pdf.js")
 | 
				
			||||||
    .pipe(webpack2Stream(mainFileConfig))
 | 
					    .pipe(webpack2Stream(mainFileConfig))
 | 
				
			||||||
    .pipe(replaceWebpackRequire())
 | 
					    .pipe(replaceWebpackRequire())
 | 
				
			||||||
 | 
					    .pipe(replaceNonWebpackImport())
 | 
				
			||||||
    .pipe(replaceJSRootName(mainAMDName, "pdfjsLib"));
 | 
					    .pipe(replaceJSRootName(mainAMDName, "pdfjsLib"));
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -370,6 +375,7 @@ function createScriptingBundle(defines, extraOptions = undefined) {
 | 
				
			|||||||
    .src("./src/pdf.scripting.js")
 | 
					    .src("./src/pdf.scripting.js")
 | 
				
			||||||
    .pipe(webpack2Stream(scriptingFileConfig))
 | 
					    .pipe(webpack2Stream(scriptingFileConfig))
 | 
				
			||||||
    .pipe(replaceWebpackRequire())
 | 
					    .pipe(replaceWebpackRequire())
 | 
				
			||||||
 | 
					    .pipe(replaceNonWebpackImport())
 | 
				
			||||||
    .pipe(
 | 
					    .pipe(
 | 
				
			||||||
      replace(
 | 
					      replace(
 | 
				
			||||||
        'root["' + scriptingAMDName + '"] = factory()',
 | 
					        'root["' + scriptingAMDName + '"] = factory()',
 | 
				
			||||||
@ -428,6 +434,7 @@ function createSandboxBundle(defines, extraOptions = undefined) {
 | 
				
			|||||||
    .src("./src/pdf.sandbox.js")
 | 
					    .src("./src/pdf.sandbox.js")
 | 
				
			||||||
    .pipe(webpack2Stream(sandboxFileConfig))
 | 
					    .pipe(webpack2Stream(sandboxFileConfig))
 | 
				
			||||||
    .pipe(replaceWebpackRequire())
 | 
					    .pipe(replaceWebpackRequire())
 | 
				
			||||||
 | 
					    .pipe(replaceNonWebpackImport())
 | 
				
			||||||
    .pipe(replaceJSRootName(sandboxAMDName, "pdfjsSandbox"));
 | 
					    .pipe(replaceJSRootName(sandboxAMDName, "pdfjsSandbox"));
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -445,6 +452,7 @@ function createWorkerBundle(defines) {
 | 
				
			|||||||
    .src("./src/pdf.worker.js")
 | 
					    .src("./src/pdf.worker.js")
 | 
				
			||||||
    .pipe(webpack2Stream(workerFileConfig))
 | 
					    .pipe(webpack2Stream(workerFileConfig))
 | 
				
			||||||
    .pipe(replaceWebpackRequire())
 | 
					    .pipe(replaceWebpackRequire())
 | 
				
			||||||
 | 
					    .pipe(replaceNonWebpackImport())
 | 
				
			||||||
    .pipe(replaceJSRootName(workerAMDName, "pdfjsWorker"));
 | 
					    .pipe(replaceJSRootName(workerAMDName, "pdfjsWorker"));
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -460,7 +468,10 @@ function createWebBundle(defines, options) {
 | 
				
			|||||||
      defaultPreferencesDir: options.defaultPreferencesDir,
 | 
					      defaultPreferencesDir: options.defaultPreferencesDir,
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
  );
 | 
					  );
 | 
				
			||||||
  return gulp.src("./web/viewer.js").pipe(webpack2Stream(viewerFileConfig));
 | 
					  return gulp
 | 
				
			||||||
 | 
					    .src("./web/viewer.js")
 | 
				
			||||||
 | 
					    .pipe(webpack2Stream(viewerFileConfig))
 | 
				
			||||||
 | 
					    .pipe(replaceNonWebpackImport());
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function createComponentsBundle(defines) {
 | 
					function createComponentsBundle(defines) {
 | 
				
			||||||
@ -477,6 +488,7 @@ function createComponentsBundle(defines) {
 | 
				
			|||||||
    .src("./web/pdf_viewer.component.js")
 | 
					    .src("./web/pdf_viewer.component.js")
 | 
				
			||||||
    .pipe(webpack2Stream(componentsFileConfig))
 | 
					    .pipe(webpack2Stream(componentsFileConfig))
 | 
				
			||||||
    .pipe(replaceWebpackRequire())
 | 
					    .pipe(replaceWebpackRequire())
 | 
				
			||||||
 | 
					    .pipe(replaceNonWebpackImport())
 | 
				
			||||||
    .pipe(replaceJSRootName(componentsAMDName, "pdfjsViewer"));
 | 
					    .pipe(replaceJSRootName(componentsAMDName, "pdfjsViewer"));
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -494,6 +506,7 @@ function createImageDecodersBundle(defines) {
 | 
				
			|||||||
    .src("./src/pdf.image_decoders.js")
 | 
					    .src("./src/pdf.image_decoders.js")
 | 
				
			||||||
    .pipe(webpack2Stream(componentsFileConfig))
 | 
					    .pipe(webpack2Stream(componentsFileConfig))
 | 
				
			||||||
    .pipe(replaceWebpackRequire())
 | 
					    .pipe(replaceWebpackRequire())
 | 
				
			||||||
 | 
					    .pipe(replaceNonWebpackImport())
 | 
				
			||||||
    .pipe(replaceJSRootName(imageDecodersAMDName, "pdfjsImageDecoders"));
 | 
					    .pipe(replaceJSRootName(imageDecodersAMDName, "pdfjsImageDecoders"));
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -1427,12 +1440,14 @@ function buildLibHelper(bundleDefines, inputStream, outputDir) {
 | 
				
			|||||||
  // __non_webpack_require__ has to be used.
 | 
					  // __non_webpack_require__ has to be used.
 | 
				
			||||||
  // In this target, we don't create a bundle, so we have to replace the
 | 
					  // In this target, we don't create a bundle, so we have to replace the
 | 
				
			||||||
  // occurrences of __non_webpack_require__ ourselves.
 | 
					  // occurrences of __non_webpack_require__ ourselves.
 | 
				
			||||||
  function babelPluginReplaceNonWebPackRequire(babel) {
 | 
					  function babelPluginReplaceNonWebpackImports(babel) {
 | 
				
			||||||
    return {
 | 
					    return {
 | 
				
			||||||
      visitor: {
 | 
					      visitor: {
 | 
				
			||||||
        Identifier(curPath, state) {
 | 
					        Identifier(curPath, state) {
 | 
				
			||||||
          if (curPath.node.name === "__non_webpack_require__") {
 | 
					          if (curPath.node.name === "__non_webpack_require__") {
 | 
				
			||||||
            curPath.replaceWith(babel.types.identifier("require"));
 | 
					            curPath.replaceWith(babel.types.identifier("require"));
 | 
				
			||||||
 | 
					          } else if (curPath.node.name === "__non_webpack_import__") {
 | 
				
			||||||
 | 
					            curPath.replaceWith(babel.types.identifier("import"));
 | 
				
			||||||
          }
 | 
					          }
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
      },
 | 
					      },
 | 
				
			||||||
@ -1454,7 +1469,7 @@ function buildLibHelper(bundleDefines, inputStream, outputDir) {
 | 
				
			|||||||
            regenerator: true,
 | 
					            regenerator: true,
 | 
				
			||||||
          },
 | 
					          },
 | 
				
			||||||
        ],
 | 
					        ],
 | 
				
			||||||
        babelPluginReplaceNonWebPackRequire,
 | 
					        babelPluginReplaceNonWebpackImports,
 | 
				
			||||||
      ],
 | 
					      ],
 | 
				
			||||||
    }).code;
 | 
					    }).code;
 | 
				
			||||||
    const removeCjsSrc =
 | 
					    const removeCjsSrc =
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										21
									
								
								web/app.js
									
									
									
									
									
								
							
							
						
						
									
										21
									
								
								web/app.js
									
									
									
									
									
								
							@ -12,7 +12,6 @@
 | 
				
			|||||||
 * See the License for the specific language governing permissions and
 | 
					 * See the License for the specific language governing permissions and
 | 
				
			||||||
 * limitations under the License.
 | 
					 * limitations under the License.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
/* globals PDFBug, Stats */
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
import {
 | 
					import {
 | 
				
			||||||
  animationStarted,
 | 
					  animationStarted,
 | 
				
			||||||
@ -254,6 +253,7 @@ const PDFViewerApplication = {
 | 
				
			|||||||
  _docStats: null,
 | 
					  _docStats: null,
 | 
				
			||||||
  _wheelUnusedTicks: 0,
 | 
					  _wheelUnusedTicks: 0,
 | 
				
			||||||
  _idleCallbacks: new Set(),
 | 
					  _idleCallbacks: new Set(),
 | 
				
			||||||
 | 
					  _PDFBug: null,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  // Called once when the document is loaded.
 | 
					  // Called once when the document is loaded.
 | 
				
			||||||
  async initialize(appConfig) {
 | 
					  async initialize(appConfig) {
 | 
				
			||||||
@ -847,10 +847,8 @@ const PDFViewerApplication = {
 | 
				
			|||||||
    this.findBar?.reset();
 | 
					    this.findBar?.reset();
 | 
				
			||||||
    this.toolbar.reset();
 | 
					    this.toolbar.reset();
 | 
				
			||||||
    this.secondaryToolbar.reset();
 | 
					    this.secondaryToolbar.reset();
 | 
				
			||||||
 | 
					    this._PDFBug?.cleanup();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (typeof PDFBug !== "undefined") {
 | 
					 | 
				
			||||||
      PDFBug.cleanup();
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    await Promise.all(promises);
 | 
					    await Promise.all(promises);
 | 
				
			||||||
  },
 | 
					  },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -2126,22 +2124,23 @@ async function loadFakeWorker() {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
async function initPDFBug(enabledTabs) {
 | 
					async function initPDFBug(enabledTabs) {
 | 
				
			||||||
  const { debuggerScriptPath, mainContainer } = PDFViewerApplication.appConfig;
 | 
					  const { debuggerScriptPath, mainContainer } = PDFViewerApplication.appConfig;
 | 
				
			||||||
  await loadScript(debuggerScriptPath);
 | 
					  const { PDFBug } =
 | 
				
			||||||
 | 
					    typeof PDFJSDev === "undefined" || !PDFJSDev.test("PRODUCTION")
 | 
				
			||||||
 | 
					      ? await import(debuggerScriptPath) // eslint-disable-line no-unsanitized/method
 | 
				
			||||||
 | 
					      : await __non_webpack_import__(debuggerScriptPath); // eslint-disable-line no-undef
 | 
				
			||||||
  PDFBug.init({ OPS }, mainContainer, enabledTabs);
 | 
					  PDFBug.init({ OPS }, mainContainer, enabledTabs);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  PDFViewerApplication._PDFBug = PDFBug;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function reportPageStatsPDFBug({ pageNumber }) {
 | 
					function reportPageStatsPDFBug({ pageNumber }) {
 | 
				
			||||||
  if (typeof Stats === "undefined" || !Stats.enabled) {
 | 
					  if (!globalThis.Stats?.enabled) {
 | 
				
			||||||
    return;
 | 
					    return;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
  const pageView = PDFViewerApplication.pdfViewer.getPageView(
 | 
					  const pageView = PDFViewerApplication.pdfViewer.getPageView(
 | 
				
			||||||
    /* index = */ pageNumber - 1
 | 
					    /* index = */ pageNumber - 1
 | 
				
			||||||
  );
 | 
					  );
 | 
				
			||||||
  const pageStats = pageView?.pdfPage?.stats;
 | 
					  globalThis.Stats.add(pageNumber, pageView?.pdfPage?.stats);
 | 
				
			||||||
  if (!pageStats) {
 | 
					 | 
				
			||||||
    return;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
  Stats.add(pageNumber, pageStats);
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function webViewerInitialized() {
 | 
					function webViewerInitialized() {
 | 
				
			||||||
 | 
				
			|||||||
@ -13,10 +13,9 @@
 | 
				
			|||||||
 * limitations under the License.
 | 
					 * limitations under the License.
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
"use strict";
 | 
					let opMap;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// eslint-disable-next-line no-var
 | 
					const FontInspector = (function FontInspectorClosure() {
 | 
				
			||||||
var FontInspector = (function FontInspectorClosure() {
 | 
					 | 
				
			||||||
  let fonts;
 | 
					  let fonts;
 | 
				
			||||||
  let active = false;
 | 
					  let active = false;
 | 
				
			||||||
  const fontAttribute = "data-font-name";
 | 
					  const fontAttribute = "data-font-name";
 | 
				
			||||||
@ -154,12 +153,8 @@ var FontInspector = (function FontInspectorClosure() {
 | 
				
			|||||||
  };
 | 
					  };
 | 
				
			||||||
})();
 | 
					})();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
let opMap;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// Manages all the page steppers.
 | 
					// Manages all the page steppers.
 | 
				
			||||||
//
 | 
					const StepperManager = (function StepperManagerClosure() {
 | 
				
			||||||
// eslint-disable-next-line no-var
 | 
					 | 
				
			||||||
var StepperManager = (function StepperManagerClosure() {
 | 
					 | 
				
			||||||
  let steppers = [];
 | 
					  let steppers = [];
 | 
				
			||||||
  let stepperDiv = null;
 | 
					  let stepperDiv = null;
 | 
				
			||||||
  let stepperControls = null;
 | 
					  let stepperControls = null;
 | 
				
			||||||
@ -451,8 +446,7 @@ const Stepper = (function StepperClosure() {
 | 
				
			|||||||
  return Stepper;
 | 
					  return Stepper;
 | 
				
			||||||
})();
 | 
					})();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// eslint-disable-next-line no-var
 | 
					const Stats = (function Stats() {
 | 
				
			||||||
var Stats = (function Stats() {
 | 
					 | 
				
			||||||
  let stats = [];
 | 
					  let stats = [];
 | 
				
			||||||
  function clear(node) {
 | 
					  function clear(node) {
 | 
				
			||||||
    node.textContent = ""; // Remove any `node` contents from the DOM.
 | 
					    node.textContent = ""; // Remove any `node` contents from the DOM.
 | 
				
			||||||
@ -510,7 +504,7 @@ var Stats = (function Stats() {
 | 
				
			|||||||
})();
 | 
					})();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Manages all the debugging tools.
 | 
					// Manages all the debugging tools.
 | 
				
			||||||
window.PDFBug = (function PDFBugClosure() {
 | 
					const PDFBug = (function PDFBugClosure() {
 | 
				
			||||||
  const panelWidth = 300;
 | 
					  const panelWidth = 300;
 | 
				
			||||||
  const buttons = [];
 | 
					  const buttons = [];
 | 
				
			||||||
  let activePanel = null;
 | 
					  let activePanel = null;
 | 
				
			||||||
@ -562,13 +556,13 @@ window.PDFBug = (function PDFBugClosure() {
 | 
				
			|||||||
      container.style.right = panelWidth + "px";
 | 
					      container.style.right = panelWidth + "px";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      // Initialize all the debugging tools.
 | 
					      // Initialize all the debugging tools.
 | 
				
			||||||
      for (const [i, tool] of this.tools.entries()) {
 | 
					      for (const tool of this.tools) {
 | 
				
			||||||
        const panel = document.createElement("div");
 | 
					        const panel = document.createElement("div");
 | 
				
			||||||
        const panelButton = document.createElement("button");
 | 
					        const panelButton = document.createElement("button");
 | 
				
			||||||
        panelButton.textContent = tool.name;
 | 
					        panelButton.textContent = tool.name;
 | 
				
			||||||
        panelButton.addEventListener("click", event => {
 | 
					        panelButton.addEventListener("click", event => {
 | 
				
			||||||
          event.preventDefault();
 | 
					          event.preventDefault();
 | 
				
			||||||
          this.selectPanel(i);
 | 
					          this.selectPanel(tool);
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
        controls.appendChild(panelButton);
 | 
					        controls.appendChild(panelButton);
 | 
				
			||||||
        panels.appendChild(panel);
 | 
					        panels.appendChild(panel);
 | 
				
			||||||
@ -609,3 +603,9 @@ window.PDFBug = (function PDFBugClosure() {
 | 
				
			|||||||
    },
 | 
					    },
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
})();
 | 
					})();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					globalThis.FontInspector = FontInspector;
 | 
				
			||||||
 | 
					globalThis.StepperManager = StepperManager;
 | 
				
			||||||
 | 
					globalThis.Stats = Stats;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export { PDFBug };
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user