blob: d34e472ffff57f7d8fe076b46976f7efb9e8f399 [file] [log] [blame]
// 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);
};
};