[WK2] Build fix after r160464
[WebKit-https.git] / Source / WebKit2 / UIProcess / WebNetworkInfoManagerProxy.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 "WebNetworkInfoManagerProxy.h"
28
29 #if ENABLE(NETWORK_INFO)
30
31 #include "WebContext.h"
32 #include "WebNetworkInfo.h"
33 #include "WebNetworkInfoManagerMessages.h"
34 #include "WebNetworkInfoManagerProxyMessages.h"
35
36 namespace WebKit {
37
38 const char* WebNetworkInfoManagerProxy::supplementName()
39 {
40     return "WebNetworkInfoManagerProxy";
41 }
42
43 PassRefPtr<WebNetworkInfoManagerProxy> WebNetworkInfoManagerProxy::create(WebContext* context)
44 {
45     return adoptRef(new WebNetworkInfoManagerProxy(context));
46 }
47
48 WebNetworkInfoManagerProxy::WebNetworkInfoManagerProxy(WebContext* context)
49     : WebContextSupplement(context)
50     , m_isUpdating(false)
51 {
52     WebContextSupplement::context()->addMessageReceiver(Messages::WebNetworkInfoManagerProxy::messageReceiverName(), *this);
53 }
54
55 WebNetworkInfoManagerProxy::~WebNetworkInfoManagerProxy()
56 {
57 }
58
59 void WebNetworkInfoManagerProxy::initializeProvider(const WKNetworkInfoProviderBase* provider)
60 {
61     m_provider.initialize(provider);
62 }
63
64 void WebNetworkInfoManagerProxy::providerDidChangeNetworkInformation(const AtomicString& eventType, WebNetworkInfo* networkInformation)
65 {
66     if (!context())
67         return;
68
69     context()->sendToAllProcesses(Messages::WebNetworkInfoManager::DidChangeNetworkInformation(eventType, networkInformation->data()));
70 }
71
72 // WebContextSupplement
73
74 void WebNetworkInfoManagerProxy::contextDestroyed()
75 {
76     stopUpdating();
77 }
78
79 void WebNetworkInfoManagerProxy::processDidClose(WebProcessProxy*)
80 {
81     stopUpdating();
82 }
83
84 void WebNetworkInfoManagerProxy::refWebContextSupplement()
85 {
86     API::Object::ref();
87 }
88
89 void WebNetworkInfoManagerProxy::derefWebContextSupplement()
90 {
91     API::Object::deref();
92 }
93
94 void WebNetworkInfoManagerProxy::startUpdating()
95 {
96     if (m_isUpdating)
97         return;
98
99     m_provider.startUpdating(this);
100     m_isUpdating = true;
101 }
102
103 void WebNetworkInfoManagerProxy::stopUpdating()
104 {
105     if (!m_isUpdating)
106         return;
107
108     m_provider.stopUpdating(this);
109     m_isUpdating = false;
110 }
111
112 void WebNetworkInfoManagerProxy::getBandwidth(double& bandwidth)
113 {
114     bandwidth = m_provider.bandwidth(this);
115 }
116
117 void WebNetworkInfoManagerProxy::isMetered(bool& isMetered)
118 {
119     isMetered = m_provider.isMetered(this);
120 }
121
122 } // namespace WebKit
123
124 #endif // ENABLE(NETWORK_INFO)