summaryrefslogtreecommitdiffstats
path: root/webkit/glue/webmediaplayer_impl.cc
diff options
context:
space:
mode:
authorhclam@chromium.org <hclam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-01-17 00:03:00 +0000
committerhclam@chromium.org <hclam@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-01-17 00:03:00 +0000
commit5df5165d0e0d7e6493dbca6d4c98a173a616467d (patch)
treeeac9a804d96d9cd577f3ecca79be3766d099b369 /webkit/glue/webmediaplayer_impl.cc
parentf92a69826846102dfe32ac44bc36df79f803beb6 (diff)
downloadchromium_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.cc76
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