Closed
Bug 611795
Opened 14 years ago
Closed 14 years ago
Repeated messages in the Web Console should be collapsed into one
Categories
(DevTools :: General, defect, P2)
DevTools
General
Tracking
(blocking2.0 final+)
VERIFIED
FIXED
Tracking | Status | |
---|---|---|
blocking2.0 | --- | final+ |
People
(Reporter: pcwalton, Assigned: rcampbell)
References
Details
(Whiteboard: [parity-chrome] [parity-safari] [softblocker] [in-review] [pre-approved by beltzner])
Attachments
(6 files, 18 obsolete files)
Repeated identical messages in the Web Console should be collapsed into one or two messages to avoid flooding the console.
IMO the most usable way to do this would be to have a "(Previous message repeats n times)" message. But this breaks string freeze.
UX input on this would be helpful.
Assignee | ||
Comment 1•14 years ago
|
||
could we add a (xN) to the end showing number of repeats? Again, we'd need some l10n feedback for this as I'm not sure that translates universally.
Reporter | ||
Comment 2•14 years ago
|
||
WebKit uses a circled red number, but I'm not sure how usable that really is.
Comment 3•14 years ago
|
||
Really? I don't think I've personally found the circled number confusing in the slightest.
Comment 4•14 years ago
|
||
Is this a duplicate or dependency of Bug 609331 (Web Console should collapse equivalent messages together)?
Whiteboard: [parity-chrome] [parity-safari] [strings] → [parity-chrome] [parity-safari] [strings] [dupme]
Updated•14 years ago
|
Whiteboard: [parity-chrome] [parity-safari] [strings] [dupme] → [parity-chrome] [parity-safari] [strings]
Comment 7•14 years ago
|
||
I think webkit's approach to it is good. No one can get confused by that. When are we expecting this change?
Comment 8•14 years ago
|
||
we're hoping to get this in Firefox 4.
Assignee | ||
Comment 9•14 years ago
|
||
I think we missed this when nominating blockers. Would really like to get it in for Fx4 because on some sites with a lot of these messages, the repeats totally obscure any and all other output on a console.
blocking2.0: --- → ?
Assignee | ||
Comment 10•14 years ago
|
||
also marking dependent on our long-lived styling bug 605621.
Depends on: 605621
Comment 11•14 years ago
|
||
If this has string impact, it can't block, plain and simple. Remove the [strings] and renominate if you can get around that.
blocking2.0: ? → -
Assignee | ||
Comment 12•14 years ago
|
||
let's go with the number badge. I don't see a need to add more space to the message for the repeated message string anyway.
[strings] removed!
Whiteboard: [parity-chrome] [parity-safari] [strings] → [parity-chrome] [parity-safari]
Updated•14 years ago
|
blocking2.0: ? → final+
Keywords: uiwanted
Whiteboard: [parity-chrome] [parity-safari] → [parity-chrome] [parity-safari] [softblocker]
Assignee | ||
Updated•14 years ago
|
Assignee: pwalton → rcampbell
Comment 14•14 years ago
|
||
Would the 'Error Console' also be considered for this change? (I don't understand why we have two of them now in FF 4, but that's a separate thing.)
Assignee | ||
Comment 15•14 years ago
|
||
(In reply to comment #14)
> Would the 'Error Console' also be considered for this change? (I don't
> understand why we have two of them now in FF 4, but that's a separate thing.)
no.
The Error Console is going to be strictly for chrome-level messages. See bug 593540.
Assignee | ||
Comment 16•14 years ago
|
||
mac styling only so far. This is going to rely on the truncated url patch in bug 611440 so the labels aren't pushed off screen.
Assignee | ||
Comment 17•14 years ago
|
||
Assignee | ||
Comment 18•14 years ago
|
||
Attachment #505904 -
Attachment is obsolete: true
Assignee | ||
Comment 19•14 years ago
|
||
Assignee | ||
Comment 20•14 years ago
|
||
added check for same source, basic linux styling.
Attachment #505963 -
Attachment is obsolete: true
Assignee | ||
Comment 21•14 years ago
|
||
Assignee | ||
Comment 22•14 years ago
|
||
final draft. submitting for feedback.
Attachment #506863 -
Attachment is obsolete: true
Attachment #507243 -
Flags: feedback?
Assignee | ||
Comment 23•14 years ago
|
||
test fixes and a unit test for the repeater code
Assignee | ||
Comment 24•14 years ago
|
||
Comment on attachment 507244 [details] [diff] [review]
repeats tests
and requesting feedback
Attachment #507244 -
Flags: feedback?(mihai.sucan)
Assignee | ||
Comment 25•14 years ago
|
||
Comment on attachment 507243 [details] [diff] [review]
repeats v1.0
adding mihai to the feedback request.
Attachment #507243 -
Flags: feedback? → feedback?(mihai.sucan)
Comment 26•14 years ago
|
||
Comment on attachment 507243 [details] [diff] [review]
repeats v1.0
This is a really nice improvement, especially when viewing sites like twitter.com.
Patch comments:
+ isSameSource: function ConsoleUtils_isSameSource(aMsg1, aMsg2) {
This new method is unused.
+ for (let i = aOutput.childNodes.length - 1; i >= 0; --i) {
+ let lastMessage = aOutput.childNodes[i];
+
+ if (!lastMessage.classList.contains("webconsole-msg-cssparser"))
+ continue;
Why not do aOutput.querySelectorAll(".webconsole-msg-cssparser") ? Then loop through the result.
In filterRepeatedCSS() you find the old occurrences of CSS parser errors and increment the number, and you also re-append the error to the end. This poses two issues:
- you don't scroll to the "new" error.
- you create much visual noise.
I'd suggest to not re-append the error. Let it stay in place. Afaik, this is what Web Inspector also does. (or maybe it's just a preference of mine)
Otherwise, the patch looks fine. Feedback+ with the above comments addressed!
(awesome polish, btw)
Attachment #507243 -
Flags: feedback?(mihai.sucan) → feedback+
Comment 27•14 years ago
|
||
Comment on attachment 507244 [details] [diff] [review]
repeats tests
Test looks fine!
Attachment #507244 -
Flags: feedback?(mihai.sucan) → feedback+
Assignee | ||
Comment 28•14 years ago
|
||
(In reply to comment #26)
> Comment on attachment 507243 [details] [diff] [review]
> repeats v1.0
>
> This is a really nice improvement, especially when viewing sites like
> twitter.com.
>
> Patch comments:
>
> + isSameSource: function ConsoleUtils_isSameSource(aMsg1, aMsg2) {
>
> This new method is unused.
oops! I thought I'd gotten rid of that.
>
> + for (let i = aOutput.childNodes.length - 1; i >= 0; --i) {
> + let lastMessage = aOutput.childNodes[i];
> +
> + if (!lastMessage.classList.contains("webconsole-msg-cssparser"))
> + continue;
>
> Why not do aOutput.querySelectorAll(".webconsole-msg-cssparser") ? Then loop
> through the result.
Yeah, considered doing that, but wasn't sure if the performance hit to first scan out all of the cssparser messages and then iterate through them would be worse than just iterating through the whole collection. I think I'll do the qSA anyway for the sake of readability and eliminating the check inside the loop.
> In filterRepeatedCSS() you find the old occurrences of CSS parser errors and
> increment the number, and you also re-append the error to the end. This poses
> two issues:
>
> - you don't scroll to the "new" error.
> - you create much visual noise.
Wasn't sure about that part of it either. What I liked about re-adding it to the end of the console is that when you get a repeat, the timestamp is going to be newer than the first occurrence. It seems like you might want the most recent occurrence in the list.
I can see an argument going either way though, (when did I first see this occurrence vs. when was the last one?) so I'm inclined to go in favor of the least amount of visual noise.
> I'd suggest to not re-append the error. Let it stay in place. Afaik, this is
> what Web Inspector also does. (or maybe it's just a preference of mine)
Yeah, hard to say. You've changed my mind. :)
> Otherwise, the patch looks fine. Feedback+ with the above comments addressed!
>
> (awesome polish, btw)
Great! Thank you. I think this patch goes a long way to making the console feel more finished and reduces the clutter in the contents significantly.
Assignee | ||
Comment 29•14 years ago
|
||
updated patch based on feedback.
Attachment #507243 -
Attachment is obsolete: true
Attachment #507574 -
Flags: review?(gavin.sharp)
Assignee | ||
Updated•14 years ago
|
Attachment #507244 -
Flags: review?(gavin.sharp)
Assignee | ||
Updated•14 years ago
|
Whiteboard: [parity-chrome] [parity-safari] [softblocker] → [parity-chrome] [parity-safari] [softblocker] [in-review]
Target Milestone: --- → Firefox 4.0b10
Assignee | ||
Updated•14 years ago
|
Target Milestone: Firefox 4.0b10 → ---
Comment 30•14 years ago
|
||
Comment on attachment 507574 [details] [diff] [review]
repeats v1.1
Don't need to explicitly convert to String(), that happens implicitly in the call to setAttribute().
Hardcoding childNodes[2/3/4] in mergeFilteredMessageNode/filterRepeatedCSS/filterRepeatedConsole seems fragile.
Manually iterating over all past message nodes and comparing them for each addition is expensive. I wonder whether it'd be better to hash the message+filename and store that in the message node's class, and then just look for it via getElementsByClassName?
Should the filterRepeated* methods return the node that the new message was merged with, so that it can be made visible? I guess that'd be odd since it could result in the console jumping around, but it also seems odd that new errors can occur without being visible, if the previous copy of it is out of view...
Assignee | ||
Comment 31•14 years ago
|
||
(In reply to comment #30)
> Comment on attachment 507574 [details] [diff] [review]
> repeats v1.1
>
> Don't need to explicitly convert to String(), that happens implicitly in the
> call to setAttribute().
Yeah, Overkill. Will fix.
> Hardcoding childNodes[2/3/4] in
> mergeFilteredMessageNode/filterRepeatedCSS/filterRepeatedConsole seems fragile.
A little. I can add some accessor methods to get the child nodes within a message.
> Manually iterating over all past message nodes and comparing them for each
> addition is expensive. I wonder whether it'd be better to hash the
> message+filename and store that in the message node's class, and then just look
> for it via getElementsByClassName?
That's a funky idea. I thought about constructing an xpath query to dig out the elements but storing a hash we can use one of the quick DOM queries is kind of nice.
> Should the filterRepeated* methods return the node that the new message was
> merged with, so that it can be made visible? I guess that'd be odd since it
> could result in the console jumping around, but it also seems odd that new
> errors can occur without being visible, if the previous copy of it is out of
> view...
Mihai and I kind of went around this. Originally, I was merging the repeat with the original message (taking the timestamp from the latest) and re-appending it to the bottom of the list. Mihai thought this was too noisy and I kind of agreed with him, though really, it's a bit subjective.
Since the jumping could be considered "noisy" to some, and not-jumping is probably less annoying, I figured we should go with the less annoying option. Also, it makes for simpler code.
Assignee | ||
Comment 32•14 years ago
|
||
work in progress patch.
Works well in interactive testing, but for some reason, I'm getting a ton of mochitest browser chrome failures.
Anything which seems to do "console = contentWindow.wrappedJSObject.console" followed by a console.log('content') doesn't dump anything to the console. Not sure why, console.log messages work fine from content and the input line.
need to debug this a bit more.
feedback welcome,
Attachment #510030 -
Flags: feedback?(mihai.sucan)
Attachment #510030 -
Flags: feedback?(gavin.sharp)
Assignee | ||
Comment 33•14 years ago
|
||
more testing. The cause of the slowdown is from this block in ConsoleUtils:
if (!isRepeated &&
(aNode.classList.contains("webconsole-msg-console") ||
aNode.classList.contains("webconsole-msg-exception") ||
aNode.classList.contains("webconsole-msg-error")))
isRepeated = this.filterRepeatedConsole(aNode, outputNode);
I commented it out, and all tests pass (except for the new one that's expecting the repeat node to have a value of 10).
Since console messages only check the last output message node, I'm going to revert to using a string comparison for those (not hashing). It only happens once and is apparently quicker.
With that, I'll push it through try to see if it passes and report back.
Comment 34•14 years ago
|
||
Why md5-hash instead of just concatenating a string key to lookup in a JS object? JS-internal hashing should be as fast as string comparing, to first approximation.
/be
Assignee | ||
Comment 35•14 years ago
|
||
I was hoping to avoid having an extra storage object to do this, but talking to Mihai, I think it's a better suggestion than using md5 hashes which are turning out to be too expensive.
I'll give it a try and hopefully have a patch up today!
Assignee | ||
Comment 36•14 years ago
|
||
here's a version with a stored cache of nodes (cssNodes on the hudReference, aka HeadsUpDisplay object).
I didn't know where to stash these. David mentioned the Storage object, but I didn't see anything in there and wasn't sure I needed the extra indirection. If either of you can think of a better place for these, please let me know.
Also, this is showing leaks. I'm not catching all the references on pruning or shutdown. I'm not sure which. Anything look obvious to either of you?
Attachment #511358 -
Flags: feedback?(mihai.sucan)
Attachment #511358 -
Flags: feedback?(ddahl)
Comment 37•14 years ago
|
||
(In reply to comment #36)
> I didn't know where to stash these. David mentioned the Storage object, but I
> didn't see anything in there and wasn't sure I needed the extra indirection. If
> either of you can think of a better place for these, please let me know.
>
There is a constructor called ConsoleStorage that keeps track of all prefs and was a store of all messages - you could add an object and accessor methods there to store the repeatnodes - if you want. otherwise, I would change the name of the cssNodes property to something more specific like 'repeatCssNodes'
> Also, this is showing leaks. I'm not catching all the references on pruning or
> shutdown. I'm not sure which. Anything look obvious to either of you?
looking...
Assignee | ||
Comment 38•14 years ago
|
||
I used cssNodes because it is literally all of them.
I'll check into using the ConsoleStorage object.
Thanks for taking a pass through this. Mihai was looking earlier and nothing obvious jumped out at him regarding the leaks. It seems like just handling a DOM node in an array can make them hang around long after the array has disappeared. At least for the lifetime of our test harness.
Comment 39•14 years ago
|
||
This is just Rob's patch with the leak fixed.
Attachment #512653 -
Flags: review?(gavin.sharp)
Comment 40•14 years ago
|
||
Once this passes reviews, it has implicit a=beltzner
Whiteboard: [parity-chrome] [parity-safari] [softblocker] [in-review] → [parity-chrome] [parity-safari] [softblocker] [in-review] [pre-approved by beltzner]
Assignee | ||
Updated•14 years ago
|
Attachment #507244 -
Flags: review?(gavin.sharp)
Assignee | ||
Updated•14 years ago
|
Attachment #510030 -
Flags: feedback?(mihai.sucan)
Attachment #510030 -
Flags: feedback?(gavin.sharp)
Assignee | ||
Updated•14 years ago
|
Attachment #507574 -
Flags: review?(gavin.sharp)
Assignee | ||
Updated•14 years ago
|
Attachment #511358 -
Flags: feedback?(mihai.sucan)
Attachment #511358 -
Flags: feedback?(ddahl)
Comment 41•14 years ago
|
||
Comment on attachment 512653 [details] [diff] [review]
Rob's patch with a leak fix
>+++ b/toolkit/components/console/hudservice/HUDService.jsm
>+ if (messageNodes[i].classList.contains("webconsole-msg-cssparser")) {
>+ let desc = messageNodes[i].childNodes[2].textContent;
>+ let location = messageNodes[i].childNodes[4].getAttribute("title");
>+ delete hudRef.cssNodes[desc+location];
nit: space around the '+'
> clearDisplay: function HS_clearDisplay(aHUD)
> {
> if (typeof(aHUD) === "string") {
> aHUD = this.getOutputNodeById(aHUD);
> }
>
>+ let hudRef = HUDService.getHudReferenceForOutputNode(aHUD);
>+
>+ if (hudRef)
>+ hudRef.cssNodes = {};
global-nit (10 instances): brace one line ifs (including ones with a one line else)
(hey look, I just collapsed a message! :P)
> /**
>+ * Returns the hudReference for a given output node.
>+ *
>+ * @param nsIDOMNode an output node (as returned by getOutputNodeById()).
>+ * @return a HUD or null
>+ */
nit: I know the style is inconsistent in the file, but the one that we are moving towards looks like this:
https://hg.mozilla.org/mozilla-central/annotate/a63e2fb78899/toolkit/components/console/hudservice/HUDService.jsm#l307
>+ /**
>+ * Returns the hudReference for a given id.
>+ *
>+ * @param string id
>+ * @returns Object
>+ */
Please have more verbose documentation (I know this is a problem that plagues this file; we are trying to improve it).
> /**
>+ * Merge the attributes of the two nodes that are about to be filtered.
>+ * Increment the number of repeats of aOriginal.
>+ *
>+ * @param nsIDOMNode aOriginal
>+ * The Original Node. The one being merged into.
>+ * @param nsIDOMNode aFiltered
>+ * The node being filtered out because it is repeated.
>+ * @return nsIDOMNode (aOriginal)
>+ */
I bit unclear as to why you return the first argument here, and it's never actually used at any call site. Is it really needed?
>+ mergeFilteredMessageNode:
>+ function ConsoleUtils_mergeFilteredMessageNode(aOriginal, aFiltered) {
note: if you wanted to save space, you can s/ConsoleUtils/CU/ here
>+ filterRepeatedCSS:
>+ function ConsoleUtils_filterRepeatedCSS(aNode, aOutput, aHUDId) {
>+ let hud = HUDService.getHudReferenceById(aHUDId);
>+ let description = aNode.childNodes[2].textContent;
>+ let location;
>+ if (aNode.childNodes[4]) // browser_webconsole_bug_595934_message_categories.js
>+ location = aNode.childNodes[4].getAttribute("title");
>+ else
>+ location = "";
>+ let dupe = hud.cssNodes[description+location];
nit: space around '+'
>+ if (!dupe) {
>+ // no matching nodes
>+ hud.cssNodes[description+location] = aNode;
ditto
>+++ b/toolkit/components/console/hudservice/tests/browser/browser_webconsole_bug_585237_line_limit.js
>- for (let i = 0; i < 20; i++) {
>- console.log("foo");
>- }
>+ for (let i = 0; i < 20; i++)
>+ console.log("foo #" + i); // must change message to prevent repeats
>+
please keep the braces
>- for (let i = 0; i < 20; i++) {
>- console.log("boo");
>- }
>+ for (let i = 0; i < 20; i++)
>+ console.log("boo #" + i); // must change message to prevent repeats
>+
ditto
>+++ b/toolkit/components/console/hudservice/tests/browser/browser_webconsole_bug_611795.js
>@@ -0,0 +1,56 @@
>+/* vim:set ts=2 sw=2 sts=2 et: */
>+/* ***** BEGIN LICENSE BLOCK *****
>+ * Any copyright is dedicated to the Public Domain.
>+ * http://creativecommons.org/publicdomain/zero/1.0/
>+ *
>+ * Contributor(s):
>+ * Rob Campbell <rcampbell@mozilla.com>
>+ *
>+ * ***** END LICENSE BLOCK ***** */
Should just be https://www.mozilla.org/MPL/boilerplate-1.1/pd-c
r=sdwilsh, but you should have dao or gavin take a look at the CSS changes (I'm too rusty to feel comfortable reviewing those right now).
Attachment #512653 -
Flags: review?(gavin.sharp) → review+
Assignee | ||
Comment 42•14 years ago
|
||
Updated patch with Shawn's nits addressed. Requesting review for CSS portion.
Attachment #507244 -
Attachment is obsolete: true
Attachment #507574 -
Attachment is obsolete: true
Attachment #510030 -
Attachment is obsolete: true
Attachment #511358 -
Attachment is obsolete: true
Attachment #512653 -
Attachment is obsolete: true
Attachment #513560 -
Flags: review?(gavin.sharp)
Comment 43•14 years ago
|
||
The childNodes[MAGICNUMBER] stuff that this patch adds in several places still seems fragile. getHudReferenceById seems unnecessary given that it's only caller does not null check.
The object hierarchy that makes it necessary to add getHudReferenceForOutputNode is really broken. File a bug on fixing it, blocking bug 592463 (if one doesn't already exist)?
Comment 44•14 years ago
|
||
Comment on attachment 513560 [details] [diff] [review]
repeats denitted
>+.webconsole-msg-repeat {
>+ font: bold 10px sans-serif;
>+ font: bold 10px Helvetica;
>+ font: bold 10px Arial;
Why are these all different? These fonts don't seem to match what's used anywhere else, so I'm not sure why this is needed now (or only on these nodes).
>diff --git a/toolkit/themes/gnomestripe/global/webConsole.css b/toolkit/themes/gnomestripe/global/webConsole.css
>+.webconsole-msg-repeat {
>+ margin-top: 2px;
>+ margin-bottom: 2px;
margin: 2px 0; ?
>+.webconsole-msg-repeat[value="1"] {
>+ display: none;
>+}
This looks like it belongs in a content/ stylesheet.
Assignee | ||
Comment 45•14 years ago
|
||
(In reply to comment #43)
> The childNodes[MAGICNUMBER] stuff that this patch adds in several places still
> seems fragile. getHudReferenceById seems unnecessary given that it's only
> caller does not null check.
I dunno. I've done childNodes.getElementsByClassName(x)[0] and that adds a fair bit of overhead to the node lookup.
If they're of a particular class (e.g., a css message node), they're guaranteed to have those nodes at those indexes. I could wrapper the lookup inside a more explicit "getDescriptionForNode()" method, but that just seems to add more indirection.
What about just commenting the lookups to explain what's in/expected each node?
> The object hierarchy that makes it necessary to add
> getHudReferenceForOutputNode is really broken. File a bug on fixing it,
> blocking bug 592463 (if one doesn't already exist)?
Yes it is. I'll dig through and file it if none exists.
Assignee | ||
Comment 46•14 years ago
|
||
(In reply to comment #44)
> Comment on attachment 513560 [details] [diff] [review]
> repeats denitted
>
> >+.webconsole-msg-repeat {
>
> >+ font: bold 10px sans-serif;
> >+ font: bold 10px Helvetica;
> >+ font: bold 10px Arial;
>
> Why are these all different? These fonts don't seem to match what's used
> anywhere else, so I'm not sure why this is needed now (or only on these nodes).
I thought having sans serif fonts looked better in these nodes than the default monospaced font in this case.
> >diff --git a/toolkit/themes/gnomestripe/global/webConsole.css b/toolkit/themes/gnomestripe/global/webConsole.css
>
> >+.webconsole-msg-repeat {
> >+ margin-top: 2px;
> >+ margin-bottom: 2px;
>
> margin: 2px 0; ?
margin: 2px 0 2px; ?
> >+.webconsole-msg-repeat[value="1"] {
> >+ display: none;
> >+}
>
> This looks like it belongs in a content/ stylesheet.
I'll file a follow up to pull out the functional bits from these style sheets and move them into content.
Assignee | ||
Comment 47•14 years ago
|
||
cleaned up patch based on gavin's review comments. Added a followup bug in bug 635359 to address the functional css bits.
still checking for the additional bug mentioned to clean up the object structure around hudReferences...
Attachment #513560 -
Attachment is obsolete: true
Attachment #513603 -
Flags: review?(gavin.sharp)
Attachment #513560 -
Flags: review?(gavin.sharp)
Comment 48•14 years ago
|
||
> > >+.webconsole-msg-repeat {
> > >+ margin-top: 2px;
> > >+ margin-bottom: 2px;
> >
> > margin: 2px 0; ?
> margin: 2px 0 2px; ?
I'm pretty sure margin: a b; is the same as margin: a b a;
Assignee | ||
Comment 49•14 years ago
|
||
(In reply to comment #48)
> > > >+.webconsole-msg-repeat {
> > > >+ margin-top: 2px;
> > > >+ margin-bottom: 2px;
> > >
> > > margin: 2px 0; ?
> > margin: 2px 0 2px; ?
>
> I'm pretty sure margin: a b; is the same as margin: a b a;
yup. I had it confirmed (from multiple sources!) in channel after asking. Thanks though. :)
Assignee | ||
Comment 50•14 years ago
|
||
Comment on attachment 513603 [details] [diff] [review]
repeats redenitted
Could you take a look at the CSS, Dao?
Attachment #513603 -
Flags: review?(gavin.sharp) → review?(dao)
Comment 51•14 years ago
|
||
(In reply to comment #46)
> > >+.webconsole-msg-repeat {
> >
> > >+ font: bold 10px sans-serif;
> > >+ font: bold 10px Helvetica;
> > >+ font: bold 10px Arial;
> >
> > Why are these all different? These fonts don't seem to match what's used
> > anywhere else, so I'm not sure why this is needed now (or only on these nodes).
>
> I thought having sans serif fonts looked better in these nodes than the default
> monospaced font in this case.
You should use font: message-box; then.
Comment 52•14 years ago
|
||
Comment on attachment 513603 [details] [diff] [review]
repeats redenitted
>+ let repeatNode = aDocument.createElementNS(XUL_NS, "xul:label");
What's "xul:" supposed to do here?
>+.webconsole-msg-repeat {
>+ text-align: center;
Are the screenshots up to date? What exactly is getting centered here?
Assignee | ||
Comment 53•14 years ago
|
||
(In reply to comment #52)
> Comment on attachment 513603 [details] [diff] [review]
> repeats redenitted
>
> >+ let repeatNode = aDocument.createElementNS(XUL_NS, "xul:label");
>
> What's "xul:" supposed to do here?
ah, probably nothing. The rest of that method (and other parts of the file) are including it. I did for consistency but realize it's not explicitly required because of the XUL_NS argument.
> >+.webconsole-msg-repeat {
>
> >+ text-align: center;
>
> Are the screenshots up to date? What exactly is getting centered here?
Hopefully the text (number) inside the label. The screenshots are reasonably current although probably off by a pixel or two since their creation. I can recapture if you like.
Comment 54•14 years ago
|
||
(In reply to comment #53)
> > >+ let repeatNode = aDocument.createElementNS(XUL_NS, "xul:label");
> >
> > What's "xul:" supposed to do here?
>
> ah, probably nothing. The rest of that method (and other parts of the file) are
> including it. I did for consistency but realize it's not explicitly required
> because of the XUL_NS argument.
Even without the namespace argument it wouldn't really make sense, as the script doesn't know what, if anything, 'xul' is associated with in the host document. In fact, browser.xul doesn't seem to set xmlns:xul. I think it might be a no-op regardless of what namespaces exist in the document...
> > Are the screenshots up to date? What exactly is getting centered here?
>
> Hopefully the text (number) inside the label. The screenshots are reasonably
> current although probably off by a pixel or two since their creation. I can
> recapture if you like.
It looks like the label's width adapts to the value, in which case the value couldn't be aligned in a meaningful way.
Assignee | ||
Comment 55•14 years ago
|
||
just an fyi to let you know what I'm up to, I'm going to remove the text-align rule and update the screenshots. I'd remove the xul: prefixes from the labels but that'd make me want to fix them all over this file. It's only 12 occurrences, but I think we should do that in a follow-up attached to our meta-cleanup bug 592463.
Patches and screenshots to follow.
Assignee | ||
Comment 56•14 years ago
|
||
filed bug 636538 for the xul: cleanup.
Assignee | ||
Comment 57•14 years ago
|
||
another version. Fixed up the merge conflicts in HUDService.jsm and applied Dao's changes to the CSS files.
screenshots forthcoming.
Attachment #513603 -
Attachment is obsolete: true
Attachment #514871 -
Flags: review?(dao)
Attachment #513603 -
Flags: review?(dao)
Assignee | ||
Comment 58•14 years ago
|
||
font: message-box; looks bad without any modifications. It's too large for the line.
Assignee | ||
Comment 59•14 years ago
|
||
with font: message-box on mac.
Assignee | ||
Comment 60•14 years ago
|
||
Attachment #505905 -
Attachment is obsolete: true
Assignee | ||
Comment 61•14 years ago
|
||
Assignee | ||
Comment 62•14 years ago
|
||
Attachment #505965 -
Attachment is obsolete: true
Assignee | ||
Comment 63•14 years ago
|
||
reverted font settings to sans, Arial and Helvetica.
Attachment #514871 -
Attachment is obsolete: true
Attachment #514906 -
Flags: review?(dao)
Attachment #514871 -
Flags: review?(dao)
Comment 64•14 years ago
|
||
Comment on attachment 514906 [details] [diff] [review]
repeats v11
(In reply to comment #58)
> font: message-box; looks bad without any modifications. It's too large for the
> line.
Set a font-size?
>+.webconsole-msg-repeat {
>+ display: block;
Why display: block?
Attachment #514906 -
Flags: review?(dao) → review-
Assignee | ||
Comment 65•14 years ago
|
||
/* Repeated messages */
.webconsole-msg-repeat {
margin: 2px 0;
padding-left: 4px;
padding-right: 4px;
width: 1em;
color: white;
background-color: red;
border-radius: 40px;
font: message-box;
font-size: 10px;
font-weight: 600;
}
Attachment #514891 -
Attachment is obsolete: true
Assignee | ||
Comment 66•14 years ago
|
||
replaced font declaration with message-box, added 10px and 600 weight.
The "display: block" rule was set to offset the "display: none" rule in the functional piece. It was unnecessary but I thought didn't hurt. Since it's in xul, it's probably inheriting a display of -moz-block or similar though.
IN any case, I've removed it.
Attachment #514906 -
Attachment is obsolete: true
Attachment #515062 -
Flags: review?(dao)
Updated•14 years ago
|
Attachment #515062 -
Flags: review?(dao) → review+
Assignee | ||
Comment 67•14 years ago
|
||
with above CSS. Looks like it could use 1px padding on the bottom.
Attachment #514899 -
Attachment is obsolete: true
Comment 68•14 years ago
|
||
It looks like it shouldn't have the 1px padding on the top.
Assignee | ||
Comment 69•14 years ago
|
||
Removed 1px padding-top from windows and linux.
Thanks for the R+, Dao!
Attachment #515062 -
Attachment is obsolete: true
Assignee | ||
Comment 70•14 years ago
|
||
Comment on attachment 515138 [details] [diff] [review]
[checked-in] repeats v13
http://hg.mozilla.org/mozilla-central/rev/c60c4769c89a
Attachment #515138 -
Attachment description: repeats v13 → [checked-in] repeats v13
Assignee | ||
Updated•14 years ago
|
Status: ASSIGNED → RESOLVED
Closed: 14 years ago
Resolution: --- → FIXED
Comment 72•13 years ago
|
||
(In reply to Kevin Dangoor from comment #3)
> Really? I don't think I've personally found the circled number confusing in
> the slightest.
*blush* I did. I didn't know what to do with the "red balls". :-)
So why not mention it there:
https://developer.mozilla.org/en/Using_the_Web_Console
Comment 73•13 years ago
|
||
(In reply to Daniel Kabs, reporting bugs since 2002 from comment #72)
> (In reply to Kevin Dangoor from comment #3)
> > Really? I don't think I've personally found the circled number confusing in
> > the slightest.
>
> *blush* I did. I didn't know what to do with the "red balls". :-)
Err, yeah I didn't phrase that well, because it's not unreasonable for people to wonder about those...
> So why not mention it there:
> https://developer.mozilla.org/en/Using_the_Web_Console
Behold! sheppy has now done so!
Comment 74•12 years ago
|
||
Can I just say that I find this feature quite annoying -- can it be a config option?
Comment 75•12 years ago
|
||
(In reply to James Edwards from comment #74)
> Can I just say that I find this feature quite annoying -- can it be a config
> option?
Please file a bug. Thank you!
Comment 76•12 years ago
|
||
(In reply to Mihai Sucan [:msucan] from comment #75)
> (In reply to James Edwards from comment #74)
> > Can I just say that I find this feature quite annoying -- can it be a config
> > option?
>
> Please file a bug. Thank you!
And perhaps that bug could depend on bug 851546.
Comment 77•10 years ago
|
||
FYI, I created a bug to "disable" this feature on https://bugzilla.mozilla.org/show_bug.cgi?id=1048287
Updated•6 years ago
|
Product: Firefox → DevTools
You need to log in
before you can comment on or make changes to this bug.
Description
•