Index: content/browser/appcache/appcache_interceptor.cc |
diff --git a/content/browser/appcache/appcache_interceptor.cc b/content/browser/appcache/appcache_interceptor.cc |
index 81985fe704aaed15465eb0122226eba4586bae78..7c43c10c3fb10772f9879d8dc166a431e9d544d7 100644 |
--- a/content/browser/appcache/appcache_interceptor.cc |
+++ b/content/browser/appcache/appcache_interceptor.cc |
@@ -9,6 +9,9 @@ |
#include "content/browser/appcache/appcache_request_handler.h" |
#include "content/browser/appcache/appcache_service_impl.h" |
#include "content/browser/appcache/appcache_url_request_job.h" |
+#include "content/browser/appcache/chrome_appcache_service.h" |
+#include "content/browser/bad_message.h" |
+#include "content/browser/loader/resource_message_filter.h" |
#include "content/common/appcache_interfaces.h" |
#include "net/url_request/url_request.h" |
@@ -76,10 +79,16 @@ void AppCacheInterceptor::PrepareForCrossSiteTransfer( |
void AppCacheInterceptor::CompleteCrossSiteTransfer( |
net::URLRequest* request, |
int new_process_id, |
- int new_host_id) { |
+ int new_host_id, |
+ ResourceMessageFilter* filter) { |
AppCacheRequestHandler* handler = GetHandler(request); |
if (!handler) |
return; |
+ if (!handler->SanityCheckIsSameService(filter->appcache_service())) { |
+ bad_message::ReceivedBadMessage(filter, |
+ bad_message::ACI_WRONG_STORAGE_PARITION); |
nasko
2016/01/15 19:38:24
You have a missing T in PARTITION.
|
+ return; |
+ } |
DCHECK_NE(kAppCacheNoHostId, new_host_id); |
handler->CompleteCrossSiteTransfer(new_process_id, |
new_host_id); |