• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (c) 2006-2008 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/message_loop.h"
12 
13 // static
Factory(URLRequest * request,const std::string & scheme)14 URLRequestJob* URLRequestAboutJob::Factory(URLRequest* request,
15                                            const std::string& scheme) {
16   return new URLRequestAboutJob(request);
17 }
18 
URLRequestAboutJob(URLRequest * request)19 URLRequestAboutJob::URLRequestAboutJob(URLRequest* request)
20     : URLRequestJob(request) {
21 }
22 
Start()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   MessageLoop::current()->PostTask(FROM_HERE, NewRunnableMethod(
27       this, &URLRequestAboutJob::StartAsync));
28 }
29 
GetMimeType(std::string * mime_type) const30 bool URLRequestAboutJob::GetMimeType(std::string* mime_type) const {
31   *mime_type = "text/html";
32   return true;
33 }
34 
StartAsync()35 void URLRequestAboutJob::StartAsync() {
36   NotifyHeadersComplete();
37 }
38