- 14 Sep, 2016 40 commits
-
-
yosin authored
This patch converts "editing/execCommand/switch-list-type-with-inner-list.html" to use w3c test harness to simplify test script for improving code health. BUG=n/a TEST=n/a; no behavior changes Review-Url: https://codereview.chromium.org/2337413002 Cr-Commit-Position: refs/heads/master@{#418527}
-
yosin authored
This patch converts "editing/inserting/insert-3654864-fix.html" to use w3c test harness to simplify test script, and renames to "replace_text_with_br.html" to provide a hint what this test script verifies, for improving code health. BUG=n/a TEST=n/a; no behavior changes Review-Url: https://codereview.chromium.org/2332423004 Cr-Commit-Position: refs/heads/master@{#418526}
-
yosin authored
This patch converts "editing/inserting/insert-after-delete.html" to use w3c test harness to simplify test script for improving code health. BUG=n/a TEST=n/a; no behavior changes Review-Url: https://codereview.chromium.org/2340703002 Cr-Commit-Position: refs/heads/master@{#418525}
-
yosin authored
This patch makes |assert_selection()| to set focus to sample IFRAME to ensure |eventSender| and |testRunner.execCommand()| to work on sample IFRAME rather than main frame. The expectation sample of "editing/deleting/delete_by_word.html" is changed to "Ctrl+Backspace", delete by word, deletes word before caret. Before this patch, "Ctrl+Backspace" was sent to main frame and sample IFRAME didn't handle it and did nothing. BUG=n/a TEST=n/a; no behavior changes Review-Url: https://codereview.chromium.org/2341563003 Cr-Commit-Position: refs/heads/master@{#418524}
-
yutak authored
This test is flaky on Mac debug bot. BUG=646758 TBR=gayane@chromium.org,asvitkine@chromium.org Review-Url: https://codereview.chromium.org/2338213003 Cr-Commit-Position: refs/heads/master@{#418523}
-
yosin authored
This patch converts "editing/inserting/insert-3775316-fix.html" to use w3c test harness to simplify test script, and renames to "insert_br_at_end_of_block.html" to provide a hint what this test script verifies, for improving code health. BUG=n/a TEST=n/a; no behavior changes Review-Url: https://codereview.chromium.org/2337263003 Cr-Commit-Position: refs/heads/master@{#418522}
-
yosin authored
This patch converts "editing/execCommand/remove-list-items.html" to use w3c test harness to simplify test script for improving code health. BUG=n/a TEST=n/a; no behavior changes Review-Url: https://codereview.chromium.org/2337333003 Cr-Commit-Position: refs/heads/master@{#418521}
-
yamaguchi authored
Revert of Add a mock class for DiskMountManagerObserver. disk_mount_manager_observer_unittests. (patchset #4 id:60001 of https://codereview.chromium.org/2333983004/ ) Reason for revert: Asan failure Original issue's description: > Refactor disk_mount_manager_unittest by replacing gmock with a dedicated mock class of DiskMountManagerObserver. > > This change is based on > https://codereview.chromium.org/2292473002/ > which was once merged but reverted by > https://codereview.chromium.org/2340433002/ > > BUG=641943 > > Committed: https://crrev.com/a07c4fb1ece6ee6c6a2170825208b1f873012a0a > Cr-Commit-Position: refs/heads/master@{#418478} TBR=satorux@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=641943 Review-Url: https://codereview.chromium.org/2343593002 Cr-Commit-Position: refs/heads/master@{#418520}
-
yutak authored
Revert of gn: Generalize process_version() and move it to build/util (patchset #4 id:60001 of https://codereview.chromium.org/2308313003/ ) Reason for revert: This appears to cause compile errors on "Google Chrome Linux x64", closing the main waterfall. https://build.chromium.org/p/chromium.chrome/builders/Google%20Chrome%20Linux%20x64/builds/13577 FAILED: installer/version.txt python ../../build/util/version.py --official -f ../../chrome/VERSION -f ../../chrome/app/theme/google_chrome/BRANDING -o installer/version.txt Traceback (most recent call last): File "../../build/util/version.py", line 170, in <module> sys.exit(main()) File "../../build/util/version.py", line 159, in main """ % values KeyError: 'LASTCHANGE' Original issue's description: > There is nothing really chrome-specific in the process_version() > template, and if we stop always passing some files in chrome/ on every > invocation it is possible to generalize it and move it to build/util > instead (and fix some layering violation comments along the way). > > Compared to its previous incarnation, process_version() no longer passes > LASTCHANGE, BRANDING and VERSION automatically to version.py. This makes > it easier for callers to specify their own |sources| with values that > may override those set in those 3 files. > > A new wrapper, process_version_rc_template(), was introduced to cater > for callers (generally Windows ones) who need to process a .rc.version > file that requires the values from LASTCHANGE, BRANDING and VERSION. It > always passes those 3 files to process_version() before any optional > additional |sources|, and |template_file| defaults to > chrome_version.rc.version. > Since this template depends on files from //chrome, it lives in the > newly-added //chrome/process_version_rc_template.gni. > > R=dpranke@chromium.org,brettw@chromium.org > > Committed: https://crrev.com/cf276fc41653b2830a5ec796d4db09b199754677 > Cr-Commit-Position: refs/heads/master@{#418514} TBR=phajdan.jr@chromium.org,brettw@chromium.org,ddorwin@chromium.org,dpranke@chromium.org,xhwang@chromium.org,raphael.kubo.da.costa@intel.com # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review-Url: https://codereview.chromium.org/2338093003 Cr-Commit-Position: refs/heads/master@{#418519}
-
qiankun.miao authored
BUG=645071 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel Review-Url: https://codereview.chromium.org/2321953002 Cr-Commit-Position: refs/heads/master@{#418518}
-
vabr authored
path() is being deprecated, GetPath() has better checking against wrong use. For more context, see https://codereview.chromium.org/2275553005/. BUG=640599 Review-Url: https://codereview.chromium.org/2317003002 Cr-Commit-Position: refs/heads/master@{#418517}
-
keishi authored
Implements Unwrap(CrossThreadWeakPersistent) that returns a CrossThreadPersistent so the object doesn't get collected during callback invocation. BUG=591606 Review-Url: https://codereview.chromium.org/2207333002 Cr-Commit-Position: refs/heads/master@{#418516}
-
bashi authored
BUG=617492 Review-Url: https://codereview.chromium.org/2341613002 Cr-Commit-Position: refs/heads/master@{#418515}
-
raphael.kubo.da.costa authored
template, and if we stop always passing some files in chrome/ on every invocation it is possible to generalize it and move it to build/util instead (and fix some layering violation comments along the way). Compared to its previous incarnation, process_version() no longer passes LASTCHANGE, BRANDING and VERSION automatically to version.py. This makes it easier for callers to specify their own |sources| with values that may override those set in those 3 files. A new wrapper, process_version_rc_template(), was introduced to cater for callers (generally Windows ones) who need to process a .rc.version file that requires the values from LASTCHANGE, BRANDING and VERSION. It always passes those 3 files to process_version() before any optional additional |sources|, and |template_file| defaults to chrome_version.rc.version. Since this template depends on files from //chrome, it lives in the newly-added //chrome/process_version_rc_template.gni. R=dpranke@chromium.org,brettw@chromium.org Review-Url: https://codereview.chromium.org/2308313003 Cr-Commit-Position: refs/heads/master@{#418514}
-
yukishiino authored
ExceptionState is now a scope-like object, and guarantees that an exception is automatically thrown at destruction. ExceptionToPromiseScope similarly guarantees to return a reject promise instead of throwing an exception. A new Jinja2 filter "format_remove_duplicates" helps write a template more easily without caring duplicates. {% if A_enabled %} ScriptState* scriptState = ...; A(scriptState); {% endif %} {% if B_enabled %} ScriptState* scriptState = ...; B(scriptState); {% endif %} produces two lines of definitions of |scriptState|, however, format_remove_duplicates removes the duplicates. Jinja2 macro "propagate_error_with_exception_state" is no longer necessary, because ExceptionState and ExceptionToPromiseScope automatically throws an exception or returns a reject promise appropriately. This CL alone does not fix crbug.com/627309 , but the CL makes it easy to fix the issue. BUG=627309 Review-Url: https://codereview.chromium.org/2301993002 Cr-Commit-Position: refs/heads/master@{#418513}
-
leon.han authored
|context_| has already been created in MojoChildConnection constructor initialization list, no need to create it again in construtor body. BUG=none Review-Url: https://codereview.chromium.org/2338753002 Cr-Commit-Position: refs/heads/master@{#418512}
-
sdefresne authored
Revert of
🍵 Refactor the various locale_paks() templates to be more shared (patchset #2 id:260001 of https://codereview.chromium.org/2339783002/ ) Reason for revert: The refactoring of the ios file is likely incorrect as it breaks the autoroller (as some files are no longer generated or have different name). Reverting as half of the touched files are in ios/. Original issue's description: > Reland of Refactor the various locale_paks() templates to be more shared > > Reverted by: > https://codereview.chromium.org/2340673002/ > > Reason for reland: > Now gn gens for enable_resource_whitelist_generation = true > > Main motivation for this is to more easily add per-target > repack_whitelist. > > TBR=michaelbai@chromium.org,thakis@chromium.org,sdefresne@chromium.org,estevenson@chromium.org,rsesek@chromium.org,brettw@chromium.org > BUG=645716 > > Committed: https://crrev.com/d83512c644c7c61331a32c97ba549fcb1d8793cb > Cr-Commit-Position: refs/heads/master@{#418450} TBR=michaelbai@chromium.org,thakis@chromium.org,estevenson@chromium.org,rsesek@chromium.org,brettw@chromium.org,agrieve@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=645716 Review-Url: https://codereview.chromium.org/2338213002 Cr-Commit-Position: refs/heads/master@{#418511} -
shaochuan authored
Current clang version supports the UUID syntax in <robuffer.h>, removing additional declaration. BUG=512433 R=toyoshim@chromium.org Review-Url: https://codereview.chromium.org/2341603002 Cr-Commit-Position: refs/heads/master@{#418510}
-
chrome://serviceworker-internalshoro authored
BUG= Review-Url: https://codereview.chromium.org/2334003004 Cr-Commit-Position: refs/heads/master@{#418509}
-
hiroshige authored
Previously, loadFile() is called to load the test page during performance measurement in PerfTestRunner.measurePageLoadTime(), and thus the results of blink_perf.svg tests were affected by the performance of loadFile() (that is not related to SVG). This CL makes the loadFile() to be executed before measurement and thus avoids blink_perf.svg regressions caused by loadFile() performance regression. The loadFile() performance regression is caused by [1] because, after [1], synchronous XHRs are evicted from MemoryCache when Oilpan GC is executed. [1] https://codereview.chromium.org/2296913003 This is expected and we can ignore the regression unless it causes regressions in real use cases. CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.perf:android_s5_perf_cq;master.tryserver.chromium.perf:linux_perf_cq;master.tryserver.chromium.perf:mac_retina_perf_cq;master.tryserver.chromium.perf:winx64_10_perf_cq BUG=645363 Review-Url: https://codereview.chromium.org/2323313002 Cr-Commit-Position: refs/heads/master@{#418508}
-
alancutter authored
For element.animate() calls of the form "element.animate({property: [a, b, c]}, timing);" we were not accepting non-array iterables for the value list. This patch extends support for generic iterable objects to property indexed keyframe values. This behaviour corresponds to step 6.3 of http://w3c.github.io/web-animations/#process-a-keyframe-like-object where we cast the values as a (DOMString or sequence<DOMString>) object. BUG=645393 Review-Url: https://codereview.chromium.org/2334123002 Cr-Commit-Position: refs/heads/master@{#418507}
-
yhirano authored
BUG=610195 Review-Url: https://codereview.chromium.org/2319033002 Cr-Commit-Position: refs/heads/master@{#418506}
-
v8-autoroll authored
Summary of changes available at: https://chromium.googlesource.com/v8/v8/+log/9d075810..96eff685 Please follow these instructions for assigning/CC'ing issues: https://github.com/v8/v8/wiki/Triaging%20issues Please close rolling in case of a roll revert: https://v8-roll.appspot.com/ This only works with a Google account. CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_precise_blink_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel TBR=hablich@chromium.org,machenbach@chromium.org,littledan@chromium.org,vogelheim@chromium.org Review-Url: https://codereview.chromium.org/2338163002 Cr-Commit-Position: refs/heads/master@{#418505}
-
ricea authored
A mostly-automated change to convert instances of WrapUnique(new Foo(...)) to MakeUnique<Foo>(...). See the thread at https://groups.google.com/a/chromium.org/forum/#!topic/chromium-dev/iQgMedVA8-k for background. To avoid requiring too many manual fixups, the change skips some cases that are frequently problematic. In particular, in methods named Foo::Method() it will not try to change WrapUnique(new Foo()) to MakeUnique<Foo>(). This is because Foo::Method() may be accessing an internal constructor of Foo. Cases where MakeUnique<NestedClass>(...) is called within a method of OuterClass are common but hard to detect automatically, so have been fixed-up manually. The only types of manual fix ups applied are: 1) Revert MakeUnique back to WrapUnique 2) Change NULL to nullptr in argument list (MakeUnique cannot forward NULL correctly) 3) Add base:: namespace qualifier where missing. WrapUnique(new Foo) has not been converted to MakeUnique<Foo>() as this might change behaviour if Foo does not have a user-defined constructor. For example, WrapUnique(new int) creates an unitialised integer, but MakeUnique<int>() creates an integer initialised to 0. git cl format has been been run over the CL. Spot-checking has uncovered no cases of mis-formatting. BUG=637812 Review-Url: https://codereview.chromium.org/2260433003 Cr-Commit-Position: refs/heads/master@{#418504}
-
ccameron authored
TBR=hubbe BUG=646708 Review-Url: https://codereview.chromium.org/2337423002 Cr-Commit-Position: refs/heads/master@{#418503}
-
tzik authored
http://crrev.com/59aa6bb1162b31d2 added a parameter of BindStateBase, and that causes 0.8% (40kB) binary size bloat on cronet, by adding a new instruction to the constructor invocation at BindState ctor. To reduce the binary size, this CL splits BindStateBase into two: one for cancellable bind and another for non-cancellable one, so that non-cancellable bind doesn't need to pass an extra argument to BindStateBase. This reduces the stripped binary size of chrome on Linux by 56kB. Review-Url: https://codereview.chromium.org/2322313002 Cr-Commit-Position: refs/heads/master@{#418502}
-
yosin authored
This patch converts "editing/deleting/merge-paragraph-from-h6*.html" to use w3c test harness to simplify test script, and consolidates into "merge_paragraph_from_h6.html" since these test scripts use similar test sample, for improving code health. BUG=n/a TEST=n/a; no behavior changes Review-Url: https://codereview.chromium.org/2336173002 Cr-Commit-Position: refs/heads/master@{#418501}
-
yosin authored
This patch converts "editing/deleting/merge-paragraph-from-p*.html" to use w3c test harness to simplify test script, and consolidates into "merge_paragraph_from_p.html" since these test scripts use similar test sample, for improving code health. BUG=n/a TEST=n/a; no behavior changes Review-Url: https://codereview.chromium.org/2333223002 Cr-Commit-Position: refs/heads/master@{#418500}
-
liushouqun authored
AecDumpMessageFilter should not be included if enable_webrtc=false. BUG=642210 TEST= Review-Url: https://codereview.chromium.org/2334173002 Cr-Commit-Position: refs/heads/master@{#418499}
-
yosin authored
This patch converts "editing/execCommand/queryCommandState-01.html" to use w3c test harness to simplify test script for improving code health. BUG=n/a TEST=n/a; no behavior changes Review-Url: https://codereview.chromium.org/2342513002 Cr-Commit-Position: refs/heads/master@{#418498}
-
yosin authored
This patch converts "editing/execCommand/insertHTML.html" to use w3c test harness to simplify test script for improving code health. BUG=n/a TEST=n/a; no behavior changes Review-Url: https://codereview.chromium.org/2330353004 Cr-Commit-Position: refs/heads/master@{#418497}
-
tzik authored
TestSimpleTaskRunner::GetPendingTasks returns a full copy of the queued pending tasks, which is less clean, and also that prevents a refactoring that makes tasks move-only. This CL replaces them with an equivalent NumPendingTasks to avoid the copy. BUG=554299 Review-Url: https://codereview.chromium.org/2335153002 Cr-Commit-Position: refs/heads/master@{#418496}
-
yukishiino authored
V8's named interceptor never traps |0| of type number nor |"0"| of type string. Both of |0| and |"0"| trigger indexed interceptor. In order for named properties to capture property keys such as 0 or "0", we have to first trap them at indexed interceptor, and then fall through to an named property handler. If an interface supports indexed properties, we don't need this fallback mechanism. If an interface only supports named properties, let 0 or "0" fall through to an named property handler. BUG=229750 Review-Url: https://codereview.chromium.org/2321073002 Cr-Commit-Position: refs/heads/master@{#418495}
-
dcheng authored
AppendIfNotPresent() and Insert() now take unique_ptr instead of a raw pointer. BUG=581865 TBR=brettw@chromium.org Review-Url: https://codereview.chromium.org/2336863003 Cr-Commit-Position: refs/heads/master@{#418494}
-
bugsnash authored
Part of making PassRefPtr move only, in preparation for the removal of PassRefPtr. BUG=640449 Review-Url: https://codereview.chromium.org/2308353002 Cr-Commit-Position: refs/heads/master@{#418493}
-
v8-autoroll authored
Summary of changes available at: https://chromium.googlesource.com/v8/v8/+log/0ea5d982..9d075810 Please follow these instructions for assigning/CC'ing issues: https://github.com/v8/v8/wiki/Triaging%20issues Please close rolling in case of a roll revert: https://v8-roll.appspot.com/ This only works with a Google account. CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_precise_blink_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel TBR=hablich@chromium.org,machenbach@chromium.org,littledan@chromium.org,vogelheim@chromium.org Review-Url: https://codereview.chromium.org/2339063003 Cr-Commit-Position: refs/heads/master@{#418492}
-
nona authored
This is regression from http://crrev.com/dac0c7af14c29c9d8509b775d5044e5448b6263b The show_ime_if_needed is one shot message so we can't use it as a trigger of monitoring composition bounding box, since we need to keep monitoring during the text input session is active. BUG=640012 Review-Url: https://codereview.chromium.org/2330423002 Cr-Commit-Position: refs/heads/master@{#418491}
-
yutak authored
Revert of cc: Plumb the monitor color profile to renderer for rasterization (patchset #6 id:100001 of https://codereview.chromium.org/2325773003/ ) Reason for revert: Suspected cause of the following MSAN failure. https://build.chromium.org/p/chromium.webkit/builders/WebKit%20Linux%20MSAN/builds/12218 19:03:27.700 29717 ==4==WARNING: MemorySanitizer: use-of-uninitialized-value 19:03:27.700 29717 #0 0x7853dbe in computeTypeMask third_party/skia/src/core/SkMatrix44.cpp:59:23 19:03:27.700 29717 #1 0x7858825 in getType third_party/skia/include/core/SkMatrix44.h:208:31 19:03:27.700 29717 #2 0x7858825 in setConcat third_party/skia/src/core/SkMatrix44.cpp:378:0 19:03:27.700 29717 #3 0x76f8840 in operator*= ui/gfx/transform.h:253:5 19:03:27.700 29717 #4 0x76f8840 in ColorSpaceToColorSpaceTransform ui/gfx/color_transform.cc:563:0 19:03:27.700 29717 #5 0x76f78de in NewColorTransform ui/gfx/color_transform.cc:703:15 19:03:27.700 29717 #6 0x767f315 in GetColorSpace ui/gfx/icc_profile.cc:142:45 19:03:27.700 29717 #7 0xb2263ae in initializeLayerTreeView content/renderer/render_widget.cc:1141:61 19:03:27.700 29717 #8 0xb1e68fd in initializeLayerTreeView content/renderer/render_view_impl.cc:1956:17 19:03:27.700 29717 #9 0xc1c6b06 in initializeLayerTreeView third_party/WebKit/Source/web/WebViewImpl.cpp:4341:19 19:03:27.700 29717 #10 0xc1c57bf in WebViewImpl third_party/WebKit/Source/web/WebViewImpl.cpp:471:5 19:03:27.700 29717 #11 0xc1c29ff in create third_party/WebKit/Source/web/WebViewImpl.cpp:342:25 19:03:27.700 29717 #12 0xc1c29ff in create third_party/WebKit/Source/web/WebViewImpl.cpp:336:0 19:03:27.700 29717 #13 0xb19b457 in Initialize content/renderer/render_view_impl.cc:717:7 <snip> Original issue's description: > cc: Plumb the monitor color profile to renderer for rasterization > > This adds the output device color profile to display::Display, and > populates it correctly on Mac. We will want to do this for all > platforms. > > The color profile is then plumbed through the same IPCs that take > the device scale factor, to get to the renderer process' > RenderWidgetCompositor. > > Note that we are sending the full ICCProfile this far. This is > important, because the renderer process will be setting the ICCProfile > of its rasterized IOSurfaces, and there is a power impact of even slight > differences between the monitor profile and the IOSurface profile. > > The ICCProfile is then sent as a gfx::ColorProfile (which internally > references the ICCProfile, for the above purpose) to the > RenderWidgetCompositor, from where it will be pushed to cc. > > In the next step, we will (under a flag) specify the color space > for rasterization. > > BUG=44872 > CQ_INCLUDE_TRYBOTS=master.tryserver.blink:linux_precise_blink_rel > > Committed: https://crrev.com/f1fef7489c29deeee2a29c41ce4851e9ad1bd67b > Cr-Commit-Position: refs/heads/master@{#418422} TBR=enne@chromium.org,clamy@chromium.org,dcheng@chromium.org,ellyjones@chromium.org,ccameron@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=44872 Review-Url: https://codereview.chromium.org/2336113003 Cr-Commit-Position: refs/heads/master@{#418490}
-
maksim.sisov authored
This cl splits the big CL with changes to net/ folder and has changes only to net/sdch according to the changes to URLRequest API. What the big cl does: It modifies net/ clients that use URLRequest API as long as URLRequest::Read returns int net errors and URLRequest::Delegate and NetworkDelegate methods (for example, OnResponseStarted or OnCompleted) have int net_error in the arguments now. The reason behind splitting the CL into small one is that an android bot started to be unstable and unittests became flaky. It was not possible to locate the problem and the decision was to split the CL and upload small parts with a 6+ hours interval in order to make it possible to locate the problematic code. The big CL is located here - https://codereview.chromium.org/2265873002/ BUG=423484 Review-Url: https://codereview.chromium.org/2329903002 Cr-Commit-Position: refs/heads/master@{#418489}
-
pdr authored
The text autosizer is used for both making desktop pages more legible on mobile, and for applying the accessibility font scale factor. When text-size-adjust support was added, pages were able to override the accessibility setting in addition to the autosizing multiplier. This patch ensures accessibility font scale settings are respected even with text-size-adjust. A followup bug has been filed (crbug.com/645717) for moving the accessibility font scale factor out of the autosizer. This patch also re-enables support for text-size-adjust which was disabled temporarily due to breaking accessibility settings. This was reverted due to a forgotten "!" in checking whether the viewport was specified by the author in TextAutosizer.cpp. A new test has been added to catch this in the future. The unneeded meta viewport declarations in all other tests have been removed because they had no effect with the meta viewport setting disabled. Original review: https://codereview.chromium.org/2329733002 BUG=645269,646342 Review-Url: https://codereview.chromium.org/2340553003 Cr-Commit-Position: refs/heads/master@{#418488}
-