parent
61c97e9914
commit
944ce122ee
@ -1,12 +0,0 @@
|
|||||||
diff -ur qtwebengine-opensource-src-5.6.0-beta/src/3rdparty/chromium/content/browser/time_zone_monitor.cc qtwebengine-opensource-src-5.6.0-beta-system-icu54/src/3rdparty/chromium/content/browser/time_zone_monitor.cc
|
|
||||||
--- qtwebengine-opensource-src-5.6.0-beta/src/3rdparty/chromium/content/browser/time_zone_monitor.cc 2015-12-10 18:17:21.000000000 +0100
|
|
||||||
+++ qtwebengine-opensource-src-5.6.0-beta-system-icu54/src/3rdparty/chromium/content/browser/time_zone_monitor.cc 2016-01-08 23:40:36.387525597 +0100
|
|
||||||
@@ -22,7 +22,7 @@
|
|
||||||
|
|
||||||
void TimeZoneMonitor::NotifyRenderers() {
|
|
||||||
DCHECK_CURRENTLY_ON(BrowserThread::UI);
|
|
||||||
-#if defined(OS_CHROMEOS) || U_ICU_VERSION_MAJOR_NUM < 54
|
|
||||||
+#if defined(OS_CHROMEOS) || U_ICU_VERSION_MAJOR_NUM < 55
|
|
||||||
// On CrOS and older ICU versions, ICU's default tz is already set to a new zone.
|
|
||||||
// No need to redetect it with detectHostTimeZone().
|
|
||||||
scoped_ptr<icu::TimeZone> new_zone(icu::TimeZone::createDefault());
|
|
@ -1,48 +0,0 @@
|
|||||||
diff -ur qtwebengine-opensource-src-5.7.0/src/3rdparty/chromium/base/base.gypi qtwebengine-opensource-src-5.7.0-system-nspr-prtime/src/3rdparty/chromium/base/base.gypi
|
|
||||||
--- qtwebengine-opensource-src-5.7.0/src/3rdparty/chromium/base/base.gypi 2016-05-26 15:53:47.000000000 +0200
|
|
||||||
+++ qtwebengine-opensource-src-5.7.0-system-nspr-prtime/src/3rdparty/chromium/base/base.gypi 2016-07-17 16:52:03.641799106 +0200
|
|
||||||
@@ -634,8 +634,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',
|
|
||||||
'thread_task_runner_handle.cc',
|
|
||||||
diff -ur qtwebengine-opensource-src-5.7.0/src/3rdparty/chromium/base/BUILD.gn qtwebengine-opensource-src-5.7.0-system-nspr-prtime/src/3rdparty/chromium/base/BUILD.gn
|
|
||||||
--- qtwebengine-opensource-src-5.7.0/src/3rdparty/chromium/base/BUILD.gn 2016-05-26 15:53:47.000000000 +0200
|
|
||||||
+++ qtwebengine-opensource-src-5.7.0-system-nspr-prtime/src/3rdparty/chromium/base/BUILD.gn 2016-07-17 16:52:03.642799111 +0200
|
|
||||||
@@ -743,8 +743,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",
|
|
||||||
"thread_task_runner_handle.cc",
|
|
||||||
"thread_task_runner_handle.h",
|
|
||||||
diff -ur qtwebengine-opensource-src-5.7.0/src/3rdparty/chromium/base/time/pr_time_unittest.cc qtwebengine-opensource-src-5.7.0-system-nspr-prtime/src/3rdparty/chromium/base/time/pr_time_unittest.cc
|
|
||||||
--- qtwebengine-opensource-src-5.7.0/src/3rdparty/chromium/base/time/pr_time_unittest.cc 2016-05-26 15:53:47.000000000 +0200
|
|
||||||
+++ qtwebengine-opensource-src-5.7.0-system-nspr-prtime/src/3rdparty/chromium/base/time/pr_time_unittest.cc 2016-07-17 16:55:11.749868819 +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.7.0/src/3rdparty/chromium/base/time/time.cc qtwebengine-opensource-src-5.7.0-system-nspr-prtime/src/3rdparty/chromium/base/time/time.cc
|
|
||||||
--- qtwebengine-opensource-src-5.7.0/src/3rdparty/chromium/base/time/time.cc 2016-05-26 15:53:47.000000000 +0200
|
|
||||||
+++ qtwebengine-opensource-src-5.7.0-system-nspr-prtime/src/3rdparty/chromium/base/time/time.cc 2016-07-17 16:55:54.895115802 +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 {
|
|
@ -1,159 +0,0 @@
|
|||||||
diff -Nur qtwebengine-opensource-src-5.7.1/src/3rdparty/chromium/third_party/webrtc/system_wrappers/BUILD.gn qtwebengine-opensource-src-5.7.1-webrtc-neon-detect/src/3rdparty/chromium/third_party/webrtc/system_wrappers/BUILD.gn
|
|
||||||
--- qtwebengine-opensource-src-5.7.1/src/3rdparty/chromium/third_party/webrtc/system_wrappers/BUILD.gn 2016-11-07 15:46:18.000000000 +0100
|
|
||||||
+++ qtwebengine-opensource-src-5.7.1-webrtc-neon-detect/src/3rdparty/chromium/third_party/webrtc/system_wrappers/BUILD.gn 2016-12-04 15:06:23.886224907 +0100
|
|
||||||
@@ -133,6 +133,8 @@
|
|
||||||
#"WEBRTC_CLOCK_TYPE_REALTIME",
|
|
||||||
]
|
|
||||||
|
|
||||||
+ deps += [ ":cpu_features_linux" ]
|
|
||||||
+
|
|
||||||
libs += [ "rt" ]
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -206,3 +208,14 @@
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
+
|
|
||||||
+if (is_linux) {
|
|
||||||
+ source_set("cpu_features_linux") {
|
|
||||||
+ sources = [
|
|
||||||
+ "source/cpu_features_linux.c",
|
|
||||||
+ ]
|
|
||||||
+
|
|
||||||
+ configs += [ "..:common_config" ]
|
|
||||||
+ public_configs = [ "..:common_inherited_config" ]
|
|
||||||
+ }
|
|
||||||
+}
|
|
||||||
diff -Nur qtwebengine-opensource-src-5.7.1/src/3rdparty/chromium/third_party/webrtc/system_wrappers/cpu_features_webrtc.gyp qtwebengine-opensource-src-5.7.1-webrtc-neon-detect/src/3rdparty/chromium/third_party/webrtc/system_wrappers/cpu_features_webrtc.gyp
|
|
||||||
--- qtwebengine-opensource-src-5.7.1/src/3rdparty/chromium/third_party/webrtc/system_wrappers/cpu_features_webrtc.gyp 2016-11-07 15:46:18.000000000 +0100
|
|
||||||
+++ qtwebengine-opensource-src-5.7.1-webrtc-neon-detect/src/3rdparty/chromium/third_party/webrtc/system_wrappers/cpu_features_webrtc.gyp 2016-12-04 15:05:24.150142787 +0100
|
|
||||||
@@ -7,6 +7,7 @@
|
|
||||||
# be found in the AUTHORS file in the root of the source tree.
|
|
||||||
|
|
||||||
{
|
|
||||||
+ 'includes': [ '../build/common.gypi', ],
|
|
||||||
'conditions': [
|
|
||||||
['OS=="android"', {
|
|
||||||
'targets': [
|
|
||||||
@@ -21,6 +22,20 @@
|
|
||||||
],
|
|
||||||
},
|
|
||||||
],
|
|
||||||
+ }],
|
|
||||||
+ ['OS=="linux"', {
|
|
||||||
+ 'targets': [
|
|
||||||
+ {
|
|
||||||
+ 'target_name': 'cpu_features_linux',
|
|
||||||
+ 'type': 'static_library',
|
|
||||||
+ 'sources': [
|
|
||||||
+ 'source/cpu_features_linux.c',
|
|
||||||
+ ],
|
|
||||||
+ 'dependencies': [
|
|
||||||
+ '<(webrtc_root)/common.gyp:webrtc_common',
|
|
||||||
+ ],
|
|
||||||
+ },
|
|
||||||
+ ],
|
|
||||||
}],
|
|
||||||
], # conditions
|
|
||||||
}
|
|
||||||
diff -Nur qtwebengine-opensource-src-5.7.1/src/3rdparty/chromium/third_party/webrtc/system_wrappers/source/cpu_features_linux.c qtwebengine-opensource-src-5.7.1-webrtc-neon-detect/src/3rdparty/chromium/third_party/webrtc/system_wrappers/source/cpu_features_linux.c
|
|
||||||
--- qtwebengine-opensource-src-5.7.1/src/3rdparty/chromium/third_party/webrtc/system_wrappers/source/cpu_features_linux.c 1970-01-01 01:00:00.000000000 +0100
|
|
||||||
+++ qtwebengine-opensource-src-5.7.1-webrtc-neon-detect/src/3rdparty/chromium/third_party/webrtc/system_wrappers/source/cpu_features_linux.c 2016-12-04 15:05:24.150142787 +0100
|
|
||||||
@@ -0,0 +1,83 @@
|
|
||||||
+/*
|
|
||||||
+ * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
|
|
||||||
+ *
|
|
||||||
+ * Use of this source code is governed by a BSD-style license
|
|
||||||
+ * that can be found in the LICENSE file in the root of the source
|
|
||||||
+ * tree. An additional intellectual property rights grant can be found
|
|
||||||
+ * in the file PATENTS. All contributing project authors may
|
|
||||||
+ * be found in the AUTHORS file in the root of the source tree.
|
|
||||||
+ */
|
|
||||||
+
|
|
||||||
+#include <stdlib.h>
|
|
||||||
+#include <string.h>
|
|
||||||
+#include <features.h>
|
|
||||||
+#if __GLIBC_PREREQ(2, 16)
|
|
||||||
+#include <sys/auxv.h>
|
|
||||||
+#else
|
|
||||||
+#include <fcntl.h>
|
|
||||||
+#include <unistd.h>
|
|
||||||
+#include <errno.h>
|
|
||||||
+#include <link.h>
|
|
||||||
+#endif
|
|
||||||
+#include "webrtc/system_wrappers/include/cpu_features_wrapper.h"
|
|
||||||
+
|
|
||||||
+#if defined(WEBRTC_ARCH_ARM_FAMILY)
|
|
||||||
+#include <asm/hwcap.h>
|
|
||||||
+
|
|
||||||
+uint64_t WebRtc_GetCPUFeaturesARM(void) {
|
|
||||||
+ uint64_t result = 0;
|
|
||||||
+ int architecture = 0;
|
|
||||||
+ unsigned long hwcap = 0;
|
|
||||||
+ const char* platform = NULL;
|
|
||||||
+#if __GLIBC_PREREQ(2, 16)
|
|
||||||
+ hwcap = getauxval(AT_HWCAP);
|
|
||||||
+ platform = (const char*)getauxval(AT_PLATFORM);
|
|
||||||
+#else
|
|
||||||
+ ElfW(auxv_t) auxv;
|
|
||||||
+ int fd = open("/proc/self/auxv", O_RDONLY);
|
|
||||||
+ if (fd >= 0) {
|
|
||||||
+ while (hwcap == 0 || platform == NULL) {
|
|
||||||
+ if (read(fd, &auxv, sizeof(auxv)) < (ssize_t)sizeof(auxv)) {
|
|
||||||
+ if (errno == EINTR)
|
|
||||||
+ continue;
|
|
||||||
+ break;
|
|
||||||
+ }
|
|
||||||
+ switch (auxv.a_type) {
|
|
||||||
+ case AT_HWCAP:
|
|
||||||
+ hwcap = auxv.a_un.a_val;
|
|
||||||
+ break;
|
|
||||||
+ case AT_PLATFORM:
|
|
||||||
+ platform = (const char*)auxv.a_un.a_val;
|
|
||||||
+ break;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+ close(fd);
|
|
||||||
+ }
|
|
||||||
+#endif // __GLIBC_PREREQ(2,16)
|
|
||||||
+#if defined(__aarch64__)
|
|
||||||
+ architecture = 8;
|
|
||||||
+ if ((hwcap & HWCAP_FP) != 0)
|
|
||||||
+ result |= kCPUFeatureVFPv3;
|
|
||||||
+ if ((hwcap & HWCAP_ASIMD) != 0)
|
|
||||||
+ result |= kCPUFeatureNEON;
|
|
||||||
+#else
|
|
||||||
+ if (platform != NULL) {
|
|
||||||
+ /* expect a string in the form "v6l" or "v7l", etc.
|
|
||||||
+ */
|
|
||||||
+ if (platform[0] == 'v' && '0' <= platform[1] && platform[1] <= '9' &&
|
|
||||||
+ (platform[2] == 'l' || platform[2] == 'b')) {
|
|
||||||
+ architecture = platform[1] - '0';
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+ if ((hwcap & HWCAP_VFPv3) != 0)
|
|
||||||
+ result |= kCPUFeatureVFPv3;
|
|
||||||
+ if ((hwcap & HWCAP_NEON) != 0)
|
|
||||||
+ result |= kCPUFeatureNEON;
|
|
||||||
+#endif
|
|
||||||
+ if (architecture >= 7)
|
|
||||||
+ result |= kCPUFeatureARMv7;
|
|
||||||
+ if (architecture >= 6)
|
|
||||||
+ result |= kCPUFeatureLDREXSTREX;
|
|
||||||
+ return result;
|
|
||||||
+}
|
|
||||||
+#endif // WEBRTC_ARCH_ARM_FAMILY
|
|
||||||
diff -Nur qtwebengine-opensource-src-5.7.1/src/3rdparty/chromium/third_party/webrtc/system_wrappers/system_wrappers.gyp qtwebengine-opensource-src-5.7.1-webrtc-neon-detect/src/3rdparty/chromium/third_party/webrtc/system_wrappers/system_wrappers.gyp
|
|
||||||
--- qtwebengine-opensource-src-5.7.1/src/3rdparty/chromium/third_party/webrtc/system_wrappers/system_wrappers.gyp 2016-11-07 15:46:18.000000000 +0100
|
|
||||||
+++ qtwebengine-opensource-src-5.7.1-webrtc-neon-detect/src/3rdparty/chromium/third_party/webrtc/system_wrappers/system_wrappers.gyp 2016-12-04 15:09:09.323684522 +0100
|
|
||||||
@@ -143,6 +143,9 @@
|
|
||||||
# Define this if the Linux system does not support CLOCK_MONOTONIC.
|
|
||||||
#'WEBRTC_CLOCK_TYPE_REALTIME',
|
|
||||||
],
|
|
||||||
+ 'dependencies': [
|
|
||||||
+ 'cpu_features_webrtc.gyp:cpu_features_linux',
|
|
||||||
+ ],
|
|
||||||
'link_settings': {
|
|
||||||
'libraries': [ '-lrt', ],
|
|
||||||
},
|
|
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,600 @@
|
|||||||
|
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,
|
@ -0,0 +1,48 @@
|
|||||||
|
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 {
|
@ -0,0 +1,71 @@
|
|||||||
|
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();
|
||||||
|
}
|
@ -0,0 +1,32 @@
|
|||||||
|
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', ],
|
@ -0,0 +1,12 @@
|
|||||||
|
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)
|
||||||
|
{
|
@ -1 +1 @@
|
|||||||
323e546bcefd533a973bc07c94793bb8 qtwebengine-opensource-src-5.7.1-clean.tar.xz
|
SHA512 (qtwebengine-opensource-src-5.8.0-clean.tar.xz) = 18a49156da8d2e21fb0fe4781646c753c82d616964dd14b0651a1097b2a79a5ddb852dbdcc838d1e9e9a4ec460dd77fbab78a03672f5e827ab061fdf97db4a25
|
||||||
|
Loading…
Reference in new issue