OLD | NEW |
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "content/browser/loader/stream_resource_handler.h" | 5 #include "content/browser/loader/stream_resource_handler.h" |
6 | 6 |
| 7 #include "base/bind.h" |
7 #include "base/logging.h" | 8 #include "base/logging.h" |
| 9 #include "content/public/browser/resource_controller.h" |
8 #include "net/url_request/url_request_status.h" | 10 #include "net/url_request/url_request_status.h" |
9 | 11 |
10 namespace content { | 12 namespace content { |
11 | 13 |
12 StreamResourceHandler::StreamResourceHandler(net::URLRequest* request, | 14 StreamResourceHandler::StreamResourceHandler(net::URLRequest* request, |
13 StreamRegistry* registry, | 15 StreamRegistry* registry, |
14 const GURL& origin) | 16 const GURL& origin) |
15 : ResourceHandler(request) { | 17 : ResourceHandler(request) { |
16 writer_.InitializeStream(registry, origin); | 18 writer_.InitializeStream(registry, origin, |
| 19 base::Bind(&StreamResourceHandler::OutOfBandCancel, |
| 20 base::Unretained(this))); |
17 } | 21 } |
18 | 22 |
19 StreamResourceHandler::~StreamResourceHandler() { | 23 StreamResourceHandler::~StreamResourceHandler() { |
20 } | 24 } |
21 | 25 |
22 void StreamResourceHandler::SetController(ResourceController* controller) { | 26 void StreamResourceHandler::OnRequestRedirected( |
23 writer_.set_controller(controller); | 27 const net::RedirectInfo& redirect_info, |
24 ResourceHandler::SetController(controller); | 28 ResourceResponse* resp, |
| 29 std::unique_ptr<ResourceController> controller) { |
| 30 controller->Resume(); |
25 } | 31 } |
26 | 32 |
27 bool StreamResourceHandler::OnRequestRedirected( | 33 void StreamResourceHandler::OnResponseStarted( |
28 const net::RedirectInfo& redirect_info, | |
29 ResourceResponse* resp, | 34 ResourceResponse* resp, |
30 bool* defer) { | 35 std::unique_ptr<ResourceController> controller) { |
31 return true; | 36 controller->Resume(); |
32 } | 37 } |
33 | 38 |
34 bool StreamResourceHandler::OnResponseStarted(ResourceResponse* resp, | 39 void StreamResourceHandler::OnWillStart( |
35 bool* defer) { | 40 const GURL& url, |
36 return true; | 41 std::unique_ptr<ResourceController> controller) { |
37 } | 42 controller->Resume(); |
38 | |
39 bool StreamResourceHandler::OnWillStart(const GURL& url, bool* defer) { | |
40 return true; | |
41 } | 43 } |
42 | 44 |
43 bool StreamResourceHandler::OnWillRead(scoped_refptr<net::IOBuffer>* buf, | 45 bool StreamResourceHandler::OnWillRead(scoped_refptr<net::IOBuffer>* buf, |
44 int* buf_size, | 46 int* buf_size, |
45 int min_size) { | 47 int min_size) { |
46 writer_.OnWillRead(buf, buf_size, min_size); | 48 writer_.OnWillRead(buf, buf_size, min_size); |
47 return true; | 49 return true; |
48 } | 50 } |
49 | 51 |
50 bool StreamResourceHandler::OnReadCompleted(int bytes_read, bool* defer) { | 52 void StreamResourceHandler::OnReadCompleted( |
51 writer_.OnReadCompleted(bytes_read, defer); | 53 int bytes_read, |
52 return true; | 54 std::unique_ptr<ResourceController> controller) { |
| 55 writer_.OnReadCompleted(bytes_read, |
| 56 base::Bind(&ResourceController::Resume, |
| 57 base::Passed(std::move(controller)))); |
53 } | 58 } |
54 | 59 |
55 void StreamResourceHandler::OnResponseCompleted( | 60 void StreamResourceHandler::OnResponseCompleted( |
56 const net::URLRequestStatus& status, | 61 const net::URLRequestStatus& status, |
57 bool* defer) { | 62 std::unique_ptr<ResourceController> controller) { |
58 writer_.Finalize(status.error()); | 63 writer_.Finalize(status.error()); |
| 64 controller->Resume(); |
59 } | 65 } |
60 | 66 |
61 void StreamResourceHandler::OnDataDownloaded(int bytes_downloaded) { | 67 void StreamResourceHandler::OnDataDownloaded(int bytes_downloaded) { |
62 NOTREACHED(); | 68 NOTREACHED(); |
63 } | 69 } |
64 | 70 |
65 } // namespace content | 71 } // namespace content |
OLD | NEW |