123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223 |
- "use strict";
- var VIEWER_URL = chrome.extension.getURL("content/web/viewer.html");
- function getViewerURL(pdf_url) {
- return VIEWER_URL + "?file=" + encodeURIComponent(pdf_url);
- }
- if (CSS.supports("animation", "0s")) {
- document.addEventListener("animationstart", onAnimationStart, true);
- } else {
- document.addEventListener("webkitAnimationStart", onAnimationStart, true);
- }
- function onAnimationStart(event) {
- if (event.animationName === "pdfjs-detected-object-or-embed") {
- watchObjectOrEmbed(event.target);
- }
- }
- function watchObjectOrEmbed(elem) {
- var mimeType = elem.type;
- if (mimeType && mimeType.toLowerCase() !== "application/pdf") {
- return;
- }
-
- var srcAttribute = "src" in elem ? "src" : "data";
- var path = elem[srcAttribute];
- if (!mimeType && !/\.pdf($|[?#])/i.test(path)) {
- return;
- }
- if (
- elem.tagName === "EMBED" &&
- elem.name === "plugin" &&
- elem.parentNode === document.body &&
- elem.parentNode.childElementCount === 1 &&
- elem.src === location.href
- ) {
-
-
-
-
-
-
-
- return;
- }
- if (elem.tagName === "EMBED" && elem.src === "about:blank") {
-
-
-
- return;
- }
- if (elem.__I_saw_this_element) {
- return;
- }
- elem.__I_saw_this_element = true;
- var tagName = elem.tagName.toUpperCase();
- var updateEmbedOrObject;
- if (tagName === "EMBED") {
- updateEmbedOrObject = updateEmbedElement;
- } else if (tagName === "OBJECT") {
- updateEmbedOrObject = updateObjectElement;
- } else {
- return;
- }
- var lastSrc;
- var isUpdating = false;
- function updateViewerFrame() {
- if (!isUpdating) {
- isUpdating = true;
- try {
- if (lastSrc !== elem[srcAttribute]) {
- updateEmbedOrObject(elem);
- lastSrc = elem[srcAttribute];
- }
- } finally {
- isUpdating = false;
- }
- }
- }
- updateViewerFrame();
-
- var srcObserver = new MutationObserver(updateViewerFrame);
- srcObserver.observe(elem, {
- attributes: true,
- childList: false,
- characterData: false,
- attributeFilter: [srcAttribute],
- });
- }
- function updateEmbedElement(elem) {
- if (elem.type === "text/html" && elem.src.lastIndexOf(VIEWER_URL, 0) === 0) {
-
- return;
- }
-
-
- var parentNode = elem.parentNode;
- var nextSibling = elem.nextSibling;
- if (parentNode) {
- elem.remove();
- }
- elem.type = "text/html";
- elem.src = getEmbeddedViewerURL(elem.src);
- if (parentNode) {
- nextSibling.before(elem);
- }
- }
- function updateObjectElement(elem) {
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- var iframe = elem.firstElementChild;
- if (!iframe || !iframe.__inserted_by_pdfjs) {
- iframe = createFullSizeIframe();
- elem.textContent = "";
- elem.append(iframe);
- iframe.__inserted_by_pdfjs = true;
- }
- iframe.src = getEmbeddedViewerURL(elem.data);
-
- elem.type = "application/not-a-pee-dee-eff-type";
-
- elem.data += "";
-
-
-
- elem.style.padding = "0";
-
-
-
-
-
-
-
-
-
- elem.style.display = "inline-block";
- }
- function createFullSizeIframe() {
- var iframe = document.createElement("iframe");
- iframe.style.background = "none";
- iframe.style.border = "none";
- iframe.style.borderRadius = "none";
- iframe.style.boxShadow = "none";
- iframe.style.cssFloat = "none";
- iframe.style.display = "block";
- iframe.style.height = "100%";
- iframe.style.margin = "0";
- iframe.style.maxHeight = "none";
- iframe.style.maxWidth = "none";
- iframe.style.position = "static";
- iframe.style.transform = "none";
- iframe.style.visibility = "visible";
- iframe.style.width = "100%";
- return iframe;
- }
- function getEmbeddedViewerURL(path) {
- var fragment = /^([^#]*)(#.*)?$/.exec(path);
- path = fragment[1];
- fragment = fragment[2] || "";
-
- var a = document.createElement("a");
- a.href = document.baseURI;
- a.href = path;
- path = a.href;
- return getViewerURL(path) + fragment;
- }
|