From 90bd14050b0ac0fdf80d8f1ad0d991f47b132945 Mon Sep 17 00:00:00 2001 From: Hiroyuki Komatsu Date: Mon, 7 Oct 2024 09:08:51 +0000 Subject: [PATCH] Rename the class of GoogleJapaneseInputController to MozcImkInputController. We need to keep GoogleJapaneseInputController as an alias of MozcImkInputController for backward compatibility. This will be removed in the future when all clients are migrated to the new name and performed relogin at least once. #codehealth PiperOrigin-RevId: 683091904 --- docs/design_doc/mac_version.md | 2 +- src/mac/Info.plist | 6 ++-- src/mac/main.mm | 2 +- src/mac/mozc_imk_input_controller.h | 11 ++++-- src/mac/mozc_imk_input_controller.mm | 10 ++++-- src/mac/mozc_imk_input_controller_test.mm | 44 +++++++++++------------ src/renderer/mac/CandidateController.mm | 4 +-- src/renderer/mac/CandidateView.h | 2 +- 8 files changed, 46 insertions(+), 35 deletions(-) diff --git a/docs/design_doc/mac_version.md b/docs/design_doc/mac_version.md index d29312680..7e9b2a008 100644 --- a/docs/design_doc/mac_version.md +++ b/docs/design_doc/mac_version.md @@ -26,7 +26,7 @@ IMKInputServer handles all of the connection between applications, and invokes IMKInputController. The IMKit.framework configurations are in Info.plist of the client application. -You'll see the GoogleJapaneseInputController class name in mac/Info.plist. +You'll see the MozcImkInputController class name in mac/Info.plist. ## Communication with converter diff --git a/src/mac/Info.plist b/src/mac/Info.plist index 6cf80e840..e5cf33ccb 100644 --- a/src/mac/Info.plist +++ b/src/mac/Info.plist @@ -180,11 +180,11 @@ InputMethodConnectionName ${PRODUCT_NAME}_1_Connection InputMethodServerControllerClass - GoogleJapaneseInputController + MozcImkInputController InputMethodServerDelegateClass - GoogleJapaneseInputController + MozcImkInputController InputMethodServerDataSourceClass - GoogleJapaneseInputController + MozcImkInputController LSBackgroundOnly 1 LSUIElement diff --git a/src/mac/main.mm b/src/mac/main.mm index 5e955ab5e..ad7cafb49 100644 --- a/src/mac/main.mm +++ b/src/mac/main.mm @@ -72,7 +72,7 @@ int main(int argc, char *argv[]) { NSString *rendererConnectionName = @kProductPrefix "_Renderer_Connection"; RendererReceiver *rendererReceiver = [[RendererReceiver alloc] initWithName:rendererConnectionName]; - [GoogleJapaneseInputController setGlobalRendererReceiver:rendererReceiver]; + [MozcImkInputController setGlobalRendererReceiver:rendererReceiver]; // Start the converter server at this time explicitly to prevent the // slow-down of the response for initial key event. diff --git a/src/mac/mozc_imk_input_controller.h b/src/mac/mozc_imk_input_controller.h index b7e7a9c8a..825ca28e2 100644 --- a/src/mac/mozc_imk_input_controller.h +++ b/src/mac/mozc_imk_input_controller.h @@ -45,13 +45,13 @@ #include "protocol/renderer_command.pb.h" #include "renderer/renderer_interface.h" -/** GoogleJapaneseInputController is a subclass of |IMKInputController|, which holds a connection +/** MozcImkInputController is a subclass of |IMKInputController|, which holds a connection * from a client application to the mozc server (Japanese IME server) on the machine. * * For the detail of IMKInputController itself, see the ADC document * http://developer.apple.com/documentation/Cocoa/Reference/IMKInputController_Class/ */ -@interface GoogleJapaneseInputController : IMKInputController { +@interface MozcImkInputController : IMKInputController { @private /** Instance variables are all strong references. */ @@ -268,3 +268,10 @@ - (BOOL)fillSurroundingContext:(mozc::commands::Context *)context client:(id)client; @end + +/** GoogleJapaneseInputController is an alias of MozcImkInputController for backward compatibility. + * This will be removed in the future when all clients are migrated to the new name and performed + * relogin at least once. + */ +@interface GoogleJapaneseInputController : MozcImkInputController {} +@end diff --git a/src/mac/mozc_imk_input_controller.mm b/src/mac/mozc_imk_input_controller.mm index 2af37fb38..14e5dd6ad 100644 --- a/src/mac/mozc_imk_input_controller.mm +++ b/src/mac/mozc_imk_input_controller.mm @@ -178,7 +178,7 @@ bool CanSurroundingText(absl::string_view bundle_id) { } } // namespace -@implementation GoogleJapaneseInputController +@implementation MozcImkInputController #pragma mark accessors for testing @synthesize keyCodeMap = keyCodeMap_; @synthesize yenSignCharacter = yenSignCharacter_; @@ -621,10 +621,10 @@ bool CanSurroundingText(absl::string_view bundle_id) { #pragma mark Mozc Server methods #pragma mark IMKServerInput Protocol -// Currently GoogleJapaneseInputController uses handleEvent:client: +// Currently MozcImkInputController uses handleEvent:client: // method to handle key events. It does not support inputText:client: // nor inputText:key:modifiers:client:. -// Because GoogleJapaneseInputController does not use IMKCandidates, +// Because MozcImkInputController does not use IMKCandidates, // the following methods are not needed to implement: // candidates // @@ -967,3 +967,7 @@ bool CanSurroundingText(absl::string_view bundle_id) { gRendererReceiver = rendererReceiver; } @end + +// An alias of MozcImkInputController for backward compatibility. +@implementation GoogleJapaneseInputController +@end diff --git a/src/mac/mozc_imk_input_controller_test.mm b/src/mac/mozc_imk_input_controller_test.mm index 225e475a3..71e2de228 100644 --- a/src/mac/mozc_imk_input_controller_test.mm +++ b/src/mac/mozc_imk_input_controller_test.mm @@ -237,7 +237,7 @@ class MockRenderer : public renderer::RendererInterface { commands::RendererCommand called_command_; }; -class GoogleJapaneseInputControllerTest : public testing::Test { +class MozcImkInputControllerTest : public testing::Test { protected: void SetUp() override { mock_server_ = [[MockIMKServer alloc] init]; @@ -261,7 +261,7 @@ class GoogleJapaneseInputControllerTest : public testing::Test { } void SetUpController() { - controller_ = [[GoogleJapaneseInputController alloc] initWithServer:mock_server_ + controller_ = [[MozcImkInputController alloc] initWithServer:mock_server_ delegate:nil client:mock_client_]; controller_.imkClientForTest = mock_client_; @@ -284,7 +284,7 @@ class GoogleJapaneseInputControllerTest : public testing::Test { MockClient *mock_client_; const MockRenderer *mock_renderer_; - GoogleJapaneseInputController *controller_; + MozcImkInputController *controller_; private: MockIMKServer *mock_server_; @@ -368,7 +368,7 @@ NSTimeInterval GetDoubleTapInterval() { return kDoubleTapInterval; } -BOOL SendKeyEvent(unsigned short keyCode, GoogleJapaneseInputController *controller, +BOOL SendKeyEvent(unsigned short keyCode, MozcImkInputController *controller, MockClient *client) { // tap Kana-key NSEvent *kanaKeyEvent = [NSEvent keyEventWithType:NSEventTypeKeyDown @@ -384,7 +384,7 @@ BOOL SendKeyEvent(unsigned short keyCode, GoogleJapaneseInputController *control return [controller handleEvent:kanaKeyEvent client:client]; } -TEST_F(GoogleJapaneseInputControllerTest, UpdateComposedString) { +TEST_F(MozcImkInputControllerTest, UpdateComposedString) { // If preedit is nullptr, it still calls setMarkedText, with an empty string. NSMutableAttributedString *expected = [[NSMutableAttributedString alloc] initWithString:@""]; [controller_ updateComposedString:nullptr]; @@ -423,14 +423,14 @@ TEST_F(GoogleJapaneseInputControllerTest, UpdateComposedString) { << [[NSString stringWithFormat:@"expected:%@ actual:%@", expected, actual] UTF8String]; } -TEST_F(GoogleJapaneseInputControllerTest, ClearCandidates) { +TEST_F(MozcImkInputControllerTest, ClearCandidates) { [controller_ clearCandidates]; EXPECT_EQ(mock_renderer_->counter_ExecCommand(), 1); // After clearing candidates, the candidate window has to be invisible. EXPECT_FALSE(mock_renderer_->CalledCommand().visible()); } -TEST_F(GoogleJapaneseInputControllerTest, UpdateCandidates) { +TEST_F(MozcImkInputControllerTest, UpdateCandidates) { // When output is null, same as ClearCandidate [controller_ updateCandidates:nullptr]; // Run the runloop so "delayedUpdateCandidates" can be called @@ -490,7 +490,7 @@ TEST_F(GoogleJapaneseInputControllerTest, UpdateCandidates) { EXPECT_FALSE(rendererCommand.visible()); } -TEST_F(GoogleJapaneseInputControllerTest, OpenLink) { +TEST_F(MozcImkInputControllerTest, OpenLink) { EXPECT_EQ(gOpenURLCount, 0); [controller_ openLink:[NSURL URLWithString:@"http://www.example.com/"]]; // openURL is invoked @@ -504,7 +504,7 @@ TEST_F(GoogleJapaneseInputControllerTest, OpenLink) { EXPECT_EQ(gOpenURLCount, 1); } -TEST_F(GoogleJapaneseInputControllerTest, SwitchModeToDirect) { +TEST_F(MozcImkInputControllerTest, SwitchModeToDirect) { // setup the IME status controller_.mode = commands::HIRAGANA; commands::Preedit preedit; @@ -528,7 +528,7 @@ TEST_F(GoogleJapaneseInputControllerTest, SwitchModeToDirect) { EXPECT_FALSE(controller_.rendererCommand.visible()); } -TEST_F(GoogleJapaneseInputControllerTest, SwitchMode) { +TEST_F(MozcImkInputControllerTest, SwitchMode) { // When a mode changes from DIRECT, it should invoke "ON" command beforehand. EXPECT_CALL(*mock_mozc_client_, SendKeyWithContext(HasSpecialKey(commands::KeyEvent::ON), _, NotNull())) @@ -557,7 +557,7 @@ TEST_F(GoogleJapaneseInputControllerTest, SwitchMode) { EXPECT_EQ(controller_.mode, commands::HALF_KATAKANA); } -TEST_F(GoogleJapaneseInputControllerTest, SwitchDisplayMode) { +TEST_F(MozcImkInputControllerTest, SwitchDisplayMode) { EXPECT_TRUE(mock_client_.selectedMode.empty()); EXPECT_EQ(controller_.mode, commands::DIRECT); [controller_ switchDisplayMode]; @@ -565,7 +565,7 @@ TEST_F(GoogleJapaneseInputControllerTest, SwitchDisplayMode) { EXPECT_EQ(mock_client_.selectedMode, "com.apple.inputmethod.Roman"); // Does not change the display mode for MS Word. See - // GoogleJapaneseInputController.mm for the detailed information. + // MozcImkInputController.mm for the detailed information. ResetClientBundleIdentifier(@"com.microsoft.Word"); [controller_ switchMode:commands::HIRAGANA client:mock_client_]; EXPECT_EQ(controller_.mode, commands::HIRAGANA); @@ -575,7 +575,7 @@ TEST_F(GoogleJapaneseInputControllerTest, SwitchDisplayMode) { EXPECT_EQ(mock_client_.selectedMode, "com.apple.inputmethod.Roman"); } -TEST_F(GoogleJapaneseInputControllerTest, commitText) { +TEST_F(MozcImkInputControllerTest, commitText) { controller_.replacementRange = NSMakeRange(0, 1); [controller_ commitText:"foo" client:mock_client_]; @@ -585,7 +585,7 @@ TEST_F(GoogleJapaneseInputControllerTest, commitText) { EXPECT_EQ([controller_ replacementRange].location, NSNotFound); } -TEST_F(GoogleJapaneseInputControllerTest, handleConfig) { +TEST_F(MozcImkInputControllerTest, handleConfig) { // Does not support multiple-calculation config::Config config; config.set_preedit_method(config::Config::KANA); @@ -602,7 +602,7 @@ TEST_F(GoogleJapaneseInputControllerTest, handleConfig) { << [mock_client_.overriddenLayout UTF8String]; } -TEST_F(GoogleJapaneseInputControllerTest, DoubleTapKanaReconvert) { +TEST_F(MozcImkInputControllerTest, DoubleTapKanaReconvert) { // tap (short) tap -> emit undo command controller_.mode = commands::HIRAGANA; @@ -629,7 +629,7 @@ TEST_F(GoogleJapaneseInputControllerTest, DoubleTapKanaReconvert) { EXPECT_THAT(actual_command, Text("bcd")); } -TEST_F(GoogleJapaneseInputControllerTest, DoubleTapKanaUndo) { +TEST_F(MozcImkInputControllerTest, DoubleTapKanaUndo) { // tap (short) tap -> emit undo command controller_.mode = commands::HIRAGANA; @@ -652,7 +652,7 @@ TEST_F(GoogleJapaneseInputControllerTest, DoubleTapKanaUndo) { EXPECT_EQ(SendKeyEvent(kVK_JIS_Kana, controller_, mock_client_), YES); } -TEST_F(GoogleJapaneseInputControllerTest, DoubleTapKanaUndoTimeOver) { +TEST_F(MozcImkInputControllerTest, DoubleTapKanaUndoTimeOver) { // tap (long) tap -> don't emit undo command controller_.mode = commands::HIRAGANA; @@ -670,7 +670,7 @@ TEST_F(GoogleJapaneseInputControllerTest, DoubleTapKanaUndoTimeOver) { EXPECT_EQ(SendKeyEvent(kVK_JIS_Kana, controller_, mock_client_), YES); } -TEST_F(GoogleJapaneseInputControllerTest, SingleAndDoubleTapKanaUndo) { +TEST_F(MozcImkInputControllerTest, SingleAndDoubleTapKanaUndo) { // tap (long) tap (short) tap -> emit once controller_.mode = commands::HIRAGANA; @@ -699,7 +699,7 @@ TEST_F(GoogleJapaneseInputControllerTest, SingleAndDoubleTapKanaUndo) { EXPECT_EQ(SendKeyEvent(kVK_JIS_Kana, controller_, mock_client_), YES); } -TEST_F(GoogleJapaneseInputControllerTest, TripleTapKanaUndo) { +TEST_F(MozcImkInputControllerTest, TripleTapKanaUndo) { // tap (short) tap (short) tap -> emit twice controller_.mode = commands::HIRAGANA; @@ -729,7 +729,7 @@ TEST_F(GoogleJapaneseInputControllerTest, TripleTapKanaUndo) { EXPECT_EQ(SendKeyEvent(kVK_JIS_Kana, controller_, mock_client_), YES); } -TEST_F(GoogleJapaneseInputControllerTest, QuadrupleTapKanaUndo) { +TEST_F(MozcImkInputControllerTest, QuadrupleTapKanaUndo) { // tap (short) tap (short) tap (short) tap -> emit thrice controller_.mode = commands::HIRAGANA; @@ -764,7 +764,7 @@ TEST_F(GoogleJapaneseInputControllerTest, QuadrupleTapKanaUndo) { EXPECT_EQ(SendKeyEvent(kVK_JIS_Kana, controller_, mock_client_), YES); } -TEST_F(GoogleJapaneseInputControllerTest, DoubleTapEisuCommitRawText) { +TEST_F(MozcImkInputControllerTest, DoubleTapEisuCommitRawText) { // Send Eisu-key. // Because of special hack for Eisu/Kana keys, it returns YES. EXPECT_EQ(SendKeyEvent(kVK_JIS_Eisu, controller_, mock_client_), YES); @@ -780,7 +780,7 @@ TEST_F(GoogleJapaneseInputControllerTest, DoubleTapEisuCommitRawText) { EXPECT_EQ(SendKeyEvent(kVK_JIS_Eisu, controller_, mock_client_), YES); } -TEST_F(GoogleJapaneseInputControllerTest, fillSurroundingContext) { +TEST_F(MozcImkInputControllerTest, fillSurroundingContext) { [mock_client_ setAttributedString:[[NSAttributedString alloc] initWithString:@"abcde"]]; mock_client_.expectedRange = NSMakeRange(2, 1); commands::Context context; diff --git a/src/renderer/mac/CandidateController.mm b/src/renderer/mac/CandidateController.mm index eac336370..4f4993e57 100644 --- a/src/renderer/mac/CandidateController.mm +++ b/src/renderer/mac/CandidateController.mm @@ -202,7 +202,7 @@ void CandidateController::AlignWindows() { command_.preedit_rectangle().right() - command_.preedit_rectangle().left(), command_.preedit_rectangle().bottom() - command_.preedit_rectangle().top()); // The origin point of command_.preedit_rectangle() is the left-top of the - // base screen which is set in GoogleJapaneseInputController. It is + // base screen which is set in MozcImkInputController. It is // unnecessary calculation but to support older version of GoogleJapaneseInput // process we should not change it. So we minus the height of the screen here. mozc::Rect preedit_rect(mozc::Point(command_.preedit_rectangle().left(), @@ -211,7 +211,7 @@ void CandidateController::AlignWindows() { // This is a hacky way to check vertical writing. // TODO(komatsu): We should use the return value of attributesForCharacterIndex - // in GoogleJapaneseInputController.mm as a proper way. + // in MozcImkInputController as a proper way. const bool is_vertical = (preedit_size.height < preedit_size.width); // Expand the rect size to make a margin to the candidate window. diff --git a/src/renderer/mac/CandidateView.h b/src/renderer/mac/CandidateView.h index abe5b7ed3..ad3d66764 100644 --- a/src/renderer/mac/CandidateView.h +++ b/src/renderer/mac/CandidateView.h @@ -73,7 +73,7 @@ enum COLUMN_TYPE { // setCandidates: sets the candidates to be rendered. - (void)setCandidates:(const mozc::commands::Candidates *)candidates; -// setController: sets the reference of GoogleJapaneseInputController. +// setController: sets the reference of MozcImkInputController. // It will be used when mouse clicks. It doesn't take ownerships of // |controller|. - (void)setSendCommandInterface:(mozc::client::SendCommandInterface *)command_sender;