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

feat: SES lockdown v0.18.8 (iOS JSC) #6586

Merged
merged 83 commits into from
Nov 10, 2023
Merged

feat: SES lockdown v0.18.8 (iOS JSC) #6586

merged 83 commits into from
Nov 10, 2023

Commits on Jun 7, 2023

  1. Format package.json

    leotm committed Jun 7, 2023
    Configuration menu
    Copy the full SHA
    7ac4040 View commit details
    Browse the repository at this point in the history
  2. Add ses 0.18.4 via Yarn

    leotm committed Jun 7, 2023
    Configuration menu
    Copy the full SHA
    8c1b278 View commit details
    Browse the repository at this point in the history
  3. Add ses 0.18.4 lockdown shim

    leotm committed Jun 7, 2023
    Configuration menu
    Copy the full SHA
    4c205b4 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    191b45e View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    4469470 View commit details
    Browse the repository at this point in the history
  6. Call ses lockdown at entry file

    With ESLint disabled since added to global
    leotm committed Jun 7, 2023
    Configuration menu
    Copy the full SHA
    0f2f915 View commit details
    Browse the repository at this point in the history
  7. Patch @babel/runtime

    leotm committed Jun 7, 2023
    Configuration menu
    Copy the full SHA
    4f9a849 View commit details
    Browse the repository at this point in the history
  8. Patch ethjs/ethjs-contract

    --exclude 'nothing' required to include package.json
    leotm committed Jun 7, 2023
    Configuration menu
    Copy the full SHA
    00dd1ac View commit details
    Browse the repository at this point in the history
  9. Fix ethjs/ethjs-contract patch (patch-package fail on fresh install)

    --exclude 'nothing' required to include package.json is buggy
    
    Trim exccess fat
    leotm committed Jun 7, 2023
    Configuration menu
    Copy the full SHA
    991c926 View commit details
    Browse the repository at this point in the history
  10. Patch ethjs/ethjs-query

    --exclude 'nothing' required to include package.json
    leotm committed Jun 7, 2023
    Configuration menu
    Copy the full SHA
    3aba797 View commit details
    Browse the repository at this point in the history
  11. Fix ethjs/ethjs-query patch (patch-package fail on fresh install)

    --exclude 'nothing' required to include package.json is buggy
    
    Trim excess fat
    leotm committed Jun 7, 2023
    Configuration menu
    Copy the full SHA
    e1e99eb View commit details
    Browse the repository at this point in the history
  12. Patch react-native

    Exclude polyfillGlobal
    leotm committed Jun 7, 2023
    Configuration menu
    Copy the full SHA
    a4229b0 View commit details
    Browse the repository at this point in the history
  13. Configuration menu
    Copy the full SHA
    873716b View commit details
    Browse the repository at this point in the history
  14. Configuration menu
    Copy the full SHA
    745d89a View commit details
    Browse the repository at this point in the history

Commits on Jun 9, 2023

  1. Configuration menu
    Copy the full SHA
    0c542c9 View commit details
    Browse the repository at this point in the history

Commits on Jun 13, 2023

  1. Configuration menu
    Copy the full SHA
    b635b1c View commit details
    Browse the repository at this point in the history

Commits on Jun 15, 2023

  1. Configuration menu
    Copy the full SHA
    15a8ab7 View commit details
    Browse the repository at this point in the history
  2. ESLint ignore lockdown shim

    leotm committed Jun 15, 2023
    Configuration menu
    Copy the full SHA
    22bde3a View commit details
    Browse the repository at this point in the history

Commits on Jun 22, 2023

  1. Configuration menu
    Copy the full SHA
    8186199 View commit details
    Browse the repository at this point in the history

Commits on Jun 27, 2023

  1. Configuration menu
    Copy the full SHA
    401b41f View commit details
    Browse the repository at this point in the history
  2. Update Podfile.lock

    - Branch hash
    - COCOAPODS: 1.12.0 to 1.12.1
    leotm committed Jun 27, 2023
    Configuration menu
    Copy the full SHA
    d2d2bf4 View commit details
    Browse the repository at this point in the history

Commits on Jun 28, 2023

  1. Patch react-native

    Fix iOS native animation (non-nil/non-zero) assertion failure (on initial parentNode then childNode), after nav to bot 4th WebView tab (unable to load pages, likely caused by current excluded RN Promise polyfillGlobal)
    - Df (Foundation) *** Assertion failure in - disconnectAnimatedNodes:childTag
      - E [com.facebook.react.log:native] Exception thrown while executing UI block: 'parentNode' is a required parameter
    - Df (Foundation) *** Assertion failure in - connectAnimatedNodes:childTag
      - E [com.facebook.react.log:native] Exception thrown while executing UI block: 'childNode' is a required parameter
    
    Exclude iOS native animation (non-nil/non-zero) assertion macros - for now, when nodes (pointers to tags) attach/detach (to old/new parents and new views)
    QA: no empty animation frames observed ✅
    
    Low probability possible risks introduced
    - incomplete node invalidation (outdated nodes)
    - race condition: prop updated before UIManager created view (outdated props)
    QA: no outdated animation frames observed ✅
    iOS native animation assertion refs
    - Summary: facebook/react-native@c858420
    - PR: facebook/react-native#10663
    - Examples: facebook/react-native#9120
    - nb: mimics ReactAndroid (i.e. NativeAnimatedNodesManager.java)
    
    nb: metro-react-native-babel-preset (0.72.3)
      - @babel/plugin-transform-regenerator has been removed since initial investigation
      - @babel/plugin-transform-runtime (removed) - 4 fewer SES warnings
        - intrinsics: Object.setPrototypeOf.default, Object.setPrototypeOf.__esModule, Reflect.construct.default, Reflect.construct.__esModule
      - @babel/plugin-transform-runtime > regenerator: false - immediate error thrown (recurring)
    
    Todo: Fix WebView page load (likely caused by current excluded RN Promise polyfillGlobal), thus fixing these assertion failures on nav, then revert this patch
      - Problem: Including (default) RN Promise polyfillGlobal causing app to boot empty root view
    Todo: Root cause of above 'regenerator: false' causing nil/zero parent/child nodes immediately to reoccur
    leotm committed Jun 28, 2023
    Configuration menu
    Copy the full SHA
    e52f13a View commit details
    Browse the repository at this point in the history

Commits on Jul 17, 2023

  1. Merge branch 'main' into feature/ses-lockdown-2

    Conflicts resolved (2)
    - react-native+0.66.5.patch (deleted)
    - Podfile.lock (boost hash)
    leotm committed Jul 17, 2023
    Configuration menu
    Copy the full SHA
    28b9db4 View commit details
    Browse the repository at this point in the history
  2. Delete stale @babel/runtime patch

    Fix **ERROR** Failed to apply patch for package @babel/runtime at path
    
    Caused because @babel/runtime has changed after merge
    28b9db4
    
    Patch was made for version: 7.16.3
    Installed version: 7.22.5
    leotm committed Jul 17, 2023
    Configuration menu
    Copy the full SHA
    243d895 View commit details
    Browse the repository at this point in the history
  3. Re-patch @babel/runtime

    leotm committed Jul 17, 2023
    Configuration menu
    Copy the full SHA
    76cc6e7 View commit details
    Browse the repository at this point in the history

Commits on Jul 25, 2023

  1. Revert "Re-patch @babel/runtime"

    This reverts commit 76cc6e7.
    
    As this no longer resolves `TypeError: (0 , _getPrototypeOf2.default) is not a function`.
    leotm committed Jul 25, 2023
    Configuration menu
    Copy the full SHA
    9d85f38 View commit details
    Browse the repository at this point in the history

Commits on Jul 26, 2023

  1. Configuration menu
    Copy the full SHA
    3436f11 View commit details
    Browse the repository at this point in the history

Commits on Jul 31, 2023

  1. Update CocoaPods lockfile

    leotm committed Jul 31, 2023
    Configuration menu
    Copy the full SHA
    25c832b View commit details
    Browse the repository at this point in the history
  2. Call lockdown first

    Before
    - imports (except npm:ses)
    - Sentry
    - polyfills
    - shims
    leotm committed Jul 31, 2023
    Configuration menu
    Copy the full SHA
    d3ce192 View commit details
    Browse the repository at this point in the history
  3. Extract to ses lockdown then shims to preBundle file

    Imported at beginning of entryFile
    leotm committed Jul 31, 2023
    Configuration menu
    Copy the full SHA
    237e804 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    165b444 View commit details
    Browse the repository at this point in the history

Commits on Aug 1, 2023

  1. Remove additional shims import

    leotm committed Aug 1, 2023
    Configuration menu
    Copy the full SHA
    2f78412 View commit details
    Browse the repository at this point in the history

Commits on Aug 2, 2023

  1. Configuration menu
    Copy the full SHA
    f5de5eb View commit details
    Browse the repository at this point in the history

Commits on Aug 16, 2023

  1. Configuration menu
    Copy the full SHA
    e1fbcc0 View commit details
    Browse the repository at this point in the history

Commits on Aug 17, 2023

  1. Configuration menu
    Copy the full SHA
    ed4f49e View commit details
    Browse the repository at this point in the history
  2. Fix lint on SES comment

    RE both ethjs libs (src vs lib)
    leotm committed Aug 17, 2023
    Configuration menu
    Copy the full SHA
    ed36668 View commit details
    Browse the repository at this point in the history
  3. Bump SES lockdown shim from 0.18.4 to 0.18.7

    Follow-up: ed4f49e
    leotm committed Aug 17, 2023
    Configuration menu
    Copy the full SHA
    e0d5b1b View commit details
    Browse the repository at this point in the history

Commits on Aug 28, 2023

  1. Configuration menu
    Copy the full SHA
    b239c69 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    0286dfc View commit details
    Browse the repository at this point in the history
  3. Add SES (cjs) with vetted shims pre-v0.18.8 tag plublish

    - from (dist): endojs/endo#1705
    - eslintignore unneeded since cjs not js
    leotm committed Aug 28, 2023
    Configuration menu
    Copy the full SHA
    5d473a2 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    049a6f8 View commit details
    Browse the repository at this point in the history
  5. Replace lockdown with repairIntrinsics, vetted shim (reflect-metadata…

    …) and hardenIntrinsics
    
    Including eslint exceptions
    
    Note with this simple SES vetted implementation (unbaked into RN core), our high priority issue persists (requiring better solution)
    - LavaMoat/docs#24
    leotm committed Aug 28, 2023
    Configuration menu
    Copy the full SHA
    337d3b8 View commit details
    Browse the repository at this point in the history

Commits on Aug 29, 2023

  1. Configuration menu
    Copy the full SHA
    24d1d30 View commit details
    Browse the repository at this point in the history

Commits on Aug 30, 2023

  1. Configuration menu
    Copy the full SHA
    8aeb392 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    c5b5c23 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    5b89e9b View commit details
    Browse the repository at this point in the history

Commits on Sep 4, 2023

  1. Bake [email protected] into React Native core

    - remove SES vetted shims implementation from entry file
    - bake lockdown into RN
      - import [email protected]
      - import reflect-metadata (prior lockdown)
      - call lockdown (prior polyfillPromise, setUpXHR and setUpTimers)
      - (preserve polyfillPromise)
    - update prev doc comments
    - add detailed doc comments
    
    Fix LavaMoat/docs#24
    (Fix LavaMoat/docs#25)
    
    Partially fix LavaMoat/docs#26
    (Unreleased) [email protected] is required for the full fix
    Allowing for reflect-metadata as a vetted shim, rather than called prior lockdown
    leotm committed Sep 4, 2023
    Configuration menu
    Copy the full SHA
    310defe View commit details
    Browse the repository at this point in the history

Commits on Sep 6, 2023

  1. Configuration menu
    Copy the full SHA
    6e252a3 View commit details
    Browse the repository at this point in the history

Commits on Sep 11, 2023

  1. Configuration menu
    Copy the full SHA
    ef28c0c View commit details
    Browse the repository at this point in the history
  2. Remove old/current [email protected] (npm)

    Fix CI unused dep 'ses'
    
    Since imported ses.cjs shim is currently used
    which contains ses vetted shims version
    leotm committed Sep 11, 2023
    Configuration menu
    Copy the full SHA
    cd9644a View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    4dd8e84 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    300e1ff View commit details
    Browse the repository at this point in the history
  5. Fix CI lint (JSDoc indentation)

    leotm committed Sep 11, 2023
    Configuration menu
    Copy the full SHA
    a773cd4 View commit details
    Browse the repository at this point in the history

Commits on Sep 14, 2023

  1. Configuration menu
    Copy the full SHA
    ab56846 View commit details
    Browse the repository at this point in the history

Commits on Sep 15, 2023

  1. Switch off Hermes on Android

    leotm committed Sep 15, 2023
    Configuration menu
    Copy the full SHA
    8904439 View commit details
    Browse the repository at this point in the history
  2. Add jsc-android

    leotm committed Sep 15, 2023
    Configuration menu
    Copy the full SHA
    d8a4fa5 View commit details
    Browse the repository at this point in the history
  3. Revert "Add jsc-android"

    This reverts commit d8a4fa5.
    leotm committed Sep 15, 2023
    Configuration menu
    Copy the full SHA
    9363d32 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    599ab6f View commit details
    Browse the repository at this point in the history
  5. Switch org.webkit:android-jsc to android-jsc-intl for BigInt

    Now that on 294992.0.0
    leotm committed Sep 15, 2023
    Configuration menu
    Copy the full SHA
    8d27f78 View commit details
    Browse the repository at this point in the history

Commits on Sep 21, 2023

  1. Configuration menu
    Copy the full SHA
    7b28ac5 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    6cf1e7b View commit details
    Browse the repository at this point in the history

Commits on Sep 24, 2023

  1. Configuration menu
    Copy the full SHA
    662ec47 View commit details
    Browse the repository at this point in the history

Commits on Sep 27, 2023

  1. Configuration menu
    Copy the full SHA
    f74543a View commit details
    Browse the repository at this point in the history
  2. Update lockdown shim to 0.18.8

    leotm committed Sep 27, 2023
    Configuration menu
    Copy the full SHA
    d8cc393 View commit details
    Browse the repository at this point in the history

Commits on Oct 3, 2023

  1. Configuration menu
    Copy the full SHA
    aa44819 View commit details
    Browse the repository at this point in the history

Commits on Oct 9, 2023

  1. Configuration menu
    Copy the full SHA
    0913a90 View commit details
    Browse the repository at this point in the history

Commits on Oct 12, 2023

  1. Configuration menu
    Copy the full SHA
    930198c View commit details
    Browse the repository at this point in the history

Commits on Oct 16, 2023

  1. Configuration menu
    Copy the full SHA
    cc3d365 View commit details
    Browse the repository at this point in the history

Commits on Oct 25, 2023

  1. Configuration menu
    Copy the full SHA
    c436a60 View commit details
    Browse the repository at this point in the history

Commits on Oct 27, 2023

  1. Configuration menu
    Copy the full SHA
    95c09fb View commit details
    Browse the repository at this point in the history

Commits on Oct 31, 2023

  1. Configuration menu
    Copy the full SHA
    812653e View commit details
    Browse the repository at this point in the history

Commits on Nov 2, 2023

  1. Configuration menu
    Copy the full SHA
    b20341c View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    7d5a7aa View commit details
    Browse the repository at this point in the history
  3. Revert "Switch off Hermes on Android"

    This reverts commit 8904439.
    leotm committed Nov 2, 2023
    Configuration menu
    Copy the full SHA
    6461aa2 View commit details
    Browse the repository at this point in the history
  4. Revert "Ignore used jsc-android in depcheckrc"

    This reverts commit 7b28ac5.
    leotm committed Nov 2, 2023
    Configuration menu
    Copy the full SHA
    792c6f8 View commit details
    Browse the repository at this point in the history
  5. Update RN patch InitCore SES version comment

    Post-release
    leotm committed Nov 2, 2023
    Configuration menu
    Copy the full SHA
    4904529 View commit details
    Browse the repository at this point in the history
  6. Add RN patch InitCore DevTools comment

    RE console.log visibility in Metro output
    leotm committed Nov 2, 2023
    Configuration menu
    Copy the full SHA
    ab35ea4 View commit details
    Browse the repository at this point in the history
  7. Configuration menu
    Copy the full SHA
    ace8c88 View commit details
    Browse the repository at this point in the history
  8. Update RN patch InitCore to only call lockdown on iOS

    Until Hermes runtime working on Android (currently only bundling successful)
    leotm committed Nov 2, 2023
    Configuration menu
    Copy the full SHA
    25ac5af View commit details
    Browse the repository at this point in the history
  9. Update RN patch InitCore to only call lockdown on iOS and not Hermes

    Until Hermes runtime working on Android (currently only bundling successful)
    leotm committed Nov 2, 2023
    Configuration menu
    Copy the full SHA
    35fb6d5 View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    9b4f859 View commit details
    Browse the repository at this point in the history

Commits on Nov 10, 2023

  1. Configuration menu
    Copy the full SHA
    d88e399 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    e8eaf91 View commit details
    Browse the repository at this point in the history