| // Copyright 2020 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| // Message format for the MojoLPM fuzzer for the FileSystemManager interface. |
| |
| syntax = "proto2"; |
| |
| package content.fuzzing.file_system_manager.proto; |
| |
| import "third_party/blink/public/mojom/filesystem/file_system.mojom.mojolpm.proto"; |
| import "third_party/blink/public/common/storage_key/proto/storage_key.proto"; |
| |
| // Bind a new FileSystemManager remote |
| message NewFileSystemManagerAction { |
| enum RenderProcessId { |
| ZERO = 0; |
| ONE = 1; |
| } |
| |
| required uint32 id = 1; |
| required RenderProcessId render_process_id = 2; |
| required storage_key_proto.StorageKey storage_key = 3; |
| } |
| |
| // Run the specific sequence for (an indeterminate) period. This is not |
| // intended to create a specific ordering, but to allow the fuzzer to delay a |
| // later task until previous tasks have completed. |
| message RunThreadAction { |
| enum ThreadId { |
| IO = 0; |
| UI = 1; |
| } |
| |
| required ThreadId id = 1; |
| } |
| |
| // Actions that can be performed by the fuzzer. |
| message Action { |
| oneof action { |
| NewFileSystemManagerAction new_file_system_manager = 1; |
| RunThreadAction run_thread = 2; |
| mojolpm.blink.mojom.FileSystemManager.RemoteAction |
| file_system_manager_remote_action = 3; |
| mojolpm.blink.mojom.FileSystemCancellableOperation.RemoteAction |
| file_system_cancellable_operation_remote_action = 4; |
| } |
| } |
| |
| // Sequence provides a level of indirection which allows Testcase to compactly |
| // express repeated sequences of actions. |
| message Sequence { |
| repeated uint32 action_indexes = 1 [packed = true]; |
| } |
| |
| // Testcase is the top-level message type interpreted by the fuzzer. |
| message Testcase { |
| repeated Action actions = 1; |
| repeated Sequence sequences = 2; |
| repeated uint32 sequence_indexes = 3 [packed = true]; |
| } |