void ResourceHandle::loadResourceSynchronously(const ResourceRequest& request, StoredCredentials /*storedCredentials*/, ResourceError& error, ResourceResponse& response, Vector<char>& data, Frame* frame) { WebCoreSynchronousLoader syncLoader; ResourceHandle handle(request, &syncLoader, true, false, true); #if QT_VERSION < 0x040400 if (!QWebNetworkManager::self()->add(&handle, QWebNetworkInterface::defaultInterface(), QWebNetworkManager::SynchronousJob)) { // FIXME Create a sane ResourceError error = ResourceError(String(), -1, String(), String()); return; } #else ResourceHandleInternal *d = handle.getInternal(); if (!(d->m_user.isEmpty() || d->m_pass.isEmpty())) { // If credentials were specified for this request, add them to the url, // so that they will be passed to QNetworkRequest. KURL urlWithCredentials(d->m_request.url()); urlWithCredentials.setUser(d->m_user); urlWithCredentials.setPass(d->m_pass); d->m_request.setURL(urlWithCredentials); } d->m_frame = static_cast<FrameLoaderClientQt*>(frame->loader()->client())->webFrame(); d->m_job = new QNetworkReplyHandler(&handle, QNetworkReplyHandler::LoadNormal); #endif syncLoader.waitForCompletion(); error = syncLoader.resourceError(); data = syncLoader.data(); response = syncLoader.resourceResponse(); }
void ResourceHandle::loadResourceSynchronously(NetworkingContext*, const ResourceRequest& request, StoredCredentials storedCredentials, ResourceError& error, ResourceResponse& response, Vector<char>& data) { WebCoreSynchronousLoader syncLoader; RefPtr<ResourceHandle> handle = adoptRef(new ResourceHandle(request, &syncLoader, true, false)); ResourceHandleManager* manager = ResourceHandleManager::sharedInstance(); manager->dispatchSynchronousJob(handle.get()); error = syncLoader.resourceError(); data = syncLoader.data(); response = syncLoader.resourceResponse(); }
void ResourceHandle::loadResourceSynchronously(const ResourceRequest& request, StoredCredentials storedCredentials, ResourceError& error, ResourceResponse& response, Vector<char>& data, Frame*) { WebCoreSynchronousLoader syncLoader; ResourceHandle handle(request, &syncLoader, true, false, true); ResourceHandleManager* manager = ResourceHandleManager::sharedInstance(); manager->dispatchSynchronousJob(&handle); error = syncLoader.resourceError(); data = syncLoader.data(); response = syncLoader.resourceResponse(); }
void ResourceHandle::platformLoadResourceSynchronously(NetworkingContext* context, const ResourceRequest& request, StoredCredentials, ResourceError& error, ResourceResponse& response, Vector<char>& data) { if (!context || !context->isValid()) { ASSERT(false && "loadResourceSynchronously called with invalid networking context"); return; } // FIXME: clean up use of Frame now that we have NetworkingContext (see RIM Bug #1515) Frame* frame = static_cast<FrameNetworkingContextBlackBerry*>(context)->frame(); if (!frame || !frame->loader() || !frame->loader()->client() || !frame->page()) { ASSERT(false && "loadResourceSynchronously called without a frame or frame client"); return; } PageGroupLoadDeferrer deferrer(frame->page(), true); TimerBase::fireTimersInNestedEventLoop(); int playerId = static_cast<FrameLoaderClientBlackBerry*>(frame->loader()->client())->playerId(); WebCoreSynchronousLoader syncLoader; bool defersLoading = false; bool shouldContentSniff = false; RefPtr<ResourceHandle> handle = adoptRef(new ResourceHandle(context, request, &syncLoader, defersLoading, shouldContentSniff)); int status = NetworkManager::instance()->startJob(playerId, handle, frame, defersLoading); if (status != BlackBerry::Platform::FilterStream::StatusSuccess) { handle->cancel(); error = ResourceError(ResourceError::platformErrorDomain, status, request.url().string(), BlackBerry::Platform::String::emptyString()); return; } const double syncLoadTimeOut = 60; // seconds double startTime = currentTime(); EventLoop loop; while (!syncLoader.isDone() && !loop.ended()) { loop.cycle(); if (currentTime() - startTime > syncLoadTimeOut) { handle->cancel(); error = ResourceError(ResourceError::platformErrorDomain, BlackBerry::Platform::FilterStream::StatusNetworkError, request.url().string(), "Time out"); return; } } error = syncLoader.resourceError(); data = syncLoader.data(); response = syncLoader.resourceResponse(); }
void ResourceHandle::loadResourceSynchronously(NetworkingContext* context, const ResourceRequest& request, StoredCredentials /*storedCredentials*/, ResourceError& error, ResourceResponse& response, Vector<char>& data) { WebCoreSynchronousLoader syncLoader; RefPtr<ResourceHandle> handle = adoptRef(new ResourceHandle(request, &syncLoader, true, false)); ResourceHandleInternal* d = handle->getInternal(); if (!d->m_user.isEmpty() || !d->m_pass.isEmpty()) { // If credentials were specified for this request, add them to the url, // so that they will be passed to QNetworkRequest. KURL urlWithCredentials(d->m_firstRequest.url()); urlWithCredentials.setUser(d->m_user); urlWithCredentials.setPass(d->m_pass); d->m_firstRequest.setURL(urlWithCredentials); } d->m_context = context; d->m_job = new QNetworkReplyHandler(handle.get(), QNetworkReplyHandler::SynchronousLoad); QNetworkReply* reply = d->m_job->reply(); // When using synchronous calls, we are finished when reaching this point. if (reply->isFinished()) { syncLoader.setReplyFinished(true); d->m_job->forwardData(); d->m_job->finish(); } else syncLoader.waitForCompletion(); error = syncLoader.resourceError(); data = syncLoader.data(); response = syncLoader.resourceResponse(); }
void ResourceHandle::loadResourceSynchronously(const ResourceRequest& request, ResourceError& error, ResourceResponse& response, Vector<char>& data, Frame* frame) { WebCoreSynchronousLoader syncLoader; ResourceHandle handle(request, &syncLoader, true, false, true); #if QT_VERSION < 0x040400 if (!QWebNetworkManager::self()->add(&handle, QWebNetworkInterface::defaultInterface(), QWebNetworkManager::SynchronousJob)) { // FIXME Create a sane ResourceError error = ResourceError(String(), -1, String(), String()); return; } #else ResourceHandleInternal *d = handle.getInternal(); d->m_frame = static_cast<FrameLoaderClientQt*>(frame->loader()->client())->webFrame(); d->m_job = new QNetworkReplyHandler(&handle); #endif syncLoader.waitForCompletion(); error = syncLoader.resourceError(); data = syncLoader.data(); response = syncLoader.resourceResponse(); }
void ResourceHandle::loadResourceSynchronously(const ResourceRequest& request, StoredCredentials /*storedCredentials*/, ResourceError& error, ResourceResponse& response, Vector<char>& data, Frame* frame) { WebCoreSynchronousLoader syncLoader; ResourceHandle handle(request, &syncLoader, true, false); ResourceHandleInternal *d = handle.getInternal(); if (!(d->m_user.isEmpty() || d->m_pass.isEmpty())) { // If credentials were specified for this request, add them to the url, // so that they will be passed to QNetworkRequest. KURL urlWithCredentials(d->m_request.url()); urlWithCredentials.setUser(d->m_user); urlWithCredentials.setPass(d->m_pass); d->m_request.setURL(urlWithCredentials); } d->m_frame = static_cast<FrameLoaderClientQt*>(frame->loader()->client())->webFrame(); d->m_job = new QNetworkReplyHandler(&handle, QNetworkReplyHandler::LoadNormal); syncLoader.waitForCompletion(); error = syncLoader.resourceError(); data = syncLoader.data(); response = syncLoader.resourceResponse(); }
void ResourceHandle::loadResourceSynchronously(const ResourceRequest& request, StoredCredentials, ResourceError& error, ResourceResponse& response, Vector<char>& data, Frame* frame) { if (!frame || !frame->loader() || !frame->loader()->client() || !frame->page()) { ASSERT(false && "loadResourceSynchronously called without a frame or frame client"); return; } PageGroupLoadDeferrer deferrer(frame->page(), true); int playerId = static_cast<FrameLoaderClientBlackBerry*>(frame->loader()->client())->playerId(); WebCoreSynchronousLoader syncLoader; bool defersLoading = false; bool shouldContentSniff = false; RefPtr<ResourceHandle> handle = adoptRef(new ResourceHandle(request, &syncLoader, defersLoading, shouldContentSniff)); NetworkManager::instance()->startJob(playerId, handle, *frame, defersLoading); static const double s_syncLoadTimeOut = 60.0; // seconds double startTime = currentTime(); EventLoop loop; while (!syncLoader.isDone() && !loop.ended()) { loop.cycle(); if (currentTime() - startTime > s_syncLoadTimeOut) { handle->cancel(); error = ResourceError(ResourceError::platformErrorDomain, Olympia::Platform::IStream::StatusNetworkError, request.url().string(), "Time out"); return; } } error = syncLoader.resourceError(); data = syncLoader.data(); response = syncLoader.resourceResponse(); }