// Copyright 2014 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.

syntax = "proto2";

option optimize_for = LITE_RUNTIME;

package content;

message ServiceWorkerCacheStorageIndex {
  message Cache {
    required string name = 1;
  }
  repeated Cache cache = 1;
  optional string origin = 2;
}

message ServiceWorkerCacheHeaderMap {
  required string name = 1;
  required string value = 2;
}

message ServiceWorkerCacheRequest {
  required string method = 1;
  repeated ServiceWorkerCacheHeaderMap headers = 2;
}

message ServiceWorkerCacheResponse {
  enum ResponseType {
    BASIC_TYPE = 0;
    CORS_TYPE = 1;
    DEFAULT_TYPE = 2;
    ERROR_TYPE = 3;
    OPAQUE_TYPE = 4;
  }

  required int32 status_code = 1;
  required string status_text = 2;
  required ResponseType response_type = 3;
  repeated ServiceWorkerCacheHeaderMap headers = 4;
}

message ServiceWorkerCacheMetadata {
  required ServiceWorkerCacheRequest request = 1;
  required ServiceWorkerCacheResponse response = 2;
}