| // 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. |
| |
| module ash.annotator.mojom; |
| |
| import "ash/webui/projector_app/public/mojom/annotator_structs.mojom"; |
| |
| // AnnotatorPage interface implemented in the Javascript. Used by the browser |
| // process to send events to Javascript. |
| interface UntrustedAnnotatorPage { |
| // Clears the annotations on the annotator canvas. |
| Clear(); |
| // Undo the last stroke on the annotator canvas. |
| Undo(); |
| // Redo the last stroke on the annotator canvas. |
| Redo(); |
| // Sets the tool the user uses to annotate. |
| SetTool(AnnotatorTool tool); |
| }; |
| |
| // AnnotatoPagerHandler interface implemented in C++ in the browser process. |
| // Used by Javascript to communicate with the browser process. |
| interface UntrustedAnnotatorPageHandler { |
| // Notifies the browser that that undo/redo availability |
| // changed for annotator. |
| OnUndoRedoAvailabilityChanged(bool undo_available, |
| bool redo_available); |
| |
| // Notifies the browser process that the annotation canvas |
| // has been initialized. |
| OnCanvasInitialized(bool success); |
| }; |
| |
| // Interface used to setup the communication between Javascript and C++ |
| // in the browser process. |
| interface UntrustedAnnotatorPageHandlerFactory { |
| // Creates the AnnotatorPageHandler in the browser process and binds it |
| // to receive calls from Javascript. |
| Create(pending_receiver<UntrustedAnnotatorPageHandler> handler, |
| pending_remote<UntrustedAnnotatorPage> annotator); |
| }; |