@datadog/mobile-react-native-webview 2.8.0 → 2.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -18,6 +18,10 @@ Pod::Spec.new do |s|
18
18
 
19
19
  s.dependency "React-Core"
20
20
 
21
+ if ENV['USE_FRAMEWORKS'] == 'static'
22
+ s.dependency "react-native-webview"
23
+ end
24
+
21
25
  # /!\ Remember to keep the version in sync with DatadogSDKReactNative.podspec
22
26
  s.dependency 'DatadogWebViewTracking', '~> 2.27.0'
23
27
  s.dependency 'DatadogInternal', '~> 2.27.0'
@@ -31,16 +35,23 @@ Pod::Spec.new do |s|
31
35
  test_spec.platforms = { :ios => "13.4", :tvos => "13.4" }
32
36
  end
33
37
 
38
+ xcconfig = {
39
+ "HEADER_SEARCH_PATHS" => "$(PODS_ROOT)/react-native-webview/**"
40
+ }
34
41
 
35
42
  # This guard prevents installing the dependencies when we run `pod install` in the old architecture.
36
43
  # The `install_modules_dependencies` function is only available from RN 0.71, the new architecture is not
37
44
  # supported on earlier RN versions.
38
45
  if ENV['RCT_NEW_ARCH_ENABLED'] == '1' then
39
- s.pod_target_xcconfig = {
46
+
47
+ xcconfig.merge!({
40
48
  "DEFINES_MODULE" => "YES",
41
- "OTHER_CPLUSPLUSFLAGS" => "-DRCT_NEW_ARCH_ENABLED=1"
42
- }
49
+ "OTHER_CPLUSPLUSFLAGS" => "-DRCT_NEW_ARCH_ENABLED=1",
50
+ "CLANG_CXX_LANGUAGE_STANDARD" => "c++17"
51
+ })
43
52
 
44
53
  install_modules_dependencies(s)
45
54
  end
55
+
56
+ s.pod_target_xcconfig = xcconfig
46
57
  end
@@ -189,7 +189,7 @@ dependencies {
189
189
  implementation "com.facebook.react:react-android:$reactNativeVersion"
190
190
  }
191
191
 
192
- implementation "com.datadoghq:dd-sdk-android-webview:2.14.0"
192
+ implementation "com.datadoghq:dd-sdk-android-webview:2.19.2"
193
193
  implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version"
194
194
 
195
195
  implementation project(path: ':datadog_mobile-react-native')
@@ -9,4 +9,4 @@
9
9
 
10
10
  #import "RCTDatadogWebView.h"
11
11
  #import "RCTDatadogWebViewManager.h"
12
- #import <react-native-webview/RNCWebViewImpl.h>
12
+ #import "RNCWebViewImpl.h"
@@ -4,7 +4,7 @@
4
4
  * Copyright 2016-Present Datadog, Inc.
5
5
  */
6
6
 
7
- #import <react-native-webview/RNCWebViewImpl.h>
7
+ #import "RNCWebViewImpl.h"
8
8
 
9
9
  @class RCTDatadogWebView;
10
10
 
@@ -4,7 +4,7 @@
4
4
  * Copyright 2016-Present Datadog, Inc.
5
5
  */
6
6
 
7
- #import <react-native-webview/RNCWebViewManager.h>
7
+ #import "RNCWebViewManager.h"
8
8
 
9
9
  @interface RCTDatadogWebViewManager : RNCWebViewManager
10
10
  @end
@@ -8,7 +8,12 @@
8
8
  #import <DatadogSDKReactNative/DatadogSDKReactNative-umbrella.h>
9
9
  #import "RCTDatadogWebViewManager.h"
10
10
  #import "RCTDatadogWebView.h"
11
- #import "DatadogSDKReactNativeWebView-Swift.h"
11
+
12
+ #if __has_include("DatadogSDKReactNativeWebView-Swift.h")
13
+ #import <DatadogSDKReactNativeWebView-Swift.h>
14
+ #else
15
+ #import <DatadogSDKReactNativeWebView/DatadogSDKReactNativeWebView-Swift.h>
16
+ #endif
12
17
 
13
18
  @interface RCTDatadogWebViewManager () <RNCWebViewDelegate, RCTDatadogWebViewDelegate>
14
19
  @property (nonatomic, strong) NSMutableSet *allowedHosts;
@@ -13,8 +13,7 @@ var _envUtils = require("./utils/env-utils");
13
13
  var _webviewJsUtils = require("./utils/webview-js-utils");
14
14
  var _jsxRuntime = require("react/jsx-runtime");
15
15
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
16
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
17
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
16
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
18
17
  /*
19
18
  * Unless explicitly stated otherwise all files in this repository are licensed under the Apache License Version 2.0.
20
19
  * This product includes software developed at Datadog (https://www.datadoghq.com/).
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNativeWebview","require","_react","_interopRequireWildcard","_NativeDdLogs","_interopRequireDefault","_NativeDdSdk","_NativeDdWebView","_envUtils","_webviewJsUtils","_jsxRuntime","e","__esModule","default","_getRequireWildcardCache","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","WebViewComponent","props","ref","userDefinedOnMessage","onMessage","useCallback","event","handleDatadogMessage","ddMessage","type","message","logUserCodeErrors","NativeDdLogs","error","NativeDdSdk","consumeWebviewEvent","nativeEvent","data","jsonMsg","JSON","parse","source","err","getInjectedJavascriptBeforeContentLoaded","isNewArchitecture","getWebViewEventBridgingJS","allowedHosts","injectedJavaScriptBeforeContentLoaded","wrapJsCodeInTryAndCatch","jsx","WebView","nativeConfig","component","NativeDdWebView","injectedJavaScript","exports","forwardRef","_default"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_reactNativeWebview","require","_react","_interopRequireWildcard","_NativeDdLogs","_interopRequireDefault","_NativeDdSdk","_NativeDdWebView","_envUtils","_webviewJsUtils","_jsxRuntime","e","__esModule","default","t","WeakMap","r","n","o","i","f","__proto__","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","WebViewComponent","props","ref","userDefinedOnMessage","onMessage","useCallback","event","handleDatadogMessage","ddMessage","type","message","logUserCodeErrors","NativeDdLogs","error","NativeDdSdk","consumeWebviewEvent","nativeEvent","data","jsonMsg","JSON","parse","source","err","getInjectedJavascriptBeforeContentLoaded","isNewArchitecture","getWebViewEventBridgingJS","allowedHosts","injectedJavaScriptBeforeContentLoaded","wrapJsCodeInTryAndCatch","jsx","WebView","nativeConfig","component","NativeDdWebView","injectedJavaScript","exports","forwardRef","_default"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@datadog/mobile-react-native-webview",
3
- "version": "2.8.0",
3
+ "version": "2.8.1",
4
4
  "description": "A client-side React Native module to interact with react-native-webview and Datadog",
5
5
  "keywords": [
6
6
  "datadog",
@@ -94,5 +94,5 @@
94
94
  "javaPackageName": "com.datadog.reactnative.webview"
95
95
  }
96
96
  },
97
- "gitHead": "55a6d45ea4a84149093f52f1d14329d17031709e"
97
+ "gitHead": "a864b56f9adf689b4e65cd463529a03ba51cafc8"
98
98
  }
@@ -9,6 +9,7 @@ import { WebView as RNWebView } from 'react-native-webview';
9
9
  import React from 'react';
10
10
 
11
11
  import { WebView } from '../index';
12
+ import { isNewArchitecture } from '../utils/env-utils';
12
13
 
13
14
  import { dedent } from './__utils__/string-utils';
14
15
 
@@ -166,19 +167,51 @@ describe('Webview', () => {
166
167
  mockedWebView.mock.calls[0][0]
167
168
  .injectedJavaScriptBeforeContentLoaded ?? ''
168
169
  );
169
- const expected = dedent(`
170
- try{
171
- testInjectedJavaScript()
172
- }
173
- catch (error) {
174
- const errorMsg = error instanceof Error ? error.message : String(error);
175
- window.ReactNativeWebView.postMessage(JSON.stringify({
176
- source: 'DATADOG',
177
- type: 'ERROR',
178
- message: errorMsg
179
- }));
180
- true;
181
- }`);
170
+ let expected;
171
+
172
+ if (isNewArchitecture()) {
173
+ expected = dedent(`
174
+ window.DatadogEventBridge = {
175
+ send(msg) {
176
+ window.ReactNativeWebView.postMessage(JSON.stringify({
177
+ source: 'DATADOG',
178
+ type: 'NATIVE_EVENT',
179
+ message: msg
180
+ }));
181
+ true;
182
+ },
183
+ getAllowedWebViewHosts() {
184
+ return '["localhost","example.com"]'
185
+ }
186
+ };
187
+ try{
188
+ testInjectedJavaScript()
189
+ }
190
+ catch (error) {
191
+ const errorMsg = error instanceof Error ? error.message : String(error);
192
+ window.ReactNativeWebView.postMessage(JSON.stringify({
193
+ source: 'DATADOG',
194
+ type: 'ERROR',
195
+ message: errorMsg
196
+ }));
197
+ true;
198
+ }
199
+ `);
200
+ } else {
201
+ expected = dedent(`
202
+ try{
203
+ testInjectedJavaScript()
204
+ }
205
+ catch (error) {
206
+ const errorMsg = error instanceof Error ? error.message : String(error);
207
+ window.ReactNativeWebView.postMessage(JSON.stringify({
208
+ source: 'DATADOG',
209
+ type: 'ERROR',
210
+ message: errorMsg
211
+ }));
212
+ true;
213
+ }`);
214
+ }
182
215
 
183
216
  expect(realInjectedJs).toBe(expected);
184
217
  });