Sha256: b953ae78d6010aaa9bcbec2af5705758b8c4b88fdd19ffa9628a72f0325a99f0

Contents?: true

Size: 1.76 KB

Versions: 24

Compression:

Stored size: 1.76 KB

Contents

#include "PageLoadingCommand.h"
#include "SocketCommand.h"
#include "WebPage.h"
#include "WebPageManager.h"
#include "ErrorMessage.h"

PageLoadingCommand::PageLoadingCommand(Command *command, WebPageManager *manager, QObject *parent) : Command(parent) {
  m_manager = manager;
  m_command = command;
  m_pageLoadingFromCommand = false;
  m_pageSuccess = true;
  m_pendingResponse = NULL;
  m_command->setParent(this);
}

void PageLoadingCommand::start() {
  m_manager->logger() << "Started" << m_command->toString();
  connect(m_command, SIGNAL(finished(Response *)), this, SLOT(commandFinished(Response *)));
  connect(m_manager, SIGNAL(loadStarted()), this, SLOT(pageLoadingFromCommand()));
  connect(m_manager, SIGNAL(pageFinished(bool)), this, SLOT(pendingLoadFinished(bool)));
  m_command->start();
};

void PageLoadingCommand::pendingLoadFinished(bool success) {
  m_pageSuccess = success;
  if (m_pageLoadingFromCommand) {
    m_pageLoadingFromCommand = false;
    if (m_pendingResponse) {
      m_manager->logger() << "Page load from command finished";
      if (m_pageSuccess) {
        emit finished(m_pendingResponse);
      } else {
        QString message = m_manager->currentPage()->failureString();
        finish(false, new ErrorMessage(message));
      }
    }
  }
}

void PageLoadingCommand::pageLoadingFromCommand() {
  m_manager->logger() << m_command->toString() << "started page load";
  m_pageLoadingFromCommand = true;
}

void PageLoadingCommand::commandFinished(Response *response) {
  disconnect(m_manager, SIGNAL(loadStarted()), this, SLOT(pageLoadingFromCommand()));
  m_manager->logger() << "Finished" << m_command->toString() << "with response" << response->toString();

  if (m_pageLoadingFromCommand)
    m_pendingResponse = response;
  else
    emit finished(response);
}

Version data entries

24 entries across 24 versions & 2 rubygems

Version Path
capybara-webkit-1.14.0 src/PageLoadingCommand.cpp
capybara-webkit-1.13.0 src/PageLoadingCommand.cpp
capybara-webkit-1.12.0 src/PageLoadingCommand.cpp
capybara-webkit-1.11.1 src/PageLoadingCommand.cpp
capybara-webkit-1.11.0 src/PageLoadingCommand.cpp
capybara-webkit-1.10.1 src/PageLoadingCommand.cpp
capybara-webkit-1.10.0 src/PageLoadingCommand.cpp
capybara-webkit-1.9.0 src/PageLoadingCommand.cpp
capybara-webkit-1.8.0 src/PageLoadingCommand.cpp
capybara-webkit-1.7.1 src/PageLoadingCommand.cpp
capybara-webkit-1.7.0 src/PageLoadingCommand.cpp
capybara-webkit-1.6.0 src/PageLoadingCommand.cpp
capybara-webkit-1.5.2 src/PageLoadingCommand.cpp
capybara-webkit-1.5.1 src/PageLoadingCommand.cpp
capybara-webkit-1.5.0 src/PageLoadingCommand.cpp
capybara-webkit-1.4.1 src/PageLoadingCommand.cpp
capybara-webkit-1.4.0 src/PageLoadingCommand.cpp
capybara-webkit-1.3.1 src/PageLoadingCommand.cpp
capybara-webkit-1.3.0 src/PageLoadingCommand.cpp
capybara-webkit-1.2.0 src/PageLoadingCommand.cpp