Commit 95bf16aa authored by root's avatar root

Forced referer header on requests to youtube to avoid the UMG messages

parent 931d6aa8
......@@ -184,8 +184,6 @@ void MainWin::handle_youtubevideo(SKMessage &msg)
if(msg.parameters.contains("url"))
{
std::cout << "OPEN URL " << msg.parameters["url"].toStdString() << std::endl;
//if(msg.parameters.contains("width")
//if(msg.parameters.contains("height);
if(!yt_is_open)
{
yt = new WebWin();
......@@ -194,12 +192,22 @@ void MainWin::handle_youtubevideo(SKMessage &msg)
//QWebPageForMac *newWeb = new QWebPageForMac(yt);
//#else
QWebPage *newWeb = new QWebPage(yt);
//ReferredNetworkAccessManager nam;
ReferredNetworkAccessManager *nam = new ReferredNetworkAccessManager();
newWeb->setNetworkAccessManager(nam);
//#endif
yt->setPage(newWeb);
yt->setAttribute(Qt::WA_DeleteOnClose, true);
yt->settings()->setAttribute(QWebSettings::PluginsEnabled, true);
yt->settings()->setAttribute(QWebSettings::JavascriptEnabled, true);
if(msg.parameters.contains("width") && msg.parameters.contains("height"))
yt->resize(msg.parameters["width"].toInt(), msg.parameters["height"].toInt());
else if(msg.parameters.contains("width"))
yt->resize(msg.parameters["width"].toInt(), yt->height());
else if(msg.parameters.contains("height"))
yt->resize(yt->width(), msg.parameters["height"].toInt());
yt->setUrl(QUrl(msg.parameters["url"]));
connect(yt, SIGNAL(closingWindow()), this, SLOT(ytclosesignal()));
yt->show();
......
......@@ -42,6 +42,9 @@
#include <QHash>
#include <QString>
#include <QObject>
#include <QNetworkAccessManager>
#include <QNetworkRequest>
#include <QIODevice>
#include <ipcmsg.h>
#include "webwin.h"
#include "jsbridge.h"
......@@ -77,4 +80,20 @@ class MainWin : public SkylivexWin
};
class ReferredNetworkAccessManager : public QNetworkAccessManager {
Q_OBJECT
protected:
virtual QNetworkReply * createRequest(Operation op,
const QNetworkRequest & req,
QIODevice * outgoingData = 0)
{
QNetworkRequest newReq(req);
newReq.setRawHeader("Referer", "http://www.skylive.it");
return QNetworkAccessManager::createRequest(op, newReq, outgoingData);
}
};
#endif
......@@ -131,6 +131,10 @@ QWebView* WebWin::createWindow(QWebPage::WebWindowType type)
if (type == QWebPage::WebModalDialog)
wv->setWindowModality(Qt::ApplicationModal);
// Assure plugin and js support also for this window.
wv->settings()->setAttribute(QWebSettings::PluginsEnabled, true);
wv->settings()->setAttribute(QWebSettings::JavascriptEnabled, true);
SKMessage msg("newwindow", qobject_cast<SkylivexWin *>(wv));
sendMessage(msg);
......@@ -290,6 +294,11 @@ SkylivexWin* SkylivexWin::createSkyliveWindow(QString url, QWebPage::WebWindowTy
connect(newWeb->mainFrame(), SIGNAL(javaScriptWindowObjectCleared()), wv, SLOT(refreshJsObject()));
// Assure plugin and js support also for this window.
wv->settings()->setAttribute(QWebSettings::PluginsEnabled, true);
wv->settings()->setAttribute(QWebSettings::JavascriptEnabled, true);
wv->setPage(newWeb);
wv->setAttribute(Qt::WA_DeleteOnClose, true);
if (type == QWebPage::WebModalDialog)
......
......@@ -52,7 +52,6 @@ typedef void (WebWin::*SKHandlerFunction)(SKMessage&);
//typedef int (WebWin::*SKHandlerFunction)(SKMessage&);
//#if defined(Q_OS_MAC)
/*
* For some reason youtube think that the default user agent
* on OSX doesn't support HTML5 videos,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment