1 // Copyright 2014 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "config.h" 6 #include "Request.h" 7 8 #include "bindings/v8/Dictionary.h" 9 #include "core/dom/DOMURLUtilsReadOnly.h" 10 #include "modules/serviceworkers/RequestInit.h" 11 #include "platform/NotImplemented.h" 12 #include "platform/network/ResourceRequest.h" 13 #include "public/platform/WebServiceWorkerRequest.h" 14 15 namespace WebCore { 16 17 PassRefPtr<Request> Request::create() 18 { 19 return create(Dictionary()); 20 } 21 22 PassRefPtr<Request> Request::create(const Dictionary& requestInit) 23 { 24 return adoptRef(new Request(RequestInit(requestInit))); 25 } 26 27 PassRefPtr<Request> Request::create(const blink::WebServiceWorkerRequest& webRequest) 28 { 29 return adoptRef(new Request(webRequest)); 30 } 31 32 void Request::setURL(const String& value) 33 { 34 m_url = KURL(ParsedURLString, value); 35 } 36 37 void Request::setMethod(const String& value) 38 { 39 m_method = value; 40 } 41 42 String Request::origin() const 43 { 44 return DOMURLUtilsReadOnly::origin(m_url); 45 } 46 47 PassOwnPtr<ResourceRequest> Request::createResourceRequest() const 48 { 49 OwnPtr<ResourceRequest> request = adoptPtr(new ResourceRequest(m_url)); 50 request->setHTTPMethod("GET"); 51 // FIXME: Fill more info. 52 return request.release(); 53 } 54 55 Request::Request(const RequestInit& requestInit) 56 : m_url(KURL(ParsedURLString, requestInit.url)) 57 , m_method(requestInit.method) 58 , m_headers(requestInit.headers) 59 { 60 ScriptWrappable::init(this); 61 62 if (!m_headers) 63 m_headers = HeaderMap::create(); 64 } 65 66 Request::Request(const blink::WebServiceWorkerRequest& webRequest) 67 : m_url(webRequest.url()) 68 , m_method(webRequest.method()) 69 , m_headers(HeaderMap::create(webRequest.headers())) 70 { 71 ScriptWrappable::init(this); 72 } 73 74 } // namespace WebCore 75