Skip to content

chore: cherry-pick #8413#8475

Merged
sethkfman merged 1 commit into
release/7.16.0from
chore/cherry-pick-8413
Jan 30, 2024
Merged

chore: cherry-pick #8413#8475
sethkfman merged 1 commit into
release/7.16.0from
chore/cherry-pick-8413

Conversation

@github-actions

Copy link
Copy Markdown
Contributor

This PR cherry-picks #8413

## **Description**

Update SES lockdown options to improve error stacks

Set error taming to unsafe
- make error stacks also available by the error instance stack
- preserve error stack filtered content
- like we
[do](https://github.com/MetaMask/metamask-extension/blob/develop/app/scripts/lockdown-run.js#L6)
in metamask-extension

Set stack filtering to verbose
- show full raw error info for each deep stack level
- preserve _noise_ that the (default) `concise` option was removing

Follow-up to
- #8033

Ref:
https://github.com/endojs/endo/blob/master/packages/ses/docs/reference.md#options-quick-reference

Nb: we're looking into a lockdown/repairIntrinsics option to disable
touching errors entirely (for cases like ours involving React Native
surfacing JS/Android/iOS errors, then later newer engine Hermes)

## **Related issues**

- note: #8352

## **Manual testing steps**

Local testing in debug-mode:
- Update
[InitializeCore](https://github.com/MetaMask/metamask-mobile/blob/main/patches/react-native%2B0.71.15.patch#L13)
to enable SES in debug/dev mode
- Trigger an error somewhere in the app
  - `new Error('test')`
  - `Sentry.captureException(new Error('test'))`
- Check simulator
  - ensure original error preserved in call stack
  - ensure tapping error redirects to source code
- Check Sentry event
  - ensure original error preserved in call stack

But note above we're looking into a better lockdown option for React
Native debug-mode,
since we disabled SES in debug-mode
[earlier](#7924) from
React Devtools interfering

Production testing:
After we merge #8373,
we'll be able to ft toggle lockdown via our in-app settings menu, which
will persist the choice and apply after the app has been rebooted

## **Screenshots/Recordings**

<!-- If applicable, add screenshots and/or recordings to visualize the
before and after of your change. -->

### **Before**

<!-- [screenshots/recordings] -->

### **After**

<!-- [screenshots/recordings] -->

## **Pre-merge author checklist**

- [x] I’ve followed [MetaMask Coding
Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md).
- [x] I've clearly explained what problem this PR is solving and how it
is solved.
- [x] I've linked related issues
- [x] I've included manual testing steps
- [x] I've included screenshots/recordings if applicable
- [x] I’ve included tests if applicable
- [x] I’ve documented my code using [JSDoc](https://jsdoc.app/) format
if applicable
- [x] I’ve applied the right labels on the PR (see [labeling
guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)).
Not required for external contributors.
- [x] I’ve properly set the pull request status:
  - [x] In case it's not yet "ready for review", I've set it to "draft".
- [x] In case it's "ready for review", I've changed it from "draft" to
"non-draft".

## **Pre-merge reviewer checklist**

- [ ] I've manually tested the PR (e.g. pull and build branch, run the
app, test code being changed).
- [ ] I confirm that this PR addresses all acceptance criteria described
in the ticket it closes and includes the necessary testing evidence such
as recordings and or screenshots.
@github-actions

Copy link
Copy Markdown
Contributor Author

E2E test started on Bitrise: https://app.bitrise.io/app/be69d4368ee7e86d/pipelines/af4d780e-c974-4c96-a78d-c55527d133fc
You can also kick off another Bitrise E2E smoke test by removing and re-applying the (Run Smoke E2E) label

@sethkfman sethkfman marked this pull request as ready for review January 30, 2024 20:59
@sethkfman sethkfman requested a review from a team as a code owner January 30, 2024 20:59

@sethkfman sethkfman left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

LGTM

@sethkfman sethkfman merged commit a6bae2d into release/7.16.0 Jan 30, 2024
@sethkfman sethkfman deleted the chore/cherry-pick-8413 branch January 30, 2024 21:00
@github-actions github-actions Bot locked and limited conversation to collaborators Jan 30, 2024
@metamaskbot metamaskbot added the release-7.16.0 Issue or pull request that will be included in release 7.16.0 label Jan 30, 2024
@metamaskbot

Copy link
Copy Markdown
Collaborator

No release label on PR. Adding release label release-7.16.0 on PR, as PR was cherry-picked in branch 7.16.0.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

release-7.16.0 Issue or pull request that will be included in release 7.16.0

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants