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); |
}, |
/** |