// Copyright 2017 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. module spellcheck.mojom; import "mojo/public/mojom/base/file.mojom"; import "mojo/public/mojom/base/string16.mojom"; // Render process interface exposed to the browser for receiving process- // wide spellcheck control and updates from the browser process. // interface SpellChecker { // Initialize the render process spellchecker. Called after startup and // also in response to a renderer's spellcheck.mojom.SpellCheckHost // RequestDictionary request. Initialize(array dictionaries, array custom_words, bool enable); // Custom dictionary words have been added or removed: update the local // custom word list. CustomDictionaryChanged( array words_added, array words_removed); }; struct SpellCheckBDictLanguage { mojo_base.mojom.ReadOnlyFile? file; string language; }; // Browser process interface exposed to the renderer for requesting spell- // check host services to be initialized. // interface SpellCheckInitializationHost { // Asks the browser to initialize the renderer's spellcheck system. The // initialize call arrives on interface spellcheck.mojom.SpellChecker // in async response to this request. RequestDictionary(); }; // Browser process interface exposed to the renderer for requesting spell- // check host services. This interface is bound per frame. // interface SpellCheckHost { // Tracks spell checking occurrences to collect histograms, where |word| // was checked, and |misspelled| is true if |word| was misspelt. NotifyChecked(mojo_base.mojom.String16 word, bool misspelled); // Asks the host to spellcheck the |text| using a remote Spelling server // to do the spellchecking. If the remote Spelling server is available, // returns |success| true, and the spellchecked |results|. [EnableIf=USE_RENDERER_SPELLCHECKER] CallSpellingService(mojo_base.mojom.String16 text) => (bool success, array results); // Asks the host to spellcheck the |text| using a platform-specific spell // checker, and returns the spellchecked |results|. The spell checker is // also informed about the existing spelling markers. [EnableIf=USE_BROWSER_SPELLCHECKER] RequestTextCheck(mojo_base.mojom.String16 text, array spelling_markers) => (array results); // Disconnects the Android spell checker session bridge. [EnableIf=is_android] DisconnectSessionBridge(); // Checks the correctness of a word with a platform-specific spell checker. [EnableIf=USE_BROWSER_SPELLCHECKER_AND_SPELLING_SERVICE, Sync] CheckSpelling(mojo_base.mojom.String16 word) => (bool correct); // Returns a list of suggestions for a given word with a platform-specific // spell checker. [EnableIf=USE_BROWSER_SPELLCHECKER_AND_SPELLING_SERVICE, Sync] FillSuggestionList(mojo_base.mojom.String16 word) => (array suggestions); // Completes initialization of the spellcheck service by loading dictionaries. [EnableIf=is_win] InitializeDictionaries() => (array dictionaries, array custom_words, bool enable); }; // Decoration specifies the type of the markers provided by the spell check // service. enum Decoration { kSpelling, kGrammar, }; // SpellingMarkers hold the marker info for spelling and grammar. the |start| of // the marker must not exceed the |end|. struct SpellingMarker { uint32 start; uint32 end; Decoration marker_type; }; struct SpellCheckResult { Decoration decoration; int32 location; int32 length; array replacements; bool should_hide_suggestion_menu; };