summaryrefslogtreecommitdiffstats
path: root/src/core/web_contents_adapter.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/web_contents_adapter.cpp')
-rw-r--r--src/core/web_contents_adapter.cpp21
1 files changed, 16 insertions, 5 deletions
diff --git a/src/core/web_contents_adapter.cpp b/src/core/web_contents_adapter.cpp
index 6137d2223..6f35513b7 100644
--- a/src/core/web_contents_adapter.cpp
+++ b/src/core/web_contents_adapter.cpp
@@ -1321,7 +1321,10 @@ void WebContentsAdapter::printToPDF(const QPageLayout &pageLayout, const QPageRa
PrintViewManagerQt::PrintToPDFFileCallback callback = base::BindOnce(&callbackOnPdfSavingFinished,
m_adapterClient,
filePath);
- PrintViewManagerQt::FromWebContents(m_webContents.get())->PrintToPDFFileWithCallback(pageLayout,
+ content::WebContents *webContents = m_webContents.get();
+ if (content::WebContents *guest = guestWebContents())
+ webContents = guest;
+ PrintViewManagerQt::FromWebContents(webContents)->PrintToPDFFileWithCallback(pageLayout,
pageRanges,
true,
filePath,
@@ -1339,7 +1342,10 @@ quint64 WebContentsAdapter::printToPDFCallbackResult(const QPageLayout &pageLayo
PrintViewManagerQt::PrintToPDFCallback callback = base::BindOnce(&callbackOnPrintingFinished,
m_adapterClient,
m_nextRequestId);
- PrintViewManagerQt::FromWebContents(m_webContents.get())->PrintToPDFWithCallback(pageLayout,
+ content::WebContents *webContents = m_webContents.get();
+ if (content::WebContents *guest = guestWebContents())
+ webContents = guest;
+ PrintViewManagerQt::FromWebContents(webContents)->PrintToPDFWithCallback(pageLayout,
pageRanges,
colorMode,
useCustomMargins,
@@ -1438,6 +1444,12 @@ content::WebContents *WebContentsAdapter::webContents() const
return m_webContents.get();
}
+content::WebContents *WebContentsAdapter::guestWebContents() const
+{
+ std::vector<content::WebContents *> innerWebContents = m_webContents->GetInnerWebContents();
+ return !innerWebContents.empty() ? innerWebContents[0] : nullptr;
+}
+
#if QT_CONFIG(webengine_webchannel)
QWebChannel *WebContentsAdapter::webChannel() const
{
@@ -1545,9 +1557,8 @@ void WebContentsAdapter::startDragging(QObject *dragSource, const content::DropD
// dropping data into them. We don't even try to support dropping into PDF input fields,
// since it's not working in Chrome right now.
content::WebContents *targetWebContents = m_webContents.get();
- std::vector<content::WebContents *> innerWebContents = m_webContents->GetInnerWebContents();
- if (!innerWebContents.empty())
- targetWebContents = innerWebContents[0];
+ if (content::WebContents *guest = guestWebContents())
+ targetWebContents = guest;
content::RenderViewHost *rvh = targetWebContents->GetRenderViewHost();
if (rvh) {