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

Experimental merge main #10611

Merged
merged 42 commits into from
Jul 16, 2024
Merged

Experimental merge main #10611

merged 42 commits into from
Jul 16, 2024

Commits on Jun 14, 2024

  1. Jump-to-source falls back to parent user event if marker frame cannot…

    … be found (#10561)
    
    ### [Loom overview](https://www.loom.com/share/6d697c9136274fb8892325d39283fdac)
    
    Looking at [go/r/bb82f5c3-af5c-4e20-9f1c-5efa4ee6bd29](https://app.replay.io/recording/appreplayio--bb82f5c3-af5c-4e20-9f1c-5efa4ee6bd29), I observed that the `getCypressMarkerFrame` lookup fails to find a "marker frame" because there are only two sources in the call stack– the Replay plugin itself and Cypress. That method expects to find user code in between for some reason, so this breaks the jump-to-source behavior.
    
    In this case, the source is:
    ```js
    cy.contains('Product added to cart!').should('be.visible');
    ```
    
    That gets rendered in the UI as this:
    
    ![Screenshot 2024-06-13 at 10 46 16 PM](https://github.com/replayio/devtools/assets/29597/63920c23-82c8-45b4-9bb9-29443984b3b9)
    
    Clicking on the failed _assert_ (or trying to "jump to source") would ideally jump to the `should('be.visible')` but it fails because of the "marker frame" issue I mentioned above. The idea occurred to me that in this case, jumping to the parent command (`contains('Product added to cart!')`) is probably better than nothing. (In this case, they're even on the same line, but that won't always be true.)
    bvaughn authored Jun 14, 2024
    Configuration menu
    Copy the full SHA
    e8a1e7c View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    3080315 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    52c9297 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    1adb38c View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    bcfc8fc View commit details
    Browse the repository at this point in the history

Commits on Jun 15, 2024

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

Commits on Jun 17, 2024

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

Commits on Jun 18, 2024

  1. Support multi-line print statements (#10570)

    Support multi-line print statements to improve readability and text editing experience.
    bvaughn authored Jun 18, 2024
    Configuration menu
    Copy the full SHA
    7dcecab View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    fdbddbf View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    ff16e3d View commit details
    Browse the repository at this point in the history

Commits on Jun 19, 2024

  1. Configuration menu
    Copy the full SHA
    28c1a69 View commit details
    Browse the repository at this point in the history
  2. Fix detection of async parent pauses outside of the focus window (#10573

    )
    
    * Revert "Improve message shown when async stack can't be loaded (#10557)"
    
    This reverts commit 585e560.
    
    * Fix detection of async parent pauses outside of the focus window
    hbenl authored Jun 19, 2024
    Configuration menu
    Copy the full SHA
    6b6ecb0 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    59370c8 View commit details
    Browse the repository at this point in the history

Commits on Jun 20, 2024

  1. Improve heuristics for finding the user frame that dispatched a Redux… (

    #10576)
    
    * Improve heuristics for finding the user frame that dispatched a Redux action
    
    The original logic was iterating backwards across the point stack frames looking for an applyMiddleware frame, and going backwards one more frame from there. This is problematic because I'm seeing variance in whether or not applyMiddleware actually shows up in stack frames. For some reason it shows up in Metabase recording stack traces, but not in our own E2E tests (and we're both using RTK).  That meant that the existing logic could keep right on walking backwards long past the frame it "should" have found.
    
    What I've settled on is using the logic we had that tries to identify "is this function in a Redux middleware" based on source outlines (looking for the triply-nested function signature of a middleware definition), and stopping at the first frame that appears to be not a middleware and not applyMiddleware.  This seems to be producing pretty reasonable results.
    
    * Update to a recent `breakpoints-01` recording
    
    * Force re-running the J2C routine
    
    * Add a util for verifying J2C behavior
    
    * Add a test for Redux J2C behavior
    
    * Ignore wrong lint error
    
    * Update RDT-02 test to match current example recording
    markerikson authored Jun 20, 2024
    Configuration menu
    Copy the full SHA
    ca83c36 View commit details
    Browse the repository at this point in the history

Commits on Jun 21, 2024

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

Commits on Jun 24, 2024

  1. Configuration menu
    Copy the full SHA
    88da868 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    82fead1 View commit details
    Browse the repository at this point in the history
  3. Source viewer font-size fixes (#10580)

    Print statement panel dynamic sizing bug fixes:
    - Fixed minor font-size and line-height inconsistencies for print statement panel
    - Handle edge case with empty last line (aka Shift+Enter)
    
    ![Screenshot 2024-06-21 at 10 58 36 AM](https://github.com/replayio/devtools/assets/29597/1a8e9514-1c56-4998-84e0-7b71a1d022b7)
    
    Also updated the `useSourceListCssVariables` hook to reevaluate CSS variables (width of line numbers and hit counts) when the font size preference changes.
    bvaughn authored Jun 24, 2024
    Configuration menu
    Copy the full SHA
    0778fd1 View commit details
    Browse the repository at this point in the history

Commits on Jun 25, 2024

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

Commits on Jun 26, 2024

  1. Enable asserts (#10584)

    Domiii authored Jun 26, 2024
    Configuration menu
    Copy the full SHA
    d7dc141 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    b1e1a4c View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    d6b815e View commit details
    Browse the repository at this point in the history

Commits on Jun 27, 2024

  1. Improve video cursor display, especially for Cypress tests (#10587)

    * Extract utils to check for user click/keyboard test steps
    
    * Simplify UserActionEventRow J2C checks
    
    * Use mouse event times for hover display for click steps
    
    * Narrow time that we show a mouse click indicator
    
    * Only show mouse clicks within the current focus window
    
    * Revert focus window filtering for mouse cursors
    markerikson authored Jun 27, 2024
    Configuration menu
    Copy the full SHA
    bdc17b9 View commit details
    Browse the repository at this point in the history

Commits on Jun 28, 2024

  1. Update the Cypress steps test to check for hover cursor position (#10588

    )
    
    * Update cypress/bankaccounts.spec example
    
    * Add test for Cypress cursor positioning
    
    * Use dashed/camel-cased data names
    markerikson authored Jun 28, 2024
    Configuration menu
    Copy the full SHA
    2e2ec99 View commit details
    Browse the repository at this point in the history

Commits on Jul 2, 2024

  1. Configuration menu
    Copy the full SHA
    35478c6 View commit details
    Browse the repository at this point in the history
  2. Update RDT fork for 2024-07 (#10592)

    * Update RDT fork for 2024-07
    
    * Fix broken string replacement for RDT injection
    markerikson authored Jul 2, 2024
    Configuration menu
    Copy the full SHA
    06b89f4 View commit details
    Browse the repository at this point in the history

Commits on Jul 3, 2024

  1. Configuration menu
    Copy the full SHA
    36a460f View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    7400e37 View commit details
    Browse the repository at this point in the history

Commits on Jul 5, 2024

  1. Configuration menu
    Copy the full SHA
    2f13eb9 View commit details
    Browse the repository at this point in the history
  2. Fix tooltips (#10598)

    hbenl authored Jul 5, 2024
    Configuration menu
    Copy the full SHA
    3cdee91 View commit details
    Browse the repository at this point in the history

Commits on Jul 8, 2024

  1. Removed left/right breakpoint arrows from Pause Info panel (#10601)

    This is my reasoning:
    - These button confuse all of us. (Domi, Josh, Mark, and I just chatted about this in Discord.)
    - Mixpanel data shows that [almost no one uses the buttons](https://mixpanel.com/project/2349904/view/2894968/app/insights#2NaEPayGGLnB).
    - The rewind/fast-forward buttons (available via hover click and context menu) are easier to use. (After all, Replay is fundamentally different from a traditional browser/debugger. Let's lean into that and simplify our UI!)
    
    ![Screenshot 2024-07-05 at 6 00 02 PM](https://github.com/replayio/devtools/assets/29597/97eab27f-4e20-4811-a9f6-2a6391263677)
    bvaughn authored Jul 8, 2024
    Configuration menu
    Copy the full SHA
    d5b30c0 View commit details
    Browse the repository at this point in the history
  2. Combined log point panel icons (#10602)

    The log point panel was recently update (#10570) to support multi-line print statements. Part of that change included trying to merge some of the icons (e.g. visible, edit toggle, avatar, and badge picker) so there were fewer possible combinations (which complicated multi-line measuring logic) and so they took up less space overall.
    
    Multi-line print statements made it more obvious how our icons were taking up crucial space:
    <img src="https://github.com/replayio/devtools/assets/29597/cd1b2b53-03fd-475e-b899-89e7e4cecf57)" width="50%" />
    
    Fewer icons would mean more available space which is better for the user when editing large text:
    <img src="https://github.com/replayio/devtools/assets/29597/83ad2ba9-388e-44ae-a64f-96232bfccbaa)" width="50%" />
    
    This PR combines things a bit further– merging the badge picker and disabled icon, as well as the user avatar and edit icon:
    
    https://github.com/replayio/devtools/assets/29597/ce36aec4-373c-48e3-a67a-80b6fb307886
    
    This feels like a good trade off in terms of the concerns I mentioned above.
    bvaughn authored Jul 8, 2024
    Configuration menu
    Copy the full SHA
    925db84 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    b9563de View commit details
    Browse the repository at this point in the history
  4. Add "report a problem" UX to Devtools surfaces (#10596)

    - Add several new "report a problem" links into areas of Devtools that users might encounter problems with
    - Add option to "_allow Replay support to view this recording_" (to auto-share the recording)
    - Change discard-pending-message UI to flow better
    - Rework the Support Form component to be more flexible (e.g. supporting extra context args) and more accessible to `replay-next` components (aka not routing it through Redux)
    - Removed a lot of unnecessary passing around of props to components that could already retrieve those props from context directly
    - Removed some unnecessary Redux `connect` functions that made code harder to read through
    
    <table>
    <tr>
    <td colspan="2"><strong>Source viewer</strong></td>
    </tr>
    <tr>
    <td>Source with source-maps</td>
    <td><img title="screenshot-source-has-source-map" src="https://github.com/replayio/devtools/assets/29597/442307b2-9a67-4641-ad20-0eb03f18030f" /></td>
    </tr>
    <tr>
    <td>Source with no source-maps</td>
    <td><img title="screenshot-source-no-source-map" src="https://github.com/replayio/devtools/assets/29597/09dffb3a-5d30-4e32-b51f-67cb667fcc9e" /></td><tr>
    <td colspan="2"><strong>Quick open modal</strong></td>
    </tr>
    <tr>
    <td>Lots of results</td>
    <td><img title="screenshot-typeahead-many-items" src="https://github.com/replayio/devtools/assets/29597/281117e1-7c6a-4bfa-9a8c-2f88bdff24d1" /></td>
    </tr>
    <tr>
    <td>Fewer than 5 results</td>
    <td><img title="screenshot-typeahead-3-items" src="https://github.com/replayio/devtools/assets/29597/2e183741-3a50-4352-bd03-bb13a9c0a75a" /></td>
    </tr>
    <tr>
    <td>No results</td>
    <td><img title="screenshot-typeahead-empty" src="https://github.com/replayio/devtools/assets/29597/af2cff72-b71c-4ecd-863c-6de203072030" /></td>
    </tr>
    <tr>
    <td colspan="2"><strong>Terminal expressions</strong></td>
    </tr>
    <tr>
    <td>Evaluates successfully</td>
    <td><img title="screenshot-terminal-result" src="https://github.com/replayio/devtools/assets/29597/a285b386-94a6-46b2-8d2e-4229afab58c6" /></td>
    </tr>
    <tr>
    <td>Throws an exception</td>
    <td><img title="screenshot-terminal-exception" src="https://github.com/replayio/devtools/assets/29597/ed317fcd-8abf-4557-ac1e-4ea29615c5dd" /></td>
    </tr>
    <tr>
    <td colspan="2"><strong>Video player</strong></td>
    </tr>
    <tr>
    <td>Context menu</td>
    <td><img src="https://github.com/replayio/devtools/assets/29597/4e5c581c-57bc-4da6-a974-79610293f778" /></td>
    </tr>
    <tr>
    <td colspan="2"><strong>Loading screen</strong></td>
    </tr>
    <tr>
    <td>When recording is still processing</td>
    <td><img src="https://github.com/replayio/devtools/assets/29597/25006c89-2192-4115-94c9-a6252887e010" /></td>
    </tr>
    </table>
    
    
    This PR also changes the discard confirmation screen to be more connected to the content you were editing.
    
    | Editing | Discard confirmation (before) | Discard confirmation (after) |
    | :--- | :--- | :--- |
    | ![Screenshot 2024-07-04 at 5 50 50 PM](https://github.com/replayio/devtools/assets/29597/a416fd35-2590-4ae4-a855-9464c3dcddd4) |![Screenshot 2024-07-04 at 5 52 37 PM](https://github.com/replayio/devtools/assets/29597/73891b08-9e1c-4bf8-911d-755765461cc7) | ![Screenshot 2024-07-04 at 5 51 06 PM](https://github.com/replayio/devtools/assets/29597/d0b3c0a8-dfab-49b3-8310-79949e3e494b) |
    bvaughn authored Jul 8, 2024
    Configuration menu
    Copy the full SHA
    ea84bb2 View commit details
    Browse the repository at this point in the history

Commits on Jul 9, 2024

  1. Configuration menu
    Copy the full SHA
    606e120 View commit details
    Browse the repository at this point in the history
  2. Remove breakpoints (#10604)

    Follow on to #10601
    
    - Delete breakpoint UI and protocol-related code
    - Remove unnecessary abstractions (now that there aren't two types of "points" in the app)
    - Rename Nag/Tour related code that had potentially confusing references to breakpoints
    - Update any e2e tests that got broken by this change
    bvaughn authored Jul 9, 2024
    Configuration menu
    Copy the full SHA
    4baaa3a View commit details
    Browse the repository at this point in the history

Commits on Jul 10, 2024

  1. Make rewind/fast-forward buttons more discoverable (#10607)

    Use of the space previously occupied by the breakpoint toggle to show fast-forward and rewind buttons on hover. These are super useful but they are currently very hard to discover (since they require hovering while pressing cmd/ctrl).
    bvaughn authored Jul 10, 2024
    Configuration menu
    Copy the full SHA
    d595fd6 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    d6f9492 View commit details
    Browse the repository at this point in the history

Commits on Jul 11, 2024

  1. Display matched selector priority (#10609)

    * Display matched selector priority
    
    * Include priority as a separate property of `MatchedSelectorState`
    
    * fixed things
    Andarist authored Jul 11, 2024
    Configuration menu
    Copy the full SHA
    4cc1d67 View commit details
    Browse the repository at this point in the history

Commits on Jul 14, 2024

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

Commits on Jul 16, 2024

  1. Configuration menu
    Copy the full SHA
    94f06ed View commit details
    Browse the repository at this point in the history
  2. Fix Lint

    bvaughn committed Jul 16, 2024
    Configuration menu
    Copy the full SHA
    b679f2f View commit details
    Browse the repository at this point in the history