external/mozc.git
7 days agoFix build breackage in Android caused by r555 master
yukawa@google.com [Sat, 18 Apr 2015 23:59:33 +0000 (23:59 +0000)]
Fix build breackage in Android caused by r555

This CL doesn't change anything except for fixing build breakage caused by r555, which tried to bump the target API level to 22.

No behavior change is intended anyway.

BUG=none
TEST=compile

git-svn-id: http://mozc.googlecode.com/svn/trunk@567 a6090854-d499-a067-5803-1114d4e51264

2 weeks agoUpdate system dictionary
yukawa@google.com [Sat, 11 Apr 2015 07:17:53 +0000 (07:17 +0000)]
Update system dictionary

This CL updates the system dictionary.

BUG=none
TEST=unittest

git-svn-id: http://mozc.googlecode.com/svn/trunk@566 a6090854-d499-a067-5803-1114d4e51264

2 weeks agoUse the official zlib repository rather than Chromium's mirror
yukawa@google.com [Sat, 11 Apr 2015 07:14:13 +0000 (07:14 +0000)]
Use the official zlib repository rather than Chromium's mirror

Historically OSS Mozc has checked out a patched version of zlib from Chromium's repository.  However, OSS Mozc doesn't rely on those local patches in practice.  Thus we will check out zlib from Mark Adler's GitHub repository.
No user-visible behavior change is intended.

BUG=none
TEST=unittest

git-svn-id: http://mozc.googlecode.com/svn/trunk@565 a6090854-d499-a067-5803-1114d4e51264

2 weeks agoFollow repository migration of GYP from gyp.googlecode.com to chromium.googlesource.com
yukawa@google.com [Sat, 11 Apr 2015 07:05:32 +0000 (07:05 +0000)]
Follow repository migration of GYP from gyp.googlecode.com to chromium.googlesource.com

Recently GYP projects moved their repository from googlecode.com to googlesource.com.  Thus our DEPS file needs to be updated to follow the URL change.

New GYP Repository Location:
  https://chromium.googlesource.com/external/gyp/
Announcement in gyp-developer ML:
  https://groups.google.com/forum/#!topic/gyp-developer/Z7j-ZMrpWR0

Note that this CL doesn't change the pointed revision of GYP.  Hence no behavior change is intended.

BUG=none
TEST=unittest

git-svn-id: http://mozc.googlecode.com/svn/trunk@564 a6090854-d499-a067-5803-1114d4e51264

2 weeks agoFollow the point release of 14.04 for the reference build environment
yukawa@google.com [Sat, 11 Apr 2015 06:53:08 +0000 (06:53 +0000)]
Follow the point release of 14.04 for the reference build environment

With this CL, the reference build environment is upgraded from 14.04.1 to 14.04.2.  No user visible change is intended.

BUG=none
TEST=unittest

git-svn-id: http://mozc.googlecode.com/svn/trunk@563 a6090854-d499-a067-5803-1114d4e51264

5 weeks agoBump the target API level to 22
yukawa@google.com [Sun, 15 Mar 2015 13:19:17 +0000 (13:19 +0000)]
Bump the target API level to 22

This CL doesn't change anything except for incrementing the target API level to 22, that is Build.VERSION_CODES.LOLLIPOP_MR1 a.k.a. Android 5.1.

For Windows, Mac, Linux Desktop, and NaCl builds, literally this CL doesn't change anything.
For Android build, no behavior change is intended.

Patch from Tsuyoshi Matsuzaki.

BUG=none
TEST=compile

git-svn-id: http://mozc.googlecode.com/svn/trunk@555 a6090854-d499-a067-5803-1114d4e51264

6 weeks agoBump Pepper SDK version from 28 to 40
yukawa@google.com [Sat, 14 Mar 2015 08:08:33 +0000 (08:08 +0000)]
Bump Pepper SDK version from 28 to 40

We should update the target Pepper SDK because Pepper 28 SDK, on which currently Mozc depends, was deprecated. Even worse, Pepper 28 SDK is no longer downloadable from Peppre SDK tool.

With this CL, the target Pepper SDK version is bumped from 28 to 40.  For Android, Windows, Mac, and Linux desktop platforms, no behavior change is intended.  For NaCl build, no user visible change is intended.

Patch from Hiroshi Sumita.

BUG=none
TEST=none

git-svn-id: http://mozc.googlecode.com/svn/trunk@554 a6090854-d499-a067-5803-1114d4e51264

6 weeks agoUse Clang 3.4 to build host binaries
yukawa@google.com [Sat, 14 Mar 2015 07:43:27 +0000 (07:43 +0000)]
Use Clang 3.4 to build host binaries

In a recent update of clang-3.5 package in Ubuntu 14.04, /usr/bin/clang was renamed to /usr/bin/clang-3.5 for some reasons.
https://bugs.launchpad.net/ubuntu/+source/llvm-toolchain-snapshot/+bug/1420570

As a tentative solution, we will use Clang 3.4 to build host binaries for now.

Note that this CL does not change the toolchanins for the target binaries in Android and NaCl builds.  No user visible change is intended anyway.

Closes 286.

BUG=Issue mozc:286
TEST=unittest

git-svn-id: http://mozc.googlecode.com/svn/trunk@553 a6090854-d499-a067-5803-1114d4e51264

6 weeks agoRename ConnectorBase to Connector
yukawa@google.com [Sat, 14 Mar 2015 07:19:51 +0000 (07:19 +0000)]
Rename ConnectorBase to Connector

With r551 (2.16.2068.102), ConnectorBase has no subclasses.  The -Base suffix doesn't make sense anymore.

This CL does not change anything except for the class name.  Hence no behavior change is intended.

Patch from Noriyuki Takahashi.

BUG=none
TEST=unittest

git-svn-id: http://mozc.googlecode.com/svn/trunk@552 a6090854-d499-a067-5803-1114d4e51264

2 months agoPut SuppressionDictionary and UserDictionary into mozc::dictionary namespace
yukawa@google.com [Sun, 15 Feb 2015 13:29:18 +0000 (13:29 +0000)]
Put SuppressionDictionary and UserDictionary into mozc::dictionary namespace

This CL does nothing but put SuppressionDictionary and UserDictionary into mozc::dictionary.

This is just an internal clean-up.  Hence no user-visible change is intended.

Patch From Noriyuki Takahashi.

BUG=none
TEST=unittest

git-svn-id: http://mozc.googlecode.com/svn/trunk@551 a6090854-d499-a067-5803-1114d4e51264

2 months agoRemove obsolete command line flags
yukawa@google.com [Sun, 15 Feb 2015 12:56:39 +0000 (12:56 +0000)]
Remove obsolete command line flags

This CL removes following command line flags from converter as those flags are no longer used.
--disable_lattice_cache
--disable_predictive_realtime_conversion

This is just a clean-up CL.  Hence no behavior change is intended.

Patch From Noriyuki Takahashi.

BUG=none
TEST=unittest

git-svn-id: http://mozc.googlecode.com/svn/trunk@550 a6090854-d499-a067-5803-1114d4e51264

2 months agoMerge SparseConnector and CachedConnector into ConnectorBase
yukawa@google.com [Sun, 15 Feb 2015 12:47:07 +0000 (12:47 +0000)]
Merge SparseConnector and CachedConnector into ConnectorBase

The basic lookup code of SparseConnector and cache mechanism of CachedConnector are fused in ConnectorBase, so actual code difference is small.

There are following benefits:
- One nested virtual method call is removed
- Code gets more concise so more maintainable

This is just a clean-up CL.  Hence no user-visible change is intended.

Patch From Noriyuki Takahashi.

BUG=none
TEST=unittest

git-svn-id: http://mozc.googlecode.com/svn/trunk@549 a6090854-d499-a067-5803-1114d4e51264

2 months agoRemove NodeAllocatorInterface
yukawa@google.com [Sat, 14 Feb 2015 23:00:45 +0000 (23:00 +0000)]
Remove NodeAllocatorInterface

NodeAllocatorInterface is no longer necessary thanks to r547 (so far it was used in DictionaryInterface but it no longer exists).

This is just an internal clean-up.  No user-visible behavior change is intended.

Patch from Noriyuki Takahashi.

BUG=none
TEST=unittest

git-svn-id: http://mozc.googlecode.com/svn/trunk@548 a6090854-d499-a067-5803-1114d4e51264

2 months agoRemove the dependency on NodeAllocatorInterface from dictionary module
yukawa@google.com [Sat, 14 Feb 2015 22:57:08 +0000 (22:57 +0000)]
Remove the dependency on NodeAllocatorInterface from dictionary module

Node structure is only relevant to lattice structure in converter module, so its dependency should be removed from dictionary module.  To this end, NodeAllocatorData is removed as it is used only in SystemDictionary for reverse lookup.  Having a general storage for it in NodeAllocatorInterface is overkill.  Also, method signatures of DictionaryInterface are changed accordingly.

node_test.cc is removed as it no longer contains useful tests due to the removal of NodeAllocatorData.

This is just an internal clean-up.  No user-visible behavior change is intended.

Patch from Noriyuki Takahashi.

BUG=none
TEST=unittest

git-svn-id: http://mozc.googlecode.com/svn/trunk@547 a6090854-d499-a067-5803-1114d4e51264

2 months agoHide implementation details of SystemDictionary into .cc file
yukawa@google.com [Sat, 14 Feb 2015 22:53:06 +0000 (22:53 +0000)]
Hide implementation details of SystemDictionary into .cc file

This CL does nothing except hiding implementation details of SystemDictionary into .cc file.  No user-visible behavior change is intended.

Patch from Noriyuki Takahashi.

BUG=none
TEST=unittest

git-svn-id: http://mozc.googlecode.com/svn/trunk@546 a6090854-d499-a067-5803-1114d4e51264

2 months agoUse SystemDictionary::Builder and remove old factory methods
yukawa@google.com [Sat, 14 Feb 2015 22:48:01 +0000 (22:48 +0000)]
Use SystemDictionary::Builder and remove old factory methods

This is just a clean-up CL in favor of SystemDictionary::Builder.  No user-visible behavior change is intended.

Patch from Noriyuki Takahashi.

BUG=none
TEST=unittest

git-svn-id: http://mozc.googlecode.com/svn/trunk@545 a6090854-d499-a067-5803-1114d4e51264

2 months agoRemove FilterInfo from SystemDictionary
yukawa@google.com [Sun, 8 Feb 2015 14:22:05 +0000 (14:22 +0000)]
Remove FilterInfo from SystemDictionary

RegisterTokens and IsBadToken are inlined in RegisterReverseLookupResults to simplify.  Also, TokenAfterSpellningToken is removed as spelling correction token is tested in LookupReverse test.

Note that this is just a code cleanup.  No user-visible behavior change is intended in production code.

Patch from Noriyuki Takahashi.

BUG=none
TEST=unittest

git-svn-id: http://mozc.googlecode.com/svn/trunk@544 a6090854-d499-a067-5803-1114d4e51264

2 months agoHave louds tries and token array as values in SystemDictionary
yukawa@google.com [Sun, 8 Feb 2015 14:18:42 +0000 (14:18 +0000)]
Have louds tries and token array as values in SystemDictionary

With this CL, SystemDictionary has the louds tries and token array as values instead of pointers.
Benefits with this changes are:
- Locality improves (compiler may optimize code more).
- Indirection is removed when accessing to tries and token array.

Note that this is just a code cleanup.  No behavior change is intended.

Patch from Noriyuki Takahashi.

BUG=none
TEST=unittest

git-svn-id: http://mozc.googlecode.com/svn/trunk@543 a6090854-d499-a067-5803-1114d4e51264

2 months agoMake error message from DISALLOW_COPY_AND_ASSIGN and DISALLOW_IMPLICIT_CONSTRUCTORS...
yukawa@google.com [Sun, 8 Feb 2015 14:13:36 +0000 (14:13 +0000)]
Make error message from DISALLOW_COPY_AND_ASSIGN and DISALLOW_IMPLICIT_CONSTRUCTORS easier to read

Now that lots of C++11 features are available in Mozc build, we can use 'Deleted Functions' to implement DISALLOW_COPY_AND_ASSIGN and DISALLOW_IMPLICIT_CONSTRUCTORS so that error messages can be easier to read.

Note that this is just a code cleanup thanks to C++11.  No behavior change is intended.

BUG=none
TEST=none

git-svn-id: http://mozc.googlecode.com/svn/trunk@542 a6090854-d499-a067-5803-1114d4e51264

2 months agoRemove unused code from mozc_tool
yukawa@google.com [Sun, 8 Feb 2015 14:05:12 +0000 (14:05 +0000)]
Remove unused code from mozc_tool

"Check new version" and "Update Now" features were added in r61 (Mozc 1.2.809.102) but have never been released in production in practice. We decided to remove those feature because we have no plan to enable those features in production right now.  Hence no user-visible behavior change is intended in production.

BUG=none
TEST=none

git-svn-id: http://mozc.googlecode.com/svn/trunk@541 a6090854-d499-a067-5803-1114d4e51264

2 months agoRemove a workaround for sysconf w/ _SC_PHYS_PAGES
yukawa@google.com [Sun, 8 Feb 2015 13:56:19 +0000 (13:56 +0000)]
Remove a workaround for sysconf w/ _SC_PHYS_PAGES

sysconf with _SC_PHYS_PAGES did not work on Android 2.2 and prior due to a bug in bionic. That bug in question was fixed in Android 2.3 as follows.
https://android.googlesource.com/platform/bionic/+/038fbae518e904c7aba64779714a22dbeeb90887

Mozc has worked around this issue by emulating sysconf with _SC_PHYS_PAGES in android/jni/sysconf.cc.  However, we no longer have to do that because Mozc don’t support those legacy platforms anymore.

This CL is just a removal of redundant historical code.  No behavior change is intended.

BUG=none
TEST=none

git-svn-id: http://mozc.googlecode.com/svn/trunk@540 a6090854-d499-a067-5803-1114d4e51264

2 months agoInitialize NONCLIENTMETRICSW structure to be compatible with Windows Vista and later
yukawa@google.com [Sun, 8 Feb 2015 13:48:53 +0000 (13:48 +0000)]
Initialize NONCLIENTMETRICSW structure to be compatible with Windows Vista and later

Now that we no longer support Windows XP, we can safely assume that NONCLIENTMETRICSW structure always has |iPaddedBorderWidth| field and take it into consideration when calculating |NONCLIENTMETRICSW::cbSize| member.

See http://blogs.msdn.com/b/oldnewthing/archive/2003/12/12/56061.aspx about why simply specifying |sizeof(NONCLIENTMETRICSW)| to |NONCLIENTMETRICSW::cbSize| is a bug-prone.

This is just an internal clean-up.  No user-visible behavior change is intended.

BUG=none
TEST=none

git-svn-id: http://mozc.googlecode.com/svn/trunk@539 a6090854-d499-a067-5803-1114d4e51264

2 months agoUse predefined constants when possible
yukawa@google.com [Sun, 8 Feb 2015 13:39:37 +0000 (13:39 +0000)]
Use predefined constants when possible

Now we can assume that D2D1_DRAW_TEXT_OPTIONS_ENABLE_COLOR_FONT is always defined in the Windows SDK.  Hence we don't need to have our own definition anymore.

This CL is just a removal of redundant code.  No behavior change is intended.

BUG=none
TEST=none

git-svn-id: http://mozc.googlecode.com/svn/trunk@538 a6090854-d499-a067-5803-1114d4e51264

2 months agoRemove dead code that is never used in Windows Vista or later (part 2)
yukawa@google.com [Sat, 7 Feb 2015 06:02:25 +0000 (06:02 +0000)]
Remove dead code that is never used in Windows Vista or later (part 2)

This is a follow up CL for r523 (Mozc 2.16.2040.102).

This CL is just a removal of dead code and redundant code.  Hence no behavior change is intended.

BUG=none
TEST=none

git-svn-id: http://mozc.googlecode.com/svn/trunk@537 a6090854-d499-a067-5803-1114d4e51264

2 months agoRemove unnecessary header includes from mozcjni.cc (part 2)
yukawa@google.com [Sat, 7 Feb 2015 05:56:28 +0000 (05:56 +0000)]
Remove unnecessary header includes from mozcjni.cc (part 2)

This is a follow up CL for r528 (Mozc 2.16.2045.102). Turned out that there remains one unnecessary header include.

This is just a code refactoring, no behavior change is intended.

Patch from Noriyuki Takahashi.

BUG=none
TEST=none

git-svn-id: http://mozc.googlecode.com/svn/trunk@536 a6090854-d499-a067-5803-1114d4e51264

2 months agoCheck in IPAEx font for layout tests on Windows
yukawa@google.com [Sat, 7 Feb 2015 05:50:29 +0000 (05:50 +0000)]
Check in IPAEx font for layout tests on Windows

Layout tests on Windows depend on IPAEx font, which unfortunately are inaccessible with gclient.  So we will directly import them into our third_party directory so that developers can easily run unit tests for Windows.  As a future plan, we may want to rewrite existing layout test cases with Noto fonts rather than IPA font to reduce the check-out size.

Note that those fonts are not used/bundled for production binaries.  Hence data/installer/credits_{en, ja}.html do not include license notice of IPAEx font.  For the same reason, no user-visible change is intended with this CL.

BUG=none
TEST=unittest

git-svn-id: http://mozc.googlecode.com/svn/trunk@535 a6090854-d499-a067-5803-1114d4e51264

2 months agoRefactor base/bitarray.h
yukawa@google.com [Sat, 7 Feb 2015 05:41:37 +0000 (05:41 +0000)]
Refactor base/bitarray.h

This is just a code refactoring of base/bitarray.h.  No behavior change is intended.

Patch from Noriyuki Takahashi.

BUG=none
TEST=unittest

git-svn-id: http://mozc.googlecode.com/svn/trunk@534 a6090854-d499-a067-5803-1114d4e51264

2 months agoUpdate japanese_util_rule.h to match update of romanji-hiragana.tsv in r185
yukawa@google.com [Sat, 7 Feb 2015 05:38:55 +0000 (05:38 +0000)]
Update japanese_util_rule.h to match update of romanji-hiragana.tsv in r185

This is a follow up CL for r185 (Mozc 1.13.1651.102), which introduced new rules such as "gwe" to data/preedit/romanji-hiragana.tsv but forgot to reflect those changes to base/japanese_util_rule.h.

With this CL, base/japanese_util_rule.h becomes consistent again to rules defined in data/preedit.

Patch from Noriyuki Takahashi.

BUG=none
TEST=unittest

git-svn-id: http://mozc.googlecode.com/svn/trunk@533 a6090854-d499-a067-5803-1114d4e51264

2 months agoRemove unnecessary header includes from base/process.h
yukawa@google.com [Sat, 7 Feb 2015 05:29:25 +0000 (05:29 +0000)]
Remove unnecessary header includes from base/process.h

base/process.h included several header files unnecessarily.  This CL removes such headers.

This is just a code clean-up.  No behavior change is intended.

BUG=none
TEST=compile

git-svn-id: http://mozc.googlecode.com/svn/trunk@532 a6090854-d499-a067-5803-1114d4e51264

2 months agoRely on pthread to implement reader-writer lock for Android
yukawa@google.com [Sat, 7 Feb 2015 05:26:28 +0000 (05:26 +0000)]
Rely on pthread to implement reader-writer lock for Android

Now that we support API Level 14 (Ice Cream Sandwich) and later only, we can safely assume that pthread is available.

This is just a performance optimization.  No user-visible change is intended.

BUG=none
TEST=none

git-svn-id: http://mozc.googlecode.com/svn/trunk@531 a6090854-d499-a067-5803-1114d4e51264

2 months agoImplicitly link to SlimReaderWriterLock APIs
yukawa@google.com [Sat, 7 Feb 2015 05:18:41 +0000 (05:18 +0000)]
Implicitly link to SlimReaderWriterLock APIs

SlimReaderWriterLock APIs are always available in Vista and later.  We don't need to dynamically link to them anymore.

This is just a mechanical optimization on how Win32 APIs are linked and called.  No user-visible behavior change is intended.

BUG=none
TEST=unittest

git-svn-id: http://mozc.googlecode.com/svn/trunk@530 a6090854-d499-a067-5803-1114d4e51264

2 months agoEnable several layout tests again
yukawa@google.com [Sat, 7 Feb 2015 05:13:15 +0000 (05:13 +0000)]
Enable several layout tests again

Several layout test have been disabled because surrogate pair support is not enabled by default on Windows XP En.

Now that we no longer care about Windows XP, we can safely enable those tests.

No behavior change is intended in production binaries.

BUG=none
TEST=unittest

git-svn-id: http://mozc.googlecode.com/svn/trunk@529 a6090854-d499-a067-5803-1114d4e51264

2 months agoRemove unnecessary header includes from mozcjni.cc
yukawa@google.com [Sat, 7 Feb 2015 05:09:12 +0000 (05:09 +0000)]
Remove unnecessary header includes from mozcjni.cc

mozcjni.cc included several header files unnecessarily.  This CL removes such headers.

This is just a code refactoring, no behavior change is intended.

Patch from Noriyuki Takahashi.

BUG=none
TEST=none

git-svn-id: http://mozc.googlecode.com/svn/trunk@528 a6090854-d499-a067-5803-1114d4e51264

2 months agoMove storage/louds/key_expansion_table{.h, _test.cc} files to dictionary/system
yukawa@google.com [Sat, 31 Jan 2015 09:16:37 +0000 (09:16 +0000)]
Move storage/louds/key_expansion_table{.h, _test.cc} files to dictionary/system

Key expansion table is no longer associated with louds trie but system dictionary.  So it should be located under dictionary/system.

This is just a code refactoring, no user-visible behavior change is intended.

Patch from Noriyuki Takahashi.

BUG=none
TEST=unittest

git-svn-id: http://mozc.googlecode.com/svn/trunk@527 a6090854-d499-a067-5803-1114d4e51264

2 months agoRefactor SystemDictionary::LookupPredictive using new LoudsTrie::Node APIs
yukawa@google.com [Sat, 31 Jan 2015 09:11:35 +0000 (09:11 +0000)]
Refactor SystemDictionary::LookupPredictive using new LoudsTrie::Node APIs

In the previous implementation, LookupPredictive was implemented by DFS and some short key list management to emulate BFS because it was difficult to implement BFS due to LOUDS trie implementation.  This CL implements BFS using a new LOUDS trie APIs.  The resulting code is simpler and more efficient.

Benchmark shows significant performance improvement for suggestion and prediction.  For example, observed 1.2x and 1.4x speed up for mobile one character prediction and suggestion, respectively.  Note also that this is just a code refactoring, no user-visible behavior change is intended.

Patch from Noriyuki Takahashi.

BUG=none
TEST=unittest,benchmark

git-svn-id: http://mozc.googlecode.com/svn/trunk@526 a6090854-d499-a067-5803-1114d4e51264

2 months agoRefactor SystemDictionary::PrefixSearch using LoudsTrie::Node APIs
yukawa@google.com [Sat, 31 Jan 2015 09:08:12 +0000 (09:08 +0000)]
Refactor SystemDictionary::PrefixSearch using LoudsTrie::Node APIs

This CL re-implements prefix search without LoudsTrie::Callback, which simplifies code because the nested callback of DictionaryInterface::Callback and LoudsTrie::Callback was removed.

Also, some performance improvements are implemented.
- Instead of decoding the prefix using Codec::DecodeKey, only its length is decoded by Codec::GetDecodeKeyLength and the decoded prefix is obtained from the original user input.  This is faster because we can avoid UCS4 to UTF8 conversion and string construction.
- Lazy decoding of LoudsTrie's key ID.  In the previous implementation, key IDs were always decoded due to the restriction of LoudsTrie::Callback.  However, key ID is first used when starting decoding token array elements.  Thus, when performing culling based on key strings, we can skip decoding of key ID.
- Optimization for the case where key expansion is not performed (e.g., predictor calls LookupPrefix without expansion).  In the previous implementation, this case was implemented by passing the default KeyExpansionTable.  However, since recursive traversal over LoudsTrie is far complicated than the normal traversal, it's worth optimizing the code for non-expanding cases.

Roughly 10% time reduction is observed in converter_benchmark with several corpora.  Note that this is just a code refactoring, no user-visible behavior change is intended.

Patch from Noriyuki Takahashi.

BUG=none
TEST=unittest,benchmark

git-svn-id: http://mozc.googlecode.com/svn/trunk@525 a6090854-d499-a067-5803-1114d4e51264

2 months agoRefactor LOUDS trie by introducing a new API set for traversal
yukawa@google.com [Sat, 31 Jan 2015 09:02:05 +0000 (09:02 +0000)]
Refactor LOUDS trie by introducing a new API set for traversal

Louds::Node structure is introduced to represent the position in the tree during traversal.  Three basic movements are implemented: 1) go to the first child, 2) go to the next sibling, and 3) go to the parent.  This new design brings a few benefits:
* Intermediate traversal state can be saved (e.g., incremental search can be implemented).
* Similar pieces of code in ExactSearcher, PrefixSearcher and PredictiveSearcher are factored out, so new code looks more concise and intuitive.
* New APIs take StringPiece instead of const char*.

Using the new APIs, LoudsTrie::HasKey is introduced, which is a faster modification of LoudsTrie::ExactSearch to test the existence of key, where one Rank1 operation is saved compared to ExactSearch.  This is nice because HasKey is called more often than before, e.g., from LanguageAwareRewriter.

Also, in LoudsTrie::Reverse, which is renamed to LoudsTrie::RestoreKeyString, one Rank0 operation is eliminated in the loop of key string reconstruction.  Namely, N operations are saved for keys of length N.

Benchmark shows no performance regression.  Also, this is just a code refactoring, no behavior change is intended.

Patch from Noriyuki Takahashi.

BUG=none
TEST=unittest,benchmark

git-svn-id: http://mozc.googlecode.com/svn/trunk@524 a6090854-d499-a067-5803-1114d4e51264

2 months agoDemove dead code that is never used in Windows Vista or later
yukawa@google.com [Sat, 31 Jan 2015 08:42:23 +0000 (08:42 +0000)]
Demove dead code that is never used in Windows Vista or later

Now that Mozc for Windows does not support Windows XP, we can safely get rid of SystemUtil::IsVistaOrLater() as well as the dead code conditionally used behind that.

This is just dead-code removal.  No behavior change is intended.

BUG=none
TEST=unittest

git-svn-id: http://mozc.googlecode.com/svn/trunk@523 a6090854-d499-a067-5803-1114d4e51264

2 months agoUse VersionHelpers.h to simplify SystemUtil
yukawa@google.com [Sat, 31 Jan 2015 08:33:49 +0000 (08:33 +0000)]
Use VersionHelpers.h to simplify SystemUtil

A set of useful utilify functions called "Version Helper functions" has been available since Windows SDK 8.1.
https://msdn.microsoft.com/en-us/library/windows/desktop/dn424972.aspx

We can rely on them in SystemUtil instead of reimplementing the same logic.

This is just a code clean-up.  No behavior change is intended.

BUG=none
TEST=unittest

git-svn-id: http://mozc.googlecode.com/svn/trunk@522 a6090854-d499-a067-5803-1114d4e51264

2 months agoRemove legacy base/hash_tables.h in favor of C++11
yukawa@google.com [Sat, 31 Jan 2015 08:28:56 +0000 (08:28 +0000)]
Remove legacy base/hash_tables.h in favor of C++11

With this CL all the uses of base/hash_tables.h are replaced with std::unordered_set and std::unordered_map in favor of C++11.

No user-visible behavior change is intended.

BUG=none
TEST=unittest

git-svn-id: http://mozc.googlecode.com/svn/trunk@521 a6090854-d499-a067-5803-1114d4e51264

2 months agoRemove a workaround code for Visual C++ 2010 (KB813540)
yukawa@google.com [Sun, 25 Jan 2015 14:15:20 +0000 (14:15 +0000)]
Remove a workaround code for Visual C++ 2010 (KB813540)

Mozc no longer supports Visual C++ 2010.  We don't need to work around KB813540 anymore.
http://support.microsoft.com/kb/813540

This is just a removal of dead code.  No behavior change is intended.

BUG=none
TEST=compile

git-svn-id: http://mozc.googlecode.com/svn/trunk@510 a6090854-d499-a067-5803-1114d4e51264

2 months agoRequire Visual C++ 2013 to build Mozc for Windows
yukawa@google.com [Sun, 25 Jan 2015 12:44:44 +0000 (12:44 +0000)]
Require Visual C++ 2013 to build Mozc for Windows

To reduce the number of actively maintained build configurations, we will discontinue the support of Visual C++ 2010 and 2012.

With this CL, the required Windows Installer version is also bumped from 3.0 to 4.5 because merge modules of Visual C++ 2013 requires Windows Installer 4.5 or later.  This should be OK because Mozc supports Windows Vista SP2 and later, and Windows Vista SP2 was shipped with Windows Installer 4.5.

Basically no user visible change is intended.

BUG=none
TEST=unittest

git-svn-id: http://mozc.googlecode.com/svn/trunk@509 a6090854-d499-a067-5803-1114d4e51264

2 months agoRequire Windows Vista SP2 or later
yukawa@google.com [Sun, 25 Jan 2015 12:30:18 +0000 (12:30 +0000)]
Require Windows Vista SP2 or later

With this CL, Mozc binaries are configured to run only on Windows Vista SP2 and later.  Windows XP and Windows Server 2003 are no longer supported.

Closes Issue 277.

BUG=Issue mozc:277
TEST=compile

git-svn-id: http://mozc.googlecode.com/svn/trunk@508 a6090854-d499-a067-5803-1114d4e51264

2 months agoRemove build_tools command from build_mozc.py
yukawa@google.com [Sun, 25 Jan 2015 12:08:08 +0000 (12:08 +0000)]
Remove build_tools command from build_mozc.py

With this CL, build_tools command of build_mozc.py is completely removed. 2-pass build can not be enabled anymore even manually.

No behavior change is intended with this CL.

BUG=Issue mozc:223
TEST=unittest

git-svn-id: http://mozc.googlecode.com/svn/trunk@507 a6090854-d499-a067-5803-1114d4e51264

2 months agoRequire Clang to build Linux host binaries
yukawa@google.com [Sun, 25 Jan 2015 07:42:45 +0000 (07:42 +0000)]
Require Clang to build Linux host binaries

With this CL, Clang 3.5 is required in the host environment to build Mozc for Android, NaCl, and Linux.  What we want to do with this CL is to reduce the number of actively maintained build configurations.

No user visible change is intended with this CL.

Closes Issue 276.

BUG=Issue mozc:276
TEST=compile

git-svn-id: http://mozc.googlecode.com/svn/trunk@506 a6090854-d499-a067-5803-1114d4e51264

2 months agoSwitch from stlport to libcxx in Android build
yukawa@google.com [Sun, 25 Jan 2015 06:55:02 +0000 (06:55 +0000)]
Switch from stlport to libcxx in Android build

Deprecation of stlport is an important step to enable C++11 everywhere in Mozc.  With this CL, Mozc for Android will be built with libcxx by default, and building Mozc with stlport is not supported anymore.

Basically no user visible change is intended with this CL.

BUG=Issue mozc:219
TEST=compile

git-svn-id: http://mozc.googlecode.com/svn/trunk@505 a6090854-d499-a067-5803-1114d4e51264

2 months agoRemove mozc::DetachedThread as it is no longer used
yukawa@google.com [Sun, 25 Jan 2015 06:49:55 +0000 (06:49 +0000)]
Remove mozc::DetachedThread as it is no longer used

This is just a removal of dead code.  Hence no behavior change is intended.

BUG=none
TEST=unittest

git-svn-id: http://mozc.googlecode.com/svn/trunk@504 a6090854-d499-a067-5803-1114d4e51264

2 months agoFix build failur of unit tests when libcxx is used on Android
yukawa@google.com [Sun, 25 Jan 2015 06:48:00 +0000 (06:48 +0000)]
Fix build failur of unit tests when libcxx is used on Android

When libcxx is used to biuld Mozc for Android, building gtest fails due to the ambiguity of wcsstr function.

This CL specifies _WCHAR_H_CPLUSPLUS_98_CONFORMANCE_ macro to work around.

Patch from Hiroyuki Komatsu.

BUG=none
TEST=compile

git-svn-id: http://mozc.googlecode.com/svn/trunk@503 a6090854-d499-a067-5803-1114d4e51264

2 months agoFix test failure in release build with Visual C++ 2013
yukawa@google.com [Sun, 25 Jan 2015 06:42:09 +0000 (06:42 +0000)]
Fix test failure in release build with Visual C++ 2013

Seems that the optimization in release mode of Visual C++ 2013 is a bit too aggressive when an API is dynamically hooked up.  This CL relaxes the test case in question a bit as a workaround.

No production code is changed.  Bahavior change is not intended with this CL.

git-svn-id: http://mozc.googlecode.com/svn/trunk@502 a6090854-d499-a067-5803-1114d4e51264

2 months agoMake the conditions to learn candidates with a punctuation mark more strict
yukawa@google.com [Sun, 25 Jan 2015 06:37:36 +0000 (06:37 +0000)]
Make the conditions to learn candidates with a punctuation mark more strict

Learning a candidate with a punctuation was originally introduced for the desktop users so that sentence like suggestions such as "いつもお世話になっております" can be learned with punctuation marks like "。".  However, especially in mobile where zero query suggestions are suggested aggressively, the current algorithm is sometimes too aggressive in practice.

To reduce the risk of polluting history entries, this CL imposes some condition on the history candidate to check if it is a sentence or not.  Currently the candidate is handles as "sentence-like" when all the following conditions are met.
- the reading character length is 8 or greater.
- the word ends with Hiragana character.

Closes Issue 275.

Patch from Noriyuki Takahashi.

BUG=Issue mozc:275
TEST=unittest

git-svn-id: http://mozc.googlecode.com/svn/trunk@501 a6090854-d499-a067-5803-1114d4e51264

3 months agoApply the same hack as conversion to prediction for transition cost from history...
yukawa@google.com [Sat, 24 Jan 2015 15:15:39 +0000 (15:15 +0000)]
Apply the same hack as conversion to prediction for transition cost from history node

Sometimes transition cost is too high and causes a bug Issue 274.

For example, "接続詞 が" -> "始まる 動詞,五段活用,基本形" has very large cost and "始まる" is demoted.  To prevent such cases, ImmutableConverter computes transition from BOS/EOS too; see ImmutableConverterImpl::MakeLatticeNodesForHistorySegments().

This CL introduces the same hack for DictionaryPredictor::GetLMCost so that similar language model can be applied to both suggestion candidates and conversion candidates.

Closes Issue 274.

Patch from Noriyuki Takahashi.

BUG=Issue mozc:274
TEST=unittest

git-svn-id: http://mozc.googlecode.com/svn/trunk@500 a6090854-d499-a067-5803-1114d4e51264

3 months agoRemove an unused member field
yukawa@google.com [Sat, 24 Jan 2015 14:17:09 +0000 (14:17 +0000)]
Remove an unused member field

This is jsut a removal of dead code.  No behavior change is intended.

BUG=none
TEST=none

git-svn-id: http://mozc.googlecode.com/svn/trunk@499 a6090854-d499-a067-5803-1114d4e51264

3 months agoAs-is import of NaCl Mozc for Chromium OS
yukawa@google.com [Sat, 24 Jan 2015 14:13:41 +0000 (14:13 +0000)]
As-is import of NaCl Mozc for Chromium OS

This is just an as-is import of NaCl Mozc from the internal repository.  Compilation is not verified.  Nothing is tested actually.

BUG=none
TEST=none

git-svn-id: http://mozc.googlecode.com/svn/trunk@498 a6090854-d499-a067-5803-1114d4e51264

3 months agoRemove platform-dependent mozc::Encryptor part 3
yukawa@google.com [Sat, 24 Jan 2015 14:07:05 +0000 (14:07 +0000)]
Remove platform-dependent mozc::Encryptor part 3

This is just a removal of an unused file, which should have been removed in r208.  Hence no behavior change is intended with this CL.

BUG=Issue mozc:215
TEST=compile

git-svn-id: http://mozc.googlecode.com/svn/trunk@497 a6090854-d499-a067-5803-1114d4e51264

3 months agoFix style violations in header include guards part 4
yukawa@google.com [Sat, 24 Jan 2015 14:02:10 +0000 (14:02 +0000)]
Fix style violations in header include guards part 4

This is a follow up CL for r332
No behavior change is intended with this CL.

Patch from Noriyuki Takahashi.

BUG=none
TEST=unittest

git-svn-id: http://mozc.googlecode.com/svn/trunk@496 a6090854-d499-a067-5803-1114d4e51264

3 months agoRemove unused variables
yukawa@google.com [Sat, 24 Jan 2015 13:59:55 +0000 (13:59 +0000)]
Remove unused variables

This is just a removal of unused code.  No behavior chnage is intended.

Patch from Noriyuki Takahashi.

BUG=none
TEST=compile

git-svn-id: http://mozc.googlecode.com/svn/trunk@495 a6090854-d499-a067-5803-1114d4e51264

3 months agoFix a typo in reading strings of Unicode Emoji data
yukawa@google.com [Sat, 24 Jan 2015 13:56:43 +0000 (13:56 +0000)]
Fix a typo in reading strings of Unicode Emoji data

Patch from Toshiyuki Hanaoka

BUG=none
TEST=none

git-svn-id: http://mozc.googlecode.com/svn/trunk@494 a6090854-d499-a067-5803-1114d4e51264

3 months agoUnsupport Ubuntu 12.04 as a build environment
yukawa@google.com [Sun, 18 Jan 2015 13:38:00 +0000 (13:38 +0000)]
Unsupport Ubuntu 12.04 as a build environment

With this CL, Ubuntu 12.04 is no longer a reference environment to build Mozc binaries for Android, NaCl, and Linux.  Hereafter only Ubuntu 14.04 is supported to build those binaries.
This is just a removal of Docker files.  Hence no behavior change is intended.

BUG=none
TEST=none

git-svn-id: http://mozc.googlecode.com/svn/trunk@486 a6090854-d499-a067-5803-1114d4e51264

3 months agoUpdate copyright year in source header comments
yukawa@google.com [Sun, 18 Jan 2015 12:46:53 +0000 (12:46 +0000)]
Update copyright year in source header comments

The copyright year in source header comments is updated to 2015 from 2014.
No behavior change is intended.

BUG=none
TEST=compile

git-svn-id: http://mozc.googlecode.com/svn/trunk@485 a6090854-d499-a067-5803-1114d4e51264

3 months agoUpdate copyright year in the about dialog to 2015
yukawa@google.com [Sat, 17 Jan 2015 16:24:12 +0000 (16:24 +0000)]
Update copyright year in the about dialog to 2015

The copyright year in the about dialog is updated from 2014 to 2015.
No behavior change is intended.

BUG=none
TEST=compile

git-svn-id: http://mozc.googlecode.com/svn/trunk@484 a6090854-d499-a067-5803-1114d4e51264

3 months agoUpdate special rules for KEN_ALL.CSV
yukawa@google.com [Sat, 17 Jan 2015 16:10:17 +0000 (16:10 +0000)]
Update special rules for KEN_ALL.CSV

Patch from Toshiyuki Hanaoka.

Closes Issue 272.

BUG=Issue mozc:272
TEST=manually tested on Ubuntu 14.04

git-svn-id: http://mozc.googlecode.com/svn/trunk@483 a6090854-d499-a067-5803-1114d4e51264

3 months agoRevert r438 "Update Protocol Buffers to 2.6.1" and r444 "Suppress compiler warnings...
yukawa@google.com [Sat, 17 Jan 2015 15:33:01 +0000 (15:33 +0000)]
Revert r438 "Update Protocol Buffers to 2.6.1" and r444 "Suppress compiler warnings for Protocol Buffers 2.6.1"

Although this CL breaks aarch64/mipsel64 build in Android, we should fix Windows test first.

Closes Issue 271.

BUG=Issue mozc:271
TEST=unittest on Windows 7

git-svn-id: http://mozc.googlecode.com/svn/trunk@482 a6090854-d499-a067-5803-1114d4e51264

3 months agoRevert r477 "Revert r247 "Explicity invoke bash for make-standalone-toolchain.sh""
yukawa@google.com [Sat, 17 Jan 2015 08:53:13 +0000 (08:53 +0000)]
Revert r477 "Revert r247 "Explicity invoke bash for make-standalone-toolchain.sh""

Turned out that the original issue was not fixed even in NDK r10d.

Closes Issue 269.

BUG=Issue mozc:269
TEST=compile in Ubuntu 14.04

git-svn-id: http://mozc.googlecode.com/svn/trunk@481 a6090854-d499-a067-5803-1114d4e51264

3 months agoCall CalculatorInterface::CalculateString even for x86 Android testing
yukawa@google.com [Sun, 4 Jan 2015 15:57:56 +0000 (15:57 +0000)]
Call CalculatorInterface::CalculateString even for x86 Android testing

With this CL, CalculatorInterface::CalculateString is called just as a smoke test.
This is just a clean-up of unittest. Hence no behavior change is intended.

Patch from Tsuyoshi Matsuzaki.

BUG=none
TEST=compile

git-svn-id: http://mozc.googlecode.com/svn/trunk@480 a6090854-d499-a067-5803-1114d4e51264

3 months agoSuppress LangAwareRewriter to suggest the raw text if the query is in the dictionary...
yukawa@google.com [Sun, 4 Jan 2015 15:49:02 +0000 (15:49 +0000)]
Suppress LangAwareRewriter to suggest the raw text if the query is in the dictionary as a key

This CL adds DictionaryInterface::HasKey with which LangAwareRewriter can determine when the raw text should be suggested.

Patch from Hiroyuki Komatsu.

Closes Issue 267.

BUG=Issue mozc:267
TEST=manually done on Ubuntu 14.04

git-svn-id: http://mozc.googlecode.com/svn/trunk@479 a6090854-d499-a067-5803-1114d4e51264

3 months agoHandle emojis that have multiple readings correctly
yukawa@google.com [Fri, 2 Jan 2015 21:59:46 +0000 (21:59 +0000)]
Handle emojis that have multiple readings correctly

There are some emojis in emoji_data.ts which contain multiple readings but gen_emoji_rewriter_data.py couldn't handle them correctly.  As a result, some emoji are registered as if they could be read as " ".  This CL addresses the issue.

Patch from Noriyuki Takahashi.

Closes Issue 266.

BUG=Issue mozc:266
TEST=manually done with Nexus 5 / Android 5.0.1 (LRX22C)

git-svn-id: http://mozc.googlecode.com/svn/trunk@478 a6090854-d499-a067-5803-1114d4e51264

3 months agoRevert r247 "Explicity invoke bash for make-standalone-toolchain.sh"
yukawa@google.com [Thu, 1 Jan 2015 22:35:48 +0000 (22:35 +0000)]
Revert r247 "Explicity invoke bash for make-standalone-toolchain.sh"

The implicit dependency on bash in make-standalone-toolchain.sh was fixed in NDK r10d.
https://code.google.com/p/android/issues/detail?id=74145

Hence we can safely revert the workaround code that was added as r247.

This is just a clean-up of build procedure.  No behavior change is intended.

BUG=none
TEST=compile

git-svn-id: http://mozc.googlecode.com/svn/trunk@477 a6090854-d499-a067-5803-1114d4e51264

3 months agoSeveral coding style fixes
yukawa@google.com [Thu, 1 Jan 2015 21:58:09 +0000 (21:58 +0000)]
Several coding style fixes

This is just a coding style fix CL.  No behavior change is intended.

BUG=none
TEST=compile

git-svn-id: http://mozc.googlecode.com/svn/trunk@476 a6090854-d499-a067-5803-1114d4e51264

3 months agoImprove classic skins for Android
yukawa@google.com [Thu, 1 Jan 2015 21:47:27 +0000 (21:47 +0000)]
Improve classic skins for Android

Major changes are:
- Modify the shadows of the major category buttons to keep consistency with other buttons.
- Change the color of the narrow frame on blue_darkgray skin.

This is just a cosmetic fix.  No functional change is intended.

Patch from Hiroshi Sumita.

BUG=none
TEST=manually done with Nexus 5 / Android 5.0.1 (LRX22C)

git-svn-id: http://mozc.googlecode.com/svn/trunk@475 a6090854-d499-a067-5803-1114d4e51264

3 months agoFix resource leak on onDestroy
yukawa@google.com [Thu, 1 Jan 2015 21:29:47 +0000 (21:29 +0000)]
Fix resource leak on onDestroy

Starting from Android 5.0, IME processes can be alive even after Service.onDestory is called depending on the available memory so that we can switch IMEs as fast as possible.
https://android.googlesource.com/platform/frameworks/base/+/f0f94d129b6eb3c48624e915898d86d4f2de59ff

However, this change revealed that Mozc has not released all the Java objects on Service.onDestory, which can be observed as an increasing memory usage of Mozc.

Patch from Tsuyoshi Matsuzaki.

Closes Issue 265.

BUG=Issue mozc:265
TEST=manually done with Nexus 5 / Android 5.0.1 (LRX22C)

git-svn-id: http://mozc.googlecode.com/svn/trunk@474 a6090854-d499-a067-5803-1114d4e51264

4 months agoEnable Material theme for Android (part 4)
yukawa@google.com [Wed, 24 Dec 2014 17:05:08 +0000 (17:05 +0000)]
Enable Material theme for Android (part 4)

This is the 3rd (and hopefuly the last) follow up CL for r467.

Files listed in this CL are obsolete, and actually should have been removed in r467.

BUG=none
TEST=manually done with Nexus 5 / Android 5.0.1 (LRX22C)

git-svn-id: http://mozc.googlecode.com/svn/trunk@470 a6090854-d499-a067-5803-1114d4e51264

4 months agoEnable Material theme for Android (part 3)
yukawa@google.com [Mon, 22 Dec 2014 09:24:49 +0000 (09:24 +0000)]
Enable Material theme for Android (part 3)

Now building Mozc for Android depends on 'zip' command in build time.  Without that command, you cannot build Mozc for Android.

BUG=none
TEST=compine

git-svn-id: http://mozc.googlecode.com/svn/trunk@469 a6090854-d499-a067-5803-1114d4e51264

4 months agoEnable Material theme for Android (part 2)
yukawa@google.com [Mon, 22 Dec 2014 08:59:12 +0000 (08:59 +0000)]
Enable Material theme for Android (part 2)

These two SVG resources should have been included in the previous CL.  Without them, you cannot build Mozc for Android.

BUG=none
TEST=manually done with Nexus 5 / Android 5.0.1 (LRX22C)

git-svn-id: http://mozc.googlecode.com/svn/trunk@468 a6090854-d499-a067-5803-1114d4e51264

4 months agoEnable Material theme for Android
yukawa@google.com [Mon, 22 Dec 2014 08:38:00 +0000 (08:38 +0000)]
Enable Material theme for Android

With this CL, Mozc for Android supports Material theme.

Note that this CL also contains a lot of other improvements and bug fixes that might not be directly related to the Material theme.  Here are some examples:
  * Floating candidate window support in Android 5.0.
  * Improved accessibility support.
  * Start bundling Key Character Map (KCM) file of Japanese 109 keyboard.

See the release note for details.

As for desktop versions, no behavior change is intended.

BUG=none
TEST=manually done with Nexus 5 / Android 5.0.1 (LRX22C)

git-svn-id: http://mozc.googlecode.com/svn/trunk@467 a6090854-d499-a067-5803-1114d4e51264

4 months agoFix crash when a dead key is pressed in the physical keyboard in Android
yukawa@google.com [Sun, 21 Dec 2014 14:46:22 +0000 (14:46 +0000)]
Fix crash when a dead key is pressed in the physical keyboard in Android

The root cause of the crash was unawareness of KeyCharacterMap.COMBINING_ACCENT_MASK flag in Mozc's hardware key event handling.  The return value of android.view.KeyEvent#getUnicodeChar() should have been masked with KeyCharacterMap.COMBINING_ACCENT_MASK before it is treated as a Unicode character.

Note that even with this CL, Mozc for Android still cannot handle dead keys correctly.  It should be addressed by another CL.

Closes Issue 248.

BUG=Issue mozc:248
TEST=manually done with Nexus 5 / Android 5.0.1 (LRX22C)

git-svn-id: http://mozc.googlecode.com/svn/trunk@463 a6090854-d499-a067-5803-1114d4e51264

4 months agoIgnore InflateException when showing AlertDialog (part 2)
yukawa@google.com [Sun, 21 Dec 2014 14:16:56 +0000 (14:16 +0000)]
Ignore InflateException when showing AlertDialog (part 2)

This is a follow up CL for r461, which caused several compile failures.

Closes Issue 262.

BUG=Issue mozc:262
TEST=compile

git-svn-id: http://mozc.googlecode.com/svn/trunk@462 a6090854-d499-a067-5803-1114d4e51264

4 months agoIgnore InflateException when showing AlertDialog
yukawa@google.com [Fri, 19 Dec 2014 06:50:20 +0000 (06:50 +0000)]
Ignore InflateException when showing AlertDialog

Seems that creating AlertDialog on IME contexts may cause InflateException on certain devices.  That's unfortunate, but users expect IMEs to not crash even on such a device.

Patch from Tsuyoshi Matsuzaki.

Closes Issue 262

BUG=Issue mozc:262
TEST=manually done

git-svn-id: http://mozc.googlecode.com/svn/trunk@461 a6090854-d499-a067-5803-1114d4e51264

4 months agoUse android-sdk_* to check out Android SDK and related components
yukawa@google.com [Thu, 18 Dec 2014 20:20:21 +0000 (20:20 +0000)]
Use android-sdk_* to check out Android SDK and related components

adt-bundle-linux-* has not been released for Android 5.0.  In order to use newer tools, and to start using new APIs that are added in Android 5.0, we need to switch to android-sdk_* and to use 'android' command to download related components.

Basically no behavior change in production is intended.

BUG=none
TEST=unittest

git-svn-id: http://mozc.googlecode.com/svn/trunk@460 a6090854-d499-a067-5803-1114d4e51264

4 months agoShorten annotations so that more candidates can be displayed (part 3)
yukawa@google.com [Thu, 18 Dec 2014 20:08:57 +0000 (20:08 +0000)]
Shorten annotations so that more candidates can be displayed (part 3)

This is a follow up CL for r454, which replaced "<部分確定>" with "部分" to save space on the display.  That change should be applied to NumberRewriter as well.

BUG=none
TEST=unittest

git-svn-id: http://mozc.googlecode.com/svn/trunk@459 a6090854-d499-a067-5803-1114d4e51264

4 months agoExplicitly specify point release numbers for Ubuntu LTS releases
yukawa@google.com [Thu, 18 Dec 2014 20:01:24 +0000 (20:01 +0000)]
Explicitly specify point release numbers for Ubuntu LTS releases

With this CL, we will explicitly specify point release numbers for Ubuntu 12.04/14.04 used in our reference build environment based on Docker file.
This is just in case change for build environment, and no behavior change is intended for production.

BUG=none
TEST=none

git-svn-id: http://mozc.googlecode.com/svn/trunk@458 a6090854-d499-a067-5803-1114d4e51264

4 months agoAdd a custom font file built from Noto font and Roboto2 font for Android
yukawa@google.com [Thu, 18 Dec 2014 19:49:08 +0000 (19:49 +0000)]
Add a custom font file built from Noto font and Roboto2 font for Android

This CL adds a custom font file that is built from Noto font and Roboto2.  That font, Noto-Roboto2-Regular.otf, will be used for custom rendering in Mozc for Android.

Noto-Roboto2-Regular.otf is basically equal to NotoSansJP-Regular.otf, but ASCII characters are replaced with Roboto-Regular.ttf to keep consistency with other UI parts in Android with Material Design enabled.  See README.mozc about how to reproduce Noto-Roboto2-Regular.otf by yourself.

Patch from Toshiyuki Hanaoka.

BUG=none
TEST=none

git-svn-id: http://mozc.googlecode.com/svn/trunk@457 a6090854-d499-a067-5803-1114d4e51264

4 months agoShorten annotations so that more candidates can be displayed (part 2)
yukawa@google.com [Thu, 18 Dec 2014 07:25:18 +0000 (07:25 +0000)]
Shorten annotations so that more candidates can be displayed (part 2)

This is a follow up CL for r454, which removed a comment line unexpectedly.  That line is recovered with this CL.

BUG=none
TEST=none

git-svn-id: http://mozc.googlecode.com/svn/trunk@456 a6090854-d499-a067-5803-1114d4e51264

4 months agoFix VariantsRewriter and SymbolRewriter to handle inner segment boundary correctly
yukawa@google.com [Thu, 18 Dec 2014 02:49:36 +0000 (02:49 +0000)]
Fix VariantsRewriter and SymbolRewriter to handle inner segment boundary correctly

Turned out that SymbolRewriter and VariantRewriter are culprits.

Patch from Noriyuki Takahashi.

Closes Issue 261

BUG=Issue mozc:261
TEST=Manually done on Nexus 5 / Android 5.0.1 LRX22C

git-svn-id: http://mozc.googlecode.com/svn/trunk@455 a6090854-d499-a067-5803-1114d4e51264

4 months agoShorten annotations so that more candidates can be displayed
yukawa@google.com [Thu, 18 Dec 2014 01:29:45 +0000 (01:29 +0000)]
Shorten annotations so that more candidates can be displayed

Mobile phones still have very limited display area.  Hence this CL replaces annotations <入力補正> and <部分確定> with 補正 and 部分, respectively, so that we can show more candidates at the same time.

Patch from Tsuyoshi Matsuzaki.

BUG=none
TEST=unittest

git-svn-id: http://mozc.googlecode.com/svn/trunk@454 a6090854-d499-a067-5803-1114d4e51264

4 months agoMove EmoticonsAboveSymbols test to rewriter_test.cc
yukawa@google.com [Thu, 18 Dec 2014 00:43:37 +0000 (00:43 +0000)]
Move EmoticonsAboveSymbols test to rewriter_test.cc

This is just a unittest clean-up.  Hence no behavior change in production is intended.

Patch from Hiroshi Sumita.

BUG=none
TEST=unittest

git-svn-id: http://mozc.googlecode.com/svn/trunk@453 a6090854-d499-a067-5803-1114d4e51264

4 months agoShorten debug annotations for predicted candidates (part 2)
yukawa@google.com [Thu, 18 Dec 2014 00:32:28 +0000 (00:32 +0000)]
Shorten debug annotations for predicted candidates (part 2)

Fix test breakage in r451 by updating test expectation.

Patch from Noriyuki Takahashi.

BUG=none
TEST=unittest

git-svn-id: http://mozc.googlecode.com/svn/trunk@452 a6090854-d499-a067-5803-1114d4e51264

4 months agoShorten debug annotations for predicted candidates
yukawa@google.com [Thu, 18 Dec 2014 00:28:07 +0000 (00:28 +0000)]
Shorten debug annotations for predicted candidates

In order to make the candidate layout close to production, especially on Android, this CL shortens debug annotations for predicted candidates.

Those annotations are displayed only in debug build.  Hence no visible change in production is intended.

Patch from Noriyuki Takahashi.

BUG=none
TEST=compile

git-svn-id: http://mozc.googlecode.com/svn/trunk@451 a6090854-d499-a067-5803-1114d4e51264

4 months agoPrepare to load dictionary data set from an external file
yukawa@google.com [Wed, 17 Dec 2014 08:56:26 +0000 (08:56 +0000)]
Prepare to load dictionary data set from an external file

This CL is a groundwork to enable mozc server to load dictionary data set from an external file at runtime.  No actual behavior change is intended right now though.

Major changes are:
- Add sentinel elements to arrays of POSMatcher to determine array size.
- Remove const qualifier from POSMatcher::Range so that it can be constructed by vector::push_back.

Patch from Noriyuki Takahashi.

BUG=none
TEST=unittest

git-svn-id: http://mozc.googlecode.com/svn/trunk@450 a6090854-d499-a067-5803-1114d4e51264

4 months agoLearn content word for real time conversion in the mobile mode
yukawa@google.com [Wed, 17 Dec 2014 07:17:51 +0000 (07:17 +0000)]
Learn content word for real time conversion in the mobile mode

To propagate the segmentation information in mobile use, this CL extends Segment::Candidate::inner_segment_boundary to include content key and value lengths.  This extra information is utilized in UserHistoryPredictor to reconstruct content word.

Motivation:
In mobile mode, it would be useful if content words can be learned.  Here are some examples.

Case 1:
1. Type がっこうに
2. Select 学校に
学校に (which is one segment) is learned but 学校 (content word) is not learned.  Here learning 学校 makes sense for mobile since particles are suggested by zero query suggestion in the mobile mode.

Case 2:
1. Type とうきょうかなごやにいきたい
2. Select 東京か名古屋に行きたい
This is similar to the case 1 but we can learn both 東京 and 名古屋.

Note that this CL should not change anything in the desktop mode.

Patch from Noriyuki Takahashi.

BUG=none
TEST=unittest

git-svn-id: http://mozc.googlecode.com/svn/trunk@449 a6090854-d499-a067-5803-1114d4e51264

4 months agoRemove an ad-hoc optimization in JNI boundary
yukawa@google.com [Wed, 17 Dec 2014 05:41:18 +0000 (05:41 +0000)]
Remove an ad-hoc optimization in JNI boundary

We have had an ad-hoc optimization in JNI boundary, which clears |all_candidate_words| field in the Output proto to reduce the deserialization cost of protobuf because that field has never been used in Android.  However, supporting floating candidate window for Android 5.0 does require that field like other desktop OSes.  Hence we cannot simply clear that field anymore.  As a groundwork, this CL finaly removes that ad-hoc optimization.

No behavior change is intended right now.

Patch from Hiroshi Sumita.

BUG=none
TEST=none

git-svn-id: http://mozc.googlecode.com/svn/trunk@448 a6090854-d499-a067-5803-1114d4e51264

4 months agoFor Android and Chrome OS, we need to change the page size of the candidate list...
yukawa@google.com [Wed, 17 Dec 2014 05:08:29 +0000 (05:08 +0000)]
For Android and Chrome OS, we need to change the page size of the candidate list from 9 as the default value.

Introduce per-session config mechanism to change the page size of the candidate list

For the traditional desktop-style floating candidate list, in some situations, we may want to reduce its maximum height by changing the page size.  For instance, if we show up-to 5 candidates per page, the candidate list is more likely to be rendered without being cliped by the edge of the screen even on a relatively smaller screen.

With this CL, each mozc client can tell the mozc server to change the page size in a per-session basis.  The default size is kept to be 9 hence no visible change is intended with this CL though.

BUG=none
TEST=unittest

git-svn-id: http://mozc.googlecode.com/svn/trunk@447 a6090854-d499-a067-5803-1114d4e51264

4 months agoAdd usage stats entries about how many times keyboard are expanded/folded
yukawa@google.com [Wed, 17 Dec 2014 00:56:11 +0000 (00:56 +0000)]
Add usage stats entries about how many times keyboard are expanded/folded

This CL introduces a pair of new usage stats entries so that we can know how many times the keyboard are expanded/folded on Android.

No visible change is intended.

Patch from Tsuyoshi Matsuzaki.

BUG=none
TEST=compile

git-svn-id: http://mozc.googlecode.com/svn/trunk@446 a6090854-d499-a067-5803-1114d4e51264

4 months agoAdd new usage stats entries for chosen candidates
yukawa@google.com [Wed, 17 Dec 2014 00:28:53 +0000 (00:28 +0000)]
Add new usage stats entries for chosen candidates

This CL introduces a set of new usage stats entries so that we can understand the distribution of the number of chosen words grouped by the row number of the candidate table where the word is displayed.

No visible change is intended.

Patch from Tsuyoshi Matsuzaki.

BUG=none
TEST=unittest

git-svn-id: http://mozc.googlecode.com/svn/trunk@445 a6090854-d499-a067-5803-1114d4e51264

4 months agoSuppress compiler warnings for Protocol Buffers 2.6.1
yukawa@google.com [Tue, 16 Dec 2014 22:29:00 +0000 (22:29 +0000)]
Suppress compiler warnings for Protocol Buffers 2.6.1

This is a follow up CL for r438, which also brought few new compiler warnings.  With this CL, all of them are now suppressed.

This is just an update of compiler warning settings.  Hence no behvior change in production is intended.

BUG=none
TEST=unittest

git-svn-id: http://mozc.googlecode.com/svn/trunk@444 a6090854-d499-a067-5803-1114d4e51264

4 months agoSimplify protobuf/protobuf.gyp (part 2)
yukawa@google.com [Tue, 16 Dec 2014 22:05:25 +0000 (22:05 +0000)]
Simplify protobuf/protobuf.gyp (part 2)

This is a follow up CL for r442, but is still just an internal fix/clean-up for warnings settings in build time.  No behvior change is intended.  Basically this CL does:
- Fix indentation.
- Fix wrong conditoins in compiler-dependent warning rules.
- Fix a compiler option name to suppress unknown options.  It should heen '-Wno-unknown-warning-option', not '-Wno-unknown-warning'.
- Remove a redundant 'xcode_settings', whose settings are now coverted in a more platform agnostic way.

BUG=none
TEST=unittest

git-svn-id: http://mozc.googlecode.com/svn/trunk@443 a6090854-d499-a067-5803-1114d4e51264

4 months agoSimplify protobuf/protobuf.gyp
yukawa@google.com [Tue, 16 Dec 2014 08:08:21 +0000 (08:08 +0000)]
Simplify protobuf/protobuf.gyp

This CL simplifies protobuf/protobuf.gyp with keeping the current settings.  No visible change is intended.

BUG=none
TEST=unittest

git-svn-id: http://mozc.googlecode.com/svn/trunk@442 a6090854-d499-a067-5803-1114d4e51264

4 months agoRemove an incorrect output declaration in 'protobuf_java' target
yukawa@google.com [Tue, 16 Dec 2014 07:07:28 +0000 (07:07 +0000)]
Remove an incorrect output declaration in 'protobuf_java' target

This is a follow up CL for r416 and r417, which decoupled Ant task for protobuf from the main Ant task.

Previous commits had a problem that 'protobuf_java' GYP target incorrectly contained 'mozc/android/protobuf/gen/com/google/userfeedback/android/api/R.java' in an output section.  That target never generates such a file in practice.  As a result, 'protobuf_java' target is always rebuilt every time when you build a target that directly or indirectly depends on 'protobuf_java' target.

BUG=none
TEST=python build_mozc.py clean --target_platform=Android && python build_mozc.py gyp --target_platform=Android && python build_mozc.py build -c Debug android/prorobuf/protobuf.gyp:protobuf_java && python build_mozc.py build -c Debug android/prorobuf/protobuf.gyp:protobuf_java

git-svn-id: http://mozc.googlecode.com/svn/trunk@441 a6090854-d499-a067-5803-1114d4e51264

4 months agoSupport Clang 3.5 with libc++ in Android build
yukawa@google.com [Sat, 13 Dec 2014 18:20:08 +0000 (18:20 +0000)]
Support Clang 3.5 with libc++ in Android build

With this CL, Clang 3.5 with libc++ is supported to biuld Mozc for Android.

To build Mozc for Android with Clang and libc++, run build_mozc.py as follows.

  python build_mozc.py gyp     \
    --target_platform=Android  \
    --android_compiler=clang   \
    --android_stl=libcxx

Closes Issue 260.

BUG=Issue mozc:260
TEST=compile with Android NDR r10d

git-svn-id: http://mozc.googlecode.com/svn/trunk@440 a6090854-d499-a067-5803-1114d4e51264

4 months agoSupport arm64/mips64/x86-64 in Android build
yukawa@google.com [Sat, 13 Dec 2014 15:55:13 +0000 (15:55 +0000)]
Support arm64/mips64/x86-64 in Android build

With this CL, arm64/mips64/x86-64 native builds are supported in Android.

To build arm64, run build_mozc.py as follows.

  python build_mozc.py gyp     \
    --target_platform=Android  \
    --android_arch=arm64

Note that this CL also updates the versioning scheme in Android Mozc as follows.

  Previous Version code format:
    0005BBBBBA
    A: ABI (0: Fat, 5: x86, 2: armeabi-v7a, 1:mips)
    B: ANDROID_VERSION_CODE

  New Version code format:
    0005BBBBBA
    A: ABI (0: Fat, 6: x86_64, 5:arm64, 4:mips64, 3: x86, 2: armeabi-v7a, 1:mips)
    B: ANDROID_VERSION_CODE

where ANDROID_VERSION_CODE is equal to the build number defined in mozc_version_template.

Closes Issue 259.

BUG=Issue mozc:259
TEST=compile with Android NDK r10d

git-svn-id: http://mozc.googlecode.com/svn/trunk@439 a6090854-d499-a067-5803-1114d4e51264

4 months agoUpdate Protocol Buffers to 2.6.1
yukawa@google.com [Sat, 13 Dec 2014 15:18:48 +0000 (15:18 +0000)]
Update Protocol Buffers to 2.6.1

This CL rolls following commits of protobuf:
  from: 172019c40bf548908ab09bfd276074c929d48415
    to: bba83652e1be610bdb7ee1566ad18346d98b843c

Full commit summary is available here.
https://github.com/google/protobuf/compare/172019c40bf548908ab09bfd276074c929d48415...bba83652e1be610bdb7ee1566ad18346d98b843c

Reason:
protobuf 2.5.x lacks aarch64/mipsel64 support.  We need to update protobuf to unblock the native 64-bit support for Android.

BUG=Issue mozc:259
TEST=unittest

git-svn-id: http://mozc.googlecode.com/svn/trunk@438 a6090854-d499-a067-5803-1114d4e51264