Closed Bug 117026 Opened 24 years ago Closed 22 years ago

bookmark properties dialog very slow to load

Categories

(SeaMonkey :: Bookmarks & History, defect)

x86
Linux
defect
Not set
normal

Tracking

(Not tracked)

VERIFIED FIXED
mozilla1.2alpha

People

(Reporter: jmd, Assigned: alfredkayser)

References

Details

(Keywords: perf)

Attachments

(5 files, 8 obsolete files)

18.05 KB, image/gif
Details
7.35 KB, image/png
Details
7.89 KB, image/png
Details
31.60 KB, patch
Details | Diff | Splinter Review
6.56 KB, patch
p_ch
: review+
bzbarsky
: superreview+
Details | Diff | Splinter Review
Right click a bookmark in BM manager, click Properties. Actual Results: Wait 6 seconds, see properties. Expected Results: Wait <2 seconds, see properties. New window open is down to 5.5 seconds here...BM Manager itself opens in 3, and I have a lot of bookmarks. 6 seconds for the tiny properties dialog seems very excessive.
mass reassign of pchen bookmark bugs to ben
Assignee: pchen → ben
Target Milestone: --- → Future
Severity: normal → major
Keywords: nsbeta1, perf
Jeremy, what kind of a machine do you have? It takes less than two seconds for me on a PIII with 256 megs of RAM. Does this happen only on a large bookmark file?
nsbeta1- per nav triage team, but we'd consider a patch that removed the schedule and notify panes, which should make the dialog faster. helpwanted.
Keywords: nsbeta1helpwanted, nsbeta1-
trudelle, so you just want the schedule and notify stuff to be removed from the bm-props.xul file? How about the accompanying javascript and dtd stuff?
Err... I originally had XUL cache disabled. With it back on, nothing seems much faster, except for this. Props now open in 1.5 seconds. Pretty severe perf penalty (400%) for props w/o cache.
I'm seeing a similar on window close perf problem bug 131130.
Upcoming patch
Severity: major → normal
Keywords: helpwanted, nsbeta1-
Target Milestone: Future → mozilla1.2alpha
Attached patch remove tabs (obsolete) — Splinter Review
Speeds up dialog load from 1.5s to near instantaneous (actually pops up before the dialog menu is destroyed sometimes). Reviews?
Comment on attachment 93669 [details] [diff] [review] remove tabs sr=bzbarsky. Make sure a UI-ish person (blake or jag) reviews...
Attachment #93669 - Flags: superreview+
Did a quick search, and it seems some people are (attempting) to use the scheduling features. But it does seem fairly broken: bug 44282 bookmark scheduled update fails to trigger bug 56096 bookmark scheduler settings prevents 23pm to 8am Bug 90148 bookmark scheduler doesn't finish bug 94530 bookmark schedule/notification breaks on '?' in URL bug 110044 Scheduled bookmark notification triggers multiple times Bug 107268 bookmark scheduler wont do anything ^-- this is what I saw when I tried it. No notifications ever. Bug 94530 bookmark schedule/notification breaks on '?' in URL Feature incomplete: Bug 130344 Can't view the schedules as I can in IE Bug 74627 'schedule' and 'notify' bookmarks globally Bug 75330 [RFE] Do bookmark checking if scheduled time has passed And terribly in need of UI love: bug 132380 Merge "Schedule" and "Notify" tabs in Bookmark Properties ^-- this is terribly needed Bug 89059 Schedule in properties of bookmark should only talk about [...] So... do we want this in, in it's half working form, or out, and make bookmark props load in a reasonable time? It would require a lot of work to make notification robust enough to where it should be exposed to users, IMO. (Note my patch was made in responce to trudelle's call for one)
*** Bug 174212 has been marked as a duplicate of this bug. ***
This is a replacement (cannot diff at this moment) for the bookmarks properties dialog box, fixing the following: * this bug (slow loading): - removed tabs, and lots of extra spacers... - removed descriptions and icons (non-info) * bug 132380: merge schedule and notification panels * bug 179058: make dialogbox wider, so that most urls fit in editbox. So, whilst not removing the scheduling features, this speeds up the opening of this dialogbox, and shows all info in one box, instead of hiding bits and pieces.
Removed the entries not used anymore
Ben Goodger, it seems that you are the owner, can you progress this bug through the r, sr, etc stages? Note, that my patch also makes schedule.gif and notification.gif in the themes dead meat.
Attached image Screenshot with Classic
Attached image Screenshot with Modern
Other one is really the 'Classic' shot
Attachment #110813 - Flags: review?(ben)
Attachment #110813 - Flags: review?(ben) → review?(dean_tessman)
Comment on attachment 110814 [details] Corresponding file: en-US\communicator\bookmarks\bm-props.dtd ><!ENTITY checkforupdates.legend.label "Check this location for updates:"> ><!ENTITY notifications.legend.label "Notification:"> These are group box labels, and thus shouldn't have colons.
Attachment #110818 - Attachment description: Screenshot with Modern theme → Screenshot with Classic
Please note bug 194553, which is about adding access keys to this dialog.
=>patch author
Assignee: ben → alfredkayser
Complete patch, to merge all tabs into one dialogbox (see screenshots). Does also fix bug 132380, bug 179058, and bug 194553. (Merge Schedule/Notify, Prop. too narrow, resp. Add access keys). Fully tested with current builds, and safe change as it is only dtd and xul change (long live XUL!)
Attachment #93669 - Attachment is obsolete: true
Attachment #110813 - Attachment is obsolete: true
Attachment #110814 - Attachment is obsolete: true
Comment on attachment 121896 [details] [diff] [review] Patch for in xpfe\components\bookmarks\resources Note, also includes bug 132380, bug 179058, and bug 194553.
Attachment #121896 - Flags: superreview?(dmose)
Attachment #121896 - Flags: review?(dean_tessman)
Comment on attachment 121896 [details] [diff] [review] Patch for in xpfe\components\bookmarks\resources >+ <groupbox><caption label="&generalInfo.label;" /> These should be on separate lines. >- <label value="&bookmarks.name.label;" control="name"/> >+ <label value="&bookmarks.name.label;" accesskey="&bookmarks.name.accesskey;" control="name"/> I assume your indentation is proper, and this looks weird only because it's a diff -w? >- <row id="descriptionrow"> >- <label value="&bookmarks.description.label;" control="description"/> >+ <row> >+ <label value="&bookmarks.description.label;" accesskey="&bookmarks.description.accesskey;" control="description"/> Without a row with id of "descriptionrow", doesn't line 200 throw a js error? document.getElementById("descriptionrow").setAttribute("hidden", "true"); >+</groupbox> >+<hbox> >+ <groupbox><caption label="&checkforupdates.legend.label;"/> These lines should be intended two spaces more, shouldn't they? >- <image id="notification-icon"/> Should we get rid of this image, then, from bookmarksWindow.css (and eventually from cvs)? > <!ENTITY bookmarks.name.label "Name:"> >+<!ENTITY bookmarks.name.accesskey "a"> 'N' is available now, why not use that? Other than that, looks good to me. Can you attach a new patch that addresses my questions and comments?
Attachment #121896 - Flags: review?(dean_tessman) → review-
Blocks: 203761
Attached patch Patch (diff -uw format) (obsolete) — Splinter Review
Fixed comments from Dean: * caption on separate line * indendation fixed * re-added 'descriptionrow' * filed separate bug for removal of 'notification-icon' and 'schedule-icon' * accesskey for Name is now 'N'. * fixed hiding of scheduling groupboxes for non-http bookmarks.
Attachment #121896 - Attachment is obsolete: true
Attachment #121992 - Flags: review?(dean_tessman)
Comment on attachment 121992 [details] [diff] [review] Patch (diff -uw format) >- document.getElementById("ScheduleTab").setAttribute("hidden", "true"); >- document.getElementById("NotifyTab").setAttribute("hidden", "true"); >+ document.getElementById("scheduling").setAttribute("hidden", "true"); > } Are we not hiding the notification section anymore, just scheduling? >+ <hbox id="scheduling"> Does this have a closing tag somewhere that doesn't show up in the diff -w?
Ad 1. No, the 'scheduling' id refers to the hbox containing both notification and scheduling groupboxes. Ad 2. There is a closing hbox, only the diff -uw doesn't show it. The diff -u is not very useable, as the indenting of almost everything has changed (due to the removal of the tabs).
Attachment #121896 - Flags: superreview?(dmose)
Comment on attachment 121992 [details] [diff] [review] Patch (diff -uw format) That clears up my questions. r=me
Attachment #121992 - Flags: review?(dean_tessman) → review+
Attachment #121992 - Flags: superreview?(jaggernaut)
Attachment #110813 - Flags: review?(dean_tessman)
Attachment #121992 - Flags: superreview?(jaggernaut) → superreview?
Attachment #121992 - Flags: superreview? → superreview?(jaggernaut)
Attachment #121992 - Flags: superreview?(jag) → superreview?(bzbarsky)
Comment on attachment 121992 [details] [diff] [review] Patch (diff -uw format) sr=me, but why do you need the <hbox id="scheduling">? Couldn't you put the id on the groupbox?
Attachment #121992 - Flags: superreview?(bzbarsky) → superreview+
diff -u to be applied to cvs Note the 'id=scheduling' is to the hbox, so that both groupbox's contained in the hbox are hidden for bookmark items (such as folders) are hidden by this flag. Furthermore the hbox is required to put the groupbox's horizontally next to each other. (see screenshots)
Attachment #121992 - Attachment is obsolete: true
this patch has merge conflicts in bm-props.xul. alfred: it's not obvious to me how to resolve the conflicts. if you can post an updated patch, i'll be more than happy to check it in for you. thx!
Attached patch Updated diff -u patch (obsolete) — Splinter Review
Attachment #132591 - Attachment is obsolete: true
Note, if this is checked in, the following bugs can also be closed bug 132380, bug 179058, and bug 194553. (Merge Schedule/Notify, Prop. too narrow, resp. Add access keys).
Status: NEW → ASSIGNED
This is the last and final patch. Also removed the redundant showDescription function and renamed the global var Bookmarks to gBookmarks.
Attachment #132667 - Attachment is obsolete: true
fixed-on-trunk
Status: ASSIGNED → RESOLVED
Closed: 22 years ago
Resolution: --- → FIXED
adding bugs blocked by this one per comment #32
Blocks: 132380, 179058, 194553
It would have been better to have this patch reviewed by a person familiar with the bookmarks code (Jan or me which appear to be the default assignee for the bookmark component). For instance, the renaming of bookmarks into gBookmarks makes no sense since there is already a global var |BMDS| to that effect that should have been used. Also, descriptions from bookmarks.properties should be removed. The indentation is wrong in some places, also. Please avoid that in the future.
reopening bug alfred: can you please create a followup patch to address p_ch's review comments. thx!
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
> It would have been better to have this patch reviewed by a person familiar with > the bookmarks code (Jan or me which appear to be the default assignee for the > bookmark component). Sorry about that, will look better and harder for the right reviewers... > For instance, the renaming of bookmarks into gBookmarks makes no sense since > there is already a global var |BMDS| to that effect that should have been used. See patch > Also, descriptions from bookmarks.properties should be removed. See patch > The indentation is wrong in some places, also. If you take a look at: http://lxr.mozilla.org/seamonkey/source/xpfe/components/bookmarks/resources/bm-props.xul you can see it is correct. The patch looks like a mess, because the removal of the tab/tabpanel levels.
Attachment #132987 - Flags: review?(p_ch)
Comment on attachment 132987 [details] [diff] [review] fixed followup patch for the additional review comments please, don't forget to re-indent the file.
> If you take a look at .../bm-props.xul > you can see it is correct. The patch looks like a mess, because the removal > of the tab/tabpanel levels. I was referring to http://lxr.mozilla.org/seamonkey/source/xpfe/components/bookmarks/resources/bm-props.js indentation is not correct.
Comment on attachment 132987 [details] [diff] [review] fixed followup patch for the additional review comments Index: resources/bm-props.js =================================================================== RCS file: /cvsroot/mozilla/xpfe/components/bookmarks/resources/bm-props.js,v retrieving revision 1.31 diff -u -r1.31 bm-props.js --- resources/bm-props.js 9 Oct 2003 21:23:27 -0000 1.31 +++ resources/bm-props.js 20 Oct 2003 09:43:49 -0000 @@ -42,9 +42,6 @@ // that they are associated with. var gProperties; -// All the bookmarks datasource -var gBookmarks; - // The ID of the current shown bookmark var gBookmarkID; @@ -63,7 +60,6 @@ NC_NS + "ShortcutURL", NC_NS + "Description"]; - gBookmarks = RDF.GetDataSource("rdf:bookmarks"); gBookmarkID = window.arguments[0]; var i; @@ -74,7 +70,7 @@ for (i = 0; i < gFields.length; ++i) { var field = document.getElementById(gFields[i]); - var value = gBookmarks.GetTarget(resource, RDF.GetResource(gProperties[i]), true); + var value = BMDS.GetTarget(resource, RDF.GetResource(gProperties[i]), true); if (value) value = value.QueryInterface(Components.interfaces.nsIRDFLiteral).Value; @@ -90,7 +86,7 @@ propsWindow.setAttribute("title", title); // if its a container, disable some things - var isContainerFlag = RDFCU.IsContainer(gBookmarks, resource); + var isContainerFlag = RDFCU.IsContainer(BMDS, resource); if (!isContainerFlag) { // XXX To do: the "RDFCU.IsContainer" call above only works for RDF sequences; // if its not a RDF sequence, we should to more checking to see if @@ -110,7 +106,7 @@ } var showScheduling = false; - var url = gBookmarks.GetTarget(resource, RDF.GetResource(gProperties[1]), true); + var url = BMDS.GetTarget(resource, RDF.GetResource(gProperties[1]), true); if (url) { url = url.QueryInterface(Components.interfaces.nsIRDFLiteral).Value; if (url.substr(0, 7).toLowerCase() == "http://" || @@ -125,7 +121,7 @@ } else { // check bookmark schedule var scheduleArc = RDF.GetResource("http://home.netscape.com/WEB-rdf#Schedule"); - value = gBookmarks.GetTarget(resource, scheduleArc, true); + value = BMDS.GetTarget(resource, scheduleArc, true); if (value) { value = value.QueryInterface(Components.interfaces.nsIRDFLiteral).Value; @@ -222,9 +218,8 @@ // Get the new value as a literal, using 'null' if the value is empty. var newvalue = field.value; - var oldvalue = gBookmarks.GetTarget(RDF.GetResource(gBookmarkID), - RDF.GetResource(gProperties[i]), - true); + var oldvalue = BMDS.GetTarget(RDF.GetResource(gBookmarkID), + RDF.GetResource(gProperties[i]), true); if (oldvalue) oldvalue = oldvalue.QueryInterface(Components.interfaces.nsIRDFLiteral); @@ -255,8 +250,8 @@ var schedulingHidden = scheduling.getAttribute("hidden"); if (schedulingHidden != "true") { var scheduleRes = "http://home.netscape.com/WEB-rdf#Schedule"; - oldvalue = gBookmarks.GetTarget(RDF.GetResource(gBookmarkID), - RDF.GetResource(scheduleRes), true); + oldvalue = BMDS.GetTarget(RDF.GetResource(gBookmarkID), + RDF.GetResource(scheduleRes), true); newvalue = ""; var dayRangeNode = document.getElementById("dayRange"); var dayRange = dayRangeNode.selectedItem.getAttribute("value"); @@ -308,7 +303,7 @@ } if (changed) { - var remote = gBookmarks.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource); + var remote = BMDS.QueryInterface(Components.interfaces.nsIRDFRemoteDataSource); if (remote) remote.Flush(); } @@ -324,21 +319,16 @@ if (prop && (oldvalue || newvalue) && oldvalue != newvalue) { if (oldvalue && !newvalue) { - gBookmarks.Unassert(RDF.GetResource(gBookmarkID), - RDF.GetResource(prop), - oldvalue); + BMDS.Unassert(RDF.GetResource(gBookmarkID), + RDF.GetResource(prop), oldvalue); } else if (!oldvalue && newvalue) { - gBookmarks.Assert(RDF.GetResource(gBookmarkID), - RDF.GetResource(prop), - newvalue, - true); + BMDS.Assert(RDF.GetResource(gBookmarkID), + RDF.GetResource(prop), newvalue, true); } else /* if (oldvalue && newvalue) */ { - gBookmarks.Change(RDF.GetResource(gBookmarkID), - RDF.GetResource(prop), - oldvalue, - newvalue); + BMDS.Change(RDF.GetResource(gBookmarkID), + RDF.GetResource(prop), oldvalue, newvalue); } changed = true; Index: resources/locale/en-US/bookmarks.properties =================================================================== RCS file: /cvsroot/mozilla/xpfe/components/bookmarks/resources/locale/en-US/bookmarks.pro perties,v retrieving revision 1.4 diff -u -r1.4 bookmarks.properties --- resources/locale/en-US/bookmarks.properties 5 Oct 2003 08:21:25 -0000 1.4 +++ resources/locale/en-US/bookmarks.properties 20 Oct 2003 09:43:49 -0000 @@ -18,15 +18,6 @@ # Contributor(s): # -description_Bookmark = %brandShortName% can remember web page locations for you. Type the page name and location in the fields below, then click OK. Select the page from the Bookmarks menu or your Bookmarks Sidebar tab to visit the page. -description_Folder = %brandShortName% can organize your bookmarks into specific folders. Type the folder name and an optional comment below, then click OK. -description_FolderGroup = %brandShortName% can bookmark a group of web pages. Type a group name and an optional comment in the field below, then click OK. Select the group from the Bookmark menu or your Bookmarks Sidebar tab to open each page in a separate Navigator tab. -description_PersonalToolbarFolder = Folders and bookmarks in this folder appear on the Personal Toolbar. -description_NewBookmarkFolder = Newly created bookmarks will be stored here by default. -description_NewSearchFolder = Search results will be stored here by default. -description_NewBookmarkAndSearchFolder = Newly created bookmarks and search results will be stored here by default. -description_BookmarkSeparator = %brandShortName% can organize your bookmarks by putting separators between them. Type an optional separator name below, then click OK. - cmd_bm_open = Open cmd_bm_expandfolder = Expand cmd_bm_collapsefolder = Collapse
Attachment #132987 - Attachment description: Followup patch for the additional review comments → fixed followup patch for the additional review comments
Final, follow-up patch, to fix the review comments of p_ch.
Attachment #132987 - Attachment is obsolete: true
Attachment #133865 - Flags: review?(p_ch)
Attachment #132987 - Flags: review?(p_ch)
Attachment #133865 - Flags: review?(p_ch) → review+
Comment on attachment 133865 [details] [diff] [review] Final patch to fix the last items (indenting, BMDS, and descriptions) Very minor cleanup, but still nice to include in 1.6
Attachment #133865 - Flags: superreview?(bzbarsky)
Attachment #133865 - Flags: approval1.6a?
Comment on attachment 133865 [details] [diff] [review] Final patch to fix the last items (indenting, BMDS, and descriptions) sr=bzbarsky, though this does not address whatever indent issue pch mentioned... you may want to address that at checkin time.
Attachment #133865 - Flags: superreview?(bzbarsky) → superreview+
Comment on attachment 133865 [details] [diff] [review] Final patch to fix the last items (indenting, BMDS, and descriptions) a=asa (on behalf of drivers) for checkin to 1.6alpha
Attachment #133865 - Flags: approval1.6a? → approval1.6a+
It should also address the indenting issues, as they are related to the 'bookmarks' to 'gBookmarks' to 'BMDS' changes, which are included in this last patch.
patch checked in on the trunk for 1.6 alpha. marking FIXED
Status: REOPENED → RESOLVED
Closed: 22 years ago22 years ago
Resolution: --- → FIXED
Product: Browser → Seamonkey
Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: