// Copyright 2015 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // printerProviderInternal // Internal API used to run callbacks passed to chrome.printerProvider API // events. // When dispatching a chrome.printerProvider API event, its arguments will be // massaged in custom bindings so a callback is added. The callback uses // chrome.printerProviderInternal API to report the event results. // In order to identify the event for which the callback is called, the event // is internally dispatched having a requestId argument (which is removed from // the argument list before the event actually reaches the event listeners). The // requestId is forwarded to the chrome.printerProviderInternal API functions. namespace printerProviderInternal { // Same as in printerProvider.PrintError enum API. enum PrintError { OK, FAILED, INVALID_TICKET, INVALID_DATA }; // Information needed by a renderer to create a blob instance. dictionary BlobInfo { // The blob UUID. DOMString blobUuid; // The blob content type. DOMString type; // The blob size. long size; }; // Callback carrying information needed by a renderer to create a blob. callback BlobCallback = void(BlobInfo blobInfo); interface Functions { // Runs callback to printerProvider.onGetPrintersRequested event. // |requestId|: Parameter identifying the event instance for which the // callback is run. // |printers|: List of printers reported by the extension. void reportPrinters(long requestId, optional printerProvider.PrinterInfo[] printers); // Runs callback to printerProvider.onUsbAccessGranted event. // |requestId|: Parameter identifying the event instance for which the // callback is run. // |printerInfo|: Printer information reported by the extension. void reportUsbPrinterInfo(long requestId, optional printerProvider.PrinterInfo printerInfo); // Runs callback to printerProvider.onGetCapabilityRequested event. // |requestId|: Parameter identifying the event instance for which the // callback is run. // |error|: The printer capability returned by the extension. void reportPrinterCapability(long request_id, optional object capability); // Runs callback to printerProvider.onPrintRequested event. // |requestId|: Parameter identifying the event instance for which the // callback is run. // |error|: The requested print job result. void reportPrintResult(long request_id, optional PrintError error); // Gets information needed to create a print data blob for a print request. // The blob will be dispatched to the extension via // printerProvider.onPrintRequested event. // |requestId|: The request id for the print request for which data is // needed. // |callback|: Callback called with the information needed to create a blob // of print data. void getPrintData(long requestId, BlobCallback callback); }; };