Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(195)

Side by Side Diff: components/spellcheck/renderer/spellcheck_provider.h

Issue 2792233003: Split SpellCheckPanel off SpellCheckProvider (Closed)
Patch Set: Remove histograms.xml from patch Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 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 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef COMPONENTS_SPELLCHECK_RENDERER_SPELLCHECK_PROVIDER_H_ 5 #ifndef COMPONENTS_SPELLCHECK_RENDERER_SPELLCHECK_PROVIDER_H_
6 #define COMPONENTS_SPELLCHECK_RENDERER_SPELLCHECK_PROVIDER_H_ 6 #define COMPONENTS_SPELLCHECK_RENDERER_SPELLCHECK_PROVIDER_H_
7 7
8 #include <stddef.h> 8 #include <stddef.h>
9 #include <stdint.h> 9 #include <stdint.h>
10 10
11 #include <vector> 11 #include <vector>
12 12
13 #include "base/id_map.h" 13 #include "base/id_map.h"
14 #include "base/macros.h" 14 #include "base/macros.h"
15 #include "components/spellcheck/spellcheck_build_features.h" 15 #include "components/spellcheck/spellcheck_build_features.h"
16 #include "content/public/renderer/render_view_observer.h" 16 #include "content/public/renderer/render_view_observer.h"
17 #include "content/public/renderer/render_view_observer_tracker.h" 17 #include "content/public/renderer/render_view_observer_tracker.h"
18 #include "third_party/WebKit/public/web/WebSpellCheckClient.h"
19 #include "third_party/WebKit/public/web/WebTextCheckClient.h" 18 #include "third_party/WebKit/public/web/WebTextCheckClient.h"
20 19
21 class RenderView;
22 class SpellCheck; 20 class SpellCheck;
23 struct SpellCheckResult; 21 struct SpellCheckResult;
24 22
25 namespace blink { 23 namespace blink {
26 class WebTextCheckingCompletion; 24 class WebTextCheckingCompletion;
27 struct WebTextCheckingResult; 25 struct WebTextCheckingResult;
28 } 26 }
29 27
28 // TODO(xiaochengh): Make SpellCheckProvider a RenderFrameObserver.
30 // This class deals with invoking browser-side spellcheck mechanism 29 // This class deals with invoking browser-side spellcheck mechanism
31 // which is done asynchronously. 30 // which is done asynchronously.
32 // TODO(xiaochengh): Split this class to implement WebSpellCheckClient and
33 // WebTextCheckClient separately.
34 class SpellCheckProvider 31 class SpellCheckProvider
35 : public content::RenderViewObserver, 32 : public content::RenderViewObserver,
36 public content::RenderViewObserverTracker<SpellCheckProvider>, 33 public content::RenderViewObserverTracker<SpellCheckProvider>,
37 public blink::WebSpellCheckClient,
38 public blink::WebTextCheckClient { 34 public blink::WebTextCheckClient {
39 public: 35 public:
40 using WebTextCheckCompletions = IDMap<blink::WebTextCheckingCompletion*>; 36 using WebTextCheckCompletions = IDMap<blink::WebTextCheckingCompletion*>;
41 37
42 SpellCheckProvider(content::RenderView* render_view, 38 SpellCheckProvider(content::RenderView* render_view,
43 SpellCheck* spellcheck); 39 SpellCheck* spellcheck);
44 ~SpellCheckProvider() override; 40 ~SpellCheckProvider() override;
45 41
46 // Requests async spell and grammar checker to the platform text 42 // Requests async spell and grammar checker to the platform text
47 // checker, which is available on the browser process. The function does not 43 // checker, which is available on the browser process. The function does not
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
81 void checkSpelling( 77 void checkSpelling(
82 const blink::WebString& text, 78 const blink::WebString& text,
83 int& offset, 79 int& offset,
84 int& length, 80 int& length,
85 blink::WebVector<blink::WebString>* optional_suggestions) override; 81 blink::WebVector<blink::WebString>* optional_suggestions) override;
86 void requestCheckingOfText( 82 void requestCheckingOfText(
87 const blink::WebString& text, 83 const blink::WebString& text,
88 blink::WebTextCheckingCompletion* completion) override; 84 blink::WebTextCheckingCompletion* completion) override;
89 void cancelAllPendingRequests() override; 85 void cancelAllPendingRequests() override;
90 86
91 // blink::WebSpellCheckClient implementation.
92 void showSpellingUI(bool show) override;
93 bool isShowingSpellingUI() override;
94 void updateSpellingUIWithMisspelledWord(
95 const blink::WebString& word) override;
96
97 #if !BUILDFLAG(USE_BROWSER_SPELLCHECKER) 87 #if !BUILDFLAG(USE_BROWSER_SPELLCHECKER)
98 void OnRespondSpellingService( 88 void OnRespondSpellingService(
99 int identifier, 89 int identifier,
100 bool succeeded, 90 bool succeeded,
101 const base::string16& text, 91 const base::string16& text,
102 const std::vector<SpellCheckResult>& results); 92 const std::vector<SpellCheckResult>& results);
103 #endif 93 #endif
104 94
105 // Returns whether |text| has word characters, i.e. whether a spellchecker 95 // Returns whether |text| has word characters, i.e. whether a spellchecker
106 // needs to check this text. 96 // needs to check this text.
107 bool HasWordCharacters(const base::string16& text, int index) const; 97 bool HasWordCharacters(const base::string16& text, int index) const;
108 98
109 #if BUILDFLAG(USE_BROWSER_SPELLCHECKER) 99 #if BUILDFLAG(USE_BROWSER_SPELLCHECKER)
110 void OnAdvanceToNextMisspelling();
111 void OnRespondTextCheck( 100 void OnRespondTextCheck(
112 int identifier, 101 int identifier,
113 const base::string16& line, 102 const base::string16& line,
114 const std::vector<SpellCheckResult>& results); 103 const std::vector<SpellCheckResult>& results);
115 void OnToggleSpellPanel(bool is_currently_visible);
116 #endif 104 #endif
117 105
118 // Holds ongoing spellchecking operations, assigns IDs for the IPC routing. 106 // Holds ongoing spellchecking operations, assigns IDs for the IPC routing.
119 WebTextCheckCompletions text_check_completions_; 107 WebTextCheckCompletions text_check_completions_;
120 108
121 // The last text sent to the browser process to spellcheck it and its 109 // The last text sent to the browser process to spellcheck it and its
122 // spellchecking results. 110 // spellchecking results.
123 base::string16 last_request_; 111 base::string16 last_request_;
124 blink::WebVector<blink::WebTextCheckingResult> last_results_; 112 blink::WebVector<blink::WebTextCheckingResult> last_results_;
125 113
126 // True if the browser is showing the spelling panel for us.
127 bool spelling_panel_visible_;
128
129 // Weak pointer to shared (per RenderView) spellcheck data. 114 // Weak pointer to shared (per RenderView) spellcheck data.
130 SpellCheck* spellcheck_; 115 SpellCheck* spellcheck_;
131 116
132 DISALLOW_COPY_AND_ASSIGN(SpellCheckProvider); 117 DISALLOW_COPY_AND_ASSIGN(SpellCheckProvider);
133 }; 118 };
134 119
135 #endif // COMPONENTS_SPELLCHECK_RENDERER_SPELLCHECK_PROVIDER_H_ 120 #endif // COMPONENTS_SPELLCHECK_RENDERER_SPELLCHECK_PROVIDER_H_
OLDNEW
« no previous file with comments | « components/spellcheck/renderer/spellcheck_panel.cc ('k') | components/spellcheck/renderer/spellcheck_provider.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698