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

Enable launching debugger by device ID #41080

Closed
wants to merge 1 commit into from

Commits on Oct 20, 2023

  1. Enable launching debugger by device ID (facebook#41080)

    Summary:
    
    Building on byCedric's approach in facebook/metro#991, adds support for passing a `device=...` argument to `/open-debugger` for more precise targeting.
    
    Changelog: [Internal]
    
    ---
    
    ## Note on what "device" means in this context
    
    In `dev-middleware` / `inspector-proxy`, "device" is something of a misnomer. It refers to a *logical device* containing one or more *pages*. In React Native, each app process forms its own logical device in which individual VMs register themselves as pages. An instance of `inspector-proxy` connects one or more *debuggers* (frontends) to one or more logical devices (one frontend to one page on one device).
    
    The intent of the logical device ID is to help with target discovery and especially *re*discovery - to reduce the number of times users need to explicitly close and restart the debugger frontend (e.g. after an app crash).
    
    If provided, the logical device ID:
    1. SHOULD be stable for the current combination of physical device (or emulator instance) and app.
    2. SHOULD be stable across installs/launches of the same app on the same device (or emulator instance), though it MAY be user-resettable (so as to not require any special privacy permissions).
    3. MUST be unique across different apps on the same physical device (or emulator).
    4. MUST be unique across physical devices (or emulators).
    5. MUST be unique for each concurrent *instance* of the same app on the same physical device (or emulator).
    
    NOTE: The uniqueness requirements are stronger (MUST) than the stability requirements (SHOULD). In particular, on platforms that allow multiple instances of the same app to run concurrently, requirements 1 and/or 2 MAY be violated in order to meet requirement 5. This will be relevant, for example, on desktop platforms.
    
    In an upcoming diff, we will pass device IDs meeting these criteria from both iOS and Android.
    
    Reviewed By: huntie, blakef
    
    Differential Revision: D49954920
    motiz88 authored and facebook-github-bot committed Oct 20, 2023
    Configuration menu
    Copy the full SHA
    9a6191f View commit details
    Browse the repository at this point in the history