Skip to content

Commit 5eea1f2

Browse files
author
Capacitor+ Bot
committed
chore: sync plus with upstream main (needs conflict resolution)
2 parents ed3179a + afb80f2 commit 5eea1f2

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+589
-158
lines changed

.github/ionic-issue-bot.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ comment:
2020
message: >
2121
This issue needs more information before it can be addressed.
2222
In particular, the reporter needs to provide a minimal sample app that demonstrates the issue.
23-
If no sample app is provided within 15 days, the issue will be closed.
23+
If no sample app is provided within 7 days, the issue will be closed.
2424
2525
Please see the Contributing Guide for [how to create a Sample App](https://github.com/ionic-team/capacitor/blob/HEAD/CONTRIBUTING.md#creating-a-code-reproduction).
2626

.github/workflows/needs-reply.yml

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
name: Close old issues that need reply
2+
3+
on:
4+
schedule:
5+
- cron: "0 0 * * *"
6+
7+
jobs:
8+
build:
9+
runs-on: ubuntu-latest
10+
steps:
11+
- name: Close old issues that need reply
12+
uses: imhoffd/needs-reply@v2
13+
with:
14+
repo-token: ${{ secrets.BOT_TOKEN }}
15+
issue-label: 'needs reply'
16+
days-before-close: 7
17+
close-message: |
18+
It looks like this issue didn't get the information it needed, so I'll close it for now. If I made a mistake, sorry! I am just a bot.
19+
20+
Have a great day!
21+
Ionitron 💙

.github/workflows/publish-ios.yml

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
name: Publish Native iOS Library
2+
3+
on:
4+
workflow_call:
5+
secrets:
6+
COCOAPODS_TRUNK_TOKEN:
7+
required: true
8+
workflow_dispatch:
9+
10+
jobs:
11+
publish-ios:
12+
runs-on: macos-15
13+
timeout-minutes: 30
14+
steps:
15+
- run: sudo xcode-select --switch /Applications/Xcode_26.0.app
16+
- run: xcrun simctl list > /dev/null
17+
- run: xcodebuild -downloadPlatform iOS
18+
- uses: actions/setup-node@v6
19+
with:
20+
node-version: 22.x
21+
- uses: actions/checkout@v5
22+
with:
23+
fetch-depth: 0
24+
ref: 'main'
25+
- name: Install Cocoapods
26+
run: gem install cocoapods
27+
- name: Deploy to Cocoapods
28+
run: sh ./scripts/native-podspec.sh publish
29+
env:
30+
COCOAPODS_TRUNK_TOKEN: ${{ secrets.COCOAPODS_TRUNK_TOKEN }}

.github/workflows/test.yml

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ jobs:
2424
fi
2525
setup:
2626
runs-on: ubuntu-latest
27-
timeout-minutes: 30
27+
timeout-minutes: 60
2828
steps:
2929
- name: Get Latest
3030
uses: actions/setup-node@v6
@@ -38,7 +38,7 @@ jobs:
3838
key: ${{ runner.OS }}-dependencies-cache-${{ hashFiles('**/package.json') }}
3939
lint:
4040
runs-on: macos-15
41-
timeout-minutes: 30
41+
timeout-minutes: 60
4242
steps:
4343
- uses: actions/setup-node@v6
4444
with:
@@ -54,7 +54,7 @@ jobs:
5454
- run: npm run lint
5555
test-cli:
5656
runs-on: macos-15
57-
timeout-minutes: 30
57+
timeout-minutes: 60
5858
needs:
5959
- setup
6060
- lint
@@ -75,7 +75,7 @@ jobs:
7575
working-directory: ./cli
7676
test-core:
7777
runs-on: ubuntu-latest
78-
timeout-minutes: 30
78+
timeout-minutes: 60
7979
needs:
8080
- setup
8181
- lint
@@ -96,7 +96,7 @@ jobs:
9696
working-directory: ./core
9797
test-ios:
9898
runs-on: macos-15
99-
timeout-minutes: 30
99+
timeout-minutes: 60
100100
needs:
101101
- setup
102102
- lint
@@ -106,6 +106,8 @@ jobs:
106106
- /Applications/Xcode_26.0.app
107107
steps:
108108
- run: sudo xcode-select --switch ${{ matrix.xcode }}
109+
- run: xcrun simctl list > /dev/null
110+
- run: xcodebuild -downloadPlatform iOS
109111
- uses: actions/setup-node@v6
110112
with:
111113
node-version: 22.x
@@ -122,7 +124,7 @@ jobs:
122124
run: sh ./scripts/native-podspec.sh lint
123125
test-android:
124126
runs-on: ubuntu-latest
125-
timeout-minutes: 30
127+
timeout-minutes: 60
126128
needs:
127129
- setup
128130
- lint

CHANGELOG.md

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
All notable changes to this project will be documented in this file.
44
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
55

6+
<<<<<<< HEAD
67
## [8.0.7](https://github.com/Cap-go/capacitor-plus/compare/8.0.6...8.0.7) (2026-01-12)
78

89
**Note:** Version bump only for package capacitor
@@ -439,6 +440,58 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
439440
- update sync branches when upstream PRs have new commits ([5f80078](https://github.com/Cap-go/capacitor-plus/commit/5f80078db201099c6bf75b9e40a6efd1c3d8ac46))
440441
- Upgrade to Typescript 5.x ([#6433](https://github.com/Cap-go/capacitor-plus/issues/6433)) ([88d0ded](https://github.com/Cap-go/capacitor-plus/commit/88d0ded9e7356531ffc4563b9b81a0f3f069484b))
441442
- **webview:** add setServerAssetPath method ([881235b](https://github.com/Cap-go/capacitor-plus/commit/881235b14de23ef988746bfb89a5a0fc3c8d8466))
443+
=======
444+
# [8.2.0](https://github.com/ionic-team/capacitor/compare/8.1.0...8.2.0) (2026-03-06)
445+
446+
### Bug Fixes
447+
448+
- **android:** Add missing null checks in BridgeActivity ([#8185](https://github.com/ionic-team/capacitor/issues/8185)) ([bd29b99](https://github.com/ionic-team/capacitor/commit/bd29b9913a9279de26fc21c6cb0b93b8f5e5433a))
449+
- **android:** Concurrent Range Requests for assets ([#8357](https://github.com/ionic-team/capacitor/issues/8357)) ([5e82c89](https://github.com/ionic-team/capacitor/commit/5e82c89f1bff6d0e9ccea2554007aacb920d4c58))
450+
- **android:** handle lowercase range header ([#8368](https://github.com/ionic-team/capacitor/issues/8368)) ([ae0e2dd](https://github.com/ionic-team/capacitor/commit/ae0e2ddccb2904ee4b3d47d4be1f7556ac7000a1))
451+
- **android:** invalid http range seeking ([#8369](https://github.com/ionic-team/capacitor/issues/8369)) ([3109d22](https://github.com/ionic-team/capacitor/commit/3109d22547253ed44293777c60652f14cf83e416))
452+
- **cli:** Allow to run update on non macOS ([#8344](https://github.com/ionic-team/capacitor/issues/8344)) ([a441280](https://github.com/ionic-team/capacitor/commit/a441280d7c6b310ca516d6fb2736c09525987774))
453+
- **cli:** Don't overwrite config.server section with `--live-reload` ([#7528](https://github.com/ionic-team/capacitor/issues/7528)) ([782b9d9](https://github.com/ionic-team/capacitor/commit/782b9d9c26dcf1282b918996becb0224c0baca1d))
454+
- **cli:** use 8.0.0 as default Capacitor SPM dependency version ([#8341](https://github.com/ionic-team/capacitor/issues/8341)) ([a55dc5e](https://github.com/ionic-team/capacitor/commit/a55dc5ee4dfeab861cde1e11c9063aefea91006b))
455+
- **docs:** fix typo in CapApp-SPM README ([#8348](https://github.com/ionic-team/capacitor/issues/8348)) ([7d001ac](https://github.com/ionic-team/capacitor/commit/7d001ac4c58757fba922ea50f5bf5233ce217490))
456+
- **ios:** remove tmpWindow usages on presentVC/dismissVC ([#8338](https://github.com/ionic-team/capacitor/issues/8338)) ([fc9647f](https://github.com/ionic-team/capacitor/commit/fc9647f26f08ff64f53b32c79fb19f153e3b0a24))
457+
458+
### Features
459+
460+
- **cli:** Add --https option for --live-reload ([#8194](https://github.com/ionic-team/capacitor/issues/8194)) ([5db81e6](https://github.com/ionic-team/capacitor/commit/5db81e68c67652e9d2b29d7ad30629b423d2ad30))
461+
462+
# [8.1.0](https://github.com/ionic-team/capacitor/compare/8.0.2...8.1.0) (2026-02-11)
463+
464+
### Bug Fixes
465+
466+
- **cookies:** only send expires param on web if a date is set ([b10cd7f](https://github.com/ionic-team/capacitor/commit/b10cd7ff15b010a76802374214f4e0cbd04abdab))
467+
468+
### Features
469+
470+
- **cli:** Add packageManager to iOS config ([#8321](https://github.com/ionic-team/capacitor/issues/8321)) ([a125498](https://github.com/ionic-team/capacitor/commit/a1254983bbb9dcb273d93f3c5f639b792e516406))
471+
472+
### Reverts
473+
474+
- revert version bump from [#8319](https://github.com/ionic-team/capacitor/issues/8319) and [#8320](https://github.com/ionic-team/capacitor/issues/8320) ([a48ebb6](https://github.com/ionic-team/capacitor/commit/a48ebb622ea4ebe92927bf1756a4d8ac6012884b))
475+
476+
## [8.0.2](https://github.com/ionic-team/capacitor/compare/8.0.1...8.0.2) (2026-01-27)
477+
478+
### Bug Fixes
479+
480+
- **android:** AGP 9.0 no longer supports `proguard-android.txt` ([#8315](https://github.com/ionic-team/capacitor/issues/8315)) ([dcc76c3](https://github.com/ionic-team/capacitor/commit/dcc76c37508a9b71fb36d95707748c2dd115cf52))
481+
- **cli:** Update tar package ([#8311](https://github.com/ionic-team/capacitor/issues/8311)) ([0969c5c](https://github.com/ionic-team/capacitor/commit/0969c5cd0b16cf23d2489a85a3b8fa1bee2ebf3b))
482+
- **core:** make SystemBars hide and show options optional ([#8305](https://github.com/ionic-team/capacitor/issues/8305)) ([95dc7d8](https://github.com/ionic-team/capacitor/commit/95dc7d8ace3aabdda7e325c4a8ef7d1432ad37e9))
483+
- **SystemBars:** get correct style on handleOnConfigurationChanged ([#8295](https://github.com/ionic-team/capacitor/issues/8295)) ([2a66b44](https://github.com/ionic-team/capacitor/commit/2a66b44915895f971e4a26a8612798aa2f95ea11))
484+
- **SystemBars:** Set window background color according to theme ([#8306](https://github.com/ionic-team/capacitor/issues/8306)) ([6037e38](https://github.com/ionic-team/capacitor/commit/6037e3836ec24c9ddf26e74e5fbec20ab506adfd))
485+
- **SystemBars:** Skipping margin manipulation when on a fixed WebView ([#8309](https://github.com/ionic-team/capacitor/issues/8309)) ([53c33b6](https://github.com/ionic-team/capacitor/commit/53c33b614218bf635322fbdf9a38038a7964e3d4))
486+
487+
## [8.0.1](https://github.com/ionic-team/capacitor/compare/8.0.0...8.0.1) (2026-01-13)
488+
489+
### Bug Fixes
490+
491+
- **android:** Remove calculated bottom inset if keyboard is visible ([#8280](https://github.com/ionic-team/capacitor/issues/8280)) ([196b642](https://github.com/ionic-team/capacitor/commit/196b642236d293a5012e3c307fcd942766e56cce))
492+
- **cli:** Support wireless iOS devices in `cap run` ([#8301](https://github.com/ionic-team/capacitor/issues/8301)) ([dcb368c](https://github.com/ionic-team/capacitor/commit/dcb368c33555487f1b6f46a6d8e30736bdd78955))
493+
- **cli:** use latest native-run ([#8296](https://github.com/ionic-team/capacitor/issues/8296)) ([121d830](https://github.com/ionic-team/capacitor/commit/121d83013f39e25009121533a2c3ad86e428d6b2))
494+
>>>>>>> upstream/main
442495
443496
# [8.0.0](https://github.com/ionic-team/capacitor/compare/8.0.0-beta.0...8.0.0) (2025-12-08)
444497

android/CHANGELOG.md

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
All notable changes to this project will be documented in this file.
44
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
55

6+
<<<<<<< HEAD
67
## [8.0.7](https://github.com/Cap-go/capacitor-plus/compare/8.0.6...8.0.7) (2026-01-12)
78

89
**Note:** Version bump only for package @capacitor-plus/android
@@ -199,6 +200,37 @@ See [Conventional Commits](https://conventionalcommits.org) for commit guideline
199200
- support for Amazon Fire WebView ([#6603](https://github.com/Cap-go/capacitor-plus/issues/6603)) ([3cb4eb8](https://github.com/Cap-go/capacitor-plus/commit/3cb4eb89632bce8dc872418fdb130bfd4de40b68))
200201
- System Bars Plugin ([#8180](https://github.com/Cap-go/capacitor-plus/issues/8180)) ([a32216a](https://github.com/Cap-go/capacitor-plus/commit/a32216ac0607172a3a9c7ae5cdbfc598769294a6))
201202
- **webview:** add setServerAssetPath method ([881235b](https://github.com/Cap-go/capacitor-plus/commit/881235b14de23ef988746bfb89a5a0fc3c8d8466))
203+
=======
204+
# [8.2.0](https://github.com/ionic-team/capacitor/compare/8.1.0...8.2.0) (2026-03-06)
205+
206+
### Bug Fixes
207+
208+
- **android:** Add missing null checks in BridgeActivity ([#8185](https://github.com/ionic-team/capacitor/issues/8185)) ([bd29b99](https://github.com/ionic-team/capacitor/commit/bd29b9913a9279de26fc21c6cb0b93b8f5e5433a))
209+
- **android:** Concurrent Range Requests for assets ([#8357](https://github.com/ionic-team/capacitor/issues/8357)) ([5e82c89](https://github.com/ionic-team/capacitor/commit/5e82c89f1bff6d0e9ccea2554007aacb920d4c58))
210+
- **android:** handle lowercase range header ([#8368](https://github.com/ionic-team/capacitor/issues/8368)) ([ae0e2dd](https://github.com/ionic-team/capacitor/commit/ae0e2ddccb2904ee4b3d47d4be1f7556ac7000a1))
211+
- **android:** invalid http range seeking ([#8369](https://github.com/ionic-team/capacitor/issues/8369)) ([3109d22](https://github.com/ionic-team/capacitor/commit/3109d22547253ed44293777c60652f14cf83e416))
212+
213+
# [8.1.0](https://github.com/ionic-team/capacitor/compare/8.0.2...8.1.0) (2026-02-11)
214+
215+
### Reverts
216+
217+
- revert version bump from [#8319](https://github.com/ionic-team/capacitor/issues/8319) and [#8320](https://github.com/ionic-team/capacitor/issues/8320) ([a48ebb6](https://github.com/ionic-team/capacitor/commit/a48ebb622ea4ebe92927bf1756a4d8ac6012884b))
218+
219+
## [8.0.2](https://github.com/ionic-team/capacitor/compare/8.0.1...8.0.2) (2026-01-27)
220+
221+
### Bug Fixes
222+
223+
- **android:** AGP 9.0 no longer supports `proguard-android.txt` ([#8315](https://github.com/ionic-team/capacitor/issues/8315)) ([dcc76c3](https://github.com/ionic-team/capacitor/commit/dcc76c37508a9b71fb36d95707748c2dd115cf52))
224+
- **SystemBars:** get correct style on handleOnConfigurationChanged ([#8295](https://github.com/ionic-team/capacitor/issues/8295)) ([2a66b44](https://github.com/ionic-team/capacitor/commit/2a66b44915895f971e4a26a8612798aa2f95ea11))
225+
- **SystemBars:** Set window background color according to theme ([#8306](https://github.com/ionic-team/capacitor/issues/8306)) ([6037e38](https://github.com/ionic-team/capacitor/commit/6037e3836ec24c9ddf26e74e5fbec20ab506adfd))
226+
- **SystemBars:** Skipping margin manipulation when on a fixed WebView ([#8309](https://github.com/ionic-team/capacitor/issues/8309)) ([53c33b6](https://github.com/ionic-team/capacitor/commit/53c33b614218bf635322fbdf9a38038a7964e3d4))
227+
228+
## [8.0.1](https://github.com/ionic-team/capacitor/compare/8.0.0...8.0.1) (2026-01-13)
229+
230+
### Bug Fixes
231+
232+
- **android:** Remove calculated bottom inset if keyboard is visible ([#8280](https://github.com/ionic-team/capacitor/issues/8280)) ([196b642](https://github.com/ionic-team/capacitor/commit/196b642236d293a5012e3c307fcd942766e56cce))
233+
>>>>>>> upstream/main
202234
203235
# [8.0.0](https://github.com/ionic-team/capacitor/compare/8.0.0-beta.0...8.0.0) (2025-12-08)
204236

android/capacitor/src/main/assets/native-bridge.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -505,6 +505,10 @@ var nativeBridge = (function (exports) {
505505
if (typeof resource === 'string') {
506506
return await win.CapacitorWebFetch(createProxyUrl(resource, win), options);
507507
}
508+
else if (resource instanceof URL) {
509+
const modifiedURL = new URL(createProxyUrl(resource.toString(), win));
510+
return await win.CapacitorWebFetch(modifiedURL, options);
511+
}
508512
else if (resource instanceof Request) {
509513
const modifiedRequest = new Request(createProxyUrl(resource.url, win), resource);
510514
return await win.CapacitorWebFetch(modifiedRequest, options);

android/capacitor/src/main/java/com/getcapacitor/BridgeActivity.java

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,9 @@ public Bridge getBridge() {
6666
@Override
6767
public void onSaveInstanceState(Bundle outState) {
6868
super.onSaveInstanceState(outState);
69-
bridge.saveInstanceState(outState);
69+
if (bridge != null) {
70+
bridge.saveInstanceState(outState);
71+
}
7072
}
7173

7274
@Override
@@ -82,8 +84,10 @@ public void onStart() {
8284
@Override
8385
public void onRestart() {
8486
super.onRestart();
85-
this.bridge.onRestart();
86-
Logger.debug("App restarted");
87+
if (this.bridge != null) {
88+
this.bridge.onRestart();
89+
Logger.debug("App restarted");
90+
}
8791
}
8892

8993
@Override
@@ -131,7 +135,9 @@ public void onDestroy() {
131135
@Override
132136
public void onDetachedFromWindow() {
133137
super.onDetachedFromWindow();
134-
this.bridge.onDetachedFromWindow();
138+
if (this.bridge != null) {
139+
this.bridge.onDetachedFromWindow();
140+
}
135141
}
136142

137143
/**

android/capacitor/src/main/java/com/getcapacitor/WebViewLocalServer.java

Lines changed: 23 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -128,9 +128,22 @@ public String getReasonPhrase() {
128128
return reasonPhrase;
129129
}
130130

131+
/**
132+
* @deprecated This method may return incorrect headers in concurrent range requests.
133+
* <p>
134+
* Use {@link #buildDefaultResponseHeaders()} instead, which returns a copy of the map.
135+
* </p>
136+
* This method will be removed in a future major version of Capacitor.
137+
* </p>
138+
*/
139+
@Deprecated(forRemoval = true) // adjust version as appropriate
131140
public Map<String, String> getResponseHeaders() {
132141
return responseHeaders;
133142
}
143+
144+
public Map<String, String> buildDefaultResponseHeaders() {
145+
return new HashMap<>(responseHeaders);
146+
}
134147
}
135148

136149
WebViewLocalServer(Context context, Bridge bridge, JSInjector jsInjector, ArrayList<String> authorities, boolean html5mode) {
@@ -326,14 +339,16 @@ private WebResourceResponse handleCapacitorHttpRequest(WebResourceRequest reques
326339
private WebResourceResponse handleLocalRequest(WebResourceRequest request, PathHandler handler) {
327340
String path = request.getUrl().getPath();
328341

329-
if (request.getRequestHeaders().get("Range") != null) {
342+
Map<String, String> requestHeaders = request.getRequestHeaders();
343+
String rangeString = requestHeaders.get("Range") != null ? requestHeaders.get("Range") : requestHeaders.get("range");
344+
345+
if (rangeString != null) {
330346
InputStream responseStream = new LollipopLazyInputStream(handler, request);
331347
String mimeType = getMimeType(path, responseStream);
332-
Map<String, String> tempResponseHeaders = handler.getResponseHeaders();
348+
Map<String, String> tempResponseHeaders = handler.buildDefaultResponseHeaders();
333349
int statusCode = 206;
334350
try {
335351
int totalRange = responseStream.available();
336-
String rangeString = request.getRequestHeaders().get("Range");
337352
String[] parts = rangeString.split("=");
338353
String[] streamParts = parts[1].split("-");
339354
String fromRange = streamParts[0];
@@ -365,7 +380,7 @@ private WebResourceResponse handleLocalRequest(WebResourceRequest request, PathH
365380
handler.getEncoding(),
366381
statusCode,
367382
handler.getReasonPhrase(),
368-
handler.getResponseHeaders(),
383+
handler.buildDefaultResponseHeaders(),
369384
responseStream
370385
);
371386
}
@@ -376,7 +391,7 @@ private WebResourceResponse handleLocalRequest(WebResourceRequest request, PathH
376391
handler.getEncoding(),
377392
handler.getStatusCode(),
378393
handler.getReasonPhrase(),
379-
handler.getResponseHeaders(),
394+
handler.buildDefaultResponseHeaders(),
380395
null
381396
);
382397
}
@@ -411,7 +426,7 @@ private WebResourceResponse handleLocalRequest(WebResourceRequest request, PathH
411426
handler.getEncoding(),
412427
statusCode,
413428
handler.getReasonPhrase(),
414-
handler.getResponseHeaders(),
429+
handler.buildDefaultResponseHeaders(),
415430
responseStream
416431
);
417432
}
@@ -442,7 +457,7 @@ private WebResourceResponse handleLocalRequest(WebResourceRequest request, PathH
442457
handler.getEncoding(),
443458
statusCode,
444459
handler.getReasonPhrase(),
445-
handler.getResponseHeaders(),
460+
handler.buildDefaultResponseHeaders(),
446461
responseStream
447462
);
448463
}
@@ -517,7 +532,7 @@ private WebResourceResponse handleProxyRequest(WebResourceRequest request, PathH
517532
handler.getEncoding(),
518533
handler.getStatusCode(),
519534
handler.getReasonPhrase(),
520-
handler.getResponseHeaders(),
535+
handler.buildDefaultResponseHeaders(),
521536
responseStream
522537
);
523538
}

0 commit comments

Comments
 (0)