Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove the supportsDocumentColors warning in MOZCENTRAL builds (bug 844349 follow-up) #11521

Merged
merged 2 commits into from
Jan 19, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion l10n/en-US/viewer.properties
Original file line number Diff line number Diff line change
Expand Up @@ -245,4 +245,3 @@ password_cancel=Cancel
printing_not_supported=Warning: Printing is not fully supported by this browser.
printing_not_ready=Warning: The PDF is not fully loaded for printing.
web_fonts_disabled=Web fonts are disabled: unable to use embedded PDF fonts.
document_colors_not_allowed=PDF documents are not allowed to use their own colors: “Allow pages to choose their own colors” is deactivated in the browser.
87 changes: 39 additions & 48 deletions web/app.js
Original file line number Diff line number Diff line change
Expand Up @@ -84,29 +84,48 @@ const ViewOnLoad = {
INITIAL: 1,
};

const DefaultExternalServices = {
updateFindControlState(data) {},
updateFindMatchesCount(data) {},
initPassiveLoading(callbacks) {},
fallback(data, callback) {},
reportTelemetry(data) {},
createDownloadManager(options) {
class DefaultExternalServices {
constructor() {
throw new Error("Cannot initialize DefaultExternalServices.");
}

static updateFindControlState(data) {}

static updateFindMatchesCount(data) {}

static initPassiveLoading(callbacks) {}

static fallback(data, callback) {}

static reportTelemetry(data) {}

static createDownloadManager(options) {
throw new Error("Not implemented: createDownloadManager");
},
createPreferences() {
}

static createPreferences() {
throw new Error("Not implemented: createPreferences");
},
createL10n(options) {
}

static createL10n(options) {
throw new Error("Not implemented: createL10n");
},
supportsIntegratedFind: false,
supportsDocumentFonts: true,
supportsDocumentColors: true,
supportedMouseWheelZoomModifierKeys: {
ctrlKey: true,
metaKey: true,
},
};
}

static get supportsIntegratedFind() {
return shadow(this, "supportsIntegratedFind", false);
}

static get supportsDocumentFonts() {
return shadow(this, "supportsDocumentFonts", true);
}

static get supportedMouseWheelZoomModifierKeys() {
return shadow(this, "supportedMouseWheelZoomModifierKeys", {
ctrlKey: true,
metaKey: true,
});
}
}

const PDFViewerApplication = {
initialBookmark: document.location.hash.substring(1),
Expand Down Expand Up @@ -547,10 +566,6 @@ const PDFViewerApplication = {
return this.externalServices.supportsDocumentFonts;
},

get supportsDocumentColors() {
return this.externalServices.supportsDocumentColors;
},

get loadingBar() {
const bar = new ProgressBar("#loadingBar");
return shadow(this, "loadingBar", bar);
Expand Down Expand Up @@ -1586,7 +1601,6 @@ const PDFViewerApplication = {
eventBus.on("beforeprint", _boundEvents.beforePrint);
eventBus.on("afterprint", _boundEvents.afterPrint);
eventBus.on("pagerendered", webViewerPageRendered);
eventBus.on("textlayerrendered", webViewerTextLayerRendered);
eventBus.on("updateviewarea", webViewerUpdateViewarea);
eventBus.on("pagechanging", webViewerPageChanging);
eventBus.on("scalechanging", webViewerScaleChanging);
Expand Down Expand Up @@ -1661,7 +1675,6 @@ const PDFViewerApplication = {
eventBus.off("beforeprint", _boundEvents.beforePrint);
eventBus.off("afterprint", _boundEvents.afterPrint);
eventBus.off("pagerendered", webViewerPageRendered);
eventBus.off("textlayerrendered", webViewerTextLayerRendered);
eventBus.off("updateviewarea", webViewerUpdateViewarea);
eventBus.off("pagechanging", webViewerPageChanging);
eventBus.off("scalechanging", webViewerScaleChanging);
Expand Down Expand Up @@ -2002,28 +2015,6 @@ function webViewerPageRendered(evt) {
}
}

function webViewerTextLayerRendered(evt) {
if (
typeof PDFJSDev !== "undefined" &&
PDFJSDev.test("FIREFOX || MOZCENTRAL") &&
evt.numTextDivs > 0 &&
!PDFViewerApplication.supportsDocumentColors
) {
PDFViewerApplication.l10n
.get(
"document_colors_not_allowed",
null,
"PDF documents are not allowed to use their own colors: " +
"'Allow pages to choose their own colors' " +
"is deactivated in the browser."
)
.then(msg => {
console.error(msg);
});
PDFViewerApplication.fallback();
}
}

function webViewerPageMode({ mode }) {
// Handle the 'pagemode' hash parameter, see also `PDFLinkService_setHash`.
let view;
Expand Down
45 changes: 24 additions & 21 deletions web/chromecom.js
Original file line number Diff line number Diff line change
Expand Up @@ -404,27 +404,30 @@ class ChromePreferences extends BasePreferences {
}
}

const ChromeExternalServices = Object.create(DefaultExternalServices);
ChromeExternalServices.initPassiveLoading = function(callbacks) {
const { overlayManager } = PDFViewerApplication;
// defaultUrl is set in viewer.js
ChromeCom.resolvePDFFile(
AppOptions.get("defaultUrl"),
overlayManager,
function(url, length, originalUrl) {
callbacks.onOpenWithURL(url, length, originalUrl);
}
);
};
ChromeExternalServices.createDownloadManager = function(options) {
return new DownloadManager(options);
};
ChromeExternalServices.createPreferences = function() {
return new ChromePreferences();
};
ChromeExternalServices.createL10n = function(options) {
return new GenericL10n(navigator.language);
};
class ChromeExternalServices extends DefaultExternalServices {
static initPassiveLoading(callbacks) {
// defaultUrl is set in viewer.js
ChromeCom.resolvePDFFile(
AppOptions.get("defaultUrl"),
PDFViewerApplication.overlayManager,
function(url, length, originalUrl) {
callbacks.onOpenWithURL(url, length, originalUrl);
}
);
}

static createDownloadManager(options) {
return new DownloadManager(options);
}

static createPreferences() {
return new ChromePreferences();
}

static createL10n(options) {
return new GenericL10n(navigator.language);
}
}
PDFViewerApplication.externalServices = ChromeExternalServices;

export { ChromeCom };
56 changes: 26 additions & 30 deletions web/firefoxcom.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,9 @@

import "../extensions/firefox/tools/l10n";
import { createObjectURL, PDFDataRangeTransport, shadow } from "pdfjs-lib";
import { DefaultExternalServices, PDFViewerApplication } from "./app.js";
import { BasePreferences } from "./preferences.js";
import { DEFAULT_SCALE_VALUE } from "./ui_utils.js";
import { PDFViewerApplication } from "./app.js";

if (
typeof PDFJSDev === "undefined" ||
Expand Down Expand Up @@ -241,16 +241,16 @@ class FirefoxComDataRangeTransport extends PDFDataRangeTransport {
}
}

PDFViewerApplication.externalServices = {
updateFindControlState(data) {
class FirefoxExternalServices extends DefaultExternalServices {
static updateFindControlState(data) {
FirefoxCom.request("updateFindControlState", data);
},
}

updateFindMatchesCount(data) {
static updateFindMatchesCount(data) {
FirefoxCom.request("updateFindMatchesCount", data);
},
}

initPassiveLoading(callbacks) {
static initPassiveLoading(callbacks) {
let pdfDataRangeTransport;

window.addEventListener("message", function windowMessage(e) {
Expand Down Expand Up @@ -309,52 +309,48 @@ PDFViewerApplication.externalServices = {
}
});
FirefoxCom.requestSync("initPassiveLoading", null);
},
}

fallback(data, callback) {
static fallback(data, callback) {
FirefoxCom.request("fallback", data, callback);
},
}

reportTelemetry(data) {
static reportTelemetry(data) {
FirefoxCom.request("reportTelemetry", JSON.stringify(data));
},
}

createDownloadManager(options) {
static createDownloadManager(options) {
return new DownloadManager(options);
},
}

createPreferences() {
static createPreferences() {
return new FirefoxPreferences();
},
}

createL10n(options) {
static createL10n(options) {
const mozL10n = document.mozL10n;
// TODO refactor mozL10n.setExternalLocalizerServices
return new MozL10n(mozL10n);
},
}

get supportsIntegratedFind() {
static get supportsIntegratedFind() {
const support = FirefoxCom.requestSync("supportsIntegratedFind");
return shadow(this, "supportsIntegratedFind", support);
},
}

get supportsDocumentFonts() {
static get supportsDocumentFonts() {
const support = FirefoxCom.requestSync("supportsDocumentFonts");
return shadow(this, "supportsDocumentFonts", support);
},

get supportsDocumentColors() {
const support = FirefoxCom.requestSync("supportsDocumentColors");
return shadow(this, "supportsDocumentColors", support);
},
}

get supportedMouseWheelZoomModifierKeys() {
static get supportedMouseWheelZoomModifierKeys() {
const support = FirefoxCom.requestSync(
"supportedMouseWheelZoomModifierKeys"
);
return shadow(this, "supportedMouseWheelZoomModifierKeys", support);
},
};
}
}
PDFViewerApplication.externalServices = FirefoxExternalServices;

// l10n.js for Firefox extension expects services to be set.
document.mozL10n.setExternalLocalizerServices({
Expand Down
23 changes: 13 additions & 10 deletions web/genericcom.js
Original file line number Diff line number Diff line change
Expand Up @@ -37,16 +37,19 @@ class GenericPreferences extends BasePreferences {
}
}

const GenericExternalServices = Object.create(DefaultExternalServices);
GenericExternalServices.createDownloadManager = function(options) {
return new DownloadManager(options);
};
GenericExternalServices.createPreferences = function() {
return new GenericPreferences();
};
GenericExternalServices.createL10n = function({ locale = "en-US" }) {
return new GenericL10n(locale);
};
class GenericExternalServices extends DefaultExternalServices {
static createDownloadManager(options) {
return new DownloadManager(options);
}

static createPreferences() {
return new GenericPreferences();
}

static createL10n({ locale = "en-US" }) {
return new GenericL10n(locale);
}
}
PDFViewerApplication.externalServices = GenericExternalServices;

export { GenericCom };