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 // Simple implementation of about: protocol handler that treats everything as 6 // about:blank. No other about: features should be available to web content, 7 // so they're not implemented here. 8 9 #include "net/url_request/url_request_about_job.h" 10 11 #include "base/bind.h" 12 #include "base/compiler_specific.h" 13 #include "base/message_loop/message_loop.h" 14 15 namespace net { 16 17 URLRequestAboutJob::URLRequestAboutJob(URLRequest* request, 18 NetworkDelegate* network_delegate) 19 : URLRequestJob(request, network_delegate), 20 weak_factory_(this) { 21 } 22 23 void URLRequestAboutJob::Start() { 24 // Start reading asynchronously so that all error reporting and data 25 // callbacks happen as they would for network requests. 26 base::MessageLoop::current()->PostTask( 27 FROM_HERE, 28 base::Bind(&URLRequestAboutJob::StartAsync, weak_factory_.GetWeakPtr())); 29 } 30 31 bool URLRequestAboutJob::GetMimeType(std::string* mime_type) const { 32 *mime_type = "text/html"; 33 return true; 34 } 35 36 URLRequestAboutJob::~URLRequestAboutJob() { 37 } 38 39 void URLRequestAboutJob::StartAsync() { 40 NotifyHeadersComplete(); 41 } 42 43 } // namespace net 44