refactor: printing implementation (#15143)
* refactor: basic printing * move build files to chromium_src/BUILD.gn * remove dependency on chrome prerender sources * spec: move printing specs behind feature flag * build: register pdf compositor service
This commit is contained in:
parent
53642b2b17
commit
82322968a3
23 changed files with 780 additions and 1073 deletions
37
atom/renderer/printing/print_render_frame_helper_delegate.cc
Normal file
37
atom/renderer/printing/print_render_frame_helper_delegate.cc
Normal file
|
@ -0,0 +1,37 @@
|
|||
// Copyright (c) 2018 GitHub, Inc.
|
||||
// Use of this source code is governed by the MIT license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
#include "atom/renderer/printing/print_render_frame_helper_delegate.h"
|
||||
|
||||
#include "content/public/renderer/render_frame.h"
|
||||
#include "third_party/blink/public/web/web_element.h"
|
||||
#include "third_party/blink/public/web/web_local_frame.h"
|
||||
|
||||
namespace atom {
|
||||
|
||||
PrintRenderFrameHelperDelegate::PrintRenderFrameHelperDelegate() = default;
|
||||
|
||||
PrintRenderFrameHelperDelegate::~PrintRenderFrameHelperDelegate() = default;
|
||||
|
||||
bool PrintRenderFrameHelperDelegate::CancelPrerender(
|
||||
content::RenderFrame* render_frame) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Return the PDF object element if |frame| is the out of process PDF extension.
|
||||
blink::WebElement PrintRenderFrameHelperDelegate::GetPdfElement(
|
||||
blink::WebLocalFrame* frame) {
|
||||
return blink::WebElement();
|
||||
}
|
||||
|
||||
bool PrintRenderFrameHelperDelegate::IsPrintPreviewEnabled() {
|
||||
return false;
|
||||
}
|
||||
|
||||
bool PrintRenderFrameHelperDelegate::OverridePrint(
|
||||
blink::WebLocalFrame* frame) {
|
||||
return false;
|
||||
}
|
||||
|
||||
} // namespace atom
|
31
atom/renderer/printing/print_render_frame_helper_delegate.h
Normal file
31
atom/renderer/printing/print_render_frame_helper_delegate.h
Normal file
|
@ -0,0 +1,31 @@
|
|||
// Copyright (c) 2018 GitHub, Inc.
|
||||
// Use of this source code is governed by the MIT license that can be
|
||||
// found in the LICENSE file.
|
||||
|
||||
#ifndef ATOM_RENDERER_PRINTING_PRINT_RENDER_FRAME_HELPER_DELEGATE_H_
|
||||
#define ATOM_RENDERER_PRINTING_PRINT_RENDER_FRAME_HELPER_DELEGATE_H_
|
||||
|
||||
#include "base/macros.h"
|
||||
#include "components/printing/renderer/print_render_frame_helper.h"
|
||||
|
||||
namespace atom {
|
||||
|
||||
class PrintRenderFrameHelperDelegate
|
||||
: public printing::PrintRenderFrameHelper::Delegate {
|
||||
public:
|
||||
PrintRenderFrameHelperDelegate();
|
||||
~PrintRenderFrameHelperDelegate() override;
|
||||
|
||||
private:
|
||||
// printing::PrintRenderFrameHelper::Delegate:
|
||||
bool CancelPrerender(content::RenderFrame* render_frame) override;
|
||||
blink::WebElement GetPdfElement(blink::WebLocalFrame* frame) override;
|
||||
bool IsPrintPreviewEnabled() override;
|
||||
bool OverridePrint(blink::WebLocalFrame* frame) override;
|
||||
|
||||
DISALLOW_COPY_AND_ASSIGN(PrintRenderFrameHelperDelegate);
|
||||
};
|
||||
|
||||
} // namespace atom
|
||||
|
||||
#endif // ATOM_RENDERER_PRINTING_PRINT_RENDER_FRAME_HELPER_DELEGATE_H_
|
|
@ -55,7 +55,7 @@
|
|||
#endif // BUILDFLAG(ENABLE_TTS)
|
||||
|
||||
#if BUILDFLAG(ENABLE_PRINTING)
|
||||
#include "chrome/renderer/printing/chrome_print_render_frame_helper_delegate.h"
|
||||
#include "atom/renderer/printing/print_render_frame_helper_delegate.h"
|
||||
#include "components/printing/renderer/print_render_frame_helper.h"
|
||||
#endif // BUILDFLAG(ENABLE_PRINTING)
|
||||
|
||||
|
@ -192,7 +192,7 @@ void RendererClientBase::RenderFrameCreated(
|
|||
new ContentSettingsObserver(render_frame);
|
||||
#if BUILDFLAG(ENABLE_PRINTING)
|
||||
new printing::PrintRenderFrameHelper(
|
||||
render_frame, std::make_unique<ChromePrintRenderFrameHelperDelegate>());
|
||||
render_frame, std::make_unique<atom::PrintRenderFrameHelperDelegate>());
|
||||
#endif
|
||||
|
||||
#if BUILDFLAG(ENABLE_PDF_VIEWER)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue