webkit-efl: upgrade to 1.11.0

* webkit-efl snapshots are now versioned consistenly with efl
  bump PE to prevent version going backwards
* announcement:
  http://sourceforge.net/p/enlightenment/mailman/message/32713414/

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
This commit is contained in:
Martin Jansa
2014-08-13 14:10:02 +02:00
parent 153fd8a5a9
commit 64b41ca4f3
13 changed files with 287 additions and 421 deletions
+14 -15
View File
@@ -1,8 +1,10 @@
DESCRIPTION = "Webkit browser engine, EFL edition"
LICENSE = "GPLv2+"
LIC_FILES_CHKSUM = "file://Source/WebKit/LICENSE;md5=4646f90082c40bcf298c285f8bab0b12 \
file://Source/JavaScriptCore/COPYING.LIB;md5=d0c6d6397a5d84286dda758da57bd691 \
file://Source/WebKit/efl/ewk/EWebKit.h;endline=20;md5=55ea170b1582797d2c69712de850f2fa \
LICENSE = "GPLv2+ & LGPL-2.1"
LIC_FILES_CHKSUM = " \
file://Source/JavaScriptCore/COPYING.LIB;md5=d0c6d6397a5d84286dda758da57bd691 \
file://Source/WebCore/LICENSE-APPLE;md5=4646f90082c40bcf298c285f8bab0b12 \
file://Source/WebCore/LICENSE-LGPL-2.1;md5=a778a33ef338abbaf8b8a7c36b6eec80 \
file://Source/WebCore/LICENSE-LGPL-2;md5=36357ffde2b64ae177b2494445b79d21 \
"
# you need harfbuzz with icu enabled, you can add this to your config:
@@ -10,18 +12,15 @@ LIC_FILES_CHKSUM = "file://Source/WebKit/LICENSE;md5=4646f90082c40bcf298c285f8ba
DEPENDS = "icu libxslt sqlite3 gperf-native bison-native flex-native jpeg \
libpng libxt fontconfig cairo freetype glib-2.0 libsoup-2.4 \
libxml2 pango eina ecore evas edje eldbus harfbuzz enchant \
ruby-native"
ruby-native elementary"
PE = "1"
SRCVER ?= "${PV}"
SRC_URI = "\
${E_RELEASES}/libs/webkit-efl/webkit-efl-164189.tar.xz \
file://0001-WebKitHelpers.cmake-Add-Wno-error-cast-align.patch \
file://0002-ARMAssembler.h-Don-t-generate-BKPT-and-BLX-for-armv4.patch \
file://0003-Fix-linking-issue.patch \
${E_RELEASES}/libs/webkit-efl/ewebkit-${SRCVER}.tar.xz \
"
SRC_URI[md5sum] = "731513fc042ec8e03840bc1ab6a66771"
SRC_URI[sha256sum] = "660aefd65c0e5c6494eaec30539cda5f40fbdff17f28e7e83d341b245227cccd"
S = "${WORKDIR}/efl-webkit"
S = "${WORKDIR}/ewebkit"
inherit cmake lib_package pkgconfig perlnative pythonnative
@@ -60,8 +59,8 @@ COMPATIBLE_MACHINE_armv7a = "(.*)"
LEAD_SONAME = "libewebkit.so"
PACKAGES =+ "${PN}launcher-dbg ${PN}launcher ${PN}-inspector"
FILES_${PN} += "${datadir}/webkit-1.0/theme/default.edj ${datadir}/ewebkit-0/themes/default.edj"
FILES_${PN} += "${datadir}/ewebkit2-1/themes/default.edj"
FILES_${PN}-dev += "${libdir}/cmake"
FILES_${PN}launcher = "${bindir}/EWebLauncher"
FILES_${PN}launcher-dbg = "${bindir}/.debug/EWebLauncher"
FILES_${PN}-inspector += "${datadir}/ewebkit-0/inspector"
FILES_${PN}-inspector += "${datadir}/ewebkit2-1/inspector"
@@ -0,0 +1,46 @@
From e6caaf6e80b9c80dc2b860b471a8f05e825f6dfa Mon Sep 17 00:00:00 2001
From: Martin Jansa <Martin.Jansa@gmail.com>
Date: Thu, 14 Aug 2014 01:00:21 +0200
Subject: [PATCH 1/3] OptionsCommon.cmake: don't mix CXX_FLAGS into C_FLAGS
* it was added in https://bugs.webkit.org/show_bug.cgi?id=130261
* causes build failures in udis86 which explicitly asks for gcc but then
gets g++ flags from CMAKE_CXX_FLAGS.
cc1: error: command line option '-fvisibility-inlines-hidden' is valid
for C++/ObjC++ but not for C [-Werror]
cc1: error: command line option '-fpermissive' is valid for C++/ObjC++
but not for C [-Werror]
cc1: all warnings being treated as errors
Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/build.make:11182:
recipe for target
'Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/disassembler/udis86/udis86.c.o'
failed
make[2]: ***
[Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/disassembler/udis86/udis86.c.o]
Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: Leaving directory
'/OE/build/oe-core/tmp-eglibc/work/core2-64-oe-linux/webkit-efl/1_1.10.0+1.11.0-beta1-r0/build'
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
---
Source/cmake/OptionsCommon.cmake | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Source/cmake/OptionsCommon.cmake b/Source/cmake/OptionsCommon.cmake
index e304a99..045c614 100644
--- a/Source/cmake/OptionsCommon.cmake
+++ b/Source/cmake/OptionsCommon.cmake
@@ -25,7 +25,7 @@ endif ()
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
if (CMAKE_COMPILER_IS_GNUCXX OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
- set(CMAKE_C_FLAGS "${CMAKE_CXX_FLAGS} -fno-exceptions -fno-strict-aliasing")
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-exceptions -fno-strict-aliasing")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -fno-exceptions -fno-strict-aliasing -fno-rtti")
endif ()
--
2.1.3
@@ -1,30 +0,0 @@
From b37711ca03ea9410e795f29398069fed9e9c2d30 Mon Sep 17 00:00:00 2001
From: Martin Jansa <Martin.Jansa@gmail.com>
Date: Mon, 13 Jan 2014 17:21:25 +0100
Subject: [PATCH 1/3] WebKitHelpers.cmake: Add -Wno-error=cast-align
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
---
Source/cmake/WebKitHelpers.cmake | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/Source/cmake/WebKitHelpers.cmake b/Source/cmake/WebKitHelpers.cmake
index 409931c..345b346 100644
--- a/Source/cmake/WebKitHelpers.cmake
+++ b/Source/cmake/WebKitHelpers.cmake
@@ -44,7 +44,11 @@ macro(WEBKIT_SET_EXTRA_COMPILER_FLAGS _target)
# Enable errors on warning
if (OPTION_ENABLE_WERROR)
- set(OLD_COMPILE_FLAGS "-Werror -Wno-error=unused-parameter ${OLD_COMPILE_FLAGS}")
+ # FIXME: When we use -fno-tree-dce to support the jsCStack branch merge, build error occurs due to the uninitialization. Temporarily we set
+ # uninitialized as build warning in order to support the jsCStack merge. https://bugs.webkit.org/show_bug.cgi?id=127777.
+ set(OLD_COMPILE_FLAGS "-Werror -Wno-error=unused-parameter -Wno-error=uninitialized ${OLD_COMPILE_FLAGS}")
+ # | /OE/build/shr-core/tmp-eglibc/work/arm920tt-oe-linux-gnueabi/webkit-efl/2.3.2+svnr159807-r0/webkit-efl/Source/JavaScriptCore/runtime/JSDataViewPrototype.cpp:161:104: error: cast from 'uint8_t* {aka unsigned char*}' to 'JSC::FloatTypedArrayAdaptor<double, JSC::GenericTypedArrayView<JSC::Float64Adaptor>, JSC::JSGenericTypedArrayView<JSC::Float64Adaptor>, (JSC::TypedArrayType)9u>::Type* {aka double*}' increases required alignment of target type [-Werror=cast-align]
+ set(OLD_COMPILE_FLAGS "-Wno-error=cast-align -Wno-error=array-bounds -Wno-error=deprecated-declarations ${OLD_COMPILE_FLAGS}")
endif ()
set_target_properties(${_target} PROPERTIES
--
1.9.0
@@ -1,80 +0,0 @@
From e284e92da00011e55d8f79383034e0c9c1a8a106 Mon Sep 17 00:00:00 2001
From: Martin Jansa <Martin.Jansa@gmail.com>
Date: Thu, 27 Feb 2014 13:40:43 +0100
Subject: [PATCH 2/3] ARMAssembler.h: Don't generate BKPT and BLX for armv4*
* I haven't tested it in runtime yet, but it's better than to wait for asm failure later:
{standard input}: Assembler messages:
{standard input}:35: Error: selected processor does not support ARM mode `bkpt #0'
{standard input}:62: Error: selected processor does not support ARM mode `blx llint_throw_stack_overflow_error'
...
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
---
Source/JavaScriptCore/assembler/ARMAssembler.h | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
diff --git a/Source/JavaScriptCore/assembler/ARMAssembler.h b/Source/JavaScriptCore/assembler/ARMAssembler.h
index 087d31c..1b40ded 100644
--- a/Source/JavaScriptCore/assembler/ARMAssembler.h
+++ b/Source/JavaScriptCore/assembler/ARMAssembler.h
@@ -211,7 +211,9 @@ namespace JSC {
LDMIA = 0x08b00000,
B = 0x0a000000,
BL = 0x0b000000,
+#if WTF_ARM_ARCH_AT_LEAST(5)
BX = 0x012fff10,
+#endif
VMOV_VFP64 = 0x0c400a10,
VMOV_ARM64 = 0x0c500a10,
VMOV_VFP32 = 0x0e000a10,
@@ -223,8 +225,10 @@ namespace JSC {
VCVT_F64_F32 = 0x0eb70ac0,
VMRS_APSR = 0x0ef1fa10,
CLZ = 0x016f0f10,
+#if WTF_ARM_ARCH_AT_LEAST(5)
BKPT = 0xe1200070,
BLX = 0x012fff30,
+#endif
#if WTF_ARM_ARCH_AT_LEAST(7)
MOVW = 0x03000000,
MOVT = 0x03400000,
@@ -689,7 +693,11 @@ namespace JSC {
void bkpt(ARMWord value)
{
+#if WTF_ARM_ARCH_AT_LEAST(5)
m_buffer.putInt(BKPT | ((value & 0xff0) << 4) | (value & 0xf));
+#else
+ // BKPT is available in ARMv5T and above, skip it here
+#endif
}
void nop()
@@ -704,12 +712,23 @@ namespace JSC {
void bx(int rm, Condition cc = AL)
{
+#if WTF_ARM_ARCH_AT_LEAST(5)
emitInstruction(toARMWord(cc) | BX, 0, 0, RM(rm));
+#else
+ // BX is available in ARMv5T and above.
+ emitInstruction(toARMWord(cc) | MOV, ARMRegisters::pc, ARMRegisters::lr, 0);
+#endif
}
AssemblerLabel blx(int rm, Condition cc = AL)
{
+#if WTF_ARM_ARCH_AT_LEAST(5)
emitInstruction(toARMWord(cc) | BLX, 0, 0, RM(rm));
+#else
+ // BLX is available in ARMv5T and above.
+ emitInstruction(toARMWord(cc) | MOV, ARMRegisters::lr, ARMRegisters::pc, 0);
+ emitInstruction(toARMWord(cc) | MOV, ARMRegisters::pc, RM(rm), 0);
+#endif
return m_buffer.label();
}
--
1.9.0
@@ -0,0 +1,36 @@
From de93951f89e851b6689718022eebb4b8b1d14c06 Mon Sep 17 00:00:00 2001
From: Martin Jansa <Martin.Jansa@gmail.com>
Date: Mon, 13 Jan 2014 17:21:25 +0100
Subject: [PATCH 2/3] WebKitHelpers.cmake: Add
-Wno-error=deprecated-declarations -Wno-error=cast-align
-Wno-error=type-limits
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
---
Source/cmake/WebKitHelpers.cmake | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/Source/cmake/WebKitHelpers.cmake b/Source/cmake/WebKitHelpers.cmake
index 227b9ee..ae52ef6 100644
--- a/Source/cmake/WebKitHelpers.cmake
+++ b/Source/cmake/WebKitHelpers.cmake
@@ -40,6 +40,16 @@ macro(WEBKIT_SET_EXTRA_COMPILER_FLAGS _target)
# FIXME: When we use -fno-tree-dce to support the jsCStack branch merge, build error occurs due to the uninitialization. Temporarily we set
# uninitialized as build warning in order to support the jsCStack merge. https://bugs.webkit.org/show_bug.cgi?id=127777.
set(OLD_COMPILE_FLAGS "-Werror -Wno-error=unused-parameter -Wno-error=uninitialized -Wno-error=literal-suffix ${OLD_COMPILE_FLAGS}")
+ # libsoup-2.4/libsoup/soup-proxy-uri-resolver.h:13:84: error: 'GType soup_proxy_uri_resolver_get_type()' is deprecated (declared at /OE/build/oe-core/tmp-eglibc/sysroots/qemux86-64/usr/include/libsoup-2.4/libsoup/soup-proxy-uri-resolver.h:48) [-Werror=deprecated-declarations]
+ set(OLD_COMPILE_FLAGS "-Wno-error=deprecated-declarations ${OLD_COMPILE_FLAGS}")
+ # webkit-efl/1_1.10.0+1.11.0-beta1-r0/ewebkit/Source/WTF/wtf/text/StringImpl.h:742:87: error: cast from 'uint8_t* {aka unsigned char*}' to 'WTF::StringImpl**' increases required alignment of target type [-Werror=cast-align]
+ set(OLD_COMPILE_FLAGS "-Wno-error=cast-align ${OLD_COMPILE_FLAGS}")
+ # webkit-efl/1_1.10.0+1.11.0-beta1-r0/ewebkit/Source/WebKit2/Shared/linux/WebMemorySamplerLinux.cpp:70:16: error: comparison is always false due to limited range of data type [-Werror=type-limits]
+ set(OLD_COMPILE_FLAGS "-Wno-error=type-limits ${OLD_COMPILE_FLAGS}")
+ # webkit-efl/1_1.11.0-r0/ewebkit/Source/WebKit2/UIProcess/API/efl/EwkView.cpp:832:5: error: missing initializer for member '_Evas_GL_Config::gles_version' [-Werror=missing-field-initializers]
+ # this one is new with efl-1.12
+ set(OLD_COMPILE_FLAGS "-Wno-error=missing-field-initializers ${OLD_COMPILE_FLAGS}")
+
endif ()
set_target_properties(${_target} PROPERTIES
--
2.1.3
@@ -0,0 +1,35 @@
From a076d76b8e8862bd641cd991190e82cfd478cc66 Mon Sep 17 00:00:00 2001
From: Martin Jansa <Martin.Jansa@gmail.com>
Date: Wed, 20 Aug 2014 00:52:03 +0200
Subject: [PATCH 3/3] FEBlendNEON.h: fix missing semicolon
* Otherwise fails with:
In file included from ewebkit/Source/WebCore/platform/graphics/filters/FEBlend.cpp:29:0:
ewebkit/Source/WebCore/platform/graphics/cpu/arm/filters/FEBlendNEON.h: In member function 'virtual void WebCore::FEBlend::platformApplySoftware()':
ewebkit/Source/WebCore/platform/graphics/cpu/arm/filters/FEBlendNEON.h:130:5: error: expected primary-expression before '}' token
}
^
ewebkit/Source/WebCore/platform/graphics/cpu/arm/filters/FEBlendNEON.h:130:5: error: return-statement with a value, in function returning 'void' [-fpermissive]
ewebkit/Source/WebCore/platform/graphics/cpu/arm/filters/FEBlendNEON.h:130:5: error: expected ';' before '}' token
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
---
Source/WebCore/platform/graphics/cpu/arm/filters/FEBlendNEON.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Source/WebCore/platform/graphics/cpu/arm/filters/FEBlendNEON.h b/Source/WebCore/platform/graphics/cpu/arm/filters/FEBlendNEON.h
index 1c50765..f4b6f46 100644
--- a/Source/WebCore/platform/graphics/cpu/arm/filters/FEBlendNEON.h
+++ b/Source/WebCore/platform/graphics/cpu/arm/filters/FEBlendNEON.h
@@ -126,7 +126,7 @@ void FEBlend::platformApplySoftware()
if (pixelArrayLength >= 8) {
platformApplyNEON(srcPixelArrayA->data(), srcPixelArrayB->data(), dstPixelArray->data(), pixelArrayLength);
- return
+ return;
}
// If there is just one pixel we expand it to two.
ASSERT(pixelArrayLength > 0);
--
2.1.3
@@ -1,63 +0,0 @@
From 09088da56f3de17ab1cc537627cda6bf808eaf4c Mon Sep 17 00:00:00 2001
From: Martin Jansa <Martin.Jansa@gmail.com>
Date: Thu, 27 Feb 2014 14:17:29 +0100
Subject: [PATCH 3/3] Fix linking issue
* inline function is sometimes not included soon enough
Partialy taken from:
https://bugs.webkit.org/show_bug.cgi?id=124152
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
---
Source/JavaScriptCore/llint/LLIntEntrypoint.cpp | 3 +++
Source/JavaScriptCore/runtime/FunctionExecutableDump.cpp | 3 +++
Source/JavaScriptCore/runtime/SymbolTable.cpp | 4 ++++
3 files changed, 10 insertions(+)
diff --git a/Source/JavaScriptCore/llint/LLIntEntrypoint.cpp b/Source/JavaScriptCore/llint/LLIntEntrypoint.cpp
index 5d91be6..73cba31 100644
--- a/Source/JavaScriptCore/llint/LLIntEntrypoint.cpp
+++ b/Source/JavaScriptCore/llint/LLIntEntrypoint.cpp
@@ -31,6 +31,9 @@
#include "CodeBlock.h"
#include "JITCode.h"
#include "JSObject.h"
+#include "JSCellInlines.h"
+#include "JSDestructibleObject.h"
+#include "SlotVisitorInlines.h"
#include "LLIntThunks.h"
#include "LowLevelInterpreter.h"
#include "MaxFrameExtentForSlowPathCall.h"
diff --git a/Source/JavaScriptCore/runtime/FunctionExecutableDump.cpp b/Source/JavaScriptCore/runtime/FunctionExecutableDump.cpp
index d0583fc..4be5ec3 100644
--- a/Source/JavaScriptCore/runtime/FunctionExecutableDump.cpp
+++ b/Source/JavaScriptCore/runtime/FunctionExecutableDump.cpp
@@ -25,6 +25,9 @@
#include "config.h"
#include "FunctionExecutableDump.h"
+#include "JSCellInlines.h"
+#include "JSDestructibleObject.h"
+#include "SlotVisitorInlines.h"
#include "CodeBlock.h"
diff --git a/Source/JavaScriptCore/runtime/SymbolTable.cpp b/Source/JavaScriptCore/runtime/SymbolTable.cpp
index 6eb0239..21450df 100644
--- a/Source/JavaScriptCore/runtime/SymbolTable.cpp
+++ b/Source/JavaScriptCore/runtime/SymbolTable.cpp
@@ -33,6 +33,10 @@
#include "JSCInlines.h"
#include "SlotVisitorInlines.h"
+#include "JSCellInlines.h"
+#include "JSDestructibleObject.h"
+#include "SlotVisitorInlines.h"
+
namespace JSC {
const ClassInfo SymbolTable::s_info = { "SymbolTable", 0, 0, 0, CREATE_METHOD_TABLE(SymbolTable) };
--
1.9.0
@@ -0,0 +1,146 @@
From baebc004111289ef658c78a42f8332f3dceef41e Mon Sep 17 00:00:00 2001
From: "ryuan.choi@navercorp.com" <ryuan.choi@navercorp.com>
Date: Thu, 13 Nov 2014 07:07:16 +0000
Subject: [PATCH 4/4] Fix the build with EFL 1.12
https://bugs.webkit.org/show_bug.cgi?id=138245
Reviewed by Gyuyoung Kim.
Source/WebKit2:
* UIProcess/API/efl/EwkView.cpp:
First, modified to use Evas_GL raw pointer instead of UniquePtrEfl because
Evas_GL.h can't be included in UniquePtrEfl.h
It should be moved into EvasGLContext because WebKit/EFL use only one Evas_GL.
Second, provided the version of GLES in Evas_GL_Config not to break build with
EFL 1.12
(EwkView::EwkView):
(EwkView::~EwkView):
(EwkView::displayTimerFired):
(EwkView::createGLSurface):
* UIProcess/API/efl/EwkView.h:
Source/WTF:
* wtf/efl/UniquePtrEfl.h:
Removed Evas_GL.h from UniquePtrEfl.h, which is commonly included, because
it should not be included with official GL headers.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@176066 268f45cc-cd09-0410-ab3c-d52691b4dbfc
---
Source/WTF/wtf/efl/UniquePtrEfl.h | 2 --
Source/WebKit2/UIProcess/API/efl/EwkView.cpp | 24 ++++++++++++++++--------
Source/WebKit2/UIProcess/API/efl/EwkView.h | 3 ++-
3 files changed, 18 insertions(+), 11 deletions(-)
diff --git a/Source/WTF/wtf/efl/UniquePtrEfl.h b/Source/WTF/wtf/efl/UniquePtrEfl.h
index ba0110a..038d3fb 100644
--- a/Source/WTF/wtf/efl/UniquePtrEfl.h
+++ b/Source/WTF/wtf/efl/UniquePtrEfl.h
@@ -33,7 +33,6 @@
#include <Ecore_IMF.h>
#include <Eina.h>
#include <Evas.h>
-#include <Evas_GL.h>
namespace WTF {
@@ -51,7 +50,6 @@ using EflUniquePtr = std::unique_ptr<T, EflPtrDeleter<T>>;
macro(Eina_Hash, eina_hash_free) \
macro(Eina_Module, eina_module_free) \
macro(Evas_Object, evas_object_del) \
- macro(Evas_GL, evas_gl_free)
#define WTF_DEFINE_EFLPTR_DELETER(typeName, deleterFunc) \
template<> struct EflPtrDeleter<typeName> \
diff --git a/Source/WebKit2/UIProcess/API/efl/EwkView.cpp b/Source/WebKit2/UIProcess/API/efl/EwkView.cpp
index 50d34ed..6ff3394 100755
--- a/Source/WebKit2/UIProcess/API/efl/EwkView.cpp
+++ b/Source/WebKit2/UIProcess/API/efl/EwkView.cpp
@@ -299,9 +299,11 @@ EwkView::EwkView(WKViewRef view, Evas_Object* evasObject)
// FIXME: Remove when possible.
static_cast<WebViewEfl*>(webView())->setEwkView(this);
- m_evasGL = EflUniquePtr<Evas_GL>(evas_gl_new(evas_object_evas_get(m_evasObject)));
+
+ // FIXME: Consider it to move into EvasGLContext.
+ m_evasGL = evas_gl_new(evas_object_evas_get(m_evasObject));
if (m_evasGL)
- m_evasGLContext = EvasGLContext::create(m_evasGL.get());
+ m_evasGLContext = EvasGLContext::create(m_evasGL);
if (!m_evasGLContext) {
WARN("Failed to create Evas_GL, falling back to software mode.");
@@ -333,6 +335,9 @@ EwkView::~EwkView()
{
ASSERT(wkPageToEvasObjectMap().get(wkPage()) == m_evasObject);
wkPageToEvasObjectMap().remove(wkPage());
+
+ if (m_evasGL)
+ evas_gl_free(m_evasGL);
}
EwkView* EwkView::create(WKViewRef webView, Evas* canvas, Evas_Smart* smart)
@@ -587,7 +592,7 @@ void EwkView::displayTimerFired(Timer<EwkView>*)
return;
}
- evas_gl_make_current(m_evasGL.get(), m_evasGLSurface->surface(), m_evasGLContext->context());
+ evas_gl_make_current(m_evasGL, m_evasGLSurface->surface(), m_evasGLContext->context());
WKViewPaintToCurrentGLContext(wkView());
@@ -828,21 +833,24 @@ bool EwkView::createGLSurface()
EVAS_GL_DEPTH_BIT_8,
EVAS_GL_STENCIL_NONE,
EVAS_GL_OPTIONS_NONE,
- EVAS_GL_MULTISAMPLE_NONE
+ EVAS_GL_MULTISAMPLE_NONE,
+#if defined(EVAS_GL_API_VERSION) && EVAS_GL_API_VERSION >= 2
+ EVAS_GL_GLES_2_X
+#endif
};
// Recreate to current size: Replaces if non-null, and frees existing surface after (OwnPtr).
- m_evasGLSurface = EvasGLSurface::create(m_evasGL.get(), &evasGLConfig, deviceSize());
+ m_evasGLSurface = EvasGLSurface::create(m_evasGL, &evasGLConfig, deviceSize());
if (!m_evasGLSurface)
return false;
Evas_Native_Surface nativeSurface;
- evas_gl_native_surface_get(m_evasGL.get(), m_evasGLSurface->surface(), &nativeSurface);
+ evas_gl_native_surface_get(m_evasGL, m_evasGLSurface->surface(), &nativeSurface);
evas_object_image_native_surface_set(smartData()->image, &nativeSurface);
- evas_gl_make_current(m_evasGL.get(), m_evasGLSurface->surface(), m_evasGLContext->context());
+ evas_gl_make_current(m_evasGL, m_evasGLSurface->surface(), m_evasGLContext->context());
- Evas_GL_API* gl = evas_gl_api_get(m_evasGL.get());
+ Evas_GL_API* gl = evas_gl_api_get(m_evasGL);
WKPoint boundsEnd = WKViewUserViewportToScene(wkView(), WKPointMake(deviceSize().width(), deviceSize().height()));
gl->glViewport(0, 0, boundsEnd.x, boundsEnd.y);
diff --git a/Source/WebKit2/UIProcess/API/efl/EwkView.h b/Source/WebKit2/UIProcess/API/efl/EwkView.h
index 1c482cf..68dab87 100644
--- a/Source/WebKit2/UIProcess/API/efl/EwkView.h
+++ b/Source/WebKit2/UIProcess/API/efl/EwkView.h
@@ -39,6 +39,7 @@
#endif
typedef struct _cairo_surface cairo_surface_t;
+typedef struct _Evas_GL Evas_GL;
namespace WebKit {
class ContextMenuClientEfl;
@@ -241,7 +242,7 @@ private:
Evas_Object* m_evasObject;
RefPtr<EwkContext> m_context;
RefPtr<EwkPageGroup> m_pageGroup;
- EflUniquePtr<Evas_GL> m_evasGL;
+ Evas_GL* m_evasGL;
std::unique_ptr<WebCore::EvasGLContext> m_evasGLContext;
std::unique_ptr<WebCore::EvasGLSurface> m_evasGLSurface;
bool m_pendingSurfaceResize;
--
2.1.3
@@ -1,32 +0,0 @@
From ed7972510df191d9fabe7aff2f688cbc45f0c955 Mon Sep 17 00:00:00 2001
From: Martin Jansa <Martin.Jansa@gmail.com>
Date: Sun, 20 Jul 2014 10:52:17 +0200
Subject: [PATCH] WebMemorySamplerLinux: Fix type-limits warning
* otherwise it fails with:
webkit-efl/2.3.4+svnr164189-r0/efl-webkit/Source/WebKit2/Shared/linux/WebMemorySamplerLinux.cpp:70:16:
error: comparison is always false due to limited range of data type [-Werror=type-limits]
| if (ch == EOF || (isASCIISpace(ch) && index)) // Break on non-initial ASCII space.
| ^
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
---
Source/WebKit2/Shared/linux/WebMemorySamplerLinux.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Source/WebKit2/Shared/linux/WebMemorySamplerLinux.cpp b/Source/WebKit2/Shared/linux/WebMemorySamplerLinux.cpp
index 7cb70d4..6bb78d8 100644
--- a/Source/WebKit2/Shared/linux/WebMemorySamplerLinux.cpp
+++ b/Source/WebKit2/Shared/linux/WebMemorySamplerLinux.cpp
@@ -67,7 +67,7 @@ static inline String nextToken(FILE* file)
unsigned int index = 0;
while (index < maxBuffer) {
char ch = fgetc(file);
- if (ch == EOF || (isASCIISpace(ch) && index)) // Break on non-initial ASCII space.
+ if (isASCIISpace(ch) && index) // Break on non-initial ASCII space.
break;
if (!isASCIISpace(ch)) {
buffer[index] = ch;
--
2.0.0
@@ -1,166 +0,0 @@
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
PROJECT(WebKit)
# Set a default build type if and only if user did not define one as command
# line options and he did not give custom CFLAGS or CXXFLAGS. Otherwise, flags
# from default build type would overwrite user-defined ones.
IF (NOT CMAKE_BUILD_TYPE AND NOT CMAKE_C_FLAGS AND NOT CMAKE_CXX_FLAGS)
SET(CMAKE_BUILD_TYPE Release)
ENDIF ()
# -----------------------------------------------------------------------------
# Default library type
# -----------------------------------------------------------------------------
SET(ENABLE_WEBCORE ON)
IF (NOT ENABLE_WEBKIT AND NOT ENABLE_WEBKIT2)
SET(ENABLE_WEBKIT ON)
ENDIF ()
SET(ENABLE_TOOLS ON)
SET(WTF_DIR "${CMAKE_SOURCE_DIR}/Source/WTF")
SET(JAVASCRIPTCORE_DIR "${CMAKE_SOURCE_DIR}/Source/JavaScriptCore")
SET(WEBCORE_DIR "${CMAKE_SOURCE_DIR}/Source/WebCore")
SET(WEBKIT_DIR "${CMAKE_SOURCE_DIR}/Source/WebKit")
SET(WEBKIT2_DIR "${CMAKE_SOURCE_DIR}/Source/WebKit2")
SET(THIRDPARTY_DIR "${CMAKE_SOURCE_DIR}/Source/ThirdParty")
SET(TOOLS_DIR "${CMAKE_SOURCE_DIR}/Tools")
SET(DERIVED_SOURCES_DIR "${CMAKE_BINARY_DIR}/DerivedSources")
SET(DERIVED_SOURCES_JAVASCRIPTCORE_DIR "${CMAKE_BINARY_DIR}/DerivedSources/JavaScriptCore")
SET(DERIVED_SOURCES_WEBCORE_DIR "${CMAKE_BINARY_DIR}/DerivedSources/WebCore")
SET(DERIVED_SOURCES_WEBKIT_DIR "${CMAKE_BINARY_DIR}/DerivedSources/WebKit")
SET(DERIVED_SOURCES_WEBKIT2_DIR "${CMAKE_BINARY_DIR}/DerivedSources/WebKit2")
SET(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/Source/cmake")
SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
INCLUDE(WebKitMacros)
INCLUDE(WebKitFS)
INCLUDE(WebKitHelpers)
INCLUDE(WebKitFeatures)
# -----------------------------------------------------------------------------
# Determine which port will be built
# -----------------------------------------------------------------------------
SET(ALL_PORTS Efl WinCE BlackBerry)
SET(PORT "NOPORT" CACHE STRING "choose which WebKit port to build (one of ${ALL_PORTS})")
LIST(FIND ALL_PORTS ${PORT} RET)
IF (${RET} EQUAL -1)
MESSAGE(FATAL_ERROR "Please choose which WebKit port to build (one of ${ALL_PORTS})")
ENDIF ()
STRING(TOLOWER ${PORT} WEBKIT_PORT_DIR)
# -----------------------------------------------------------------------------
# Find common packages (used by all ports)
# -----------------------------------------------------------------------------
FIND_PACKAGE(BISON REQUIRED)
FIND_PACKAGE(FLEX REQUIRED)
FIND_PACKAGE(Gperf REQUIRED)
FIND_PACKAGE(Perl REQUIRED)
FIND_PACKAGE(PythonInterp REQUIRED)
# -----------------------------------------------------------------------------
# Determine the target processor
# -----------------------------------------------------------------------------
STRING(TOLOWER ${CMAKE_SYSTEM_PROCESSOR} LOWERCASE_CMAKE_SYSTEM_PROCESSOR)
IF (LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "^arm")
SET(WTF_CPU_ARM 1)
ELSEIF (LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "^mips")
SET(WTF_CPU_MIPS 1)
ELSEIF (LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "(x86_64|amd64)")
SET(WTF_CPU_X86_64 1)
ELSEIF (LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "(i[3-6]86|x86)")
SET(WTF_CPU_X86 1)
ELSE ()
MESSAGE(FATAL_ERROR "Unknown CPU '${CMAKE_SYSTEM_PROCESSOR}'")
ENDIF ()
# -----------------------------------------------------------------------------
# Determine the operating system
# -----------------------------------------------------------------------------
IF (UNIX)
IF (APPLE)
SET(WTF_OS_MAC_OS_X 1)
ELSE ()
SET(WTF_OS_UNIX 1)
ENDIF ()
ELSEIF (CMAKE_SYSTEM_NAME MATCHES "Windows")
SET(WTF_OS_WINDOWS 1)
ELSEIF (CMAKE_SYSTEM_NAME MATCHES "QNX")
SET(WTF_OS_QNX 1)
SET(WTF_OS_UNIX 1)
ELSE ()
MESSAGE(FATAL_ERROR "Unknown OS '${CMAKE_SYSTEM_NAME}'")
ENDIF ()
# -----------------------------------------------------------------------------
# Default target names (can be overrriden in Options${PORT}.cmake file)
# -----------------------------------------------------------------------------
SET(JSC_EXECUTABLE_NAME JSC)
SET(WTF_LIBRARY_NAME WTF)
SET(JavaScriptCore_LIBRARY_NAME JavaScriptCore)
SET(WebCore_LIBRARY_NAME WebCore)
SET(WebKit_LIBRARY_NAME WebKit)
SET(WebKit2_LIBRARY_NAME WebKit2)
SET(WebCoreTestSupport_LIBRARY_NAME WebCoreTestSupport)
# -----------------------------------------------------------------------------
# Default library types
# -----------------------------------------------------------------------------
OPTION(SHARED_CORE "build JavaScriptCore and WebCore as shared libraries")
IF (SHARED_CORE)
SET(JavaScriptCore_LIBRARY_TYPE SHARED)
SET(WebCore_LIBRARY_TYPE SHARED)
ELSE ()
SET(JavaScriptCore_LIBRARY_TYPE STATIC)
SET(WebCore_LIBRARY_TYPE STATIC)
ENDIF ()
SET(WebKit_LIBRARY_TYPE SHARED)
SET(WebKit2_LIBRARY_TYPE SHARED)
SET(WebCoreTestSupport_LIBRARY_TYPE STATIC)
# -----------------------------------------------------------------------------
# Port-specific options
# -----------------------------------------------------------------------------
INCLUDE(OptionsCommon)
INCLUDE(Options${PORT})
# -----------------------------------------------------------------------------
# Enable API unit tests and create a target for the test runner
# -----------------------------------------------------------------------------
IF (ENABLE_API_TESTS)
ENABLE_TESTING()
ENDIF ()
# -----------------------------------------------------------------------------
# Install JavaScript shell
# -----------------------------------------------------------------------------
OPTION(SHOULD_INSTALL_JS_SHELL "generate an installation rule to install the built JavaScript shell")
# -----------------------------------------------------------------------------
# Define packaging
# -----------------------------------------------------------------------------
INCLUDE(WebKitPackaging)
# -----------------------------------------------------------------------------
# Add module directories
# -----------------------------------------------------------------------------
ADD_SUBDIRECTORY(Source)
# -----------------------------------------------------------------------------
# Add tools
# -----------------------------------------------------------------------------
IF (ENABLE_TOOLS)
ADD_SUBDIRECTORY(Tools)
ENDIF ()
@@ -0,0 +1,10 @@
require ${BPN}.inc
SRC_URI += "\
file://0001-OptionsCommon.cmake-don-t-mix-CXX_FLAGS-into-C_FLAGS.patch \
file://0002-WebKitHelpers.cmake-Add-Wno-error-deprecated-declara.patch \
file://0003-FEBlendNEON.h-fix-missing-semicolon.patch \
file://0004-Fix-the-build-with-EFL-1.12-https-bugs.webkit.org-sh.patch \
"
SRC_URI[md5sum] = "90fa970ebf8646319d292c2bb5bff5db"
SRC_URI[sha256sum] = "d8d21e27f4a21cd77c41914548c184ddb98693ba23851aa66c8e51c0be4b90b7"
@@ -1,13 +0,0 @@
require ${BPN}.inc
SRC_URI = "\
${E_RELEASES}/libs/webkit-efl/webkit-efl-164189.tar.xz \
file://0001-WebKitHelpers.cmake-Add-Wno-error-cast-align.patch \
file://0002-ARMAssembler.h-Don-t-generate-BKPT-and-BLX-for-armv4.patch \
file://0003-Fix-linking-issue.patch \
file://0004-WebMemorySamplerLinux-Fix-type-limits-warning.patch \
"
SRC_URI[md5sum] = "731513fc042ec8e03840bc1ab6a66771"
SRC_URI[sha256sum] = "660aefd65c0e5c6494eaec30539cda5f40fbdff17f28e7e83d341b245227cccd"
S = "${WORKDIR}/efl-webkit"
@@ -1,22 +0,0 @@
require ${BPN}.inc
SRCREV = "164189"
PV = "2.3.4+svnr${SRCPV}"
SRCREV_FORMAT = "source"
SRC_URI = "\
svn://svn.webkit.org/repository/webkit/trunk;module=Source;name=source;protocol=http;subdir=src \
svn://svn.webkit.org/repository/webkit/trunk/;module=WebKitLibraries;protocol=http;subdir=src \
svn://svn.webkit.org/repository/webkit/trunk/;module=Tools;protocol=http;subdir=src \
file://CMakeLists.txt \
file://0001-WebKitHelpers.cmake-Add-Wno-error-cast-align.patch \
file://0002-ARMAssembler.h-Don-t-generate-BKPT-and-BLX-for-armv4.patch \
file://0003-Fix-linking-issue.patch \
"
S = "${WORKDIR}/src"
do_configure_prepend() {
cp ${WORKDIR}/CMakeLists.txt ${S};
}