32 lines
1.0 KiB
C++
32 lines
1.0 KiB
C++
#include "Node.h"
|
|
#include "WebPage.h"
|
|
#include "WebPageManager.h"
|
|
#include "JsonSerializer.h"
|
|
#include "InvocationResult.h"
|
|
|
|
Node::Node(WebPageManager *manager, QStringList &arguments, QObject *parent) : JavascriptCommand(manager, arguments, parent) {
|
|
}
|
|
|
|
void Node::start() {
|
|
QStringList functionArguments(arguments());
|
|
QString functionName = functionArguments.takeFirst();
|
|
QString allowUnattached = functionArguments.takeFirst();
|
|
InvocationResult result = page()->invokeCapybaraFunction(functionName, allowUnattached == "true", functionArguments);
|
|
if (functionName == "focus_frame") {
|
|
page()->setCurrentFrameParent(page()->currentFrame()->parentFrame());
|
|
}
|
|
|
|
if (result.hasError()) {
|
|
finish(&result);
|
|
} else {
|
|
JsonSerializer serializer;
|
|
InvocationResult jsonResult = InvocationResult(serializer.serialize(result.result()));
|
|
finish(&jsonResult);
|
|
}
|
|
}
|
|
|
|
QString Node::toString() const {
|
|
QStringList functionArguments(arguments());
|
|
return QString("Node.") + functionArguments.takeFirst();
|
|
}
|