Exemplo n.º 1
0
bool KWebPage::acceptNavigationRequest(QWebFrame *frame, const QNetworkRequest &request, NavigationType type)
{
    kDebug(800) << "url:" << request.url() << ", type:" << type << ", frame:" << frame;

    if (frame && d->wallet && type == QWebPage::NavigationTypeFormSubmitted)
        d->wallet->saveFormData(frame);

    // Make sure nothing is cached when private browsing mode is enabled...
    if (settings()->testAttribute(QWebSettings::PrivateBrowsingEnabled)) {
        if (!d->inPrivateBrowsingMode) {
            setDisableCookieJarStorage(networkAccessManager(), true);
            setSessionMetaData(QL1S("no-cache"), QL1S("true"));
            d->inPrivateBrowsingMode = true;
        }
    } else  {
        if (d->inPrivateBrowsingMode) {
            setDisableCookieJarStorage(networkAccessManager(), false);
            removeSessionMetaData(QL1S("no-cache"));
            d->inPrivateBrowsingMode = false;
        }
    }

    /*
      If the navigation request is from the main frame, set the cross-domain
      meta-data value to the current url for proper integration with KCookieJar...
    */
    if (frame == mainFrame() && type != QWebPage::NavigationTypeReload)
        setSessionMetaData(QL1S("cross-domain"), request.url().toString());

    return QWebPage::acceptNavigationRequest(frame, request, type);
}
Exemplo n.º 2
0
void WebPuppeteerTab::waitFinish(int idle) {
	QEventLoop e;
	TimeoutTrigger t(idle);

	connect(&t, SIGNAL(timeout()), &e, SLOT(quit()));
	connect(networkAccessManager(), SIGNAL(started()), &t, SLOT(start()));
	connect(networkAccessManager(), SIGNAL(allFinished()), &t, SLOT(end()));

	// if something pending, stop timer
	if (static_cast<WebPuppeteerTabNetSpy*>(networkAccessManager())->getCount() > 0)
		t.start();

	e.exec();
}
Exemplo n.º 3
0
void SolveMediaRecaptchaPlugin::getCaptcha(const QString &captchaKey) {
    QUrl url("http://api.solvemedia.com/papi/_challenge.js?k=" + captchaKey);
    QNetworkRequest request(url);
    QNetworkReply *reply = networkAccessManager()->get(request);
    connect(reply, SIGNAL(finished()), this, SLOT(onCaptchaDownloaded()));
    connect(this, SIGNAL(currentOperationCanceled()), reply, SLOT(deleteLater()));
}
Exemplo n.º 4
0
void GoogleRecaptchaPlugin::getCaptcha(const QString &captchaKey) {
    QUrl url("http://www.google.com/recaptcha/api/challenge?k=" + captchaKey);
    QNetworkRequest request(url);
    QNetworkReply *reply = networkAccessManager()->get(request);
    connect(reply, SIGNAL(finished()), this, SLOT(onCaptchaDownloaded()));
    connect(this, SIGNAL(currentOperationCanceled()), reply, SLOT(deleteLater()));
}
Exemplo n.º 5
0
void MixtureCloud::getDownloadRequest(const QUrl &webUrl) {
    emit statusChanged(Connecting);
    QNetworkRequest request(webUrl);
    QNetworkReply *reply = networkAccessManager()->get(request);
    this->connect(reply, SIGNAL(finished()), this, SLOT(onWebPageDownloaded()));
    this->connect(this, SIGNAL(currentOperationCancelled()), reply, SLOT(deleteLater()));
}
Exemplo n.º 6
0
WebPage::WebPage(QObject *parent)
{
    settings()->setAttribute(QWebSettings::LocalStorageEnabled, true);
    settings()->setAttribute(QWebSettings::AcceleratedCompositingEnabled, true);
    settings()->setAttribute(QWebSettings::DnsPrefetchEnabled, true);
    settings()->setAttribute(QWebSettings::LocalStorageDatabaseEnabled, true);
    settings()->setAttribute(QWebSettings::OfflineStorageDatabaseEnabled, true);
    settings()->setAttribute(QWebSettings::OfflineWebApplicationCacheEnabled, true);
    settings()->setAttribute(QWebSettings::DeveloperExtrasEnabled, true);
    settings()->setAttribute(QWebSettings::JavascriptCanOpenWindows, true);
    settings()->enablePersistentStorage(QDesktopServices::storageLocation(QDesktopServices::DataLocation) + "/holadesk");
    settings()->setOfflineStorageDefaultQuota(932838457459459);
    //settings()->setOfflineStoragePath(QFileInfo(settings->fileName()).absolutePath() + "/");
    settings()->setOfflineStoragePath(QDesktopServices::storageLocation(QDesktopServices::DataLocation) + "/holadesk");
    settings()->setOfflineWebApplicationCachePath(QDesktopServices::storageLocation(QDesktopServices::CacheLocation));
    settings()->setOfflineWebApplicationCacheQuota(932838457459459);

    settings()->setAttribute(QWebSettings::LocalContentCanAccessRemoteUrls, true);
    settings()->setAttribute(QWebSettings::LocalContentCanAccessFileUrls, true);

    cookieJar = new CookieJar();
    networkAccessManager()->setCookieJar(cookieJar);

    native = new Native(this);
}
Exemplo n.º 7
0
bool KWebPage::isExternalContentAllowed() const
{
    KIO::AccessManager *manager = qobject_cast<KIO::AccessManager*>(networkAccessManager());
    if (manager)
        return manager->isExternalContentAllowed();
    return true;
}
Exemplo n.º 8
0
void QXmlSchemaPrivate::load(QIODevice *source, const QUrl &documentUri, const QString &targetNamespace)
{
    m_schemaParserContext = QPatternist::XsdSchemaParserContext::Ptr(new QPatternist::XsdSchemaParserContext(m_namePool.d, m_schemaContext));
    m_schemaIsValid = false;

    if (!source) {
        qWarning("A null QIODevice pointer cannot be passed.");
        return;
    }

    if (!source->isReadable()) {
        qWarning("The device must be readable.");
        return;
    }

    m_documentUri = QPatternist::XPathHelper::normalizeQueryURI(documentUri);
    m_schemaContext->setMessageHandler(messageHandler());
    m_schemaContext->setUriResolver(uriResolver());
    m_schemaContext->setNetworkAccessManager(networkAccessManager());

    QPatternist::XsdSchemaParser parser(m_schemaContext, m_schemaParserContext, source);
    parser.setDocumentURI(documentUri);
    parser.setTargetNamespace(targetNamespace);

    try {
        parser.parse();
        m_schemaParserContext->resolver()->resolve();

        m_schemaIsValid = true;
    } catch (QPatternist::Exception exception) {
        Q_UNUSED(exception);
        m_schemaIsValid = false;
    }
}
Exemplo n.º 9
0
PHIImageRequest::PHIImageRequest( QObject *parent, const QUrl &url, int num )
    : QObject( parent ), _reply( 0 ), _num( num )
{
    QNetworkAccessManager *nam=networkAccessManager();
    QNetworkRequest req( url );
    _reply=nam->get( req );
    connect( _reply, &QNetworkReply::finished, this, &PHIImageRequest::slotFinished );
}
Exemplo n.º 10
0
void PublishToMePlugin::followRedirect(const QUrl &url, const char* slot) {
    m_redirects++;
    QNetworkRequest request(url);
    request.setRawHeader("Accept-Language", "en-GB,en-US;q=0.8,en;q=0.6");
    QNetworkReply *reply = networkAccessManager()->get(request);
    connect(reply, SIGNAL(finished()), this, slot);
    connect(this, SIGNAL(currentOperationCanceled()), reply, SLOT(deleteLater()));
}
CookieJar *BrowserApplication::cookieJar()
{
#if defined(QWEBENGINEPAGE_SETNETWORKACCESSMANAGER)
    return (CookieJar*)networkAccessManager()->cookieJar();
#else
    return 0;
#endif
}
Exemplo n.º 12
0
void PublishToMePlugin::checkUrl(const QString &url, const QVariantMap &) {
    m_redirects = 0;
    QNetworkRequest request(QUrl::fromUserInput(url));
    request.setRawHeader("Accept-Language", "en-GB,en-US;q=0.8,en;q=0.6");
    QNetworkReply *reply = networkAccessManager()->get(request);
    connect(reply, SIGNAL(finished()), this, SLOT(checkUrlIsValid()));
    connect(this, SIGNAL(currentOperationCanceled()), reply, SLOT(deleteLater()));
}
Exemplo n.º 13
0
void SolveMediaRecaptchaPlugin::downloadCaptchaImage(const QString &challenge) {
    m_challenge = challenge;
    QUrl url("http://api.solvemedia.com/papi/media?c=" + challenge);
    QNetworkRequest request(url);
    QNetworkReply *reply = networkAccessManager()->get(request);
    connect(reply, SIGNAL(finished()), this, SLOT(onCaptchaImageDownloaded()));
    connect(this, SIGNAL(currentOperationCanceled()), reply, SLOT(deleteLater()));
}
Exemplo n.º 14
0
void WebPage::applyProxy()
{
    QUrl proxyUrl(qgetenv("http_proxy"));

    if (proxyUrl.isValid() && !proxyUrl.host().isEmpty()) {
        int proxyPort = (proxyUrl.port() > 0) ? proxyUrl.port() : 8080;
        networkAccessManager()->setProxy(QNetworkProxy(QNetworkProxy::HttpProxy, proxyUrl.host(), proxyPort));
    }
}
Exemplo n.º 15
0
QNetworkReply *NetworkAccessManagerProxy::httpPost(const QString &link, const QByteArray &data)
{
    QUrl url(link);
    QNetworkRequest r(url);
    // Required for Qt 4.8
    r.setHeader(QNetworkRequest::ContentTypeHeader,
                QVariant(QByteArray("application/x-www-form-urlencoded")));
    return networkAccessManager()->post(r, data);
}
void SidebarPrivate::linkClickedFinished()
{
    QNetworkReply * reply = static_cast< QNetworkReply * >(sender());

    QString target = reply->property("__target").toString();
    QVariant redirectsVariant = reply->property("__redirects");
    int redirects = redirectsVariant.isNull() ? 20 : redirectsVariant.toInt();

    // Redirect?
    QUrl redirectedUrl = reply->attribute(QNetworkRequest::RedirectionTargetAttribute).toUrl();
    if (redirectedUrl.isValid())
    {
        if (redirectedUrl.isRelative())
        {
            QUrl oldUrl = reply->url();
            redirectedUrl.setScheme(oldUrl.scheme());
            redirectedUrl.setAuthority(oldUrl.authority());
        }
        if (redirects > 0)
        {
            QNetworkRequest request = reply->request();
            request.setUrl(redirectedUrl);
            QNetworkReply * reply = networkAccessManager()->get(request);
            reply->setProperty("__target", target);
            connect(reply, SIGNAL(finished()), this, SLOT(linkClickedFinished()));
        }
        else
        {
            // TOO MANY REDIRECTS
        }
        reply->deleteLater();
        return;
    }

    // Check headers... if PDF then launch a new window, otherwise give it to the OS
    QString contentType(reply->header(QNetworkRequest::ContentTypeHeader).toString());
    if (contentType.contains("application/pdf")) {
        emit urlRequested(reply->request().url(), "tab");
    } else {
        QUrl href(reply->request().url());
        if (href.isValid()) {
            if (href.scheme() == "http" || href.scheme() == "https") {
                if (target == "sidebar") {
                    webView->setUrl(href);
                    slideLayout->push("web");
                    return;
                }
            }

            QDesktopServices::openUrl(href);
        }
        // FIXME error
    }

    reply->deleteLater();
}
Exemplo n.º 17
0
void XMLHttpRequest::followRedirect(const QUrl &url) {
    Logger::log("XMLHttpRequest::followRedirect(): URL: " + url.toString());
    m_redirects++;
    m_response = QByteArray();
    m_reply = networkAccessManager()->get(QNetworkRequest(url));
    setReadyState(OPENED);
    connect(m_reply, SIGNAL(metaDataChanged()), this, SLOT(onReplyMetaDataChanged()));
    connect(m_reply, SIGNAL(readyRead()), this, SLOT(onReplyReadyRead()));
    connect(m_reply, SIGNAL(finished()), this, SLOT(onReplyFinished()));
}
Exemplo n.º 18
0
RecaptchaPlugin* RecaptchaPluginManager::createPluginById(const QString &id, QObject *parent) {
    if (RecaptchaPluginFactory *factory = getFactoryById(id)) {
        if (RecaptchaPlugin *plugin = factory->createPlugin(parent)) {
            plugin->setNetworkAccessManager(networkAccessManager());
            return plugin;
        }
    }

    return 0;
}
Exemplo n.º 19
0
void PublishToMePlugin::getDownloadLink() {
    m_redirects = 0;
    QNetworkRequest request(m_url);
    request.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded");
    request.setRawHeader("Referer", m_url.toString().toUtf8());
    request.setRawHeader("X-Requested-With", "XMLHttpRequest");
    QNetworkReply *reply = networkAccessManager()->post(request, "free=1&uniqueId=" + m_fileId.toUtf8());
    connect(reply, SIGNAL(finished()), this, SLOT(checkDownloadLink()));
    connect(this, SIGNAL(currentOperationCanceled()), reply, SLOT(deleteLater()));
}
Exemplo n.º 20
0
void PublishToMePlugin::login(const QString &username, const QString &password) {
    m_redirects = 0;
    const QString data = QString("LoginForm[username]=%1&LoginForm[password]=%2").arg(username).arg(password);
    QNetworkRequest request(LOGIN_URL);
    request.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded");
    request.setRawHeader("X-Requested-With", "XMLHttpRequest");
    QNetworkReply *reply = networkAccessManager()->post(request, data.toUtf8());
    connect(reply, SIGNAL(finished()), this, SLOT(checkLogin()));
    connect(this, SIGNAL(currentOperationCanceled()), reply, SLOT(deleteLater()));
}
Exemplo n.º 21
0
ServicePlugin* ServicePluginManager::createPluginByUrl(const QString &url, QObject *parent) {
    if (ServicePluginFactory *factory = getFactoryByUrl(url)) {
        if (ServicePlugin *plugin = factory->createPlugin(parent)) {
            plugin->setNetworkAccessManager(networkAccessManager());
            return plugin;
        }
    }

    return 0;
}
Exemplo n.º 22
0
void MybbFeedRequest::followRedirect(const QUrl &url, const char *slot) {
#ifdef MYBB_DEBUG
    qDebug() << "MybbFeedRequest::followRedirect(). URL:" << url;
#endif
    m_redirects++;
    QNetworkRequest request(url);
    request.setRawHeader("User-Agent", USER_AGENT);
    QNetworkReply *reply = networkAccessManager()->get(request);
    connect(reply, SIGNAL(finished()), this, slot);
    connect(this, SIGNAL(finished(FeedRequest*)), reply, SLOT(deleteLater()));
}
void SidebarPrivate::linkClicked(const QUrl & href, const QString & target)
{
    if (target == "sidebar") {
        QNetworkRequest request(href);
        request.setRawHeader("User-Agent", webView->userAgentForUrl(href).toUtf8());
        QNetworkReply * reply = networkAccessManager()->get(request);
        reply->setProperty("__target", target);
        connect(reply, SIGNAL(finished()), this, SLOT(linkClickedFinished()));
    } else {
        emit urlRequested(href, target);
    }
}
Exemplo n.º 24
0
void SolveMediaRecaptchaPlugin::getCaptcha(int captchaType, const QString &captchaKey, const QVariantMap &) {
    if (captchaType != CaptchaType::Image) {
        error(tr("Captcha type %1 not supported").arg(captchaType));
        return;
    }

    QUrl url(CAPTCHA_CHALLENGE_URL + captchaKey);
    QNetworkRequest request(url);
    QNetworkReply *reply = networkAccessManager()->get(request);
    connect(reply, SIGNAL(finished()), this, SLOT(onCaptchaDownloaded()));
    connect(this, SIGNAL(currentOperationCanceled()), reply, SLOT(deleteLater()));
}
Exemplo n.º 25
0
void RequestPrivate::followRedirect(const QUrl &redirect) {
    Q_Q(Request);
    
    redirects++;
    
    if (reply) {
        delete reply;
    }
        
    reply = networkAccessManager()->get(buildRequest(redirect));
    Request::connect(reply, SIGNAL(finished()), q, SLOT(_q_onReplyFinished()));
}
Exemplo n.º 26
0
void MybbFeedRequest::login(const QUrl &url, const QString &username, const QString &password) {
#ifdef MYBB_DEBUG
    qDebug() << "MybbFeedRequest::login(). URL:" << url << "Username:"******"Password:"******"quick_username=%1&quick_password=%2&s=&action=do_login&quick_login=1&submit=Login").arg(username).arg(password);
    QNetworkRequest request(url);
    request.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded");
    request.setRawHeader("User-Agent", USER_AGENT);
    QNetworkReply *reply = networkAccessManager()->post(request, data.toUtf8());
    connect(reply, SIGNAL(finished()), this, SLOT(checkLogin()));
    connect(this, SIGNAL(finished(FeedRequest*)), reply, SLOT(deleteLater()));
}
Exemplo n.º 27
0
void WebPage::setQnamThreaded(bool threaded)
{
    bool alreadyThreaded = networkAccessManager()->thread() != thread();
    if (threaded == alreadyThreaded)
        return;

    if (threaded) {
        m_qnamThread.reset(new QtNAMThread);
        m_qnamThread->start();
        setNetworkAccessManager(m_qnamThread->networkAccessManager());
    } else {
        setNetworkAccessManager(0);
        m_qnamThread.reset();
    }

    Qt::ConnectionType connectionType = threaded ? Qt::BlockingQueuedConnection : Qt::DirectConnection;
    connect(networkAccessManager(), SIGNAL(authenticationRequired(QNetworkReply*, QAuthenticator*)),
            this, SLOT(authenticationRequired(QNetworkReply*, QAuthenticator*)),
            connectionType);
    applyProxy();
}
Exemplo n.º 28
0
WebPuppeteerTab::WebPuppeteerTab(WebPuppeteer *_parent): QWebPage(_parent) {
	parent = _parent;

	// define standard values
	setViewportSize(QSize(1024,768));
	setForwardUnsupportedContent(true);

	setNetworkAccessManager(new WebPuppeteerTabNetSpy(this));

	connect(this, SIGNAL(unsupportedContent(QNetworkReply*)), this, SLOT(downloadFile(QNetworkReply*)));
	connect(networkAccessManager(), SIGNAL(sslErrors(QNetworkReply*,const QList<QSslError>&)), this, SLOT(handleSslErrors(QNetworkReply*,const QList<QSslError>&)));
}
Exemplo n.º 29
0
void PublishToMePlugin::submitCaptchaResponse(const QString &, const QString &response) {
    m_redirects = 0;
    const QString data = QString("CaptchaForm[code]=%1&free=1&freeDownloadRequest=1&uniqueId=%2").arg(response)
                                                                                                 .arg(m_fileId);
    QNetworkRequest request(m_url);
    request.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded");
    request.setRawHeader("Referer", m_url.toString().toUtf8());
    request.setRawHeader("X-Requested-With", "XMLHttpRequest");
    QNetworkReply *reply = networkAccessManager()->post(request, data.toUtf8());
    connect(reply, SIGNAL(finished()), this, SLOT(checkCaptcha()));
    connect(this, SIGNAL(currentOperationCanceled()), reply, SLOT(deleteLater()));
}
Exemplo n.º 30
0
void QXmlSchemaPrivate::load(const QUrl &source, const QString &targetNamespace)
{
    m_documentUri = QPatternist::XPathHelper::normalizeQueryURI(source);

    m_schemaContext->setMessageHandler(messageHandler());
    m_schemaContext->setUriResolver(uriResolver());
    m_schemaContext->setNetworkAccessManager(networkAccessManager());

    const QPatternist::AutoPtr<QNetworkReply> reply(QPatternist::AccelTreeResourceLoader::load(source, m_schemaContext->networkAccessManager(),
                                                                                               m_schemaContext, QPatternist::AccelTreeResourceLoader::ContinueOnError));
    if (reply)
        load(reply.data(), source, targetNamespace);
}