Extensions: Store disable reasons in Sync
[chromium-blink-merge.git] / chrome / common / spellcheck_messages.h
blobc8b02fb00ecfd09b1d4973d019cb4acb07d9452a
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 // IPC messages for spellcheck.
6 // Multiply-included message file, hence no include guard.
8 #include "chrome/common/spellcheck_marker.h"
9 #include "chrome/common/spellcheck_result.h"
10 #include "ipc/ipc_message_macros.h"
11 #include "ipc/ipc_platform_file.h"
13 #if !defined(ENABLE_SPELLCHECK)
14 #error "Spellcheck should be enabled"
15 #endif
17 #define IPC_MESSAGE_START SpellCheckMsgStart
19 IPC_ENUM_TRAITS(SpellCheckResult::Decoration)
21 IPC_STRUCT_TRAITS_BEGIN(SpellCheckResult)
22 IPC_STRUCT_TRAITS_MEMBER(decoration)
23 IPC_STRUCT_TRAITS_MEMBER(location)
24 IPC_STRUCT_TRAITS_MEMBER(length)
25 IPC_STRUCT_TRAITS_MEMBER(replacement)
26 IPC_STRUCT_TRAITS_MEMBER(hash)
27 IPC_STRUCT_TRAITS_END()
29 IPC_STRUCT_TRAITS_BEGIN(SpellCheckMarker)
30 IPC_STRUCT_TRAITS_MEMBER(hash)
31 IPC_STRUCT_TRAITS_MEMBER(offset)
32 IPC_STRUCT_TRAITS_END()
34 // Messages sent from the browser to the renderer.
36 IPC_MESSAGE_CONTROL1(SpellCheckMsg_EnableSpellCheck,
37 bool)
39 // Passes some initialization params from the browser to the renderer's
40 // spellchecker. This can be called directly after startup or in (async)
41 // response to a RequestDictionary ViewHost message.
42 IPC_MESSAGE_CONTROL4(SpellCheckMsg_Init,
43 IPC::PlatformFileForTransit /* bdict_file */,
44 std::set<std::string> /* custom_dict_words */,
45 std::string /* language */,
46 bool /* auto spell correct */)
48 // Words have been added and removed in the custom dictionary; update the local
49 // custom word list.
50 IPC_MESSAGE_CONTROL2(SpellCheckMsg_CustomDictionaryChanged,
51 std::vector<std::string> /* words_added */,
52 std::vector<std::string> /* words_removed */)
54 // Toggle the auto spell correct functionality.
55 IPC_MESSAGE_CONTROL1(SpellCheckMsg_EnableAutoSpellCorrect,
56 bool /* enable */)
58 // Request a list of all document markers in the renderer for spelling service
59 // feedback.
60 IPC_MESSAGE_CONTROL0(SpellCheckMsg_RequestDocumentMarkers)
62 // Send a list of document markers in the renderer to the spelling service
63 // feedback sender.
64 IPC_MESSAGE_CONTROL1(SpellCheckHostMsg_RespondDocumentMarkers,
65 std::vector<uint32> /* document marker identifiers */)
67 #if !defined(OS_MACOSX)
68 // Sends text-check results from the Spelling service when the service finishes
69 // checking text received by a SpellCheckHostMsg_CallSpellingService message.
70 // If the service is not available, the 4th parameter should be false and the
71 // 5th parameter should contain the requested sentence.
72 IPC_MESSAGE_ROUTED4(SpellCheckMsg_RespondSpellingService,
73 int /* request identifier given by WebKit */,
74 bool /* succeeded calling service */,
75 base::string16 /* sentence */,
76 std::vector<SpellCheckResult>)
77 #endif
79 #if defined(OS_MACOSX)
80 // This message tells the renderer to advance to the next misspelling. It is
81 // sent when the user clicks the "Find Next" button on the spelling panel.
82 IPC_MESSAGE_ROUTED0(SpellCheckMsg_AdvanceToNextMisspelling)
84 // Sends when NSSpellChecker finishes checking text received by a preceding
85 // SpellCheckHostMsg_RequestTextCheck message.
86 IPC_MESSAGE_ROUTED2(SpellCheckMsg_RespondTextCheck,
87 int /* request identifier given by WebKit */,
88 std::vector<SpellCheckResult>)
90 IPC_MESSAGE_ROUTED1(SpellCheckMsg_ToggleSpellPanel,
91 bool)
92 #endif
94 // Messages sent from the renderer to the browser.
96 // The renderer has tried to spell check a word, but couldn't because no
97 // dictionary was available to load. Request that the browser find an
98 // appropriate dictionary and return it.
99 IPC_MESSAGE_CONTROL0(SpellCheckHostMsg_RequestDictionary)
101 // Tracks spell checking occurrence to collect histogram.
102 IPC_MESSAGE_ROUTED2(SpellCheckHostMsg_NotifyChecked,
103 base::string16 /* word */,
104 bool /* true if checked word is misspelled */)
106 #if !defined(OS_MACOSX)
107 // Asks the Spelling service to check text. When the service finishes checking
108 // the input text, it sends a SpellingCheckMsg_RespondSpellingService with
109 // text-check results.
110 IPC_MESSAGE_CONTROL4(SpellCheckHostMsg_CallSpellingService,
111 int /* route_id for response */,
112 int /* request identifier given by WebKit */,
113 base::string16 /* sentence */,
114 std::vector<SpellCheckMarker> /* markers */)
115 #endif
117 #if defined(OS_MACOSX)
118 // Tells the browser to display or not display the SpellingPanel
119 IPC_MESSAGE_ROUTED1(SpellCheckHostMsg_ShowSpellingPanel,
120 bool /* if true, then show it, otherwise hide it*/)
122 // Tells the browser to update the spelling panel with the given word.
123 IPC_MESSAGE_ROUTED1(SpellCheckHostMsg_UpdateSpellingPanelWithMisspelledWord,
124 base::string16 /* the word to update the panel with */)
126 // TODO(groby): This needs to originate from SpellcheckProvider.
127 IPC_SYNC_MESSAGE_CONTROL2_1(SpellCheckHostMsg_CheckSpelling,
128 base::string16 /* word */,
129 int /* route_id */,
130 bool /* correct */)
132 IPC_SYNC_MESSAGE_CONTROL1_1(SpellCheckHostMsg_FillSuggestionList,
133 base::string16 /* word */,
134 std::vector<base::string16> /* suggestions */)
136 IPC_MESSAGE_CONTROL4(SpellCheckHostMsg_RequestTextCheck,
137 int /* route_id for response */,
138 int /* request identifier given by WebKit */,
139 base::string16 /* sentence */,
140 std::vector<SpellCheckMarker> /* markers */)
142 IPC_MESSAGE_ROUTED2(SpellCheckHostMsg_ToggleSpellCheck,
143 bool /* enabled */,
144 bool /* checked */)
145 #endif // OS_MACOSX