Пример #1
0
void ChangeRouterWanSettingsOp::onSoapFinished()
{
    AsyncOp *op = m_op;
    m_op->deleteLater();
    m_op = NULL;

    if (isAborted())
    {
        return;
    }

    int result = op->result();
    if (result != NoError)
    {
        return notifyFinished(result);
    }

    QVariant varResponseCode = op->value("responseCode");
    if (!varResponseCode.isValid())
    {
        return notifyFinished(UnknownError);
    }

    bool ok;
    int responseCode = varResponseCode.toInt(&ok);
    if (!ok)
    {
        return notifyFinished(UnknownError);
    }

    notifyFinished(NoError);
}
Пример #2
0
void ReconnectRouterOp::onConnectProfileFinished()
{
    AsyncOp *op = m_op;
    m_op->deleteLater();
    m_op = NULL;

    if (isAborted())
    {
        LOG_DEBUG(QString::fromUtf8("connectProfile self aborted!"));
        return;
    }

    if (op->isAborted())
    {
        LOG_DEBUG(QString::fromUtf8("connectProfile op aborted!"));
        return notifyFinished(AbortedError);
    }

    int result = op->result();
    LOG_DEBUG(QString::fromUtf8("connectWlanProfile %1 result: %1").arg(m_wifiName).arg(result));
    if (result == WlanProfileNotFound )
    {
        LOG_DEBUG(QString::fromUtf8("recreate profile?"));
        notifyFinished(WlanProfileNotFound);
    }
    if (result != NoError)
    {
        return retry();
    }

    discoverRouter();
}
Пример #3
0
void ReconnectRouterOp::onDiscoverRouterFinished()
{
    AsyncOp *op = m_op;
    m_op->deleteLater();
    m_op = NULL;

    if (isAborted())
    {
        LOG_DEBUG(QString::fromUtf8("discoverRouter self aborted!"));
        return;
    }

    if (op->isAborted())
    {
        LOG_DEBUG(QString::fromUtf8("discoverRouter op aborted!"));
        return notifyFinished(AbortedError);
    }

    int result = op->result();
    LOG_DEBUG(QString::fromUtf8("discoverRouterSoap result: %1").arg(result));
    if (result != NoError)
    {
        return retry();
    }

    int matchIndex = op->value("matchIndex").toInt();
    LOG_DEBUG(QString::fromUtf8("matchIndex %1").arg(matchIndex));
    if (matchIndex < 0)
    {
        return retry();
    }

    copyValues(op);
    notifyFinished(NoError);
}
Пример #4
0
void MasterDiscoverRouterSoapOp::onOpFinished()
{
    AsyncOp *op = m_op;
    m_op->deleteLater();
    m_op = NULL;

    if (op->isAborted())
    {
        LOG_DEBUG(QString::fromUtf8("MasterDiscoverRouterSoapOp::onOpFinished() aborted"));
        return;
    }

    int result = op->result();
    LOG_DEBUG(QString::fromUtf8("MasterDiscoverRouterSoapOp::onOpFinished() %1").arg(result));

    if (result != NoError)
    {
        if (m_retryCount < m_maxRetryCount)
        {
            LOG_DEBUG(QString::fromUtf8("MasterDiscoverRouterSoapOp Failed, but will retry later"));
            ++m_retryCount;
            m_timer1.setSingleShot(true);
            m_timer1.setInterval(m_retryDelay);
            connect(&m_timer1, SIGNAL(timeout()), SLOT(onRetryTimeout()));
            m_timer1.start();
            return;
        }
        LOG_DEBUG(QString::fromUtf8("MasterDiscoverRouterSoapOp Failed, no more retry chance!"));
        return notifyFinished(UnknownError);
    }

    copyValues(op);
    notifyFinished(NoError);
}
Пример #5
0
void ChangeRouterPasswordOp::onCreateProfileFinished()
{
    AsyncOp *op = m_op;
    m_op->deleteLater();
    m_op = NULL;

    if (op->isAborted())
    {
        return;
    }

    int result = op->result();
    LOG_DEBUG(QString::fromUtf8("createWlanProfile result: %1").arg(result));
    if (result == WlanRadioOffError || result == WlanServiceDownError || result == WlanNoDeviceError)
    {
        return notifyFinished(NoError);
    }

    if (result != AsyncOp::NoError)
    {
        return notifyFinished(result);
    }

    m_op = m_bean->reconnectRouter(3000, 10, m_infoResp.value(QLatin1String("NewWLANMACAddress")).toString(), m_infoResp.value(QLatin1String("NewSSID")).toString(), true);
    connect(m_op, SIGNAL(finished()), SLOT(onReconnectFinished()));
}
Пример #6
0
void CheckRouterSoapOp::onGetInfo3Finished()
{
    AsyncOp *op = m_op;
    m_op->deleteLater();
    m_op = NULL;

    if (op->isAborted())
    {
        LOG_DEBUG(QString::fromUtf8("CheckRouterSoapOp::onGetInfo3Finished() aborted"));
        return;
    }

    int result = op->result();
    LOG_DEBUG(QString::fromUtf8("CheckRouterSoapOp::onGetInfo3Finished() %1").arg(result));

    if (result != NoError)
    {
        return notifyFinished(UnknownError);
    }

    bool ok;
    int responseCode = op->value("responseCode").toInt(&ok);
    if (!ok || responseCode != 0)
    {
        LOG_DEBUG(QString::fromUtf8("CheckRouterSoapOp::onGetInfo3Finished() response error: %1 %2").arg(responseCode).arg(ok));
        return notifyFinished(result);
    }

    m_values.unite(qvariant_cast<QVariantMap>(op->value("response")));
    setValues(m_values);
    notifyFinished(result);
}
Пример #7
0
void CheckInternetOp::onConnectHostFinished()
{
    AsyncOp *op = m_op;
    m_op->deleteLater();
    m_op = NULL;

    if (isAborted())
    {
        LOG_DEBUG(QString::fromUtf8("connectHost self aborted!"));
        return;
    }

    if (op->isAborted())
    {
        LOG_DEBUG(QString::fromUtf8("connectHost op aborted!"));
        return notifyFinished(AbortedError);
    }

    int result = op->result();
    LOG_DEBUG(QString::fromUtf8("connectHost result: %1").arg(result));
    if (result != NoError)
    {
        return retry();
    }

    notifyFinished(NoError);
}
Пример #8
0
void ChangeRouterWifiPasswordOp::onSetWLANFinished()
{
    AsyncOp *op = m_op;
    m_op->deleteLater();
    m_op = NULL;

    if (isAborted())
    {
        return;
    }

    int result = op->result();
    LOG_DEBUG(QString::fromUtf8("onSetWLANFinished %1").arg(result));
    if (result != NoError)
    {
        return notifyFinished(result);
    }

    QVariant varResponseCode = op->value("responseCode");
    if (!varResponseCode.isValid())
    {
        return notifyFinished(UnknownError);
    }

    bool ok;
    int responseCode = varResponseCode.toInt(&ok);
    if (!ok)
    {
        return notifyFinished(UnknownError);
    }

    if (responseCode != 0)
    {
        return notifyFinished(UnknownError);
    }

    if (m_configFinish)
    {
        m_op = m_bean->m_soapCore->invoke(QLatin1String("DeviceConfig"), QLatin1String("ConfigurationFinished"), QLatin1String("NewStatus"), QLatin1String("ChangesApplied"));
        connect(m_op, SIGNAL(finished()), SLOT(onCommitFinished()));

        connect(&m_timer1, SIGNAL(timeout()), SLOT(onTimeout1()));
        m_timer1.setSingleShot(true);
        m_timer1.start(8000);
    }
    else
    {
        notifyFinished(NoError);
    }
}
Пример #9
0
void ChangeRouterPasswordOp::onGetKeysFinished()
{
    AsyncOp *op = m_op;
    m_op->deleteLater();
    m_op = NULL;

    if (isAborted())
    {
        return;
    }

    int result = op->result();
    if (result != NoError)
    {
        return notifyFinished(result);
    }

    QVariant varResponseCode = op->value("responseCode");
    if (!varResponseCode.isValid())
    {
        return notifyFinished(UnknownError);
    }

    bool ok;
    int responseCode = varResponseCode.toInt(&ok);
    if (!ok)
    {
        return notifyFinished(UnknownError);
    }

    if (responseCode != 0)
    {
        return notifyFinished(UnknownError);
    }

    QVariant varResponse = op->value("response");
    if (!varResponse.isValid())
    {
        return notifyFinished(UnknownError);
    }

    QVariantMap resp = qvariant_cast<QVariantMap>(varResponse);
    m_currentWifiKey = resp.value(QLatin1String("NewWPAPassphrase")).toString();

    m_bean->m_soapCore->setWrappedMode(false);
    m_op = m_bean->m_soapCore->invoke(QLatin1String("LANConfigSecurity"), QLatin1String("GetInfo"));
    connect(m_op, SIGNAL(finished()), SLOT(onGetLanInfoFinished()));
}
void TimerMonotonicityBenchmark::start() {
    mForceStop = false;

    Time start_time = Timer::now();

    uint32 num_inversions = 0;
    Duration inversion_sum = Duration::zero();

    Time tlast = Timer::now();

    for(uint32 ii = 0; ii < ITERATIONS && !mForceStop; ii++) {
        Time tnow = Timer::now();

        if (tnow < tlast) {
            num_inversions++;
            inversion_sum += tlast - tnow;
        }

        tlast = tnow;
    }

    if (mForceStop)
        return;

    Time end_time = Timer::now();
    Duration dur = end_time - start_time;

    SILOG(benchmark,info,
          ITERATIONS << " timer invokations, " << dur << ": "
          << num_inversions << " timer inversions, "
          << float(num_inversions)/float(ITERATIONS)*100.f << "%"
          );

    notifyFinished();
}
Пример #11
0
void WorkerScriptLoader::loadAsynchronously(
    ExecutionContext& executionContext,
    const KURL& url,
    CrossOriginRequestPolicy crossOriginRequestPolicy,
    WebAddressSpace creationAddressSpace,
    std::unique_ptr<WTF::Closure> responseCallback,
    std::unique_ptr<WTF::Closure> finishedCallback) {
  DCHECK(responseCallback || finishedCallback);
  m_responseCallback = std::move(responseCallback);
  m_finishedCallback = std::move(finishedCallback);
  m_url = url;

  ResourceRequest request(createResourceRequest(creationAddressSpace));
  ThreadableLoaderOptions options;
  options.crossOriginRequestPolicy = crossOriginRequestPolicy;

  ResourceLoaderOptions resourceLoaderOptions;
  resourceLoaderOptions.allowCredentials = AllowStoredCredentials;

  // During create, callbacks may happen which could remove the last reference
  // to this object, while some of the callchain assumes that the client and
  // loader wouldn't be deleted within callbacks.
  // (E.g. see crbug.com/524694 for why we can't easily remove this protect)
  RefPtr<WorkerScriptLoader> protect(this);
  m_needToCancel = true;
  m_threadableLoader = ThreadableLoader::create(executionContext, this, options,
                                                resourceLoaderOptions);
  m_threadableLoader->start(request);
  if (m_failed)
    notifyFinished();
}
Пример #12
0
void FetchManager::Loader::didFinishLoading(unsigned long, double)
{
    if (!m_resolver->executionContext() || m_resolver->executionContext()->activeDOMObjectsAreStopped())
        return;

    OwnPtr<BlobData> blobData = BlobData::create();
    String filePath = m_response.downloadedFilePath();
    if (!filePath.isEmpty() && m_downloadedBlobLength) {
        blobData->appendFile(filePath);
        blobData->setContentType(m_response.mimeType());
    }
    FetchResponseData* response = FetchResponseData::create();
    response->setStatus(m_response.httpStatusCode());
    response->setStatusMessage(m_response.httpStatusText());
    HTTPHeaderMap::const_iterator end = m_response.httpHeaderFields().end();
    for (HTTPHeaderMap::const_iterator it = m_response.httpHeaderFields().begin(); it != end; ++it) {
        response->headerList()->append(it->key, it->value);
    }
    response->setBlobDataHandle(BlobDataHandle::create(blobData.release(), m_downloadedBlobLength));
    response->setURL(m_request->url());

    switch (m_request->tainting()) {
    case FetchRequestData::BasicTainting:
        response = response->createBasicFilteredResponse();
        break;
    case FetchRequestData::CORSTainting:
        response = response->createCORSFilteredResponse();
        break;
    case FetchRequestData::OpaqueTainting:
        response = response->createOpaqueFilteredResponse();
        break;
    }
    m_resolver->resolve(Response::create(m_resolver->executionContext(), response));
    notifyFinished();
}
Пример #13
0
void WorkerScriptLoader::didFinishLoading(unsigned long identifier, double) {
  m_needToCancel = false;
  if (!m_failed && m_decoder)
    m_script.append(m_decoder->flush());

  notifyFinished();
}
Пример #14
0
void ChangeRouterPasswordOp::onConfigOutFinished()
{
    m_timer1.stop();

    AsyncOp *op = m_op;
    m_op->deleteLater();
    m_op = NULL;

    if (op->isAborted())
    {
        return;
    }

    if (isAborted())
    {
        return;
    }

    int result = op->result();
    if (result != NoError)
    {
        return notifyFinished(result);
    }

    QVariant varResponseCode = op->value("responseCode");
    if (!varResponseCode.isValid())
    {
        return notifyFinished(UnknownError);
    }

    bool ok;
    int responseCode = varResponseCode.toInt(&ok);
    if (!ok)
    {
        return notifyFinished(UnknownError);
    }

//	if (responseCode != 0) {
//		return notifyFinished(UnknownError);
//	}

//	notifyFinished(NoError);

    updateProfile();
}
Пример #15
0
void ChangeRouterWifiPasswordOp::onTimeout1()
{
    LOG_DEBUG(QString::fromUtf8("ChangeRouterWifiPasswordOp::onTimeout1"));
    if (m_op)
    {
        m_op->abort();
    }
    notifyFinished(NoError);
}
Пример #16
0
void ChangeRouterPasswordOp::onWifiConfigFinished()
{
    AsyncOp *op = m_op;
    m_op->deleteLater();
    m_op = NULL;

    if (isAborted())
    {
        return;
    }

    int result = op->result();
    if (result != NoError)
    {
        return notifyFinished(result);
    }

    QVariant varResponseCode = op->value("responseCode");
    if (!varResponseCode.isValid())
    {
        return notifyFinished(UnknownError);
    }

    bool ok;
    int responseCode = varResponseCode.toInt(&ok);
    if (!ok)
    {
        return notifyFinished(UnknownError);
    }

    if (responseCode != 0)
    {
        return notifyFinished(UnknownError);
    }

    if (!m_adminPassword.isNull())
    {
        startAdminConfig();
    }
    else
    {
        startConfigOut();
    }
}
Пример #17
0
void WorkerScriptLoader::notifyError() {
  m_failed = true;
  // notifyError() could be called before ThreadableLoader::create() returns
  // e.g. from didFail(), and in that case m_threadableLoader is not yet set
  // (i.e. still null).
  // Since the callback invocation in notifyFinished() potentially delete
  // |this| object, the callback invocation should be postponed until the
  // create() call returns. See loadAsynchronously() for the postponed call.
  if (m_threadableLoader)
    notifyFinished();
}
void WorkerScriptLoader::didFinishLoading(unsigned long identifier)
{
    if (m_failed)
        return;

    if (m_decoder)
        m_script += m_decoder->flush();

    m_identifier = identifier;
    notifyFinished();
}
Пример #19
0
void FetchManager::Loader::didFinishLoading(unsigned long, double)
{
    ASSERT(!m_failed);
    m_finished = true;

    if (document() && document()->frame() && document()->frame()->page()
        && m_responseHttpStatusCode >= 200 && m_responseHttpStatusCode < 300) {
        document()->frame()->page()->chromeClient().ajaxSucceeded(document()->frame());
    }

    notifyFinished();
}
Пример #20
0
void FetchManager::Loader::failed()
{
    if (m_failed)
        return;
    if (!m_resolver->executionContext() || m_resolver->executionContext()->activeDOMObjectsAreStopped())
        return;
    m_failed = true;
    ScriptState* state = m_resolver->scriptState();
    ScriptState::Scope scope(state);
    m_resolver->reject(V8ThrowException::createTypeError("Failed to fetch", state->isolate()));
    notifyFinished();
}
Пример #21
0
void ChangeRouterPasswordOp::onReconnectFinished()
{
    AsyncOp *op = m_op;
    m_op->deleteLater();
    m_op = NULL;

    if (op->isAborted())
    {
        return;
    }

    int result = op->result();
    LOG_DEBUG(QString::fromUtf8("reconnectRouter result: %1").arg(result));

    if (result != NoError)
    {
        notifyFinished(result);
    }

    notifyFinished(NoError);
}
Пример #22
0
void ChangeRouterWifiPasswordOp::onConfigStarted()
{
    AsyncOp *op = m_op;
    m_op->deleteLater();
    m_op = NULL;

    if (isAborted())
    {
        return;
    }

    int result = op->result();
    LOG_DEBUG(QString::fromUtf8("onConfigStarted %1").arg(result));
    if (result != NoError)
    {
        return notifyFinished(result);
    }

    QVariant varResponseCode = op->value("responseCode");
    if (!varResponseCode.isValid())
    {
        return notifyFinished(UnknownError);
    }

    bool ok;
    int responseCode = varResponseCode.toInt(&ok);
    if (!ok)
    {
        return notifyFinished(UnknownError);
    }

    if (responseCode != 0)
    {
        return notifyFinished(UnknownError);
    }

    m_op = m_bean->m_soapCore->invoke(NS_WLANConfiguration, QLatin1String("GetInfo"));
    connect(m_op, SIGNAL(finished()), SLOT(onGetInfoFinished()));
}
Пример #23
0
void RestartRouterOp::onConfigStarted()
{
    AsyncOp *op = m_op;
    m_op->deleteLater();
    m_op = NULL;

    if (isAborted())
    {
        return;
    }

    int result = op->result();
    LOG_DEBUG(QString::fromUtf8("onConfigStarted %1").arg(result));
    if (result != NoError)
    {
        return notifyFinished(result);
    }

    QVariant varResponseCode = op->value("responseCode");
    if (!varResponseCode.isValid())
    {
        return notifyFinished(UnknownError);
    }

    bool ok;
    int responseCode = varResponseCode.toInt(&ok);
    if (!ok)
    {
        return notifyFinished(UnknownError);
    }

    if (responseCode != 0)
    {
        return notifyFinished(UnknownError);
    }

    m_op = m_bean->m_soapCore->invoke(QLatin1String("DeviceConfig"), QLatin1String("ConfigurationFinished"), QLatin1String("NewStatus"), QLatin1String("RebootRequired"));
    connect(m_op, SIGNAL(finished()), SLOT(onConfigFinished()));
}
Пример #24
0
void WorkerScriptLoader::didFinishLoading(unsigned long identifier, double)
{
    if (m_failed) {
        notifyError();
        return;
    }

    if (m_decoder)
        m_script.append(m_decoder->flush());

    m_identifier = identifier;
    notifyFinished();
}
Пример #25
0
void EnsureSoapOp::onSoapFinished()
{
    AsyncOp *op = m_op;
    m_op->deleteLater();
    m_op = NULL;

    int result = op->result();
    if (result != NoError)
    {
        if (++m_currentCount <= m_retryCount)
        {
            LOG_DEBUG(QString::fromUtf8("EnsureSoap: failed, retry %1").arg(m_currentCount));
            m_timer1.start(m_delay);
            return;
        }
        LOG_DEBUG(QString::fromUtf8("EnsureSoap: no more chance!"));
        return notifyFinished(result);
    }

    LOG_DEBUG(QString::fromUtf8("EnsureSoap: OK!"));
    notifyFinished(NoError);
}
Пример #26
0
void CheckInternetOp::retry()
{
    if (++m_retryCount <= m_maxRetryCount)
    {
        LOG_DEBUG(QString::fromUtf8("retry %1/%2 after delay %3").arg(m_retryCount).arg(m_maxRetryCount).arg(m_delay));
        m_timer1.start();
    }
    else
    {
        LOG_DEBUG(QString::fromUtf8("no more retry chance!"));
        notifyFinished(UnknownError);
    }
}
Пример #27
0
void RestartRouterOp::onConfigFinished()
{
    AsyncOp *op = m_op;
    m_op->deleteLater();
    m_op = NULL;

    if (isAborted())
    {
        return;
    }

    int result = op->result();
    LOG_DEBUG(QString::fromUtf8("onConfigFinished %1").arg(result));
    if (result != NoError)
    {
        return notifyFinished(result);
    }

    QVariant varResponseCode = op->value("responseCode");
    if (!varResponseCode.isValid())
    {
        return notifyFinished(UnknownError);
    }

    bool ok;
    int responseCode = varResponseCode.toInt(&ok);
    if (!ok)
    {
        return notifyFinished(UnknownError);
    }

    if (responseCode != 0)
    {
        return notifyFinished(UnknownError);
    }

    notifyFinished(NoError);
}
Пример #28
0
void ChangeRouterPasswordOp::updateProfile()
{
    if (!m_wifiPassword.isNull())
    {
        QString profileName(m_infoResp.value(QLatin1String("NewSSID")).toString());
        LOG_DEBUG(QString::fromUtf8("Now trying to update profile %1").arg(profileName));
        m_op = m_bean->m_system->createWlanProfile(profileName, m_wifiPassword);
        connect(m_op, SIGNAL(finished()), SLOT(onCreateProfileFinished()));
    }
    else
    {
        notifyFinished(NoError);
    }
}
Пример #29
0
void CheckRouterSoapOp::onGetInfo2Finished()
{
    AsyncOp *op = m_op;
    m_op->deleteLater();
    m_op = NULL;

    if (op->isAborted())
    {
        LOG_DEBUG(QString::fromUtf8("CheckRouterSoapOp::onGetInfo2Finished() aborted"));
        return;
    }

    int result = op->result();
    LOG_DEBUG(QString::fromUtf8("CheckRouterSoapOp::onGetInfo2Finished() %1").arg(result));

    if (result != NoError)
    {
        return notifyFinished(result);
    }

    bool ok;
    int responseCode = op->value("responseCode").toInt(&ok);
    if (!ok || responseCode != 0)
    {
        LOG_DEBUG(QString::fromUtf8("CheckRouterSoapOp::onGetInfo2Finished() response error: %1 %2").arg(responseCode).arg(ok));
        return notifyFinished(UnknownError);
    }

    m_values.unite(qvariant_cast<QVariantMap>(op->value("response")));

    SoapCore *soapCore = m_bean->m_soapCore;
    QString host = soapCore->host();
    soapCore->setHost(m_host);
    m_op = soapCore->invoke(QLatin1String("DeviceInfo"), QLatin1String("GetSysUpTime"));
    soapCore->setHost(host);
    connect(m_op, SIGNAL(finished()), SLOT(onGetInfo3Finished()));
}
Пример #30
0
void ChangeRouterWifiPasswordOp::onCommitFinished()
{
    AsyncOp *op = m_op;
    m_op->deleteLater();
    m_op = NULL;

    if (isAborted())
    {
        return;
    }

    LOG_DEBUG(QString::fromUtf8("onCommitFinished %1").arg(op->result()));

    notifyFinished(NoError);
}