Changeset 162118 in webkit


Ignore:
Timestamp:
Jan 15, 2014 11:37:46 PM (10 years ago)
Author:
Carlos Garcia Campos
Message:

[GTK][EFL][NIX] Do not use PrintContext, Frame and DocumentLoader in Errors
https://bugs.webkit.org/show_bug.cgi?id=127047

Reviewed by Martin Robinson.

Source/WebCore:

Using PrintContext, Frame and DocumentLoader in platform is a
layering violation.
Change printing error methods to receive a failing URL instead of
receiving a PrintContext that was used only to get the failing
URL.

  • platform/efl/ErrorsEfl.cpp:

(WebCore::printError):
(WebCore::printerNotFoundError):
(WebCore::invalidPageRangeToPrint):

  • platform/efl/ErrorsEfl.h:
  • platform/gtk/ErrorsGtk.cpp:

(WebCore::printError):
(WebCore::printerNotFoundError):
(WebCore::invalidPageRangeToPrint):

  • platform/gtk/ErrorsGtk.h:
  • platform/nix/ErrorsNix.cpp:

(WebCore::printError):
(WebCore::printerNotFoundError):
(WebCore::invalidPageRangeToPrint):

  • platform/nix/ErrorsNix.h:

Source/WebKit2:

  • WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp:

(WebKit::WebPrintOperationGtk::frameURL): Helper function to get
the URL of the frame being printed.
(WebKit::WebPrintOperationGtk::print): Use frameURL() as failing
URL for printing errors.

  • WebProcess/WebPage/gtk/WebPrintOperationGtk.h:
Location:
trunk/Source
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r162117 r162118  
     12014-01-15  Carlos Garcia Campos  <cgarcia@igalia.com>
     2
     3        [GTK][EFL][NIX] Do not use PrintContext, Frame and DocumentLoader in Errors
     4        https://bugs.webkit.org/show_bug.cgi?id=127047
     5
     6        Reviewed by Martin Robinson.
     7
     8        Using PrintContext, Frame and DocumentLoader in platform is a
     9        layering violation.
     10        Change printing error methods to receive a failing URL instead of
     11        receiving a PrintContext that was used only to get the failing
     12        URL.
     13
     14        * platform/efl/ErrorsEfl.cpp:
     15        (WebCore::printError):
     16        (WebCore::printerNotFoundError):
     17        (WebCore::invalidPageRangeToPrint):
     18        * platform/efl/ErrorsEfl.h:
     19        * platform/gtk/ErrorsGtk.cpp:
     20        (WebCore::printError):
     21        (WebCore::printerNotFoundError):
     22        (WebCore::invalidPageRangeToPrint):
     23        * platform/gtk/ErrorsGtk.h:
     24        * platform/nix/ErrorsNix.cpp:
     25        (WebCore::printError):
     26        (WebCore::printerNotFoundError):
     27        (WebCore::invalidPageRangeToPrint):
     28        * platform/nix/ErrorsNix.h:
     29
    1302014-01-15  Mihnea Ovidenie  <mihnea@adobe.com>
    231
  • trunk/Source/WebCore/platform/efl/ErrorsEfl.cpp

    r156550 r162118  
    2727#include "ErrorsEfl.h"
    2828
    29 #include "DocumentLoader.h"
    30 #include "Frame.h"
    31 #include "FrameLoader.h"
    32 #include "PrintContext.h"
    3329#include "ResourceError.h"
    3430#include "ResourceRequest.h"
     
    8783}
    8884
    89 ResourceError printError(const PrintContext* printContext, const String& errorMessage)
     85ResourceError printError(const URL& failingURL, const String& errorMessage)
    9086{
    91     DocumentLoader* documentLoader = printContext->frame()->loader().documentLoader();
    92 
    93     return ResourceError(errorDomainPrint, PrintErrorGeneral, documentLoader ? documentLoader->url() : URL(), errorMessage);
     87    return ResourceError(errorDomainPrint, PrintErrorGeneral, failingURL, errorMessage);
    9488}
    9589
    96 ResourceError printerNotFoundError(const PrintContext* printContext)
     90ResourceError printerNotFoundError(const URL& failingURL)
    9791{
    98     DocumentLoader* documentLoader = printContext->frame()->loader().documentLoader();
    99 
    100     return ResourceError(errorDomainPrint, PrintErrorPrinterNotFound, documentLoader ? documentLoader->url() : URL(), ASCIILiteral("Printer not found"));
     92    return ResourceError(errorDomainPrint, PrintErrorPrinterNotFound, failingURL, ASCIILiteral("Printer not found"));
    10193}
    10294
    103 ResourceError invalidPageRangeToPrint(const PrintContext* printContext)
     95ResourceError invalidPageRangeToPrint(const URL& failingURL)
    10496{
    105     DocumentLoader* documentLoader = printContext->frame()->loader().documentLoader();
    106 
    107     return ResourceError(errorDomainPrint, PrintErrorInvalidPageRange, documentLoader ? documentLoader->url() : URL(), ASCIILiteral("Invalid page range"));
     97    return ResourceError(errorDomainPrint, PrintErrorInvalidPageRange, failingURL, ASCIILiteral("Invalid page range"));
    10898}
    10999
  • trunk/Source/WebCore/platform/efl/ErrorsEfl.h

    r127757 r162118  
    3131namespace WebCore {
    3232
    33 class PrintContext;
    3433class ResourceError;
    3534class ResourceRequest;
    3635class ResourceResponse;
     36class URL;
    3737
    3838static const char errorDomainNetwork[] = "WebKitNetworkError";
     
    9191ResourceError downloadCancelledByUserError(const ResourceResponse&);
    9292ResourceError downloadDestinationError(const ResourceResponse&, const String& errorMessage);
    93 ResourceError printError(const PrintContext*, const String& errorMessage);
    94 ResourceError printerNotFoundError(const PrintContext*);
    95 ResourceError invalidPageRangeToPrint(const PrintContext*);
     93ResourceError printError(const URL& failingURL, const String& errorMessage);
     94ResourceError printerNotFoundError(const URL& failingURL);
     95ResourceError invalidPageRangeToPrint(const URL& failingURL);
    9696
    9797}
  • trunk/Source/WebCore/platform/gtk/ErrorsGtk.cpp

    r156550 r162118  
    2121#include "ErrorsGtk.h"
    2222
    23 #include "DocumentLoader.h"
    24 #include "Frame.h"
    25 #include "FrameLoader.h"
    26 #include "PrintContext.h"
    2723#include "ResourceError.h"
    2824#include "ResourceRequest.h"
     
    9288}
    9389
    94 ResourceError printError(const PrintContext* printContext, const String& errorMessage)
     90ResourceError printError(const URL& failingURL, const String& errorMessage)
    9591{
    96     DocumentLoader* documentLoader = printContext->frame()->loader().documentLoader();
    97     return ResourceError(errorDomainPrint, PrintErrorGeneral,
    98                          documentLoader ? documentLoader->url() : URL(), errorMessage);
     92    return ResourceError(errorDomainPrint, PrintErrorGeneral, failingURL, errorMessage);
    9993}
    10094
    101 ResourceError printerNotFoundError(const PrintContext* printContext)
     95ResourceError printerNotFoundError(const URL& failingURL)
    10296{
    103     DocumentLoader* documentLoader = printContext->frame()->loader().documentLoader();
    104     return ResourceError(errorDomainPrint, PrintErrorPrinterNotFound,
    105                          documentLoader ? documentLoader->url() : URL(), _("Printer not found"));
     97    return ResourceError(errorDomainPrint, PrintErrorPrinterNotFound, failingURL, _("Printer not found"));
    10698}
    10799
    108 ResourceError invalidPageRangeToPrint(const PrintContext* printContext)
     100ResourceError invalidPageRangeToPrint(const URL& failingURL)
    109101{
    110     DocumentLoader* documentLoader = printContext->frame()->loader().documentLoader();
    111     return ResourceError(errorDomainPrint, PrintErrorInvalidPageRange,
    112                          documentLoader ? documentLoader->url() : URL(), _("Invalid page range"));
     102    return ResourceError(errorDomainPrint, PrintErrorInvalidPageRange, failingURL, _("Invalid page range"));
    113103}
    114104
  • trunk/Source/WebCore/platform/gtk/ErrorsGtk.h

    r127757 r162118  
    2525namespace WebCore {
    2626
    27 class PrintContext;
    2827class ResourceError;
    2928class ResourceRequest;
    3029class ResourceResponse;
     30class URL;
    3131
    3232const char* const errorDomainNetwork = "WebKitNetworkError";
     
    8484ResourceError downloadCancelledByUserError(const ResourceResponse&);
    8585ResourceError downloadDestinationError(const ResourceResponse&, const String& errorMessage);
    86 ResourceError printError(const PrintContext*, const String& errorMessage);
    87 ResourceError printerNotFoundError(const PrintContext*);
    88 ResourceError invalidPageRangeToPrint(const PrintContext*);
     86ResourceError printError(const URL& failingURL, const String& errorMessage);
     87ResourceError printerNotFoundError(const URL& failingURL);
     88ResourceError invalidPageRangeToPrint(const URL& failingURL);
    8989
    9090}
  • trunk/Source/WebCore/platform/nix/ErrorsNix.cpp

    r160001 r162118  
    2828#include "ErrorsNix.h"
    2929
    30 #include "DocumentLoader.h"
    31 #include "Frame.h"
    32 #include "PrintContext.h"
    3330#include "ResourceError.h"
    3431#include "ResourceRequest.h"
     
    8784}
    8885
    89 ResourceError printError(const PrintContext* printContext, const String& errorMessage)
     86ResourceError printError(const URL& failingURL, const String& errorMessage)
    9087{
    91     DocumentLoader* documentLoader = printContext->frame()->loader().documentLoader();
    92 
    93     return ResourceError(errorDomainPrint, PrintErrorGeneral, documentLoader ? documentLoader->url() : URL(), errorMessage);
     88    return ResourceError(errorDomainPrint, PrintErrorGeneral, failingURL, errorMessage);
    9489}
    9590
    96 ResourceError printerNotFoundError(const PrintContext* printContext)
     91ResourceError printerNotFoundError(const URL& failingURL)
    9792{
    98     DocumentLoader* documentLoader = printContext->frame()->loader().documentLoader();
    99 
    100     return ResourceError(errorDomainPrint, PrintErrorPrinterNotFound, documentLoader ? documentLoader->url() : URL(), ASCIILiteral("Printer not found"));
     93    return ResourceError(errorDomainPrint, PrintErrorPrinterNotFound, failingURL, ASCIILiteral("Printer not found"));
    10194}
    10295
    103 ResourceError invalidPageRangeToPrint(const PrintContext* printContext)
     96ResourceError invalidPageRangeToPrint(const URL& failingURL)
    10497{
    105     DocumentLoader* documentLoader = printContext->frame()->loader().documentLoader();
    106 
    107     return ResourceError(errorDomainPrint, PrintErrorInvalidPageRange, documentLoader ? documentLoader->url() : URL(), ASCIILiteral("Invalid page range"));
     98    return ResourceError(errorDomainPrint, PrintErrorInvalidPageRange, failingURL, ASCIILiteral("Invalid page range"));
    10899}
    109100
  • trunk/Source/WebCore/platform/nix/ErrorsNix.h

    r160001 r162118  
    3232namespace WebCore {
    3333
    34 class PrintContext;
    3534class ResourceError;
    3635class ResourceRequest;
    3736class ResourceResponse;
     37class URL;
    3838
    3939static const char errorDomainNetwork[] = "WebKitNetworkError";
     
    9292ResourceError downloadCancelledByUserError(const ResourceResponse&);
    9393ResourceError downloadDestinationError(const ResourceResponse&, const String& errorMessage);
    94 ResourceError printError(const PrintContext*, const String& errorMessage);
    95 ResourceError printerNotFoundError(const PrintContext*);
    96 ResourceError invalidPageRangeToPrint(const PrintContext*);
     94ResourceError printError(const URL& failingURL, const String& errorMessage);
     95ResourceError printerNotFoundError(const URL& failingURL);
     96ResourceError invalidPageRangeToPrint(const URL& failingURL);
    9797
    9898} // namespace WebCore
  • trunk/Source/WebKit2/ChangeLog

    r162114 r162118  
     12014-01-15  Carlos Garcia Campos  <cgarcia@igalia.com>
     2
     3        [GTK][EFL][NIX] Do not use PrintContext, Frame and DocumentLoader in Errors
     4        https://bugs.webkit.org/show_bug.cgi?id=127047
     5
     6        Reviewed by Martin Robinson.
     7
     8        * WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp:
     9        (WebKit::WebPrintOperationGtk::frameURL): Helper function to get
     10        the URL of the frame being printed.
     11        (WebKit::WebPrintOperationGtk::print): Use frameURL() as failing
     12        URL for printing errors.
     13        * WebProcess/WebPage/gtk/WebPrintOperationGtk.h:
     14
    1152014-01-15  Benjamin Poulain  <bpoulain@apple.com>
    216
  • trunk/Source/WebKit2/WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp

    r162073 r162118  
    3030#include "WebPage.h"
    3131#include "WebPageProxyMessages.h"
     32#include <WebCore/DocumentLoader.h>
    3233#include <WebCore/ErrorsGtk.h>
     34#include <WebCore/Frame.h>
    3335#include <WebCore/IntRect.h>
    3436#include <WebCore/NotImplemented.h>
     
    3638#include <WebCore/PrintContext.h>
    3739#include <WebCore/ResourceError.h>
     40#include <WebCore/URL.h>
    3841#include <gtk/gtk.h>
    3942#include <wtf/Vector.h>
     
    6770        GtkPrinter* printer = printerName ? printerList->findPrinter(printerName) : printerList->defaultPrinter();
    6871        if (!printer) {
    69             printDone(printerNotFoundError(m_printContext));
     72            printDone(printerNotFoundError(frameURL()));
    7073            return;
    7174        }
     
    7982        cairo_surface_t* surface = gtk_print_job_get_surface(m_printJob.get(), &error.outPtr());
    8083        if (!surface) {
    81             printDone(printError(m_printContext, error->message));
     84            printDone(printError(frameURL(), error->message));
    8285            return;
    8386        }
     
    138141    static void printJobComplete(GtkPrintJob* printJob, WebPrintOperationGtkUnix* printOperation, const GError* error)
    139142    {
    140         printOperation->printDone(error ? printError(printOperation->m_printContext, error->message) : WebCore::ResourceError());
     143        printOperation->printDone(error ? printError(printOperation->frameURL(), error->message) : WebCore::ResourceError());
    141144        printOperation->m_printJob = 0;
    142145    }
     
    428431}
    429432
     433WebCore::URL WebPrintOperationGtk::frameURL() const
     434{
     435    if (!m_printContext)
     436        return WebCore::URL();
     437
     438    WebCore::DocumentLoader* documentLoader = m_printContext->frame()->loader().documentLoader();
     439    return documentLoader ? documentLoader->url() : WebCore::URL();
     440}
     441
    430442void WebPrintOperationGtk::rotatePageIfNeeded()
    431443{
     
    694706    if (!data->isValid) {
    695707        cairo_surface_finish(surface);
    696         printDone(invalidPageRangeToPrint(m_printContext));
     708        printDone(invalidPageRangeToPrint(frameURL()));
    697709        return;
    698710    }
  • trunk/Source/WebKit2/WebProcess/WebPage/gtk/WebPrintOperationGtk.h

    r159042 r162118  
    4040class PrintContext;
    4141class ResourceError;
     42class URL;
    4243};
    4344
     
    9394    void printPagesDone();
    9495    void printDone(const WebCore::ResourceError&);
     96    WebCore::URL frameURL() const;
    9597
    9698    WebPage* m_webPage;
Note: See TracChangeset for help on using the changeset viewer.