chromium/third_party/blink/renderer/modules/printing/web_printer.idl

// Copyright 2023 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

[
  Exposed=Window,
  RuntimeEnabled=WebPrinting,
  SecureContext,
  IsolatedContext
]
interface WebPrinter {
  [MeasureAs=WebPrinterCachedAttributesFunction]
  WebPrinterAttributes cachedAttributes();

  [CallWith=ScriptState, RaisesException, MeasureAs=WebPrinterFetchAttributesFunction]
  Promise<WebPrinterAttributes> fetchAttributes();

  [CallWith=ScriptState, RaisesException, MeasureAs=WebPrinterPrintJobFunction]
  Promise<WebPrintJob> printJob(
    DOMString job_name,
    WebPrintDocumentDescription document,
    WebPrintJobTemplateAttributes attributes);
};