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

[Locally Stored Profiles] Automatically store the profile locally after receiving it from the addon #11

Open
mstange opened this issue Oct 25, 2016 · 2 comments
Labels
feature Work that is user facing, and typically should be planned through https://airtable.com/shrRydo6UXheb profile data Issues related to the profile format, data structure, or profile upgraders

Comments

@mstange
Copy link
Contributor

mstange commented Oct 25, 2016

When perf.html is opened from the Gecko Profiler addon, it should take the profile it received, store it in IndexedDB, generate an ID for it, and set the URL to /local/theGeneratedId/. And it should support loading the profile from IndexedDB when such a URL is navigated to.

The goal is to survive a browser restart without losing your state, even if you haven't shared the profile publicly.

Some of the problems we'll need to solve as part of this:

  • Expiration / quota management
  • Wait for symbolication to complete or no?
  • How to generate the ID? The web app that stores published profiles generates a hash of the contents, but if we store the profile before we've finished symbolication, then the contents can change; should we keep updating the hash and the URL in that case?

┆Issue is synchronized with this Jira Task

@gregtatum gregtatum added feature Work that is user facing, and typically should be planned through https://airtable.com/shrRydo6UXheb profile data Issues related to the profile format, data structure, or profile upgraders labels Mar 8, 2017
@mstange mstange added the quantum flow Issues important to the Quantum Flow team label Apr 28, 2017
@julienw
Copy link
Contributor

julienw commented May 9, 2017

The goal is to survive a browser restart without losing your state, even if you haven't shared the profile publicly.

After sharing, should we delete the local data after changing the URL ?

Wait for symbolication to complete or no?

Actually, same question for public sharing :)

How to generate the ID?

Use a UUID ?

@mstange
Copy link
Contributor Author

mstange commented May 9, 2017

The goal is to survive a browser restart without losing your state, even if you haven't shared the profile publicly.

After sharing, should we delete the local data after changing the URL ?

I'd say yes.

Wait for symbolication to complete or no?

Actually, same question for public sharing :)

I'd say let's put it into the local database even during symbolication, and regularly update it until symbolication is done.
We can rate-limit the update based on time, and maybe even additionally use requestIdleCallback.

How to generate the ID?

Use a UUID ?

Or a sha1 of a UUID? :)

Either way sounds good as long as we don't suddenly start putting dashes or curly braces into the URL. And the ID should be independent of symbolication because we want the following scenario to work:

  1. Collect the profile
  2. Apply some kind of filter
  3. Wait for symbolication to finish
  4. Click back to clear the filter
  5. Restart the browser
    If symbolication changed the URL, then the URL that you'd go back to would be invalid, and on restart we wouldn't be able to load the right profile for it.

@clarkbw clarkbw removed the quantum flow Issues important to the Quantum Flow team label Jun 29, 2017
@gregtatum gregtatum changed the title Automatically store the profile locally after receiving it from the addon [Locally Stored Profiles] Automatically store the profile locally after receiving it from the addon Feb 20, 2018
@fqueze fqueze added this to Usability backlog in Usability Feb 20, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature Work that is user facing, and typically should be planned through https://airtable.com/shrRydo6UXheb profile data Issues related to the profile format, data structure, or profile upgraders
Projects
Usability
  
Usability backlog
Triage 2017
Low Priority
Development

No branches or pull requests

4 participants