Changeset 56209 in webkit


Ignore:
Timestamp:
Mar 18, 2010 10:11:09 PM (14 years ago)
Author:
eric@webkit.org
Message:

2010-03-18 Kenneth Rohde Christiansen <kenneth@webkit.org>

Reviewed by Darin Adler.

Add a new test for testing whether the media type is restores
properly after printing a page (changing media type to 'print').

Add expected result and skip the test for platform that do not
implement setMediaType().

  • fast/media/print-restores-previous-mediatype-expected.txt: Added.
  • fast/media/print-restores-previous-mediatype.html: Added.
  • platform/gtk/Skipped:
  • platform/mac/Skipped:
  • platform/win/Skipped:

2010-03-18 Kenneth Rohde Christiansen <kenneth@webkit.org>

Reviewed by Darin Adler.

Make setPrinting() with printing=false, restore the previous
media type in use.

Test: fast/media/print-restores-previous-mediatype.html

  • page/Frame.cpp: (WebCore::Frame::setPrinting):
  • page/FrameView.cpp: (WebCore::FrameView::adjustMediaTypeForPrinting):
  • page/FrameView.h:

2010-03-18 Kenneth Rohde Christiansen <kenneth@webkit.org>

Reviewed by Darin Adler.

Make it possible for the Qt DRT to set the media type from
the LayoutTestController.

  • Api/qwebframe.cpp: (qt_drt_setMediaType):

2010-03-18 Kenneth Rohde Christiansen <kenneth@webkit.org>

Reviewed by Darin Adler.

Add a new method to the Qt LayoutTestController for
changing media type and make the DRT support dry-run printing.

  • DumpRenderTree/qt/DumpRenderTreeQt.cpp: (WebCore::DumpRenderTree::DumpRenderTree): (WebCore::DumpRenderTree::dryRunPrint):
  • DumpRenderTree/qt/DumpRenderTreeQt.h:
  • DumpRenderTree/qt/LayoutTestControllerQt.cpp: (LayoutTestController::setMediaType):
  • DumpRenderTree/qt/LayoutTestControllerQt.h:
Location:
trunk
Files:
2 added
15 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r56207 r56209  
     12010-03-18  Kenneth Rohde Christiansen  <kenneth@webkit.org>
     2
     3        Reviewed by Darin Adler.
     4
     5        Add a new test for testing whether the media type is restores
     6        properly after printing a page (changing media type to 'print').
     7
     8        Add expected result and skip the test for platform that do not
     9        implement setMediaType().
     10
     11        * fast/media/print-restores-previous-mediatype-expected.txt: Added.
     12        * fast/media/print-restores-previous-mediatype.html: Added.
     13        * platform/gtk/Skipped:
     14        * platform/mac/Skipped:
     15        * platform/win/Skipped:
     16
    1172010-03-18  Mark Rowe  <mrowe@apple.com>
    218
  • trunk/LayoutTests/platform/gtk/Skipped

    r56172 r56209  
    58425842# https://bugs.webkit.org/show_bug.cgi?id=36228
    58435843plugins/return-error-from-new-stream-doesnt-invoke-destroy-stream.html
     5844
     5845# Misses setMediaType() implementation
     5846fast/media/print-restores-previous-mediatype.html
  • trunk/LayoutTests/platform/mac/Skipped

    r56127 r56209  
    140140# eventSender needs to propagate the event to the calling window, not the main frame always.
    141141http/tests/plugins/plugin-document-has-focus.html
     142
     143# Misses setMediaType() and implementation
     144fast/media/print-restores-previous-mediatype.html
  • trunk/LayoutTests/platform/win/Skipped

    r56097 r56209  
    806806# Windows port doesn't yet support rendering of non-BMP characters even though there's a font available.
    807807fast/text/international/plane2.html
     808
     809# Misses setMediaType() implementation
     810fast/media/print-restores-previous-mediatype.html
  • trunk/WebCore/ChangeLog

    r56206 r56209  
     12010-03-18  Kenneth Rohde Christiansen  <kenneth@webkit.org>
     2
     3        Reviewed by Darin Adler.
     4
     5        Make setPrinting() with printing=false, restore the previous
     6        media type in use.
     7
     8        Test: fast/media/print-restores-previous-mediatype.html
     9
     10        * page/Frame.cpp:
     11        (WebCore::Frame::setPrinting):
     12        * page/FrameView.cpp:
     13        (WebCore::FrameView::adjustMediaTypeForPrinting):
     14        * page/FrameView.h:
     15
    1162010-03-18  David Kilzer  <ddkilzer@apple.com>
    217
  • trunk/WebCore/page/Frame.cpp

    r56175 r56209  
    712712{
    713713    m_doc->setPrinting(printing);
    714     view()->setMediaType(printing ? "print" : "screen");
     714    view()->adjustMediaTypeForPrinting(printing);
     715
    715716    m_doc->updateStyleSelector();
    716717    view()->forceLayoutWithPageWidthRange(minPageWidth, maxPageWidth, adjustViewSize);
  • trunk/WebCore/page/FrameView.cpp

    r55976 r56209  
    802802}
    803803
     804void FrameView::adjustMediaTypeForPrinting(bool printing)
     805{
     806    if (printing) {
     807        if (m_mediaTypeWhenNotPrinting.isNull())
     808            m_mediaTypeWhenNotPrinting = mediaType();
     809            setMediaType("print");
     810    } else {
     811        if (!m_mediaTypeWhenNotPrinting.isNull())
     812            setMediaType(m_mediaTypeWhenNotPrinting);
     813        m_mediaTypeWhenNotPrinting = String();
     814    }
     815}
     816
    804817bool FrameView::useSlowRepaints() const
    805818{
  • trunk/WebCore/page/FrameView.h

    r55890 r56209  
    142142    String mediaType() const;
    143143    void setMediaType(const String&);
     144    void adjustMediaTypeForPrinting(bool printing);
    144145
    145146    void setUseSlowRepaints();
     
    301302
    302303    String m_mediaType;
    303    
     304    String m_mediaTypeWhenNotPrinting;
     305
    304306    unsigned m_enqueueEvents;
    305307    Vector<ScheduledEvent*> m_scheduledEvents;
  • trunk/WebKit/qt/Api/qwebframe.cpp

    r56208 r56209  
    8989QT_END_NAMESPACE
    9090
     91void QWEBKIT_EXPORT qt_drt_setMediaType(QWebFrame* qframe, const QString& type)
     92{
     93    WebCore::Frame* frame = QWebFramePrivate::core(qframe);
     94    WebCore::FrameView* view = frame->view();
     95    view->setMediaType(type);
     96    frame->document()->updateStyleSelector();
     97    view->forceLayout();
     98}
     99
    91100bool QWEBKIT_EXPORT qt_drt_hasDocumentElement(QWebFrame* qframe)
    92101{
  • trunk/WebKit/qt/ChangeLog

    r56208 r56209  
     12010-03-18  Kenneth Rohde Christiansen  <kenneth@webkit.org>
     2
     3        Reviewed by Darin Adler.
     4
     5        Make it possible for the Qt DRT to set the media type from
     6        the LayoutTestController.
     7
     8        * Api/qwebframe.cpp:
     9        (qt_drt_setMediaType):
     10
    1112010-03-18  Joe Ligman  <joseph.ligman@nokia.com>
    212
  • trunk/WebKitTools/ChangeLog

    r56199 r56209  
     12010-03-18  Kenneth Rohde Christiansen  <kenneth@webkit.org>
     2
     3        Reviewed by Darin Adler.
     4
     5        Add a new method to the Qt LayoutTestController for
     6        changing media type and make the DRT support dry-run printing.
     7
     8        * DumpRenderTree/qt/DumpRenderTreeQt.cpp:
     9        (WebCore::DumpRenderTree::DumpRenderTree):
     10        (WebCore::DumpRenderTree::dryRunPrint):
     11        * DumpRenderTree/qt/DumpRenderTreeQt.h:
     12        * DumpRenderTree/qt/LayoutTestControllerQt.cpp:
     13        (LayoutTestController::setMediaType):
     14        * DumpRenderTree/qt/LayoutTestControllerQt.h:
     15
    1162010-03-18  Dirk Pranke  <dpranke@chromium.org>
    217
  • trunk/WebKitTools/DumpRenderTree/qt/DumpRenderTreeQt.cpp

    r56140 r56209  
    4040#include "WorkQueue.h"
    4141
     42#include <QApplication>
    4243#include <QBuffer>
    4344#include <QCryptographicHash>
    4445#include <QDir>
    4546#include <QFile>
    46 #include <QApplication>
    47 #include <QUrl>
    4847#include <QFileInfo>
    4948#include <QFocusEvent>
     
    5352#include <QNetworkReply>
    5453#include <QNetworkRequest>
     54#include <QPrinter>
    5555#include <QUndoStack>
     56#include <QUrl>
    5657
    5758#include <qwebsettings.h>
     
    353354            m_controller, SLOT(resetLoadFinished()));
    354355    connect(m_page, SIGNAL(windowCloseRequested()), this, SLOT(windowCloseRequested()));
     356    connect(m_page, SIGNAL(printRequested(QWebFrame*)), this, SLOT(dryRunPrint(QWebFrame*)));
    355357
    356358    connect(m_page->mainFrame(), SIGNAL(titleChanged(const QString&)),
     
    384386    history->setMaximumItemCount(0);
    385387    history->setMaximumItemCount(itemCount);
     388}
     389
     390void DumpRenderTree::dryRunPrint(QWebFrame* frame)
     391{
     392    QPrinter printer;
     393    printer.setPaperSize(QPrinter::A4);
     394    frame->print(&printer);
    386395}
    387396
  • trunk/WebKitTools/DumpRenderTree/qt/DumpRenderTreeQt.h

    r54772 r56209  
    119119    void showPage();
    120120    void hidePage();
     121    void dryRunPrint(QWebFrame*);
    121122
    122123private:
  • trunk/WebKitTools/DumpRenderTree/qt/LayoutTestControllerQt.cpp

    r55803 r56209  
    4040extern void qt_dump_frame_loader(bool b);
    4141extern void qt_dump_resource_load_callbacks(bool b);
     42extern void qt_drt_setMediaType(QWebFrame* qframe, const QString& type);
    4243extern void qt_drt_setFrameSetFlatteningEnabled(QWebPage*, bool);
    4344extern void qt_drt_setJavaScriptProfilingEnabled(QWebFrame*, bool enabled);
     
    292293}
    293294
     295void LayoutTestController::setMediaType(const QString& type)
     296{
     297    qt_drt_setMediaType(m_drt->webPage()->mainFrame(), type);
     298}
    294299
    295300void LayoutTestController::closeWebInspector()
  • trunk/WebKitTools/DumpRenderTree/qt/LayoutTestControllerQt.h

    r55803 r56209  
    122122    void evaluateInWebInspector(long callId, const QString& script);
    123123
     124    void setMediaType(const QString& type);
    124125    void setFrameSetFlatteningEnabled(bool enable);
    125126    void setAllowUniversalAccessFromFileURLs(bool enable);
Note: See TracChangeset for help on using the changeset viewer.