diff options
author | hclam@chromium.org <hclam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-01-17 00:03:00 +0000 |
---|---|---|
committer | hclam@chromium.org <hclam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-01-17 00:03:00 +0000 |
commit | 5df5165d0e0d7e6493dbca6d4c98a173a616467d (patch) | |
tree | eac9a804d96d9cd577f3ecca79be3766d099b369 /webkit/glue/webmediaplayer_impl.cc | |
parent | f92a69826846102dfe32ac44bc36df79f803beb6 (diff) | |
download | chromium_src-5df5165d0e0d7e6493dbca6d4c98a173a616467d.zip chromium_src-5df5165d0e0d7e6493dbca6d4c98a173a616467d.tar.gz chromium_src-5df5165d0e0d7e6493dbca6d4c98a173a616467d.tar.bz2 |
Add resource loading glue code for WebMediaPlayerDelegate
Added glue code to ResourceHandle for WebMediaPlayerDelegate.
Review URL: http://codereview.chromium.org/18282
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@8246 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/glue/webmediaplayer_impl.cc')
-rw-r--r-- | webkit/glue/webmediaplayer_impl.cc | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/webkit/glue/webmediaplayer_impl.cc b/webkit/glue/webmediaplayer_impl.cc index d743886..2c9fea3 100644 --- a/webkit/glue/webmediaplayer_impl.cc +++ b/webkit/glue/webmediaplayer_impl.cc @@ -6,10 +6,19 @@ #include "FrameView.h" #include "MediaPlayerPrivateChromium.h" +#include "PlatformString.h" +#include "ResourceRequest.h" +#include "ResourceHandle.h" #undef LOG +#include "googleurl/src/gurl.h" +#include "webkit/glue/glue_util.h" +#include "webkit/glue/weberror_impl.h" #include "webkit/glue/webframe_impl.h" +#include "webkit/glue/webmediaplayer_delegate.h" #include "webkit/glue/webmediaplayer_impl.h" +#include "webkit/glue/webresponse_impl.h" +#include "webkit/glue/weburlrequest_impl.h" #if ENABLE(VIDEO) @@ -56,6 +65,73 @@ void WebMediaPlayerImpl::Repaint() { media_player_private_->repaint(); } +void WebMediaPlayerImpl::LoadMediaResource(const GURL& url) { + // Make sure we cancel the previous load request before starting a new one. + CancelLoad(); + + WebCore::Frame* frame = static_cast<WebFrameImpl*>(GetWebFrame())->frame(); + WebCore::ResourceRequest request(webkit_glue::GURLToKURL(url), + WebCore::String(""), + WebCore::UseProtocolCachePolicy); + request.setTargetType(WebCore::ResourceRequest::TargetIsMedia); + request.setFrame(frame); + + resource_handle_ = WebCore::ResourceHandle::create(request, + this, + frame, + false, + true); +} + +void WebMediaPlayerImpl::CancelLoad() { + // Delegate the cancel call to ResourceHandle, this should be enough to + // stop any further callbacks from ResouceHandle. + if (resource_handle_) { + resource_handle_->cancel(); + resource_handle_ = NULL; + } +} + +void WebMediaPlayerImpl::willSendRequest( + WebCore::ResourceHandle* handle, + WebCore::ResourceRequest& request, + const WebCore::ResourceResponse& response) { + if (delegate_) { + delegate_->WillSendRequest(WebRequestImpl(request), + WebResponseImpl(response)); + } +} + +void WebMediaPlayerImpl::didReceiveResponse( + WebCore::ResourceHandle* handle, + const WebCore::ResourceResponse& response) { + if (delegate_) { + delegate_->DidReceiveResponse(WebResponseImpl(response)); + } +} + +void WebMediaPlayerImpl::didReceiveData(WebCore::ResourceHandle* handle, + const char *buffer, + int length, + int bytes_received) { + if (delegate_) { + delegate_->DidReceiveData(buffer, length); + } +} + +void WebMediaPlayerImpl::didFinishLoading(WebCore::ResourceHandle* handle) { + if (delegate_) { + delegate_->DidFinishLoading(); + } +} + +void WebMediaPlayerImpl::didFail(WebCore::ResourceHandle* handle, + const WebCore::ResourceError& error) { + if (delegate_) { + delegate_->DidFail(WebErrorImpl(error)); + } +} + } // namespace webkit_glue #endif |