summaryrefslogtreecommitdiffstats
path: root/webkit/glue/media/buffered_data_source.cc
diff options
context:
space:
mode:
authorscherkus@chromium.org <scherkus@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-10-26 02:23:47 +0000
committerscherkus@chromium.org <scherkus@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-10-26 02:23:47 +0000
commitcf31d6fbef998e90f09a0004c9e429784396b855 (patch)
tree590ff1da367af7f3100cb6dfd44096cd08cfdd33 /webkit/glue/media/buffered_data_source.cc
parente0fcc515ac27f502b4e391fb7c1c865171bf7581 (diff)
downloadchromium_src-cf31d6fbef998e90f09a0004c9e429784396b855.zip
chromium_src-cf31d6fbef998e90f09a0004c9e429784396b855.tar.gz
chromium_src-cf31d6fbef998e90f09a0004c9e429784396b855.tar.bz2
Add HasSingleOrigin() to WebDataSource.
BUG=25432, 55745 TEST=test_shell_tests and layout tests Review URL: http://codereview.chromium.org/3984002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@63845 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit/glue/media/buffered_data_source.cc')
-rw-r--r--webkit/glue/media/buffered_data_source.cc12
1 files changed, 12 insertions, 0 deletions
diff --git a/webkit/glue/media/buffered_data_source.cc b/webkit/glue/media/buffered_data_source.cc
index 43d21f7..f97e7b5 100644
--- a/webkit/glue/media/buffered_data_source.cc
+++ b/webkit/glue/media/buffered_data_source.cc
@@ -529,6 +529,7 @@ BufferedDataSource::BufferedDataSource(
: total_bytes_(kPositionNotSpecified),
loaded_(false),
streaming_(false),
+ single_origin_(true),
bridge_factory_(bridge_factory),
loader_(NULL),
network_activity_(false),
@@ -646,6 +647,11 @@ bool BufferedDataSource::IsStreaming() {
return streaming_;
}
+bool BufferedDataSource::HasSingleOrigin() {
+ DCHECK(MessageLoop::current() == render_loop_);
+ return single_origin_;
+}
+
void BufferedDataSource::Abort() {
DCHECK(MessageLoop::current() == render_loop_);
@@ -873,6 +879,9 @@ void BufferedDataSource::HttpInitialStartCallback(int error) {
DCHECK(MessageLoop::current() == render_loop_);
DCHECK(loader_.get());
+ // Check if the request ended up at a different origin via redirect.
+ single_origin_ = url_.GetOrigin() == loader_->url().GetOrigin();
+
int64 instance_size = loader_->instance_size();
bool partial_response = loader_->partial_response();
bool success = error == net::OK;
@@ -937,6 +946,9 @@ void BufferedDataSource::NonHttpInitialStartCallback(int error) {
DCHECK(MessageLoop::current() == render_loop_);
DCHECK(loader_.get());
+ // Check if the request ended up at a different origin via redirect.
+ single_origin_ = url_.GetOrigin() == loader_->url().GetOrigin();
+
int64 instance_size = loader_->instance_size();
bool success = error == net::OK && instance_size != kPositionNotSpecified;