summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoruekawa@chromium.org <uekawa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-02-14 15:09:24 +0000
committeruekawa@chromium.org <uekawa@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-02-14 15:09:24 +0000
commitc93ad77ea87701d70d6db1fe044e86b9a1c5e540 (patch)
treec9675353e2891ba880ea39a4fe019737c8287dbc
parentdb89849873f600ab776c6e1c277848acfb03fc6a (diff)
downloadchromium_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.cc2
-rw-r--r--chrome/browser/chromeos/input_method/input_method_engine_browsertests.cc2
-rw-r--r--chromeos/ime/composition_text.h8
-rw-r--r--chromeos/ime/composition_text_unittest.cc3
-rw-r--r--ui/base/ime/input_method_chromeos.cc8
-rw-r--r--ui/base/ime/input_method_chromeos_unittest.cc51
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();