Changeset 141008 in webkit
- Timestamp:
- Jan 28, 2013, 2:22:16 PM (12 years ago)
- Location:
- trunk/Source/WebKit2
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit2/ChangeLog
r141004 r141008 1 2013-01-28 Christophe Dumez <christophe.dumez@intel.com> 2 3 [EFL][WK2] Use C API inside ewk_download_job 4 https://bugs.webkit.org/show_bug.cgi?id=107810 5 6 Reviewed by Anders Carlsson. 7 8 Use C API inside ewk_download_job instead of accessing internal C++ 9 classes directly, to avoid violating API layering. 10 11 * UIProcess/API/C/WKDownload.cpp: 12 (WKDownloadGetID): Add C API to get the download ID as we need it to 13 support our public API and it seems like a useful addition. 14 * UIProcess/API/C/WKDownload.h: 15 * UIProcess/API/efl/ewk_download_job.cpp: 16 (EwkDownloadJob::EwkDownloadJob): 17 (EwkDownloadJob::id): 18 (EwkDownloadJob::request): 19 (EwkDownloadJob::cancel): 20 * UIProcess/API/efl/ewk_download_job_private.h: 21 (EwkDownloadJob::create): 22 (EwkDownloadJob): 23 * UIProcess/efl/DownloadManagerEfl.cpp: 24 (WebKit::DownloadManagerEfl::decideDestinationWithSuggestedFilename): 25 (WebKit::DownloadManagerEfl::didReceiveResponse): 26 (WebKit::DownloadManagerEfl::didCreateDestination): 27 (WebKit::DownloadManagerEfl::didReceiveData): 28 (WebKit::DownloadManagerEfl::didFail): 29 (WebKit::DownloadManagerEfl::didCancel): 30 (WebKit::DownloadManagerEfl::didFinish): 31 (WebKit::DownloadManagerEfl::registerDownloadJob): Rename 32 registerDownload() to registerDownloadJob() for consistency with 33 unregisterDownloadJob(). 34 (WebKit::DownloadManagerEfl::ewkDownloadJob): Rename downloadJob() to 35 ewkDownloadJob() for clarity since it returns a EwkDownload object. 36 Also take a WKDownloadRef in argument instead of an identifier since 37 all the callers have a WKDownloadRef and it makes their code simpler. 38 Finally, make the getter non-const since it returns a non-const pointer. 39 (WebKit::DownloadManagerEfl::unregisterDownloadJob): Take a 40 WKDownloadRef in argument instead of an identifier since all the 41 callers have a WKDownloadRef and it makes their code simpler. 42 * UIProcess/efl/DownloadManagerEfl.h: 43 (DownloadManagerEfl): 44 * UIProcess/efl/PageClientBase.cpp: 45 (WebKit::PageClientBase::handleDownloadRequest): 46 1 47 2013-01-28 Tim Horton <timothy_horton@apple.com> 2 48 -
trunk/Source/WebKit2/UIProcess/API/C/WKDownload.cpp
r95901 r141008 38 38 } 39 39 40 uint64_t WKDownloadGetID(WKDownloadRef download) 41 { 42 return toImpl(download)->downloadID(); 43 } 44 40 45 WKURLRequestRef WKDownloadCopyRequest(WKDownloadRef download) 41 46 { -
trunk/Source/WebKit2/UIProcess/API/C/WKDownload.h
r95901 r141008 39 39 WK_EXPORT WKTypeID WKDownloadGetTypeID(); 40 40 41 WK_EXPORT uint64_t WKDownloadGetID(WKDownloadRef download); 41 42 WK_EXPORT WKURLRequestRef WKDownloadCopyRequest(WKDownloadRef download); 42 43 WK_EXPORT WKDataRef WKDownloadGetResumeData(WKDownloadRef download); -
trunk/Source/WebKit2/UIProcess/API/efl/ewk_download_job.cpp
r140686 r141008 27 27 #include "ewk_download_job.h" 28 28 29 #include "DownloadProxy.h"30 29 #include "WKAPICast.h" 31 30 #include "WKRetainPtr.h" 32 #include "W ebURLRequest.h"31 #include "WKURLRequest.h" 33 32 #include "ewk_download_job_private.h" 34 33 #include "ewk_url_response_private.h" … … 37 36 using namespace WebKit; 38 37 39 EwkDownloadJob::EwkDownloadJob(W ebKit::DownloadProxy*download, EwkView* viewImpl)40 : m_download Proxy(download)38 EwkDownloadJob::EwkDownloadJob(WKDownloadRef download, EwkView* viewImpl) 39 : m_download(download) 41 40 , m_viewImpl(viewImpl) 42 41 , m_state(EWK_DOWNLOAD_JOB_STATE_NOT_STARTED) … … 52 51 uint64_t EwkDownloadJob::id() const 53 52 { 54 return m_downloadProxy->downloadID();53 return WKDownloadGetID(m_download.get()); 55 54 } 56 55 … … 87 86 { 88 87 if (!m_request) { 89 WKRetainPtr<WKURLRequestRef> wkURLRequest(AdoptWK, toAPI(WebURLRequest::create(m_downloadProxy->request()).leakRef()));88 WKRetainPtr<WKURLRequestRef> wkURLRequest(AdoptWK, WKDownloadCopyRequest(m_download.get())); 90 89 m_request = EwkUrlRequest::create(wkURLRequest.get()); 91 90 } … … 158 157 159 158 m_state = EWK_DOWNLOAD_JOB_STATE_CANCELLING; 160 m_downloadProxy->cancel(); 159 WKDownloadCancel(m_download.get()); 160 161 161 return true; 162 162 } -
trunk/Source/WebKit2/UIProcess/API/efl/ewk_download_job_private.h
r140686 r141008 28 28 29 29 #include "WKBase.h" 30 #include "WKDownload.h" 30 31 #include "WKEinaSharedString.h" 32 #include "WKRetainPtr.h" 31 33 #include "ewk_download_job.h" 32 34 #include "ewk_url_request_private.h" … … 34 36 #include <Evas.h> 35 37 #include <wtf/PassRefPtr.h> 36 37 namespace WebKit {38 class DownloadProxy;39 }40 38 41 39 class EwkView; … … 45 43 EWK_OBJECT_DECLARE(EwkDownloadJob) 46 44 47 static PassRefPtr<EwkDownloadJob> create(W ebKit::DownloadProxy*download, EwkView* viewImpl)45 static PassRefPtr<EwkDownloadJob> create(WKDownloadRef download, EwkView* viewImpl) 48 46 { 49 47 return adoptRef(new EwkDownloadJob(download, viewImpl)); … … 73 71 74 72 private: 75 EwkDownloadJob(W ebKit::DownloadProxy*download, EwkView* view);73 EwkDownloadJob(WKDownloadRef download, EwkView* view); 76 74 77 W ebKit::DownloadProxy* m_downloadProxy;75 WKRetainPtr<WKDownloadRef> m_download; 78 76 EwkView* m_viewImpl; 79 77 Ewk_Download_Job_State m_state; -
trunk/Source/WebKit2/UIProcess/efl/DownloadManagerEfl.cpp
r140686 r141008 27 27 #include "DownloadManagerEfl.h" 28 28 29 #include "DownloadProxy.h"30 29 #include "EwkView.h" 31 30 #include "WKContext.h" 31 #include "WKDownload.h" 32 32 #include "WKString.h" 33 33 #include "ewk_context_private.h" … … 46 46 WKStringRef DownloadManagerEfl::decideDestinationWithSuggestedFilename(WKContextRef, WKDownloadRef wkDownload, WKStringRef filename, bool* /*allowOverwrite*/, const void* clientInfo) 47 47 { 48 EwkDownloadJob* download = toDownloadManagerEfl(clientInfo)-> downloadJob(toImpl(wkDownload)->downloadID());48 EwkDownloadJob* download = toDownloadManagerEfl(clientInfo)->ewkDownloadJob(wkDownload); 49 49 ASSERT(download); 50 50 … … 63 63 void DownloadManagerEfl::didReceiveResponse(WKContextRef, WKDownloadRef wkDownload, WKURLResponseRef wkResponse, const void* clientInfo) 64 64 { 65 EwkDownloadJob* download = toDownloadManagerEfl(clientInfo)-> downloadJob(toImpl(wkDownload)->downloadID());65 EwkDownloadJob* download = toDownloadManagerEfl(clientInfo)->ewkDownloadJob(wkDownload); 66 66 ASSERT(download); 67 67 download->setResponse(EwkUrlResponse::create(wkResponse)); … … 70 70 void DownloadManagerEfl::didCreateDestination(WKContextRef, WKDownloadRef wkDownload, WKStringRef /*path*/, const void* clientInfo) 71 71 { 72 EwkDownloadJob* download = toDownloadManagerEfl(clientInfo)-> downloadJob(toImpl(wkDownload)->downloadID());72 EwkDownloadJob* download = toDownloadManagerEfl(clientInfo)->ewkDownloadJob(wkDownload); 73 73 ASSERT(download); 74 74 … … 78 78 void DownloadManagerEfl::didReceiveData(WKContextRef, WKDownloadRef wkDownload, uint64_t length, const void* clientInfo) 79 79 { 80 EwkDownloadJob* download = toDownloadManagerEfl(clientInfo)-> downloadJob(toImpl(wkDownload)->downloadID());80 EwkDownloadJob* download = toDownloadManagerEfl(clientInfo)->ewkDownloadJob(wkDownload); 81 81 ASSERT(download); 82 82 download->incrementReceivedData(length); … … 86 86 { 87 87 DownloadManagerEfl* downloadManager = toDownloadManagerEfl(clientInfo); 88 uint64_t downloadId = toImpl(wkDownload)->downloadID(); 89 EwkDownloadJob* download = downloadManager->downloadJob(downloadId); 88 EwkDownloadJob* download = downloadManager->ewkDownloadJob(wkDownload); 90 89 ASSERT(download); 91 90 … … 94 93 Ewk_Download_Job_Error downloadError = { download, ewkError.get() }; 95 94 download->view()->smartCallback<DownloadJobFailed>().call(&downloadError); 96 downloadManager->unregisterDownloadJob( downloadId);95 downloadManager->unregisterDownloadJob(wkDownload); 97 96 } 98 97 … … 100 99 { 101 100 DownloadManagerEfl* downloadManager = toDownloadManagerEfl(clientInfo); 102 uint64_t downloadId = toImpl(wkDownload)->downloadID(); 103 EwkDownloadJob* download = downloadManager->downloadJob(downloadId); 101 EwkDownloadJob* download = downloadManager->ewkDownloadJob(wkDownload); 104 102 ASSERT(download); 105 103 106 104 download->setState(EWK_DOWNLOAD_JOB_STATE_CANCELLED); 107 105 download->view()->smartCallback<DownloadJobCancelled>().call(download); 108 downloadManager->unregisterDownloadJob( downloadId);106 downloadManager->unregisterDownloadJob(wkDownload); 109 107 } 110 108 … … 112 110 { 113 111 DownloadManagerEfl* downloadManager = toDownloadManagerEfl(clientInfo); 114 uint64_t downloadId = toImpl(wkDownload)->downloadID(); 115 EwkDownloadJob* download = downloadManager->downloadJob(downloadId); 112 EwkDownloadJob* download = downloadManager->ewkDownloadJob(wkDownload); 116 113 ASSERT(download); 117 114 118 115 download->setState(EWK_DOWNLOAD_JOB_STATE_FINISHED); 119 116 download->view()->smartCallback<DownloadJobFinished>().call(download); 120 downloadManager->unregisterDownloadJob( downloadId);117 downloadManager->unregisterDownloadJob(wkDownload); 121 118 } 122 119 … … 145 142 } 146 143 147 void DownloadManagerEfl::registerDownload (DownloadProxy*download, EwkView* viewImpl)144 void DownloadManagerEfl::registerDownloadJob(WKDownloadRef download, EwkView* viewImpl) 148 145 { 149 uint64_t downloadId = download->downloadID();146 uint64_t downloadId = WKDownloadGetID(download); 150 147 if (m_downloadJobs.contains(downloadId)) 151 148 return; … … 155 152 } 156 153 157 EwkDownloadJob* DownloadManagerEfl:: downloadJob(uint64_t id) const154 EwkDownloadJob* DownloadManagerEfl::ewkDownloadJob(WKDownloadRef wkDownload) 158 155 { 159 return m_downloadJobs.get( id).get();156 return m_downloadJobs.get(WKDownloadGetID(wkDownload)).get(); 160 157 } 161 158 162 void DownloadManagerEfl::unregisterDownloadJob( uint64_t id)159 void DownloadManagerEfl::unregisterDownloadJob(WKDownloadRef wkDownload) 163 160 { 164 m_downloadJobs.remove( id);161 m_downloadJobs.remove(WKDownloadGetID(wkDownload)); 165 162 } 166 163 -
trunk/Source/WebKit2/UIProcess/efl/DownloadManagerEfl.h
r140686 r141008 46 46 ~DownloadManagerEfl(); 47 47 48 void registerDownload (DownloadProxy*, EwkView*);48 void registerDownloadJob(WKDownloadRef, EwkView*); 49 49 50 50 private: 51 51 explicit DownloadManagerEfl(EwkContext*); 52 52 53 EwkDownloadJob* downloadJob(uint64_t id) const;54 void unregisterDownloadJob( uint64_t id);53 EwkDownloadJob* ewkDownloadJob(WKDownloadRef); 54 void unregisterDownloadJob(WKDownloadRef); 55 55 56 56 static WKStringRef decideDestinationWithSuggestedFilename(WKContextRef, WKDownloadRef, WKStringRef filename, bool* allowOverwrite, const void* clientInfo); -
trunk/Source/WebKit2/UIProcess/efl/PageClientBase.cpp
r140686 r141008 299 299 { 300 300 EwkContext* context = m_view->ewkContext(); 301 context->downloadManager()->registerDownload (download, m_view);301 context->downloadManager()->registerDownloadJob(toAPI(download), m_view); 302 302 } 303 303
Note:
See TracChangeset
for help on using the changeset viewer.