// Copyright 2023 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
syntax = "proto3";
package test.fuzzing.page_load_fuzzing;
// A fuzzer case for page_load_in_process_fuzzer.cc.
message FuzzCase {
// Any network (HTTP, HTTPS) resources that should be available
repeated NetworkResource network_resource = 1;
// Where to navigate the browser initially
// If present, we navigate to a data URI with a particular content.
// Otherwise we navigate to the first network resource.
optional DataUriNavigation data_uri_navigation = 2;
// Body of the response.
string body = 3;
}
// Additional information if we're loading the resource over the network.
message NetworkResource {
// Which server will this resource be made available on.
// Typically, use HTTPS_ORIGIN1, but if you need to test a cross-origin
// case you can make resources available on other servers.
WhichServer which_server = 1;
// The path to request on the http(s) server. Should start with /
string path = 2;
// The HTTP status which will be presented in the response, e.g. 200
uint32 http_status = 3;
// Custom headers in the HTTP response.
repeated CustomHeader custom_headers = 4;
// The Content-Type to be returned.
string content_type = 5;
// The textual reason string to go along with the HTTP status code,
// for example, "OK"
string reason = 6;
// The body of the response.
// The strings $HTTPS_ORIGIN1, $HTTPS_ORIGIN2, $HTTP_ORIGIN1 and $HTTP_ORIGIN2
// will be substituted with the root URIs for the test servers.
// For example, "<html><img src=\"$HTTPS_ORIGIN1/test.png\"></html>"
// should load a page from one of the network_resources provided in
// the FuzzCase. Four servers are provided to test cross-origin cases.
optional string body = 7;
}
// Which server should this network resource be made available on.
enum WhichServer {
HTTPS_ORIGIN1 = 0;
HTTPS_ORIGIN2 = 1;
HTTP_ORIGIN1 = 2;
HTTP_ORIGIN2 = 3;
}
// A custom header in an HTTP response.
message CustomHeader {
string key = 1;
string value = 2;
}
// A navigation to a data: URI
message DataUriNavigation {
// The content-type of the data URI
string content_type = 1;
// The body, which will be base64 encoded.
// The strings $HTTPS_ORIGIN1, $HTTPS_ORIGIN2, $HTTP_ORIGIN1 and $HTTP_ORIGIN2
// will be substituted with the root URIs for the test servers.
// For example, "<html><img src=\"$HTTPS_ORIGIN1/test.png\"></html>"
// should load a page from one of the network_resources provided in
// the FuzzCase. Four servers are provided to test cross-origin cases.
string body = 2;
}