From 8f394315115952fc04ce2745f827bd799b6bb507 Mon Sep 17 00:00:00 2001 From: "commit-queue@webkit.org" Date: Thu, 5 Jul 2012 19:49:56 +0000 Subject: [PATCH] [WK2] Add C API for Battery Status API https://bugs.webkit.org/show_bug.cgi?id=90545 Patch by Christophe Dumez on 2012-07-05 Reviewed by Anders Carlsson. Add C API for WKBatteryManager and WKBatteryStatus so that clients can support the Battery Status API in WebKit2. * CMakeLists.txt: * GNUmakefile.list.am: * Target.pri: * UIProcess/API/C/WKBatteryManager.cpp: (WKBatteryManagerProviderDidChangeBatteryStatus): (WKBatteryManagerProviderUpdateBatteryStatus): * UIProcess/API/C/WKBatteryStatus.cpp: Copied from Source/WebKit2/UIProcess/API/C/WKBatteryManager.cpp. (WKBatteryStatusGetTypeID): (WKBatteryStatusCreate): * UIProcess/API/C/WKBatteryStatus.h: Copied from Source/WebKit2/UIProcess/API/C/WKBatteryManager.cpp. git-svn-id: http://svn.webkit.org/repository/webkit/trunk@121919 268f45cc-cd09-0410-ab3c-d52691b4dbfc --- Source/WebKit2/CMakeLists.txt | 1 + Source/WebKit2/ChangeLog | 22 +++++++++ Source/WebKit2/GNUmakefile.list.am | 3 ++ Source/WebKit2/Target.pri | 2 + .../WebKit2/UIProcess/API/C/WKBatteryManager.cpp | 22 +++++++++ Source/WebKit2/UIProcess/API/C/WKBatteryManager.h | 5 ++ Source/WebKit2/UIProcess/API/C/WKBatteryStatus.cpp | 55 ++++++++++++++++++++++ Source/WebKit2/UIProcess/API/C/WKBatteryStatus.h | 43 +++++++++++++++++ 8 files changed, 153 insertions(+) create mode 100644 Source/WebKit2/UIProcess/API/C/WKBatteryStatus.cpp create mode 100644 Source/WebKit2/UIProcess/API/C/WKBatteryStatus.h diff --git a/Source/WebKit2/CMakeLists.txt b/Source/WebKit2/CMakeLists.txt index 00e9e54..87333f4 100644 --- a/Source/WebKit2/CMakeLists.txt +++ b/Source/WebKit2/CMakeLists.txt @@ -269,6 +269,7 @@ SET(WebKit2_SOURCES UIProcess/API/C/WKBackForwardList.cpp UIProcess/API/C/WKBackForwardListItem.cpp UIProcess/API/C/WKBatteryManager.cpp + UIProcess/API/C/WKBatteryStatus.cpp UIProcess/API/C/WKContext.cpp UIProcess/API/C/WKCookieManager.cpp UIProcess/API/C/WKCredential.cpp diff --git a/Source/WebKit2/ChangeLog b/Source/WebKit2/ChangeLog index 863e8a5..a23d2c1 100644 --- a/Source/WebKit2/ChangeLog +++ b/Source/WebKit2/ChangeLog @@ -1,3 +1,25 @@ +2012-07-05 Christophe Dumez + + [WK2] Add C API for Battery Status API + https://bugs.webkit.org/show_bug.cgi?id=90545 + + Reviewed by Anders Carlsson. + + Add C API for WKBatteryManager and WKBatteryStatus + so that clients can support the Battery Status API + in WebKit2. + + * CMakeLists.txt: + * GNUmakefile.list.am: + * Target.pri: + * UIProcess/API/C/WKBatteryManager.cpp: + (WKBatteryManagerProviderDidChangeBatteryStatus): + (WKBatteryManagerProviderUpdateBatteryStatus): + * UIProcess/API/C/WKBatteryStatus.cpp: Copied from Source/WebKit2/UIProcess/API/C/WKBatteryManager.cpp. + (WKBatteryStatusGetTypeID): + (WKBatteryStatusCreate): + * UIProcess/API/C/WKBatteryStatus.h: Copied from Source/WebKit2/UIProcess/API/C/WKBatteryManager.cpp. + 2012-07-05 Sheriff Bot Unreviewed, rolling out r121899. diff --git a/Source/WebKit2/GNUmakefile.list.am b/Source/WebKit2/GNUmakefile.list.am index 0f20190..a715624 100644 --- a/Source/WebKit2/GNUmakefile.list.am +++ b/Source/WebKit2/GNUmakefile.list.am @@ -48,6 +48,7 @@ webkit2_h_api += \ $(WebKit2)/UIProcess/API/C/WKBackForwardList.h \ $(WebKit2)/UIProcess/API/C/WKBackForwardListItem.h \ $(WebKit2)/UIProcess/API/C/WKBatteryManager.h \ + $(WebKit2)/UIProcess/API/C/WKBatteryStatus.h \ $(WebKit2)/UIProcess/API/C/WKContext.h \ $(WebKit2)/UIProcess/API/C/WKContextPrivate.h \ $(WebKit2)/UIProcess/API/C/WKCookieManager.h \ @@ -514,6 +515,8 @@ webkit2_sources += \ Source/WebKit2/UIProcess/API/C/WKBackForwardListItem.h \ Source/WebKit2/UIProcess/API/C/WKBatteryManager.cpp \ Source/WebKit2/UIProcess/API/C/WKBatteryManager.h \ + Source/WebKit2/UIProcess/API/C/WKBatteryStatus.cpp \ + Source/WebKit2/UIProcess/API/C/WKBatteryStatus.h \ Source/WebKit2/UIProcess/API/C/WKContext.cpp \ Source/WebKit2/UIProcess/API/C/WKContext.h \ Source/WebKit2/UIProcess/API/C/WKContextPrivate.h \ diff --git a/Source/WebKit2/Target.pri b/Source/WebKit2/Target.pri index ee41947..21b15b0 100644 --- a/Source/WebKit2/Target.pri +++ b/Source/WebKit2/Target.pri @@ -147,6 +147,7 @@ HEADERS += \ UIProcess/API/C/WKBackForwardList.h \ UIProcess/API/C/WKBackForwardListItem.h \ UIProcess/API/C/WKBatteryManager.h \ + UIProcess/API/C/WKBatteryStatus.h \ UIProcess/API/C/WKContext.h \ UIProcess/API/C/WKContextPrivate.h \ UIProcess/API/C/WKCredential.h \ @@ -517,6 +518,7 @@ SOURCES += \ UIProcess/API/C/WKBackForwardList.cpp \ UIProcess/API/C/WKBackForwardListItem.cpp \ UIProcess/API/C/WKBatteryManager.cpp \ + UIProcess/API/C/WKBatteryStatus.cpp \ UIProcess/API/C/WKContext.cpp \ UIProcess/API/C/WKCredential.cpp \ UIProcess/API/C/WKDatabaseManager.cpp \ diff --git a/Source/WebKit2/UIProcess/API/C/WKBatteryManager.cpp b/Source/WebKit2/UIProcess/API/C/WKBatteryManager.cpp index b7fd503..950336d 100644 --- a/Source/WebKit2/UIProcess/API/C/WKBatteryManager.cpp +++ b/Source/WebKit2/UIProcess/API/C/WKBatteryManager.cpp @@ -27,6 +27,7 @@ #include "WKBatteryManager.h" #include "WKAPICast.h" +#include #if ENABLE(BATTERY_STATUS) #include "WebBatteryManagerProxy.h" @@ -42,3 +43,24 @@ WKTypeID WKBatteryManagerGetTypeID() return 0; #endif } + +void WKBatteryManagerSetProvider(WKBatteryManagerRef batteryManager, const WKBatteryProvider* provider) +{ +#if ENABLE(BATTERY_STATUS) + toImpl(batteryManager)->initializeProvider(provider); +#endif +} + +void WKBatteryManagerProviderDidChangeBatteryStatus(WKBatteryManagerRef batteryManager, WKStringRef eventType, WKBatteryStatusRef status) +{ +#if ENABLE(BATTERY_STATUS) + toImpl(batteryManager)->providerDidChangeBatteryStatus(AtomicString(toImpl(eventType)->string()), toImpl(status)); +#endif +} + +void WKBatteryManagerProviderUpdateBatteryStatus(WKBatteryManagerRef batteryManager, WKBatteryStatusRef status) +{ +#if ENABLE(BATTERY_STATUS) + toImpl(batteryManager)->providerUpdateBatteryStatus(toImpl(status)); +#endif +} diff --git a/Source/WebKit2/UIProcess/API/C/WKBatteryManager.h b/Source/WebKit2/UIProcess/API/C/WKBatteryManager.h index 91e27f9..712cbfb 100644 --- a/Source/WebKit2/UIProcess/API/C/WKBatteryManager.h +++ b/Source/WebKit2/UIProcess/API/C/WKBatteryManager.h @@ -48,6 +48,11 @@ enum { kWKBatteryProviderCurrentVersion = 0 }; WK_EXPORT WKTypeID WKBatteryManagerGetTypeID(); +WK_EXPORT void WKBatteryManagerSetProvider(WKBatteryManagerRef batteryManager, const WKBatteryProvider* provider); + +WK_EXPORT void WKBatteryManagerProviderDidChangeBatteryStatus(WKBatteryManagerRef batteryManager, WKStringRef eventType, WKBatteryStatusRef status); +WK_EXPORT void WKBatteryManagerProviderUpdateBatteryStatus(WKBatteryManagerRef batteryManager, WKBatteryStatusRef status); + #ifdef __cplusplus } #endif diff --git a/Source/WebKit2/UIProcess/API/C/WKBatteryStatus.cpp b/Source/WebKit2/UIProcess/API/C/WKBatteryStatus.cpp new file mode 100644 index 0000000..0069a6f --- /dev/null +++ b/Source/WebKit2/UIProcess/API/C/WKBatteryStatus.cpp @@ -0,0 +1,55 @@ +/* + * Copyright (C) 2012 Intel Corporation. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, + * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include "config.h" +#include "WKBatteryStatus.h" + +#include "WKAPICast.h" + +#if ENABLE(BATTERY_STATUS) +#include "WebBatteryStatus.h" +#endif + +using namespace WebKit; + +WKTypeID WKBatteryStatusGetTypeID() +{ +#if ENABLE(BATTERY_STATUS) + return toAPI(WebBatteryStatus::APIType); +#else + return 0; +#endif +} + +WKBatteryStatusRef WKBatteryStatusCreate(bool isCharging, double chargingTime, double dischargingTime, double level) +{ +#if ENABLE(BATTERY_STATUS) + RefPtr status = WebBatteryStatus::create(isCharging, chargingTime, dischargingTime, level); + return toAPI(status.release().leakRef()); +#else + return 0; +#endif +} + diff --git a/Source/WebKit2/UIProcess/API/C/WKBatteryStatus.h b/Source/WebKit2/UIProcess/API/C/WKBatteryStatus.h new file mode 100644 index 0000000..afa1dd9 --- /dev/null +++ b/Source/WebKit2/UIProcess/API/C/WKBatteryStatus.h @@ -0,0 +1,43 @@ +/* + * Copyright (C) 2012 Intel Corporation. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, + * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF + * THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef WKBatteryStatus_h +#define WKBatteryStatus_h + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +WK_EXPORT WKTypeID WKBatteryStatusGetTypeID(); + +WK_EXPORT WKBatteryStatusRef WKBatteryStatusCreate(bool isCharging, double chargingTime, double dischargingTime, double level); + +#ifdef __cplusplus +} +#endif + +#endif // WKBatteryStatus_h -- 2.7.4