0
Commit Graph

218 Commits

Author SHA1 Message Date
d7a71c8899 Run gn --format over all .gn files
The recent formatter alphebetizing change is causing a lot of noise in
code reviews. Figured it'd be worth a clean-up CL.

Exact command I ran:
find . -name "*.gn*" -exec gn format --in-place "{}" \;

TBR=ddorwin@chromium.org
BUG=554928
CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel

Review URL: https://codereview.chromium.org/1464873002

Cr-Commit-Position: refs/heads/master@{#360891}
2015-11-20 19:54:12 +00:00
0917ec4328 Use std::default_delete as the default deleter for scoped_ptr.
The aim is to make scoped_ptr and std::unique_ptr functionally
identical so scoped_ptr can simply be a typedef.

BUG=554298

Review URL: https://codereview.chromium.org/1445003002

Cr-Commit-Position: refs/heads/master@{#360539}
2015-11-19 07:01:23 +00:00
d90aeea876 [sql] Validate database files before enabling memory-mapping.
With regular I/O, filesystem corruption would cause SQLite to return
SQLITE_IOERR codes.  With memory-mapping, filesystem errors can cause a
crash when accessed.  There are databases with filesystem corruption,
this CL only enables memory-mapped I/O for parts of the database which
have been successfully read at some point using regular I/O.

[Relands https://codereview.chromium.org/1426743006 which was reverted at
 https://codereview.chromium.org/1432953002 .  CL is identical, fix to
 sql::Connection was landed at https://codereview.chromium.org/1426743006 .]

BUG=537742
TBR=rmcilroy@chromium.org, isherman+reviewer@chromium.org

Review URL: https://codereview.chromium.org/1442753004

Cr-Commit-Position: refs/heads/master@{#359478}
2015-11-13 02:25:28 +00:00
85dce08600 Move third_party/mojo/src/mojo/public to mojo/public
BUG=None
NOPRESUBMIT=true

Review URL: https://codereview.chromium.org/1410053006

Cr-Commit-Position: refs/heads/master@{#359461}
2015-11-13 01:34:47 +00:00
f7e988ff06 [sql] Differentiate compile errors from regular errors.
GetUniqueStatement() and GetUntrackedStatement() attempt to be
pedantic about errors preparing statements, because often those errors
indicate either a syntax error in the SQL being prepared, or an error
with the database schema it is being prepared against.  That makes
testing code against various other problems like corruption
challenging.  This change attempts to restrict the flagged errors to
include fewer errors unrelated to the form of the SQL statement (or
schema).

Additionally, slightly improve the debug output for OnSqliteError()
for databases which haven't been tagged.

BUG=537742

Review URL: https://codereview.chromium.org/1434173003

Cr-Commit-Position: refs/heads/master@{#359452}
2015-11-13 00:42:10 +00:00
f2bfe56ff5 Eliminate third_party/mojo/src from all targets' include paths
Eliding presubmit here because the missing DEPS entries are going to be addressed here: https://codereview.chromium.org/1410053006

BUG=554556
R=jam@chromium.org
NOPRESUBMIT=true

Review URL: https://codereview.chromium.org/1435063002 .

Cr-Commit-Position: refs/heads/master@{#359174}
2015-11-11 22:26:07 +00:00
1736cd0fb2 Revert "[sql] Validate database files before enabling memory-mapping."
This reverts commit de8784cf20.

Reason for Revert:
Implicated in test failures:
ChromeMainTest.ReuseBrowserInstanceWhenOpeningFile
ChromeMainTest.SecondLaunch
ChromeMainTest.SecondLaunchFromIncognitoWithNormalUrl
DiagnosticsControllerTest.RecoverFromNssCertDbFailure
DiagnosticsControllerTest.RecoverFromNssKeyDbFailure

First failing bot:
https://build.chromium.org/p/chromium.chromiumos/builders/Linux%20ChromiumOS%20Tests%20%28dbg%29%281%29/builds/8908

Original Issue:
https://codereview.chromium.org/1426743006

TBR=shess@chromium.org, isherman@chromium.org, rmcilroy@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=537742

Review URL: https://codereview.chromium.org/1432953002

Cr-Commit-Position: refs/heads/master@{#358709}
2015-11-10 00:14:44 +00:00
90244e155a [sql] Fix typo in error message.
CL https://codereview.chromium.org/1419573008 fixed a typo, but made a
typo.

BUG=none
TBR=michaeln@chromium.org

Review URL: https://codereview.chromium.org/1428523007

Cr-Commit-Position: refs/heads/master@{#358673}
2015-11-09 22:09:19 +00:00
de8784cf20 [sql] Validate database files before enabling memory-mapping.
With regular I/O, filesystem corruption would cause SQLite to return
SQLITE_IOERR codes.  With memory-mapping, filesystem errors can cause a
crash when accessed.  There are databases with filesystem corruption,
this CL only enables memory-mapped I/O for parts of the database which
have been successfully read at some point using regular I/O.

BUG=537742

Review URL: https://codereview.chromium.org/1426743006

Cr-Commit-Position: refs/heads/master@{#358672}
2015-11-09 22:06:37 +00:00
5dac334f21 [sql] Increase database chunk size for large databases.
SQLite implements a hint to request the databases be truncated or
expanded to multiples of a chunk size.  This was originally implemented
to reduce filesystem fragmentation, and it also can improve performance
because file sizes don't vary as much.

For a memory-mapped database, it also reduces the number of calls to
adjust the memory map when the database size changes.

BUG=551108

Review URL: https://codereview.chromium.org/1402373007

Cr-Commit-Position: refs/heads/master@{#358121}
2015-11-05 20:48:28 +00:00
2f3a814be0 [sql] Disable memory-mapping under sql::Recovery.
Recovery may be used to recover files with I/O errors, which would not
interact well with memory-mapped I/O.

[AFAICT, SQLite doesn't use memory-mapped I/O on temporary files, but as
of yet I don't see why this might be.]

BUG=551110

Review URL: https://codereview.chromium.org/1414563010

Cr-Commit-Position: refs/heads/master@{#358083}
2015-11-05 18:11:47 +00:00
186d6bfe41 [tracing] Add names to memory-infra dumpers for debugging
Follow-up CL to crrev.com/1425793002. Adds an extra |name|
argument to the memory-infra RegisterDumpProvider methods.
This allow to see the names of the dump providers in the trace
and diagnose dump providers getting stuck or taking more time
than usual.
No further behavioral change is introduced by this CL.

BUG=547764
TBR=xhwang@chromium.org,simonhatch@chromium.org,jochen@chromium.org,shess@chromium.org,piman@chromium.org
CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel

Review URL: https://codereview.chromium.org/1406213005

Cr-Commit-Position: refs/heads/master@{#357089}
2015-10-30 13:22:34 +00:00
dea7ae9bd8 [sql] QuotaDatabase schema upgrade doesn't use transactions right.
BUG=548371

Review URL: https://codereview.chromium.org/1419573008

Cr-Commit-Position: refs/heads/master@{#356675}
2015-10-28 22:44:06 +00:00
erg
127dbee2bb mandoline: Start adding trace events for mandoline stuff.
BUG=534895

Review URL: https://codereview.chromium.org/1421483003

Cr-Commit-Position: refs/heads/master@{#355915}
2015-10-23 23:05:27 +00:00
c8cd2a1619 [sql] Track uploads of diagnostic data to prevent duplication.
The ThumbnailDatabase error handler attempts to capture generic data
about the error, which is then uploaded for diagnostics with
DumpWithoutCrashing().  Database with errors which are not repaired
upload new dumps repeatedly.  This change adds a tracking file alongside
the database file, which has the dual purpose of recording whether a
previous dump was attempted, and also verifying that files can be
created in the profile directory.  If the profile directory is too
broken to create files, then diagnostic data is unlikely to inform a
fix.

BUG=543321,362505,526614,240396

Review URL: https://codereview.chromium.org/1393393007

Cr-Commit-Position: refs/heads/master@{#355632}
2015-10-22 20:31:33 +00:00
9f8022f2aa [tracing] Add sqlite memory statistics to tracing.
The process-wide memory usage statistics of sqlite library is added to
chrome://tracing. The memory usage of sqlite library is mainly through
sqlite_malloc. The total usage of the process is recorded by
sqlite3_memory_used() api. This CL also adds per-connection memory
usage to tracing. Each connection uses memory for cache, schema and
statement, and these usages are recorded. sqlit3_malloc uses malloc
internally to allocate memory. So, thie memory is traced as
sub-allocation from system_allocator(malloc).
This CL lets us keep track of sqlite memory usage in chrome telemetry.

BUG=466141

Review URL: https://codereview.chromium.org/1327063002

Cr-Commit-Position: refs/heads/master@{#353549}
2015-10-12 17:49:46 +00:00
7dbd4dee47 [sql] Use memory-mapped I/O for sql::Connection.
sql::Connection::Open*() uses PRAGMA mmap_size to enable SQLite's
memory-mapped I/O.  Additionally instrument to flush dirty pages from
the page cache after writes.

BUG=489784,533682,537681,537636

[Relands https://crrev.com/9a1948a4d6d4 (),
reverted at https://crrev.com/55c3216b15ce (),
relanded at https://crrev.com/5c2f4e50d96d (),
reverted at https://crrev.com/745e18c52384 ().
May the waterfall have mercy on my CL.]

Review URL: https://codereview.chromium.org/1382283003

Cr-Commit-Position: refs/heads/master@{#352631}
2015-10-06 17:39:52 +00:00
21383131e6 Isolate sql_unittests_apk.
BUG=525873

Review URL: https://codereview.chromium.org/1377793004

Cr-Commit-Position: refs/heads/master@{#352237}
2015-10-03 04:54:20 +00:00
745e18c523 Revert of [sql] Use memory-mapped I/O for sql::Connection. (patchset id:40001 of https://codereview.chromium.org/1368533003/ )
Reason for revert:
data race reported by TSan on sql/connection.cc

BUG=537681

Original issue's description:
> [sql] Use memory-mapped I/O for sql::Connection.
>
> sql::Connection::Open*() uses PRAGMA mmap_size to enable SQLite's
> memory-mapped I/O.  Additionally instrument to flush dirty pages from
> the page cache after writes.
>
> [Relands https://crrev.com/9a1948a4d6d4,
> reverted at https://crrev.com/55c3216b15ce ]
>
> BUG=489784, 533682
>
> Committed: https://crrev.com/5c2f4e50d96d8b2ae0ae4a5c7d319e6be3b33bca
> Cr-Commit-Position: refs/heads/master@{#351344}

TBR=rmcilroy@chromium.org,pavely@chromium.org,shess@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=489784, 533682

Review URL: https://codereview.chromium.org/1375583003

Cr-Commit-Position: refs/heads/master@{#351596}
2015-09-30 18:05:20 +00:00
5c2f4e50d9 [sql] Use memory-mapped I/O for sql::Connection.
sql::Connection::Open*() uses PRAGMA mmap_size to enable SQLite's
memory-mapped I/O.  Additionally instrument to flush dirty pages from
the page cache after writes.

[Relands https://crrev.com/9a1948a4d6d4,
reverted at https://crrev.com/55c3216b15ce ]

BUG=489784, 533682

Review URL: https://codereview.chromium.org/1368533003

Cr-Commit-Position: refs/heads/master@{#351344}
2015-09-29 17:22:02 +00:00
55c3216b15 Revert of [sql] Use memory-mapped I/O for sql::Connection. (patchset id:140001 of https://codereview.chromium.org/1349863003/ )
Reason for revert:
mmap_enabled_ isn't initialized, causing MSAN failures:

https://storage.googleapis.com/chromium-layout-test-archives/WebKit_Linux_MSAN/5882/layout-test-results/virtual/sharedarraybuffer/fast/workers/constructor-proto-crash-log.txt

STDERR: ==3138==WARNING: MemorySanitizer: use-of-uninitialized-value
STDERR:      0x7fc8068d3a65 in ReleaseCacheMemoryIfNeeded sql/connection.cc:513:7
STDERR:      0x7fc8068d3a65 in sql::Connection::ExecuteAndReturnErrorCode(char const*) sql/connection.cc:943:0
STDERR:      0x7fc8068ca454 in sql::Connection::OpenInternal(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, sql::Connection::Retry) sql/connection.cc:1275:9
STDERR:      0x7fc8068c845f in sql::Connection::Open(base::FilePath const&) sql/connection.cc:367:10
STDERR:      0x7fc806b1b868 in storage::QuotaDatabase::LazyOpen(bool) storage/browser/quota/quota_database.cc:488:14

Original issue's description:
> [sql] Use memory-mapped I/O for sql::Connection.
>
> sql::Connection::Open*() uses PRAGMA mmap_size to enable SQLite's
> memory-mapped I/O.  Additionally instrument to flush dirty pages from
> the page cache after writes.
>
> BUG=489784,533682
>
> Committed: https://crrev.com/9a1948a4d6d445d5c8e209bdcd1cd050af72060b
> Cr-Commit-Position: refs/heads/master@{#350362}

R=shess@chromium.org
TBR=pavely@chromium.org, pvalenzuela@chromium.org, rmcilroy@chromium.org, shess@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=489784,533682

Review URL: https://codereview.chromium.org/1365783002 .

Cr-Commit-Position: refs/heads/master@{#350386}
2015-09-23 23:28:49 +00:00
9a1948a4d6 [sql] Use memory-mapped I/O for sql::Connection.
sql::Connection::Open*() uses PRAGMA mmap_size to enable SQLite's
memory-mapped I/O.  Additionally instrument to flush dirty pages from
the page cache after writes.

BUG=489784,533682

Review URL: https://codereview.chromium.org/1349863003

Cr-Commit-Position: refs/heads/master@{#350362}
2015-09-23 20:33:56 +00:00
702467624c [sql] sqlite3_initialize() before additional entry point.
sqlite3_vfs_find() added an additional entry point in Delete(), which is
static.

BUG=84094
TBR=erg@chromium.org

Review URL: https://codereview.chromium.org/1351653002

Cr-Commit-Position: refs/heads/master@{#349179}
2015-09-16 19:05:29 +00:00
63a4d153f1 Fix sbox_validation_tests & Make isolate_driver.py include the executable itself
This is a redo of https://codereview.chromium.org/1245873002 c6649f2e01
with fix for Official build.

Further reduce the boilerplate in .isolate files and is necessary to add debug
symbols, to be done in a follow up.

Slightly accelerate ninja file parsing by blacklisting more extensions.

sbox_validation_tests wasn't run on Windows since
https://codereview.chromium.org/1212003003/ (~2 months ago). Thankfully this CL
uncovered this copy-paste error.

TBR=jam@chromium.org
BUG=98637
CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel

Review URL: https://codereview.chromium.org/1320793004

Cr-Commit-Position: refs/heads/master@{#347912}
2015-09-09 12:27:45 +00:00
7c8964f3cf Revert of Fix sbox_validation_tests & Make isolate_driver.py include the executable itself (patchset id:90001 of https://codereview.chromium.org/1245873002/ )
Reason for revert:
This CL seems to break compile http://build.chromium.org/p/chromium.chrome/builders/Google%20Chrome%20Linux%20x64/builds/3900/.

If the revert doesn't fix it, I will re-land this CL.

Original issue's description:
> Fix sbox_validation_tests & Make isolate_driver.py include the executable itself
>
> Further reduce the boilerplate in .isolate files and is necessary to add debug
> symbols, to be done in a follow up.
>
> Slightly accelerate ninja file parsing by blacklisting more extensions.
>
> sbox_validation_tests wasn't run on Windows since
> https://codereview.chromium.org/1212003003/ (~2 months ago). Thankfully this CL
> uncovered this copy-paste error.
>
> TBR=jam@chromium.org
> BUG=98637
> CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel
>
> Committed: https://crrev.com/c6649f2e014a24a9093140a06fcadcaf2a06513c
> Cr-Commit-Position: refs/heads/master@{#347027}

TBR=jam@chromium.org,maruel@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=98637

Review URL: https://codereview.chromium.org/1329783003

Cr-Commit-Position: refs/heads/master@{#347071}
2015-09-03 00:37:49 +00:00
c6649f2e01 Fix sbox_validation_tests & Make isolate_driver.py include the executable itself
Further reduce the boilerplate in .isolate files and is necessary to add debug
symbols, to be done in a follow up.

Slightly accelerate ninja file parsing by blacklisting more extensions.

sbox_validation_tests wasn't run on Windows since
https://codereview.chromium.org/1212003003/ (~2 months ago). Thankfully this CL
uncovered this copy-paste error.

TBR=jam@chromium.org
BUG=98637
CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel

Review URL: https://codereview.chromium.org/1245873002

Cr-Commit-Position: refs/heads/master@{#347027}
2015-09-02 21:21:27 +00:00
6ce9d1f07c [sql] Drop sqlite3_* proxy hacks.
Now that sqlite is a shlib under component build, the hacks to proxy
functions are not necessary.

BUG=489444
TBR=michaeln@chromium.org

Review URL: https://codereview.chromium.org/1303423009

Cr-Commit-Position: refs/heads/master@{#346994}
2015-09-02 19:38:24 +00:00
9d8aca4a2a Revert of [sqlite] Respect the gyp and gn component switch. (patchset id:100001 of https://codereview.chromium.org/1306863006/ )
Reason for revert:
Suspected of breaking chromium.webkit Mac builders, see https://code.google.com/p/chromium/issues/detail?id=526208

Summary:

Incompatible library version: httpd requires version 9.0.0 or later, but libsqlite3.dylib provides version 0.0.0

/b/build/slave/WebKit_Mac10_6__dbg_/build/src/out/Debug/libsqlite3.dylib seems to be used instead of expected/intended /usr/lib/libsqlite3.dylib

Original issue's description:
> [sqlite] Respect the gyp and gn component switch.
>
> SQLITE_API is the existing mechanism SQLite provides, and is used in
> preference to inventing a new SQLITE_EXPORT symbol (like
> sql/sql_export.h and other examples).
>
> CoreServices.framework is necessary on OSX because of the Time Machine
> patch.
>
> Remove sql/proxy.{h,cc}, which was necessary to work around SQLite
> linking statically into both component shlibs and unit test executables.
>
> [Relanding https://codereview.chromium.org/1322463002/ ]
>
> BUG=489444
> TBR=michaeln@chromium.org, thakis@chromium.org, brettw@chromium.org
>
> Committed: https://crrev.com/f71db5c36625ff00feb8283028631303ae5caa7c
> Cr-Commit-Position: refs/heads/master@{#346536}

TBR=michaeln@chromium.org,thakis@chromium.org,brettw@chromium.org,shess@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=489444

Review URL: https://codereview.chromium.org/1325833003

Cr-Commit-Position: refs/heads/master@{#346615}
2015-09-01 10:21:13 +00:00
f71db5c366 [sqlite] Respect the gyp and gn component switch.
SQLITE_API is the existing mechanism SQLite provides, and is used in
preference to inventing a new SQLITE_EXPORT symbol (like
sql/sql_export.h and other examples).

CoreServices.framework is necessary on OSX because of the Time Machine
patch.

Remove sql/proxy.{h,cc}, which was necessary to work around SQLite
linking statically into both component shlibs and unit test executables.

[Relanding https://codereview.chromium.org/1322463002/ ]

BUG=489444
TBR=michaeln@chromium.org, thakis@chromium.org, brettw@chromium.org

Review URL: https://codereview.chromium.org/1306863006

Cr-Commit-Position: refs/heads/master@{#346536}
2015-09-01 00:31:26 +00:00
e4f267ed41 Revert of [sqlite] Respect the gyp and gn component switch. (patchset id:20001 of https://codereview.chromium.org/1325513002/ )
Reason for revert:
ARRGH!  win8_chromium_gn_dgb is still broken.

Original issue's description:
> [sqlite] Respect the gyp and gn component switch.
>
> SQLITE_API is the existing mechanism SQLite provides, and is used in
> preference to inventing a new SQLITE_EXPORT symbol (like
> sql/sql_export.h and other examples).
>
> CoreServices.framework is necessary on OSX because of the Time Machine
> patch.
>
> Remove sql/proxy.{h,cc}, which was necessary to work around SQLite
> linking statically into both component shlibs and unit test executables.
>
> [Relanding https://codereview.chromium.org/1322463002/ ]
>
> BUG=489444
> TBR=michaeln@chromium.org, thakis@chromium.org
>
> Committed: https://crrev.com/02ce712af589a5b722ebbf5c2fffb3e0d4849963
> Cr-Commit-Position: refs/heads/master@{#346212}

TBR=michaeln@chromium.org,thakis@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=489444

Review URL: https://codereview.chromium.org/1307363007

Cr-Commit-Position: refs/heads/master@{#346213}
2015-08-28 19:54:36 +00:00
02ce712af5 [sqlite] Respect the gyp and gn component switch.
SQLITE_API is the existing mechanism SQLite provides, and is used in
preference to inventing a new SQLITE_EXPORT symbol (like
sql/sql_export.h and other examples).

CoreServices.framework is necessary on OSX because of the Time Machine
patch.

Remove sql/proxy.{h,cc}, which was necessary to work around SQLite
linking statically into both component shlibs and unit test executables.

[Relanding https://codereview.chromium.org/1322463002/ ]

BUG=489444
TBR=michaeln@chromium.org, thakis@chromium.org

Review URL: https://codereview.chromium.org/1325513002

Cr-Commit-Position: refs/heads/master@{#346212}
2015-08-28 19:39:56 +00:00
b5feb9e34a Revert of [sqlite] Respect the gyp and gn component switch. (patchset id:1 of https://codereview.chromium.org/1322463002/ )
Reason for revert:
Broken build on the Builder: Win x64 GN (dbg).
Failure example: http://build.chromium.org/p/chromium.win/builders/Win%20x64%20GN%20%28dbg%29/builds/8549

Original issue's description:
> [sqlite] Respect the gyp and gn component switch.
>
> SQLITE_API is the existing mechanism SQLite provides, and is used in
> preference to inventing a new SQLITE_EXPORT symbol (like
> sql/sql_export.h and other examples).
>
> CoreServices.framework is necessary on OSX because of the Time Machine
> patch.
>
> Remove sql/proxy.{h,cc}, which was necessary to work around SQLite
> linking statically into both component shlibs and unit test executables.
>
> BUG=489444
>
> Committed: https://crrev.com/4ec68d9ad2d3e0c74967a17946c8bf7ed4450f73
> Cr-Commit-Position: refs/heads/master@{#346151}

TBR=michaeln@chromium.org,shess@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=489444

Review URL: https://codereview.chromium.org/1324523004

Cr-Commit-Position: refs/heads/master@{#346179}
2015-08-28 17:48:39 +00:00
4ec68d9ad2 [sqlite] Respect the gyp and gn component switch.
SQLITE_API is the existing mechanism SQLite provides, and is used in
preference to inventing a new SQLITE_EXPORT symbol (like
sql/sql_export.h and other examples).

CoreServices.framework is necessary on OSX because of the Time Machine
patch.

Remove sql/proxy.{h,cc}, which was necessary to work around SQLite
linking statically into both component shlibs and unit test executables.

BUG=489444

Review URL: https://codereview.chromium.org/1322463002

Cr-Commit-Position: refs/heads/master@{#346151}
2015-08-28 15:22:45 +00:00
2d48e948d4 [sql] Record SQLite memory usage after a week.
Previously landed 10-minute, 1-hour, and 1-day histograms.  Based on
those I expect 1-week to get around 20% worse.

BUG=489784

Review URL: https://codereview.chromium.org/1316493006

Cr-Commit-Position: refs/heads/master@{#345366}
2015-08-25 17:40:44 +00:00
b6a14b7a02 Update mojo sdk to rev c02a28868825edfa57ab77947b8cb15e741c5598
Re-land number two. Now with cherry-picked android test fix.

BUG=None
TBR=jam@chromium.org,ben@chromium.org
TBR=mfoltz@chromium.org
TBR=mek@chromium.org
TBR=xhwang@chromium.org
TBR=shess@chromium.org

Review URL: https://codereview.chromium.org/1311043003

Cr-Commit-Position: refs/heads/master@{#345106}
2015-08-24 17:24:56 +00:00
bd9bf5a43f Revert of Update mojo sdk to rev c02a28868825edfa57ab77947b8cb15e741c5598 (patchset id:1 of https://codereview.chromium.org/1310103002/ )
Reason for revert:
Looks like this breaks mojo_system_unittests on Android...

http://build.chromium.org/p/chromium.linux/buildstatus?builder=Android%20GN&number=29595

Original issue's description:
> Update mojo sdk to rev c02a28868825edfa57ab77947b8cb15e741c5598
>
> Re-land. Previously conflicted with another CL that landed
> just before the roll.
>
> BUG=None
> TBR=jam@chromium.org,ben@chromium.org
> TBR=mfoltz@chromium.org
> TBR=mek@chromium.org
> TBR=xhwang@chromium.org
> TBR=shess@chromium.org
>
> Committed: https://crrev.com/0bfe154baad9ddfb1f0c6ecc7cace36e8f430e75
> Cr-Commit-Position: refs/heads/master@{#344994}

TBR=ben@chromium.org,jam@chromium.org,mek@chromium.org,mfoltz@chromium.org,shess@chromium.org,xhwang@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=None

Review URL: https://codereview.chromium.org/1309103002

Cr-Commit-Position: refs/heads/master@{#344996}
2015-08-23 01:42:53 +00:00
0bfe154baa Update mojo sdk to rev c02a28868825edfa57ab77947b8cb15e741c5598
Re-land. Previously conflicted with another CL that landed
just before the roll.

BUG=None
TBR=jam@chromium.org,ben@chromium.org
TBR=mfoltz@chromium.org
TBR=mek@chromium.org
TBR=xhwang@chromium.org
TBR=shess@chromium.org

Review URL: https://codereview.chromium.org/1310103002

Cr-Commit-Position: refs/heads/master@{#344994}
2015-08-22 23:41:36 +00:00
b83114bc5c Revert of Update mojo sdk to rev c02a28868825edfa57ab77947b8cb15e741c5598 (patchset id:120001 of https://codereview.chromium.org/1296453004/ )
Reason for revert:
Compilation error by missing include file:

../../content/renderer/usb/web_usb_client_impl.cc -o obj/content/renderer/renderer/web_usb_client_impl.o
In file included from ../../content/renderer/usb/web_usb_client_impl.cc:14:
../../content/renderer/usb/web_usb_device_impl.h:17:10: fatal error: 'third_party/mojo/src/mojo/public/cpp/bindings/error_handler.h' file not found
#include "third_party/mojo/src/mojo/public/cpp/bindings/error_handler.h"

FAILED: /mnt/data/b/build/goma/gomacc ../../third_party/llvm-build/Release+Asserts/bin/clang++ -MMD -MF obj/content/renderer/renderer/web_usb_client_impl.o.d -DV8_DEPRECATION_WARNINGS -DCLD_VERSION=2 -DENABLE_MDNS=1 -DENABLE_NOTIFICATIONS -DENABLE_PEPPER_CDMS -DENABLE_PLUGINS=1 -DENABLE_PRINTING=1 -DENABLE_BASIC_PRINTING=1 -DENABLE_PRINT_PREVIEW=1 -DENABLE_SPELLCHECK=1 -DDONT_EMBED_BUILD_METADATA -DUSE_UDEV -DUI_COMPOSITOR_IMAGE_TRANSPORT -DUSE_ASH=1 -DUSE_AURA=1 -DUSE_PANGO=1 -DUSE_CAIRO=1 -DUSE_CLIPBOARD_AURAX11=1 -DUSE_DEFAULT_RENDER_THEME=1 -DUSE_GLIB=1 -DUSE_OPENSSL=1 -DUSE_NSS_CERTS=1 -DUSE_X11=1 -DENABLE_WEBRTC=1 -DENABLE_EXTENSIONS=1 -DENABLE_CONFIGURATION_POLICY -DENABLE_TASK_MANAGER=1 -DENABLE_THEMES=1 -DENABLE_CAPTIVE_PORTAL_DETECTION=1 -DENABLE_SESSION_SERVICE=1 -DENABLE_APP_LIST=1 -DENABLE_SETTINGS_APP=1 -DENABLE_SUPERVISED_USERS=1 -DENABLE_SERVICE_DISCOVERY=1 -DENABLE_AUTOFILL_DIALOG=1 -DENABLE_GOOGLE_NOW=1 -DENABLE_ONE_CLICK_SIGNIN -DENABLE_HIDPI=1 -DENABLE_TOPCHROME_MD=1 -DV8_USE_EXTERNAL_STARTUP_DATA -DENABLE_BACKGROUND=1 -DENABLE_PRE_SYNC_BACKUP -DFULL_SAFE_BROWSING -DSAFE_BROWSING_CSD -DSAFE_BROWSING_DB_LOCAL -DSAFE_BROWSING_SERVICE -DCHROMIUM_BUILD -DENABLE_MEDIA_ROUTER=1 -DFIELDTRIAL_TESTING_ENABLED -DCR_CLANG_REVISION=245402-1 -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -DCOMPONENT_BUILD -D_DEBUG -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DWTF_USE_DYNAMIC_ANNOTATIONS=1 -D_GLIBCXX_DEBUG=1 -DCONTENT_IMPLEMENTATION -DBORINGSSL_SHARED_LIBRARY -DGL_GLEXT_PROTOTYPES -DSK_IGNORE_LINEONLY_AA_CONVEX_PATH_OPTS -DSKIA_DLL -DGR_GL_IGNORE_ES3_MSAA=0 -DSK_SUPPORT_GPU=1 -DGTEST_HAS_POSIX_RE=0 -DGTEST_LANG_CXX11=0 -DGTEST_HAS_RTTI=0 -DU_USING_ICU_NAMESPACE=0 -DU_ENABLE_DYLOAD=0 -DUSE_LIBJPEG_TURBO=1 -DCHROME_PNG_WRITE_SUPPORT -DPNG_USER_CONFIG -DV8_SHARED -DUSING_V8_SHARED -DMOJO_USE_SYSTEM_IMPL -D_DEBUG -DFEATURE_ENABLE_SSL -DFEATURE_ENABLE_VOICEMAIL -DEXPAT_RELATIVE_PATH -DGTEST_RELATIVE_PATH -DNO_MAIN_THREAD_WRAPPING -DNO_SOUND_SYSTEM -DLINUX -DWEBRTC_LINUX -DWEBRTC_POSIX -DGOOGLE_PROTOBUF_NO_RTTI -DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER -DPROTOBUF_USE_DLLS -DMESA_EGL_NO_X11_HEADERS -DWEBRTC_CHROMIUM_BUILD -DWEBRTC_POSIX -DWEBRTC_LINUX -I../.. -Igen -I/usr/include/nss -I/usr/include/nspr -I../../third_party/boringssl/src/include -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I../../third_party/khronos -I../../gpu -I../../skia/config -I../../skia/ext -I../../third_party/skia/include/c -I../../third_party/skia/include/config -I../../third_party/skia/include/core -I../../third_party/skia/include/effects -I../../third_party/skia/include/images -I../../third_party/skia/include/lazy -I../../third_party/skia/include/pathops -I../../third_party/skia/include/pdf -I../../third_party/skia/include/pipe -I../../third_party/skia/include/ports -I../../third_party/skia/include/utils -I../../third_party/skia/include/gpu -I../../third_party/skia/src/gpu -I../../third_party/libwebp -I../../testing/gtest/include -I../../third_party/WebKit -I../../third_party/icu/source/common -I../../third_party/icu/source/i18n -I../../third_party/npapi -I../../third_party/npapi/bindings -I../../third_party/libjpeg_turbo -I../../third_party/iccjpeg -I../../third_party/libpng -I../../third_party/zlib -I../../third_party/ots/include -I../../third_party/qcms/src -I../../v8/include -I../../third_party/mojo/src -Igen/third_party/mojo/src -I../../third_party/webrtc/overrides -I../../third_party/libjingle/overrides -I../../third_party/libjingle/source -I../../testing/gtest/include -I../../third_party -I../../third_party/protobuf/src -Igen/protoc_out -I../../third_party/protobuf/src -I../../third_party/protobuf -Igen -I../../third_party/mesa/src/include -I../../third_party/libyuv -I../../third_party/libyuv/include -I../../third_party/webrtc/overrides -I../../third_party -I../../third_party/webrtc/modules/interface -I../../third_party/webrtc/modules/audio_device/include -I../../third_party/webrtc/modules/audio_device/dummy -I../../third_party/libvpx/source/libvpx -fno-strict-aliasing --param=ssp-buffer-size=4 -fstack-protector -m64 -march=x86-64 -funwind-tables -fPIC -pipe -pthread -B../../third_party/binutils/Linux_x64/Release/bin -fcolor-diagnostics -Wall -Wsign-compare -Wendif-labels -Werror -Wno-missing-field-initializers -Wno-unused-parameter -Wno-c++11-narrowing -Wno-char-subscripts -Wno-covered-switch-default -Wno-deprecated-register -Wno-unneeded-internal-declaration -Wno-reserved-user-defined-literal -Wno-inconsistent-missing-override -Wno-shift-negative-value -fvisibility=hidden -Xclang -load -Xclang ../../third_party/llvm-build/Release+Asserts/lib/libFindBadConstructs.so -Xclang -plugin-arg-find-bad-constructs -Xclang check-templates -Xclang -add-plugin -Xclang find-bad-constructs -Wheader-hygiene -Wstring-conversion -O0 -g2 -gsplit-dwarf -Wno-header-guard -Wno-incompatible-pointer-types -Wthread-safety -fno-threadsafe-statics -fvisibility-inlines-hidden -Wno-undefined-bool-conversion -Wno-tautological-undefined-compare -std=gnu++11 -fno-rtti -fno-exceptions -c ../../content/renderer/usb/web_usb_client_impl.cc -o obj/content/renderer/renderer/web_usb_client_impl.o
In file included from ../../content/renderer/usb/web_usb_client_impl.cc:14:
../../content/renderer/usb/web_usb_device_impl.h:17:10: fatal error: 'third_party/mojo/src/mojo/public/cpp/bindings/error_handler.h' file not found
#include "third_party/mojo/src/mojo/public/cpp/bindings/error_handler.h"

Original issue's description:
> Update mojo sdk to rev c02a28868825edfa57ab77947b8cb15e741c5598
>
> This updates lots of code which was missing an include of
> mojo/public/cpp/bindings/binding.h (which used to be included
> transitively from mojom-generated headers), and gets rid of
> references to mojo::ErrorHandler.
>
> BUG=None
> TBR=jam@chromium.org,ben@chromium.org
> TBR=mfoltz@chromium.org
> TBR=mek@chromium.org
> TBR=xhwang@chromium.org
> TBR=shess@chromium.org
>
> Committed: https://crrev.com/0b56a692d5c342a7093c361ff6ccb464c9d54947
> Cr-Commit-Position: refs/heads/master@{#344957}

TBR=ben@chromium.org,jam@chromium.org,rockot@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=None

Review URL: https://codereview.chromium.org/1311613002

Cr-Commit-Position: refs/heads/master@{#344959}
2015-08-22 03:03:25 +00:00
0b56a692d5 Update mojo sdk to rev c02a28868825edfa57ab77947b8cb15e741c5598
This updates lots of code which was missing an include of
mojo/public/cpp/bindings/binding.h (which used to be included
transitively from mojom-generated headers), and gets rid of
references to mojo::ErrorHandler.

BUG=None
TBR=jam@chromium.org,ben@chromium.org
TBR=mfoltz@chromium.org
TBR=mek@chromium.org
TBR=xhwang@chromium.org
TBR=shess@chromium.org

Review URL: https://codereview.chromium.org/1296453004

Cr-Commit-Position: refs/heads/master@{#344957}
2015-08-22 02:46:16 +00:00
c9e80ae207 [sql] Record memory usage at various periods after startup.
This will be used to track improvements occuring from enabling
memory-mapped I/O.

BUG=489784

Review URL: https://codereview.chromium.org/1283033004

Cr-Commit-Position: refs/heads/master@{#343100}
2015-08-12 21:40:11 +00:00
83dc1610d1 Remove remaining legacy SplitString calls.
TBR=zelidrag@chromium.org (chromeos)

Review URL: https://codereview.chromium.org/1284833004

Cr-Commit-Position: refs/heads/master@{#342983}
2015-08-12 07:31:56 +00:00
8e2106dd88 Convert remaining StringToLowerASCII to ToLowerASCII.
Remove StringToLowerASCII. This removes the template and makes a consistent call that can take a string piece.

http_response_headers.cc in HttpResponseHeaders::RemoveHeaderLine there seemed to be a bug where it did
  std::string old_header_name_lowercase(name);
where it actually meant
  std::string old_header_name_lowercase(old_header_name);
I fixed this.

There were a number of cases where url.host() or url.scheme() was passed to ToLowerASCII. These are already guaranteed lower-case, so I removed the call.

There were a number of cases in net that did return ToLowerASCII().c_str() when the return type is a std::string, which is unnecessary and wasteful. I removed the c_str() call.

NOPRESUBMIT=true
(for touching code with wstrings)

Review URL: https://codereview.chromium.org/1282363003

Cr-Commit-Position: refs/heads/master@{#342869}
2015-08-11 19:31:27 +00:00
jam
3ec0456f66 Fix Mandoline apptests on Windows.
BUG=516862,517175

Review URL: https://codereview.chromium.org/1272373004

Cr-Commit-Position: refs/heads/master@{#342056}
2015-08-06 04:03:29 +00:00
ae9604308c HistogramTester::GetHistogramSamplesSinceCreation never returns null
Currently, GetHistogramSamplesSinceCreation can return null if no histogram was generated. But that depends also on tests run prior to the current test. This CL changes this to returning empty samples instead, so that independently of previously run tests, the current test always gets the same response even if it does not generate any histograms.

BUG=473689

Review URL: https://codereview.chromium.org/1264123002

Cr-Commit-Position: refs/heads/master@{#341498}
2015-08-03 08:13:41 +00:00
289e8086d8 Remove myself from OWNERS files.
BUG=
TBR=robertshield, cbentzel, siggi, caitkp, jochen, shess

Review URL: https://codereview.chromium.org/1256823006

Cr-Commit-Position: refs/heads/master@{#341352}
2015-07-31 17:02:09 +00:00
177c1e29c1 Add GN isolate support for a bunch of unittests.
This enables the following tests to be run under
swarming on a GN bot:

- angle_unittests
- accessibility_unittests
- compositor_unittests
- cc_unittests
- ipc_tests
- gl_unittests
- sandbox_linux_unittests
- gn_unittests
- skia_unittests
- sql_unittests
- url_unittests

R=brettw@chromium.org, maruel@chromium.org
BUG=504079
CQ_EXTRA_TRYBOTS=tryserver.chromium.mac:mac_chromium_gn_rel

Review URL: https://codereview.chromium.org/1248673005

Cr-Commit-Position: refs/heads/master@{#339973}
2015-07-22 23:08:59 +00:00
erg
e3ec7c45bd mandoline filesystem: Reland "Save cookie data to the mojo:filesystem."
In addition to saving the cookies to the file system service (per the
previous patch), we also modify the filesystem service to take a
client. When the shell connection to the file system service is broken,
instead of quitting immediately, we broadcast a shutdown notification to
all of our clients, and wait for them to close the directory objects.

This solves the timing problems during shutdown.

BUG=493311
TBR=shess@chromium.org
R=jam@chromium.org,erikwright@chromium.org
First Review URL: https://codereview.chromium.org/1179413010

Review URL: https://codereview.chromium.org/1231493002

Cr-Commit-Position: refs/heads/master@{#338888}
2015-07-15 18:31:34 +00:00
d94a221477 Move JoinString to the base namespace.
Change "Separator" from string to StringPIece (most are constants). Remove char versions for symmetry with SplitString.

Update callers who pass empty separators to use a base::StringPiece()

Change chromecast/base/metrics/cast_metrics_helper.cc to not use JoinString at all and just append to the output (code is simpler and faster).

TBR=zelidrag@chromium.org for chromeos

Committed: https://crrev.com/0eabfa001ba06d3c66992b95b69a988ef0633992
Cr-Commit-Position: refs/heads/master@{#338762}

patch from issue 1223153003 at patchset 160001 (http://crrev.com/1223153003#ps160001)

BUG=

Review URL: https://codereview.chromium.org/1230243005

Cr-Commit-Position: refs/heads/master@{#338819}
2015-07-15 05:20:15 +00:00
b8788460ce Revert of Move JoinString to the base namespace (patchset id:160001 of https://codereview.chromium.org/1223153003/)
Reason for revert:
The compilation failure with the following error message:

FAILED: /b/build/goma/gomacc ../../third_party/llvm-build/Release+Asserts/bin/clang++ -MMD -MF obj/chrome/common/common.chrome_content_client.o.d -DV8_DEPRECATION_WARNINGS -D_FILE_OFFSET_BITS=64 -DGOOGLE_CHROME_BUILD -DCR_CLANG_REVISION=241602-3 -DENABLE_RLZ -DUI_COMPOSITOR_IMAGE_TRANSPORT -DUSE_AURA=1 -DUSE_ASH=1 -DUSE_PANGO=1 -DUSE_CAIRO=1 -DUSE_DEFAULT_RENDER_THEME=1 -DUSE_LIBJPEG_TURBO=1 -DUSE_X11=1 -DIMAGE_LOADER_EXTENSION=1 -DENABLE_REMOTING=1 -DENABLE_WEBRTC=1 -DENABLE_MEDIA_ROUTER=1 -DUSE_PROPRIETARY_CODECS -DENABLE_PEPPER_CDMS -DENABLE_CONFIGURATION_POLICY -DENABLE_NOTIFICATIONS -DENABLE_HIDPI=1 -DENABLE_TOPCHROME_MD=1 -DUSE_UDEV -DENABLE_TASK_MANAGER=1 -DENABLE_EXTENSIONS=1 -DENABLE_PLUGINS=1 -DENABLE_SESSION_SERVICE=1 -DENABLE_THEMES=1 -DENABLE_AUTOFILL_DIALOG=1 -DENABLE_PROD_WALLET_SERVICE=1 -DENABLE_BACKGROUND=1 -DENABLE_GOOGLE_NOW=1 -DCLD_VERSION=2 -DENABLE_PRINTING=1 -DENABLE_PRINT_PREVIEW=1 -DENABLE_SPELLCHECK=1 -DENABLE_CAPTIVE_PORTAL_DETECTION=1 -DENABLE_APP_LIST=1 -DENABLE_SUPERVISED_USERS=1 -DENABLE_MDNS=1 -DENABLE_SERVICE_DISCOVERY=1 -DENABLE_HANGOUT_SERVICES_EXTENSION=1 -DV8_USE_EXTERNAL_STARTUP_DATA -DFULL_SAFE_BROWSING -DSAFE_BROWSING_CSD -DSAFE_BROWSING_DB_LOCAL -DSAFE_BROWSING_SERVICE -DGL_GLEXT_PROTOTYPES -DMOJO_USE_SYSTEM_IMPL -DPROTOBUF_USE_DLLS -DGOOGLE_PROTOBUF_NO_RTTI -DGOOGLE_PROTOBUF_NO_STATIC_INITIALIZER -DSK_SUPPORT_GPU=1 -DSK_IGNORE_LINEONLY_AA_CONVEX_PATH_OPTS -DSK_LEGACY_SKPOINT3_CTORS -DU_USING_ICU_NAMESPACE=0 -DU_ENABLE_DYLOAD=0 -DU_STATIC_IMPLEMENTATION -DLIBXML_STATIC -DUSE_LIBPCI=1 -DUSE_GLIB=1 -DUSE_NSS_CERTS=1 -DOS_CHROMEOS=1 -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -DNDEBUG -DNO_UNWIND_TABLES -DOFFICIAL_BUILD -DNVALGRIND -DDYNAMIC_ANNOTATIONS_ENABLED=0 -D_FORTIFY_SOURCE=2 -Igen -I../.. -I../../skia/config -I../../third_party/khronos -I../../gpu -I../../third_party/WebKit/Source -Igen/protoc_out -I../../third_party/protobuf -I../../third_party/protobuf/src -Igen/chrome -I../../third_party/WebKit -I../../third_party/mojo/src -Igen/third_party/mojo/src -I../../net/third_party/nss/ssl -I../../skia/ext -I../../third_party/skia/include/core -I../../third_party/skia/include/effects -I../../third_party/skia/include/pdf -I../../third_party/skia/include/gpu -I../../third_party/skia/include/lazy -I../../third_party/skia/include/pathops -I../../third_party/skia/include/pipe -I../../third_party/skia/include/ports -I../../third_party/skia/include/utils -I../../third_party/icu/source/i18n -I../../third_party/icu/source/common -I../../third_party/libxml/linux/include -I../../third_party/libxml/src/include -Igen/ui/resources -Igen/extensions -Igen/extensions/strings -I../../third_party/re2 -Igen/policy -Werror -pthread -fno-strict-aliasing -Wall -Wno-unused-parameter -Wno-missing-field-initializers -fvisibility=hidden -pipe -fPIC -Wno-reserved-user-defined-literal -Xclang -load -Xclang /b/build/slave/google-chrome-rel-chromeos/build/src/third_party/llvm-build/Release+Asserts/lib/libFindBadConstructs.so -Xclang -add-plugin -Xclang find-bad-constructs -Xclang -plugin-arg-find-bad-constructs -Xclang check-templates -fcolor-diagnostics -g -B/b/build/slave/google-chrome-rel-chromeos/build/src/third_party/binutils/Linux_x64/Release/bin -Wheader-hygiene -Wno-char-subscripts -Wno-unneeded-internal-declaration -Wno-covered-switch-default -Wstring-conversion -Wno-c++11-narrowing -Wno-deprecated-register -Wno-inconsistent-missing-override -Wexit-time-destructors -Wno-shift-negative-value -pthread -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/nss -I/usr/include/nspr -Wno-header-guard -m64 -march=x86-64 -O2 -fno-ident -fdata-sections -ffunction-sections -fno-unwind-tables -fno-asynchronous-unwind-tables -fno-exceptions -fno-rtti -fno-threadsafe-statics -fvisibility-inlines-hidden -Wsign-compare -std=gnu++11  -c ../../chrome/common/chrome_content_client.cc -o obj/chrome/common/common.chrome_content_client.o
../../chrome/common/chrome_content_client.cc:193:34: error: no matching function for call to 'JoinString'
      std::string codec_string = base::JoinString(
                                 ^~~~~~~~~~~~~~~~

Original issue's description:
> Move JoinString to the base namespace.
>
> Change "Separator" from string to StringPIece (most are constants). Remove char versions for symmetry with SplitString.
>
> Update callers who pass empty separators to use a base::StringPiece()
>
> Change chromecast/base/metrics/cast_metrics_helper.cc to not use JoinString at all and just append to the output (code is simpler and faster).
>
> TBR=zelidrag@chromium.org for chromeos
>
> Committed: https://crrev.com/0eabfa001ba06d3c66992b95b69a988ef0633992
> Cr-Commit-Position: refs/heads/master@{#338762}

TBR=jam@chromium.org,zelidrag@chromium.org,brettw@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/1237873004

Cr-Commit-Position: refs/heads/master@{#338770}
2015-07-14 23:42:32 +00:00
0eabfa001b Move JoinString to the base namespace.
Change "Separator" from string to StringPIece (most are constants). Remove char versions for symmetry with SplitString.

Update callers who pass empty separators to use a base::StringPiece()

Change chromecast/base/metrics/cast_metrics_helper.cc to not use JoinString at all and just append to the output (code is simpler and faster).

TBR=zelidrag@chromium.org for chromeos

Review URL: https://codereview.chromium.org/1223153003

Cr-Commit-Position: refs/heads/master@{#338762}
2015-07-14 22:43:54 +00:00