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 15namespace net { 16 17URLRequestAboutJob::URLRequestAboutJob(URLRequest* request, 18 NetworkDelegate* network_delegate) 19 : URLRequestJob(request, network_delegate), 20 weak_factory_(this) { 21} 22 23void 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 31bool URLRequestAboutJob::GetMimeType(std::string* mime_type) const { 32 *mime_type = "text/html"; 33 return true; 34} 35 36URLRequestAboutJob::~URLRequestAboutJob() { 37} 38 39void URLRequestAboutJob::StartAsync() { 40 NotifyHeadersComplete(); 41} 42 43} // namespace net 44