WebSQL: Initialize SQLite via //sql.

Chrome uses SQLite via the high-level API in //sql, with the notable
exception of Blink's WebSQL implementation. This is for historical
reasons -- WebSQL was implemented before the Blink/WebKit fork, so it
was unacceptable for the WebSQL implementation to depend on code in the
Chromium source tree.

In the long run (assuming that WebSQL doesn't go away completely) we
want WebSQL to also use SQLite via //sql. This CL makes the first step,
by routing SQLite initialization via //sql, instead of calling the
library directly.

This CL also fixes up Blink's dependencies on SQLite. Blink core does
not depend on SQLite, and the only module depending on it is WebSQL.

Bug: 807093
Change-Id: Iae6a02e5b0488051853f75dcb397e7c68ffc961b
Reviewed-on: https://chromium-review.googlesource.com/894692
Commit-Queue: Victor Costan <pwnall@chromium.org>
Reviewed-by: Chris Mumford <cmumford@chromium.org>
Reviewed-by: Daniel Cheng <dcheng@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Cr-Commit-Position: refs/heads/master@{#535528}
diff --git a/PRESUBMIT.py b/PRESUBMIT.py
index 587dcb0..22961a3 100644
--- a/PRESUBMIT.py
+++ b/PRESUBMIT.py
@@ -456,6 +456,18 @@
       False,
       (),
     ),
+    (
+      'sqlite3_initialize',
+      (
+        'Instead of sqlite3_initialize, depend on //sql, ',
+        '#include "sql/initialize.h" and use sql::EnsureSqliteInitialized().',
+      ),
+      True,
+      (
+        r'^sql/initialization\.(cc|h)$',
+        r'^third_party/sqlite/.*\.(c|cc|h)$',
+      ),
+    ),
 )