Web navigation on recording tabs behaves weirdly

RESOLVED FIXED in Firefox 65

Status

()

enhancement
RESOLVED FIXED
8 months ago
5 months ago

People

(Reporter: bhackett, Assigned: bhackett)

Tracking

Trunk
mozilla65
Points:
---

Firefox Tracking Flags

(firefox64 wontfix, firefox65 fixed)

Details

Attachments

(1 attachment)

(Assignee)

Description

8 months ago
When refreshing a recording tab, several different behaviors are possible, depending on the state of things:

- If the devtools panel is open and has focus, it seems to be refreshed instead of the page, causing the page to continue execution and breakpoint hits to be ignored.  This doesn't happen when using the debugger on a normal tab and seems like a bug.

- If the recording tab's pane has focus and the recording child is currently being interacted with (we haven't rewound and aren't paused), the refresh is processed as it would usually be --- the page resets and then runs forward, with breakpoint hits behaving as expected.  By rewinding, the state of the page before the refresh can be recovered as well.

- If the recording tab's pane has focus and a replaying child is active, the refresh has no effect --- we will ignore the IPDL messages which drive the refresh.  Disabling the latter feature doesn't behave very well either, as the page doesn't respond immediately, but after running forward to the end of the recording and resuming it will suddenly reset its state.

Similar problems happen for other navigation features --- changing the URL, navigating back and forward, and so forth.  I'm mostly filing this to make note of it, as it's not clear to me what the right behavior should be.
(Assignee)

Comment 1

6 months ago
Posted patch patchSplinter Review
This patch fixes some issues with navigation:

- Reloading the page always starts a new recording, and will work even if the tab is replaying old content.

- Similarly, navigating using the location bar always starts a new recording at the target page, and will work even if the tab is replaying old content.

Navigating in this way loses back/forward information for the tab.  These can still be used in some cases, though: navigating by clicking links stays within the same recording; users can rewind past the navigation and the history is available.  I left these alone because the behavior of back/forward are controlled from within the browser and it isn't clear to me when we should start a new recording while clicking links, because the user could be within the same page (e.g. a gmail session).  Clicking the back/forward buttons while the tab is replaying old content will not do anything.
Assignee: nobody → bhackett1024
Attachment #9023500 - Flags: review?(jlaster)
Comment on attachment 9023500 [details] [diff] [review]
patch

Review of attachment 9023500 [details] [diff] [review]:
-----------------------------------------------------------------

This feels good.

I agree that it would be nice to use the back/forward buttons while recording, but it can be tricky because of cases like gmail. Either way, i think this is a step in the right direction.
Attachment #9023500 - Flags: review?(jlaster) → review+

Comment 3

6 months ago
Pushed by bhackett@mozilla.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/fb1241ca988c
Always start a new recording when reloading or using the location bar, r=jlast.

Comment 4

6 months ago
bugherder
https://hg.mozilla.org/mozilla-central/rev/fb1241ca988c
Status: NEW → RESOLVED
Last Resolved: 6 months ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla65
(Assignee)

Updated

5 months ago
Depends on: 1508088
You need to log in before you can comment on or make changes to this bug.