| Index: content/common/net/url_fetcher.cc
|
| ===================================================================
|
| --- content/common/net/url_fetcher.cc (revision 106795)
|
| +++ content/common/net/url_fetcher.cc (working copy)
|
| @@ -18,6 +18,7 @@
|
| #include "base/stl_util.h"
|
| #include "base/string_util.h"
|
| #include "base/threading/thread.h"
|
| +#include "content/public/common/url_fetcher_delegate.h"
|
| #include "googleurl/src/gurl.h"
|
| #include "net/base/host_port_pair.h"
|
| #include "net/base/io_buffer.h"
|
| @@ -44,7 +45,7 @@
|
| Core(URLFetcher* fetcher,
|
| const GURL& original_url,
|
| RequestType request_type,
|
| - URLFetcher::Delegate* d);
|
| + content::URLFetcherDelegate* d);
|
|
|
| // Starts the load. It's important that this not happen in the constructor
|
| // because it causes the IO thread to begin AddRef()ing and Release()ing
|
| @@ -70,7 +71,7 @@
|
| virtual void OnResponseStarted(net::URLRequest* request);
|
| virtual void OnReadCompleted(net::URLRequest* request, int bytes_read);
|
|
|
| - URLFetcher::Delegate* delegate() const { return delegate_; }
|
| + content::URLFetcherDelegate* delegate() const { return delegate_; }
|
| static void CancelAll();
|
|
|
| private:
|
| @@ -220,7 +221,7 @@
|
| GURL url_; // The URL we eventually wound up at
|
| RequestType request_type_; // What type of request is this?
|
| net::URLRequestStatus status_; // Status of the request
|
| - URLFetcher::Delegate* delegate_; // Object to notify on completion
|
| + content::URLFetcherDelegate* delegate_; // Object to notify on completion
|
| scoped_refptr<base::MessageLoopProxy> delegate_loop_proxy_;
|
| // Message loop proxy of the creating
|
| // thread.
|
| @@ -465,43 +466,12 @@
|
| // static
|
| URLFetcher::Factory* URLFetcher::factory_ = NULL;
|
|
|
| -void URLFetcher::Delegate::OnURLFetchComplete(
|
| - const URLFetcher* source,
|
| - const GURL& url,
|
| - const net::URLRequestStatus& status,
|
| - int response_code,
|
| - const net::ResponseCookies& cookies,
|
| - const std::string& data) {
|
| - NOTREACHED() << "If you don't implement this, the no-params version "
|
| - << "should also be implemented, in which case this "
|
| - << "method won't be called...";
|
| -}
|
| -
|
| -// TODO(skerner): This default implementation will be removed, and the
|
| -// method made pure virtual, once all users of URLFetcher are updated
|
| -// to not expect response data as a string argument. Once this is removed,
|
| -// the method URLFetcher::GetResponseStringRef() can be removed as well.
|
| -// crbug.com/83592 tracks this.
|
| -void URLFetcher::Delegate::OnURLFetchComplete(const URLFetcher* source) {
|
| - // A delegate that did not override this method is using the old
|
| - // parameter list to OnURLFetchComplete(). If a user asked to save
|
| - // the response to a file, they must use the new parameter list,
|
| - // in which case we can not get here.
|
| - // To avoid updating all callers, thunk to the old prototype for now.
|
| - OnURLFetchComplete(source,
|
| - source->url(),
|
| - source->status(),
|
| - source->response_code(),
|
| - source->cookies(),
|
| - source->GetResponseStringRef());
|
| -}
|
| -
|
| // static
|
| bool URLFetcher::g_interception_enabled = false;
|
|
|
| URLFetcher::URLFetcher(const GURL& url,
|
| RequestType request_type,
|
| - Delegate* d)
|
| + content::URLFetcherDelegate* d)
|
| : ALLOW_THIS_IN_INITIALIZER_LIST(
|
| core_(new Core(this, url, request_type, d))) {
|
| }
|
| @@ -512,7 +482,8 @@
|
|
|
| // static
|
| URLFetcher* URLFetcher::Create(int id, const GURL& url,
|
| - RequestType request_type, Delegate* d) {
|
| + RequestType request_type,
|
| + content::URLFetcherDelegate* d) {
|
| return factory_ ? factory_->CreateURLFetcher(id, url, request_type, d) :
|
| new URLFetcher(url, request_type, d);
|
| }
|
| @@ -520,7 +491,7 @@
|
| URLFetcher::Core::Core(URLFetcher* fetcher,
|
| const GURL& original_url,
|
| RequestType request_type,
|
| - URLFetcher::Delegate* d)
|
| + content::URLFetcherDelegate* d)
|
| : fetcher_(fetcher),
|
| original_url_(original_url),
|
| request_type_(request_type),
|
| @@ -587,7 +558,9 @@
|
| }
|
|
|
| void URLFetcher::Core::Stop() {
|
| - DCHECK(delegate_loop_proxy_->BelongsToCurrentThread());
|
| + if (delegate_loop_proxy_) { // May be NULL in tests.
|
| + DCHECK(delegate_loop_proxy_->BelongsToCurrentThread());
|
| + }
|
| delegate_ = NULL;
|
| fetcher_ = NULL;
|
| if (io_message_loop_proxy_.get()) {
|
| @@ -1081,11 +1054,6 @@
|
| return true;
|
| }
|
|
|
| -const std::string& URLFetcher::GetResponseStringRef() const {
|
| - CHECK(core_->response_destination_ == STRING);
|
| - return core_->data_;
|
| -}
|
| -
|
| void URLFetcher::SetResponseDestinationForTesting(
|
| ResponseDestinationType value) {
|
| core_->response_destination_ = value;
|
| @@ -1122,6 +1090,6 @@
|
| return Core::g_registry.Get().size();
|
| }
|
|
|
| -URLFetcher::Delegate* URLFetcher::delegate() const {
|
| +content::URLFetcherDelegate* URLFetcher::delegate() const {
|
| return core_->delegate();
|
| }
|
|
|