blob: a72addbad5678e9aefe004da3f5266b56a0e0ae2 [file] [log] [blame]
[email protected]646889822013-03-20 00:26:451// 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
3// found in the LICENSE file.
4
5#include "content/browser/loader/stream_resource_handler.h"
6
mmenke87f5c77a2017-01-31 16:11:267#include "base/bind.h"
[email protected]646889822013-03-20 00:26:458#include "base/logging.h"
mmenke87f5c77a2017-01-31 16:11:269#include "content/browser/loader/resource_controller.h"
jame87eedd2016-09-27 16:59:4710#include "net/url_request/url_request_status.h"
[email protected]646889822013-03-20 00:26:4511
12namespace content {
13
[email protected]6a94bff2014-03-01 04:37:0914StreamResourceHandler::StreamResourceHandler(net::URLRequest* request,
15 StreamRegistry* registry,
clamyea2f9112017-05-02 17:13:5716 const GURL& origin,
17 bool immediate_mode)
davidben61814fd2014-10-15 19:45:0718 : ResourceHandler(request) {
mmenke87f5c77a2017-01-31 16:11:2619 writer_.InitializeStream(registry, origin,
20 base::Bind(&StreamResourceHandler::OutOfBandCancel,
21 base::Unretained(this), net::ERR_ABORTED,
22 true /* tell_renderer */));
clamyea2f9112017-05-02 17:13:5723 writer_.set_immediate_mode(immediate_mode);
[email protected]646889822013-03-20 00:26:4524}
25
26StreamResourceHandler::~StreamResourceHandler() {
davidben61814fd2014-10-15 19:45:0727}
28
mmenke87f5c77a2017-01-31 16:11:2629void StreamResourceHandler::OnRequestRedirected(
[email protected]cba24642014-08-15 20:49:5930 const net::RedirectInfo& redirect_info,
31 ResourceResponse* resp,
mmenke87f5c77a2017-01-31 16:11:2632 std::unique_ptr<ResourceController> controller) {
33 controller->Resume();
[email protected]646889822013-03-20 00:26:4534}
35
mmenke87f5c77a2017-01-31 16:11:2636void StreamResourceHandler::OnResponseStarted(
37 ResourceResponse* resp,
38 std::unique_ptr<ResourceController> controller) {
39 controller->Resume();
[email protected]646889822013-03-20 00:26:4540}
41
mmenke87f5c77a2017-01-31 16:11:2642void StreamResourceHandler::OnWillStart(
43 const GURL& url,
44 std::unique_ptr<ResourceController> controller) {
45 controller->Resume();
[email protected]646889822013-03-20 00:26:4546}
47
mmenke3c1d10c2017-03-09 16:25:4548void StreamResourceHandler::OnWillRead(
49 scoped_refptr<net::IOBuffer>* buf,
50 int* buf_size,
51 std::unique_ptr<ResourceController> controller) {
mmenke7551f612017-02-02 17:40:0652 writer_.OnWillRead(buf, buf_size, -1);
mmenke3c1d10c2017-03-09 16:25:4553 controller->Resume();
[email protected]646889822013-03-20 00:26:4554}
55
mmenke87f5c77a2017-01-31 16:11:2656void StreamResourceHandler::OnReadCompleted(
57 int bytes_read,
58 std::unique_ptr<ResourceController> controller) {
59 writer_.OnReadCompleted(bytes_read,
60 base::Bind(&ResourceController::Resume,
61 base::Passed(std::move(controller))));
[email protected]646889822013-03-20 00:26:4562}
63
[email protected]3780874a2013-11-18 05:49:0364void StreamResourceHandler::OnResponseCompleted(
[email protected]646889822013-03-20 00:26:4565 const net::URLRequestStatus& status,
mmenke87f5c77a2017-01-31 16:11:2666 std::unique_ptr<ResourceController> controller) {
jame87eedd2016-09-27 16:59:4767 writer_.Finalize(status.error());
mmenke87f5c77a2017-01-31 16:11:2668 controller->Resume();
[email protected]646889822013-03-20 00:26:4569}
70
[email protected]d22e800e2014-05-28 21:55:5771void StreamResourceHandler::OnDataDownloaded(int bytes_downloaded) {
[email protected]646889822013-03-20 00:26:4572 NOTREACHED();
73}
74
[email protected]646889822013-03-20 00:26:4575} // namespace content