[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc

abecsi at webkit.org abecsi at webkit.org
Wed Dec 22 15:59:28 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit 7358e59eff88a876aef9d4ed95fb14c62fd0dbff
Author: abecsi at webkit.org <abecsi at webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Wed Nov 17 18:40:11 2010 +0000

    2010-11-17  Andras Becsi  <abecsi at webkit.org>
    
            Reviewed by Andreas Kling.
    
            [Qt][WK2] Make it possible to set custom user agent strings in MiniBrowser.
            https://bugs.webkit.org/show_bug.cgi?id=49627
    
            Add a user agent dialog and a resource file for useragentlist.txt to MiniBrowser.
    
            * MiniBrowser/MiniBrowser.qrc: Added.
            Add it here to prevent qmake from detecting it
            since it needs to be copied to the build directory.
            * MiniBrowser/qt/BrowserWindow.cpp:
            (BrowserWindow::BrowserWindow):
            (BrowserWindow::updateUserAgentList):
            (BrowserWindow::showUserAgentDialog):
            * MiniBrowser/qt/BrowserWindow.h:
            * MiniBrowser/qt/MiniBrowser.pro:
    2010-11-17  Andras Becsi  <abecsi at webkit.org>
    
            Reviewed by Andreas Kling.
    
            [Qt][WK2] Make it possible to set custom user agent strings in MiniBrowser
            https://bugs.webkit.org/show_bug.cgi?id=49627
    
            Copy the MiniBrowser.qrc and QtTestBrowser's useragentlist.txt file
            to the build directory of MiniBrowser because it has to be in a
            subdirectory of the resource file.
            Add a method to QWKPage to retrieve the custom user agent string.
    
            * DerivedSources.pro:
            * UIProcess/API/qt/qwkpage.cpp:
            (QWKPage::customUserAgent):
            * UIProcess/API/qt/qwkpage.h:
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@72220 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebKit2/ChangeLog b/WebKit2/ChangeLog
index 0bb7ded..3de0545 100644
--- a/WebKit2/ChangeLog
+++ b/WebKit2/ChangeLog
@@ -1,3 +1,20 @@
+2010-11-17  Andras Becsi  <abecsi at webkit.org>
+
+        Reviewed by Andreas Kling.
+
+        [Qt][WK2] Make it possible to set custom user agent strings in MiniBrowser
+        https://bugs.webkit.org/show_bug.cgi?id=49627
+
+        Copy the MiniBrowser.qrc and QtTestBrowser's useragentlist.txt file
+        to the build directory of MiniBrowser because it has to be in a
+        subdirectory of the resource file.
+        Add a method to QWKPage to retrieve the custom user agent string.
+
+        * DerivedSources.pro:
+        * UIProcess/API/qt/qwkpage.cpp:
+        (QWKPage::customUserAgent):
+        * UIProcess/API/qt/qwkpage.h:
+
 2010-11-17  Simon Fraser  <simon.fraser at apple.com>
 
         Reviewed by Adam Roben.
diff --git a/WebKit2/DerivedSources.pro b/WebKit2/DerivedSources.pro
index 57ec528..f44fe37 100644
--- a/WebKit2/DerivedSources.pro
+++ b/WebKit2/DerivedSources.pro
@@ -39,7 +39,8 @@ DIRS = \
     $$OUTPUT_DIR/include/JavaScriptCore \
     $$OUTPUT_DIR/include/WebCore \
     $$OUTPUT_DIR/include/WebKit2 \
-    $$OUTPUT_DIR/WebKit2/generated
+    $$OUTPUT_DIR/WebKit2/generated \
+    $$OUTPUT_DIR/WebKitTools/MiniBrowser/qt
 
 for(DIR, DIRS) {
     !exists($$DIR): system($$QMAKE_MKDIR $$DIR)
@@ -109,6 +110,20 @@ SCRIPTS = \
     $$PWD/Scripts/webkit2/__init__.py \
     $$PWD/Scripts/webkit2/messages.py
 
+ualist_copier.commands = $(COPY_FILE) $${SRC_ROOT_DIR}/WebKitTools/QtTestBrowser/useragentlist.txt $$OUTPUT_DIR/WebKitTools/MiniBrowser/qt/useragentlist.txt
+ualist_copier.depends = $${SRC_ROOT_DIR}/WebKitTools/QtTestBrowser/useragentlist.txt $$OUTPUT_DIR/WebKitTools/MiniBrowser/qt/MiniBrowser.qrc
+ualist_copier.input = $${SRC_ROOT_DIR}/WebKitTools/QtTestBrowser/useragentlist.txt
+ualist_copier.output = $$OUTPUT_DIR/WebKitTools/MiniBrowser/qt/useragentlist.txt
+generated_files.depends += ualist_copier
+QMAKE_EXTRA_TARGETS += ualist_copier
+
+qrc_copier.commands = $(COPY_FILE) $${SRC_ROOT_DIR}/WebKitTools/MiniBrowser/MiniBrowser.qrc $$OUTPUT_DIR/WebKitTools/MiniBrowser/qt/MiniBrowser.qrc
+qrc_copier.depends = $$OUTPUT_DIR/WebKitTools/MiniBrowser/qt/useragentlist.txt $${SRC_ROOT_DIR}/WebKitTools/MiniBrowser/MiniBrowser.qrc
+qrc_copier.input = $${SRC_ROOT_DIR}/WebKitTools/MiniBrowser/MiniBrowser.qrc
+qrc_copier.output = $$OUTPUT_DIR/WebKitTools/MiniBrowser/qt/MiniBrowser.qrc
+generated_files.depends += qrc_copier
+QMAKE_EXTRA_TARGETS += qrc_copier
+
 message_header_generator.commands = $${PYTHON} $${SRC_ROOT_DIR}WebKit2/Scripts/generate-messages-header.py ${QMAKE_FILE_IN} > ${QMAKE_FILE_OUT}
 message_header_generator.input = MESSAGE_RECEIVERS
 message_header_generator.depends = $$SCRIPTS
diff --git a/WebKit2/UIProcess/API/qt/qwkpage.cpp b/WebKit2/UIProcess/API/qt/qwkpage.cpp
index 2eb507a..4a1f2ce 100644
--- a/WebKit2/UIProcess/API/qt/qwkpage.cpp
+++ b/WebKit2/UIProcess/API/qt/qwkpage.cpp
@@ -476,6 +476,11 @@ void QWKPage::setCustomUserAgent(const QString& userAgent)
     WKPageSetCustomUserAgent(pageRef(), wkUserAgent.get());
 }
 
+QString QWKPage::customUserAgent() const
+{
+    return WKStringCopyQString(WKPageCopyCustomUserAgent(pageRef()));
+}
+
 void QWKPage::load(const QUrl& url)
 {
     WKRetainPtr<WKURLRef> wkurl(WKURLCreateWithQUrl(url));
diff --git a/WebKit2/UIProcess/API/qt/qwkpage.h b/WebKit2/UIProcess/API/qt/qwkpage.h
index 8f63bbc..866f84f 100644
--- a/WebKit2/UIProcess/API/qt/qwkpage.h
+++ b/WebKit2/UIProcess/API/qt/qwkpage.h
@@ -93,6 +93,7 @@ public:
     void setCreateNewPageFunction(CreateNewPageFn function);
 
     void setCustomUserAgent(const QString&);
+    QString customUserAgent() const;
 
     qreal textZoomFactor() const;
     qreal pageZoomFactor() const;
diff --git a/WebKitTools/ChangeLog b/WebKitTools/ChangeLog
index f0aac78..4c61156 100644
--- a/WebKitTools/ChangeLog
+++ b/WebKitTools/ChangeLog
@@ -1,3 +1,22 @@
+2010-11-17  Andras Becsi  <abecsi at webkit.org>
+
+        Reviewed by Andreas Kling.
+
+        [Qt][WK2] Make it possible to set custom user agent strings in MiniBrowser.
+        https://bugs.webkit.org/show_bug.cgi?id=49627
+
+        Add a user agent dialog and a resource file for useragentlist.txt to MiniBrowser.
+
+        * MiniBrowser/MiniBrowser.qrc: Added.
+        Add it here to prevent qmake from detecting it
+        since it needs to be copied to the build directory.
+        * MiniBrowser/qt/BrowserWindow.cpp:
+        (BrowserWindow::BrowserWindow):
+        (BrowserWindow::updateUserAgentList):
+        (BrowserWindow::showUserAgentDialog):
+        * MiniBrowser/qt/BrowserWindow.h:
+        * MiniBrowser/qt/MiniBrowser.pro:
+
 2010-11-17  Adam Roben  <aroben at apple.com>
 
         Make changes to the Mac WebKit2 Skipped file trigger Windows builds
diff --git a/WebKitTools/MiniBrowser/qt/BrowserWindow.cpp b/WebKitTools/MiniBrowser/qt/BrowserWindow.cpp
index 1af18a3..4c56c3b 100644
--- a/WebKitTools/MiniBrowser/qt/BrowserWindow.cpp
+++ b/WebKitTools/MiniBrowser/qt/BrowserWindow.cpp
@@ -40,6 +40,9 @@ BrowserWindow::BrowserWindow(QGraphicsWKView::BackingStoreType type)
     m_addressBar = new QLineEdit();
 
     m_menu->addAction("New Window", this, SLOT(newWindow()));
+    m_menu->addAction("Change User Agent", this, SLOT(showUserAgentDialog()));
+
+    m_menu->addSeparator();
     m_menu->addAction("Quit", this, SLOT(close()));
 
     m_browser->setFocus(Qt::OtherFocusReason);
@@ -122,6 +125,53 @@ void BrowserWindow::urlChanged(const QUrl& url)
     m_addressBar->setText(url.toString());
 }
 
+void BrowserWindow::updateUserAgentList()
+{
+    QWKPage* page = m_browser->view()->page();
+
+    QFile file(":/useragentlist.txt");
+
+    if (file.open(QIODevice::ReadOnly)) {
+        while (!file.atEnd())
+            m_userAgentList << file.readLine().trimmed();
+        file.close();
+    }
+
+    Q_ASSERT(!m_userAgentList.isEmpty());
+
+    if (!(page->customUserAgent().isEmpty() || m_userAgentList.contains(page->customUserAgent())))
+        m_userAgentList << page->customUserAgent();
+}
+
+void BrowserWindow::showUserAgentDialog()
+{
+    updateUserAgentList();
+
+    QDialog dialog(this);
+    dialog.setWindowTitle("Change User Agent");
+    dialog.resize(size().width() * 0.7, dialog.size().height());
+    QVBoxLayout* layout = new QVBoxLayout(&dialog);
+    dialog.setLayout(layout);
+
+    QComboBox* combo = new QComboBox(&dialog);
+    combo->setSizeAdjustPolicy(QComboBox::AdjustToMinimumContentsLength);
+    combo->setEditable(true);
+    combo->insertItems(0, m_userAgentList);
+    layout->addWidget(combo);
+
+    int index = combo->findText(m_browser->view()->page()->customUserAgent());
+    combo->setCurrentIndex(index);
+
+    QDialogButtonBox* buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel
+                                                      , Qt::Horizontal, &dialog);
+    connect(buttonBox, SIGNAL(accepted()), &dialog, SLOT(accept()));
+    connect(buttonBox, SIGNAL(rejected()), &dialog, SLOT(reject()));
+    layout->addWidget(buttonBox);
+
+    if (dialog.exec() && !combo->currentText().isEmpty())
+        m_browser->view()->page()->setCustomUserAgent(combo->currentText());
+}
+
 BrowserWindow::~BrowserWindow()
 {
     delete m_addressBar;
diff --git a/WebKitTools/MiniBrowser/qt/BrowserWindow.h b/WebKitTools/MiniBrowser/qt/BrowserWindow.h
index b171a50..fe94d6b 100644
--- a/WebKitTools/MiniBrowser/qt/BrowserWindow.h
+++ b/WebKitTools/MiniBrowser/qt/BrowserWindow.h
@@ -29,11 +29,10 @@
 #ifndef BrowserWindow_h
 #define BrowserWindow_h
 
-#define PLATFORM(x) 0
-
 #include "BrowserView.h"
-#include <qgraphicswkview.h>
+#include <QStringList>
 #include <QtGui>
+#include <qgraphicswkview.h>
 
 class BrowserWindow : public QMainWindow {
     Q_OBJECT
@@ -52,11 +51,15 @@ protected slots:
     void loadProgress(int progress);
     void titleChanged(const QString&);
     void urlChanged(const QUrl&);
+    void showUserAgentDialog();
 
 private:
+    void updateUserAgentList();
+
     BrowserView* m_browser;
     QMenuBar* m_menu;
     QLineEdit* m_addressBar;
+    QStringList m_userAgentList;
     QGraphicsWKView::BackingStoreType m_backingStoreType;
 };
 
diff --git a/WebKitTools/MiniBrowser/qt/MiniBrowser.pro b/WebKitTools/MiniBrowser/qt/MiniBrowser.pro
index e42c49a..82f6a00 100644
--- a/WebKitTools/MiniBrowser/qt/MiniBrowser.pro
+++ b/WebKitTools/MiniBrowser/qt/MiniBrowser.pro
@@ -51,3 +51,10 @@ contains(QT_CONFIG, opengl) {
     QT += opengl
     DEFINES += QT_CONFIGURED_WITH_OPENGL
 }
+
+# We have to copy the resource file to the build directory
+# to use the useragentlist.txt file of QtTestBrowser without
+# polluting the source tree.
+# The copier is defined in WebKit2/DerivedSources.pro.
+RESOURCES += \
+    $$OUTPUT_DIR/WebKitTools/MiniBrowser/qt/MiniBrowser.qrc

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list