Commit 90473ab
fix: remove WebMessageListener before destroying WebView to prevent memory leaks
Adds defensive cleanup in destroyWebView() by removing the native bridge
binding prior to webView.destroy(). Uses WebViewCompat.removeWebMessageListener
when supported, falling back to removeJavascriptInterface for older WebView
implementations. This addresses a reported memory leak where
WebMessageListenerHolder retains KlaviyoWebView on some vendor implementations.
Closes #430 | Part of MAGE-457
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>1 parent 6ac2c3d commit 90473ab
2 files changed
Lines changed: 40 additions & 0 deletions
File tree
- sdk/forms/src
- main/java/com/klaviyo/forms/webview
- test/java/com/klaviyo/forms/webview
Lines changed: 15 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
11 | 11 | | |
12 | 12 | | |
13 | 13 | | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
14 | 17 | | |
15 | 18 | | |
16 | 19 | | |
| |||
141 | 144 | | |
142 | 145 | | |
143 | 146 | | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
144 | 159 | | |
145 | 160 | | |
146 | 161 | | |
| |||
Lines changed: 25 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
151 | 151 | | |
152 | 152 | | |
153 | 153 | | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
154 | 157 | | |
155 | 158 | | |
156 | 159 | | |
| |||
345 | 348 | | |
346 | 349 | | |
347 | 350 | | |
| 351 | + | |
| 352 | + | |
| 353 | + | |
| 354 | + | |
| 355 | + | |
| 356 | + | |
| 357 | + | |
| 358 | + | |
| 359 | + | |
| 360 | + | |
| 361 | + | |
| 362 | + | |
| 363 | + | |
| 364 | + | |
| 365 | + | |
| 366 | + | |
| 367 | + | |
| 368 | + | |
| 369 | + | |
| 370 | + | |
| 371 | + | |
| 372 | + | |
348 | 373 | | |
349 | 374 | | |
350 | 375 | | |
| |||
0 commit comments