Sha256: 0f198c3625f8837a5c24553458918b6dac7e11a56dcf5eccfbb4c3d396b80135

Contents?: true

Size: 1.34 KB

Versions: 19

Compression:

Stored size: 1.34 KB

Contents

#include "BlacklistedRequestHandler.h"
#include "NetworkReplyProxy.h"
#include "NoOpReply.h"

BlacklistedRequestHandler::BlacklistedRequestHandler(
  RequestHandler *next,
  QObject *parent
) : RequestHandler(parent) {
  m_next = next;
}

QNetworkReply* BlacklistedRequestHandler::handleRequest(
  NetworkAccessManager *manager,
  QNetworkAccessManager::Operation operation,
  QNetworkRequest &request,
  QIODevice *outgoingData
) {
  if (this->isBlacklisted(request.url())) {
    return new NetworkReplyProxy(new NoOpReply(request), this);
  } else {
    return m_next->handleRequest(manager, operation, request, outgoingData);
  }
}

void BlacklistedRequestHandler::setUrlBlacklist(QStringList urlBlacklist) {
  m_urlBlacklist.clear();

  QStringListIterator iter(urlBlacklist);
  while (iter.hasNext()) {
    m_urlBlacklist << iter.next();
  }
}

bool BlacklistedRequestHandler::isBlacklisted(QUrl url) {
  QString urlString = url.toString();
  QStringListIterator iter(m_urlBlacklist);

  while (iter.hasNext()) {
    QRegExp blacklisted = QRegExp(iter.next());
    blacklisted.setPatternSyntax(QRegExp::Wildcard);

    if(urlString.contains(blacklisted)) {
      return true;
    }
  }

  return false;
}

void BlacklistedRequestHandler::blockUrl(const QString &url) {
  m_urlBlacklist.append(url);
}

void BlacklistedRequestHandler::reset() {
  m_urlBlacklist.clear();
}

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
capybara-webkit-1.15.1 src/BlacklistedRequestHandler.cpp
capybara-webkit-1.15.0 src/BlacklistedRequestHandler.cpp
capybara-webkit-1.14.0 src/BlacklistedRequestHandler.cpp
capybara-webkit-1.13.0 src/BlacklistedRequestHandler.cpp
capybara-webkit-1.12.0 src/BlacklistedRequestHandler.cpp
capybara-webkit-1.11.1 src/BlacklistedRequestHandler.cpp
capybara-webkit-1.11.0 src/BlacklistedRequestHandler.cpp
capybara-webkit-1.10.1 src/BlacklistedRequestHandler.cpp
capybara-webkit-1.10.0 src/BlacklistedRequestHandler.cpp
capybara-webkit-1.9.0 src/BlacklistedRequestHandler.cpp
capybara-webkit-1.8.0 src/BlacklistedRequestHandler.cpp
capybara-webkit-1.7.1 src/BlacklistedRequestHandler.cpp
capybara-webkit-1.7.0 src/BlacklistedRequestHandler.cpp
capybara-webkit-1.6.0 src/BlacklistedRequestHandler.cpp
capybara-webkit-1.5.2 src/BlacklistedRequestHandler.cpp
capybara-webkit-1.5.1 src/BlacklistedRequestHandler.cpp
capybara-webkit-1.5.0 src/BlacklistedRequestHandler.cpp
capybara-webkit-1.4.1 src/BlacklistedRequestHandler.cpp
capybara-webkit-1.4.0 src/BlacklistedRequestHandler.cpp