Upstream version 5.34.104.0
[platform/framework/web/crosswalk.git] / src / net / url_request / url_request_job.cc
index 1d6f0b4..78f704a 100644 (file)
@@ -16,6 +16,7 @@
 #include "net/base/load_states.h"
 #include "net/base/net_errors.h"
 #include "net/base/network_delegate.h"
+#include "net/filter/filter.h"
 #include "net/http/http_response_headers.h"
 #include "net/url_request/url_request.h"
 
@@ -59,7 +60,6 @@ void URLRequestJob::Kill() {
 
 void URLRequestJob::DetachRequest() {
   request_ = NULL;
-  OnDetachRequest();
 }
 
 // This function calls ReadData to get stream data. If a filter exists, passes
@@ -111,6 +111,10 @@ bool URLRequestJob::GetFullRequestHeaders(HttpRequestHeaders* headers) const {
   return false;
 }
 
+int64 URLRequestJob::GetTotalReceivedBytes() const {
+  return 0;
+}
+
 LoadState URLRequestJob::GetLoadState() const {
   return LOAD_STATE_IDLE;
 }
@@ -213,6 +217,12 @@ void URLRequestJob::FollowDeferredRedirect() {
   FollowRedirect(redirect_url, redirect_status_code);
 }
 
+void URLRequestJob::ResumeNetworkStart() {
+  // This should only be called for HTTP Jobs, and implemented in the derived
+  // class.
+  NOTREACHED();
+}
+
 bool URLRequestJob::GetMimeType(std::string* mime_type) const {
   return false;
 }
@@ -276,6 +286,13 @@ bool URLRequestJob::CanEnablePrivacyMode() const {
   return request_->CanEnablePrivacyMode();
 }
 
+void URLRequestJob::NotifyBeforeNetworkStart(bool* defer) {
+  if (!request_)
+    return;
+
+  request_->NotifyBeforeNetworkStart(defer);
+}
+
 void URLRequestJob::NotifyHeadersComplete() {
   if (!request_ || !request_->has_delegate())
     return;  // The request was destroyed, so there is no more work to do.
@@ -414,8 +431,13 @@ void URLRequestJob::NotifyStartError(const URLRequestStatus &status) {
   DCHECK(!has_handled_response_);
   has_handled_response_ = true;
   if (request_) {
+    // There may be relevant information in the response info even in the
+    // error case.
+    GetResponseInfo(&request_->response_info_);
+
     request_->set_status(status);
     request_->NotifyResponseStarted();
+    // We may have been deleted.
   }
 }
 
@@ -637,6 +659,10 @@ bool URLRequestJob::ReadFilteredData(int* bytes_read) {
   return rv;
 }
 
+void URLRequestJob::DestroyFilters() {
+  filter_.reset();
+}
+
 const URLRequestStatus URLRequestJob::GetStatus() {
   if (request_)
     return request_->status();