mtklein
9db328b64f
Add *@skia.org to AUTHORS so we can land CLs using those addresses if we like.
...
BUG=skia:
R=hcm@google.com , reed@google.com , mtklein@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/565293002
2014-09-12 12:03:55 -07:00
mtklein
eefd18cef2
Let SkTaskGroup work synchronously if no one created an SkTaskGroup::Enabler.
...
Tested by running DM with its SkTaskGroup::Enabler commented out. Slow, but completed correctly.
BUG=skia:
R=reed@google.com , mtklein@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/556223003
2014-09-12 09:35:56 -07:00
Mike Klein
11fca3f29f
Add more debugging for newly failing assert (DM on Xoom bots).
...
BUG=skia:
Review URL: https://codereview.chromium.org/568823002
2014-09-12 12:17:25 -04:00
reed
83658305a1
remove confusing/unused stream methods
...
BUG=skia:
R=bungeman@google.com , djsollen@google.com
Author: reed@google.com
Review URL: https://codereview.chromium.org/563273003
2014-09-12 08:49:54 -07:00
borenet
1f777e8580
Update SKP version to 99
...
Automatic commit by the RecreateSKPs bot.
TBR=
Author: borenet@google.com
Review URL: https://codereview.chromium.org/571443002
2014-09-11 21:31:30 -07:00
mtklein
fbe4136845
Clear away any lingering error before testing SkError.
...
Looks like something's setting an error before ErrorTest runs on our new
Venue8 bots.
BUG=skia:
R=humper@google.com , mtklein@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/551973004
2014-09-11 14:41:56 -07:00
mtklein
0b36e6b65f
Add --matrix to DM, to play around with and maybe use on a bot.
...
BUG=skia:
R=reed@google.com , mtklein@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/563723005
2014-09-11 12:30:12 -07:00
reed
56b00d9e7a
add PurgeResourceCache to track leaks
...
TBR=halcananry
Author: reed@google.com
Review URL: https://codereview.chromium.org/554263005
2014-09-11 12:22:34 -07:00
danakj
f58a562d56
Disable discardable memory for the resource cache until tests pass.
...
BUG=skia:2926
R=reed@google.com
Author: danakj@chromium.org
Review URL: https://codereview.chromium.org/568493002
2014-09-11 11:08:50 -07:00
danakj
790ffe3feb
Make SkBitmapCache remove invalid bitmaps from the SkResourceCache.
...
This adds SkResourceCache::Remove() which will remove a resource from
its cache. The resource is required to be unlocked at the time Remove()
is called.
Then SkBitmapCache::Find() makes use of this to Remove() bitmaps from
the cache whose pixels have been evicted. This allows the bitmap to be
re-added to the cache with pixels again.
After this change, background a tab (and discarding all the bitmaps'
contents) no longer disables image caching for those discarded images
once the tab is visible again.
BUG=skia:2926
NOTRY=true
R=reed@android.com , tomhudson@google.com , reed@google.com
Author: danakj@chromium.org
Review URL: https://codereview.chromium.org/561953002
2014-09-11 10:49:52 -07:00
reed
33a30503d7
SkData can allocate room for its contents in the same block
...
BUG=skia:
R=bungeman@google.com , mtklein@google.com
Author: reed@google.com
Review URL: https://codereview.chromium.org/560653004
2014-09-11 08:42:36 -07:00
mtklein
aa90d00f14
Assert SkTDArray::pop() doesn't underflow.
...
BUG=skia:
R=reed@google.com , mtklein@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/563633003
2014-09-11 06:36:11 -07:00
borenet
26a4b51499
Update SKP version to 98
...
Automatic commit by the RecreateSKPs bot.
TBR=
Author: borenet@google.com
Review URL: https://codereview.chromium.org/559283002
2014-09-10 21:25:40 -07:00
mtklein
97bf60ff7f
Delay any SkRecordOptimize until after SkRecord has stuck.
...
BUG=skia:
R=robertphillips@google.com , mtklein@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/561993002
2014-09-10 16:40:05 -07:00
mtklein
99d6a9ee8b
Fix a bug in Save-Restore no-op optimization.
...
We optimize
Save
SaveLayer
Restore
Restore
into
NoOp
NoOp
NoOp
Restore
I'm considering skipping the call to SkRecordOptimize again just to eliminate
this extra variable from landing SkRecord. Thoughts?
BUG=skia:
R=robertphillips@google.com , mtklein@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/560163002
2014-09-10 16:08:28 -07:00
bungeman
f91c47d91d
Remove a layer of indirection and code from SkFontHost.
...
R=mtklein@google.com , tomhudson@google.com , djsollen@google.com
Author: bungeman@google.com
Review URL: https://codereview.chromium.org/105223006
2014-09-10 15:49:48 -07:00
bungeman
77cd8b0ba2
Revert of Added test for non cached ETC1 (patchset #2 id:20001 of https://codereview.chromium.org/564493002/ )
...
Reason for revert:
This is causing dm and gm to crash on the Win8 7770 bots, for example
http://108.170.220.120:10117/builders/Test-Win8-ShuttleA-HD7770-x86-Debug/builds/2128
An example stack trace looks like
[13:46:16.260000] -1M drawing... extractbitmap [600 600]
[13:46:16.760000] -1M drawing... etc1bitmap_npot [124 124]
[13:46:16.760000] -1M drawing... etc1bitmap_r11.ktx [128 128]
[13:46:16.760000] -1M drawing... etc1bitmap_ktx [128 128]
[13:46:16.760000] -1M drawing... etc1bitmap_pkm_volatile [128 128]
[13:46:16.760000]
[13:46:16.760000] Caught exception 3221225477 EXCEPTION_ACCESS_VIOLATION
[13:46:16.760000] sk_gr_allocate_texture +c9
[13:46:16.760000] load_etc1_texture +1dd
[13:46:16.760000] sk_gr_create_bitmap_texture +199
[13:46:16.760000] GrLockAndRefCachedBitmapTexture +ad
[13:46:16.760000] SkGpuDevice::SkAutoCachedTexture::set +5d
[13:46:16.760000] SkGpuDevice::SkAutoCachedTexture::SkAutoCachedTexture +65
[13:46:16.760000] SkGpuDevice::internalDrawBitmap +8e
[13:46:16.760000] SkGpuDevice::drawBitmapCommon +608
[13:46:16.760000] SkGpuDevice::drawBitmap +79
[13:46:16.760000] SkCanvas::internalDrawBitmap +11b
[13:46:16.760000] SkCanvas::drawBitmap +d3
[13:46:16.760000] skiagm::ETC1BitmapGM::onDraw +140
[13:46:16.760000] skiagm::GM::drawContent +3c
[13:46:16.760000] skiagm::GM::draw +24
[13:46:16.760000] GMMain::invokeGM +63
[13:46:16.760000] GMMain::generate_image +186
[13:46:16.760000] GMMain::test_drawing +5b
[13:46:16.760000] run_multiple_configs +2f9
[13:46:16.760000] tool_main +75d
[13:46:16.760000] main +16
[13:46:16.760000] __tmainCRTStartup +199
[13:46:16.760000] mainCRTStartup +d
[13:46:16.760000] BaseThreadInitThunk +e
[13:46:16.760000] RtlInitializeExceptionChain +84
[13:46:16.760000] RtlInitializeExceptionChain +5a
Original issue's description:
> Added test for non cached ETC1
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/d9ec549071581d9d1dc2e5fac3163305ae935a39
R=bsalomon@chromium.org , robertphillips@chromium.org , robertphillips@google.com , sugoi@chromium.org
TBR=bsalomon@chromium.org , robertphillips@chromium.org , robertphillips@google.com , sugoi@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=skia:
Author: bungeman@google.com
Review URL: https://codereview.chromium.org/559093003
2014-09-10 14:59:59 -07:00
cjacek
3e15f9006c
Fixed void* to uint64_t cast on win64 in TraceID.
...
On win64, long is 32-bit. Found by GCC (mingw-w64) build, where this causes an error.
This is the Skia version of https://codereview.chromium.org/374043002 .
R=bungeman@google.com , humper@google.com
Author: cjacek@gmail.com
Review URL: https://codereview.chromium.org/510923002
2014-09-10 14:28:07 -07:00
sugoi
d9ec549071
Added test for non cached ETC1
...
BUG=skia:
R=bsalomon@chromium.org , robertphillips@chromium.org , robertphillips@google.com
Author: sugoi@chromium.org
Review URL: https://codereview.chromium.org/564493002
2014-09-10 13:40:18 -07:00
mtklein
fd731ce804
Measure picture recording speed in nanobench.
...
Today we measure SkPicture playback speed, but not the time it takes to record
the SkPicture. This fixes that by reading SKPs from disk and re-recording them.
On the console, recording shows up first as the nonrendering skp benches,
followed later by the usual playback benches:
maxrss loops min median mean max stddev samples config bench
51M 2 165µs 168µs 169µs 178µs 3% ▆▄▃█▂▄▁▂▁▁ nonrendering tabl_slashdot.skp
57M 1 9.72ms 9.77ms 9.79ms 9.97ms 1% █▂▂▅▃▂▁▄▂▁ nonrendering desk_pokemonwiki.skp
57M 32 2.92µs 2.96µs 3.03µs 3.46µs 6% ▅▁▁▁▁▁▁█▂▁ nonrendering desk_yahoosports.skp
...
147M 1 3.86ms 3.87ms 3.97ms 4.81ms 7% █▁▁▁▁▁▁▁▁▁ 8888 tabl_slashdot.skp_1
147M 1 4.54ms 4.56ms 4.55ms 4.56ms 0% █▅▇▅█▅▂▁▅▁ 565 tabl_slashdot.skp_1
147M 2 3.08ms 3.24ms 4.17ms 8.18ms 50% █▁▁█▁▁▁▁▁▁ gpu tabl_slashdot.skp_1
147M 1 1.61ms 1.62ms 1.69ms 2.33ms 13% █▁▁▁▁▁▁▁▁▁ 8888 desk_pokemonwiki.skp_1
147M 1 1.44ms 1.44ms 1.45ms 1.47ms 1% ▅▂█▂▂▅▁▁▂▁ 565 desk_pokemonwiki.skp_1
...
On skiaperf.com, they'll also be separated out from playback benches by bench_type.
BUG=skia:
R=reed@google.com , mtklein@google.com , jcgregorio@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/559153002
2014-09-10 12:19:30 -07:00
mtklein
33bce0a68b
Clean up old custom tools now subsumed by nanobench.
...
BUG=skia:
R=mtklein@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/551263003
2014-09-10 12:11:23 -07:00
mtklein
962890568d
Distinguish common and unique names for skiaperf.com.
...
Turns out we tack on the size post-facto in ResultsWriter::bench(), so the only
place we need getUniqueName() to differ from getName() is SKPBench.
BUG=skia:
R=jcgregorio@google.com , mtklein@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/552303004
2014-09-10 12:05:59 -07:00
tomhudson
579b4fb92e
Fix iteration bounds of Android GL API initialization
...
A dormant error in https://codereview.chromium.org/319043005 was
exposed on some new platforms; this makes sure loop iterations
are bounded.
BUG=
R=joshualitt@google.com , joshualitt@chromium.org
Author: tomhudson@google.com
Review URL: https://codereview.chromium.org/557363002
2014-09-10 10:45:42 -07:00
reed
cc0e3110bd
make set3DMask virtual, so we can safely notify the shadercontext
...
also boost preallocated storage to account for this combo of bitmapshader + emboss + colorfilter
BUG=skia:
R=djsollen@google.com
Author: reed@google.com
Review URL: https://codereview.chromium.org/563563002
2014-09-10 10:20:24 -07:00
Mike Klein
d0af38793e
Expectation file update for bot changes.
...
BUG=skia:
Review URL: https://codereview.chromium.org/560873002
2014-09-10 11:10:48 -04:00
bungeman
f548444684
Detect presence of dwrite_1.h.
...
This introduces the SK_HAS_DWRITE_1_H define which may be set at
build time or will be true when WINVER_MAXVER >= 0x0602 .
The dwrite_1.h header is available starting in Windows SDK 8.0.
This change supports users who must still use Windows SDK 7.0.
It also allows for easier local testing of the older interfaces
on newer versions of Windows.
See also: https://bugzilla.mozilla.org/show_bug.cgi?id=1053652
R=george@mozilla.com , mtklein@google.com
Author: bungeman@google.com
Review URL: https://codereview.chromium.org/552383002
2014-09-10 07:49:05 -07:00
reed
841010f4bd
disable conservative rasterclip on gpu, until we understand perspective
...
BUG=skia:
R=bsalomon@google.com
Author: reed@google.com
Review URL: https://codereview.chromium.org/561763002
2014-09-10 07:23:32 -07:00
borenet
1e3dad0b17
Update SKP version to 97
...
Automatic commit by the RecreateSKPs bot.
TBR=
Author: borenet@google.com
Review URL: https://codereview.chromium.org/560743002
2014-09-09 21:14:51 -07:00
qiankun.miao
8247ec313d
Fix format of nanobench result
...
Column of samples is too wide. This makes config is not align with the
'config' title. Pad 'samples' tilte with some whitespaces to fix this
issue.
BUG=skia:
R=mtklein@google.com
Author: qiankun.miao@intel.com
Review URL: https://codereview.chromium.org/549153005
2014-09-09 19:24:36 -07:00
reed
9728a2bf56
correct prev suppression
...
TBR=
NOTRY=True
Author: reed@chromium.org
Review URL: https://codereview.chromium.org/543903005
2014-09-09 19:22:37 -07:00
reed
9a6300a2b0
suppress multipicturedraw_pathclip_tiled_nvprmsaa4 after the conservative-rasterclip cl
...
TBR=
NOTRY=True
Author: reed@chromium.org
Review URL: https://codereview.chromium.org/555403002
2014-09-09 19:08:28 -07:00
reed
d954498c01
Revert of Revert of allow canvas to force conservative clips (for speed) (patchset #1 id:1 of https://codereview.chromium.org/554033003/ )
...
Reason for revert:
May just rebaseline, plus want to see the results of the chrome tests, so re-trying this CL.
Original issue's description:
> Revert of allow canvas to force conservative clips (for speed) (patchset #7 id:120001 of https://codereview.chromium.org/541593005/ )
>
> Reason for revert:
> multipicturedraw failed on nvprmsaa -- don't know why yet
>
> Original issue's description:
> > Allow SkCanvas to be initialized to force conservative rasterclips. This has the following effects:
> >
> > 1. Queries to the current clip will be conservatively large. This can mean the quickReject may return false more often.
> >
> > 2. The conservative clips mean less work is done.
> >
> > 3. Enabled by default for Gpu, Record, and NoSaveLayer canvases.
> >
> > 4. API is private for now.
> >
> > Committed: https://skia.googlesource.com/skia/+/27a5e656c3d6ef22f9cb34de18e1b960da3aa241
>
> TBR=robertphillips@google.com ,bsalomon@google.com,mtklein@google.com,junov@google.com
> NOTREECHECKS=true
> NOTRY=true
>
> Committed: https://skia.googlesource.com/skia/+/6f09709519b79a1159f3826645f1c5fbc101ee11
R=robertphillips@google.com , bsalomon@google.com , mtklein@google.com , junov@google.com , reed@google.com
TBR=bsalomon@google.com , junov@google.com , mtklein@google.com , reed@google.com , robertphillips@google.com
NOTREECHECKS=true
NOTRY=true
Author: reed@chromium.org
Review URL: https://codereview.chromium.org/560713002
2014-09-09 18:46:22 -07:00
bungeman
87a79236f5
Rebaselines for 6bc2c94de3
(fontmgr_iter).
...
Rebaselines for "Add font fallback support to SkFontMgr_fontconfig."
2014-09-09 21:38:04 -04:00
humper
d3b6eb246d
disable webtry seccmp on non-linux build
...
BUG=skia:
R=jcgregorio@google.com
Author: humper@google.com
Review URL: https://codereview.chromium.org/555993002
2014-09-09 15:57:33 -07:00
humper
d85ad50b0e
simple build script for webtry that re-generates the code template
...
before compilation
BUG=skia:
R=jcgregorio@google.com
Author: humper@google.com
Review URL: https://codereview.chromium.org/552343003
2014-09-09 15:57:26 -07:00
Mike Klein
be20c5a118
rebase a couple oddballs
...
BUG=skia:
Review URL: https://codereview.chromium.org/555193004
2014-09-09 17:52:40 -04:00
Mike Klein
ef53f158de
Rebase intel rhb gpu GMs.
...
Looks like I accidentally re-enabled GPU mode in GM for Intel RHB.
Rebaseline it so it's green today before we turn it off tomorrow.
BUG=skia:
Review URL: https://codereview.chromium.org/552413002
2014-09-09 16:00:58 -04:00
reed
6f09709519
Revert of allow canvas to force conservative clips (for speed) (patchset #7 id:120001 of https://codereview.chromium.org/541593005/ )
...
Reason for revert:
multipicturedraw failed on nvprmsaa -- don't know why yet
Original issue's description:
> Allow SkCanvas to be initialized to force conservative rasterclips. This has the following effects:
>
> 1. Queries to the current clip will be conservatively large. This can mean the quickReject may return false more often.
>
> 2. The conservative clips mean less work is done.
>
> 3. Enabled by default for Gpu, Record, and NoSaveLayer canvases.
>
> 4. API is private for now.
>
> Committed: https://skia.googlesource.com/skia/+/27a5e656c3d6ef22f9cb34de18e1b960da3aa241
R=robertphillips@google.com , bsalomon@google.com , mtklein@google.com , junov@google.com
TBR=bsalomon@google.com , junov@google.com , mtklein@google.com , robertphillips@google.com
NOTREECHECKS=true
NOTRY=true
Author: reed@google.com
Review URL: https://codereview.chromium.org/554033003
2014-09-09 12:51:10 -07:00
bungeman
6bc2c94de3
Add font fallback support to SkFontMgr_fontconfig.
...
R=mtklein@google.com , djsollen@google.com
Author: bungeman@google.com
Review URL: https://codereview.chromium.org/489733005
2014-09-09 12:50:36 -07:00
senorblanco
4459a0448d
When parsing arguments on Windows, check malloc() for failure.
...
Note: this code is only executed by Skia utilities AFAIK, not by
external clients.
BUG=skia:2642
R=reed@google.com
Author: senorblanco@chromium.org
Review URL: https://codereview.chromium.org/548343002
2014-09-09 12:37:16 -07:00
jshin
7476cf533b
Update the alias mapping for Noto Sans CJK.
...
To make the family names 'future-proof', we decided to shorten
the name of Noto Sans CJK, which requires a change in the alias
table in Skia.
Chrome OS CL (actually updating the fonts) and Chrome CL (updating the
font preferences on CrOS) are going together with this CL.
BUG=412151
TEST=With the above two CLs in on Chrome OS, Noto Sans CJK {JP, SC} are
used when MS P Gothic / Simhei are asked for by a web page.
R=bungeman@google.com
Author: jshin@chromium.org
Review URL: https://codereview.chromium.org/554943002
2014-09-09 12:30:57 -07:00
reed
27a5e656c3
Allow SkCanvas to be initialized to force conservative rasterclips. This has the following effects:
...
1. Queries to the current clip will be conservatively large. This can mean the quickReject may return false more often.
2. The conservative clips mean less work is done.
3. Enabled by default for Gpu, Record, and NoSaveLayer canvases.
4. API is private for now.
R=robertphillips@google.com , bsalomon@google.com , mtklein@google.com , junov@google.com
Author: reed@google.com
Review URL: https://codereview.chromium.org/541593005
2014-09-09 12:19:30 -07:00
mtklein
f5b6bf775c
Make -d x86 have the default GPU cache size.
...
We have no a priori reason to limit the cache for new devices.
BUG=skia:
R=djsollen@google.com , mtklein@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/556863006
2014-09-09 12:07:05 -07:00
george
b3eba478d5
Outset the stroke width when computing the bounds for drawing a stroked rect, or 1 if it's a hairline
...
Adds a testcase for stroke rect bug
R=reed@google.com , reed1
BUG=skia:
Author: george@mozilla.com
Review URL: https://codereview.chromium.org/552743004
2014-09-09 11:33:57 -07:00
senorblanco
32673b99a4
Allow negative values in SkBlurImageFilter sigma.
...
There are two ways negative sigma values may occur: in
the original filter parameters, or after multiplication
by a negative scaling CTM. The former case is
invalid according to the spec, so we continue to check
for it at validation time. In the latter case, we should
interpret it as a horizontal flip in the kernel pixel
access, and simply take the absolute value (since the
filter kernel is symmetric).
Also refactor all this logic into a single place for the
CPU, GPU and onFilterBounds() paths.
BUG=https://code.google.com/p/chromium/issues/detail?id=409602
R=sugoi@google.com , reed@google.com , sugoi@chromium.org
Author: senorblanco@chromium.org
Review URL: https://codereview.chromium.org/555603002
2014-09-09 09:15:04 -07:00
mtklein
c54056c839
Back to hashing source content, not .png.
...
BUG=skia:
R=jcgregorio@google.com , mtklein@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/560453002
2014-09-09 08:42:04 -07:00
fmalita
90dc6412b4
Revert of Use SkBitmapCache to optimize readPixels on a texture-backed bitmap (patchset #6 id:100001 of https://codereview.chromium.org/533323002/ )
...
Reason for revert:
Component inversions in Blink's printing/webgl-repeated-printing.html: https://storage.googleapis.com/chromium-layout-test-archives/linux_blink_rel/24033/layout-test-results/printing/webgl-repeated-printing-diff.txt
Reverting to unblock rolls.
Original issue's description:
> Use SkBitmapCache to optimize readPixels on a texture-backed bitmap
>
> BUG=skia:2786
>
> Committed: https://skia.googlesource.com/skia/+/95fd68e5ccd242a91e6dd827dd695f18661efbe6
R=junov@chromium.org , reed@google.com , bsalomon@google.com , piotaixr@chromium.org
TBR=bsalomon@google.com , junov@chromium.org , piotaixr@chromium.org , reed@google.com
NOTREECHECKS=true
NOTRY=true
BUG=skia:2786
Author: fmalita@chromium.org
Review URL: https://codereview.chromium.org/551523003
2014-09-09 08:12:46 -07:00
sugoi
0249ec267a
Adding texture uploads without cache for YUV and ETC1
...
BUG=skia:
R=bsalomon@google.com , robertphillips@google.com
Author: sugoi@chromium.org
Review URL: https://codereview.chromium.org/552843004
2014-09-09 08:12:34 -07:00
mtklein
ea65bfa8de
Update DM JSON format.
...
Ex. dm --match patch -w bad --key arch x86 gpu nvidia model z620 --properties git_hash abcd build_number 20 ->
{
"build_number" : "20",
"git_hash" : "abcd",
"key" : {
"arch" : "x86",
"gpu" : "nvidia",
"model" : "z620"
},
"results" : [
{
"key" : {
"config" : "565",
"name" : "ninepatch-stretch"
},
"md5" : "f78cfafcbabaf815f3dfcf61fb59acc7",
"options" : {
"source_type" : "GM"
}
},
{
"key" : {
"config" : "8888",
"name" : "ninepatch-stretch"
},
"md5" : "3e8a42f35a1e76f00caa191e6310d789",
"options" : {
"source_type" : "GM"
}
},
...
This breaks -r, but that's okay. Going to follow up this CL with one that removes that entirely.
BUG=skia:
R=stephana@google.com , jcgregorio@google.com , mtklein@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/551873003
2014-09-09 07:59:46 -07:00
mtklein
197ceda929
Remove expectations / -r from DM entirely.
...
It's getting tricky to coordinate changes to output for bots with -r,
and -r is not widely used. The suggested alternative is to run skdiff.
BUG=skia:
R=jcgregorio@google.com , mtklein@google.com
Author: mtklein@chromium.org
Review URL: https://codereview.chromium.org/553583004
2014-09-09 07:36:57 -07:00