blob: 55ecd8c28a57c01f9e7e9a79169a0f17bb032cad [file] [log] [blame]
// Copyright (c) 2012 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "base/optional.h"
#include "content/common/content_export.h"
namespace net {
class HttpRequestHeaders;
namespace content {
// Used to either resume a deferred resource load or cancel a resource load at
// any time. CancelAndIgnore is a variation of Cancel that also causes the
// requester of the resource to act like the request was never made. By
// default, load is cancelled with ERR_ABORTED code. CancelWithError can be used
// to cancel load with any other error code.
class CONTENT_EXPORT ResourceController {
virtual ~ResourceController() {}
virtual void Cancel() = 0;
virtual void CancelWithError(int error_code) = 0;
// Resumes the request. May only be called if the request was previously
// deferred. Guaranteed not to call back into the ResourceHandler, or destroy
// it, synchronously.
virtual void Resume() = 0;
// Similar to |Resume()| but can only be called if the request was previously
// redirected. |modified_request_headers| are changes applied to the request
// headers after updating them for the redirect.
virtual void ResumeForRedirect(const base::Optional<net::HttpRequestHeaders>&
modified_request_headers) = 0;
} // namespace content