Skip to content

Conversation

@robert-smartbear
Copy link
Contributor

Goal

Discard ViewLoad spans and associated AppStartup spans if the ViewController's viewLoad is interrupted by the User moving on to another screen

Changeset

  • instrumented viewWillDisappear

Testing

E2E tests

robert-smartbear and others added 19 commits December 9, 2025 12:14
…_attributes_onSpanEnd_for_blocked_spans

Fixed an issue where onSpanEnd callbacks would fail to set attributes of blocked spans
…d in reprocessing (#538)

Co-authored-by: Robert Bartoszewski <[email protected]>
…enever there is an ended and blocked span on the top of the stack (#540)

Co-authored-by: Robert Bartoszewski <[email protected]>
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 4.31.6 to 4.31.7.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](github/codeql-action@fe4161a...cf1bb45)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-version: 4.31.7
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [actions/checkout](https://github.com/actions/checkout) from 6.0.0 to 6.0.1.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@1af3b93...8e8c483)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: 6.0.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…een started on a background thread (#539)

Co-authored-by: Robert Bartoszewski <[email protected]>
# Conflicts:
#	BugsnagPerformance.xcodeproj/project.pbxproj
#	Sources/BugsnagPerformance/Private/BugsnagPerformanceImpl.mm
#	Sources/BugsnagPerformance/Private/Instrumentation/NetworkInstrumentation.mm
#	Sources/BugsnagPerformance/Private/Instrumentation/ViewLoadInstrumentation.mm
#	Sources/BugsnagPerformance/Private/Tracer.mm
#	features/default/manual_spans.feature
#	features/default/network.feature
…t happened during first view viewDataLoading phase
…t happened before BugsnagPerformance had been started
…troller's viewLoad is interrupted by the User moving on to another screen
@github-actions
Copy link

github-actions bot commented Dec 11, 2025

BugsnagPerformance.framework binary size increased by 19,648 bytes from 885,152 to 904,800

    FILE SIZE        VM SIZE    
 --------------  -------------- 
   +43% +13.1Ki   +43% +13.1Ki    [__TEXT]
  +1.0% +1.89Ki  +1.0% +1.89Ki    __TEXT,__text
  +0.7% +1.71Ki  +0.7% +1.71Ki    String Table
  +0.8% +1.45Ki  +0.8% +1.45Ki    Symbol Table
  +1.5%    +372  +1.5%    +372    __TEXT,__objc_methname
  +1.5%    +304  +1.5%    +304    __TEXT,__gcc_except_tab
  +0.7%    +280  +0.7%    +280    __DATA,__objc_const
  +1.1%    +224  +1.1%    +224    __TEXT,__objc_stubs
  +1.2%     +96  +1.2%     +96    __TEXT,__unwind_info
  +1.2%     +64  +1.2%     +64    __DATA,__objc_selrefs
  +0.4%     +48  +0.4%     +48    __DATA_CONST,__const
  +1.1%     +24  +1.1%     +24    Function Start Addresses
  +0.4%      +8  +0.4%      +8    Rebase Info
  +0.9%      +8  +0.9%      +8    __DATA,__objc_ivar
  -0.2%      -8  -0.2%      -8    Binding Info
  -0.4%     -48  -0.4%     -48    [__DATA_CONST]
  -2.4%    -352  -2.4%    -352    [__DATA]
  [ = ]       0 -20.4% -3.19Ki    [__LINKEDIT]
  +2.2% +19.2Ki  +1.8% +16.0Ki    TOTAL

Generated by 🚫 Danger

});
}

void instrumentViewDidDisppear(Class cls, ViewLoadSwizzlingCallbacks *callbacks) noexcept {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

typo in method name

span.parentId == appStartSpan.spanId &&
span.traceIdHi == appStartSpan.traceIdHi &&
span.traceIdLo == appStartSpan.traceIdLo) {
lifecycleHandler_->onFirstViewWillDisappear(state_);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

the name "onFirstViewWillDissapear" - I don't understand the name - what's supposed to happen?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Made some changes to make the code clearer

Base automatically changed from robert/plat-15334_app_start_type_early to integration/v2 December 15, 2025 08:59
@robert-smartbear robert-smartbear merged commit d95fd41 into integration/v2 Dec 15, 2025
26 checks passed
@robert-smartbear robert-smartbear deleted the robert/plat-PLAT-15331_discard_interrupted_view_loads branch December 15, 2025 15:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants