chromium/content/test/fuzzer/controller_presentation_service_delegate_for_fuzzing.proto

// 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 `ControllerPresentationServiceDelegateForFuzzing`
// An `Action` will run a callable

syntax = "proto2";

package content.fuzzing.controller_presentation_service_delegate_for_fuzzing.proto;

import "third_party/blink/public/mojom/presentation/presentation.mojom.mojolpm.proto";
import "url/mojom/url.mojom.mojolpm.proto";

// Used to specify actions, which will run the appropriate call onto the
// specified, by url,`PresentationScreenAvailabilityListener`.
// Having been registered with the fake, through the interface as the delegate.
message GetAvailabilityUrlAction {
  required mojolpm.url.mojom.Url listener_availability_url = 1;
}
message OnScreenAvailabilityChangedAction {
  required mojolpm.url.mojom.Url listener_availability_url = 1;
  required mojolpm.blink.mojom.ScreenAvailability screen_availability = 2;
}

// Used to specify actions, which would run a callback established through the
// interface as the delegate
message PresentationConnectionAction {
  required mojolpm.blink.mojom.PresentationConnectionResult
      presentation_connection_result = 1;
}
message PresentationConnectionErrorAction {
  required mojolpm.blink.mojom.PresentationError presentation_error = 1;
}
message PresentationConnectionStateChangedAction {
  required mojolpm.blink.mojom.PresentationConnectionState
      presentation_connection_state = 1;
}

// Actions that can be performed by the fake.
message Action {
  oneof action {
    GetAvailabilityUrlAction listener_get_availability_url = 1;
    OnScreenAvailabilityChangedAction listener_on_screen_availability_changed =
        2;

    PresentationConnectionAction set_default_presentation_urls = 3;

    PresentationConnectionAction start_presentation_success = 4;
    PresentationConnectionErrorAction start_presentation_error = 5;

    PresentationConnectionAction reconnect_presentation_success = 6;
    PresentationConnectionErrorAction reconnect_presentation_error = 7;

    PresentationConnectionStateChangedAction
        listen_for_connection_state_change_state_changed = 8;
  }
}