From 21af053df28fbbfaeda174ac50539ca6d181934a Mon Sep 17 00:00:00 2001 From: Kevin Mihelich Date: Thu, 9 Aug 2012 13:29:48 +0000 Subject: [PATCH] extra/chromium to 21.0.1180.75-1 --- extra/chromium/PKGBUILD | 10 +++++-- ...21.0.1180.57-fix-crash-in-task-queue.patch | 27 +++++++++++++++++++ 2 files changed, 35 insertions(+), 2 deletions(-) create mode 100644 extra/chromium/chromium-21.0.1180.57-fix-crash-in-task-queue.patch diff --git a/extra/chromium/PKGBUILD b/extra/chromium/PKGBUILD index 949fd91f3..3e84d7dfa 100644 --- a/extra/chromium/PKGBUILD +++ b/extra/chromium/PKGBUILD @@ -15,7 +15,7 @@ buildarch=4 pkgname=chromium -pkgver=21.0.1180.57 +pkgver=21.0.1180.75 pkgrel=1 pkgdesc="The open-source project behind Google Chrome, an attempt at creating a safer, faster, and more stable browser" arch=('i686' 'x86_64') @@ -39,13 +39,15 @@ source=(http://commondatastorage.googleapis.com/chromium-browser-official/$pkgna chromium.sh chromium-20.0.1132.57-glib-2.16-use-siginfo_t.patch chromium-20.0.1132.57-bison-2.6-fix.patch + chromium-21.0.1180.57-fix-crash-in-task-queue.patch chromium-ppapi-r0.patch) -sha256sums=('311ba95249ea994747355596885c9ad583e55bcbe7220a47ea096898e7aeb145' +sha256sums=('8ee09c680d254a41fda99713b69f541e50f1e7d555b94c6af517e25a11c8830e' '09bfac44104f4ccda4c228053f689c947b3e97da9a4ab6fa34ce061ee83d0322' '478340d5760a9bd6c549e19b1b5d1c5b4933ebf5f8cfb2b3e2d70d07443fe232' '4999fded897af692f4974f0a3e3bbb215193519918a1fa9b31ed51e74a2dccb9' 'c1baf14121502efbc2a31b64029dcafa0e28ca5b71ad0e28a3c6342d18198615' 'd7aecc17e1eb582fe791c3e5fb2ca3f0efcb9bf5379309c1c27be35be4363bba' + 'cbd04d9a7cfda7e9c39fa215da897991a410fb59bf0f664abf93ab2c38689898' '1f4b57670d317959bc2dc60e5d2a44aa8fc6028f7ed540cdb502fa0aa99c81bd') build() { @@ -59,6 +61,10 @@ build() { patch -d third_party/WebKit -Np1 -i \ "$srcdir/chromium-20.0.1132.57-bison-2.6-fix.patch" + # Fix crash in LazyBackgroundTaskQueue::ProcessPendingTasks + # http://crbug.com/138790 + patch -Np1 -i "$srcdir/chromium-21.0.1180.57-fix-crash-in-task-queue.patch" + # Fix build without NaCl glibc toolchain (patch from Gentoo) patch -Np0 -i "$srcdir/chromium-ppapi-r0.patch" diff --git a/extra/chromium/chromium-21.0.1180.57-fix-crash-in-task-queue.patch b/extra/chromium/chromium-21.0.1180.57-fix-crash-in-task-queue.patch new file mode 100644 index 000000000..081293f29 --- /dev/null +++ b/extra/chromium/chromium-21.0.1180.57-fix-crash-in-task-queue.patch @@ -0,0 +1,27 @@ +Index: chrome/browser/extensions/lazy_background_task_queue.cc +diff --git a/chrome/browser/extensions/lazy_background_task_queue.cc b/chrome/browser/extensions/lazy_background_task_queue.cc +index b98d44626be848a3a2db04c60ac4cb11ea981243..49bc2229325ce5ba975de4d76347a388a598e86d 100644 +--- a/chrome/browser/extensions/lazy_background_task_queue.cc ++++ b/chrome/browser/extensions/lazy_background_task_queue.cc +@@ -115,14 +115,16 @@ void LazyBackgroundTaskQueue::ProcessPendingTasks( + return; + } + +- PendingTasksList* tasks = map_it->second.get(); +- for (PendingTasksList::const_iterator it = tasks->begin(); +- it != tasks->end(); ++it) { ++ // Swap the pending tasks to a temporary, to avoid problems if the task ++ // list is modified during processing. ++ PendingTasksList tasks; ++ tasks.swap(*map_it->second); ++ for (PendingTasksList::const_iterator it = tasks.begin(); ++ it != tasks.end(); ++it) { + it->Run(host); + } + +- tasks->clear(); +- pending_tasks_.erase(map_it); ++ pending_tasks_.erase(key); + + // Balance the keepalive in AddPendingTask. Note we don't do this on a + // failure to load, because the keepalive count is reset in that case.