Closed
Bug 692731
Opened 14 years ago
Closed 11 years ago
Fork nsISidebar
Categories
(SeaMonkey :: Sidebar, defect)
SeaMonkey
Sidebar
Tracking
(Not tracked)
RESOLVED
FIXED
seamonkey2.7
People
(Reporter: neil, Assigned: neil)
Details
Attachments
(1 file)
4.79 KB,
patch
|
mnyromyr
:
review+
|
Details | Diff | Splinter Review |
Firefox wants to modify nsISidebar so we're probably better off with a copy.
As per bug 691647 we could switch from wstring to a better string type.
We could also merge nsISidebar and nsISidebarExternal at the same time.
The new interface would have to have a new name of course.
Comment 1•14 years ago
|
||
(In reply to neil@parkwaycc.co.uk from comment #0)
> Firefox wants to modify nsISidebar
Any details about what they want to change?
![]() |
||
Comment 2•14 years ago
|
||
> The new interface would have to have a new name of course.
Would we still have Components.classes["@mozilla.org/sidebar;1"] and Components.interfaces.nsISidebar ?
Assignee | ||
Comment 3•14 years ago
|
||
(In reply to Philip Chee from comment #2)
> > The new interface would have to have a new name of course.
> Would we still have Components.classes["@mozilla.org/sidebar;1"]
This exists because we create it in SuiteCommon.manifest
> Components.interfaces.nsISidebar ?
This exists because it is created by toolkit. Bug 691647 will change the definition though, so we need to fork it to retain our methods.
![]() |
||
Comment 4•14 years ago
|
||
nsIMonkeySidebar ? Ook?
Comment 5•14 years ago
|
||
(In reply to neil@parkwaycc.co.uk from comment #0)
> Firefox wants to modify nsISidebar so we're probably better off with a copy.
Can you elaborate on why a fork is a better idea here? [Rather than, say, simply extending it if needed]? Especially given the descriptions currently in Bug 691647?
Comment 6•14 years ago
|
||
Diverging from Gecko when it comes to web-exposed features doesn't seem like an ideal situation for SeaMonkey to be in. Presumably you want to keep it because there are users of it that you care about? If so, you should probably at least mention that in bug 691647.
Comment 7•14 years ago
|
||
Unfortunately, we don't know how strong usage really is. But given the (non-)amount of pages using addPanel or even providing old-style sidebars, I'm not quite sure if keeping the removed methods is really useful.
sidebar.addPanel etc. were Mozilla-only for all these years and there's only a handful of pages left using it after the decline of Netscape.
(Note that even the dmoz pages we link to are devoid of sidebars!)
But if we want to keep the feature, we should derive from the base interface, not forking it.
We need a restructuring of our sidebar more than ever.
![]() |
||
Comment 8•14 years ago
|
||
I believe that it is possible to create/register a component that overrides the toolkit one but mostly forwards methods to the toolkit implementation except for whatever custom stuff we want to do.
Advantage of doing it this way is that we only need to maintain the code for the SeaMonkey specific member methods, passing through everything else to the toolkit nsISidebar.
I'm not sure about how to go about the IDL however.
Phil
Comment 9•14 years ago
|
||
IMHO we don't need a API function in website context, that only works for SeaMonkey.
This may cause security problems in future and if Firefox doesn't support this feature, there will get even less websites, which still support it.
Somehow this discussion remembers me on this: http://www.bpic.co.uk/articles/deadhorse.htm
Lets dismount in this case!
Comment 10•14 years ago
|
||
As Philip Chee posted in the newsgroup thread, there is an alternative API in firefox for this:
http://mxr.mozilla.org/mozilla1.8.0/source/browser/base/content/browser.js#4933
I guess it is a better idea to forget about forking nsISidebar and creating a new bug about adding this one to a (still to be created) new SeaMonkey sidebar GUI?
If Neil accepts this suggestion, I'll wontfix this one and create a new bug for creating the new API.
Comment 11•14 years ago
|
||
We're going to get rid of that code too, FWIW.
Comment 12•14 years ago
|
||
Commented here:
https://bugzilla.mozilla.org/show_bug.cgi?id=691647#c11
IMHO "some" way should be kept to allow websites to offer sidebar additions. If nothing like that is left, then there is no more use for the sidebar for the webmaster. Noone will provide a long instruction to users where they tell the user many steps he has to follow to finally get a website, designed to open in the sidebar, to where it should be.
Comment 13•14 years ago
|
||
OK. As it seems like the Firefox developers want to kill sidebar at all, I think we have to decide on our own. As I think that SeaMonkey more or less is the open source counterpart to Opera, I think we should add support for the "Opera way" of adding sidebars. This would just mean code addition to our navigator.js and no need to fork code.
I could create the bug and write up a first version of this new code, which would trigger the old sidebar crap^H^H^Hode.
No need to maintain something that is different from any of the other available browsers.
Comment 14•14 years ago
|
||
Given the current summary of this bug, I feel this whole discussion is a bit out of place. IMO we should either adapt the summary or close the bug, depending on whether we actually want to keep the web content facing API or not. To answer that, let me ask: Is anyone (with some authority) actually in favor of keeping it? If so, why?
Assignee | ||
Comment 15•14 years ago
|
||
In bug 691647 comment #12 Gavin helpfully revealed that Firefox is planning on removing the sidebar entirely. This would explain why they don't need an API.
Unless we remove the sidebar, I suggest we retain some sort of API for it, although I realise we may not necessarily want to retain our current API.
Note that this does not bear any relation to our current back end code; any improvements there would be orthogonal to this bug.
Comment 16•14 years ago
|
||
(In reply to neil@parkwaycc.co.uk from comment #15)
> In bug 691647 comment #12 Gavin helpfully revealed that Firefox is planning
> on removing the sidebar entirely. This would explain why they don't need an
> API.
I revealed that in bug 691647 comment #0! :) But the API isn't the only way to trigger new sidebars, AFAIK you can still manually set bookmarks as "load in sidebar" otherwise.
Assignee | ||
Comment 17•14 years ago
|
||
(In reply to Gavin Sharp from comment #16)
> (In reply to comment #15)
> > In bug 691647 comment #12 Gavin helpfully revealed that Firefox is planning
> > on removing the sidebar entirely.
> I revealed that in bug 691647 comment #0!
Indeed. Sorry for overlooking it.
Comment 18•14 years ago
|
||
(In reply to Jens Hatlak from comment #14)
> Given the current summary of this bug, I feel this whole discussion is a bit
> out of place.
I don't think so. This bug is about forking something, which also means someone will have to keep it up to date. If there are good reason against a fork, I think it's a good idea to discuss them here.
I'll try to port over the Opera API for sidebars, but this will be a separate bug. Will post bug number here as soon as I have it.
Comment 19•14 years ago
|
||
(In reply to Jens Hatlak (:InvisibleSmiley) from comment #14)
> Is anyone (with some authority) actually in favor of keeping it? If so, why?
I, at least, am not. If anyone is: speak now!
I mean, it's a nifty feature, but it didn't took off. Of course we could still keep it (including potential issues) until our World Domination is complete, but that somehow doesn't sound pretty useful in the short term. ^_^
Assignee | ||
Comment 20•14 years ago
|
||
(In reply to Jens Hatlak from comment #14)
> Is anyone (with some authority) actually in favor of keeping it? If so, why?
I'm in favour of keeping the sidebar ;-) And this is the only API that we have. (Well, apart from the inscrutable code that DOM Inspector users.) Of course, should someone ever implement a better API, then we won't need this one.
Comment 21•14 years ago
|
||
(In reply to neil@parkwaycc.co.uk from comment #20)
> (In reply to Jens Hatlak from comment #14)
> > Is anyone (with some authority) actually in favor of keeping it? If so, why?
> I'm in favour of keeping the sidebar ;-) And this is the only API that we
> have.
"This is the only API that we have" is not really a reason for keeping it, imo. It adds maintenance burden, increases Sec Vuln Area of attack. And is a divergence from the generic API gecko exposes.
Frankly, if "we have this now" is your only real reason for keeping it, I say we drop it.
![]() |
||
Comment 22•14 years ago
|
||
Ahem. As the author of xSidebar I vote to keep the API. Of course nobody listens to me anyway.
Comment 23•14 years ago
|
||
Maybe we should first agree upon what "the API" actually contains?
I feel that we all don't mean the same here …
- Just nsISidebar, as reflected into the window object of a web page?
- Certain objects/methods/stuff found in sidebarOverlay?
- Side entrances like bookmarks?
Comment 24•14 years ago
|
||
I also think we have to keep the sidebar (but really have to rewrite it from scratch ;) ). As noted somewhere else, I think the counterpart to SeaMonkey is Opera (just as the counterpart to Firefox seems to be Google Chrome) and Opera also has a sidebar.
But I don't think we should keep the old API. It *will* get obsolete!
We not longer need it in websites as SeaMonkey will be the only who supports it and there are already much more pages supporting the "Opera way" of adding sidebars. If SeaMonkey will be the only who still uses it, then this means we can drop it! SeaMonkey is *very* small if compared to Firefox. Websits, which still offer a sidebar using "addPanel", will drop that support. They won't keep it just for SeaMonkey!
And for the record: I've started to port the "Opera way" to SeaMonkey, but I still have a few problems with that. As soon as I have something that doesn't suck, I'll publish this in a new bug.
And we no longer need the old API in privileged javascript code (addons, ...) as in future, I think, only two ways are needed to add sidebars:
- Broadcaster based API (borrowed from Firefox and already implemented in SM)
- Places based API (Add bookmark with "open in sidebar" flag) which, in future, can be triggerd using the "Opera way" using the <a href="" ref="sidebar> syntax.
@Philip Chee: Can you give a good reason for keeping it? Firefox *will* drop it and if we replace our API with the one used in Opera, I think we have access to a much bigger list of sidebars.
Assignee | ||
Comment 25•14 years ago
|
||
(In reply to Manuel Reimer from comment #24)
> But I don't think we should keep the old API. It *will* get obsolete!
Indeed. But only when we're ready to obsolete it, which we're not quite, yet.
Comment 26•13 years ago
|
||
(In reply to neil@parkwaycc.co.uk from comment #25)
> (In reply to Manuel Reimer from comment #24)
> > But I don't think we should keep the old API. It *will* get obsolete!
> Indeed. But only when we're ready to obsolete it, which we're not quite, yet.
So, in the end, we have two problems here:
- We desperately need to rewrite the sidebar code, for various reasons.
This will take a non-zero amount of time, though marked as "ASAP".
- Our currently supported way has been cut off *now* and the rest may be
killed by the powers that be in the midterm.
Forking the interface is the easiest way to maintain our featureset *now* until the replacement is ready, without doing strange to-be-disposed hacking on our current sidebar code. Forking the interface makes us independent of Firefox' feature deleteism until we're ready to replace it.
Let's do the fork now and discuss the rewrite's corner stones in the newsgroup.
Assignee | ||
Comment 27•13 years ago
|
||
Doing it this way avoids breaking xSidebar, which calls getService(nsISidebar)
Assignee | ||
Updated•13 years ago
|
Attachment #569790 -
Flags: review? → review?(mnyromyr)
Comment 28•13 years ago
|
||
Just for your Information: Bug 697799 contains a patch for a working implementation of the Opera API for sidebars.
Updated•13 years ago
|
Attachment #569790 -
Flags: review?(mnyromyr) → review+
Assignee | ||
Comment 29•13 years ago
|
||
Comment on attachment 569790 [details] [diff] [review]
Proposed patch
Pushed changeset bd69b3204891 to comm-central.
Assignee | ||
Comment 30•11 years ago
|
||
Looks like I forgot to resolve this.
Status: ASSIGNED → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
Comment 31•11 years ago
|
||
(In reply to neil@parkwaycc.co.uk from comment #30)
> Looks like I forgot to resolve this.
You also forgot to set the Milestone. I _think_ I found the right one for comm-central changeset bd69b3204891 but please check.
Target Milestone: --- → seamonkey2.7
You need to log in
before you can comment on or make changes to this bug.
Description
•