* Sat Jun 10 2017 Kevin Kofler <Kevin@tigcc.ticalc.org> - 5.9.0-1 - Update to 5.9.0 - Update version numbers of bundled stuff - Use bundled libsrtp and protobuf, Chromium dropped unbundling support for them - Add missing Provides: bundled(hunspell) for the spellchecking added in 5.8 - Rebase linux-pri, no-neon, system-icu-utf, no-sse2, arm-fpu-fix, openmax-dl-neon and webrtc-neon-detect patches (port to GN) - Sync system-nspr-prtime patch with Debian (they ported it to GN) - Rebase fix-extractcflag patch - Restore NEON runtime detection in Skia, drop old skia-neon patch (rewritten) - Drop webrtc-neon, v8-gcc7, pdfium-gcc7, wtf-gcc7, fix-open-in-new-tab and fix-dead-keys patches, fixed upstream - Update system libvpx/libwebp version requirements (libvpx now F25+ only) - Drop the flag hacks (-g1 -fno-delete-null-pointer-checks) that are fixed upstream, force -g2 on x86_64 insteadepel9
parent
bf7ab1afdd
commit
c87d486b00
@ -1,12 +0,0 @@
|
||||
diff -ur qtwebengine-opensource-src-5.6.0-beta/tools/qmake/mkspecs/features/functions.prf qtwebengine-opensource-src-5.6.0-beta-fix-extractcflag/tools/qmake/mkspecs/features/functions.prf
|
||||
--- qtwebengine-opensource-src-5.6.0-beta/tools/qmake/mkspecs/features/functions.prf 2015-12-14 16:27:24.000000000 +0100
|
||||
+++ qtwebengine-opensource-src-5.6.0-beta-fix-extractcflag/tools/qmake/mkspecs/features/functions.prf 2016-01-10 18:15:23.942032985 +0100
|
||||
@@ -87,7 +87,7 @@
|
||||
}
|
||||
|
||||
defineReplace(extractCFlag) {
|
||||
- CFLAGS = $$QMAKE_CC $$QMAKE_CFLAGS
|
||||
+ CFLAGS = $$QMAKE_CC $$QMAKE_CFLAGS $$QMAKE_CFLAGS_RELEASE
|
||||
OPTION = $$find(CFLAGS, $$1)
|
||||
OPTION = $$split(OPTION, =)
|
||||
return ($$member(OPTION, 1))
|
@ -1,26 +0,0 @@
|
||||
diff -ur qtwebengine-opensource-src-5.7.0/src/core/config/linux.pri qtwebengine-opensource-src-5.7.0-linux-pri/src/core/config/linux.pri
|
||||
--- qtwebengine-opensource-src-5.7.0/src/core/config/linux.pri 2016-06-07 06:20:06.000000000 +0200
|
||||
+++ qtwebengine-opensource-src-5.7.0-linux-pri/src/core/config/linux.pri 2016-07-17 22:18:17.312471202 +0200
|
||||
@@ -46,3 +46,22 @@
|
||||
use?(system_icu): GYP_CONFIG += use_system_icu=1 icu_use_data_file_flag=0
|
||||
use?(system_ffmpeg): GYP_CONFIG += use_system_ffmpeg=1
|
||||
use?(system_protobuf): GYP_CONFIG += use_system_protobuf=1
|
||||
+
|
||||
+# some more system packages, that are not checked for for some reason
|
||||
+GYP_CONFIG += use_system_re2=1
|
||||
+
|
||||
+# yasm is only used on x86, and passing use_system_yasm makes the build fail on
|
||||
+# other architectures (e.g., ARM), so make it conditional on the architecture
|
||||
+contains(QT_ARCH, "x86_64")|contains(QT_ARCH, "i386") {
|
||||
+ GYP_CONFIG += use_system_yasm=1
|
||||
+}
|
||||
+
|
||||
+# link libpci instead of dlopening it, our Qt packaging depends on it anyway
|
||||
+GYP_CONFIG += linux_link_libpci=1
|
||||
+
|
||||
+# run the unbundling script Chromium provides
|
||||
+CHROMIUM_SRC_DIR = "$$QTWEBENGINE_ROOT/$$getChromiumSrcDir()"
|
||||
+R_G_F_PY = "$$CHROMIUM_SRC_DIR/build/linux/unbundle/replace_gyp_files.py"
|
||||
+R_G_F_PY_ARGS = "-D use_system_re2=1"
|
||||
+log("Running python $$R_G_F_PY $$R_G_F_PY_ARGS$${EOL}")
|
||||
+!system("python $$R_G_F_PY $$R_G_F_PY_ARGS"): error("-- unbundling failed")
|
@ -1,21 +0,0 @@
|
||||
diff -ur qtwebengine-opensource-src-5.7.0/src/3rdparty/chromium/third_party/webrtc/modules/video_processing/video_processing.gypi qtwebengine-opensource-src-5.7.0-webrtc-neon/src/3rdparty/chromium/third_party/webrtc/modules/video_processing/video_processing.gypi
|
||||
--- qtwebengine-opensource-src-5.7.0/src/3rdparty/chromium/third_party/webrtc/modules/video_processing/video_processing.gypi 2016-05-26 15:53:47.000000000 +0200
|
||||
+++ qtwebengine-opensource-src-5.7.0-webrtc-neon/src/3rdparty/chromium/third_party/webrtc/modules/video_processing/video_processing.gypi 2016-07-18 14:29:24.841980563 +0200
|
||||
@@ -47,7 +47,7 @@
|
||||
['target_arch=="ia32" or target_arch=="x64"', {
|
||||
'dependencies': [ 'video_processing_sse2', ],
|
||||
}],
|
||||
- ['target_arch=="arm" or target_arch == "arm64"', {
|
||||
+ ['build_with_neon==1', {
|
||||
'dependencies': [ 'video_processing_neon', ],
|
||||
}],
|
||||
],
|
||||
@@ -77,7 +77,7 @@
|
||||
},
|
||||
],
|
||||
}],
|
||||
- ['target_arch=="arm" or target_arch == "arm64"', {
|
||||
+ ['build_with_neon==1', {
|
||||
'targets': [
|
||||
{
|
||||
'target_name': 'video_processing_neon',
|
@ -1,12 +0,0 @@
|
||||
diff -ur qtwebengine-opensource-src-5.7.1/src/core/gyp_run.pro qtwebengine-opensource-src-5.7.1-arm-fpu-fix/src/core/gyp_run.pro
|
||||
--- qtwebengine-opensource-src-5.7.1/src/core/gyp_run.pro 2016-11-09 06:28:31.000000000 +0100
|
||||
+++ qtwebengine-opensource-src-5.7.1-arm-fpu-fix/src/core/gyp_run.pro 2016-12-03 16:38:33.531711958 +0100
|
||||
@@ -80,7 +80,7 @@
|
||||
# we use arm_neon_optional for ARMv7 and newer and let chromium decide
|
||||
# about the mfpu option.
|
||||
contains(MFPU, ".*neon.*"): GYP_CONFIG += arm_fpu=\"$$MFPU\" arm_neon=1
|
||||
- else:!lessThan(MARMV, 7): GYP_CONFIG += arm_neon=0 arm_neon_optional=1
|
||||
+ else:!lessThan(MARMV, 7): GYP_CONFIG += arm_fpu=\"$$MFPU\" arm_neon=0 arm_neon_optional=1
|
||||
else: GYP_CONFIG += arm_fpu=\"$$MFPU\" arm_neon=0 arm_neon_optional=0
|
||||
} else {
|
||||
# Chromium defaults to arm_neon=1, Qt does not.
|
@ -1,15 +0,0 @@
|
||||
diff -ur qtwebengine-opensource-src-5.7.1/src/core/gyp_run.pro qtwebengine-opensource-src-5.7.1-no-neon/src/core/gyp_run.pro
|
||||
--- qtwebengine-opensource-src-5.7.1/src/core/gyp_run.pro 2016-11-09 06:28:31.000000000 +0100
|
||||
+++ qtwebengine-opensource-src-5.7.1-no-neon/src/core/gyp_run.pro 2016-12-03 16:36:39.039443117 +0100
|
||||
@@ -80,7 +80,10 @@
|
||||
# we use arm_neon_optional for ARMv7 and newer and let chromium decide
|
||||
# about the mfpu option.
|
||||
contains(MFPU, ".*neon.*"): GYP_CONFIG += arm_fpu=\"$$MFPU\" arm_neon=1
|
||||
- else:!lessThan(MARMV, 7): GYP_CONFIG += arm_neon=0 arm_neon_optional=1
|
||||
+ # Disable NEON entirely for now, because it fails to build:
|
||||
+ # https://bugzilla.redhat.com/show_bug.cgi?id=1282495
|
||||
+ # (This line was also missing the required arm_fpu flag, which I added.)
|
||||
+ # else:!lessThan(MARMV, 7): GYP_CONFIG += arm_fpu=\"$$MFPU\" arm_neon=0 arm_neon_optional=1
|
||||
else: GYP_CONFIG += arm_fpu=\"$$MFPU\" arm_neon=0 arm_neon_optional=0
|
||||
} else {
|
||||
# Chromium defaults to arm_neon=1, Qt does not.
|
@ -1,15 +0,0 @@
|
||||
diff -ur qtwebengine-opensource-src-5.7.1/src/3rdparty/chromium/skia/skia_library.gypi qtwebengine-opensource-src-5.7.1-skia-neon/src/3rdparty/chromium/skia/skia_library.gypi
|
||||
--- qtwebengine-opensource-src-5.7.1/src/3rdparty/chromium/skia/skia_library.gypi 2016-11-07 15:46:18.000000000 +0100
|
||||
+++ qtwebengine-opensource-src-5.7.1-skia-neon/src/3rdparty/chromium/skia/skia_library.gypi 2016-12-04 14:34:12.531877529 +0100
|
||||
@@ -159,6 +159,11 @@
|
||||
'../build/android/ndk.gyp:cpu_features',
|
||||
],
|
||||
}],
|
||||
+ [ 'OS != "android" and target_arch == "arm"', {
|
||||
+ 'sources': [
|
||||
+ '../third_party/skia/src/core/SkUtilsArm.cpp',
|
||||
+ ],
|
||||
+ }],
|
||||
[ 'desktop_linux == 1 or chromeos == 1 or qt_os=="embedded_linux"', {
|
||||
'dependencies': [
|
||||
'../build/linux/system.gyp:fontconfig',
|
@ -1,40 +0,0 @@
|
||||
From 31374ba98829e984c7600419c0e5fa71b96fc530 Mon Sep 17 00:00:00 2001
|
||||
From: Peter Varga <pvarga@inf.u-szeged.hu>
|
||||
Date: Fri, 24 Mar 2017 14:31:02 +0100
|
||||
Subject: Forward input method events to RWHV in widget
|
||||
|
||||
Task-number: QTBUG-58362
|
||||
Change-Id: Id4cf57c60da17538b224bb9bc91277c324c6a55d
|
||||
Reviewed-by: Viktor Engelmann <viktor.engelmann@qt.io>
|
||||
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
|
||||
---
|
||||
.../render_widget_host_view_qt_delegate_widget.cpp | 9 +++++++++
|
||||
1 file changed, 9 insertions(+)
|
||||
|
||||
diff --git a/src/webenginewidgets/render_widget_host_view_qt_delegate_widget.cpp b/src/webenginewidgets/render_widget_host_view_qt_delegate_widget.cpp
|
||||
index 14c4d72..fd58a07 100644
|
||||
--- a/src/webenginewidgets/render_widget_host_view_qt_delegate_widget.cpp
|
||||
+++ b/src/webenginewidgets/render_widget_host_view_qt_delegate_widget.cpp
|
||||
@@ -84,10 +84,19 @@ protected:
|
||||
{
|
||||
m_client->forwardEvent(event);
|
||||
}
|
||||
+ void inputMethodEvent(QInputMethodEvent *event) override
|
||||
+ {
|
||||
+ m_client->forwardEvent(event);
|
||||
+ }
|
||||
QSGNode *updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *) override
|
||||
{
|
||||
return m_client->updatePaintNode(oldNode);
|
||||
}
|
||||
+
|
||||
+ QVariant inputMethodQuery(Qt::InputMethodQuery query) const override
|
||||
+ {
|
||||
+ return m_client->inputMethodQuery(query);
|
||||
+ }
|
||||
private:
|
||||
RenderWidgetHostViewQtDelegateClient *m_client;
|
||||
};
|
||||
--
|
||||
cgit v1.0-4-g1e03
|
||||
|
@ -1,46 +0,0 @@
|
||||
From 8e147ed3be7740092de233a2a7c67ec890069649 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20Br=C3=BCning?= <michael.bruning@qt.io>
|
||||
Date: Mon, 13 Mar 2017 11:13:56 +0100
|
||||
Subject: Remove stale parent connection when initializing delegate as a child
|
||||
|
||||
When clicking on a blank link target, the constructor of the
|
||||
RenderWidgetHostViewQtDelegateWidget instance for the newly created
|
||||
view is called with the originating QWebEngineView as its parent
|
||||
and will connect its removeParentBeforeParentDelete slot to the
|
||||
originating view's destroyed signal.
|
||||
|
||||
This leads to the situation where the delegate's parent will be set to
|
||||
null when the originating view is closed, causing the view to display
|
||||
only an empty widget with the actual web contents remaining live in
|
||||
the background.
|
||||
|
||||
This patch removes the connection to the old view when initializing
|
||||
the delegate as a child of the QWebEnginePagePrivate instance. The
|
||||
addition to the layout updates the parent and child relationship
|
||||
between the view and the delegate internally.
|
||||
|
||||
Task-number: QTBUG-58381
|
||||
Change-Id: I448380478c2bcfcfbddaee8a35caf46010e57972
|
||||
Reviewed-by: Florian Bruhin <qt-project.org@the-compiler.org>
|
||||
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
|
||||
---
|
||||
src/webenginewidgets/render_widget_host_view_qt_delegate_widget.cpp | 3 +++
|
||||
1 file changed, 3 insertions(+)
|
||||
|
||||
diff --git a/src/webenginewidgets/render_widget_host_view_qt_delegate_widget.cpp b/src/webenginewidgets/render_widget_host_view_qt_delegate_widget.cpp
|
||||
index e7ad5b1..14c4d72 100644
|
||||
--- a/src/webenginewidgets/render_widget_host_view_qt_delegate_widget.cpp
|
||||
+++ b/src/webenginewidgets/render_widget_host_view_qt_delegate_widget.cpp
|
||||
@@ -163,6 +163,9 @@ void RenderWidgetHostViewQtDelegateWidget::initAsChild(WebContentsAdapterClient*
|
||||
|
||||
QWebEnginePagePrivate *pagePrivate = static_cast<QWebEnginePagePrivate *>(container);
|
||||
if (pagePrivate->view) {
|
||||
+ if (parentWidget())
|
||||
+ disconnect(parentWidget(), &QObject::destroyed,
|
||||
+ this, &RenderWidgetHostViewQtDelegateWidget::removeParentBeforeParentDelete);
|
||||
pagePrivate->view->layout()->addWidget(this);
|
||||
pagePrivate->view->setFocusProxy(this);
|
||||
show();
|
||||
--
|
||||
cgit v1.0-4-g1e03
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,600 +0,0 @@
|
||||
diff -ur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/javascript/app.cpp qtwebengine-opensource-src-5.8.0-pdfium-gcc7/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/javascript/app.cpp
|
||||
--- qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/javascript/app.cpp 2017-01-03 10:28:53.000000000 +0100
|
||||
+++ qtwebengine-opensource-src-5.8.0-pdfium-gcc7/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/javascript/app.cpp 2017-03-06 13:04:01.784297561 +0100
|
||||
@@ -454,7 +454,7 @@
|
||||
}
|
||||
|
||||
void app::ClearTimerCommon(const CJS_Value& param) {
|
||||
- if (param.GetType() != CJS_Value::VT_fxobject)
|
||||
+ if (param.GetType() != CJS_Value::VT_object)
|
||||
return;
|
||||
|
||||
v8::Local<v8::Object> pObj = param.ToV8Object();
|
||||
diff -ur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/javascript/Document.cpp qtwebengine-opensource-src-5.8.0-pdfium-gcc7/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/javascript/Document.cpp
|
||||
--- qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/javascript/Document.cpp 2017-01-03 10:28:53.000000000 +0100
|
||||
+++ qtwebengine-opensource-src-5.8.0-pdfium-gcc7/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/javascript/Document.cpp 2017-03-06 13:04:01.783297575 +0100
|
||||
@@ -411,22 +411,20 @@
|
||||
|
||||
int nlength = params.size();
|
||||
if (nlength == 9) {
|
||||
- if (params[8].GetType() == CJS_Value::VT_fxobject) {
|
||||
+ if (params[8].GetType() == CJS_Value::VT_object) {
|
||||
v8::Local<v8::Object> pObj = params[8].ToV8Object();
|
||||
- {
|
||||
- if (FXJS_GetObjDefnID(pObj) == CJS_PrintParamsObj::g_nObjDefnID) {
|
||||
- if (CJS_Object* pJSObj = params[8].ToCJSObject()) {
|
||||
- if (PrintParamsObj* pprintparamsObj =
|
||||
- (PrintParamsObj*)pJSObj->GetEmbedObject()) {
|
||||
- bUI = pprintparamsObj->bUI;
|
||||
- nStart = pprintparamsObj->nStart;
|
||||
- nEnd = pprintparamsObj->nEnd;
|
||||
- bSilent = pprintparamsObj->bSilent;
|
||||
- bShrinkToFit = pprintparamsObj->bShrinkToFit;
|
||||
- bPrintAsImage = pprintparamsObj->bPrintAsImage;
|
||||
- bReverse = pprintparamsObj->bReverse;
|
||||
- bAnnotations = pprintparamsObj->bAnnotations;
|
||||
- }
|
||||
+ if (FXJS_GetObjDefnID(pObj) == CJS_PrintParamsObj::g_nObjDefnID) {
|
||||
+ if (CJS_Object* pJSObj = params[8].ToCJSObject()) {
|
||||
+ if (PrintParamsObj* pprintparamsObj =
|
||||
+ static_cast<PrintParamsObj*>(pJSObj->GetEmbedObject())) {
|
||||
+ bUI = pprintparamsObj->bUI;
|
||||
+ nStart = pprintparamsObj->nStart;
|
||||
+ nEnd = pprintparamsObj->nEnd;
|
||||
+ bSilent = pprintparamsObj->bSilent;
|
||||
+ bShrinkToFit = pprintparamsObj->bShrinkToFit;
|
||||
+ bPrintAsImage = pprintparamsObj->bPrintAsImage;
|
||||
+ bReverse = pprintparamsObj->bReverse;
|
||||
+ bAnnotations = pprintparamsObj->bAnnotations;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -597,18 +595,16 @@
|
||||
v8::Local<v8::Object> pObj = params[0].ToV8Object();
|
||||
v8::Local<v8::Value> pValue = FXJS_GetObjectElement(isolate, pObj, L"cURL");
|
||||
if (!pValue.IsEmpty())
|
||||
- strURL =
|
||||
- CJS_Value(pRuntime, pValue, GET_VALUE_TYPE(pValue)).ToCFXWideString();
|
||||
+ strURL = CJS_Value(pRuntime, pValue).ToCFXWideString();
|
||||
|
||||
pValue = FXJS_GetObjectElement(isolate, pObj, L"bFDF");
|
||||
- bFDF = CJS_Value(pRuntime, pValue, GET_VALUE_TYPE(pValue)).ToBool();
|
||||
+ bFDF = CJS_Value(pRuntime, pValue).ToBool();
|
||||
|
||||
pValue = FXJS_GetObjectElement(isolate, pObj, L"bEmpty");
|
||||
- bEmpty = CJS_Value(pRuntime, pValue, GET_VALUE_TYPE(pValue)).ToBool();
|
||||
+ bEmpty = CJS_Value(pRuntime, pValue).ToBool();
|
||||
|
||||
pValue = FXJS_GetObjectElement(isolate, pObj, L"aFields");
|
||||
- aFields.Attach(
|
||||
- CJS_Value(pRuntime, pValue, GET_VALUE_TYPE(pValue)).ToV8Array());
|
||||
+ aFields.Attach(CJS_Value(pRuntime, pValue).ToV8Array());
|
||||
}
|
||||
|
||||
CPDFSDK_InterForm* pInterForm = m_pDocument->GetInterForm();
|
||||
@@ -691,25 +687,22 @@
|
||||
v8::Local<v8::Object> pObj = params[0].ToV8Object();
|
||||
|
||||
v8::Local<v8::Value> pValue = FXJS_GetObjectElement(isolate, pObj, L"bUI");
|
||||
- bUI = CJS_Value(pRuntime, pValue, GET_VALUE_TYPE(pValue)).ToInt();
|
||||
+ bUI = CJS_Value(pRuntime, pValue).ToInt();
|
||||
|
||||
pValue = FXJS_GetObjectElement(isolate, pObj, L"cTo");
|
||||
- cTo = CJS_Value(pRuntime, pValue, GET_VALUE_TYPE(pValue)).ToCFXWideString();
|
||||
+ cTo = CJS_Value(pRuntime, pValue).ToCFXWideString();
|
||||
|
||||
pValue = FXJS_GetObjectElement(isolate, pObj, L"cCc");
|
||||
- cCc = CJS_Value(pRuntime, pValue, GET_VALUE_TYPE(pValue)).ToCFXWideString();
|
||||
+ cCc = CJS_Value(pRuntime, pValue).ToCFXWideString();
|
||||
|
||||
pValue = FXJS_GetObjectElement(isolate, pObj, L"cBcc");
|
||||
- cBcc =
|
||||
- CJS_Value(pRuntime, pValue, GET_VALUE_TYPE(pValue)).ToCFXWideString();
|
||||
+ cBcc = CJS_Value(pRuntime, pValue).ToCFXWideString();
|
||||
|
||||
pValue = FXJS_GetObjectElement(isolate, pObj, L"cSubject");
|
||||
- cSubject =
|
||||
- CJS_Value(pRuntime, pValue, GET_VALUE_TYPE(pValue)).ToCFXWideString();
|
||||
+ cSubject = CJS_Value(pRuntime, pValue).ToCFXWideString();
|
||||
|
||||
pValue = FXJS_GetObjectElement(isolate, pObj, L"cMsg");
|
||||
- cMsg =
|
||||
- CJS_Value(pRuntime, pValue, GET_VALUE_TYPE(pValue)).ToCFXWideString();
|
||||
+ cMsg = CJS_Value(pRuntime, pValue).ToCFXWideString();
|
||||
}
|
||||
|
||||
pRuntime->BeginBlock();
|
||||
diff -ur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/javascript/global.cpp qtwebengine-opensource-src-5.8.0-pdfium-gcc7/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/javascript/global.cpp
|
||||
--- qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/javascript/global.cpp 2017-01-03 10:28:53.000000000 +0100
|
||||
+++ qtwebengine-opensource-src-5.8.0-pdfium-gcc7/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/javascript/global.cpp 2017-03-06 13:04:01.785297546 +0100
|
||||
@@ -17,63 +17,6 @@
|
||||
#include "fpdfsdk/javascript/cjs_context.h"
|
||||
#include "fpdfsdk/javascript/resource.h"
|
||||
|
||||
-// Helper class for compile-time calculation of hash values in order to
|
||||
-// avoid having global object initializers.
|
||||
-template <unsigned ACC, wchar_t... Ns>
|
||||
-struct CHash;
|
||||
-
|
||||
-// Only needed to hash single-character strings.
|
||||
-template <wchar_t N>
|
||||
-struct CHash<N> {
|
||||
- static const unsigned value = N;
|
||||
-};
|
||||
-
|
||||
-template <unsigned ACC, wchar_t N>
|
||||
-struct CHash<ACC, N> {
|
||||
- static const unsigned value = (ACC * 1313LLU + N) & 0xFFFFFFFF;
|
||||
-};
|
||||
-
|
||||
-template <unsigned ACC, wchar_t N, wchar_t... Ns>
|
||||
-struct CHash<ACC, N, Ns...> {
|
||||
- static const unsigned value = CHash<CHash<ACC, N>::value, Ns...>::value;
|
||||
-};
|
||||
-
|
||||
-const unsigned int JSCONST_nStringHash =
|
||||
- CHash<'s', 't', 'r', 'i', 'n', 'g'>::value;
|
||||
-const unsigned int JSCONST_nNumberHash =
|
||||
- CHash<'n', 'u', 'm', 'b', 'e', 'r'>::value;
|
||||
-const unsigned int JSCONST_nBoolHash =
|
||||
- CHash<'b', 'o', 'o', 'l', 'e', 'a', 'n'>::value;
|
||||
-const unsigned int JSCONST_nDateHash = CHash<'d', 'a', 't', 'e'>::value;
|
||||
-const unsigned int JSCONST_nObjectHash =
|
||||
- CHash<'o', 'b', 'j', 'e', 'c', 't'>::value;
|
||||
-const unsigned int JSCONST_nFXobjHash = CHash<'f', 'x', 'o', 'b', 'j'>::value;
|
||||
-const unsigned int JSCONST_nNullHash = CHash<'n', 'u', 'l', 'l'>::value;
|
||||
-const unsigned int JSCONST_nUndefHash =
|
||||
- CHash<'u', 'n', 'd', 'e', 'f', 'i', 'n', 'e', 'd'>::value;
|
||||
-
|
||||
-static unsigned JS_CalcHash(const wchar_t* main) {
|
||||
- return (unsigned)FX_HashCode_GetW(CFX_WideStringC(main), false);
|
||||
-}
|
||||
-
|
||||
-#ifndef NDEBUG
|
||||
-class HashVerify {
|
||||
- public:
|
||||
- HashVerify();
|
||||
-} g_hashVerify;
|
||||
-
|
||||
-HashVerify::HashVerify() {
|
||||
- ASSERT(JSCONST_nStringHash == JS_CalcHash(kFXJSValueNameString));
|
||||
- ASSERT(JSCONST_nNumberHash == JS_CalcHash(kFXJSValueNameNumber));
|
||||
- ASSERT(JSCONST_nBoolHash == JS_CalcHash(kFXJSValueNameBoolean));
|
||||
- ASSERT(JSCONST_nDateHash == JS_CalcHash(kFXJSValueNameDate));
|
||||
- ASSERT(JSCONST_nObjectHash == JS_CalcHash(kFXJSValueNameObject));
|
||||
- ASSERT(JSCONST_nFXobjHash == JS_CalcHash(kFXJSValueNameFxobj));
|
||||
- ASSERT(JSCONST_nNullHash == JS_CalcHash(kFXJSValueNameNull));
|
||||
- ASSERT(JSCONST_nUndefHash == JS_CalcHash(kFXJSValueNameUndefined));
|
||||
-}
|
||||
-#endif
|
||||
-
|
||||
BEGIN_JS_STATIC_CONST(CJS_Global)
|
||||
END_JS_STATIC_CONST()
|
||||
|
||||
@@ -335,9 +278,8 @@
|
||||
CFX_WideString ws =
|
||||
FXJS_ToString(isolate, FXJS_GetArrayElement(isolate, pKeyList, i));
|
||||
CFX_ByteString sKey = ws.UTF8Encode();
|
||||
-
|
||||
v8::Local<v8::Value> v = FXJS_GetObjectElement(isolate, pObj, ws);
|
||||
- switch (GET_VALUE_TYPE(v)) {
|
||||
+ switch (CJS_Value::GetValueType(v)) {
|
||||
case CJS_Value::VT_number: {
|
||||
CJS_KeyValue* pObjElement = new CJS_KeyValue;
|
||||
pObjElement->nType = JS_GLOBALDATA_TYPE_NUMBER;
|
||||
@@ -353,8 +295,7 @@
|
||||
array.Add(pObjElement);
|
||||
} break;
|
||||
case CJS_Value::VT_string: {
|
||||
- CFX_ByteString sValue =
|
||||
- CJS_Value(pRuntime, v, CJS_Value::VT_string).ToCFXByteString();
|
||||
+ CFX_ByteString sValue = CJS_Value(pRuntime, v).ToCFXByteString();
|
||||
CJS_KeyValue* pObjElement = new CJS_KeyValue;
|
||||
pObjElement->nType = JS_GLOBALDATA_TYPE_STRING;
|
||||
pObjElement->sKey = sKey;
|
||||
@@ -500,26 +441,3 @@
|
||||
m_mapGlobal[propname] = pNewData;
|
||||
return TRUE;
|
||||
}
|
||||
-
|
||||
-CJS_Value::Type GET_VALUE_TYPE(v8::Local<v8::Value> p) {
|
||||
- const unsigned int nHash = JS_CalcHash(FXJS_GetTypeof(p));
|
||||
-
|
||||
- if (nHash == JSCONST_nUndefHash)
|
||||
- return CJS_Value::VT_undefined;
|
||||
- if (nHash == JSCONST_nNullHash)
|
||||
- return CJS_Value::VT_null;
|
||||
- if (nHash == JSCONST_nStringHash)
|
||||
- return CJS_Value::VT_string;
|
||||
- if (nHash == JSCONST_nNumberHash)
|
||||
- return CJS_Value::VT_number;
|
||||
- if (nHash == JSCONST_nBoolHash)
|
||||
- return CJS_Value::VT_boolean;
|
||||
- if (nHash == JSCONST_nDateHash)
|
||||
- return CJS_Value::VT_date;
|
||||
- if (nHash == JSCONST_nObjectHash)
|
||||
- return CJS_Value::VT_object;
|
||||
- if (nHash == JSCONST_nFXobjHash)
|
||||
- return CJS_Value::VT_fxobject;
|
||||
-
|
||||
- return CJS_Value::VT_unknown;
|
||||
-}
|
||||
diff -ur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/javascript/JS_Define.h qtwebengine-opensource-src-5.8.0-pdfium-gcc7/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/javascript/JS_Define.h
|
||||
--- qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/javascript/JS_Define.h 2017-01-03 10:28:53.000000000 +0100
|
||||
+++ qtwebengine-opensource-src-5.8.0-pdfium-gcc7/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/javascript/JS_Define.h 2017-03-06 13:04:01.783297575 +0100
|
||||
@@ -111,7 +111,7 @@
|
||||
CJS_Object* pJSObj = (CJS_Object*)FXJS_GetPrivate(isolate, info.Holder());
|
||||
C* pObj = reinterpret_cast<C*>(pJSObj->GetEmbedObject());
|
||||
CFX_WideString sError;
|
||||
- CJS_PropValue propValue(CJS_Value(pRuntime, value, CJS_Value::VT_unknown));
|
||||
+ CJS_PropValue propValue(CJS_Value(pRuntime, value));
|
||||
propValue.StartSetting();
|
||||
if (!(pObj->*M)(pContext, propValue, sError)) {
|
||||
FXJS_Error(isolate, JSFormatErrorString(class_name_string, prop_name_string,
|
||||
@@ -149,7 +149,7 @@
|
||||
IJS_Context* pContext = pRuntime->GetCurrentContext();
|
||||
std::vector<CJS_Value> parameters;
|
||||
for (unsigned int i = 0; i < (unsigned int)info.Length(); i++) {
|
||||
- parameters.push_back(CJS_Value(pRuntime, info[i], CJS_Value::VT_unknown));
|
||||
+ parameters.push_back(CJS_Value(pRuntime, info[i]));
|
||||
}
|
||||
CJS_Value valueRes(pRuntime);
|
||||
CJS_Object* pJSObj = (CJS_Object*)FXJS_GetPrivate(isolate, info.Holder());
|
||||
@@ -404,7 +404,7 @@
|
||||
CFX_WideString propname = CFX_WideString::FromUTF8(
|
||||
CFX_ByteStringC(*utf8_value, utf8_value.length()));
|
||||
CFX_WideString sError;
|
||||
- CJS_PropValue PropValue(CJS_Value(pRuntime, value, CJS_Value::VT_unknown));
|
||||
+ CJS_PropValue PropValue(CJS_Value(pRuntime, value));
|
||||
PropValue.StartSetting();
|
||||
if (!pObj->DoProperty(pContext, propname.c_str(), PropValue, sError)) {
|
||||
FXJS_Error(isolate, JSFormatErrorString(class_name, "PutProperty", sError));
|
||||
@@ -447,7 +447,7 @@
|
||||
IJS_Context* pContext = pRuntime->GetCurrentContext();
|
||||
std::vector<CJS_Value> parameters;
|
||||
for (unsigned int i = 0; i < (unsigned int)info.Length(); i++) {
|
||||
- parameters.push_back(CJS_Value(pRuntime, info[i], CJS_Value::VT_unknown));
|
||||
+ parameters.push_back(CJS_Value(pRuntime, info[i]));
|
||||
}
|
||||
CJS_Value valueRes(pRuntime);
|
||||
CFX_WideString sError;
|
||||
@@ -485,6 +485,4 @@
|
||||
} \
|
||||
}
|
||||
|
||||
-CJS_Value::Type GET_VALUE_TYPE(v8::Local<v8::Value> p);
|
||||
-
|
||||
#endif // FPDFSDK_JAVASCRIPT_JS_DEFINE_H_
|
||||
diff -ur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/javascript/JS_Value.cpp qtwebengine-opensource-src-5.8.0-pdfium-gcc7/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/javascript/JS_Value.cpp
|
||||
--- qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/javascript/JS_Value.cpp 2017-01-03 10:28:53.000000000 +0100
|
||||
+++ qtwebengine-opensource-src-5.8.0-pdfium-gcc7/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/javascript/JS_Value.cpp 2017-03-06 13:10:30.896809956 +0100
|
||||
@@ -22,11 +22,10 @@
|
||||
return *(double*)g_nan;
|
||||
}
|
||||
|
||||
-CJS_Value::CJS_Value(CJS_Runtime* pRuntime)
|
||||
- : m_eType(VT_unknown), m_pJSRuntime(pRuntime) {}
|
||||
+CJS_Value::CJS_Value(CJS_Runtime* pRuntime) : m_pJSRuntime(pRuntime) {}
|
||||
|
||||
-CJS_Value::CJS_Value(CJS_Runtime* pRuntime, v8::Local<v8::Value> pValue, Type t)
|
||||
- : m_eType(t), m_pValue(pValue), m_pJSRuntime(pRuntime) {}
|
||||
+CJS_Value::CJS_Value(CJS_Runtime* pRuntime, v8::Local<v8::Value> pValue)
|
||||
+ : m_pValue(pValue), m_pJSRuntime(pRuntime) {}
|
||||
|
||||
CJS_Value::CJS_Value(CJS_Runtime* pRuntime, const int& iValue)
|
||||
: m_pJSRuntime(pRuntime) {
|
||||
@@ -48,23 +47,11 @@
|
||||
operator=(dValue);
|
||||
}
|
||||
|
||||
-CJS_Value::CJS_Value(CJS_Runtime* pRuntime, v8::Local<v8::Object> pJsObj)
|
||||
- : m_pJSRuntime(pRuntime) {
|
||||
- operator=(pJsObj);
|
||||
-}
|
||||
-
|
||||
CJS_Value::CJS_Value(CJS_Runtime* pRuntime, CJS_Object* pJsObj)
|
||||
: m_pJSRuntime(pRuntime) {
|
||||
operator=(pJsObj);
|
||||
}
|
||||
|
||||
-CJS_Value::CJS_Value(CJS_Runtime* pRuntime, CJS_Document* pJsDoc)
|
||||
- : m_pJSRuntime(pRuntime) {
|
||||
- m_eType = VT_object;
|
||||
- if (pJsDoc)
|
||||
- m_pValue = pJsDoc->ToV8Object();
|
||||
-}
|
||||
-
|
||||
CJS_Value::CJS_Value(CJS_Runtime* pRuntime, const FX_WCHAR* pWstr)
|
||||
: m_pJSRuntime(pRuntime) {
|
||||
operator=(pWstr);
|
||||
@@ -84,19 +71,17 @@
|
||||
|
||||
CJS_Value::CJS_Value(const CJS_Value& other) = default;
|
||||
|
||||
-void CJS_Value::Attach(v8::Local<v8::Value> pValue, Type t) {
|
||||
+void CJS_Value::Attach(v8::Local<v8::Value> pValue) {
|
||||
m_pValue = pValue;
|
||||
- m_eType = t;
|
||||
}
|
||||
|
||||
void CJS_Value::Attach(CJS_Value* pValue) {
|
||||
if (pValue)
|
||||
- Attach(pValue->ToV8Value(), pValue->GetType());
|
||||
+ Attach(pValue->ToV8Value());
|
||||
}
|
||||
|
||||
void CJS_Value::Detach() {
|
||||
m_pValue = v8::Local<v8::Value>();
|
||||
- m_eType = VT_unknown;
|
||||
}
|
||||
|
||||
int CJS_Value::ToInt() const {
|
||||
@@ -146,7 +131,7 @@
|
||||
|
||||
void CJS_Value::MaybeCoerceToNumber() {
|
||||
bool bAllowNaN = false;
|
||||
- if (m_eType == VT_string) {
|
||||
+ if (GetType() == VT_string) {
|
||||
CFX_ByteString bstr = ToCFXByteString();
|
||||
if (bstr.GetLength() == 0)
|
||||
return;
|
||||
@@ -162,32 +147,26 @@
|
||||
if (std::isnan(num->Value()) && !bAllowNaN)
|
||||
return;
|
||||
m_pValue = num;
|
||||
- m_eType = VT_number;
|
||||
}
|
||||
|
||||
void CJS_Value::operator=(int iValue) {
|
||||
m_pValue = FXJS_NewNumber(m_pJSRuntime->GetIsolate(), iValue);
|
||||
- m_eType = VT_number;
|
||||
}
|
||||
|
||||
void CJS_Value::operator=(bool bValue) {
|
||||
m_pValue = FXJS_NewBoolean(m_pJSRuntime->GetIsolate(), bValue);
|
||||
- m_eType = VT_boolean;
|
||||
}
|
||||
|
||||
void CJS_Value::operator=(double dValue) {
|
||||
m_pValue = FXJS_NewNumber(m_pJSRuntime->GetIsolate(), dValue);
|
||||
- m_eType = VT_number;
|
||||
}
|
||||
|
||||
void CJS_Value::operator=(float fValue) {
|
||||
m_pValue = FXJS_NewNumber(m_pJSRuntime->GetIsolate(), fValue);
|
||||
- m_eType = VT_number;
|
||||
}
|
||||
|
||||
void CJS_Value::operator=(v8::Local<v8::Object> pObj) {
|
||||
m_pValue = FXJS_NewObject(m_pJSRuntime->GetIsolate(), pObj);
|
||||
- m_eType = VT_fxobject;
|
||||
}
|
||||
|
||||
void CJS_Value::operator=(CJS_Object* pObj) {
|
||||
@@ -195,21 +174,12 @@
|
||||
operator=(pObj->ToV8Object());
|
||||
}
|
||||
|
||||
-void CJS_Value::operator=(CJS_Document* pJsDoc) {
|
||||
- m_eType = VT_object;
|
||||
- if (pJsDoc) {
|
||||
- m_pValue = pJsDoc->ToV8Object();
|
||||
- }
|
||||
-}
|
||||
-
|
||||
void CJS_Value::operator=(const FX_WCHAR* pWstr) {
|
||||
m_pValue = FXJS_NewString(m_pJSRuntime->GetIsolate(), (wchar_t*)pWstr);
|
||||
- m_eType = VT_string;
|
||||
}
|
||||
|
||||
void CJS_Value::SetNull() {
|
||||
m_pValue = FXJS_NewNull();
|
||||
- m_eType = VT_null;
|
||||
}
|
||||
|
||||
void CJS_Value::operator=(const FX_CHAR* pStr) {
|
||||
@@ -219,36 +189,34 @@
|
||||
void CJS_Value::operator=(CJS_Array& array) {
|
||||
m_pValue =
|
||||
FXJS_NewObject2(m_pJSRuntime->GetIsolate(), (v8::Local<v8::Array>)array);
|
||||
- m_eType = VT_object;
|
||||
}
|
||||
|
||||
void CJS_Value::operator=(CJS_Date& date) {
|
||||
m_pValue = FXJS_NewDate(m_pJSRuntime->GetIsolate(), (double)date);
|
||||
- m_eType = VT_date;
|
||||
}
|
||||
|
||||
void CJS_Value::operator=(CJS_Value value) {
|
||||
m_pValue = value.ToV8Value();
|
||||
- m_eType = value.m_eType;
|
||||
m_pJSRuntime = value.m_pJSRuntime;
|
||||
}
|
||||
|
||||
-CJS_Value::Type CJS_Value::GetType() const {
|
||||
- if (m_pValue.IsEmpty())
|
||||
+// static
|
||||
+CJS_Value::Type CJS_Value::GetValueType(v8::Local<v8::Value> value) {
|
||||
+ if (value.IsEmpty())
|
||||
return VT_unknown;
|
||||
- if (m_pValue->IsString())
|
||||
+ if (value->IsString())
|
||||
return VT_string;
|
||||
- if (m_pValue->IsNumber())
|
||||
+ if (value->IsNumber())
|
||||
return VT_number;
|
||||
- if (m_pValue->IsBoolean())
|
||||
+ if (value->IsBoolean())
|
||||
return VT_boolean;
|
||||
- if (m_pValue->IsDate())
|
||||
+ if (value->IsDate())
|
||||
return VT_date;
|
||||
- if (m_pValue->IsObject())
|
||||
+ if (value->IsObject())
|
||||
return VT_object;
|
||||
- if (m_pValue->IsNull())
|
||||
+ if (value->IsNull())
|
||||
return VT_null;
|
||||
- if (m_pValue->IsUndefined())
|
||||
+ if (value->IsUndefined())
|
||||
return VT_undefined;
|
||||
return VT_unknown;
|
||||
}
|
||||
@@ -427,7 +395,7 @@
|
||||
return;
|
||||
v8::Local<v8::Value> p =
|
||||
FXJS_GetArrayElement(m_pJSRuntime->GetIsolate(), m_pArray, index);
|
||||
- value.Attach(p, CJS_Value::VT_object);
|
||||
+ value.Attach(p);
|
||||
}
|
||||
|
||||
void CJS_Array::SetElement(unsigned index, CJS_Value value) {
|
||||
@@ -899,7 +867,7 @@
|
||||
v8::Local<v8::Value> v8Value =
|
||||
FXJS_GetObjectElement(pRuntime->GetIsolate(), pObj, property);
|
||||
if (!v8Value->IsUndefined())
|
||||
- result[i] = CJS_Value(pRuntime, v8Value, CJS_Value::VT_unknown);
|
||||
+ result[i] = CJS_Value(pRuntime, v8Value);
|
||||
}
|
||||
va_end(ap);
|
||||
return result;
|
||||
diff -ur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/javascript/JS_Value.h qtwebengine-opensource-src-5.8.0-pdfium-gcc7/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/javascript/JS_Value.h
|
||||
--- qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/javascript/JS_Value.h 2017-01-03 10:28:53.000000000 +0100
|
||||
+++ qtwebengine-opensource-src-5.8.0-pdfium-gcc7/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/javascript/JS_Value.h 2017-03-06 13:04:01.784297561 +0100
|
||||
@@ -27,20 +27,17 @@
|
||||
VT_boolean,
|
||||
VT_date,
|
||||
VT_object,
|
||||
- VT_fxobject,
|
||||
VT_null,
|
||||
VT_undefined
|
||||
};
|
||||
|
||||
CJS_Value(CJS_Runtime* pRuntime);
|
||||
- CJS_Value(CJS_Runtime* pRuntime, v8::Local<v8::Value> pValue, Type t);
|
||||
+ CJS_Value(CJS_Runtime* pRuntime, v8::Local<v8::Value> pValue);
|
||||
CJS_Value(CJS_Runtime* pRuntime, const int& iValue);
|
||||
CJS_Value(CJS_Runtime* pRuntime, const double& dValue);
|
||||
CJS_Value(CJS_Runtime* pRuntime, const float& fValue);
|
||||
CJS_Value(CJS_Runtime* pRuntime, const bool& bValue);
|
||||
- CJS_Value(CJS_Runtime* pRuntime, v8::Local<v8::Object>);
|
||||
- CJS_Value(CJS_Runtime* pRuntime, CJS_Object*);
|
||||
- CJS_Value(CJS_Runtime* pRuntime, CJS_Document*);
|
||||
+ CJS_Value(CJS_Runtime* pRuntime, CJS_Object* pObj);
|
||||
CJS_Value(CJS_Runtime* pRuntime, const FX_CHAR* pStr);
|
||||
CJS_Value(CJS_Runtime* pRuntime, const FX_WCHAR* pWstr);
|
||||
CJS_Value(CJS_Runtime* pRuntime, CJS_Array& array);
|
||||
@@ -49,11 +46,12 @@
|
||||
CJS_Value(const CJS_Value& other);
|
||||
|
||||
void SetNull();
|
||||
- void Attach(v8::Local<v8::Value> pValue, Type t);
|
||||
+ void Attach(v8::Local<v8::Value> pValue);
|
||||
void Attach(CJS_Value* pValue);
|
||||
void Detach();
|
||||
|
||||
- Type GetType() const;
|
||||
+ static Type GetValueType(v8::Local<v8::Value> value);
|
||||
+ Type GetType() const { return GetValueType(m_pValue); }
|
||||
int ToInt() const;
|
||||
bool ToBool() const;
|
||||
double ToDouble() const;
|
||||
@@ -66,8 +64,7 @@
|
||||
v8::Local<v8::Value> ToV8Value() const;
|
||||
|
||||
// Replace the current |m_pValue| with a v8::Number if possible
|
||||
- // to make one from the current |m_pValue|, updating |m_eType|
|
||||
- // as appropriate to indicate the result.
|
||||
+ // to make one from the current |m_pValue|.
|
||||
void MaybeCoerceToNumber();
|
||||
|
||||
void operator=(int iValue);
|
||||
@@ -75,7 +72,6 @@
|
||||
void operator=(double val);
|
||||
void operator=(float val);
|
||||
void operator=(CJS_Object* val);
|
||||
- void operator=(CJS_Document* val);
|
||||
void operator=(v8::Local<v8::Object> val);
|
||||
void operator=(CJS_Array& val);
|
||||
void operator=(CJS_Date& val);
|
||||
@@ -91,7 +87,6 @@
|
||||
CJS_Runtime* GetJSRuntime() const { return m_pJSRuntime; }
|
||||
|
||||
protected:
|
||||
- Type m_eType;
|
||||
v8::Local<v8::Value> m_pValue;
|
||||
CJS_Runtime* m_pJSRuntime;
|
||||
};
|
||||
diff -ur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/jsapi/fxjs_v8.cpp qtwebengine-opensource-src-5.8.0-pdfium-gcc7/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/jsapi/fxjs_v8.cpp
|
||||
--- qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/jsapi/fxjs_v8.cpp 2017-01-03 10:28:53.000000000 +0100
|
||||
+++ qtwebengine-opensource-src-5.8.0-pdfium-gcc7/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/jsapi/fxjs_v8.cpp 2017-03-06 13:06:10.884476877 +0100
|
||||
@@ -10,15 +10,6 @@
|
||||
|
||||
#include "core/fxcrt/include/fx_basic.h"
|
||||
|
||||
-const wchar_t kFXJSValueNameString[] = L"string";
|
||||
-const wchar_t kFXJSValueNameNumber[] = L"number";
|
||||
-const wchar_t kFXJSValueNameBoolean[] = L"boolean";
|
||||
-const wchar_t kFXJSValueNameDate[] = L"date";
|
||||
-const wchar_t kFXJSValueNameObject[] = L"object";
|
||||
-const wchar_t kFXJSValueNameFxobj[] = L"fxobj";
|
||||
-const wchar_t kFXJSValueNameNull[] = L"null";
|
||||
-const wchar_t kFXJSValueNameUndefined[] = L"undefined";
|
||||
-
|
||||
// Keep this consistent with the values defined in gin/public/context_holder.h
|
||||
// (without actually requiring a dependency on gin itself for the standalone
|
||||
// embedders of PDFIum). The value we want to use is:
|
||||
@@ -540,26 +531,6 @@
|
||||
.ToLocalChecked());
|
||||
}
|
||||
|
||||
-const wchar_t* FXJS_GetTypeof(v8::Local<v8::Value> pObj) {
|
||||
- if (pObj.IsEmpty())
|
||||
- return nullptr;
|
||||
- if (pObj->IsString())
|
||||
- return kFXJSValueNameString;
|
||||
- if (pObj->IsNumber())
|
||||
- return kFXJSValueNameNumber;
|
||||
- if (pObj->IsBoolean())
|
||||
- return kFXJSValueNameBoolean;
|
||||
- if (pObj->IsDate())
|
||||
- return kFXJSValueNameDate;
|
||||
- if (pObj->IsObject())
|
||||
- return kFXJSValueNameObject;
|
||||
- if (pObj->IsNull())
|
||||
- return kFXJSValueNameNull;
|
||||
- if (pObj->IsUndefined())
|
||||
- return kFXJSValueNameUndefined;
|
||||
- return nullptr;
|
||||
-}
|
||||
-
|
||||
void FXJS_SetPrivate(v8::Isolate* pIsolate,
|
||||
v8::Local<v8::Object> pObj,
|
||||
void* p) {
|
||||
diff -ur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/jsapi/include/fxjs_v8.h qtwebengine-opensource-src-5.8.0-pdfium-gcc7/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/jsapi/include/fxjs_v8.h
|
||||
--- qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/jsapi/include/fxjs_v8.h 2017-01-03 10:28:53.000000000 +0100
|
||||
+++ qtwebengine-opensource-src-5.8.0-pdfium-gcc7/src/3rdparty/chromium/third_party/pdfium/fpdfsdk/jsapi/include/fxjs_v8.h 2017-03-06 13:06:40.283062272 +0100
|
||||
@@ -118,15 +118,6 @@
|
||||
FXJS_PerIsolateData();
|
||||
};
|
||||
|
||||
-extern const wchar_t kFXJSValueNameString[];
|
||||
-extern const wchar_t kFXJSValueNameNumber[];
|
||||
-extern const wchar_t kFXJSValueNameBoolean[];
|
||||
-extern const wchar_t kFXJSValueNameDate[];
|
||||
-extern const wchar_t kFXJSValueNameObject[];
|
||||
-extern const wchar_t kFXJSValueNameFxobj[];
|
||||
-extern const wchar_t kFXJSValueNameNull[];
|
||||
-extern const wchar_t kFXJSValueNameUndefined[];
|
||||
-
|
||||
class FXJS_ArrayBufferAllocator : public v8::ArrayBuffer::Allocator {
|
||||
void* Allocate(size_t length) override;
|
||||
void* AllocateUninitialized(size_t length) override;
|
||||
@@ -209,7 +200,6 @@
|
||||
bool bStatic = false);
|
||||
v8::Local<v8::Object> FXJS_GetThisObj(v8::Isolate* pIsolate);
|
||||
int FXJS_GetObjDefnID(v8::Local<v8::Object> pObj);
|
||||
-const wchar_t* FXJS_GetTypeof(v8::Local<v8::Value> pObj);
|
||||
|
||||
void FXJS_SetPrivate(v8::Isolate* pIsolate,
|
||||
v8::Local<v8::Object> pObj,
|
@ -1,48 +0,0 @@
|
||||
diff -ur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/base/base.gypi qtwebengine-opensource-src-5.8.0-system-nspr-prtime/src/3rdparty/chromium/base/base.gypi
|
||||
--- qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/base/base.gypi 2017-01-03 10:28:53.000000000 +0100
|
||||
+++ qtwebengine-opensource-src-5.8.0-system-nspr-prtime/src/3rdparty/chromium/base/base.gypi 2017-03-05 16:48:14.206027229 +0100
|
||||
@@ -676,8 +676,6 @@
|
||||
'third_party/dmg_fp/g_fmt.cc',
|
||||
'third_party/icu/icu_utf.cc',
|
||||
'third_party/icu/icu_utf.h',
|
||||
- 'third_party/nspr/prtime.cc',
|
||||
- 'third_party/nspr/prtime.h',
|
||||
'third_party/superfasthash/superfasthash.c',
|
||||
'third_party/xdg_mime/xdgmime.h',
|
||||
'threading/non_thread_safe.h',
|
||||
diff -ur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/base/BUILD.gn qtwebengine-opensource-src-5.8.0-system-nspr-prtime/src/3rdparty/chromium/base/BUILD.gn
|
||||
--- qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/base/BUILD.gn 2017-01-03 10:28:53.000000000 +0100
|
||||
+++ qtwebengine-opensource-src-5.8.0-system-nspr-prtime/src/3rdparty/chromium/base/BUILD.gn 2017-03-05 16:48:14.207027214 +0100
|
||||
@@ -803,8 +803,6 @@
|
||||
"third_party/dmg_fp/g_fmt.cc",
|
||||
"third_party/icu/icu_utf.cc",
|
||||
"third_party/icu/icu_utf.h",
|
||||
- "third_party/nspr/prtime.cc",
|
||||
- "third_party/nspr/prtime.h",
|
||||
"third_party/superfasthash/superfasthash.c",
|
||||
"threading/non_thread_safe.h",
|
||||
"threading/non_thread_safe_impl.cc",
|
||||
diff -ur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/base/time/pr_time_unittest.cc qtwebengine-opensource-src-5.8.0-system-nspr-prtime/src/3rdparty/chromium/base/time/pr_time_unittest.cc
|
||||
--- qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/base/time/pr_time_unittest.cc 2017-01-03 10:28:53.000000000 +0100
|
||||
+++ qtwebengine-opensource-src-5.8.0-system-nspr-prtime/src/3rdparty/chromium/base/time/pr_time_unittest.cc 2017-03-05 16:48:14.208027199 +0100
|
||||
@@ -7,7 +7,7 @@
|
||||
|
||||
#include "base/compiler_specific.h"
|
||||
#include "base/macros.h"
|
||||
-#include "base/third_party/nspr/prtime.h"
|
||||
+#include <nspr4/prtime.h>
|
||||
#include "base/time/time.h"
|
||||
#include "build/build_config.h"
|
||||
#include "testing/gtest/include/gtest/gtest.h"
|
||||
diff -ur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/base/time/time.cc qtwebengine-opensource-src-5.8.0-system-nspr-prtime/src/3rdparty/chromium/base/time/time.cc
|
||||
--- qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/base/time/time.cc 2017-01-03 10:28:53.000000000 +0100
|
||||
+++ qtwebengine-opensource-src-5.8.0-system-nspr-prtime/src/3rdparty/chromium/base/time/time.cc 2017-03-05 16:48:14.298025856 +0100
|
||||
@@ -14,7 +14,7 @@
|
||||
#include "base/logging.h"
|
||||
#include "base/macros.h"
|
||||
#include "base/strings/stringprintf.h"
|
||||
-#include "base/third_party/nspr/prtime.h"
|
||||
+#include <nspr4/prtime.h>
|
||||
#include "build/build_config.h"
|
||||
|
||||
namespace base {
|
@ -1,71 +0,0 @@
|
||||
diff -ur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/v8/src/objects-body-descriptors.h qtwebengine-opensource-src-5.8.0-gcc7/src/3rdparty/chromium/v8/src/objects-body-descriptors.h
|
||||
--- qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/v8/src/objects-body-descriptors.h 2017-01-03 10:28:53.000000000 +0100
|
||||
+++ qtwebengine-opensource-src-5.8.0-gcc7/src/3rdparty/chromium/v8/src/objects-body-descriptors.h 2017-03-06 02:05:57.848394582 +0100
|
||||
@@ -99,7 +99,7 @@
|
||||
|
||||
template <typename StaticVisitor>
|
||||
static inline void IterateBody(HeapObject* obj, int object_size) {
|
||||
- IterateBody(obj);
|
||||
+ IterateBody<StaticVisitor>(obj);
|
||||
}
|
||||
};
|
||||
|
||||
diff -ur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/v8/src/objects.h qtwebengine-opensource-src-5.8.0-gcc7/src/3rdparty/chromium/v8/src/objects.h
|
||||
--- qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/v8/src/objects.h 2017-01-03 10:28:53.000000000 +0100
|
||||
+++ qtwebengine-opensource-src-5.8.0-gcc7/src/3rdparty/chromium/v8/src/objects.h 2017-03-06 02:05:57.990392454 +0100
|
||||
@@ -3193,22 +3193,10 @@
|
||||
public:
|
||||
typedef Shape ShapeT;
|
||||
|
||||
- // Wrapper methods
|
||||
- inline uint32_t Hash(Key key) {
|
||||
- if (Shape::UsesSeed) {
|
||||
- return Shape::SeededHash(key, GetHeap()->HashSeed());
|
||||
- } else {
|
||||
- return Shape::Hash(key);
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- inline uint32_t HashForObject(Key key, Object* object) {
|
||||
- if (Shape::UsesSeed) {
|
||||
- return Shape::SeededHashForObject(key, GetHeap()->HashSeed(), object);
|
||||
- } else {
|
||||
- return Shape::HashForObject(key, object);
|
||||
- }
|
||||
- }
|
||||
+ // Wrapper methods. Defined in src/objects-inl.h
|
||||
+ // to break a cycle with src/heap/heap.h.
|
||||
+ inline uint32_t Hash(Key key);
|
||||
+ inline uint32_t HashForObject(Key key, Object* object);
|
||||
|
||||
// Returns a new HashTable object.
|
||||
MUST_USE_RESULT static Handle<Derived> New(
|
||||
diff -ur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/v8/src/objects-inl.h qtwebengine-opensource-src-5.8.0-gcc7/src/3rdparty/chromium/v8/src/objects-inl.h
|
||||
--- qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/v8/src/objects-inl.h 2017-01-03 10:28:53.000000000 +0100
|
||||
+++ qtwebengine-opensource-src-5.8.0-gcc7/src/3rdparty/chromium/v8/src/objects-inl.h 2017-03-06 02:05:57.992392424 +0100
|
||||
@@ -38,6 +38,25 @@
|
||||
namespace v8 {
|
||||
namespace internal {
|
||||
|
||||
+template <typename Derived, typename Shape, typename Key>
|
||||
+uint32_t HashTable<Derived, Shape, Key>::Hash(Key key) {
|
||||
+ if (Shape::UsesSeed) {
|
||||
+ return Shape::SeededHash(key, GetHeap()->HashSeed());
|
||||
+ } else {
|
||||
+ return Shape::Hash(key);
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+template <typename Derived, typename Shape, typename Key>
|
||||
+uint32_t HashTable<Derived, Shape, Key>::HashForObject(Key key,
|
||||
+ Object* object) {
|
||||
+ if (Shape::UsesSeed) {
|
||||
+ return Shape::SeededHashForObject(key, GetHeap()->HashSeed(), object);
|
||||
+ } else {
|
||||
+ return Shape::HashForObject(key, object);
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
PropertyDetails::PropertyDetails(Smi* smi) {
|
||||
value_ = smi->value();
|
||||
}
|
@ -1,32 +0,0 @@
|
||||
diff -ur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/third_party/webrtc/system_wrappers/BUILD.gn qtwebengine-opensource-src-5.8.0-webrtc-neon-detect/src/3rdparty/chromium/third_party/webrtc/system_wrappers/BUILD.gn
|
||||
--- qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/third_party/webrtc/system_wrappers/BUILD.gn 2017-01-03 10:28:53.000000000 +0100
|
||||
+++ qtwebengine-opensource-src-5.8.0-webrtc-neon-detect/src/3rdparty/chromium/third_party/webrtc/system_wrappers/BUILD.gn 2017-03-05 17:08:43.547748044 +0100
|
||||
@@ -108,9 +108,7 @@
|
||||
if (is_linux) {
|
||||
defines += [ "WEBRTC_THREAD_RR" ]
|
||||
|
||||
- if (!build_with_chromium) {
|
||||
- deps += [ ":cpu_features_linux" ]
|
||||
- }
|
||||
+ deps += [ ":cpu_features_linux" ]
|
||||
|
||||
libs += [ "rt" ]
|
||||
}
|
||||
diff -ur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/third_party/webrtc/system_wrappers/system_wrappers.gyp qtwebengine-opensource-src-5.8.0-webrtc-neon-detect/src/3rdparty/chromium/third_party/webrtc/system_wrappers/system_wrappers.gyp
|
||||
--- qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/third_party/webrtc/system_wrappers/system_wrappers.gyp 2017-01-03 10:28:53.000000000 +0100
|
||||
+++ qtwebengine-opensource-src-5.8.0-webrtc-neon-detect/src/3rdparty/chromium/third_party/webrtc/system_wrappers/system_wrappers.gyp 2017-03-05 17:07:01.869254856 +0100
|
||||
@@ -112,12 +112,8 @@
|
||||
'defines': [
|
||||
'WEBRTC_THREAD_RR',
|
||||
],
|
||||
- 'conditions': [
|
||||
- ['build_with_chromium==0', {
|
||||
- 'dependencies': [
|
||||
- 'cpu_features_webrtc.gyp:cpu_features_linux',
|
||||
- ],
|
||||
- }],
|
||||
+ 'dependencies': [
|
||||
+ 'cpu_features_webrtc.gyp:cpu_features_linux',
|
||||
],
|
||||
'link_settings': {
|
||||
'libraries': [ '-lrt', ],
|
@ -1,12 +0,0 @@
|
||||
diff -ur qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/third_party/WebKit/Source/wtf/LinkedHashSet.h qtwebengine-opensource-src-5.8.0-wtf-gcc7/src/3rdparty/chromium/third_party/WebKit/Source/wtf/LinkedHashSet.h
|
||||
--- qtwebengine-opensource-src-5.8.0/src/3rdparty/chromium/third_party/WebKit/Source/wtf/LinkedHashSet.h 2017-01-03 10:28:53.000000000 +0100
|
||||
+++ qtwebengine-opensource-src-5.8.0-wtf-gcc7/src/3rdparty/chromium/third_party/WebKit/Source/wtf/LinkedHashSet.h 2017-03-07 03:00:44.783316233 +0100
|
||||
@@ -542,6 +542,8 @@
|
||||
return *this;
|
||||
}
|
||||
|
||||
+inline void swapAnchor(LinkedHashSetNodeBase& a, LinkedHashSetNodeBase& b);
|
||||
+
|
||||
template<typename T, typename U, typename V, typename W>
|
||||
inline void LinkedHashSet<T, U, V, W>::swap(LinkedHashSet& other)
|
||||
{
|
@ -0,0 +1,11 @@
|
||||
diff -ur qtwebengine-opensource-src-5.9.0/src/core/config/linux.pri qtwebengine-opensource-src-5.9.0-arm-fpu-fix/src/core/config/linux.pri
|
||||
--- qtwebengine-opensource-src-5.9.0/src/core/config/linux.pri 2017-05-19 06:22:04.000000000 +0200
|
||||
+++ qtwebengine-opensource-src-5.9.0-arm-fpu-fix/src/core/config/linux.pri 2017-06-10 02:32:09.984692943 +0200
|
||||
@@ -64,6 +64,7 @@
|
||||
gn_args += arm_use_neon=true
|
||||
} else {
|
||||
MFPU = $$extractCFlag("-mfpu=.*")
|
||||
+ !isEmpty(MFPU): gn_args += arm_fpu=\"$$MFPU\"
|
||||
!isEmpty(MFPU):contains(MFPU, ".*neon.*") {
|
||||
gn_args += arm_use_neon=true
|
||||
} else {
|
@ -0,0 +1,12 @@
|
||||
diff -ur qtwebengine-opensource-src-5.9.0/mkspecs/features/functions.prf qtwebengine-opensource-src-5.9.0-fix-extractcflag/mkspecs/features/functions.prf
|
||||
--- qtwebengine-opensource-src-5.9.0/mkspecs/features/functions.prf 2017-05-19 06:22:04.000000000 +0200
|
||||
+++ qtwebengine-opensource-src-5.9.0-fix-extractcflag/mkspecs/features/functions.prf 2017-06-08 00:36:16.303520106 +0200
|
||||
@@ -302,7 +302,7 @@
|
||||
}
|
||||
|
||||
defineReplace(extractCFlag) {
|
||||
- CFLAGS = $$QMAKE_CC $$QMAKE_CFLAGS
|
||||
+ CFLAGS = $$QMAKE_CC $$QMAKE_CFLAGS $$QMAKE_CFLAGS_RELEASE
|
||||
OPTION = $$find(CFLAGS, $$1)
|
||||
OPTION = $$split(OPTION, =)
|
||||
return ($$member(OPTION, 1))
|
@ -0,0 +1,26 @@
|
||||
diff -ur qtwebengine-opensource-src-5.9.0/src/core/config/linux.pri qtwebengine-opensource-src-5.9.0-linux-pri/src/core/config/linux.pri
|
||||
--- qtwebengine-opensource-src-5.9.0/src/core/config/linux.pri 2017-05-19 06:22:04.000000000 +0200
|
||||
+++ qtwebengine-opensource-src-5.9.0-linux-pri/src/core/config/linux.pri 2017-06-08 00:20:53.688419747 +0200
|
||||
@@ -148,3 +148,22 @@
|
||||
use?(system_ffmpeg): gn_args += use_system_ffmpeg=true
|
||||
#use?(system_protobuf): gn_args += use_system_protobuf=true
|
||||
}
|
||||
+
|
||||
+# some more system packages, that are not checked for for some reason
|
||||
+gn_args += use_system_re2=true
|
||||
+
|
||||
+# yasm is only used on x86, and passing use_system_yasm makes the build fail on
|
||||
+# other architectures (e.g., ARM), so make it conditional on the architecture
|
||||
+contains(QT_ARCH, "x86_64")|contains(QT_ARCH, "i386") {
|
||||
+ gn_args += use_system_yasm=true
|
||||
+}
|
||||
+
|
||||
+# link libpci instead of dlopening it, our Qt packaging depends on it anyway
|
||||
+gn_args += linux_link_libpci=true
|
||||
+
|
||||
+# run the unbundling script Chromium provides
|
||||
+CHROMIUM_SRC_DIR = "$$QTWEBENGINE_ROOT/$$getChromiumSrcDir()"
|
||||
+R_G_F_PY = "$$CHROMIUM_SRC_DIR/build/linux/unbundle/replace_gn_files.py"
|
||||
+R_G_F_PY_ARGS = "--system-libraries re2 yasm"
|
||||
+log("Running python $$R_G_F_PY $$R_G_F_PY_ARGS$${EOL}")
|
||||
+!system("python $$R_G_F_PY $$R_G_F_PY_ARGS"): error("-- unbundling failed")
|
@ -0,0 +1,14 @@
|
||||
diff -ur qtwebengine-opensource-src-5.9.0/src/core/config/linux.pri qtwebengine-opensource-src-5.9.0-no-neon/src/core/config/linux.pri
|
||||
--- qtwebengine-opensource-src-5.9.0/src/core/config/linux.pri 2017-05-19 06:22:04.000000000 +0200
|
||||
+++ qtwebengine-opensource-src-5.9.0-no-neon/src/core/config/linux.pri 2017-06-08 00:55:22.257781563 +0200
|
||||
@@ -70,7 +70,9 @@
|
||||
gn_args += arm_use_neon=false
|
||||
# If the toolchain does not explicitly specify to use NEON instructions
|
||||
# we use arm_neon_optional for ARMv7
|
||||
- equals(MARMV, 7): gn_args += arm_optionally_use_neon=true
|
||||
+ # Disable NEON entirely for now, if set in the specfile, e.g., to
|
||||
+ # work around some build failure.
|
||||
+ # equals(MARMV, 7): gn_args += arm_optionally_use_neon=true
|
||||
}
|
||||
}
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,25 +1,19 @@
|
||||
diff -ur qtwebengine-opensource-src-5.7.1/src/3rdparty/chromium/third_party/openmax_dl/dl/dl.gyp qtwebengine-opensource-src-5.7.1-openmax-dl-neon/src/3rdparty/chromium/third_party/openmax_dl/dl/dl.gyp
|
||||
--- qtwebengine-opensource-src-5.7.1/src/3rdparty/chromium/third_party/openmax_dl/dl/dl.gyp 2016-11-07 15:46:18.000000000 +0100
|
||||
+++ qtwebengine-opensource-src-5.7.1-openmax-dl-neon/src/3rdparty/chromium/third_party/openmax_dl/dl/dl.gyp 2016-12-03 22:50:19.369158276 +0100
|
||||
@@ -219,15 +219,6 @@
|
||||
'conditions': [
|
||||
['arm_neon_optional==1', {
|
||||
diff -ur qtwebengine-opensource-src-5.9.0/src/3rdparty/chromium/third_party/openmax_dl/dl/BUILD.gn qtwebengine-opensource-src-5.9.0-openmax-dl-neon/src/3rdparty/chromium/third_party/openmax_dl/dl/BUILD.gn
|
||||
--- qtwebengine-opensource-src-5.9.0/src/3rdparty/chromium/third_party/openmax_dl/dl/BUILD.gn 2017-05-18 16:51:44.000000000 +0200
|
||||
+++ qtwebengine-opensource-src-5.9.0-openmax-dl-neon/src/3rdparty/chromium/third_party/openmax_dl/dl/BUILD.gn 2017-06-10 02:41:10.317340598 +0200
|
||||
@@ -196,9 +196,6 @@
|
||||
]
|
||||
if (arm_optionally_use_neon) {
|
||||
# Run-time NEON detection.
|
||||
- 'dependencies': [
|
||||
- '../../../build/android/ndk.gyp:cpu_features',
|
||||
- ],
|
||||
- 'link_settings' : {
|
||||
- 'libraries': [
|
||||
- deps = [ "//third_party/android_tools:cpu_features" ]
|
||||
- # To get the __android_log_print routine
|
||||
- '-llog',
|
||||
- ],
|
||||
- },
|
||||
'sources': [
|
||||
- libs = [ "log" ]
|
||||
# Detection routine
|
||||
'sp/src/arm/detect.c',
|
||||
diff -ur qtwebengine-opensource-src-5.7.1/src/3rdparty/chromium/third_party/openmax_dl/dl/sp/src/arm/detect.c qtwebengine-opensource-src-5.7.1-openmax-dl-neon/src/3rdparty/chromium/third_party/openmax_dl/dl/sp/src/arm/detect.c
|
||||
--- qtwebengine-opensource-src-5.7.1/src/3rdparty/chromium/third_party/openmax_dl/dl/sp/src/arm/detect.c 2016-11-07 15:46:18.000000000 +0100
|
||||
+++ qtwebengine-opensource-src-5.7.1-openmax-dl-neon/src/3rdparty/chromium/third_party/openmax_dl/dl/sp/src/arm/detect.c 2016-12-03 22:48:13.745095083 +0100
|
||||
sources += [ "sp/src/arm/detect.c" ]
|
||||
}
|
||||
diff -ur qtwebengine-opensource-src-5.9.0/src/3rdparty/chromium/third_party/openmax_dl/dl/sp/src/arm/detect.c qtwebengine-opensource-src-5.9.0-openmax-dl-neon/src/3rdparty/chromium/third_party/openmax_dl/dl/sp/src/arm/detect.c
|
||||
--- qtwebengine-opensource-src-5.9.0/src/3rdparty/chromium/third_party/openmax_dl/dl/sp/src/arm/detect.c 2017-05-18 16:51:44.000000000 +0200
|
||||
+++ qtwebengine-opensource-src-5.9.0-openmax-dl-neon/src/3rdparty/chromium/third_party/openmax_dl/dl/sp/src/arm/detect.c 2017-06-10 02:38:30.593809570 +0200
|
||||
@@ -9,13 +9,57 @@
|
||||
*
|
||||
*/
|
@ -0,0 +1,392 @@
|
||||
diff -Nur qtwebengine-opensource-src-5.9.0/src/3rdparty/chromium/third_party/skia/gn/opts.gni qtwebengine-opensource-src-5.9.0-skia-neon/src/3rdparty/chromium/third_party/skia/gn/opts.gni
|
||||
--- qtwebengine-opensource-src-5.9.0/src/3rdparty/chromium/third_party/skia/gn/opts.gni 2017-05-18 16:51:44.000000000 +0200
|
||||
+++ qtwebengine-opensource-src-5.9.0-skia-neon/src/3rdparty/chromium/third_party/skia/gn/opts.gni 2017-06-10 13:01:07.120762647 +0200
|
||||
@@ -23,6 +23,7 @@
|
||||
"$_src/opts/SkBitmapProcState_matrixProcs_neon.cpp",
|
||||
"$_src/opts/SkBlitMask_opts_arm_neon.cpp",
|
||||
"$_src/opts/SkBlitRow_opts_arm_neon.cpp",
|
||||
+ "$_src/opts/SkOpts_neon.cpp",
|
||||
]
|
||||
|
||||
arm64 = [
|
||||
@@ -33,6 +34,7 @@
|
||||
"$_src/opts/SkBlitMask_opts_arm_neon.cpp",
|
||||
"$_src/opts/SkBlitRow_opts_arm.cpp",
|
||||
"$_src/opts/SkBlitRow_opts_arm_neon.cpp",
|
||||
+ "$_src/opts/SkOpts_neon.cpp",
|
||||
]
|
||||
|
||||
crc32 = [ "$_src/opts/SkOpts_crc32.cpp" ]
|
||||
diff -Nur qtwebengine-opensource-src-5.9.0/src/3rdparty/chromium/third_party/skia/src/core/SkBitmapProcState.cpp qtwebengine-opensource-src-5.9.0-skia-neon/src/3rdparty/chromium/third_party/skia/src/core/SkBitmapProcState.cpp
|
||||
--- qtwebengine-opensource-src-5.9.0/src/3rdparty/chromium/third_party/skia/src/core/SkBitmapProcState.cpp 2017-05-18 16:51:44.000000000 +0200
|
||||
+++ qtwebengine-opensource-src-5.9.0-skia-neon/src/3rdparty/chromium/third_party/skia/src/core/SkBitmapProcState.cpp 2017-06-10 12:52:48.259092758 +0200
|
||||
@@ -19,7 +19,7 @@
|
||||
#include "SkImageEncoder.h"
|
||||
#include "SkResourceCache.h"
|
||||
|
||||
-#if defined(SK_ARM_HAS_NEON)
|
||||
+#if !SK_ARM_NEON_IS_NONE
|
||||
// These are defined in src/opts/SkBitmapProcState_arm_neon.cpp
|
||||
extern const SkBitmapProcState::SampleProc32 gSkBitmapProcStateSample32_neon[];
|
||||
extern void S16_D16_filter_DX_neon(const SkBitmapProcState&, const uint32_t*, int, uint16_t*);
|
||||
@@ -280,7 +280,7 @@
|
||||
return false;
|
||||
}
|
||||
|
||||
-#if !defined(SK_ARM_HAS_NEON)
|
||||
+#if !SK_ARM_NEON_IS_ALWAYS
|
||||
static const SampleProc32 gSkBitmapProcStateSample32[] = {
|
||||
S32_opaque_D32_nofilter_DXDY,
|
||||
S32_alpha_D32_nofilter_DXDY,
|
||||
diff -Nur qtwebengine-opensource-src-5.9.0/src/3rdparty/chromium/third_party/skia/src/core/SkBitmapProcState_matrixProcs.cpp qtwebengine-opensource-src-5.9.0-skia-neon/src/3rdparty/chromium/third_party/skia/src/core/SkBitmapProcState_matrixProcs.cpp
|
||||
--- qtwebengine-opensource-src-5.9.0/src/3rdparty/chromium/third_party/skia/src/core/SkBitmapProcState_matrixProcs.cpp 2017-05-18 16:51:44.000000000 +0200
|
||||
+++ qtwebengine-opensource-src-5.9.0-skia-neon/src/3rdparty/chromium/third_party/skia/src/core/SkBitmapProcState_matrixProcs.cpp 2017-06-10 12:52:48.259092758 +0200
|
||||
@@ -47,16 +47,16 @@
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
// Compile neon code paths if needed
|
||||
-#if defined(SK_ARM_HAS_NEON)
|
||||
+#if !SK_ARM_NEON_IS_NONE
|
||||
|
||||
// These are defined in src/opts/SkBitmapProcState_matrixProcs_neon.cpp
|
||||
extern const SkBitmapProcState::MatrixProc ClampX_ClampY_Procs_neon[];
|
||||
extern const SkBitmapProcState::MatrixProc RepeatX_RepeatY_Procs_neon[];
|
||||
|
||||
-#endif // defined(SK_ARM_HAS_NEON)
|
||||
+#endif // !SK_ARM_NEON_IS_NONE
|
||||
|
||||
// Compile non-neon code path if needed
|
||||
-#if !defined(SK_ARM_HAS_NEON)
|
||||
+#if !SK_ARM_NEON_IS_ALWAYS
|
||||
#define MAKENAME(suffix) ClampX_ClampY ## suffix
|
||||
#define TILEX_PROCF(fx, max) SkClampMax((fx) >> 16, max)
|
||||
#define TILEY_PROCF(fy, max) SkClampMax((fy) >> 16, max)
|
||||
diff -Nur qtwebengine-opensource-src-5.9.0/src/3rdparty/chromium/third_party/skia/src/core/SkBlitter_RGB16.cpp qtwebengine-opensource-src-5.9.0-skia-neon/src/3rdparty/chromium/third_party/skia/src/core/SkBlitter_RGB16.cpp
|
||||
--- qtwebengine-opensource-src-5.9.0/src/3rdparty/chromium/third_party/skia/src/core/SkBlitter_RGB16.cpp 2017-05-18 16:51:44.000000000 +0200
|
||||
+++ qtwebengine-opensource-src-5.9.0-skia-neon/src/3rdparty/chromium/third_party/skia/src/core/SkBlitter_RGB16.cpp 2017-06-10 12:52:48.260092743 +0200
|
||||
@@ -20,7 +20,7 @@
|
||||
uint32_t expanded32, unsigned maskRB);
|
||||
#endif
|
||||
|
||||
-#if defined(SK_ARM_HAS_NEON) && defined(SK_CPU_LENDIAN)
|
||||
+#if SK_ARM_NEON_IS_ALWAYS && defined(SK_CPU_LENDIAN)
|
||||
#include <arm_neon.h>
|
||||
extern void SkRGB16BlitterBlitV_neon(uint16_t* device,
|
||||
int height,
|
||||
@@ -381,7 +381,7 @@
|
||||
unsigned maskRB = mask.fRowBytes - width;
|
||||
uint32_t expanded32 = fExpandedRaw16;
|
||||
|
||||
-#if defined(SK_ARM_HAS_NEON) && defined(SK_CPU_LENDIAN)
|
||||
+#if SK_ARM_NEON_IS_ALWAYS && defined(SK_CPU_LENDIAN)
|
||||
#define UNROLL 8
|
||||
do {
|
||||
int w = width;
|
||||
@@ -475,7 +475,7 @@
|
||||
unsigned scale5 = SkAlpha255To256(alpha) >> 3;
|
||||
uint32_t src32 = fExpandedRaw16 * scale5;
|
||||
scale5 = 32 - scale5;
|
||||
-#if defined(SK_ARM_HAS_NEON) && defined(SK_CPU_LENDIAN)
|
||||
+#if SK_ARM_NEON_IS_ALWAYS && defined(SK_CPU_LENDIAN)
|
||||
SkRGB16BlitterBlitV_neon(device, height, deviceRB, scale5, src32);
|
||||
#else
|
||||
do {
|
||||
@@ -654,7 +654,7 @@
|
||||
unsigned scale5 = SkAlpha255To256(alpha) * fScale >> (8 + 3);
|
||||
uint32_t src32 = fExpandedRaw16 * scale5;
|
||||
scale5 = 32 - scale5;
|
||||
-#if defined(SK_ARM_HAS_NEON) && defined(SK_CPU_LENDIAN)
|
||||
+#if SK_ARM_NEON_IS_ALWAYS && defined(SK_CPU_LENDIAN)
|
||||
SkRGB16BlitterBlitV_neon(device, height, deviceRB, scale5, src32);
|
||||
#else
|
||||
do {
|
||||
diff -Nur qtwebengine-opensource-src-5.9.0/src/3rdparty/chromium/third_party/skia/src/core/SkCpu.cpp qtwebengine-opensource-src-5.9.0-skia-neon/src/3rdparty/chromium/third_party/skia/src/core/SkCpu.cpp
|
||||
--- qtwebengine-opensource-src-5.9.0/src/3rdparty/chromium/third_party/skia/src/core/SkCpu.cpp 2017-05-18 16:51:44.000000000 +0200
|
||||
+++ qtwebengine-opensource-src-5.9.0-skia-neon/src/3rdparty/chromium/third_party/skia/src/core/SkCpu.cpp 2017-06-10 13:10:57.090108380 +0200
|
||||
@@ -73,6 +73,124 @@
|
||||
return features;
|
||||
}
|
||||
|
||||
+#elif defined(SK_CPU_ARM32) && \
|
||||
+ !defined(SK_BUILD_FOR_ANDROID)
|
||||
+#include <unistd.h>
|
||||
+#include <fcntl.h>
|
||||
+#include <errno.h>
|
||||
+#include <string.h>
|
||||
+#include <pthread.h>
|
||||
+
|
||||
+ static uint32_t read_cpu_features() {
|
||||
+ uint32_t features = 0;
|
||||
+
|
||||
+ // If we fail any of the following, assume we don't have NEON/VFPv4 instructions
|
||||
+ // This allows us to return immediately in case of error.
|
||||
+ bool have_neon = false;
|
||||
+ bool have_vfpv4 = false;
|
||||
+
|
||||
+ // There is no user-accessible CPUID instruction on ARM that we can use.
|
||||
+ // Instead, we must parse /proc/cpuinfo and look for the 'neon' feature.
|
||||
+ // For example, here's a typical output (Nexus S running ICS 4.0.3):
|
||||
+ /*
|
||||
+ Processor : ARMv7 Processor rev 2 (v7l)
|
||||
+ BogoMIPS : 994.65
|
||||
+ Features : swp half thumb fastmult vfp edsp thumbee neon vfpv3
|
||||
+ CPU implementer : 0x41
|
||||
+ CPU architecture: 7
|
||||
+ CPU variant : 0x2
|
||||
+ CPU part : 0xc08
|
||||
+ CPU revision : 2
|
||||
+
|
||||
+ Hardware : herring
|
||||
+ Revision : 000b
|
||||
+ Serial : 3833c77d6dc000ec
|
||||
+ */
|
||||
+ char buffer[4096];
|
||||
+
|
||||
+ do {
|
||||
+ // open /proc/cpuinfo
|
||||
+ int fd = TEMP_FAILURE_RETRY(open("/proc/cpuinfo", O_RDONLY));
|
||||
+ if (fd < 0) {
|
||||
+ SkDebugf("Could not open /proc/cpuinfo: %s\n", strerror(errno));
|
||||
+ break;
|
||||
+ }
|
||||
+
|
||||
+ // Read the file. To simplify our search, we're going to place two
|
||||
+ // sentinel '\n' characters: one at the start of the buffer, and one at
|
||||
+ // the end. This means we reserve the first and last buffer bytes.
|
||||
+ buffer[0] = '\n';
|
||||
+ int size = TEMP_FAILURE_RETRY(read(fd, buffer+1, sizeof(buffer)-2));
|
||||
+ close(fd);
|
||||
+
|
||||
+ if (size < 0) { // should not happen
|
||||
+ SkDebugf("Could not read /proc/cpuinfo: %s\n", strerror(errno));
|
||||
+ break;
|
||||
+ }
|
||||
+
|
||||
+ SkDebugf("START /proc/cpuinfo:\n%.*s\nEND /proc/cpuinfo\n",
|
||||
+ size, buffer+1);
|
||||
+
|
||||
+ // Compute buffer limit, and place final sentinel
|
||||
+ char* buffer_end = buffer + 1 + size;
|
||||
+ buffer_end[0] = '\n';
|
||||
+
|
||||
+ // Now, find a line that starts with "Features", i.e. look for
|
||||
+ // '\nFeatures ' in our buffer.
|
||||
+ const char features[] = "\nFeatures\t";
|
||||
+ const size_t features_len = sizeof(features)-1;
|
||||
+
|
||||
+ char* line = (char*) memmem(buffer, buffer_end - buffer,
|
||||
+ features, features_len);
|
||||
+ if (line == nullptr) { // Weird, no Features line, bad kernel?
|
||||
+ SkDebugf("Could not find a line starting with 'Features'"
|
||||
+ "in /proc/cpuinfo ?\n");
|
||||
+ break;
|
||||
+ }
|
||||
+
|
||||
+ line += features_len; // Skip the "\nFeatures\t" prefix
|
||||
+
|
||||
+ // Find the end of the current line
|
||||
+ char* line_end = (char*) memchr(line, '\n', buffer_end - line);
|
||||
+ if (line_end == nullptr)
|
||||
+ line_end = buffer_end;
|
||||
+
|
||||
+ // Now find an instance of 'neon' in the flags list. We want to
|
||||
+ // ensure it's only 'neon' and not something fancy like 'noneon'
|
||||
+ // so check that it follows a space.
|
||||
+ const char neon[] = " neon";
|
||||
+ const size_t neon_len = sizeof(neon)-1;
|
||||
+ const char* flag = (const char*) memmem(line, line_end - line,
|
||||
+ neon, neon_len);
|
||||
+ // Ensure it is followed by a space or a newline.
|
||||
+ if (flag != nullptr
|
||||
+ && (flag[neon_len] == ' ' || flag[neon_len] == '\n')) {
|
||||
+ // Fine, we support Arm NEON !
|
||||
+ have_neon = true;
|
||||
+ }
|
||||
+
|
||||
+ // Now find an instance of 'vfpv4' in the flags list. We want to
|
||||
+ // ensure it's only 'vfpv4' and not something fancy like 'novfpv4'
|
||||
+ // so check that it follows a space.
|
||||
+ const char vfpv4[] = " vfpv4";
|
||||
+ const size_t vfpv4_len = sizeof(vfpv4)-1;
|
||||
+ const char* vflag = (const char*) memmem(line, line_end - line,
|
||||
+ vfpv4, vfpv4_len);
|
||||
+ // Ensure it is followed by a space or a newline.
|
||||
+ if (vflag != nullptr
|
||||
+ && (vflag[vfpv4_len] == ' ' || vflag[vfpv4_len] == '\n')) {
|
||||
+ // Fine, we support Arm VFPv4 !
|
||||
+ have_vfpv4 = true;
|
||||
+ }
|
||||
+
|
||||
+ } while (0);
|
||||
+
|
||||
+ if (have_neon) { features |= SkCpu::NEON ; }
|
||||
+ if (have_neon && have_vfpv4) { features |= SkCpu::NEON_FMA; }
|
||||
+ if (have_vfpv4) { features |= SkCpu::VFP_FP16; }
|
||||
+ return features;
|
||||
+ }
|
||||
+
|
||||
#elif defined(SK_CPU_ARM64) && \
|
||||
defined(SK_BUILD_FOR_ANDROID) && \
|
||||
!defined(SK_BUILD_FOR_ANDROID_FRAMEWORK)
|
||||
diff -Nur qtwebengine-opensource-src-5.9.0/src/3rdparty/chromium/third_party/skia/src/core/SkOpts.cpp qtwebengine-opensource-src-5.9.0-skia-neon/src/3rdparty/chromium/third_party/skia/src/core/SkOpts.cpp
|
||||
--- qtwebengine-opensource-src-5.9.0/src/3rdparty/chromium/third_party/skia/src/core/SkOpts.cpp 2017-05-18 16:51:44.000000000 +0200
|
||||
+++ qtwebengine-opensource-src-5.9.0-skia-neon/src/3rdparty/chromium/third_party/skia/src/core/SkOpts.cpp 2017-06-10 12:56:42.672648362 +0200
|
||||
@@ -99,6 +99,7 @@
|
||||
void Init_avx();
|
||||
void Init_hsw();
|
||||
void Init_crc32();
|
||||
+ void Init_neon();
|
||||
|
||||
static void init() {
|
||||
#if !defined(SK_BUILD_NO_OPTS)
|
||||
@@ -109,6 +110,9 @@
|
||||
if (SkCpu::Supports(SkCpu::AVX )) { Init_avx(); }
|
||||
if (SkCpu::Supports(SkCpu::HSW )) { Init_hsw(); }
|
||||
|
||||
+ #elif defined(SK_CPU_ARM32)
|
||||
+ if (SkCpu::Supports(SkCpu::NEON)) { Init_neon(); }
|
||||
+
|
||||
#elif defined(SK_CPU_ARM64)
|
||||
if (SkCpu::Supports(SkCpu::CRC32)) { Init_crc32(); }
|
||||
|
||||
diff -Nur qtwebengine-opensource-src-5.9.0/src/3rdparty/chromium/third_party/skia/src/core/SkUtilsArm.h qtwebengine-opensource-src-5.9.0-skia-neon/src/3rdparty/chromium/third_party/skia/src/core/SkUtilsArm.h
|
||||
--- qtwebengine-opensource-src-5.9.0/src/3rdparty/chromium/third_party/skia/src/core/SkUtilsArm.h 2017-05-18 16:51:44.000000000 +0200
|
||||
+++ qtwebengine-opensource-src-5.9.0-skia-neon/src/3rdparty/chromium/third_party/skia/src/core/SkUtilsArm.h 2017-06-10 12:52:48.260092743 +0200
|
||||
@@ -8,12 +8,75 @@
|
||||
#ifndef SkUtilsArm_DEFINED
|
||||
#define SkUtilsArm_DEFINED
|
||||
|
||||
-#include "SkTypes.h"
|
||||
+#include "SkCpu.h"
|
||||
+#include "SkUtils.h"
|
||||
|
||||
-#if defined(SK_ARM_HAS_NEON)
|
||||
- #define SK_ARM_NEON_WRAP(x) (x ## _neon)
|
||||
+// Define SK_ARM_NEON_MODE to one of the following values
|
||||
+// corresponding respectively to:
|
||||
+// - No ARM Neon support at all (not targetting ARMv7-A, or don't have NEON)
|
||||
+// - Full ARM Neon support (i.e. assume the CPU always supports it)
|
||||
+// - Optional ARM Neon support (i.e. probe CPU at runtime)
|
||||
+//
|
||||
+#define SK_ARM_NEON_MODE_NONE 0
|
||||
+#define SK_ARM_NEON_MODE_ALWAYS 1
|
||||
+#define SK_ARM_NEON_MODE_DYNAMIC 2
|
||||
+
|
||||
+#if defined(SK_ARM_HAS_OPTIONAL_NEON)
|
||||
+# define SK_ARM_NEON_MODE SK_ARM_NEON_MODE_DYNAMIC
|
||||
+#elif defined(SK_ARM_HAS_NEON)
|
||||
+# define SK_ARM_NEON_MODE SK_ARM_NEON_MODE_ALWAYS
|
||||
+#else
|
||||
+# define SK_ARM_NEON_MODE SK_ARM_NEON_MODE_NONE
|
||||
+#endif
|
||||
+
|
||||
+// Convenience test macros, always defined as 0 or 1
|
||||
+#define SK_ARM_NEON_IS_NONE (SK_ARM_NEON_MODE == SK_ARM_NEON_MODE_NONE)
|
||||
+#define SK_ARM_NEON_IS_ALWAYS (SK_ARM_NEON_MODE == SK_ARM_NEON_MODE_ALWAYS)
|
||||
+#define SK_ARM_NEON_IS_DYNAMIC (SK_ARM_NEON_MODE == SK_ARM_NEON_MODE_DYNAMIC)
|
||||
+
|
||||
+// The sk_cpu_arm_has_neon() function returns true iff the target device
|
||||
+// is ARMv7-A and supports Neon instructions. In DYNAMIC mode, this actually
|
||||
+// probes the CPU at runtime (and caches the result).
|
||||
+
|
||||
+static inline bool sk_cpu_arm_has_neon(void) {
|
||||
+#if SK_ARM_NEON_IS_NONE
|
||||
+ return false;
|
||||
#else
|
||||
- #define SK_ARM_NEON_WRAP(x) (x)
|
||||
+ return SkCpu::Supports(SkCpu::NEON);
|
||||
+#endif
|
||||
+}
|
||||
+
|
||||
+// Use SK_ARM_NEON_WRAP(symbol) to map 'symbol' to a NEON-specific symbol
|
||||
+// when applicable. This will transform 'symbol' differently depending on
|
||||
+// the current NEON configuration, i.e.:
|
||||
+//
|
||||
+// NONE -> 'symbol'
|
||||
+// ALWAYS -> 'symbol_neon'
|
||||
+// DYNAMIC -> 'symbol' or 'symbol_neon' depending on runtime check.
|
||||
+//
|
||||
+// The goal is to simplify user code, for example:
|
||||
+//
|
||||
+// return SK_ARM_NEON_WRAP(do_something)(params);
|
||||
+//
|
||||
+// Replaces the equivalent:
|
||||
+//
|
||||
+// #if SK_ARM_NEON_IS_NONE
|
||||
+// return do_something(params);
|
||||
+// #elif SK_ARM_NEON_IS_ALWAYS
|
||||
+// return do_something_neon(params);
|
||||
+// #elif SK_ARM_NEON_IS_DYNAMIC
|
||||
+// if (sk_cpu_arm_has_neon())
|
||||
+// return do_something_neon(params);
|
||||
+// else
|
||||
+// return do_something(params);
|
||||
+// #endif
|
||||
+//
|
||||
+#if SK_ARM_NEON_IS_NONE
|
||||
+# define SK_ARM_NEON_WRAP(x) (x)
|
||||
+#elif SK_ARM_NEON_IS_ALWAYS
|
||||
+# define SK_ARM_NEON_WRAP(x) (x ## _neon)
|
||||
+#elif SK_ARM_NEON_IS_DYNAMIC
|
||||
+# define SK_ARM_NEON_WRAP(x) (sk_cpu_arm_has_neon() ? x ## _neon : x)
|
||||
#endif
|
||||
|
||||
#endif // SkUtilsArm_DEFINED
|
||||
diff -Nur qtwebengine-opensource-src-5.9.0/src/3rdparty/chromium/third_party/skia/src/opts/SkOpts_neon.cpp qtwebengine-opensource-src-5.9.0-skia-neon/src/3rdparty/chromium/third_party/skia/src/opts/SkOpts_neon.cpp
|
||||
--- qtwebengine-opensource-src-5.9.0/src/3rdparty/chromium/third_party/skia/src/opts/SkOpts_neon.cpp 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ qtwebengine-opensource-src-5.9.0-skia-neon/src/3rdparty/chromium/third_party/skia/src/opts/SkOpts_neon.cpp 2017-06-10 12:52:48.259092758 +0200
|
||||
@@ -0,0 +1,54 @@
|
||||
+/*
|
||||
+ * Copyright 2015 Google Inc.
|
||||
+ *
|
||||
+ * Use of this source code is governed by a BSD-style license that can be
|
||||
+ * found in the LICENSE file.
|
||||
+ */
|
||||
+
|
||||
+#include "SkOpts.h"
|
||||
+
|
||||
+#define SK_OPTS_NS sk_neon
|
||||
+#include "SkBlitMask_opts.h"
|
||||
+#include "SkBlitRow_opts.h"
|
||||
+#include "SkBlurImageFilter_opts.h"
|
||||
+#include "SkColorCubeFilter_opts.h"
|
||||
+#include "SkMorphologyImageFilter_opts.h"
|
||||
+#include "SkSwizzler_opts.h"
|
||||
+#include "SkTextureCompressor_opts.h"
|
||||
+#include "SkXfermode_opts.h"
|
||||
+
|
||||
+namespace SkOpts {
|
||||
+ void Init_neon() {
|
||||
+ create_xfermode = sk_neon::create_xfermode;
|
||||
+
|
||||
+ box_blur_xx = sk_neon::box_blur_xx;
|
||||
+ box_blur_xy = sk_neon::box_blur_xy;
|
||||
+ box_blur_yx = sk_neon::box_blur_yx;
|
||||
+
|
||||
+ dilate_x = sk_neon::dilate_x;
|
||||
+ dilate_y = sk_neon::dilate_y;
|
||||
+ erode_x = sk_neon::erode_x;
|
||||
+ erode_y = sk_neon::erode_y;
|
||||
+
|
||||
+ texture_compressor = sk_neon::texture_compressor;
|
||||
+ fill_block_dimensions = sk_neon::fill_block_dimensions;
|
||||
+
|
||||
+ blit_mask_d32_a8 = sk_neon::blit_mask_d32_a8;
|
||||
+
|
||||
+ blit_row_color32 = sk_neon::blit_row_color32;
|
||||
+ blit_row_s32a_opaque = sk_neon::blit_row_s32a_opaque;
|
||||
+
|
||||
+ color_cube_filter_span = sk_neon::color_cube_filter_span;
|
||||
+
|
||||
+ RGBA_to_BGRA = sk_neon::RGBA_to_BGRA;
|
||||
+ RGBA_to_rgbA = sk_neon::RGBA_to_rgbA;
|
||||
+ RGBA_to_bgrA = sk_neon::RGBA_to_bgrA;
|
||||
+ RGB_to_RGB1 = sk_neon::RGB_to_RGB1;
|
||||
+ RGB_to_BGR1 = sk_neon::RGB_to_BGR1;
|
||||
+ gray_to_RGB1 = sk_neon::gray_to_RGB1;
|
||||
+ grayA_to_RGBA = sk_neon::grayA_to_RGBA;
|
||||
+ grayA_to_rgbA = sk_neon::grayA_to_rgbA;
|
||||
+ inverted_CMYK_to_RGB1 = sk_neon::inverted_CMYK_to_RGB1;
|
||||
+ inverted_CMYK_to_BGR1 = sk_neon::inverted_CMYK_to_BGR1;
|
||||
+ }
|
||||
+}
|
@ -0,0 +1,66 @@
|
||||
diff -ur qtwebengine-opensource-src-5.9.0/src/3rdparty/chromium/base/BUILD.gn qtwebengine-opensource-src-5.9.0-system-nspr-prtime/src/3rdparty/chromium/base/BUILD.gn
|
||||
--- qtwebengine-opensource-src-5.9.0/src/3rdparty/chromium/base/BUILD.gn 2017-05-18 16:51:44.000000000 +0200
|
||||
+++ qtwebengine-opensource-src-5.9.0-system-nspr-prtime/src/3rdparty/chromium/base/BUILD.gn 2017-06-08 10:52:51.565409865 +0200
|
||||
@@ -49,6 +49,9 @@
|
||||
"-Wno-char-subscripts",
|
||||
]
|
||||
}
|
||||
+ ldflags = [
|
||||
+ "-lnspr4",
|
||||
+ ]
|
||||
}
|
||||
|
||||
config("base_implementation") {
|
||||
@@ -833,8 +836,6 @@
|
||||
"third_party/dmg_fp/g_fmt.cc",
|
||||
"third_party/icu/icu_utf.cc",
|
||||
"third_party/icu/icu_utf.h",
|
||||
- "third_party/nspr/prtime.cc",
|
||||
- "third_party/nspr/prtime.h",
|
||||
"third_party/superfasthash/superfasthash.c",
|
||||
"threading/non_thread_safe.h",
|
||||
"threading/non_thread_safe_impl.cc",
|
||||
diff -ur qtwebengine-opensource-src-5.9.0/src/3rdparty/chromium/base/time/pr_time_unittest.cc qtwebengine-opensource-src-5.9.0-system-nspr-prtime/src/3rdparty/chromium/base/time/pr_time_unittest.cc
|
||||
--- qtwebengine-opensource-src-5.9.0/src/3rdparty/chromium/base/time/pr_time_unittest.cc 2017-05-18 16:51:44.000000000 +0200
|
||||
+++ qtwebengine-opensource-src-5.9.0-system-nspr-prtime/src/3rdparty/chromium/base/time/pr_time_unittest.cc 2017-06-08 10:58:06.743413247 +0200
|
||||
@@ -7,7 +7,7 @@
|
||||
|
||||
#include "base/compiler_specific.h"
|
||||
#include "base/macros.h"
|
||||
-#include "base/third_party/nspr/prtime.h"
|
||||
+#include <nspr4/prtime.h>
|
||||
#include "base/time/time.h"
|
||||
#include "build/build_config.h"
|
||||
#include "testing/gtest/include/gtest/gtest.h"
|
||||
diff -ur qtwebengine-opensource-src-5.9.0/src/3rdparty/chromium/base/time/time.cc qtwebengine-opensource-src-5.9.0-system-nspr-prtime/src/3rdparty/chromium/base/time/time.cc
|
||||
--- qtwebengine-opensource-src-5.9.0/src/3rdparty/chromium/base/time/time.cc 2017-05-18 16:51:44.000000000 +0200
|
||||
+++ qtwebengine-opensource-src-5.9.0-system-nspr-prtime/src/3rdparty/chromium/base/time/time.cc 2017-06-08 10:58:09.557373071 +0200
|
||||
@@ -14,7 +14,7 @@
|
||||
#include "base/logging.h"
|
||||
#include "base/macros.h"
|
||||
#include "base/strings/stringprintf.h"
|
||||
-#include "base/third_party/nspr/prtime.h"
|
||||
+#include <nspr4/prtime.h>
|
||||
#include "build/build_config.h"
|
||||
|
||||
namespace base {
|
||||
diff -ur qtwebengine-opensource-src-5.9.0/src/3rdparty/chromium/tools/gn/bootstrap/bootstrap.py qtwebengine-opensource-src-5.9.0-system-nspr-prtime/src/3rdparty/chromium/tools/gn/bootstrap/bootstrap.py
|
||||
--- qtwebengine-opensource-src-5.9.0/src/3rdparty/chromium/tools/gn/bootstrap/bootstrap.py 2017-05-18 16:51:44.000000000 +0200
|
||||
+++ qtwebengine-opensource-src-5.9.0-system-nspr-prtime/src/3rdparty/chromium/tools/gn/bootstrap/bootstrap.py 2017-06-08 10:55:05.945934291 +0200
|
||||
@@ -473,7 +473,6 @@
|
||||
'base/third_party/dmg_fp/dtoa_wrapper.cc',
|
||||
'base/third_party/dmg_fp/g_fmt.cc',
|
||||
'base/third_party/icu/icu_utf.cc',
|
||||
- 'base/third_party/nspr/prtime.cc',
|
||||
'base/threading/non_thread_safe_impl.cc',
|
||||
'base/threading/post_task_and_reply_impl.cc',
|
||||
'base/threading/sequenced_task_runner_handle.cc',
|
||||
@@ -575,7 +574,7 @@
|
||||
}
|
||||
|
||||
if is_linux:
|
||||
- libs.extend(['-lrt'])
|
||||
+ libs.extend(['-lrt', '-lnspr4'])
|
||||
ldflags.extend(['-pthread'])
|
||||
|
||||
static_libraries['xdg_user_dirs'] = {
|
@ -0,0 +1,14 @@
|
||||
diff -ur qtwebengine-opensource-src-5.9.0/src/3rdparty/chromium/third_party/webrtc/system_wrappers/BUILD.gn qtwebengine-opensource-src-5.9.0-webrtc-neon-detect/src/3rdparty/chromium/third_party/webrtc/system_wrappers/BUILD.gn
|
||||
--- qtwebengine-opensource-src-5.9.0/src/3rdparty/chromium/third_party/webrtc/system_wrappers/BUILD.gn 2017-05-18 16:51:44.000000000 +0200
|
||||
+++ qtwebengine-opensource-src-5.9.0-webrtc-neon-detect/src/3rdparty/chromium/third_party/webrtc/system_wrappers/BUILD.gn 2017-06-10 13:20:14.959007488 +0200
|
||||
@@ -93,9 +93,7 @@
|
||||
if (is_linux) {
|
||||
defines += [ "WEBRTC_THREAD_RR" ]
|
||||
|
||||
- if (!build_with_chromium) {
|
||||
- deps += [ ":cpu_features_linux" ]
|
||||
- }
|
||||
+ deps += [ ":cpu_features_linux" ]
|
||||
|
||||
libs += [ "rt" ]
|
||||
}
|
@ -1 +1 @@
|
||||
SHA512 (qtwebengine-opensource-src-5.8.0-clean.tar.xz) = 18a49156da8d2e21fb0fe4781646c753c82d616964dd14b0651a1097b2a79a5ddb852dbdcc838d1e9e9a4ec460dd77fbab78a03672f5e827ab061fdf97db4a25
|
||||
SHA512 (qtwebengine-opensource-src-5.9.0-clean.tar.xz) = 523568e690afa7dc4657458daa4c424a3006e32f4bcfbe015b90813b44967b36d9ec3263b4281089d33edd6e75d5b948cddc42792939fcf6aa71d051fc6937a8
|
||||
|
Loading…
Reference in new issue