diff --git a/patch/patch.cfg b/patch/patch.cfg index a8bd06470..632f560dd 100644 --- a/patch/patch.cfg +++ b/patch/patch.cfg @@ -23,9 +23,14 @@ patches = [ }, { # https://bugs.webkit.org/show_bug.cgi?id=73273 - 'name': 'v8_custom', + 'name': 'webcore_v8_custom', 'path': '../third_party/WebKit/Source/WebCore/bindings/v8/custom/' }, + { + # https://bugs.webkit.org/show_bug.cgi?id=73325 + 'name': 'webcore_subresloader', + 'path': '../third_party/WebKit/Source/WebCore/loader/', + }, { # http://code.google.com/p/chromiumembedded/issues/detail?id=364 'name': 'spi_webcore_364', diff --git a/patch/patches/webcore_subresloader.patch b/patch/patches/webcore_subresloader.patch new file mode 100644 index 000000000..ed616cda2 --- /dev/null +++ b/patch/patches/webcore_subresloader.patch @@ -0,0 +1,15 @@ +Index: SubresourceLoader.cpp +=================================================================== +--- SubresourceLoader.cpp (revision 100508) ++++ SubresourceLoader.cpp (working copy) +@@ -239,6 +239,10 @@ + LOG(ResourceLoading, "Received '%s'.", m_resource->url().string().latin1().data()); + + RefPtr protect(this); ++ // If a load is canceled m_resource might be released in the call hierarchy originating ++ // from m_resource->data(). This causes the subsequent call to m_reosurce->finish() to crash ++ // unless m_resource is protected. ++ CachedResourceHandle protect_res(m_resource); + m_state = Finishing; + m_resource->setLoadFinishTime(finishTime); + m_resource->data(resourceData(), true); diff --git a/patch/patches/v8_custom.patch b/patch/patches/webcore_v8_custom.patch similarity index 100% rename from patch/patches/v8_custom.patch rename to patch/patches/webcore_v8_custom.patch