WebKitTools/QtTestBrowser/webpage.h
changeset 2 303757a437d3
parent 0 4f2f89ce4247
equal deleted inserted replaced
0:4f2f89ce4247 2:303757a437d3
     1 /*
       
     2  * Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies)
       
     3  * Copyright (C) 2009 Girish Ramakrishnan <girish@forwardbias.in>
       
     4  * Copyright (C) 2006 George Staikos <staikos@kde.org>
       
     5  * Copyright (C) 2006 Dirk Mueller <mueller@kde.org>
       
     6  * Copyright (C) 2006 Zack Rusin <zack@kde.org>
       
     7  * Copyright (C) 2006 Simon Hausmann <hausmann@kde.org>
       
     8  *
       
     9  * All rights reserved.
       
    10  *
       
    11  * Redistribution and use in source and binary forms, with or without
       
    12  * modification, are permitted provided that the following conditions
       
    13  * are met:
       
    14  * 1. Redistributions of source code must retain the above copyright
       
    15  *    notice, this list of conditions and the following disclaimer.
       
    16  * 2. Redistributions in binary form must reproduce the above copyright
       
    17  *    notice, this list of conditions and the following disclaimer in the
       
    18  *    documentation and/or other materials provided with the distribution.
       
    19  *
       
    20  * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
       
    21  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
       
    22  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
       
    23  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
       
    24  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
       
    25  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
       
    26  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
       
    27  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
       
    28  * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
       
    29  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
       
    30  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
       
    31  */
       
    32 
       
    33 #ifndef webpage_h
       
    34 #define webpage_h
       
    35 
       
    36 #include <qwebframe.h>
       
    37 #include <qwebpage.h>
       
    38 
       
    39 class WebPage : public QWebPage {
       
    40     Q_OBJECT
       
    41 
       
    42 public:
       
    43     WebPage(QObject* parent = 0);
       
    44 
       
    45     virtual QWebPage* createWindow(QWebPage::WebWindowType);
       
    46     virtual QObject* createPlugin(const QString&, const QUrl&, const QStringList&, const QStringList&);
       
    47     virtual bool supportsExtension(QWebPage::Extension extension) const;
       
    48     virtual bool extension(Extension extension, const ExtensionOption* option, ExtensionReturn* output);
       
    49 
       
    50     virtual bool acceptNavigationRequest(QWebFrame* frame, const QNetworkRequest& request, NavigationType type);
       
    51 
       
    52     QString userAgentForUrl(const QUrl& url) const;
       
    53     void setInterruptingJavaScriptEnabled(bool enabled) { m_interruptingJavaScriptEnabled = enabled; }
       
    54 
       
    55 public slots:
       
    56     void openUrlInDefaultBrowser(const QUrl& url = QUrl());
       
    57     void setUserAgent(const QString& ua) { m_userAgent = ua; }
       
    58     bool shouldInterruptJavaScript();
       
    59     void authenticationRequired(QNetworkReply*, QAuthenticator*);
       
    60     void requestPermission(QWebFrame* frame, QWebPage::PermissionDomain domain);
       
    61     void checkPermission(QWebFrame* frame, QWebPage::PermissionDomain domain, QWebPage::PermissionPolicy& policy);
       
    62     void cancelRequestsForPermission(QWebFrame* frame, QWebPage::PermissionDomain domain);
       
    63 
       
    64 private:
       
    65     void applyProxy();
       
    66     QString m_userAgent;
       
    67     bool m_interruptingJavaScriptEnabled;
       
    68 };
       
    69 
       
    70 #endif