-
Notifications
You must be signed in to change notification settings - Fork 21
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
Polish Headers Side Panel #116
Comments
There is both UI work to better align the space in this panel and UX for the information hierarchy. From user feedback "network header tab is confusing", "a lot of information in a very compressed space – should be redone", "easy selecting and copy-pasting of request/response headers (for example: right-click header name and have the option to copy the name, value or name and value)." Constraints that I'd like to throw in:
Questions:
|
Many sections have sub-sections, so we'd end up with like 10 accordion items which is a bit much. And for sections like Messages (websocket) it's useful to have the full sidebar's height available.
I notice that the Debugger when for a standard checkbox (in the Event Listener Breakpoints accordion header). We could use that, or make a smaller toggle control (the current one is rather big) and use it in Debugger too. Personally for Headers I'd be happier with a single "Raw Headers" toggle (next to "Filter Headers") that affects all sections.
Yes please! It's hard to figure out that a request is pending just by looking at the table row, and you're left wondering if something is broken when the details are blank. |
Agreed, beyond WS, preview, formatted payloads and timings work better with more space. Security could link to the cert viewer or inline it. To simplify the tabs, Cookies and Params could be rolled into the main panel. They often end up empty as well. Related, Honza and I discussed why WS' |
A related UX bug, improving the summary view for cached resources: https://bugzilla.mozilla.org/show_bug.cgi?id=1338065 |
Also to add to the list of suggestions from honza above
|
A small toolbar with "Filter Headers" and a toggle for "Raw Headers" would be great. It'd be consistent with the Messages tab, or with what we have in the Inspector for Computed styles, for instance: One difficulty is that those controls wouldn't affect the first block of information with the URL, Status, HTTP version etc. That could make the top placement a bit awkward. |
Great, I really like these ideas (search box within a toolbar at the top) Honza |
I shared @fvsch's concern on how it doesn't search through the first part. Maybe we can find a consistent toolbar that allows filter/copy/pretty-raw-toggle? |
I found Paw last week and found its UI for inspection nice and clean: Splits data in Info, Request (Headers, Formatted, Raw) and Response (Headers, Formatted, Raw) Prev/Next buttons in toolbar are nice affordance for navigating between ordered requests (often in REST and page load): Summarized request/response meta data links to the Request/Response tabs: Raw tab shows full HTTP (with basic highlighting for headers): Share button to export & upload to online viewer: |
I can't open the Paw link (or is it suppose to be a link?) |
Fixed. It is on paw.cloud :). |
Updating priority as @bomsy will be starting on this soon. |
@violasong fyi, we had some discussion today for some mock ups I made: https://www.figma.com/file/cf8pMDTvi64HWzRhQWdMnO/DevTools-Network-Details-Pane?node-id=32%3A2 |
Another thought I had - in the sidebar, Request URL, Method, and Status Code are a tad redundant with what would hopefully be showing in the table view. (Especially if we try something like hiding more of the other columns when the sidebar is open.) |
Ah, I looked at the Safari screenshot more closely and realized it just has more redundant info that's separated out. I like the visual styling though. |
I think I know what you mean. With the current table there is some redundance, but only "some" as the columns are often squished so small that the information can't really be seen. When we get around to minimize the table's sidebar-open mode to a single column this should not be an issue though, right?
Pending requests will only have request parts (headers, payload, cookies, etc), but no response. Same for blocked requests btw. Streamed responses have some response parts and others are still coming in in chunks. There are also streamed requests, for multipart uploads; which have chunk request data in multiple parts. |
As usual, I don't understand Safari's color/icon choices ;) . But as long as things are readable and copy-able we are good. It feels similar to Paw's information hierarchy, which highlights key aspects in slightly bolder form and then just lists out the rest. |
True, especially if only show the filename. But I wonder if we might want to keep the status/method in the table.
I see - so, assuming we can differentiate whether some data is either missing or waiting, we could indicate that. |
This reminds of of an idea I liked UX table, Row to Details. It compresses additional details into the remaining row.
Yes, showing missing data as blank state (vs just not having the fields) makes sense. Using phases from Resource Timing to map out which data gets available over time:
@janodvarko did I miss a state? |
Some questions about this:
At first I was thinking of a menu-like UI like this But the sections that these would link to don't seem obviously connected to me. It might be better to name them, e.g. |
I think that we can see it a bit more precisely as follows:
More info in HAR spec: http://janodvarko.cz/blog/har-12-spec/#timings One more note. Request HTTP status is using a styled number in the first column We can reuse the same style in the Headers panel. Honza |
Related, I just checked out Safari's Network details pane which has some related ideas to grouping and labels (It is a bit hidden in Sources, which seems a nice touch, to have that information available in other panels; but kind of hard to discover):
|
@violasong looks great. @bomsy looking at Victoria's work, it doesn't seem like we'd want to use the tree component for that. Or do you see that we should customize it to present data like that?
Sorry, the
Not sure where I would put this, so no.
It would be important to know which server is resolved for some requests. See my analysis for Safari – maybe it fits with additional URL data.
I like the option as well. Maybe they could appear on hover to reduce UI density? Regarding the labels, in the application panel design, we had more muted labels. Maybe we can try those out for comparison. |
That seems good, although maybe we want something there to encourage users to use the more contextual UI instead of looking through the tabs?
That subtler look could work if we keep the labels short to allow for more spacing, like this: It wouldn't match the request/response headers though. (Figma for all mockups so far)
What should show up in the summary for Blocked Cookies? |
Thanks Victoria for the mockups, it looks really great!
Questions:
Honza |
@violasong the smaller font seems also good to save space for longer output. Blue is also good since the summary section already has a grid layout to differentiate visually. It just occurred to me that you mentioned another example for this, how the Debugger sizes those lines. Is that sizing/spacing aligned? It seems like it:
What other errors did you have in mind, @janodvarko? An alternative to the error could be adding a line with a warning in-line with the tracking category.
WDYT, @violasong ?
@violasong I like the idea. It does make it a bit more readable. I am not sure which parts we should highlight; as use cases vary on what's important to users. Have you seen an example of that anywhere else?
Yes, that was my proposal, making sure we are exposing more options from the context meny in the toolbar. @violasong another idea would be an "Edit" button and a "Resend" button; where Edit implies that it would be send again anyways. So we avoid the dropdown.
"Block URL" is very blunt atm. I proposed this as we can expose more options. "Block Domain" and "Block Path" could be added here. To simplify, it is probably easier to use the blocking icon from the network toolbar and avoid the dropdown. If users want to fine-tune, the blocking sidepanel will open automatically anyways and they can edit the URL down to what they need. |
I like the idea to use the notification box as a generic way to show any error/warning/info that's worth of user attention.
Honza |
Updated color syntax for collapsed URL: Changed magenta to gray which I think works better, and added in the filter bar.
I don't think I've seen this elsewhere, though the grayed out https:// is like Firefox's URL bar. The idea I had is that the blue parts correlate to the blue keys when expanded. |
Mockup with:
|
@violasong looks really nice! Makes me want to click around and play with it. One thing I am not sure about is the shortened labels ("Blocking" is less descriptive than "Content Blocking") and other languages will vary in length as well. What's the strategy to make this responsive and overflow in sensible ways?
Should this URL be limited in lines, using FYI, the parts of the URL that we should show are all listed in https://developer.mozilla.org/en-US/docs/Web/API/URL .
Perfect size! Just to get consensus (I am a fan of hover menus), is the idea from #116 (comment) accepted? @bomsy @janodvarko |
Ah, I see. I'll look at this some more. Here's one thing we can do with the alignment, though we don't do this anywhere else.
I thought we were saying that the full URL is important here, as this is the only place to see the whole thing (besides the query string, but that's an extra step and kind of different). |
@digitarald I like that idea, out of curiosity how would it look for headers that have the warning icons (set-Cookie in this example)? |
I see what you mean, there needs to be some level of truncation at some point :D This could work, though the expanded query string part could end up being pretty massive |
Maybe @violasong has ideas how some icons are always on and don't need hover. Otherwise we could show errors like we do them inline in the general section? |
As it's expanded optionally, that seems acceptable. |
Hm, right after posting this I realized it's probably too much fanciness as it obscures basic copy paste, like if someone just wanted to grab the time part of that timestamp. So the other option is there's just an area on the right side saved for the icons, and the text would wrap before getting there. |
I like that. One caveat to test during implementation is how hover-enabled buttons interact with selecting text portions. |
For the URL params when there are many:
One option is to truncate and, rather than expand, add a button that sends the user to the "Params" tab where we already parse and display the URL parameters. |
@violasong One aspect to think about is long header names and how to align the values: |
Ah, this screenshot is unfortunate; makes me think we should full-length wrap the values. For super long URLs, an idea I just talked about with @nchevobbe regarding the Send Request Figma was limiting it to a certain number of rows (5?), and adding scroll overflow once it goes over. |
line-clamp to the rescue. |
The Headers side panel (in the Network panel) would deserve some UI/X clean-up
(this might be done as part of the Accordion refactoring see bug:
https://bugzilla.mozilla.org/show_bug.cgi?id=1613884
There are currently three expandable sections:
We could:
Request Payload
General
Edit and Resend
button to a new toolbar located at the top of the panelWDYT? @digitarald @bomsy @fvsch
Open Questions
2. Request (Formatted/Raw)
3. Response (Formatted/Raw)
4. …
Decisions
Request Payload
Edit and Resend
buttonThe text was updated successfully, but these errors were encountered: