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

Unified Diff: components/spellcheck/renderer/spellcheck_provider.h

Issue 2857353002: Convert Spellcheck host MessageFilter IPC to mojo (Closed)
Patch Set: Use MakeUnique for the MessageLoop in TestingSpellCheckProvider. Created 3 years, 7 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « components/spellcheck/renderer/spellcheck.cc ('k') | components/spellcheck/renderer/spellcheck_provider.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: components/spellcheck/renderer/spellcheck_provider.h
diff --git a/components/spellcheck/renderer/spellcheck_provider.h b/components/spellcheck/renderer/spellcheck_provider.h
index cead10758dccd52ad8765b733c2a450fd2270c8d..d0482a0c1fa7f6e6b151bb2ccffcedb4b01c9fec 100644
--- a/components/spellcheck/renderer/spellcheck_provider.h
+++ b/components/spellcheck/renderer/spellcheck_provider.h
@@ -5,13 +5,11 @@
#ifndef COMPONENTS_SPELLCHECK_RENDERER_SPELLCHECK_PROVIDER_H_
#define COMPONENTS_SPELLCHECK_RENDERER_SPELLCHECK_PROVIDER_H_
-#include <stddef.h>
-#include <stdint.h>
-
#include <vector>
#include "base/id_map.h"
#include "base/macros.h"
+#include "components/spellcheck/common/spellcheck.mojom.h"
#include "components/spellcheck/spellcheck_build_features.h"
#include "content/public/renderer/render_frame_observer.h"
#include "content/public/renderer/render_frame_observer_tracker.h"
@@ -25,8 +23,8 @@ class WebTextCheckingCompletion;
struct WebTextCheckingResult;
}
-// This class deals with invoking browser-side spellcheck mechanism
-// which is done asynchronously.
+// This class deals with asynchronously invoking text spelling and grammar
+// checking services provided by the browser process (host).
class SpellCheckProvider
: public content::RenderFrameObserver,
public content::RenderFrameObserverTracker<SpellCheckProvider>,
@@ -38,14 +36,14 @@ class SpellCheckProvider
SpellCheck* spellcheck);
~SpellCheckProvider() override;
- // Requests async spell and grammar checker to the platform text
- // checker, which is available on the browser process. The function does not
- // have special handling for partial words, as Blink guarantees that no
- // request is made when typing in the middle of a word.
+ // Requests async spell and grammar checks from the platform text checker
+ // available in the browser process. The function does not have special
+ // handling for partial words, as Blink guarantees that no request is made
+ // when typing in the middle of a word.
void RequestTextChecking(const base::string16& text,
blink::WebTextCheckingCompletion* completion);
- // The number of ongoing IPC requests.
+ // The number of ongoing spellcheck host requests.
size_t pending_text_request_size() const {
return text_check_completions_.size();
}
@@ -56,23 +54,31 @@ class SpellCheckProvider
// Enables document-wide spellchecking.
void EnableSpellcheck(bool enabled);
- // RenderFrameObserver implementation.
+ // content::RenderFrameObserver:
bool OnMessageReceived(const IPC::Message& message) override;
void FocusedNodeChanged(const blink::WebNode& node) override;
private:
friend class TestingSpellCheckProvider;
- // Tries to satisfy a spell check request from the cache in |last_request_|.
+ // Sets the SpellCheckHost (for unit tests).
+ void SetSpellCheckHostForTesting(spellcheck::mojom::SpellCheckHostPtr host) {
+ spellcheck_host_ = std::move(host);
+ }
+
+ // Returns the SpellCheckHost.
+ spellcheck::mojom::SpellCheckHost& GetSpellCheckHost();
+
+ // Tries to satisfy a spellcheck request from the cache in |last_request_|.
// Returns true (and cancels/finishes the completion) if it can, false
// if the provider should forward the query on.
bool SatisfyRequestFromCache(const base::string16& text,
blink::WebTextCheckingCompletion* completion);
- // RenderFrameObserver implementation.
+ // content::RenderFrameObserver:
void OnDestruct() override;
- // blink::WebTextCheckClient implementation.
+ // blink::WebTextCheckClient:
void CheckSpelling(
const blink::WebString& text,
int& offset,
@@ -84,11 +90,10 @@ class SpellCheckProvider
void CancelAllPendingRequests() override;
#if !BUILDFLAG(USE_BROWSER_SPELLCHECKER)
- void OnRespondSpellingService(
- int identifier,
- bool succeeded,
- const base::string16& text,
- const std::vector<SpellCheckResult>& results);
+ void OnRespondSpellingService(int identifier,
+ const base::string16& text,
+ bool succeeded,
+ const std::vector<SpellCheckResult>& results);
#endif
// Returns whether |text| has word characters, i.e. whether a spellchecker
@@ -102,17 +107,21 @@ class SpellCheckProvider
const std::vector<SpellCheckResult>& results);
#endif
- // Holds ongoing spellchecking operations, assigns IDs for the IPC routing.
+ // Holds ongoing spellchecking operations.
WebTextCheckCompletions text_check_completions_;
- // The last text sent to the browser process to spellcheck it and its
- // spellchecking results.
+ // The last text sent to the browser process for spellchecking, and its
+ // spellcheck results and WebTextCheckCompletions identifier.
base::string16 last_request_;
blink::WebVector<blink::WebTextCheckingResult> last_results_;
+ int last_identifier_;
- // Weak pointer to shared (per RenderView) spellcheck data.
+ // Weak pointer to shared (per renderer) spellcheck data.
SpellCheck* spellcheck_;
+ // Interface to the SpellCheckHost.
+ spellcheck::mojom::SpellCheckHostPtr spellcheck_host_;
+
DISALLOW_COPY_AND_ASSIGN(SpellCheckProvider);
};
« no previous file with comments | « components/spellcheck/renderer/spellcheck.cc ('k') | components/spellcheck/renderer/spellcheck_provider.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698