|
|
Chromium Code Reviews
DescriptionAdds ChineseScriptClassifier to predict zh-Hant or zh-Hans for input detected as zh.
BUG=684609
Review-Url: https://codereview.chromium.org/2732023003
Cr-Commit-Position: refs/heads/master@{#455383}
Committed: https://chromium.googlesource.com/chromium/src/+/87c6f931ecc4e25ce694d0c4039d4acdae572b60
Patch Set 1 #Patch Set 2 : Adds icu dependency to language_detection_util #Patch Set 3 : Changes invocation of Transilterator objects; changes ambiguous case default to zh-Hans #Patch Set 4 : Removes CHECKs so rendering process does not crash in case of an initialization error. #Patch Set 5 : Classifies according to closest match for ambiguous cases. #Patch Set 6 : Initialize ICU error status object #Patch Set 7 : Count only characters that have Hans and Hant variants #Patch Set 8 : Fixes broken test #
Total comments: 18
Patch Set 9 : Addressing reviewer comments from groby@ #Patch Set 10 : VLOG to DVLOG #
Messages
Total messages: 57 (49 generated)
The CQ bit was checked by riesa@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
Description was changed from ========== Adds ChineseScriptClassifier to predict zh-Hant or zh-Hans for input detected as zh. BUG= ========== to ========== Adds ChineseScriptClassifier to predict zh-Hant or zh-Hans for input detected as zh. BUG=684609 ==========
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: linux_chromium_chromeos_ozone_rel_ng on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_...)
The CQ bit was checked by riesa@chromium.org to run a CQ dry run
riesa@chromium.org changed reviewers: + groby@chromium.org
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
This change adds the component that makes a deterministic classification of any Chinese-detected input. This fixes crbug.com/684609; we should merge into M57.
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: ios-simulator on master.tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/ios-simulator/bui...)
The CQ bit was checked by riesa@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: ios-simulator on master.tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/ios-simulator/bui...)
The CQ bit was checked by riesa@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: ios-simulator on master.tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/ios-simulator/bui...)
The CQ bit was checked by riesa@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: mac_chromium_rel_ng on master.tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/mac_chromium_rel_...)
The CQ bit was checked by riesa@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: ios-simulator on master.tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/ios-simulator/bui...)
The CQ bit was checked by riesa@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: ios-simulator on master.tryserver.chromium.mac (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.mac/builders/ios-simulator/bui...)
The CQ bit was checked by riesa@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: This issue passed the CQ dry run.
Mostly reviewed for technical functionality - I wouldn't know how to distinguish hant/hans properly :) https://codereview.chromium.org/2732023003/diff/130001/components/translate/c... File components/translate/core/language_detection/chinese_script_classifier.cc (right): https://codereview.chromium.org/2732023003/diff/130001/components/translate/c... components/translate/core/language_detection/chinese_script_classifier.cc:78: VLOG(1) << "Original input:\n" << input_subset; Are you planning to keep the VLOG forever, or is there an expiration date? https://codereview.chromium.org/2732023003/diff/130001/components/translate/c... components/translate/core/language_detection/chinese_script_classifier.cc:88: index < original_input.length() && index < hans_input.length() && nit: please do compute min outside loop https://codereview.chromium.org/2732023003/diff/130001/components/translate/c... components/translate/core/language_detection/chinese_script_classifier.cc:92: const auto hans_char = hans_input.charAt(index); Bit concerned by the fact that charAt needs to repeatedly traverse the entire string up to index. Do we have UTF8 iterators? https://codereview.chromium.org/2732023003/diff/130001/components/translate/c... components/translate/core/language_detection/chinese_script_classifier.cc:94: if (hans_char == hant_char) { Possible simplification (no braces, less branches, no continue) if (original_char == hans_char) ++hans_count; if (original_char == hant_char) ++hant_count; https://codereview.chromium.org/2732023003/diff/130001/components/translate/c... File components/translate/core/language_detection/chinese_script_classifier.h (right): https://codereview.chromium.org/2732023003/diff/130001/components/translate/c... components/translate/core/language_detection/chinese_script_classifier.h:31: bool IsInitialized() const; Maybe use a factory mode instead? (It's a personal peeve - so if you feel strongly about ctor/IsInitialized instead, I won't hold up the CL for it) https://codereview.chromium.org/2732023003/diff/130001/components/translate/c... components/translate/core/language_detection/chinese_script_classifier.h:35: static const char kChineseSimplifiedCode[]; Why keep those as class members, as opposed to anon namespace? https://codereview.chromium.org/2732023003/diff/130001/components/translate/c... File components/translate/core/language_detection/language_detection_util.cc (right): https://codereview.chromium.org/2732023003/diff/130001/components/translate/c... components/translate/core/language_detection/language_detection_util.cc:226: language = translate::kUnknownLanguageCode; Isn't this technically simplified Chinese? Which is zh-CN?
Thanks for reviewing! https://codereview.chromium.org/2732023003/diff/130001/components/translate/c... File components/translate/core/language_detection/chinese_script_classifier.cc (right): https://codereview.chromium.org/2732023003/diff/130001/components/translate/c... components/translate/core/language_detection/chinese_script_classifier.cc:78: VLOG(1) << "Original input:\n" << input_subset; On 2017/03/08 00:41:54, groby wrote: > Are you planning to keep the VLOG forever, or is there an expiration date? Yes, I was planning to keep it in case of bug reports. But it sounds like keeping these are discouraged in Chromium? https://codereview.chromium.org/2732023003/diff/130001/components/translate/c... components/translate/core/language_detection/chinese_script_classifier.cc:88: index < original_input.length() && index < hans_input.length() && On 2017/03/08 00:41:54, groby wrote: > nit: please do compute min outside loop Done. https://codereview.chromium.org/2732023003/diff/130001/components/translate/c... components/translate/core/language_detection/chinese_script_classifier.cc:92: const auto hans_char = hans_input.charAt(index); On 2017/03/08 00:41:54, groby wrote: > Bit concerned by the fact that charAt needs to repeatedly traverse the entire > string up to index. Do we have UTF8 iterators? Hm, from what I can tell charAt is just indexing right into a UChar (a 16-bit wide char) array. https://cs.chromium.org/chromium/src/third_party/icu/source/common/unicode/un... https://codereview.chromium.org/2732023003/diff/130001/components/translate/c... components/translate/core/language_detection/chinese_script_classifier.cc:94: if (hans_char == hant_char) { On 2017/03/08 00:41:54, groby wrote: > Possible simplification (no braces, less branches, no continue) > > if (original_char == hans_char) > ++hans_count; > if (original_char == hant_char) > ++hant_count; I originally had it this way in an earlier patch, and I had been going back and forth on whether to go back to it. The current if-structure makes debugging easier when we know exactly how many and which script-unique chars to look for; these are what determine the classification. If we have made it past the (hans_char == hant_char) check, then every time I increment I know I found something unique. In the simpler case which is functionally and productionally equivalent, I don't know this information. Since this code will be run many more times in production than I will run it to debug something, and since you had a similar thought, then I will change it back. https://codereview.chromium.org/2732023003/diff/130001/components/translate/c... File components/translate/core/language_detection/chinese_script_classifier.h (right): https://codereview.chromium.org/2732023003/diff/130001/components/translate/c... components/translate/core/language_detection/chinese_script_classifier.h:31: bool IsInitialized() const; On 2017/03/08 00:41:55, groby wrote: > Maybe use a factory mode instead? (It's a personal peeve - so if you feel > strongly about ctor/IsInitialized instead, I won't hold up the CL for it) My understanding is that the factory model is not ideal for very frequently allocated classes since it is allocated on the heap which adds a (slight) time and memory overhead. Due to the structure of language_detection_utils I think that is our case right now. https://codereview.chromium.org/2732023003/diff/130001/components/translate/c... components/translate/core/language_detection/chinese_script_classifier.h:35: static const char kChineseSimplifiedCode[]; On 2017/03/08 00:41:55, groby wrote: > Why keep those as class members, as opposed to anon namespace? Just a style/organization preference. But in a massive codebase like Chromium maybe I guess there can be some functional benefits to moving these into an anonymous namespace in the .cc file. Done. https://codereview.chromium.org/2732023003/diff/130001/components/translate/c... File components/translate/core/language_detection/language_detection_util.cc (right): https://codereview.chromium.org/2732023003/diff/130001/components/translate/c... components/translate/core/language_detection/language_detection_util.cc:226: language = translate::kUnknownLanguageCode; On 2017/03/08 00:41:55, groby wrote: > Isn't this technically simplified Chinese? Which is zh-CN? This would only execute if the classifier failed to initialize properly, and Classify() returned the empty string. I chose to return Unk here because it: (1) makes it easier to debug in translate-internals, and (2) wouldn't cause triggering issues by returning zh-CN if the page was actually zh-TW or vice-versa.
The CQ bit was checked by riesa@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
groby@google.com changed reviewers: + groby@google.com
LGTM Definitely OK with VLOG for this release, we should just think about DVLOG/removal in the longer term. https://codereview.chromium.org/2732023003/diff/130001/components/translate/c... File components/translate/core/language_detection/chinese_script_classifier.cc (right): https://codereview.chromium.org/2732023003/diff/130001/components/translate/c... components/translate/core/language_detection/chinese_script_classifier.cc:78: VLOG(1) << "Original input:\n" << input_subset; On 2017/03/08 01:47:42, riesa wrote: > On 2017/03/08 00:41:54, groby wrote: > > Are you planning to keep the VLOG forever, or is there an expiration date? > > Yes, I was planning to keep it in case of bug reports. But it sounds like > keeping these are discouraged in Chromium? I'm torn. Each VLOG increases binary size, which affects how easy it is for people to download Chrome. (Ping me if you'd like details) But I do see that they'd be helpful for debugging, although it requires modifying the cmdline to even see output. Would DVLOG be OK? https://codereview.chromium.org/2732023003/diff/130001/components/translate/c... components/translate/core/language_detection/chinese_script_classifier.cc:92: const auto hans_char = hans_input.charAt(index); On 2017/03/08 01:47:42, riesa wrote: > On 2017/03/08 00:41:54, groby wrote: > > Bit concerned by the fact that charAt needs to repeatedly traverse the entire > > string up to index. Do we have UTF8 iterators? > > Hm, from what I can tell charAt is just indexing right into a UChar (a 16-bit > wide char) array. > https://cs.chromium.org/chromium/src/third_party/icu/source/common/unicode/un... Gah. I misread the types to be still UTF8. Never mind then :) (Modern CJK chars all live in the BMP, correct?) https://codereview.chromium.org/2732023003/diff/130001/components/translate/c... components/translate/core/language_detection/chinese_script_classifier.cc:94: if (hans_char == hant_char) { On 2017/03/08 01:47:42, riesa wrote: > On 2017/03/08 00:41:54, groby wrote: > > Possible simplification (no braces, less branches, no continue) > > > > if (original_char == hans_char) > > ++hans_count; > > if (original_char == hant_char) > > ++hant_count; > > I originally had it this way in an earlier patch, and I had been going back and > forth on whether to go back to it. > > The current if-structure makes debugging easier when we know exactly how many > and which script-unique chars to look for; these are what determine the > classification. If we have made it past the (hans_char == hant_char) check, then > every time I increment I know I found something unique. In the simpler case > which is functionally and productionally equivalent, I don't know this > information. > > Since this code will be run many more times in production than I will run it to > debug something, and since you had a similar thought, then I will change it > back. I don't think there's a performance penalty worth considering. If this is cleaner to you and helps debugging, keep it. I just have a bias towards shorter code :) https://codereview.chromium.org/2732023003/diff/130001/components/translate/c... File components/translate/core/language_detection/language_detection_util.cc (right): https://codereview.chromium.org/2732023003/diff/130001/components/translate/c... components/translate/core/language_detection/language_detection_util.cc:226: language = translate::kUnknownLanguageCode; On 2017/03/08 01:47:42, riesa wrote: > On 2017/03/08 00:41:55, groby wrote: > > Isn't this technically simplified Chinese? Which is zh-CN? > > This would only execute if the classifier failed to initialize properly, and > Classify() returned the empty string. I chose to return Unk here because it: > (1) makes it easier to debug in translate-internals, and > (2) wouldn't cause triggering issues by returning zh-CN if the page was actually > zh-TW or vice-versa. Acknowledged.
On 2017/03/08 02:00:57, groby1 wrote: > LGTM > > Definitely OK with VLOG for this release, we should just think about > DVLOG/removal in the longer term. > > https://codereview.chromium.org/2732023003/diff/130001/components/translate/c... > File components/translate/core/language_detection/chinese_script_classifier.cc > (right): > > https://codereview.chromium.org/2732023003/diff/130001/components/translate/c... > components/translate/core/language_detection/chinese_script_classifier.cc:78: > VLOG(1) << "Original input:\n" << input_subset; > On 2017/03/08 01:47:42, riesa wrote: > > On 2017/03/08 00:41:54, groby wrote: > > > Are you planning to keep the VLOG forever, or is there an expiration date? > > > > Yes, I was planning to keep it in case of bug reports. But it sounds like > > keeping these are discouraged in Chromium? > > I'm torn. Each VLOG increases binary size, which affects how easy it is for > people to download Chrome. (Ping me if you'd like details) > > But I do see that they'd be helpful for debugging, although it requires > modifying the cmdline to even see output. Would DVLOG be OK? DVLOG is totally fine. Changed. > > https://codereview.chromium.org/2732023003/diff/130001/components/translate/c... > components/translate/core/language_detection/chinese_script_classifier.cc:92: > const auto hans_char = hans_input.charAt(index); > On 2017/03/08 01:47:42, riesa wrote: > > On 2017/03/08 00:41:54, groby wrote: > > > Bit concerned by the fact that charAt needs to repeatedly traverse the > entire > > > string up to index. Do we have UTF8 iterators? > > > > Hm, from what I can tell charAt is just indexing right into a UChar (a 16-bit > > wide char) array. > > > https://cs.chromium.org/chromium/src/third_party/icu/source/common/unicode/un... > > Gah. I misread the types to be still UTF8. Never mind then :) (Modern CJK chars > all live in the BMP, correct?) Yup, and CJK takes up most of it! There might be some very rare or archaic codepoints in other planes. > > https://codereview.chromium.org/2732023003/diff/130001/components/translate/c... > components/translate/core/language_detection/chinese_script_classifier.cc:94: if > (hans_char == hant_char) { > On 2017/03/08 01:47:42, riesa wrote: > > On 2017/03/08 00:41:54, groby wrote: > > > Possible simplification (no braces, less branches, no continue) > > > > > > if (original_char == hans_char) > > > ++hans_count; > > > if (original_char == hant_char) > > > ++hant_count; > > > > I originally had it this way in an earlier patch, and I had been going back > and > > forth on whether to go back to it. > > > > The current if-structure makes debugging easier when we know exactly how many > > and which script-unique chars to look for; these are what determine the > > classification. If we have made it past the (hans_char == hant_char) check, > then > > every time I increment I know I found something unique. In the simpler case > > which is functionally and productionally equivalent, I don't know this > > information. > > > > Since this code will be run many more times in production than I will run it > to > > debug something, and since you had a similar thought, then I will change it > > back. > > I don't think there's a performance penalty worth considering. If this is > cleaner to you and helps debugging, keep it. I just have a bias towards shorter > code :) > > https://codereview.chromium.org/2732023003/diff/130001/components/translate/c... > File components/translate/core/language_detection/language_detection_util.cc > (right): > > https://codereview.chromium.org/2732023003/diff/130001/components/translate/c... > components/translate/core/language_detection/language_detection_util.cc:226: > language = translate::kUnknownLanguageCode; > On 2017/03/08 01:47:42, riesa wrote: > > On 2017/03/08 00:41:55, groby wrote: > > > Isn't this technically simplified Chinese? Which is zh-CN? > > > > This would only execute if the classifier failed to initialize properly, and > > Classify() returned the empty string. I chose to return Unk here because it: > > (1) makes it easier to debug in translate-internals, and > > (2) wouldn't cause triggering issues by returning zh-CN if the page was > actually > > zh-TW or vice-versa. > > Acknowledged.
The CQ bit was checked by riesa@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
On 2017/03/08 02:17:20, riesa wrote: > On 2017/03/08 02:00:57, groby1 wrote: > > LGTM > > > > Definitely OK with VLOG for this release, we should just think about > > DVLOG/removal in the longer term. > > > > > https://codereview.chromium.org/2732023003/diff/130001/components/translate/c... > > File components/translate/core/language_detection/chinese_script_classifier.cc > > (right): > > > > > https://codereview.chromium.org/2732023003/diff/130001/components/translate/c... > > components/translate/core/language_detection/chinese_script_classifier.cc:78: > > VLOG(1) << "Original input:\n" << input_subset; > > On 2017/03/08 01:47:42, riesa wrote: > > > On 2017/03/08 00:41:54, groby wrote: > > > > Are you planning to keep the VLOG forever, or is there an expiration date? > > > > > > Yes, I was planning to keep it in case of bug reports. But it sounds like > > > keeping these are discouraged in Chromium? > > > > I'm torn. Each VLOG increases binary size, which affects how easy it is for > > people to download Chrome. (Ping me if you'd like details) > > > > But I do see that they'd be helpful for debugging, although it requires > > modifying the cmdline to even see output. Would DVLOG be OK? > > DVLOG is totally fine. Changed. > > > > > > https://codereview.chromium.org/2732023003/diff/130001/components/translate/c... > > components/translate/core/language_detection/chinese_script_classifier.cc:92: > > const auto hans_char = hans_input.charAt(index); > > On 2017/03/08 01:47:42, riesa wrote: > > > On 2017/03/08 00:41:54, groby wrote: > > > > Bit concerned by the fact that charAt needs to repeatedly traverse the > > entire > > > > string up to index. Do we have UTF8 iterators? > > > > > > Hm, from what I can tell charAt is just indexing right into a UChar (a > 16-bit > > > wide char) array. > > > > > > https://cs.chromium.org/chromium/src/third_party/icu/source/common/unicode/un... > > > > Gah. I misread the types to be still UTF8. Never mind then :) (Modern CJK > chars > > all live in the BMP, correct?) > > Yup, and CJK takes up most of it! There might be some very rare or archaic > codepoints in other planes. > > > > > > https://codereview.chromium.org/2732023003/diff/130001/components/translate/c... > > components/translate/core/language_detection/chinese_script_classifier.cc:94: > if > > (hans_char == hant_char) { > > On 2017/03/08 01:47:42, riesa wrote: > > > On 2017/03/08 00:41:54, groby wrote: > > > > Possible simplification (no braces, less branches, no continue) > > > > > > > > if (original_char == hans_char) > > > > ++hans_count; > > > > if (original_char == hant_char) > > > > ++hant_count; > > > > > > I originally had it this way in an earlier patch, and I had been going back > > and > > > forth on whether to go back to it. > > > > > > The current if-structure makes debugging easier when we know exactly how > many > > > and which script-unique chars to look for; these are what determine the > > > classification. If we have made it past the (hans_char == hant_char) check, > > then > > > every time I increment I know I found something unique. In the simpler case > > > which is functionally and productionally equivalent, I don't know this > > > information. > > > > > > Since this code will be run many more times in production than I will run it > > to > > > debug something, and since you had a similar thought, then I will change it > > > back. > > > > I don't think there's a performance penalty worth considering. If this is > > cleaner to you and helps debugging, keep it. I just have a bias towards > shorter > > code :) > > > > > https://codereview.chromium.org/2732023003/diff/130001/components/translate/c... > > File components/translate/core/language_detection/language_detection_util.cc > > (right): > > > > > https://codereview.chromium.org/2732023003/diff/130001/components/translate/c... > > components/translate/core/language_detection/language_detection_util.cc:226: > > language = translate::kUnknownLanguageCode; > > On 2017/03/08 01:47:42, riesa wrote: > > > On 2017/03/08 00:41:55, groby wrote: > > > > Isn't this technically simplified Chinese? Which is zh-CN? > > > > > > This would only execute if the classifier failed to initialize properly, and > > > Classify() returned the empty string. I chose to return Unk here because it: > > > (1) makes it easier to debug in translate-internals, and > > > (2) wouldn't cause triggering issues by returning zh-CN if the page was > > actually > > > zh-TW or vice-versa. > > > > Acknowledged. Still LGTM, this time even from the right account :)
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: win_chromium_x64_rel_ng on master.tryserver.chromium.win (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_x64_...)
The CQ bit was checked by riesa@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: This issue passed the CQ dry run.
The CQ bit was checked by riesa@chromium.org
The patchset sent to the CQ was uploaded after l-g-t-m from groby@google.com Link to the patchset: https://codereview.chromium.org/2732023003/#ps170001 (title: "VLOG to DVLOG")
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
CQ is committing da patch.
Bot data: {"patchset_id": 170001, "attempt_start_ts": 1488949129966780,
"parent_rev": "1fb60dd61b52c8d31f072843ae8d81de0811dd80", "commit_rev":
"87c6f931ecc4e25ce694d0c4039d4acdae572b60"}
Message was sent while issue was closed.
Description was changed from ========== Adds ChineseScriptClassifier to predict zh-Hant or zh-Hans for input detected as zh. BUG=684609 ========== to ========== Adds ChineseScriptClassifier to predict zh-Hant or zh-Hans for input detected as zh. BUG=684609 Review-Url: https://codereview.chromium.org/2732023003 Cr-Commit-Position: refs/heads/master@{#455383} Committed: https://chromium.googlesource.com/chromium/src/+/87c6f931ecc4e25ce694d0c4039d... ==========
Message was sent while issue was closed.
Committed patchset #10 (id:170001) as https://chromium.googlesource.com/chromium/src/+/87c6f931ecc4e25ce694d0c4039d... |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
