| Index: Source/modules/serviceworkers/Cache.cpp
 | 
| diff --git a/Source/modules/serviceworkers/Cache.cpp b/Source/modules/serviceworkers/Cache.cpp
 | 
| index 0de7be13a0f0ad13824139799b4f8cbb41fbfa61..a1c4d8694c7cafba6ce2adaba371cf62efbffc6b 100644
 | 
| --- a/Source/modules/serviceworkers/Cache.cpp
 | 
| +++ b/Source/modules/serviceworkers/Cache.cpp
 | 
| @@ -371,6 +371,12 @@ ScriptPromise Cache::deleteImpl(ScriptState* scriptState, Request* request, cons
 | 
|  
 | 
|  ScriptPromise Cache::putImpl(ScriptState* scriptState, Request* request, Response* response)
 | 
|  {
 | 
| +    KURL url(KURL(), request->url());
 | 
| +    if (!url.protocolIsInHTTPFamily())
 | 
| +        return ScriptPromise::reject(scriptState, V8ThrowException::createTypeError("Request scheme '" + url.protocol() + "' is unsupported", scriptState->isolate()));
 | 
| +    if (request->method() != "GET")
 | 
| +        return ScriptPromise::reject(scriptState, V8ThrowException::createTypeError("Request method '" + request->method() + "' is unsupported", scriptState->isolate()));
 | 
| +
 | 
|      WebVector<WebServiceWorkerCache::BatchOperation> batchOperations(size_t(1));
 | 
|      batchOperations[0].operationType = WebServiceWorkerCache::OperationTypePut;
 | 
|      request->populateWebServiceWorkerRequest(batchOperations[0].request);
 | 
| 
 |