18e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project/* 28e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Copyright (C) 2004, 2006 Apple Computer, Inc. All rights reserved. 38e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Copyright (C) 2005, 2006 Michael Emmel mike.emmel@gmail.com 48e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * All rights reserved. 58e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 68e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * Redistribution and use in source and binary forms, with or without 78e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * modification, are permitted provided that the following conditions 88e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * are met: 98e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 1. Redistributions of source code must retain the above copyright 108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * notice, this list of conditions and the following disclaimer. 118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 2. Redistributions in binary form must reproduce the above copyright 128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * notice, this list of conditions and the following disclaimer in the 138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * documentation and/or other materials provided with the distribution. 148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * 158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY 168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR 198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project */ 278e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 288e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "config.h" 298e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "ResourceHandle.h" 308e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 315abb8606fa57c3ebfc8b3c3dbc3fa4a25d2ae306Iain Merrick#include "CachedResourceLoader.h" 328e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "NotImplemented.h" 338e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "ResourceHandleInternal.h" 348e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include "ResourceHandleManager.h" 35dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#include "SharedBuffer.h" 368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 3781bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch#if PLATFORM(WIN) && USE(CF) 38dcc8cf2e65d1aa555cce12431a16547e66b469eeSteve Block#include <wtf/PassRefPtr.h> 398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#include <wtf/RetainPtr.h> 408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 418e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectnamespace WebCore { 438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectclass WebCoreSynchronousLoader : public ResourceHandleClient { 458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectpublic: 468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project WebCoreSynchronousLoader(); 478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void didReceiveResponse(ResourceHandle*, const ResourceResponse&); 492daae5fd11344eaa88a0d92b0f6d65f8d2255c00Ben Murdoch virtual void didReceiveData(ResourceHandle*, const char*, int, int encodedDataLength); 5068513a70bcd92384395513322f1b801e7bf9c729Steve Block virtual void didFinishLoading(ResourceHandle*, double /*finishTime*/); 518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project virtual void didFail(ResourceHandle*, const ResourceError&); 528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project ResourceResponse resourceResponse() const { return m_response; } 548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project ResourceError resourceError() const { return m_error; } 558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Vector<char> data() const { return m_data; } 568e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectprivate: 588e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project ResourceResponse m_response; 598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project ResourceError m_error; 608e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project Vector<char> m_data; 618e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project}; 628e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectWebCoreSynchronousLoader::WebCoreSynchronousLoader() 648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectvoid WebCoreSynchronousLoader::didReceiveResponse(ResourceHandle*, const ResourceResponse& response) 688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project m_response = response; 708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectvoid WebCoreSynchronousLoader::didReceiveData(ResourceHandle*, const char* data, int length, int) 738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 748e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project m_data.append(data, length); 758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 7768513a70bcd92384395513322f1b801e7bf9c729Steve Blockvoid WebCoreSynchronousLoader::didFinishLoading(ResourceHandle*, double) 788e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectvoid WebCoreSynchronousLoader::didFail(ResourceHandle*, const ResourceError& error) 828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project m_error = error; 848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectResourceHandleInternal::~ResourceHandleInternal() 878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 888a0914b749bbe7da7768e07a7db5c6d4bb09472bSteve Block fastFree(m_url); 898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (m_customHeaders) 908e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project curl_slist_free_all(m_customHeaders); 918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 938e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectResourceHandle::~ResourceHandle() 948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project cancel(); 968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 978e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 9868513a70bcd92384395513322f1b801e7bf9c729Steve Blockbool ResourceHandle::start(NetworkingContext* context) 998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 100231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block // The frame could be null if the ResourceHandle is not associated to any 101231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block // Frame, e.g. if we are downloading a file. 102231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block // If the frame is not null but the page is null this must be an attempted 10368513a70bcd92384395513322f1b801e7bf9c729Steve Block // load from an unload handler, so let's just block it. 10468513a70bcd92384395513322f1b801e7bf9c729Steve Block // If both the frame and the page are not null the context is valid. 10568513a70bcd92384395513322f1b801e7bf9c729Steve Block if (context && !context->isValid()) 106231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block return false; 107231d4e3152a9c27a73b6ac7badbe6be673aa3ddfSteve Block 1088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project ResourceHandleManager::sharedInstance()->add(this); 1098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return true; 1108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 1118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectvoid ResourceHandle::cancel() 1138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 1148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project ResourceHandleManager::sharedInstance()->cancel(this); 1158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 1168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source ProjectPassRefPtr<SharedBuffer> ResourceHandle::bufferedData() 1188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 1198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return 0; 1208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 1218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectbool ResourceHandle::supportsBufferedData() 1238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 1248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return false; 1258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 1268e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 12781bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch#if PLATFORM(WIN) && USE(CF) 128a94275402997c11dd2e778633dacf4b7e630a35dBen Murdochstatic HashSet<String>& allowsAnyHTTPSCertificateHosts() 129a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch{ 130a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch static HashSet<String> hosts; 131a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 132a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch return hosts; 133a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch} 134a94275402997c11dd2e778633dacf4b7e630a35dBen Murdoch 1358e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectvoid ResourceHandle::setHostAllowsAnyHTTPSCertificate(const String& host) 1368e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 1378e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project allowsAnyHTTPSCertificateHosts().add(host.lower()); 1388e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 1398e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 1408e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 14181bc750723a18f21cd17d1b173cd2a4dda9cea6eBen Murdoch#if PLATFORM(WIN) && USE(CF) 1428e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project// FIXME: The CFDataRef will need to be something else when 1438e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project// building without 1448e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectstatic HashMap<String, RetainPtr<CFDataRef> >& clientCerts() 1458e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 1468e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project static HashMap<String, RetainPtr<CFDataRef> > certs; 1478e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return certs; 1488e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 1498e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1508e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectvoid ResourceHandle::setClientCertificate(const String& host, CFDataRef cert) 1518e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 1528e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project clientCerts().set(host.lower(), cert); 1538e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 1548e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 1558e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 15606ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsenvoid ResourceHandle::platformSetDefersLoading(bool defers) 1578e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 158d0825bca7fe65beaee391d30da42e937db621564Steve Block#if LIBCURL_VERSION_NUM > 0x071200 1598e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (!d->m_handle) 16006ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen return; 16106ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen 16206ea8e899e48f1f2f396b70e63fae369f2f23232Kristian Monsen if (defers) { 1638e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CURLcode error = curl_easy_pause(d->m_handle, CURLPAUSE_ALL); 1648e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // If we could not defer the handle, so don't do it. 1658e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (error != CURLE_OK) 1668e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return; 1678e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } else { 1688e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project CURLcode error = curl_easy_pause(d->m_handle, CURLPAUSE_CONT); 1698e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project if (error != CURLE_OK) 1708e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project // Restarting the handle has failed so just cancel it. 1718e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project cancel(); 1728e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project } 1738e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#else 174d0825bca7fe65beaee391d30da42e937db621564Steve Block LOG_ERROR("Deferred loading is implemented if libcURL version is above 7.18.0"); 1758e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project#endif 1768e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 1778e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1780bf48ef3be53ddaa52bbead65dfd75bf90e7a2b5Ben Murdochbool ResourceHandle::willLoadFromCache(ResourceRequest&, Frame*) 1798e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 1808e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project notImplemented(); 1818e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return false; 1828e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 1838e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1848e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectbool ResourceHandle::loadsBlocked() 1858e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 1868e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project notImplemented(); 1878e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project return false; 1888e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 1898e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 19068513a70bcd92384395513322f1b801e7bf9c729Steve Blockvoid ResourceHandle::loadResourceSynchronously(NetworkingContext*, const ResourceRequest& request, StoredCredentials storedCredentials, ResourceError& error, ResourceResponse& response, Vector<char>& data) 1918e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 1928e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project WebCoreSynchronousLoader syncLoader; 193e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke RefPtr<ResourceHandle> handle = adoptRef(new ResourceHandle(request, &syncLoader, true, false)); 1948e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1958e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project ResourceHandleManager* manager = ResourceHandleManager::sharedInstance(); 1968e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 197e458d70a0d18538346f41b503114c9ebe6b2ce12Leon Clarke manager->dispatchSynchronousJob(handle.get()); 1988e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 1998e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project error = syncLoader.resourceError(); 2008e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project data = syncLoader.data(); 2018e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project response = syncLoader.resourceResponse(); 2028e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 2038e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2048e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project//stubs needed for windows version 2058e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectvoid ResourceHandle::didReceiveAuthenticationChallenge(const AuthenticationChallenge&) 2068e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 2078e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project notImplemented(); 2088e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 2098e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2108e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectvoid ResourceHandle::receivedCredential(const AuthenticationChallenge&, const Credential&) 2118e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 2128e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project notImplemented(); 2138e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 2148e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2158e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectvoid ResourceHandle::receivedRequestToContinueWithoutCredential(const AuthenticationChallenge&) 2168e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 2178e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project notImplemented(); 2188e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 2198e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2208e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Projectvoid ResourceHandle::receivedCancellation(const AuthenticationChallenge&) 2218e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project{ 2228e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project notImplemented(); 2238e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} 2248e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project 2258e35f3cfc7fba1d1c829dc557ebad6409cbe16a2The Android Open Source Project} // namespace WebCore 226