Home | History | Annotate | Download | only in fetchers
      1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #include "content/renderer/fetchers/web_url_loader_client_impl.h"
      6 
      7 #include "base/logging.h"
      8 #include "third_party/WebKit/public/platform/WebURLError.h"
      9 #include "third_party/WebKit/public/platform/WebURLLoader.h"
     10 #include "third_party/WebKit/public/platform/WebURLResponse.h"
     11 
     12 namespace content {
     13 
     14 WebURLLoaderClientImpl::WebURLLoaderClientImpl()
     15     : completed_(false)
     16     , status_(LOADING) {
     17 }
     18 
     19 WebURLLoaderClientImpl::~WebURLLoaderClientImpl() {
     20 }
     21 
     22 void WebURLLoaderClientImpl::didReceiveResponse(
     23     blink::WebURLLoader* loader, const blink::WebURLResponse& response) {
     24   DCHECK(!completed_);
     25   response_ = response;
     26 }
     27 
     28 void WebURLLoaderClientImpl::didReceiveData(
     29     blink::WebURLLoader* loader,
     30     const char* data,
     31     int data_length,
     32     int encoded_data_length) {
     33   DCHECK(!completed_);
     34   DCHECK(data_length > 0);
     35 
     36   data_.append(data, data_length);
     37 }
     38 
     39 void WebURLLoaderClientImpl::didReceiveCachedMetadata(
     40     blink::WebURLLoader* loader,
     41     const char* data,
     42     int data_length) {
     43   DCHECK(!completed_);
     44   DCHECK(data_length > 0);
     45 
     46   metadata_.assign(data, data_length);
     47 }
     48 
     49 void WebURLLoaderClientImpl::didFinishLoading(
     50     blink::WebURLLoader* loader,
     51     double finishTime,
     52     int64_t total_encoded_data_length) {
     53   OnLoadCompleteInternal(LOAD_SUCCEEDED);
     54 }
     55 
     56 void WebURLLoaderClientImpl::didFail(blink::WebURLLoader* loader,
     57                                      const blink::WebURLError& error) {
     58   OnLoadCompleteInternal(LOAD_FAILED);
     59 }
     60 
     61 void WebURLLoaderClientImpl::Cancel() {
     62   OnLoadCompleteInternal(LOAD_FAILED);
     63 }
     64 
     65 void WebURLLoaderClientImpl::OnLoadCompleteInternal(LoadStatus status) {
     66   DCHECK(!completed_);
     67   DCHECK(status_ == LOADING);
     68 
     69   completed_ = true;
     70   status_ = status;
     71 
     72   OnLoadComplete();
     73 }
     74 
     75 }  // namespace content
     76