summaryrefslogtreecommitdiff
path: root/Source/WebKit2/WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebKit2/WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp')
-rw-r--r--Source/WebKit2/WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp30
1 files changed, 17 insertions, 13 deletions
diff --git a/Source/WebKit2/WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp b/Source/WebKit2/WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp
index e79cc75c2..fdd419394 100644
--- a/Source/WebKit2/WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp
+++ b/Source/WebKit2/WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp
@@ -40,10 +40,11 @@
#include <WebCore/ResourceError.h>
#include <WebCore/URL.h>
#include <gtk/gtk.h>
+#include <memory>
#include <wtf/Vector.h>
-#include <wtf/gobject/GUniquePtr.h>
+#include <wtf/glib/GUniquePtr.h>
-#ifdef HAVE_GTK_UNIX_PRINTING
+#if HAVE(GTK_UNIX_PRINTING)
#include "PrinterListGtk.h"
#include <cairo-pdf.h>
#include <cairo-ps.h>
@@ -52,7 +53,7 @@
namespace WebKit {
-#ifdef HAVE_GTK_UNIX_PRINTING
+#if HAVE(GTK_UNIX_PRINTING)
class WebPrintOperationGtkUnix final: public WebPrintOperationGtk {
public:
WebPrintOperationGtkUnix(WebPage* page, const PrintInfo& printInfo)
@@ -66,7 +67,8 @@ public:
m_printContext = printContext;
m_callbackID = callbackID;
- RefPtr<PrinterListGtk> printerList = PrinterListGtk::shared();
+ RefPtr<PrinterListGtk> printerList = PrinterListGtk::getOrCreate();
+ ASSERT(printerList);
const char* printerName = gtk_print_settings_get_printer(m_printSettings.get());
GtkPrinter* printer = printerName ? printerList->findPrinter(printerName) : printerList->defaultPrinter();
if (!printer) {
@@ -104,7 +106,7 @@ public:
print(surface, 72, 72);
}
- void startPage(cairo_t* cr) override
+ void startPage(cairo_t*) override
{
if (!currentPageIsFirstPageOfSheet())
return;
@@ -139,7 +141,7 @@ public:
cairo_show_page(cr);
}
- static void printJobComplete(GtkPrintJob* printJob, WebPrintOperationGtkUnix* printOperation, const GError* error)
+ static void printJobComplete(GtkPrintJob*, WebPrintOperationGtkUnix* printOperation, const GError* error)
{
printOperation->printDone(error ? printError(printOperation->frameURL(), error->message) : WebCore::ResourceError());
printOperation->m_printJob = 0;
@@ -148,13 +150,13 @@ public:
static void printJobFinished(WebPrintOperationGtkUnix* printOperation)
{
printOperation->deref();
- WebProcess::shared().enableTermination();
+ WebProcess::singleton().enableTermination();
}
void endPrint() override
{
// Disable web process termination until the print job finishes.
- WebProcess::shared().disableTermination();
+ WebProcess::singleton().disableTermination();
cairo_surface_finish(gtk_print_job_get_surface(m_printJob.get(), 0));
// Make sure the operation is alive until the job is sent.
@@ -208,6 +210,7 @@ struct PrintPagesData {
, firstSheetNumber(0)
, numberOfSheets(0)
, firstPagePosition(0)
+ , lastPagePosition(0)
, collated(0)
, uncollated(0)
, isDone(false)
@@ -360,7 +363,6 @@ struct PrintPagesData {
GRefPtr<GMainLoop> mainLoop;
int totalPrinted;
- size_t totalToPrint;
int pageNumber;
Vector<size_t> pages;
size_t sheetNumber;
@@ -379,11 +381,13 @@ struct PrintPagesData {
PassRefPtr<WebPrintOperationGtk> WebPrintOperationGtk::create(WebPage* page, const PrintInfo& printInfo)
{
-#ifdef HAVE_GTK_UNIX_PRINTING
+#if HAVE(GTK_UNIX_PRINTING)
return adoptRef(new WebPrintOperationGtkUnix(page, printInfo));
#elif defined(G_OS_WIN32)
return adoptRef(new WebPrintOperationGtkWin32(page, printInfo));
#else
+ UNUSED_PARAM(page);
+ UNUSED_PARAM(printInfo);
return 0;
#endif
}
@@ -695,7 +699,7 @@ void WebPrintOperationGtk::printPagesDone()
{
m_printPagesIdleId = 0;
endPrint();
- m_cairoContext = 0;
+ m_cairoContext = nullptr;
}
void WebPrintOperationGtk::printDone(const WebCore::ResourceError& error)
@@ -713,7 +717,7 @@ void WebPrintOperationGtk::print(cairo_surface_t* surface, double xDPI, double y
{
ASSERT(m_printContext);
- OwnPtr<PrintPagesData> data = adoptPtr(new PrintPagesData(this));
+ auto data = std::make_unique<PrintPagesData>(this);
if (!data->isValid) {
cairo_surface_finish(surface);
printDone(invalidPageRangeToPrint(frameURL()));
@@ -729,7 +733,7 @@ void WebPrintOperationGtk::print(cairo_surface_t* surface, double xDPI, double y
// operation has finished. See https://bugs.webkit.org/show_bug.cgi?id=122801.
unsigned idlePriority = m_printMode == PrintInfo::PrintModeSync ? G_PRIORITY_DEFAULT - 10 : G_PRIORITY_DEFAULT_IDLE + 10;
GMainLoop* mainLoop = data->mainLoop.get();
- m_printPagesIdleId = gdk_threads_add_idle_full(idlePriority, printPagesIdle, data.leakPtr(), printPagesIdleDone);
+ m_printPagesIdleId = gdk_threads_add_idle_full(idlePriority, printPagesIdle, data.release(), printPagesIdleDone);
if (m_printMode == PrintInfo::PrintModeSync) {
ASSERT(mainLoop);
g_main_loop_run(mainLoop);