--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/ginebra2/GWebPage.cpp Wed Jun 23 17:59:43 2010 +0300
@@ -0,0 +1,71 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+*
+* This program is free software: you can redistribute it and/or modify
+* it under the terms of the GNU Lesser General Public License as published by
+* the Free Software Foundation, version 2.1 of the License.
+*
+* This program is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public License
+* along with this program. If not,
+* see "http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html/".
+*
+* Description:
+*
+*/
+
+#include "GWebPage.h"
+
+
+namespace GVA {
+
+// ----------------------------------------
+// WebPageWrapper
+// ----------------------------------------
+
+WebPageWrapper::WebPageWrapper(QObject *parent, const QString &prefix)
+ : QWebPage(parent),
+ m_prefix(prefix) {
+}
+
+// Called when javascript errors are hit in the chrome page.
+void WebPageWrapper::javaScriptConsoleMessage(const QString & message, int lineNumber, const QString & sourceID) {
+ qDebug() << m_prefix << ":";
+ qDebug() << (const char*)QString("===\t%2:%3 %4")
+ .arg(sourceID)
+ .arg(lineNumber)
+ .arg(message).toAscii();
+}
+
+// ----------------------------------------
+// GSuperWebPage
+// ----------------------------------------
+
+GSuperWebPage::GSuperWebPage(WebPageWrapper *page, ChromeWidget *chromeWidget)
+ : GWebPage(page),
+ m_chromeWidget(chromeWidget)
+{
+ if (!m_page) {
+ m_page = new WebPageWrapper(this, "Superpage javascript error");
+ }
+ qDebug() << "GSuperWebPage::GSuperWebPage: page=" << GWebPage::page();
+ connect(GWebPage::page()->mainFrame(), SIGNAL(javaScriptWindowObjectCleared()), this, SLOT(onJavaScriptWindowObjectCleared()));
+}
+
+void GSuperWebPage::load(const QString &url) {
+ qDebug() << "GSuperWebPage::load: " << url;
+ page()->mainFrame()->load(url);
+}
+
+void GSuperWebPage::onJavaScriptWindowObjectCleared() {
+ qDebug() << "GSuperWebPage::onJavaScriptWindowObjectCleared: " << objectName();
+ if (m_chromeWidget)
+ m_chromeWidget->exportJSObjectsToPage(m_page);
+}
+
+} // GVA namespace