summaryrefslogtreecommitdiffstats
path: root/WebKitTools/MiniBrowser
diff options
context:
space:
mode:
Diffstat (limited to 'WebKitTools/MiniBrowser')
-rw-r--r--WebKitTools/MiniBrowser/MiniBrowser.qrc5
-rw-r--r--WebKitTools/MiniBrowser/MiniBrowser.vcproj72
-rw-r--r--WebKitTools/MiniBrowser/qt/BrowserView.cpp4
-rw-r--r--WebKitTools/MiniBrowser/qt/BrowserView.h2
-rw-r--r--WebKitTools/MiniBrowser/qt/BrowserWindow.cpp66
-rw-r--r--WebKitTools/MiniBrowser/qt/BrowserWindow.h12
-rw-r--r--WebKitTools/MiniBrowser/qt/MiniBrowser.pro7
-rw-r--r--WebKitTools/MiniBrowser/qt/main.cpp27
-rw-r--r--WebKitTools/MiniBrowser/win/stdafx.h1
9 files changed, 176 insertions, 20 deletions
diff --git a/WebKitTools/MiniBrowser/MiniBrowser.qrc b/WebKitTools/MiniBrowser/MiniBrowser.qrc
new file mode 100644
index 0000000..ffe77b0
--- /dev/null
+++ b/WebKitTools/MiniBrowser/MiniBrowser.qrc
@@ -0,0 +1,5 @@
+<RCC>
+ <qresource prefix="/">
+ <file>useragentlist.txt</file>
+ </qresource>
+</RCC>
diff --git a/WebKitTools/MiniBrowser/MiniBrowser.vcproj b/WebKitTools/MiniBrowser/MiniBrowser.vcproj
index 7af24ec..b8bcebe 100644
--- a/WebKitTools/MiniBrowser/MiniBrowser.vcproj
+++ b/WebKitTools/MiniBrowser/MiniBrowser.vcproj
@@ -83,7 +83,6 @@
InheritedPropertySheets="$(WebKitLibrariesDir)\tools\vsprops\common.vsprops;$(WebKitLibrariesDir)\tools\vsprops\release.vsprops;.\Configurations\MiniBrowserCoreFoundation.vsprops;.\Configurations\MiniBrowserCommon.vsprops"
UseOfATL="1"
CharacterSet="1"
- WholeProgramOptimization="1"
>
<Tool
Name="VCPreBuildEventTool"
@@ -393,6 +392,69 @@
Name="VCPostBuildEventTool"
/>
</Configuration>
+ <Configuration
+ Name="Release_LTCG|Win32"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(WebKitLibrariesDir)\tools\vsprops\common.vsprops;$(WebKitLibrariesDir)\tools\vsprops\release.vsprops;.\Configurations\MiniBrowserCoreFoundation.vsprops;.\Configurations\MiniBrowserCommon.vsprops"
+ UseOfATL="1"
+ CharacterSet="1"
+ WholeProgramOptimization="1"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
</Configurations>
<References>
</References>
@@ -469,6 +531,14 @@
UsePrecompiledHeader="1"
/>
</FileConfiguration>
+ <FileConfiguration
+ Name="Release_LTCG|Win32"
+ >
+ <Tool
+ Name="VCCLCompilerTool"
+ UsePrecompiledHeader="1"
+ />
+ </FileConfiguration>
</File>
</Filter>
<Filter
diff --git a/WebKitTools/MiniBrowser/qt/BrowserView.cpp b/WebKitTools/MiniBrowser/qt/BrowserView.cpp
index ce101c2..c885a39 100644
--- a/WebKitTools/MiniBrowser/qt/BrowserView.cpp
+++ b/WebKitTools/MiniBrowser/qt/BrowserView.cpp
@@ -36,14 +36,14 @@ static QWKPage* createNewPage(QWKPage* page)
return page;
}
-BrowserView::BrowserView(QWidget* parent)
+BrowserView::BrowserView(QGraphicsWKView::BackingStoreType backingStoreType, QWidget* parent)
: QGraphicsView(parent)
, m_item(0)
, m_context(WKContextGetSharedProcessContext())
{
WKRetainPtr<WKPageNamespaceRef> pageNamespace(AdoptWK, WKPageNamespaceCreate(m_context.get()));
- m_item = new QGraphicsWKView(pageNamespace.get(), QGraphicsWKView::Simple, 0);
+ m_item = new QGraphicsWKView(pageNamespace.get(), backingStoreType, 0);
setScene(new QGraphicsScene(this));
scene()->addItem(m_item);
diff --git a/WebKitTools/MiniBrowser/qt/BrowserView.h b/WebKitTools/MiniBrowser/qt/BrowserView.h
index 42b7658..7e8288e 100644
--- a/WebKitTools/MiniBrowser/qt/BrowserView.h
+++ b/WebKitTools/MiniBrowser/qt/BrowserView.h
@@ -37,7 +37,7 @@ class BrowserView : public QGraphicsView {
Q_OBJECT
public:
- BrowserView(QWidget* parent = 0);
+ BrowserView(QGraphicsWKView::BackingStoreType, QWidget* parent = 0);
virtual ~BrowserView() { delete m_item; }
void load(const QString&);
diff --git a/WebKitTools/MiniBrowser/qt/BrowserWindow.cpp b/WebKitTools/MiniBrowser/qt/BrowserWindow.cpp
index a703788..4c56c3b 100644
--- a/WebKitTools/MiniBrowser/qt/BrowserWindow.cpp
+++ b/WebKitTools/MiniBrowser/qt/BrowserWindow.cpp
@@ -30,15 +30,19 @@
#include "WKPageNamespace.h"
-BrowserWindow::BrowserWindow()
+BrowserWindow::BrowserWindow(QGraphicsWKView::BackingStoreType type)
+ : m_backingStoreType(type)
{
setAttribute(Qt::WA_DeleteOnClose);
m_menu = new QMenuBar();
- m_browser = new BrowserView();
+ m_browser = new BrowserView(m_backingStoreType);
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);
@@ -60,6 +64,9 @@ BrowserWindow::BrowserWindow()
m_browser->setFocus(Qt::OtherFocusReason);
+ QShortcut* selectAddressBar = new QShortcut(Qt::CTRL | Qt::Key_L, this);
+ connect(selectAddressBar, SIGNAL(activated()), this, SLOT(openLocation()));
+
resize(960, 640);
show();
}
@@ -72,11 +79,17 @@ void BrowserWindow::load(const QString& url)
BrowserWindow* BrowserWindow::newWindow(const QString& url)
{
- BrowserWindow* window = new BrowserWindow();
+ BrowserWindow* window = new BrowserWindow(m_backingStoreType);
window->load(url);
return window;
}
+void BrowserWindow::openLocation()
+{
+ m_addressBar->selectAll();
+ m_addressBar->setFocus();
+}
+
void BrowserWindow::changeLocation()
{
QString string = m_addressBar->text();
@@ -112,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 47e55b5..fe94d6b 100644
--- a/WebKitTools/MiniBrowser/qt/BrowserWindow.h
+++ b/WebKitTools/MiniBrowser/qt/BrowserWindow.h
@@ -29,32 +29,38 @@
#ifndef BrowserWindow_h
#define BrowserWindow_h
-#define PLATFORM(x) 0
-
#include "BrowserView.h"
+#include <QStringList>
#include <QtGui>
+#include <qgraphicswkview.h>
class BrowserWindow : public QMainWindow {
Q_OBJECT
public:
- BrowserWindow();
+ BrowserWindow(QGraphicsWKView::BackingStoreType);
~BrowserWindow();
void load(const QString& url);
public slots:
BrowserWindow* newWindow(const QString& url = "about:blank");
+ void openLocation();
protected slots:
void changeLocation();
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;
};
#endif
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
diff --git a/WebKitTools/MiniBrowser/qt/main.cpp b/WebKitTools/MiniBrowser/qt/main.cpp
index 8ff3de8..20f4ff5 100644
--- a/WebKitTools/MiniBrowser/qt/main.cpp
+++ b/WebKitTools/MiniBrowser/qt/main.cpp
@@ -27,28 +27,37 @@
*/
#include "BrowserWindow.h"
+#include <QLatin1String>
+#include <QRegExp>
+#include <qgraphicswkview.h>
#include <QtGui>
int main(int argc, char** argv) {
QApplication app(argc, argv);
QStringList args = QApplication::arguments();
- QStringList urls = args;
- urls.removeAt(0);
+ args.removeAt(0);
- if (urls.isEmpty()) {
+ QGraphicsWKView::BackingStoreType backingStoreTypeToUse = QGraphicsWKView::Simple;
+ int indexOfTiledOption;
+ if ((indexOfTiledOption = args.indexOf(QRegExp(QLatin1String("-tiled")))) != -1) {
+ backingStoreTypeToUse = QGraphicsWKView::Tiled;
+ args.removeAt(indexOfTiledOption);
+ }
+
+ if (args.isEmpty()) {
QString defaultUrl = QString("file://%1/%2").arg(QDir::homePath()).arg(QLatin1String("index.html"));
if (QDir(defaultUrl).exists())
- urls.append(defaultUrl);
+ args.append(defaultUrl);
else
- urls.append("http://www.google.com");
+ args.append("http://www.google.com");
}
- BrowserWindow* window = new BrowserWindow();
- window->load(urls[0]);
+ BrowserWindow* window = new BrowserWindow(backingStoreTypeToUse);
+ window->load(args[0]);
- for (int i = 1; i < urls.size(); ++i)
- window->newWindow(urls[i]);
+ for (int i = 1; i < args.size(); ++i)
+ window->newWindow(args[i]);
app.exec();
diff --git a/WebKitTools/MiniBrowser/win/stdafx.h b/WebKitTools/MiniBrowser/win/stdafx.h
index 0522a17..c5a35f9 100644
--- a/WebKitTools/MiniBrowser/win/stdafx.h
+++ b/WebKitTools/MiniBrowser/win/stdafx.h
@@ -28,4 +28,3 @@
#include <tchar.h>
#include <windows.h>
-