| Index: webkit/support/test_webkit_platform_support.cc
|
| diff --git a/webkit/support/test_webkit_platform_support.cc b/webkit/support/test_webkit_platform_support.cc
|
| index cb79b7e00f04bb72105c34591c02c116d1877446..68fba188a858dbdada1ebab36a0aff6aded7d88b 100644
|
| --- a/webkit/support/test_webkit_platform_support.cc
|
| +++ b/webkit/support/test_webkit_platform_support.cc
|
| @@ -7,10 +7,8 @@
|
| #include "base/command_line.h"
|
| #include "base/file_util.h"
|
| #include "base/files/scoped_temp_dir.h"
|
| -#include "base/memory/scoped_handle.h"
|
| #include "base/metrics/stats_counters.h"
|
| #include "base/path_service.h"
|
| -#include "base/string_util.h"
|
| #include "base/utf_string_conversions.h"
|
| #include "cc/thread_impl.h"
|
| #include "media/base/media.h"
|
| @@ -31,7 +29,6 @@
|
| #include "third_party/WebKit/Source/WebKit/chromium/public/WebSecurityPolicy.h"
|
| #include "third_party/WebKit/Source/WebKit/chromium/public/WebStorageEventDispatcher.h"
|
| #include "third_party/WebKit/Source/WebKit/chromium/public/WebStorageNamespace.h"
|
| -#include "third_party/hyphen/hyphen.h"
|
| #include "v8/include/v8.h"
|
| #include "webkit/appcache/web_application_cache_host_impl.h"
|
| #include "webkit/compositor_bindings/web_compositor_support_impl.h"
|
| @@ -73,8 +70,7 @@ using WebKit::WebScriptController;
|
| TestWebKitPlatformSupport::TestWebKitPlatformSupport(bool unit_test_mode,
|
| WebKit::Platform* shadow_platform_delegate)
|
| : unit_test_mode_(unit_test_mode),
|
| - shadow_platform_delegate_(shadow_platform_delegate),
|
| - hyphen_dictionary_(NULL) {
|
| + shadow_platform_delegate_(shadow_platform_delegate) {
|
| v8::V8::SetCounterFunction(base::StatsTable::FindLocation);
|
|
|
| WebKit::initialize(this);
|
| @@ -137,6 +133,17 @@ TestWebKitPlatformSupport::TestWebKitPlatformSupport(bool unit_test_mode,
|
| DCHECK(file_system_root_.path().empty());
|
| }
|
|
|
| + {
|
| + // Initialize the hyphen library with a sample dictionary.
|
| + base::FilePath path = webkit_support::GetChromiumRootDirFilePath();
|
| + path = path.Append(FILE_PATH_LITERAL("third_party/hyphen/hyph_en_US.dic"));
|
| + base::PlatformFile dict_file = base::CreatePlatformFile(
|
| + path,
|
| + base::PLATFORM_FILE_OPEN | base::PLATFORM_FILE_READ,
|
| + NULL, NULL);
|
| + hyphenator_.LoadDictionary(dict_file);
|
| + }
|
| +
|
| #if defined(OS_WIN)
|
| // Ensure we pick up the default theme engine.
|
| SetThemeEngine(NULL);
|
| @@ -156,8 +163,6 @@ TestWebKitPlatformSupport::TestWebKitPlatformSupport(bool unit_test_mode,
|
| }
|
|
|
| TestWebKitPlatformSupport::~TestWebKitPlatformSupport() {
|
| - if (hyphen_dictionary_)
|
| - hnj_hyphen_free(hyphen_dictionary_);
|
| }
|
|
|
| WebKit::WebMimeRegistry* TestWebKitPlatformSupport::mimeRegistry() {
|
| @@ -190,6 +195,10 @@ WebKit::WebFileSystem* TestWebKitPlatformSupport::fileSystem() {
|
| return &file_system_;
|
| }
|
|
|
| +WebKit::WebHyphenator* TestWebKitPlatformSupport::hyphenator() {
|
| + return &hyphenator_;
|
| +}
|
| +
|
| bool TestWebKitPlatformSupport::sandboxEnabled() {
|
| return true;
|
| }
|
| @@ -480,8 +489,7 @@ TestWebKitPlatformSupport::createRTCPeerConnectionHandler(
|
| }
|
|
|
| bool TestWebKitPlatformSupport::canHyphenate(const WebKit::WebString& locale) {
|
| - return locale.isEmpty() || locale.equals("en") || locale.equals("en_US") ||
|
| - locale.equals("en_GB");
|
| + return hyphenator()->canHyphenate(locale);
|
| }
|
|
|
| size_t TestWebKitPlatformSupport::computeLastHyphenLocation(
|
| @@ -489,73 +497,8 @@ size_t TestWebKitPlatformSupport::computeLastHyphenLocation(
|
| size_t length,
|
| 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_) {
|
| - // Initialize the hyphen library with a sample dictionary. To avoid test
|
| - // flakiness, this code synchronously loads the dictionary.
|
| - base::FilePath path = webkit_support::GetChromiumRootDirFilePath();
|
| - path = path.Append(FILE_PATH_LITERAL("third_party/hyphen/hyph_en_US.dic"));
|
| - base::PlatformFile dict_file = base::CreatePlatformFile(
|
| - path,
|
| - base::PLATFORM_FILE_OPEN | base::PLATFORM_FILE_READ,
|
| - NULL, NULL);
|
| - if (dict_file == base::kInvalidPlatformFileValue)
|
| - return 0;
|
| - ScopedStdioHandle dict_handle(base::FdopenPlatformFile(dict_file, "r"));
|
| - if (!dict_handle.get()) {
|
| - base::ClosePlatformFile(dict_file);
|
| - return 0;
|
| - }
|
| - hyphen_dictionary_ = hnj_hyphen_load_file(dict_handle.get());
|
| - 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.
|
| - string16 word_utf16(characters, length);
|
| - if (!IsStringASCII(word_utf16))
|
| - return 0;
|
| - std::string word = StringToLowerASCII(UTF16ToASCII(word_utf16));
|
| - scoped_array<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;
|
| + return hyphenator()->computeLastHyphenLocation(
|
| + characters, length, before_index, locale);
|
| }
|
|
|
| WebKit::WebGestureCurve* TestWebKitPlatformSupport::createFlingAnimationCurve(
|
|
|