diff options
author | uekawa@chromium.org <uekawa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-02-14 15:09:24 +0000 |
---|---|---|
committer | uekawa@chromium.org <uekawa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-02-14 15:09:24 +0000 |
commit | c93ad77ea87701d70d6db1fe044e86b9a1c5e540 (patch) | |
tree | c9675353e2891ba880ea39a4fe019737c8287dbc | |
parent | db89849873f600ab776c6e1c277848acfb03fc6a (diff) | |
download | chromium_src-c93ad77ea87701d70d6db1fe044e86b9a1c5e540.zip chromium_src-c93ad77ea87701d70d6db1fe044e86b9a1c5e540.tar.gz chromium_src-c93ad77ea87701d70d6db1fe044e86b9a1c5e540.tar.bz2 |
Use base::string16 for CompositionText.Text instead of converting to utf-8 and back unnecessarily.
BUG=None
Review URL: https://codereview.chromium.org/163023002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@251322 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | chrome/browser/chromeos/input_method/input_method_engine.cc | 2 | ||||
-rw-r--r-- | chrome/browser/chromeos/input_method/input_method_engine_browsertests.cc | 2 | ||||
-rw-r--r-- | chromeos/ime/composition_text.h | 8 | ||||
-rw-r--r-- | chromeos/ime/composition_text_unittest.cc | 3 | ||||
-rw-r--r-- | ui/base/ime/input_method_chromeos.cc | 8 | ||||
-rw-r--r-- | ui/base/ime/input_method_chromeos_unittest.cc | 51 |
6 files changed, 37 insertions, 37 deletions
diff --git a/chrome/browser/chromeos/input_method/input_method_engine.cc b/chrome/browser/chromeos/input_method/input_method_engine.cc index 0de0541..7e5adea 100644 --- a/chrome/browser/chromeos/input_method/input_method_engine.cc +++ b/chrome/browser/chromeos/input_method/input_method_engine.cc @@ -142,7 +142,7 @@ bool InputMethodEngine::SetComposition( composition_cursor_ = cursor; composition_text_.reset(new CompositionText()); - composition_text_->set_text(text); + composition_text_->set_text(base::UTF8ToUTF16(text)); composition_text_->set_selection_start(selection_start); composition_text_->set_selection_end(selection_end); diff --git a/chrome/browser/chromeos/input_method/input_method_engine_browsertests.cc b/chrome/browser/chromeos/input_method/input_method_engine_browsertests.cc index 62d2a68..04025f2 100644 --- a/chrome/browser/chromeos/input_method/input_method_engine_browsertests.cc +++ b/chrome/browser/chromeos/input_method/input_method_engine_browsertests.cc @@ -468,7 +468,7 @@ IN_PROC_BROWSER_TEST_P(InputMethodEngineIBusBrowserTest, const CompositionText& composition_text = mock_input_context->last_update_composition_arg().composition_text; - EXPECT_EQ("COMPOSITION_TEXT", composition_text.text()); + EXPECT_EQ(base::UTF8ToUTF16("COMPOSITION_TEXT"), composition_text.text()); const std::vector<CompositionText::UnderlineAttribute>& underlines = composition_text.underline_attributes(); diff --git a/chromeos/ime/composition_text.h b/chromeos/ime/composition_text.h index c93c868..b79efd9 100644 --- a/chromeos/ime/composition_text.h +++ b/chromeos/ime/composition_text.h @@ -7,7 +7,9 @@ #include <string> #include <vector> + #include "base/basictypes.h" +#include "base/strings/string16.h" #include "chromeos/chromeos_export.h" namespace chromeos { @@ -30,8 +32,8 @@ class CHROMEOS_EXPORT CompositionText { virtual ~CompositionText(); // Accessors - const std::string& text() const { return text_; } - void set_text(const std::string& text) { text_ = text; } + const base::string16& text() const { return text_; } + void set_text(const base::string16& text) { text_ = text; } const std::vector<UnderlineAttribute>& underline_attributes() const { return underline_attributes_; @@ -54,7 +56,7 @@ class CHROMEOS_EXPORT CompositionText { void CopyFrom(const CompositionText& obj); private: - std::string text_; + base::string16 text_; std::vector<UnderlineAttribute> underline_attributes_; uint32 selection_start_; uint32 selection_end_; diff --git a/chromeos/ime/composition_text_unittest.cc b/chromeos/ime/composition_text_unittest.cc index 0dbe6cd..68f0342 100644 --- a/chromeos/ime/composition_text_unittest.cc +++ b/chromeos/ime/composition_text_unittest.cc @@ -5,12 +5,13 @@ #include "chromeos/ime/composition_text.h" +#include "base/strings/utf_string_conversions.h" #include "testing/gtest/include/gtest/gtest.h" namespace chromeos { TEST(CompositionTextTest, CopyTest) { - const char kSampleText[] = "Sample Text"; + const base::string16 kSampleText = base::UTF8ToUTF16("Sample Text"); const CompositionText::UnderlineAttribute kSampleUnderlineAttribute1 = { CompositionText::COMPOSITION_TEXT_UNDERLINE_SINGLE, 10, 20}; diff --git a/ui/base/ime/input_method_chromeos.cc b/ui/base/ime/input_method_chromeos.cc index 6133331..e1c728d 100644 --- a/ui/base/ime/input_method_chromeos.cc +++ b/ui/base/ime/input_method_chromeos.cc @@ -496,8 +496,7 @@ void InputMethodChromeOS::UpdateCompositionText( chromeos::IBusPanelCandidateWindowHandlerInterface* candidate_window = chromeos::IMEBridge::Get()->GetCandidateWindowHandler(); if (candidate_window) - candidate_window->UpdatePreeditText( - base::UTF8ToUTF16(text.text()), cursor_pos, visible); + candidate_window->UpdatePreeditText(text.text(), cursor_pos, visible); } // |visible| argument is very confusing. For example, what's the correct @@ -560,8 +559,7 @@ bool InputMethodChromeOS::ExecuteCharacterComposer(const ui::KeyEvent& event) { // CharacterComposer consumed the key event. Update the composition text. chromeos::CompositionText preedit; - preedit.set_text( - base::UTF16ToUTF8(character_composer_.preedit_string())); + preedit.set_text(character_composer_.preedit_string()); UpdateCompositionText(preedit, preedit.text().size(), !preedit.text().empty()); std::string commit_text = @@ -577,7 +575,7 @@ void InputMethodChromeOS::ExtractCompositionText( uint32 cursor_position, CompositionText* out_composition) const { out_composition->Clear(); - out_composition->text = base::UTF8ToUTF16(text.text()); + out_composition->text = text.text(); if (out_composition->text.empty()) return; diff --git a/ui/base/ime/input_method_chromeos_unittest.cc b/ui/base/ime/input_method_chromeos_unittest.cc index 55a7f11..5a239c6 100644 --- a/ui/base/ime/input_method_chromeos_unittest.cc +++ b/ui/base/ime/input_method_chromeos_unittest.cc @@ -35,8 +35,8 @@ namespace { typedef chromeos::IMEEngineHandlerInterface::KeyEventDoneCallback KeyEventCallback; -uint32 GetOffsetInUTF16(const std::string& utf8_string, uint32 utf8_offset) { - base::string16 utf16_string = UTF8ToUTF16(utf8_string); +uint32 GetOffsetInUTF16( + const base::string16& utf16_string, uint32 utf8_offset) { DCHECK_LT(utf8_offset, utf16_string.size()); base::i18n::UTF16CharIterator char_iterator(&utf16_string); for (size_t i = 0; i < utf8_offset; ++i) @@ -575,17 +575,16 @@ TEST_F(InputMethodChromeOSTest, OnCaretBoundsChanged) { } TEST_F(InputMethodChromeOSTest, ExtractCompositionTextTest_NoAttribute) { - const char kSampleText[] = "Sample Text"; + const base::string16 kSampleText = base::UTF8ToUTF16("Sample Text"); const uint32 kCursorPos = 2UL; - const base::string16 utf16_string = UTF8ToUTF16(kSampleText); chromeos::CompositionText chromeos_composition_text; chromeos_composition_text.set_text(kSampleText); CompositionText composition_text; ime_->ExtractCompositionText( chromeos_composition_text, kCursorPos, &composition_text); - EXPECT_EQ(UTF8ToUTF16(kSampleText), composition_text.text); + EXPECT_EQ(kSampleText, composition_text.text); // If there is no selection, |selection| represents cursor position. EXPECT_EQ(kCursorPos, composition_text.selection.start()); EXPECT_EQ(kCursorPos, composition_text.selection.end()); @@ -593,13 +592,13 @@ TEST_F(InputMethodChromeOSTest, ExtractCompositionTextTest_NoAttribute) { // whole text underline. ASSERT_EQ(1UL, composition_text.underlines.size()); EXPECT_EQ(0UL, composition_text.underlines[0].start_offset); - EXPECT_EQ(utf16_string.size(), composition_text.underlines[0].end_offset); + EXPECT_EQ(kSampleText.size(), composition_text.underlines[0].end_offset); EXPECT_FALSE(composition_text.underlines[0].thick); } TEST_F(InputMethodChromeOSTest, ExtractCompositionTextTest_SingleUnderline) { - const char kSampleText[] = "\xE3\x81\x82\xE3\x81\x84\xE3\x81\x86" - "\xE3\x81\x88\xE3\x81\x8A"; + const base::string16 kSampleText = base::UTF8ToUTF16( + "\xE3\x81\x82\xE3\x81\x84\xE3\x81\x86\xE3\x81\x88\xE3\x81\x8A"); const uint32 kCursorPos = 2UL; // Set up chromeos composition text with one underline attribute. @@ -615,7 +614,7 @@ TEST_F(InputMethodChromeOSTest, ExtractCompositionTextTest_SingleUnderline) { CompositionText composition_text; ime_->ExtractCompositionText( chromeos_composition_text, kCursorPos, &composition_text); - EXPECT_EQ(UTF8ToUTF16(kSampleText), composition_text.text); + EXPECT_EQ(kSampleText, composition_text.text); // If there is no selection, |selection| represents cursor position. EXPECT_EQ(kCursorPos, composition_text.selection.start()); EXPECT_EQ(kCursorPos, composition_text.selection.end()); @@ -630,8 +629,8 @@ TEST_F(InputMethodChromeOSTest, ExtractCompositionTextTest_SingleUnderline) { } TEST_F(InputMethodChromeOSTest, ExtractCompositionTextTest_DoubleUnderline) { - const char kSampleText[] = "\xE3\x81\x82\xE3\x81\x84\xE3\x81\x86" - "\xE3\x81\x88\xE3\x81\x8A"; + const base::string16 kSampleText = base::UTF8ToUTF16( + "\xE3\x81\x82\xE3\x81\x84\xE3\x81\x86\xE3\x81\x88\xE3\x81\x8A"); const uint32 kCursorPos = 2UL; // Set up chromeos composition text with one underline attribute. @@ -647,7 +646,7 @@ TEST_F(InputMethodChromeOSTest, ExtractCompositionTextTest_DoubleUnderline) { CompositionText composition_text; ime_->ExtractCompositionText( chromeos_composition_text, kCursorPos, &composition_text); - EXPECT_EQ(UTF8ToUTF16(kSampleText), composition_text.text); + EXPECT_EQ(kSampleText, composition_text.text); // If there is no selection, |selection| represents cursor position. EXPECT_EQ(kCursorPos, composition_text.selection.start()); EXPECT_EQ(kCursorPos, composition_text.selection.end()); @@ -662,8 +661,8 @@ TEST_F(InputMethodChromeOSTest, ExtractCompositionTextTest_DoubleUnderline) { } TEST_F(InputMethodChromeOSTest, ExtractCompositionTextTest_ErrorUnderline) { - const char kSampleText[] = "\xE3\x81\x82\xE3\x81\x84\xE3\x81\x86" - "\xE3\x81\x88\xE3\x81\x8A"; + const base::string16 kSampleText = base::UTF8ToUTF16( + "\xE3\x81\x82\xE3\x81\x84\xE3\x81\x86\xE3\x81\x88\xE3\x81\x8A"); const uint32 kCursorPos = 2UL; // Set up chromeos composition text with one underline attribute. @@ -679,7 +678,7 @@ TEST_F(InputMethodChromeOSTest, ExtractCompositionTextTest_ErrorUnderline) { CompositionText composition_text; ime_->ExtractCompositionText( chromeos_composition_text, kCursorPos, &composition_text); - EXPECT_EQ(UTF8ToUTF16(kSampleText), composition_text.text); + EXPECT_EQ(kSampleText, composition_text.text); EXPECT_EQ(kCursorPos, composition_text.selection.start()); EXPECT_EQ(kCursorPos, composition_text.selection.end()); ASSERT_EQ(1UL, composition_text.underlines.size()); @@ -693,8 +692,8 @@ TEST_F(InputMethodChromeOSTest, ExtractCompositionTextTest_ErrorUnderline) { } TEST_F(InputMethodChromeOSTest, ExtractCompositionTextTest_Selection) { - const char kSampleText[] = "\xE3\x81\x82\xE3\x81\x84\xE3\x81\x86" - "\xE3\x81\x88\xE3\x81\x8A"; + const base::string16 kSampleText = base::UTF8ToUTF16( + "\xE3\x81\x82\xE3\x81\x84\xE3\x81\x86\xE3\x81\x88\xE3\x81\x8A"); const uint32 kCursorPos = 2UL; // Set up chromeos composition text with one underline attribute. @@ -706,7 +705,7 @@ TEST_F(InputMethodChromeOSTest, ExtractCompositionTextTest_Selection) { CompositionText composition_text; ime_->ExtractCompositionText( chromeos_composition_text, kCursorPos, &composition_text); - EXPECT_EQ(UTF8ToUTF16(kSampleText), composition_text.text); + EXPECT_EQ(kSampleText, composition_text.text); EXPECT_EQ(kCursorPos, composition_text.selection.start()); EXPECT_EQ(kCursorPos, composition_text.selection.end()); ASSERT_EQ(1UL, composition_text.underlines.size()); @@ -722,8 +721,8 @@ TEST_F(InputMethodChromeOSTest, ExtractCompositionTextTest_Selection) { TEST_F(InputMethodChromeOSTest, ExtractCompositionTextTest_SelectionStartWithCursor) { - const char kSampleText[] = "\xE3\x81\x82\xE3\x81\x84\xE3\x81\x86" - "\xE3\x81\x88\xE3\x81\x8A"; + const base::string16 kSampleText = base::UTF8ToUTF16( + "\xE3\x81\x82\xE3\x81\x84\xE3\x81\x86\xE3\x81\x88\xE3\x81\x8A"); const uint32 kCursorPos = 1UL; // Set up chromeos composition text with one underline attribute. @@ -735,7 +734,7 @@ TEST_F(InputMethodChromeOSTest, CompositionText composition_text; ime_->ExtractCompositionText( chromeos_composition_text, kCursorPos, &composition_text); - EXPECT_EQ(UTF8ToUTF16(kSampleText), composition_text.text); + EXPECT_EQ(kSampleText, composition_text.text); // If the cursor position is same as selection bounds, selection start // position become opposit side of selection from cursor. EXPECT_EQ(GetOffsetInUTF16(kSampleText, @@ -756,8 +755,8 @@ TEST_F(InputMethodChromeOSTest, TEST_F(InputMethodChromeOSTest, ExtractCompositionTextTest_SelectionEndWithCursor) { - const char kSampleText[] = "\xE3\x81\x82\xE3\x81\x84\xE3\x81\x86" - "\xE3\x81\x88\xE3\x81\x8A"; + const base::string16 kSampleText = base::UTF8ToUTF16( + "\xE3\x81\x82\xE3\x81\x84\xE3\x81\x86\xE3\x81\x88\xE3\x81\x8A"); const uint32 kCursorPos = 4UL; // Set up chromeos composition text with one underline attribute. @@ -769,7 +768,7 @@ TEST_F(InputMethodChromeOSTest, CompositionText composition_text; ime_->ExtractCompositionText( chromeos_composition_text, kCursorPos, &composition_text); - EXPECT_EQ(UTF8ToUTF16(kSampleText), composition_text.text); + EXPECT_EQ(kSampleText, composition_text.text); // If the cursor position is same as selection bounds, selection start // position become opposit side of selection from cursor. EXPECT_EQ(GetOffsetInUTF16(kSampleText, @@ -850,7 +849,7 @@ TEST_F(InputMethodChromeOSTest, SurroundingText_PartialText) { ime_->OnTextInputTypeChanged(this); // Set the TextInputClient behaviors. - surrounding_text_ = UTF8ToUTF16("abcdefghij"); + surrounding_text_ = base::UTF8ToUTF16("abcdefghij"); text_range_ = gfx::Range(5, 10); selection_range_ = gfx::Range(7, 9); @@ -878,7 +877,7 @@ TEST_F(InputMethodChromeOSTest, SurroundingText_BecomeEmptyText) { // Set the TextInputClient behaviors. // If the surrounding text becomes empty, text_range become (0, 0) and // selection range become invalid. - surrounding_text_ = UTF8ToUTF16(""); + surrounding_text_ = base::UTF8ToUTF16(""); text_range_ = gfx::Range(0, 0); selection_range_ = gfx::Range::InvalidRange(); |