[EFL][WK2] Implemented color picker API
[WebKit-https.git] / Source / WebKit2 / UIProcess / API / efl / ewk_url_response.cpp
1 /*
2  * Copyright (C) 2012 Intel Corporation. All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions
6  * are met:
7  * 1. Redistributions of source code must retain the above copyright
8  *    notice, this list of conditions and the following disclaimer.
9  * 2. Redistributions in binary form must reproduce the above copyright
10  *    notice, this list of conditions and the following disclaimer in the
11  *    documentation and/or other materials provided with the distribution.
12  *
13  * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
14  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
15  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
17  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
18  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
19  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
20  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
21  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
22  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
23  * THE POSSIBILITY OF SUCH DAMAGE.
24  */
25
26 #include "config.h"
27 #include "ewk_url_response.h"
28
29 #include "WKAPICast.h"
30 #include "WKEinaSharedString.h"
31 #include "WKURLResponse.h"
32 #include "ewk_url_response_private.h"
33 #include <wtf/text/CString.h>
34
35 using namespace WebKit;
36
37 /**
38  * \struct  _Ewk_Url_Response
39  * @brief   Contains the URL response data.
40  */
41 struct _Ewk_Url_Response {
42     unsigned int __ref; /**< the reference count of the object */
43     WebCore::ResourceResponse coreResponse;
44
45     WKEinaSharedString url;
46     WKEinaSharedString mimeType;
47
48     _Ewk_Url_Response(const WebCore::ResourceResponse& _coreResponse)
49         : __ref(1)
50         , coreResponse(_coreResponse)
51         , url(AdoptWK, WKURLResponseCopyURL(toAPI(coreResponse)))
52         , mimeType(AdoptWK, WKURLResponseCopyMIMEType(toAPI(coreResponse)))
53     { }
54
55     ~_Ewk_Url_Response()
56     {
57         ASSERT(!__ref);
58     }
59 };
60
61 Ewk_Url_Response* ewk_url_response_ref(Ewk_Url_Response* response)
62 {
63     EINA_SAFETY_ON_NULL_RETURN_VAL(response, 0);
64     ++response->__ref;
65
66     return response;
67 }
68
69 void ewk_url_response_unref(Ewk_Url_Response* response)
70 {
71     EINA_SAFETY_ON_NULL_RETURN(response);
72
73     if (--response->__ref)
74         return;
75
76     delete response;
77 }
78
79 const char* ewk_url_response_url_get(const Ewk_Url_Response* response)
80 {
81     EINA_SAFETY_ON_NULL_RETURN_VAL(response, 0);
82
83     return response->url;
84 }
85
86 int ewk_url_response_status_code_get(const Ewk_Url_Response* response)
87 {
88     EINA_SAFETY_ON_NULL_RETURN_VAL(response, 0);
89
90     return response->coreResponse.httpStatusCode();
91 }
92
93 const char* ewk_url_response_mime_type_get(const Ewk_Url_Response* response)
94 {
95     EINA_SAFETY_ON_NULL_RETURN_VAL(response, 0);
96
97     return response->mimeType;
98 }
99
100 unsigned long ewk_url_response_content_length_get(const Ewk_Url_Response* response)
101 {
102     EINA_SAFETY_ON_NULL_RETURN_VAL(response, 0);
103
104     return response->coreResponse.expectedContentLength();
105 }
106
107 /**
108  * @internal
109  * Constructs a Ewk_Url_Response from a WebCore::ResourceResponse.
110  */
111 Ewk_Url_Response* ewk_url_response_new(const WebCore::ResourceResponse& coreResponse)
112 {
113     return new Ewk_Url_Response(coreResponse);
114 }