| syntax = "proto2"; |
| |
| package content.fuzzing.video_capture_host.proto; |
| |
| import "media/capture/mojom/video_capture.mojom.mojolpm.proto"; |
| |
| // Bind a new VideoCaptureHost remote |
| message NewVideoCaptureHostAction { |
| required uint32 id = 1; |
| required uint32 render_process_id = 2; |
| required uint32 routing_id = 3; |
| } |
| |
| // A wrapper message for all remote actions. It requires further specifying |
| // the `render_process_id` and `device_index` to identify which session id to |
| // inject into the call. So the call correctly acts for a specific device. |
| message VideoCaptureHostDeviceRemoteAction { |
| required uint32 render_process_id = 1; |
| required uint32 device_index = 2; |
| required mojolpm.media.mojom.VideoCaptureHost.RemoteAction remote_action = 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 { |
| RunThreadAction run_thread = 1; |
| |
| NewVideoCaptureHostAction new_video_capture_host = 2; |
| VideoCaptureHostDeviceRemoteAction video_capture_host_device_remote_action = |
| 3; |
| mojolpm.media.mojom.VideoCaptureObserver.ReceiverAction |
| video_capture_observer_receiver_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]; |
| } |