diff options
author | Steve Block <steveblock@google.com> | 2011-06-08 08:26:01 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2011-06-08 08:26:01 -0700 |
commit | 3742ac093d35d923c81693096ab6671e9b147700 (patch) | |
tree | c2add9100f789dad45ef1ec5328bddde02c47a4c /Source/WebKit2/WebProcess/Downloads/cf | |
parent | 901401d90459bc22580842455d4588b9a697514d (diff) | |
parent | e5926f4a0d6adc9ad4a75824129f117181953560 (diff) | |
download | external_webkit-3742ac093d35d923c81693096ab6671e9b147700.zip external_webkit-3742ac093d35d923c81693096ab6671e9b147700.tar.gz external_webkit-3742ac093d35d923c81693096ab6671e9b147700.tar.bz2 |
Merge changes I55c6d71a,Ifb3277d4,Ia1b847a2,I7ba9cf3f,Ida2b2a8a,I1280ec90,I72f818d5,I2e3b588b,I9a4e6289,Ia724c78b,Icd8612c8,Ie31b15d7,Ie125edae,I77941a88,I89dae78b,I3516e5ca,I1a4c17b5,I2c4ecc1a,I9c8e6537,Ifac13115,Ie1f80e09,Ia541ed77,I60ce9d78
* changes:
Merge WebKit at r82507: Update ThirdPartyProject.prop
Merge WebKit at r82507: Cherry-pick change r88166 to add INSPECTOR guards to ScriptProfiler
Merge WebKit at r82507: Work around a V8 bug
Merge WebKit at r82507: JNIType renamed to JavaType
Merge WebKit at r82507: IconDatabaseClient interface expanded
Merge WebKit at r82507: Don't use new loss-free code path in HTMLCanvasElement::toDataURL()
Merge WebKit at r82507: IcondDatabaseBase::iconForPageURL() renamed
Merge WebKit at r82507: IconDatabaseBase::Open() signature changed
Merge WebKit at r82507: Node::isContentEditable() renamed
Merge WebKit at r82507: Use icon database through IconDatabaseBase
Merge WebKit at r82507: toInputElement() is now a member of Node
Merge WebKit at r82507: FrameLoaderClient::objectContentType() signature changed
Merge WebKit at r82507: StringImpl::computeHash() removed
Merge WebKit at r82507: Stub out FontPlatformData::setOrientation()
Merge WebKit at r82507: Path::strokeBoundingRect() is now const
Merge WebKit at r82507: Add missing UnusedParam.h include in ApplicationCacheGroup.cpp
Merge WebKit at r82507: Continue to use Android's version of FontPlatformData.h
Merge WebKit at r82507: Update signature of FontCustomPlatformData::fontPlatformData()
Merge WebKit at r82507: Fix conflicts due to JNI refactoring
Merge WebKit at r82507: Fix conflicts due to new StorageTracker
Merge WebKit at r82507: Fix conflicts
Merge WebKit at r82507: Fix makefiles
Merge WebKit at r82507: Initial merge by git
Diffstat (limited to 'Source/WebKit2/WebProcess/Downloads/cf')
-rw-r--r-- | Source/WebKit2/WebProcess/Downloads/cf/DownloadCFNet.cpp | 209 | ||||
-rw-r--r-- | Source/WebKit2/WebProcess/Downloads/cf/win/DownloadCFWin.cpp (renamed from Source/WebKit2/WebProcess/Downloads/cf/win/DownloadCFNetWin.cpp) | 0 |
2 files changed, 0 insertions, 209 deletions
diff --git a/Source/WebKit2/WebProcess/Downloads/cf/DownloadCFNet.cpp b/Source/WebKit2/WebProcess/Downloads/cf/DownloadCFNet.cpp deleted file mode 100644 index 3215039..0000000 --- a/Source/WebKit2/WebProcess/Downloads/cf/DownloadCFNet.cpp +++ /dev/null @@ -1,209 +0,0 @@ -/* - * Copyright (C) 2010, 2011 Apple Inc. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, - * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS - * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF - * THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include "config.h" -#include "Download.h" - -#include "DataReference.h" - -#pragma warning(push, 0) -#include <WebCore/DownloadBundle.h> -#include <WebCore/LoaderRunLoopCF.h> -#include <WebCore/NotImplemented.h> -#include <WebCore/ResourceError.h> -#include <WebCore/ResourceHandle.h> -#include <WebCore/ResourceResponse.h> -#pragma warning(pop) - -using namespace WebCore; - -namespace WebKit { - -// CFURLDownload Callbacks ---------------------------------------------------------------- -static void didStartCallback(CFURLDownloadRef download, const void* clientInfo); -static CFURLRequestRef willSendRequestCallback(CFURLDownloadRef download, CFURLRequestRef request, CFURLResponseRef redirectionResponse, const void* clientInfo); -static void didReceiveAuthenticationChallengeCallback(CFURLDownloadRef download, CFURLAuthChallengeRef challenge, const void* clientInfo); -static void didReceiveResponseCallback(CFURLDownloadRef download, CFURLResponseRef response, const void* clientInfo); -static void willResumeWithResponseCallback(CFURLDownloadRef download, CFURLResponseRef response, UInt64 startingByte, const void* clientInfo); -static void didReceiveDataCallback(CFURLDownloadRef download, CFIndex length, const void* clientInfo); -static Boolean shouldDecodeDataOfMIMETypeCallback(CFURLDownloadRef download, CFStringRef encodingType, const void* clientInfo); -static void decideDestinationWithSuggestedObjectNameCallback(CFURLDownloadRef download, CFStringRef objectName, const void* clientInfo); -static void didCreateDestinationCallback(CFURLDownloadRef download, CFURLRef path, const void* clientInfo); -static void didFinishCallback(CFURLDownloadRef download, const void* clientInfo); -static void didFailCallback(CFURLDownloadRef download, CFErrorRef error, const void* clientInfo); - -void Download::start(WebPage*) -{ - ASSERT(!m_download); - - CFURLRequestRef cfRequest = m_request.cfURLRequest(); - - CFURLDownloadClient client = {0, this, 0, 0, 0, didStartCallback, willSendRequestCallback, didReceiveAuthenticationChallengeCallback, - didReceiveResponseCallback, willResumeWithResponseCallback, didReceiveDataCallback, shouldDecodeDataOfMIMETypeCallback, - decideDestinationWithSuggestedObjectNameCallback, didCreateDestinationCallback, didFinishCallback, didFailCallback}; - m_download.adoptCF(CFURLDownloadCreate(0, cfRequest, &client)); - - // FIXME: Allow this to be changed by the client. - CFURLDownloadSetDeletesUponFailure(m_download.get(), false); - - CFURLDownloadScheduleWithCurrentMessageQueue(m_download.get()); - CFURLDownloadScheduleDownloadWithRunLoop(m_download.get(), loaderRunLoop(), kCFRunLoopDefaultMode); -} - -void Download::startWithHandle(WebPage*, ResourceHandle* handle, const ResourceRequest& initialRequest, const ResourceResponse& response) -{ - ASSERT(!m_download); - - CFURLConnectionRef connection = handle->connection(); - if (!connection) - return; - - CFURLDownloadClient client = {0, this, 0, 0, 0, didStartCallback, willSendRequestCallback, didReceiveAuthenticationChallengeCallback, - didReceiveResponseCallback, willResumeWithResponseCallback, didReceiveDataCallback, shouldDecodeDataOfMIMETypeCallback, - decideDestinationWithSuggestedObjectNameCallback, didCreateDestinationCallback, didFinishCallback, didFailCallback}; - - m_download.adoptCF(CFURLDownloadCreateAndStartWithLoadingConnection(0, connection, initialRequest.cfURLRequest(), response.cfURLResponse(), &client)); - - // It is possible for CFURLDownloadCreateAndStartWithLoadingConnection() to fail if the passed in CFURLConnection is not in a "downloadable state" - // However, we should never hit that case - if (!m_download) - ASSERT_NOT_REACHED(); - - // The CFURLDownload either starts successfully and retains the CFURLConnection, - // or it fails to creating and we have a now-useless connection with a dangling ref. - // Either way, we need to release the connection to balance out ref counts - handle->releaseConnectionForDownload(); - CFRelease(connection); -} - -void Download::cancel() -{ - ASSERT(m_download); - if (!m_download) - return; - - CFURLDownloadSetDeletesUponFailure(m_download.get(), false); - CFURLDownloadCancel(m_download.get()); - - RetainPtr<CFDataRef> resumeData(AdoptCF, CFURLDownloadCopyResumeData(m_download.get())); - if (resumeData) - DownloadBundle::appendResumeData(resumeData.get(), m_bundlePath); - - didCancel(CoreIPC::DataReference()); -} - -void Download::platformInvalidate() -{ - m_download = nullptr; -} - -void Download::didDecideDestination(const String& destination, bool allowOverwrite) -{ - ASSERT(!destination.isEmpty()); - if (destination.isEmpty()) - return; - - m_allowOverwrite = allowOverwrite; - m_destination = destination; - m_bundlePath = destination + DownloadBundle::fileExtension(); - - RetainPtr<CFStringRef> bundlePath(AdoptCF, CFStringCreateWithCharactersNoCopy(0, reinterpret_cast<const UniChar*>(m_bundlePath.characters()), m_bundlePath.length(), kCFAllocatorNull)); - RetainPtr<CFURLRef> bundlePathURL(AdoptCF, CFURLCreateWithFileSystemPath(0, bundlePath.get(), kCFURLWindowsPathStyle, false)); - CFURLDownloadSetDestination(m_download.get(), bundlePathURL.get(), allowOverwrite); -} - -// CFURLDownload Callbacks ---------------------------------------------------------------- -static Download* downloadFromClientInfo(const void* clientInfo) -{ - return reinterpret_cast<Download*>(const_cast<void*>(clientInfo)); -} - -void didStartCallback(CFURLDownloadRef, const void* clientInfo) -{ - downloadFromClientInfo(clientInfo)->didStart(); -} - -CFURLRequestRef willSendRequestCallback(CFURLDownloadRef, CFURLRequestRef request, CFURLResponseRef redirectionResponse, const void* clientInfo) -{ - // CFNetwork requires us to return a retained request. - CFRetain(request); - return request; -} - -void didReceiveAuthenticationChallengeCallback(CFURLDownloadRef, CFURLAuthChallengeRef challenge, const void* clientInfo) -{ - // FIXME: implement. - notImplemented(); -} - -void didReceiveResponseCallback(CFURLDownloadRef, CFURLResponseRef response, const void* clientInfo) -{ - downloadFromClientInfo(clientInfo)->didReceiveResponse(ResourceResponse(response)); -} - -void willResumeWithResponseCallback(CFURLDownloadRef, CFURLResponseRef response, UInt64 startingByte, const void* clientInfo) -{ - // FIXME: implement. - notImplemented(); -} - -void didReceiveDataCallback(CFURLDownloadRef, CFIndex length, const void* clientInfo) -{ - downloadFromClientInfo(clientInfo)->didReceiveData(length); -} - -Boolean shouldDecodeDataOfMIMETypeCallback(CFURLDownloadRef, CFStringRef encodingType, const void* clientInfo) -{ - return downloadFromClientInfo(clientInfo)->shouldDecodeSourceDataOfMIMEType(encodingType); -} - -void decideDestinationWithSuggestedObjectNameCallback(CFURLDownloadRef, CFStringRef objectName, const void* clientInfo) -{ - Download* download = downloadFromClientInfo(clientInfo); - bool allowOverwrite; - download->decideDestinationWithSuggestedFilename(objectName, allowOverwrite); -} - -void didCreateDestinationCallback(CFURLDownloadRef, CFURLRef, const void* clientInfo) -{ - // The concept of the ".download bundle" is internal to the Download, so we try to hide its - // existence by reporting the final destination was created, when in reality the bundle was created. - - Download* download = downloadFromClientInfo(clientInfo); - download->didCreateDestination(download->destination()); -} - -void didFinishCallback(CFURLDownloadRef, const void* clientInfo) -{ - downloadFromClientInfo(clientInfo)->didFinish(); -} - -void didFailCallback(CFURLDownloadRef, CFErrorRef error, const void* clientInfo) -{ - CoreIPC::DataReference dataReference(0, 0); - downloadFromClientInfo(clientInfo)->didFail(ResourceError(error), dataReference); -} - -} // namespace WebKit diff --git a/Source/WebKit2/WebProcess/Downloads/cf/win/DownloadCFNetWin.cpp b/Source/WebKit2/WebProcess/Downloads/cf/win/DownloadCFWin.cpp index 0dd6508..0dd6508 100644 --- a/Source/WebKit2/WebProcess/Downloads/cf/win/DownloadCFNetWin.cpp +++ b/Source/WebKit2/WebProcess/Downloads/cf/win/DownloadCFWin.cpp |