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

Unified Diff: components/test_runner/spell_check_client.cc

Issue 2707183003: Move //components/test_runner back into //content/shell (Closed)
Patch Set: Trim DEPS Created 3 years, 10 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
Index: components/test_runner/spell_check_client.cc
diff --git a/components/test_runner/spell_check_client.cc b/components/test_runner/spell_check_client.cc
deleted file mode 100644
index 50cd5f932e9fe0e96a94f4201a3d4f7f92fcfa22..0000000000000000000000000000000000000000
--- a/components/test_runner/spell_check_client.cc
+++ /dev/null
@@ -1,168 +0,0 @@
-// Copyright 2014 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#include "components/test_runner/spell_check_client.h"
-
-#include <stddef.h>
-
-#include "base/bind.h"
-#include "base/bind_helpers.h"
-#include "base/logging.h"
-#include "base/macros.h"
-#include "components/test_runner/mock_grammar_check.h"
-#include "components/test_runner/test_runner.h"
-#include "components/test_runner/web_test_delegate.h"
-#include "third_party/WebKit/public/web/WebFrame.h"
-#include "third_party/WebKit/public/web/WebKit.h"
-#include "third_party/WebKit/public/web/WebTextCheckingCompletion.h"
-#include "third_party/WebKit/public/web/WebTextCheckingResult.h"
-
-namespace test_runner {
-
-SpellCheckClient::SpellCheckClient(TestRunner* test_runner)
- : last_requested_text_checking_completion_(nullptr),
- test_runner_(test_runner),
- weak_factory_(this) {
- DCHECK(test_runner);
-}
-
-SpellCheckClient::~SpellCheckClient() {
-}
-
-void SpellCheckClient::SetDelegate(WebTestDelegate* delegate) {
- delegate_ = delegate;
-}
-
-void SpellCheckClient::SetEnabled(bool enabled) {
- enabled_ = enabled;
-}
-
-void SpellCheckClient::Reset() {
- enabled_ = false;
- resolved_callback_.Reset();
-}
-
-// blink::WebSpellCheckClient
-void SpellCheckClient::checkSpelling(
- const blink::WebString& text,
- int& misspelled_offset,
- int& misspelled_length,
- blink::WebVector<blink::WebString>* optional_suggestions) {
- if (!enabled_) {
- misspelled_offset = 0;
- misspelled_length = 0;
- return;
- }
-
- // Check the spelling of the given text.
- spell_check_.SpellCheckWord(text, &misspelled_offset, &misspelled_length);
-}
-
-void SpellCheckClient::requestCheckingOfText(
- const blink::WebString& text,
- const blink::WebVector<uint32_t>& markers,
- const blink::WebVector<unsigned>& marker_offsets,
- blink::WebTextCheckingCompletion* completion) {
- if (!enabled_ || text.isEmpty()) {
- if (completion) {
- completion->didCancelCheckingText();
- RequestResolved();
- }
- return;
- }
-
- if (last_requested_text_checking_completion_) {
- last_requested_text_checking_completion_->didCancelCheckingText();
- RequestResolved();
- }
-
- last_requested_text_checking_completion_ = completion;
- last_requested_text_check_string_ = text;
- if (spell_check_.HasInCache(text))
- FinishLastTextCheck();
- else
- delegate_->PostDelayedTask(
- base::Bind(&SpellCheckClient::FinishLastTextCheck,
- weak_factory_.GetWeakPtr()),
- 0);
-}
-
-void SpellCheckClient::cancelAllPendingRequests() {
- if (!last_requested_text_checking_completion_)
- return;
- last_requested_text_checking_completion_->didCancelCheckingText();
- last_requested_text_checking_completion_ = nullptr;
-}
-
-void SpellCheckClient::FinishLastTextCheck() {
- if (!last_requested_text_checking_completion_)
- return;
- std::vector<blink::WebTextCheckingResult> results;
- int offset = 0;
- if (!spell_check_.IsMultiWordMisspelling(last_requested_text_check_string_,
- &results)) {
- base::string16 text = last_requested_text_check_string_.utf16();
- while (text.length()) {
- int misspelled_position = 0;
- int misspelled_length = 0;
- spell_check_.SpellCheckWord(blink::WebString::fromUTF16(text),
- &misspelled_position, &misspelled_length);
- if (!misspelled_length)
- break;
- blink::WebVector<blink::WebString> suggestions;
- spell_check_.FillSuggestionList(
- blink::WebString::fromUTF16(
- text.substr(misspelled_position, misspelled_length)),
- &suggestions);
- results.push_back(blink::WebTextCheckingResult(
- blink::WebTextDecorationTypeSpelling,
- offset + misspelled_position,
- misspelled_length,
- suggestions.isEmpty() ? blink::WebString() : suggestions[0]));
- text = text.substr(misspelled_position + misspelled_length);
- offset += misspelled_position + misspelled_length;
- }
- MockGrammarCheck::CheckGrammarOfString(last_requested_text_check_string_,
- &results);
- }
- last_requested_text_checking_completion_->didFinishCheckingText(results);
- last_requested_text_checking_completion_ = 0;
- RequestResolved();
-
- if (test_runner_->shouldDumpSpellCheckCallbacks())
- delegate_->PrintMessage("SpellCheckEvent: FinishLastTextCheck\n");
-}
-
-void SpellCheckClient::SetSpellCheckResolvedCallback(
- v8::Local<v8::Function> callback) {
- resolved_callback_.Reset(blink::mainThreadIsolate(), callback);
-}
-
-void SpellCheckClient::RemoveSpellCheckResolvedCallback() {
- resolved_callback_.Reset();
-}
-
-void SpellCheckClient::RequestResolved() {
- if (resolved_callback_.IsEmpty())
- return;
-
- v8::Isolate* isolate = blink::mainThreadIsolate();
- v8::HandleScope handle_scope(isolate);
-
- blink::WebFrame* frame = test_runner_->mainFrame();
- if (!frame || frame->isWebRemoteFrame())
- return;
-
- v8::Local<v8::Context> context = frame->mainWorldScriptContext();
- if (context.IsEmpty())
- return;
-
- v8::Context::Scope context_scope(context);
-
- frame->callFunctionEvenIfScriptDisabled(
- v8::Local<v8::Function>::New(isolate, resolved_callback_),
- context->Global(), 0, nullptr);
-}
-
-} // namespace test_runner

Powered by Google App Engine
This is Rietveld 408576698