Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: cherry-pick #8413 #8475

Merged
merged 1 commit into from
Jan 30, 2024
Merged

chore: cherry-pick #8413 #8475

merged 1 commit into from
Jan 30, 2024

Conversation

github-actions[bot]
Copy link
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.
@sethkfman sethkfman added the Run Smoke E2E Triggers smoke e2e on Bitrise label Jan 30, 2024
Copy link
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
Copy link
Contributor

@sethkfman sethkfman left a comment

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
4 of 5 checks passed
@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
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 Run Smoke E2E Triggers smoke e2e on Bitrise
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants