1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- // 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.
- #ifndef ANDROID_WEBVIEW_BROWSER_AW_PRINT_MANAGER_H_
- #define ANDROID_WEBVIEW_BROWSER_AW_PRINT_MANAGER_H_
- #include <memory>
- #include "components/printing/browser/print_manager.h"
- #include "components/printing/common/print.mojom-forward.h"
- #include "content/public/browser/web_contents_user_data.h"
- #include "printing/print_settings.h"
- namespace android_webview {
- class AwPrintManager : public printing::PrintManager,
- public content::WebContentsUserData<AwPrintManager> {
- public:
- AwPrintManager(const AwPrintManager&) = delete;
- AwPrintManager& operator=(const AwPrintManager&) = delete;
- ~AwPrintManager() override;
- static void BindPrintManagerHost(
- mojo::PendingAssociatedReceiver<printing::mojom::PrintManagerHost>
- receiver,
- content::RenderFrameHost* rfh);
- // printing::PrintManager:
- void PdfWritingDone(int page_count) override;
- bool PrintNow();
- // Updates the parameters for printing.
- void UpdateParam(std::unique_ptr<printing::PrintSettings> settings,
- int file_descriptor,
- PdfWritingDoneCallback callback);
- private:
- friend class content::WebContentsUserData<AwPrintManager>;
- explicit AwPrintManager(content::WebContents* contents);
- // mojom::PrintManagerHost:
- void DidPrintDocument(printing::mojom::DidPrintDocumentParamsPtr params,
- DidPrintDocumentCallback callback) override;
- void GetDefaultPrintSettings(
- GetDefaultPrintSettingsCallback callback) override;
- void ScriptedPrint(printing::mojom::ScriptedPrintParamsPtr params,
- ScriptedPrintCallback callback) override;
- static void OnDidPrintDocumentWritingDone(
- const PdfWritingDoneCallback& callback,
- DidPrintDocumentCallback did_print_document_cb,
- uint32_t page_count);
- std::unique_ptr<printing::PrintSettings> settings_;
- // The file descriptor into which the PDF of the document will be written.
- int fd_ = -1;
- WEB_CONTENTS_USER_DATA_KEY_DECL();
- };
- } // namespace android_webview
- #endif // ANDROID_WEBVIEW_BROWSER_AW_PRINT_MANAGER_H_
|