Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(61)

Unified Diff: chrome/browser/resources/print_preview/native_layer.js

Issue 2881213003: Print Preview: Use cr.sendWithPromise for getInitialSettings (Closed)
Patch Set: Revert extra change from rebase Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/resources/print_preview/native_layer.js
diff --git a/chrome/browser/resources/print_preview/native_layer.js b/chrome/browser/resources/print_preview/native_layer.js
index e4220375e09e9ed494480442a59ba4e23f64424b..19a5231930c9556349d757bbbf3be6fe026c2422 100644
--- a/chrome/browser/resources/print_preview/native_layer.js
+++ b/chrome/browser/resources/print_preview/native_layer.js
@@ -30,13 +30,9 @@ cr.define('print_preview', function() {
/**
* An interface to the native Chromium printing system layer.
* @constructor
- * @extends {cr.EventTarget}
*/
function NativeLayer() {
- cr.EventTarget.call(this);
-
// Bind global handlers
- global.setInitialSettings = this.onSetInitialSettings_.bind(this);
global.setUseCloudPrint = this.onSetUseCloudPrint_.bind(this);
global.setPrinters = this.onSetPrinters_.bind(this);
global.updateWithPrinterCapabilities =
@@ -79,6 +75,9 @@ cr.define('print_preview', function() {
this.onProvisionalDestinationResolved_.bind(this);
global.failedToResolveProvisionalPrinter =
this.failedToResolveProvisionalDestination_.bind(this);
+
+ /** @private {!cr.EventTarget} */
+ this.eventTarget_ = new cr.EventTarget();
}
/**
@@ -96,7 +95,6 @@ cr.define('print_preview', function() {
FILE_SELECTION_COMPLETE:
'print_preview.NativeLayer.FILE_SELECTION_COMPLETE',
GET_CAPABILITIES_FAIL: 'print_preview.NativeLayer.GET_CAPABILITIES_FAIL',
- INITIAL_SETTINGS_SET: 'print_preview.NativeLayer.INITIAL_SETTINGS_SET',
LOCAL_DESTINATIONS_SET: 'print_preview.NativeLayer.LOCAL_DESTINATIONS_SET',
MANIPULATE_SETTINGS_FOR_TEST:
'print_preview.NativeLayer.MANIPULATE_SETTINGS_FOR_TEST',
@@ -151,7 +149,10 @@ cr.define('print_preview', function() {
NativeLayer.SERIALIZED_STATE_VERSION_ = 1;
NativeLayer.prototype = {
- __proto__: cr.EventTarget.prototype,
+ /** @return {!cr.EventTarget} The event target for the native layer.*/
+ getEventTarget: function() {
+ return this.eventTarget_;
+ },
/**
* Requests access token for cloud print requests.
@@ -161,9 +162,38 @@ cr.define('print_preview', function() {
chrome.send('getAccessToken', [authType]);
},
- /** Gets the initial settings to initialize the print preview with. */
- startGetInitialSettings: function() {
- chrome.send('getInitialSettings');
+ /**
+ * Gets the initial settings to initialize the print preview with.
+ * @return {!Promise<!print_preview.NativeInitialSettings>}
+ */
+ getInitialSettings: function() {
+ return cr.sendWithPromise('getInitialSettings').then(
+ /**
+ * @param {!Object} initialSettings Object containing the raw
+ * Print Preview settings.
+ */
+ function(initialSettings) {
+ var numberFormatSymbols =
+ print_preview.MeasurementSystem.parseNumberFormat(
+ initialSettings['numberFormat']);
+ var unitType = print_preview.MeasurementSystemUnitType.IMPERIAL;
+ if (initialSettings['measurementSystem'] != null) {
+ unitType = initialSettings['measurementSystem'];
+ }
+ return new print_preview.NativeInitialSettings(
+ initialSettings['printAutomaticallyInKioskMode'] || false,
+ initialSettings['appKioskMode'] || false,
+ numberFormatSymbols[0] || ',',
+ numberFormatSymbols[1] || '.',
+ unitType,
+ initialSettings['previewModifiable'] || false,
+ initialSettings['initiatorTitle'] || '',
+ initialSettings['documentHasSelection'] || false,
+ initialSettings['shouldPrintSelectionOnly'] || false,
+ initialSettings['printerName'] || null,
+ initialSettings['appState'] || null,
+ initialSettings['defaultDestinationSelectionRules'] || null);
+ });
},
/**
@@ -485,38 +515,6 @@ cr.define('print_preview', function() {
},
/**
- * @param {!Object} initialSettings Object containing all initial settings.
- */
- onSetInitialSettings_: function(initialSettings) {
- var numberFormatSymbols =
- print_preview.MeasurementSystem.parseNumberFormat(
- initialSettings['numberFormat']);
- var unitType = print_preview.MeasurementSystemUnitType.IMPERIAL;
- if (initialSettings['measurementSystem'] != null) {
- unitType = initialSettings['measurementSystem'];
- }
-
- var nativeInitialSettings = new print_preview.NativeInitialSettings(
- initialSettings['printAutomaticallyInKioskMode'] || false,
- initialSettings['appKioskMode'] || false,
- numberFormatSymbols[0] || ',',
- numberFormatSymbols[1] || '.',
- unitType,
- initialSettings['previewModifiable'] || false,
- initialSettings['initiatorTitle'] || '',
- initialSettings['documentHasSelection'] || false,
- initialSettings['shouldPrintSelectionOnly'] || false,
- initialSettings['printerName'] || null,
- initialSettings['appState'] || null,
- initialSettings['defaultDestinationSelectionRules'] || null);
-
- var initialSettingsSetEvent = new Event(
- NativeLayer.EventType.INITIAL_SETTINGS_SET);
- initialSettingsSetEvent.initialSettings = nativeInitialSettings;
- this.dispatchEvent(initialSettingsSetEvent);
- },
-
- /**
* Turn on the integration of Cloud Print.
* @param {{cloudPrintURL: string, appKioskMode: string}} settings
* cloudPrintUrl: The URL to use for cloud print servers.
@@ -527,7 +525,7 @@ cr.define('print_preview', function() {
NativeLayer.EventType.CLOUD_PRINT_ENABLE);
cloudPrintEnableEvent.baseCloudPrintUrl = settings['cloudPrintUrl'] || '';
cloudPrintEnableEvent.appKioskMode = settings['appKioskMode'] || false;
- this.dispatchEvent(cloudPrintEnableEvent);
+ this.eventTarget_.dispatchEvent(cloudPrintEnableEvent);
},
/**
@@ -540,7 +538,7 @@ cr.define('print_preview', function() {
var localDestsSetEvent = new Event(
NativeLayer.EventType.LOCAL_DESTINATIONS_SET);
localDestsSetEvent.destinationInfos = printers;
- this.dispatchEvent(localDestsSetEvent);
+ this.eventTarget_.dispatchEvent(localDestsSetEvent);
},
/**
@@ -554,7 +552,7 @@ cr.define('print_preview', function() {
'Capabilities update without capabilites');
var capsSetEvent = new Event(NativeLayer.EventType.CAPABILITIES_SET);
capsSetEvent.settingsInfo = settingsInfo;
- this.dispatchEvent(capsSetEvent);
+ this.eventTarget_.dispatchEvent(capsSetEvent);
},
/**
@@ -569,7 +567,7 @@ cr.define('print_preview', function() {
getCapsFailEvent.destinationId = destinationId;
getCapsFailEvent.destinationOrigin =
print_preview.DestinationOrigin.LOCAL;
- this.dispatchEvent(getCapsFailEvent);
+ this.eventTarget_.dispatchEvent(getCapsFailEvent);
},
/**
@@ -584,7 +582,7 @@ cr.define('print_preview', function() {
getCapsFailEvent.destinationId = destinationId;
getCapsFailEvent.destinationOrigin =
print_preview.DestinationOrigin.PRIVET;
- this.dispatchEvent(getCapsFailEvent);
+ this.eventTarget_.dispatchEvent(getCapsFailEvent);
},
/**
@@ -599,12 +597,13 @@ cr.define('print_preview', function() {
getCapsFailEvent.destinationId = destinationId;
getCapsFailEvent.destinationOrigin =
print_preview.DestinationOrigin.EXTENSION;
- this.dispatchEvent(getCapsFailEvent);
+ this.eventTarget_.dispatchEvent(getCapsFailEvent);
},
/** Reloads the printer list. */
onReloadPrintersList_: function() {
- cr.dispatchSimpleEvent(this, NativeLayer.EventType.DESTINATIONS_RELOAD);
+ cr.dispatchSimpleEvent(this.eventTarget_,
+ NativeLayer.EventType.DESTINATIONS_RELOAD);
},
/**
@@ -618,7 +617,7 @@ cr.define('print_preview', function() {
var printToCloudEvent = new Event(
NativeLayer.EventType.PRINT_TO_CLOUD);
printToCloudEvent.data = data;
- this.dispatchEvent(printToCloudEvent);
+ this.eventTarget_.dispatchEvent(printToCloudEvent);
},
/**
@@ -627,7 +626,8 @@ cr.define('print_preview', function() {
* @private
*/
onFileSelectionCancelled_: function() {
- cr.dispatchSimpleEvent(this, NativeLayer.EventType.FILE_SELECTION_CANCEL);
+ cr.dispatchSimpleEvent(
+ this.eventTarget_, NativeLayer.EventType.FILE_SELECTION_CANCEL);
},
/**
@@ -639,7 +639,7 @@ cr.define('print_preview', function() {
// If the file selection is completed and the dialog is not already closed
// it means that a pending print to pdf request exists.
cr.dispatchSimpleEvent(
- this, NativeLayer.EventType.FILE_SELECTION_COMPLETE);
+ this.eventTarget_, NativeLayer.EventType.FILE_SELECTION_COMPLETE);
},
/**
@@ -649,7 +649,7 @@ cr.define('print_preview', function() {
*/
onPrintPreviewFailed_: function() {
cr.dispatchSimpleEvent(
- this, NativeLayer.EventType.PREVIEW_GENERATION_FAIL);
+ this.eventTarget_, NativeLayer.EventType.PREVIEW_GENERATION_FAIL);
},
/**
@@ -658,7 +658,8 @@ cr.define('print_preview', function() {
* @private
*/
onInvalidPrinterSettings_: function() {
- cr.dispatchSimpleEvent(this, NativeLayer.EventType.SETTINGS_INVALID);
+ cr.dispatchSimpleEvent(this.eventTarget_,
+ NativeLayer.EventType.SETTINGS_INVALID);
},
/**
@@ -676,7 +677,7 @@ cr.define('print_preview', function() {
NativeLayer.EventType.PAGE_LAYOUT_READY);
pageLayoutChangeEvent.pageLayout = pageLayout;
pageLayoutChangeEvent.hasCustomPageSizeStyle = hasCustomPageSizeStyle;
- this.dispatchEvent(pageLayoutChangeEvent);
+ this.eventTarget_.dispatchEvent(pageLayoutChangeEvent);
},
/**
@@ -696,7 +697,7 @@ cr.define('print_preview', function() {
pageCountChangeEvent.pageCount = pageCount;
pageCountChangeEvent.previewResponseId = previewResponseId;
pageCountChangeEvent.fitToPageScaling = fitToPageScaling;
- this.dispatchEvent(pageCountChangeEvent);
+ this.eventTarget_.dispatchEvent(pageCountChangeEvent);
},
/**
@@ -715,7 +716,7 @@ cr.define('print_preview', function() {
pagePreviewGenEvent.pageIndex = pageNumber;
pagePreviewGenEvent.previewUid = previewUid;
pagePreviewGenEvent.previewResponseId = previewResponseId;
- this.dispatchEvent(pagePreviewGenEvent);
+ this.eventTarget_.dispatchEvent(pagePreviewGenEvent);
},
/**
@@ -729,7 +730,7 @@ cr.define('print_preview', function() {
NativeLayer.EventType.ACCESS_TOKEN_READY);
getAccessTokenEvent.authType = authType;
getAccessTokenEvent.accessToken = accessToken;
- this.dispatchEvent(getAccessTokenEvent);
+ this.eventTarget_.dispatchEvent(getAccessTokenEvent);
},
/**
@@ -746,7 +747,7 @@ cr.define('print_preview', function() {
NativeLayer.EventType.PREVIEW_GENERATION_DONE);
previewGenDoneEvent.previewUid = previewUid;
previewGenDoneEvent.previewResponseId = previewResponseId;
- this.dispatchEvent(previewGenDoneEvent);
+ this.eventTarget_.dispatchEvent(previewGenDoneEvent);
},
/**
@@ -761,7 +762,7 @@ cr.define('print_preview', function() {
var printPresetOptionsEvent = new Event(
NativeLayer.EventType.PRINT_PRESET_OPTIONS);
printPresetOptionsEvent.optionsFromDocument = options;
- this.dispatchEvent(printPresetOptionsEvent);
+ this.eventTarget_.dispatchEvent(printPresetOptionsEvent);
},
/**
@@ -773,7 +774,7 @@ cr.define('print_preview', function() {
var privetPrinterChangedEvent =
new Event(NativeLayer.EventType.PRIVET_PRINTER_CHANGED);
privetPrinterChangedEvent.printer = printer;
- this.dispatchEvent(privetPrinterChangedEvent);
+ this.eventTarget_.dispatchEvent(privetPrinterChangedEvent);
},
/**
@@ -786,7 +787,7 @@ cr.define('print_preview', function() {
new Event(NativeLayer.EventType.PRIVET_CAPABILITIES_SET);
privetCapabilitiesSetEvent.printer = printer;
privetCapabilitiesSetEvent.capabilities = capabilities;
- this.dispatchEvent(privetCapabilitiesSetEvent);
+ this.eventTarget_.dispatchEvent(privetCapabilitiesSetEvent);
},
/**
@@ -798,7 +799,7 @@ cr.define('print_preview', function() {
var privetPrintFailedEvent =
new Event(NativeLayer.EventType.PRIVET_PRINT_FAILED);
privetPrintFailedEvent.httpError = http_error;
- this.dispatchEvent(privetPrintFailedEvent);
+ this.eventTarget_.dispatchEvent(privetPrintFailedEvent);
},
/**
@@ -816,7 +817,7 @@ cr.define('print_preview', function() {
var event = new Event(NativeLayer.EventType.EXTENSION_PRINTERS_ADDED);
event.printers = printers;
event.done = done;
- this.dispatchEvent(event);
+ this.eventTarget_.dispatchEvent(event);
},
/**
@@ -830,7 +831,7 @@ cr.define('print_preview', function() {
var event = new Event(NativeLayer.EventType.EXTENSION_CAPABILITIES_SET);
event.printerId = printerId;
event.capabilities = capabilities;
- this.dispatchEvent(event);
+ this.eventTarget_.dispatchEvent(event);
},
/**
@@ -844,7 +845,7 @@ cr.define('print_preview', function() {
NativeLayer.EventType.PROVISIONAL_DESTINATION_RESOLVED);
evt.provisionalId = destinationId;
evt.destination = null;
- this.dispatchEvent(evt);
+ this.eventTarget_.dispatchEvent(evt);
},
/**
@@ -866,7 +867,7 @@ cr.define('print_preview', function() {
NativeLayer.EventType.PROVISIONAL_DESTINATION_RESOLVED);
evt.provisionalId = provisionalDestinationId;
evt.destination = destinationInfo;
- this.dispatchEvent(evt);
+ this.eventTarget_.dispatchEvent(evt);
},
/**
@@ -890,7 +891,7 @@ cr.define('print_preview', function() {
var manipulateSettingsEvent =
new Event(NativeLayer.EventType.MANIPULATE_SETTINGS_FOR_TEST);
manipulateSettingsEvent.settings = settings;
- this.dispatchEvent(manipulateSettingsEvent);
+ this.eventTarget_.dispatchEvent(manipulateSettingsEvent);
},
/**

Powered by Google App Engine
This is Rietveld 408576698