Index: third_party/sqlite/patches/0004-Modify-default-VFS-to-support-WebDatabase.patch |
diff --git a/third_party/sqlite/patches/0004-Modify-default-VFS-to-support-WebDatabase.patch b/third_party/sqlite/patches/0004-Modify-default-VFS-to-support-WebDatabase.patch |
deleted file mode 100644 |
index b4b3ade3496acd035f6a6472dbbc25494c123b32..0000000000000000000000000000000000000000 |
--- a/third_party/sqlite/patches/0004-Modify-default-VFS-to-support-WebDatabase.patch |
+++ /dev/null |
@@ -1,177 +0,0 @@ |
-From 0a5da8cd79a6b502edc01c40037ae418b2d5c828 Mon Sep 17 00:00:00 2001 |
-From: dumi <dumi@chromium.org> |
-Date: Mon, 20 Jul 2009 23:40:51 +0000 |
-Subject: [PATCH 04/10] Modify default VFS to support WebDatabase. |
- |
-The renderer WebDatabase implementation needs to broker certain requests |
-to the browser. This modifies SQLite to allow monkey-patching the VFS |
-to support this. |
- |
-NOTE(shess): This patch relies on core SQLite implementation details |
-remaining unchanged. When importing a new version of SQLite, pay very |
-close attention to whether the change is still doing what is intended. |
- |
-Original review URLs: |
-https://codereview.chromium.org/159044 |
-https://codereview.chromium.org/384075 |
-https://codereview.chromium.org/377039 |
-[Possibly not a complete list.] |
---- |
- third_party/sqlite/src/src/os_unix.c | 49 ++++++++++++++++++++++++++++++++++ |
- third_party/sqlite/src/src/os_win.c | 8 ++++++ |
- third_party/sqlite/src/src/sqlite.h.in | 23 ++++++++++++++++ |
- 3 files changed, 80 insertions(+) |
- |
-diff --git a/third_party/sqlite/src/src/os_unix.c b/third_party/sqlite/src/src/os_unix.c |
-index 791ba5d..fa85638 100644 |
---- a/third_party/sqlite/src/src/os_unix.c |
-+++ b/third_party/sqlite/src/src/os_unix.c |
-@@ -1297,6 +1297,12 @@ static int fileHasMoved(unixFile *pFile){ |
- return pFile->pInode!=0 && pFile->pId!=pFile->pInode->fileId.pId; |
- #else |
- struct stat buf; |
-+ |
-+ /* TODO(shess): This check doesn't work when the Chromium's WebDB code is |
-+ ** running in the sandbox. |
-+ */ |
-+ return 0; |
-+ |
- return pFile->pInode!=0 && |
- (osStat(pFile->zPath, &buf)!=0 || buf.st_ino!=pFile->pInode->fileId.ino); |
- #endif |
-@@ -5554,6 +5560,44 @@ static int findCreateFileMode( |
- } |
- |
- /* |
-+** Initialize |unixFile| internals of |file| on behalf of chromiumOpen() in |
-+** WebDatabase SQLiteFileSystemPosix.cpp. Function is a subset of unixOpen(), |
-+** each duplicated piece is marked by "Duplicated in" comment in unixOpen(). |
-+*/ |
-+CHROMIUM_SQLITE_API |
-+int chromium_sqlite3_fill_in_unix_sqlite3_file(sqlite3_vfs* pVfs, |
-+ int fd, |
-+ sqlite3_file* pFile, |
-+ const char* zPath, |
-+ int noLock, |
-+ int flags) { |
-+ unixFile *p = (unixFile *)pFile; |
-+ const int eType = flags&0xFFFFFF00; /* Type of file to open */ |
-+ const int ctrlFlags = (noLock ? UNIXFILE_NOLOCK : 0); |
-+ int rc; |
-+ |
-+ memset(p, 0, sizeof(unixFile)); |
-+ |
-+ /* osStat() will not work in the sandbox, so findReusableFd() will always |
-+ ** fail, so directly include the failure-case setup then initialize pUnused. |
-+ */ |
-+ if( eType==SQLITE_OPEN_MAIN_DB ){ |
-+ p->pUnused = sqlite3_malloc(sizeof(*p->pUnused)); |
-+ if (!p->pUnused) { |
-+ return SQLITE_NOMEM; |
-+ } |
-+ p->pUnused->fd = fd; |
-+ p->pUnused->flags = flags; |
-+ } |
-+ |
-+ rc = fillInUnixFile(pVfs, fd, pFile, zPath, ctrlFlags); |
-+ if( rc!=SQLITE_OK ){ |
-+ sqlite3_free(p->pUnused); |
-+ } |
-+ return rc; |
-+} |
-+ |
-+/* |
- ** Open the file zPath. |
- ** |
- ** Previously, the SQLite OS layer used three functions in place of this |
-@@ -5654,6 +5698,7 @@ static int unixOpen( |
- sqlite3_randomness(0,0); |
- } |
- |
-+ /* Duplicated in chromium_sqlite3_fill_in_unix_sqlite3_file(). */ |
- memset(p, 0, sizeof(unixFile)); |
- |
- if( eType==SQLITE_OPEN_MAIN_DB ){ |
-@@ -5662,6 +5707,7 @@ static int unixOpen( |
- if( pUnused ){ |
- fd = pUnused->fd; |
- }else{ |
-+ /* Duplicated in chromium_sqlite3_fill_in_unix_sqlite3_file(). */ |
- pUnused = sqlite3_malloc64(sizeof(*pUnused)); |
- if( !pUnused ){ |
- return SQLITE_NOMEM; |
-@@ -5739,6 +5785,7 @@ static int unixOpen( |
- } |
- |
- if( p->pUnused ){ |
-+ /* Duplicated in chromium_sqlite3_fill_in_unix_sqlite3_file(). */ |
- p->pUnused->fd = fd; |
- p->pUnused->flags = flags; |
- } |
-@@ -5819,10 +5866,12 @@ static int unixOpen( |
- } |
- #endif |
- |
-+ /* Duplicated in chromium_sqlite3_fill_in_unix_sqlite3_file(). */ |
- rc = fillInUnixFile(pVfs, fd, pFile, zPath, ctrlFlags); |
- |
- open_finished: |
- if( rc!=SQLITE_OK ){ |
-+ /* Duplicated in chromium_sqlite3_fill_in_unix_sqlite3_file(). */ |
- sqlite3_free(p->pUnused); |
- } |
- return rc; |
-diff --git a/third_party/sqlite/src/src/os_win.c b/third_party/sqlite/src/src/os_win.c |
-index c54bfd6..00ad6fd 100644 |
---- a/third_party/sqlite/src/src/os_win.c |
-+++ b/third_party/sqlite/src/src/os_win.c |
-@@ -5639,4 +5639,12 @@ int sqlite3_os_end(void){ |
- return SQLITE_OK; |
- } |
- |
-+CHROMIUM_SQLITE_API |
-+void chromium_sqlite3_initialize_win_sqlite3_file(sqlite3_file* file, HANDLE handle) { |
-+ winFile* winSQLite3File = (winFile*)file; |
-+ memset(file, 0, sizeof(*file)); |
-+ winSQLite3File->pMethod = &winIoMethod; |
-+ winSQLite3File->h = handle; |
-+} |
-+ |
- #endif /* SQLITE_OS_WIN */ |
-diff --git a/third_party/sqlite/src/src/sqlite.h.in b/third_party/sqlite/src/src/sqlite.h.in |
-index 59b30cd..e5673fd 100644 |
---- a/third_party/sqlite/src/src/sqlite.h.in |
-+++ b/third_party/sqlite/src/src/sqlite.h.in |
-@@ -7411,6 +7411,29 @@ int sqlite3_strnicmp(const char *, const char *, int); |
- */ |
- int sqlite3_strglob(const char *zGlob, const char *zStr); |
- |
-+/* Begin WebDatabase patch for Chromium */ |
-+/* Expose some SQLite internals for the WebDatabase vfs. |
-+** DO NOT EXTEND THE USE OF THIS. |
-+*/ |
-+#ifndef CHROMIUM_SQLITE_API |
-+#define CHROMIUM_SQLITE_API SQLITE_API |
-+#endif |
-+#if defined(CHROMIUM_SQLITE_INTERNALS) |
-+#ifdef _WIN32 |
-+CHROMIUM_SQLITE_API |
-+void chromium_sqlite3_initialize_win_sqlite3_file(sqlite3_file* file, HANDLE handle); |
-+#else /* _WIN32 */ |
-+CHROMIUM_SQLITE_API |
-+int chromium_sqlite3_fill_in_unix_sqlite3_file(sqlite3_vfs* pVfs, |
-+ int fd, |
-+ sqlite3_file* pFile, |
-+ const char* zPath, |
-+ int noLock, |
-+ int flags); |
-+#endif /* _WIN32 */ |
-+#endif /* CHROMIUM_SQLITE_INTERNALS */ |
-+/* End WebDatabase patch for Chromium */ |
-+ |
- /* |
- ** CAPI3REF: String LIKE Matching |
- * |
--- |
-2.7.0 |
- |