Sha256: bfc7d43554e2edfefa4c370f044e5e74eabbaa8d848a03956d1d00903ab2b8b4

Contents?: true

Size: 1005 Bytes

Versions: 3

Compression:

Stored size: 1005 Bytes

Contents

#include "CurrentUrl.h"
#include "WebPage.h"
#include "WebPageManager.h"

CurrentUrl::CurrentUrl(WebPageManager *manager, QStringList &arguments, QObject *parent) : SocketCommand(manager, arguments, parent) {
}

void CurrentUrl::start() {
#if QT_VERSION >= QT_VERSION_CHECK(4, 8, 0)
  QStringList arguments;
  QVariant result = page()->invokeCapybaraFunction("currentUrl", arguments);
  QString url = result.toString();
  emit finished(new Response(true, url));
#else
  QUrl humanUrl = wasRedirectedAndNotModifiedByJavascript() ?
    page()->currentFrame()->url() : page()->currentFrame()->requestedUrl();
  QByteArray encodedBytes = humanUrl.toEncoded();
  emit finished(new Response(true, encodedBytes));
}

bool CurrentUrl::wasRegularLoad() {
  return page()->currentFrame()->url() == page()->currentFrame()->requestedUrl();
}

bool CurrentUrl::wasRedirectedAndNotModifiedByJavascript() {
  return !wasRegularLoad() && page()->currentFrame()->url() == page()->history()->currentItem().url();
#endif
}

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
capybara-webkit-0.13.2 src/CurrentUrl.cpp
capybara-webkit-0.13.1 src/CurrentUrl.cpp
capybara-webkit-0.13.0 src/CurrentUrl.cpp