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

Unified Diff: webkit/mocks/mock_webhyphenator.cc

Issue 20860003: Remove hyphenation code from Chromium. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 7 years, 5 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 | « webkit/mocks/mock_webhyphenator.h ('k') | webkit/support/test_webkit_platform_support.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: webkit/mocks/mock_webhyphenator.cc
diff --git a/webkit/mocks/mock_webhyphenator.cc b/webkit/mocks/mock_webhyphenator.cc
deleted file mode 100644
index 2ff288e7b0a09711d7798e32926095bd289b9bf1..0000000000000000000000000000000000000000
--- a/webkit/mocks/mock_webhyphenator.cc
+++ /dev/null
@@ -1,103 +0,0 @@
-// Copyright (c) 2013 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 "webkit/mocks/mock_webhyphenator.h"
-
-#include "base/logging.h"
-#include "base/memory/scoped_handle.h"
-#include "base/memory/scoped_ptr.h"
-#include "base/strings/string_util.h"
-#include "third_party/hyphen/hyphen.h"
-
-namespace webkit_glue {
-
-MockWebHyphenator::MockWebHyphenator()
- : hyphen_dictionary_(NULL) {
-}
-
-MockWebHyphenator::~MockWebHyphenator() {
- if (hyphen_dictionary_)
- hnj_hyphen_free(hyphen_dictionary_);
-}
-
-void MockWebHyphenator::LoadDictionary(base::PlatformFile dict_file) {
- CHECK(!hyphen_dictionary_);
- // Initialize the hyphen library with a sample dictionary. To avoid test
- // flakiness, this code synchronously loads the dictionary.
- if (dict_file == base::kInvalidPlatformFileValue) {
- NOTREACHED();
- return;
- }
- ScopedStdioHandle dict_handle(base::FdopenPlatformFile(dict_file, "r"));
- if (!dict_handle.get()) {
- NOTREACHED();
- base::ClosePlatformFile(dict_file);
- return;
- }
- hyphen_dictionary_ = hnj_hyphen_load_file(dict_handle.get());
- DCHECK(hyphen_dictionary_);
-}
-
-bool MockWebHyphenator::canHyphenate(const WebKit::WebString& locale) {
- return locale.isEmpty() || locale.equals("en") || locale.equals("en_US") ||
- locale.equals("en_GB");
-}
-
-size_t MockWebHyphenator::computeLastHyphenLocation(
- const WebKit::WebString& characters,
- size_t before_index,
- const WebKit::WebString& locale) {
- DCHECK(locale.isEmpty() || locale.equals("en") || locale.equals("en_US") ||
- locale.equals("en_GB"));
- if (!hyphen_dictionary_)
- return 0;
-
- // Retrieve the positions where we can insert hyphens. This function assumes
- // the input word is an English word so it can use the position returned by
- // the hyphen library without conversion.
- base::string16 word_utf16(characters);
- if (!IsStringASCII(word_utf16))
- return 0;
- std::string word = StringToLowerASCII(UTF16ToASCII(word_utf16));
- scoped_ptr<char[]> hyphens(new char[word.length() + 5]);
- char** rep = NULL;
- int* pos = NULL;
- int* cut = NULL;
- int error = hnj_hyphen_hyphenate2(hyphen_dictionary_,
- word.data(),
- static_cast<int>(word.length()),
- hyphens.get(),
- NULL,
- &rep,
- &pos,
- &cut);
- if (error)
- return 0;
-
- // Release all resources allocated by the hyphen library now because they are
- // not used when hyphenating English words.
- if (rep) {
- for (size_t i = 0; i < word.length(); ++i) {
- if (rep[i])
- free(rep[i]);
- }
- free(rep);
- }
- if (pos)
- free(pos);
- if (cut)
- free(cut);
-
- // Retrieve the last position where we can insert a hyphen before the given
- // index.
- if (before_index >= 2) {
- for (size_t index = before_index - 2; index > 0; --index) {
- if (hyphens[index] & 1)
- return index + 1;
- }
- }
- return 0;
-}
-
-} // namespace webkit_glue
« no previous file with comments | « webkit/mocks/mock_webhyphenator.h ('k') | webkit/support/test_webkit_platform_support.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698