| 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);
|
| + return;
|
| + }
|
| DCHECK_NE(kAppCacheNoHostId, new_host_id);
|
| handler->CompleteCrossSiteTransfer(new_process_id,
|
| new_host_id);
|
|
|