Closed
Bug 52789
Opened 25 years ago
Closed 24 years ago
Sort columns broken in bookmarks, history, file list, etc
Categories
(SeaMonkey :: Bookmarks & History, defect, P3)
SeaMonkey
Bookmarks & History
Tracking
(Not tracked)
VERIFIED
FIXED
M18
People
(Reporter: gilles+mozilla, Assigned: mozilla)
References
Details
(Whiteboard: [rtm+])
Attachments
(5 files)
1.29 KB,
patch
|
Details | Diff | Splinter Review | |
1.49 KB,
patch
|
Details | Diff | Splinter Review | |
1.89 KB,
patch
|
Details | Diff | Splinter Review | |
847 bytes,
patch
|
Details | Diff | Splinter Review | |
781 bytes,
patch
|
Details | Diff | Splinter Review |
From Bugzilla Helper:
User-Agent: Mozilla/5.0 (Windows; U; WinNT4.0; en-US; m18) Gecko/20000915
BuildID: 2000091505
In history window and manage bookmark windows, the sort feature seems completely
broken. Nothing gets sorted as it should.
Reproducible: Always
Steps to Reproduce:
1. Open history or manage bookmark
2. Try to sort either by menu or by clicking on the columns
Actual Results: Window is updated but nothing is sorted like it should
Expected Results: Sorted columns
Comment 2•25 years ago
|
||
tree bug...?
Assignee: don → hyatt
Component: XP Apps → XP Toolkit/Widgets: Trees
QA Contact: sairuh → jrgm
Comment 3•25 years ago
|
||
Sorting works in e.g., mail trees, so this is particular to the sort logic
bound to the tree in bookmarks.js. -> slamm/bookmarks, but cc: blake, who
had some recent changes there (along with rayw's progid-ectomy) and rjc for
sorting backend (?).
To be specific, what I see when sorting a flat bookmarks list is that that
the first and last rows are exchanged, but the rest of the rows are unchanged
by the sort. (linux 2000091508).
Assignee: hyatt → slamm
Status: UNCONFIRMED → NEW
Component: XP Toolkit/Widgets: Trees → Bookmarks
Ever confirmed: true
OS: Windows NT → All
QA Contact: jrgm → claudius
Hardware: PC → All
Comment 4•25 years ago
|
||
yes, there's a problem here with sorting via column headers and the view menu.
Jag and I are pretty sure it isn't us, because we didn't really touch the sort
logic, but jag has a partial fix. cc'ing him. This may be a result of the
progid changes...
Comment 5•25 years ago
|
||
BTW: default for history should be descending last visited.
Keywords: nsbeta3
Comment 6•25 years ago
|
||
OK, I tried this out in a debug build, and I get an assertion whenever clicking
on the column headers or the sort view menuitems:
###!!! ASSERTION: Parent content should not be NULL!: 'Error', file
C:\mozilla\layout\xul\base\src\nsXULTreeOuterGroupFrame.cpp, line 763
Stack:
KERNEL32! bff768a0()
nsDebug::Assertion(0x0279a114, 0x100c6460, 0x0279a0d8, 763) line 256 + 13 bytes
nsDebug::Error(0x0279a114, 0x0279a0d8, 763) line 420 + 22 bytes
nsXULTreeOuterGroupFrame::FindPreviousRowContent(13, 0x041d3590, 0x00000000,
0x007ad124) line 763 + 21 bytes
nsXULTreeOuterGroupFrame::FindPreviousRowContent(13, 0x04207c40, 0x00000000,
0x007ad124) line 837
nsXULTreeOuterGroupFrame::FindRowContentAtIndex(0, 0x00000000, 0x007ad124) line
745
nsXULTreeFrame::GetItemAtIndex(0x02d3f954, 0, 0x007ad234) line 228 + 38 bytes
nsTreeBoxObject::GetItemAtIndex(0x042b7480, 0, 0x007ad234) line 130 + 31 bytes
nsXULElement::RemoveChildAt(0x04178fa0, 0, 0) line 2524 + 63 bytes
XULSortServiceImpl::SortTreeChildren(0x04178fa0, 0x007ad62c, 0) line 1811
XULSortServiceImpl::DoSort(0x04173c74, {...}, {...}) line 2428
XULSortServiceImpl::Sort(0x0301f5b0, 0x04173c74, 0x042d1120, 0x042b7a90) line
2291 + 46 bytes
XPTC_InvokeByIndex(0x0301f5b0, 3, 3, 0x007ada9c) line 139
nsXPCWrappedNativeClass::CallWrappedMethod(0x040c6b20, 0x042b7c50, 0x042b7cc4,
CALL_METHOD, 3, 0x02d65954, 0x007adc50) line 915 + 43 bytes
WrappedNative_CallMethod(0x040c6b20, 0x02d55e20, 3, 0x02d65954, 0x007adc50)
line 226 + 34 bytes
js_Invoke(0x040c6b20, 3, 0) line 825 + 23 bytes
js_Interpret(0x040c6b20, 0x007ae784) line 2626 + 15 bytes
js_Invoke(0x040c6b20, 1, 2) line 842 + 13 bytes
js_InternalInvoke(0x040c6b20, 0x02d55a40, 47538504, 0, 1, 0x007ae91c,
0x007ae8ac) line 914 + 20 bytes
JS_CallFunctionValue(0x040c6b20, 0x02d55a40, 47538504, 1, 0x007ae91c,
0x007ae8ac) line 3162 + 31 bytes
nsJSContext::CallEventHandler(0x040c6cd0, 0x02d55a40, 0x02d56148, 1,
0x007ae91c, 0x007ae918, 0) line 906 + 33 bytes
nsJSEventListener::HandleEvent(0x042d1b74) line 154 + 64 bytes
nsEventListenerManager::HandleEventSubType(0x04174970, 0x042d1b74, 0x04174ac8,
4, 7) line 788 + 19 bytes
nsEventListenerManager::HandleEvent(0x040ee4a0, 0x007af1f4, 0x007af118,
0x04174ac8, 7, 0x007af4ec) line 935 + 39 bytes
nsXULElement::HandleDOMEvent(0x04174ac0, 0x040ee4a0, 0x007af1f4, 0x007af118, 1,
0x007af4ec) line 3323
PresShell::HandleEventInternal(0x007af1f4, 0x00000000, 0x007af4ec) line 4231 +
45 bytes
PresShell::HandleEventWithTarget(0x040ed860, 0x007af1f4, 0x02d4064c,
0x04174ac0, 0x007af4ec) line 4212 + 18 bytes
nsEventStateManager::CheckForAndDispatchClick(0x041c7130, 0x040ee4a0,
0x007af5fc, 0x007af4ec) line 1836 + 59 bytes
nsEventStateManager::PostHandleEvent(0x041c7138, 0x040ee4a0, 0x007af5fc,
0x02d4064c, 0x007af4ec, 0x040efee0) line 917 + 28 bytes
PresShell::HandleEventInternal(0x007af5fc, 0x040efee0, 0x007af4ec) line 4251 +
43 bytes
PresShell::HandleEvent(0x040ed864, 0x040efee0, 0x007af5fc, 0x007af4ec, 1, 1)
line 4166 + 23 bytes
nsView::HandleEvent(0x040efee0, 0x007af5fc, 28, 0x007af4ec, 1, 1) line 379
nsViewManager2::DispatchEvent(0x040ee150, 0x007af5fc, 0x007af4ec) line 1429
HandleEvent(0x007af5fc) line 68
nsWindow::DispatchEvent(0x040efda4, 0x007af5fc, nsEventStatus_eIgnore) line 614
+ 10 bytes
nsWindow::DispatchWindowEvent(0x007af5fc) line 635
nsWindow::DispatchMouseEvent(301, 0x00000000) line 3811 + 21 bytes
ChildWindow::DispatchMouseEvent(301, 0x00000000) line 4021
nsWindow::ProcessMessage(514, 0, 2031824, 0x007af978) line 2889 + 24 bytes
nsWindow::WindowProc(0x00000e68, 514, 0, 2031824) line 883 + 27 bytes
KERNEL32! bff7363b()
KERNEL32! bff94407()
007a89fe()
Since slamm is gone and this is asserting in
nsXULTreeOuterGroupFrame::FindPreviousRowContent, reassigning to hyatt.
Assignee: slamm → hyatt
Comment 7•25 years ago
|
||
cc bryner, update summary, up severity
Severity: normal → major
Summary: Sort columns broken → Sort columns broken in bookmarks.js
Comment 8•25 years ago
|
||
blake, what about history?
Updated•25 years ago
|
Status: NEW → ASSIGNED
Target Milestone: --- → M18
Comment 9•25 years ago
|
||
Hm, this goes through code I've messed with too (nsXULElement::RemoveChildAt).
I'll take a look.
Comment 10•25 years ago
|
||
cc'ing waterson. I think this may be another case where the tree is in an
invalid state during the sort because of the attempt to reduce notifications.
I'm wondering if we need a similar fix to the one in XULTemplateBuilder awhile
back. Waterson, what do you think?
Comment 11•25 years ago
|
||
Okay, so the way I understand things, we're using getAttribute("resource")
somewhere in sorting to get the "rdf:resource" attribute. jst's recent checkin
fixed getAttribute, since we should be using getAttributeNS for getting
attributes on different namespaces. Thus, things broke. However, according to
jst, we shouldn't be using "rdf:resource" to begin with, just "resource".
hyatt, if you agree with the suggested fix (remove "rdf:" from those
attributes), feel free to assign this one to me and I'll attach a patch when I'm
done fixing and testing.
Comment 12•24 years ago
|
||
Yes, that is the correct fix.
Comment 13•24 years ago
|
||
reassigning to jag. For checkin, get permission of bookmarks/history owners, and
please have ben super-review it.
Assignee: hyatt → disttsc
Status: ASSIGNED → NEW
Comment 14•24 years ago
|
||
Like bryner said, it looks like we also need to fix nsXULSortService::DoSort()
to remove the content from the tree *before* sorting. This caused a bunch of
problems elsewhere. So jag, after you fix the "rdf:resource" stuff, send it back
to rjc.
Comment 15•24 years ago
|
||
This patch fixes the assertion. It should go along with the fix to the js.
Comment 16•24 years ago
|
||
Comment 17•24 years ago
|
||
affects the xul file picker (open file, save file), so adding self to cc list.
Comment 18•24 years ago
|
||
This bug depends on bug 53297, which I've posted for all 'rdf:' removal where
needed.
Depends on: 53297
Comment 19•24 years ago
|
||
Checked in part of the fix for 53297 which fixed the sorting front end.
Handing it over to rjc@netscape.com.
Assignee: disttsc → rjc
Comment 20•24 years ago
|
||
Updating summary based on my understanding of comments in the bug.
Priority: P3 → P2
Summary: Sort columns broken in bookmarks.js → Sort columns broken in bookmarks, history, file list, etc
Whiteboard: [nsbeta3+]
Assignee | ||
Comment 21•24 years ago
|
||
Assignee | ||
Comment 22•24 years ago
|
||
I've attached a small diff regarding sorting (file: nsXULSortService)... now that
namespaces are distinct, since the Bookmarks service specifically uses rdf:type,
nsXULSortService needs to look for rdf:type instead of {}:type.
With the diff applied, you'll notice when sorting bookmarks (either the window or
the sidebar panel), sorts will happen in-between separators. Without the patch,
the entire tree will be sorted and separators were being ignored, i.e. they'd all
get sorted to the top or bottom.
Anyone care to review the diff?
Status: NEW → ASSIGNED
Comment 23•24 years ago
|
||
Fix the assertion message: XUL -> RDF
Also, why not put kXULNameSpaceURI near kRDFNameSpaceURI near ine 413? It's the
only place it's used anyway.
Assignee | ||
Comment 24•24 years ago
|
||
Assignee | ||
Comment 25•24 years ago
|
||
Tweaked brain-dead assertion msg. Let's keep statics at the top o' the file.
Comment 26•24 years ago
|
||
Looks a lot better. r=jag, though I would like someone who's a bit more into
this to review too.
Comment 27•24 years ago
|
||
Other than the tabs (can't you get CodeWarrior to expand them to 4-space stops?)
I can only say that the NS_ConvertASCIItoUCS2 call on a string constant is now
better done via NS_LITERAL_STRING -- or so I hear. Cc'ing scc for a definitive
opinion.
/be
Comment 28•24 years ago
|
||
Yes, particularly since you convert the same string multiple times; this would be
better rendered as
NS_NAMED_LITERAL_STRING(literalNameSpaceURI, "the string here");
// ...
...RegisterNameSpace(literalNameSpaceURI, ...
...RegisterNameSpace(literalNameSpaceURI, ...
unfortunately, macro expansion happens in the wrong order to use a |#define| for
the string argument to |NS_LITERAL_STRING| or |NS_NAMED_LITERAL_STRING|, as hyatt
discovered. So watch out. And yes, your real tabs are annoying :-)
Assignee | ||
Comment 29•24 years ago
|
||
> Yes, particularly since you convert the same string multiple times;
Ah, Scott... two different strings are each being converted once.
and since NS_NAMED_LITERAL_STRING can't easily be used here due to #defines which
are sucked in from elsewhere, what's the point?
I'm going to start saying "thusly" to Brendan a lot.
Comment 30•24 years ago
|
||
Oops. Sorry I misread the diff. OK, given that this code path is executed once
per invocation of that app (from IRC conversation with rjc), the savings for
making these be literal strings, over the cost of not using a |#define| for the
strings is negligible. I'm happy to r= this as it stands, with respect to its
use of strings.
Assignee | ||
Comment 31•24 years ago
|
||
I checked in my patch.
bryner, your patch doesn't seem to work for me though... after applying it, doing
a sort doesn't seem to cause a reflow/update. I'm bouncing this bug over to you
so that you can take a look.
Assignee: rjc → bryner
Status: ASSIGNED → NEW
Comment 32•24 years ago
|
||
rjc: wow, good catch. I'm not sure exactly what is going on there.
I'd recommend that we hold off on this change since it seems to put sorting in
jeopardy and it appears that the assertion can be avoided by using the right
namespace. Do you agree?
Comment 33•24 years ago
|
||
I stand corrected. This assertion still happens (although sorting works). I'll
investigate. Should I file a new bug, or keep it on this one?
Comment 34•24 years ago
|
||
Is there still some fix being proposed for beta3?
Whiteboard: [nsbeta3+] → [nsbeta3+][need info]
Comment 35•24 years ago
|
||
There is no fix in hand, but there still is apparently something not quite right
going on during the sort that causes the tree to assert.
However, based on the original description, this bug IS fixed. I'm marking it
as such and filing bug 53686 on the assertion.
Status: NEW → RESOLVED
Closed: 24 years ago
Resolution: --- → FIXED
Comment 36•24 years ago
|
||
hm, the default sort (alphanumeric by filename) is fixed in the file picker (i
checked using 2000.09.22.08 opt comm bits on linux). however, clicking the
*columns* in the filepicker does nothing. (although clicking the columns in the
bookmarks and history window does work.)
let me know if what am seeing in the file picker is a "feature", tho'. ;)
Comment 37•24 years ago
|
||
VERIFIED Fixed on all platforms with 2000092213 builds
Status: RESOLVED → VERIFIED
Reporter | ||
Comment 38•24 years ago
|
||
With build 2000092220 on Win2000, in history, sorting by URL is still broken
(title and last visited is ok)
Status: VERIFIED → REOPENED
Resolution: FIXED → ---
Comment 39•24 years ago
|
||
You're right. For some reason, we don't seem to sort on the NC-rdf#URL resource.
In case two urls are the same, we secondary sort on NC-rdf#Name, but since we
don't sort on the URL, that becomes our primary sorting now.
Comment 40•24 years ago
|
||
back over to rjc... this is definitely your area
Assignee: bryner → rjc
Status: REOPENED → NEW
Comment 41•24 years ago
|
||
PDT marking nsbeta3-/PDTP3
Assignee | ||
Comment 42•24 years ago
|
||
Here's a fix for why sorting doesn't work on the #URL column in the history
window. Chris (Waterson), care to review?
Basically, when asking a node for its "#URL" arc, the sorting code expects a
literal back, not a resource...
Status: NEW → ASSIGNED
Assignee | ||
Comment 43•24 years ago
|
||
Comment 44•24 years ago
|
||
I'm pretty sure you want to use NS_ConvertUTF8toUCS2 here. I think you should be
able to say...
gRDFService->GetLiteral(NS_ConvertUTF8toUCS2(uri),
getter_AddRefs(literal));
or...
gRDFService->GetLiteral(NS_ConvertUTF8toUCS2(uri).GetUnicode(),
getter_AddRefs(literal));
Assignee | ||
Comment 45•24 years ago
|
||
Comment 46•24 years ago
|
||
Looks good!
Assignee | ||
Updated•24 years ago
|
Whiteboard: [nsbeta3-][need info][PDTP3] → [Fix in hand]
Comment 47•24 years ago
|
||
([s]r|a)=scc on the 10/02/00 10:25 patch, as well, if you need it
Comment 48•24 years ago
|
||
[rtm+] for reviewed and super reviewed patch
Whiteboard: [Fix in hand] → [rtm+]
Assignee | ||
Comment 49•24 years ago
|
||
.
Status: ASSIGNED → RESOLVED
Closed: 24 years ago → 24 years ago
Resolution: --- → FIXED
Comment 50•24 years ago
|
||
dang rjc, help us out here. resolved-->fixed, with a comment of "." means you checked this into
the trunk on 10/04 and it should show up in trunk opt. build on 10/05, right?
keep in mind that the only time I know that "." = fixed is when I read the bugzilla email. Later
when I (or anyone) really looks at this I will have no clue what the hell went on.
Assignee | ||
Comment 51•24 years ago
|
||
.
Comment 52•22 years ago
|
||
mass-verifying claudius' Fixed bugs which haven't changed since 2001.12.31.
if you think this particular bug is not fixed, please make sure of the following
before reopening:
a. retest with a *recent* trunk build.
b. query bugzilla to see if there's an existing, open bug (new, reopened,
assigned) that covers your issue.
c. if this does need to be reopened, make sure there are specific steps to
reproduce (unless already provided and up-to-date).
thanks!
[set your search string in mail to "AmbassadorKoshNaranek" to filter out these
messages.]
Status: RESOLVED → VERIFIED
Updated•20 years ago
|
Product: Browser → Seamonkey
You need to log in
before you can comment on or make changes to this bug.
Description
•