Home | History | Annotate | Download | only in serviceworkers
      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