blob: 55bfb48f7334ab55ca8c2fd08e4320a4a165abe2 [file] [log] [blame]
// Copyright 2015 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.
[DartPackage="mojo"]
module mojo;
import "mojo/public/interfaces/network/http_header.mojom";
struct URLRequest {
// Specify the cache behavior of the request.
enum CacheMode {
// Default behavior.
DEFAULT,
// The HTTP request will bypass the local cache and will have a
// 'Cache-Control: nocache' header added in that causes any proxy servers
// to also not satisfy the request from their cache. This has the effect
// of forcing a full end-to-end fetch.
BYPASS_CACHE,
// The HTTP request will fail if it cannot serve the requested resource
// from the cache (or some equivalent local store).
ONLY_FROM_CACHE,
};
// The URL to load.
string url;
// The HTTP method if applicable.
string method = "GET";
// Additional HTTP request headers.
array<HttpHeader>? headers;
// The payload for the request body, represented as a concatenation of data
// streams. For HTTP requests, the method must be set to "POST" or "PUT".
array<handle<data_pipe_consumer>>? body;
// The buffer size of the data pipe returned in URLResponse's |body| member.
// A value of 0 indicates that the default buffer size should be used. This
// value is just a suggestion. The URLLoader may choose to ignore this value.
uint32 response_body_buffer_size = 0;
// If set to true, then redirects will be automatically followed. Otherwise,
// when a redirect is encounterd, FollowRedirect must be called to proceed.
bool auto_follow_redirects = false;
// The cache behavior for the request.
CacheMode cache_mode = DEFAULT;
};