Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / Source / modules / serviceworkers / ResponseInit.h
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 #ifndef ResponseInit_h
6 #define ResponseInit_h
7
8 #include "bindings/core/v8/Dictionary.h"
9 #include "modules/serviceworkers/Headers.h"
10 #include "platform/heap/Handle.h"
11 #include "wtf/RefPtr.h"
12
13 namespace blink {
14
15 // FIXME: Use IDL dictionary instead of this class.
16 class ResponseInit {
17     STACK_ALLOCATED();
18 public:
19     ResponseInit()
20         : status(200)
21         , statusText("OK")
22     {
23     }
24     explicit ResponseInit(const Dictionary& options, ExceptionState& exceptionState)
25         : status(200)
26         , statusText("OK")
27     {
28         DictionaryHelper::get(options, "status", status);
29         // FIXME: Spec uses ByteString for statusText. http://crbug.com/347426
30         DictionaryHelper::get(options, "statusText", statusText);
31         DictionaryHelper::get(options, "headers", headers);
32         if (!headers) {
33             Vector<Vector<String> > headersVector;
34             if (DictionaryHelper::get(options, "headers", headersVector, exceptionState))
35                 headers = Headers::create(headersVector, exceptionState);
36             else
37                 DictionaryHelper::get(options, "headers", headersDictionary);
38         }
39     }
40
41     unsigned short status;
42     String statusText;
43     Member<Headers> headers;
44     Dictionary headersDictionary;
45 };
46
47 }
48
49 #endif // ResponseInit_h