Rebuilding TBE's featureset with other plugins

Talk about add-ons and extension development.
Post Reply
kostia
Posts: 5
Joined: December 16th, 2003, 4:41 pm
Contact:

Post by kostia »

This is just a TBE rant. I need catharsis.

I couldn't launch Firebird at all after installing TBE, and since the site is written in extremely fractured English I couldn't figure out how to uninstall it. I had to wipe out Firebird and install a new build. All I wanted was to be able to rearrange tabs by dragging.

Since installing TBE, besides not having a working copy of Firebird, some of my *fonts* are broken. Everything in Courier shows up "encoded," with each letter two positions off where it should be. Instead of "uninstall," for instance, I see "wpkpuvcnn." Since the uninstall "instluctions" on the TBE site use Courier, that made it even more fun.

It's utterly baffling. I made note of the presence of hand-uninstall instructions before I installed TBE; I wish I'd noticed they weren't readable!
IGAU
Posts: 831
Joined: November 18th, 2003, 2:25 pm

Post by IGAU »

All I wanted was to be able to rearrange tabs by dragging.

Why this is not a standalone extension is still beyond me.
TychoQuad
Posts: 1263
Joined: December 11th, 2002, 12:30 am
Location: Australia

Post by TychoQuad »

IGAU wrote:
All I wanted was to be able to rearrange tabs by dragging.

Why this is not a standalone extension is still beyond me.


You mean like miniT?

rue wrote:Tycho:
This one should be near-universal. Paste into the javascript-console to make "New tabs open right of Current". If your browser's not compatible, you'll be told:


I got a message saying tabs will open right of current, and I didn't get any sort of error message, but it doesn't seem to work, and I'm getting the "tab leapfrog" problem again. Last time I had this problem, I was told it was caused by Toolbar Enhancements. I fixed the problem by having my browser load the miniT plugin first, but this time, I can't really do that :P
TychoQuad
Posts: 1263
Joined: December 11th, 2002, 12:30 am
Location: Australia

Post by TychoQuad »

Hmmm, Apon furthur examination (without running TBX) it seems the problem is still there... I will try disabling miniT this time, see if that is taking the cake away from me.

PS: I always have errors in my javascript console, but after disabling TBX, there aren't any... I'm assuming TBX is casuing them, and if it is, do they cause problems?

EDIT:

Alright, this is really freaky. disabling miniT fixed the problem perfectly... your javascript script worked perfectly, so this means miniT is to blame. Does I got this (or a similar) problem when running TBX as I said earlier... does this mean that miniT is messing around with something it shouldn't which breaks everything else that tries to tab something? if so, not good! Is there any way we can work around this?

PS-again: lo and behold, re-enabling TBX marks the return of javascript errors...
EDIT2: Here's the error:

Code: Select all

Error: uncaught exception: [Exception... "Component returned failure code: 0x80520001 (NS_ERROR_FILE_UNRECOGNIZED_PATH) [nsILocalFile.initWithPath]"  nsresult: "0x80520001 (NS_ERROR_FILE_UNRECOGNIZED_PATH)"  location: "JS frame :: chrome://browser/content/search.xml :: initialize :: line 31"  data: no]
dorando
Posts: 1203
Joined: January 9th, 2004, 9:57 am
Contact:

Post by dorando »

As said above this wouldn't work with miniT.
miniT is expecting in addTab that the new tab will be appended as the last and is thus modifying its internal array (mTabs like TBE) in a wrong way (the new tab overrides the one right from the current).

In the new (not uploaded) version this problem shouldn't happen anymore, but the new tab wouldn't always be opened right from the current (but it would likely be possible to tweak it to work).
rue
Posts: 673
Joined: June 10th, 2003, 2:20 pm

Post by rue »

Tycho:
I've updated the console-code for compatibility with miniT: <a href="http://forums.mozillazine.org/viewtopic.php?t=47192&start=15&postdays=0&postorder=asc#344528">here</a>.
.
ps: the forum mangled some of the code -- searchArray[ i ] to be exact. that's fixed.
Last edited by rue on January 26th, 2004, 5:10 pm, edited 1 time in total.
User avatar
Paradox52525
Posts: 1219
Joined: April 23rd, 2003, 9:13 am
Location: Middle of nowhere
Contact:

Post by Paradox52525 »

Yeah this is one of the main problems with trying to split of TBE's feature set. Because there is no internal way to do a lot of the things TBE/MiniT do, so they have to make low level changes to functions or elements that will almost definetely interphere with the functionality of any other tabbrowser modifying extension. I personally think before going much further with this discussion we should file a bug asking for some core-level tab management functions. Maybe an integrated MoveTab, ordinal values set by default, and a way to reorder the actual tab index (mTabs and mTabContainer) based ont he current ordinal. If we had those we should at least be able to (theoretically) move tabs around in one extensions without breaking other tab extensions.
gdeka
Posts: 79
Joined: April 25th, 2003, 1:24 am
Location: Australia
Contact:

Post by gdeka »

The only thing i really use TBE for is the X on each tab, can this be done someother way, other than that TBP fills my needs
TychoQuad
Posts: 1263
Joined: December 11th, 2002, 12:30 am
Location: Australia

Post by TychoQuad »

Perhaps were addressing the problem the wrong way.

What if we were to create a extension that did nothing but add the numerical values to the tabs as needed by every tab-enhancing extension. (basically, it does what we want to be implimented into the core) then we get every tab-enhancing extension to support it instead of having all extension developers try and account for every other extension that might fiddle with the tabs. Once we have this working, we could then take our "Tab-browsing enviroment" extension and ask for that to be implimented into the core. When that happens, we can simply drop the extension, and all extensions (miniT, SS, TBX) that used it would be instantly supported.

It's just crazy the way we have it now... miniT had to make modifications for both Session Saver and Toolbar Enhancements, Toolbar Enhancements' simple tab related mod causes problems for every other tab extension, and rue's javascript console tab mod had to have changes to understand miniT... What i'm proposing will only require compatibility to be tested with one extension, and with many extensions relying on one small extension, that would be inspiration to impliment into the core.
User avatar
Paradox52525
Posts: 1219
Joined: April 23rd, 2003, 9:13 am
Location: Middle of nowhere
Contact:

Post by Paradox52525 »

That would probably be better than our current solution, but then every tabbrowsing extension would have a dependancy, (kind of like extensions that need JSLib). I've always kinda found that to be a PITA myself, and I'm not sure how willing the extension authors are going to be to do such major rewrites to their extensions for anything less than new core code.
rue
Posts: 673
Joined: June 10th, 2003, 2:20 pm

Post by rue »

The extension in question would have to load first. I think a more impressive solution would be if the code could be "inlined", so any extension could push it themselves if it wasn't present.
.
Basically, then, we'd just be architecting a standard.
dorando
Posts: 1203
Joined: January 9th, 2004, 9:57 am
Contact:

Post by dorando »

TychoQuad wrote:miniT had to make modifications for both Session Saver and Toolbar Enhancements[...]

The problem miniT had with Session Saver was that I took not into consideration that something would add tabs before miniT was loaded. This had also broken Multiple homepages support.
The problem miniT had with Toolbar Enhancements seemed to be that the core has problems if an object was access before a sibling was modified via xbl-bindings. It wasn't anyway a good idea to access something before everything could setup itself.

TychoQuad wrote:[...]Toolbar Enhancements' simple tab related mod causes problems for every other tab extension[...]

Does it that? I haven't noticed any...

TychoQuad wrote:[...]and rue's javascript console tab mod had to have changes to understand miniT...

If two extension modify the same function then it is to be expected that this causes problems if they don't work in a compatible way.

In the 0.7.0.5 only "t.ordinal = position;" needs to be changed to "t.ordinal = position = this.mCurrentTab.ordinal-0+1;" to get this working. There will also a config switch available for this in a later version.
TychoQuad
Posts: 1263
Joined: December 11th, 2002, 12:30 am
Location: Australia

Post by TychoQuad »

I'm not really concerned about the specifics of each situation, what I'm saying is that we have holes here that every tab releated extension tries to fill the shoes of. therin lies the problem. We need an extension which can solve all the accessiblility issues of modifying the tab bar. Then each extension can make it's change and go away instead of being a part of the wrestle for control. Hopefully then the said extension could be implimented into the core and forgotten about.
User avatar
laszlo
Posts: 5225
Joined: November 4th, 2002, 6:13 pm
Location: .de
Contact:

Post by laszlo »

You're talking about some sort of "Tab manipulation API extension" that doesn't provide any functionality itself but that other tab-related extensions can build upon? Good idea.
dorando
Posts: 1203
Joined: January 9th, 2004, 9:57 am
Contact:

Post by dorando »

TychoQuad: You're missing the point, these changes would have been needed anyway without other tab related extensions.

Such an extension (tablib?) wouldn't change the current situation much, tough (unless of course someone finds a way to "really" reorder the tabs).
Extensions which don't do the reordering would need to be modified to work with it, but this can already be done now without depending on such an extension. (->example)
For others well..., only miniT, TBE, and MozFBRH seem to do it right now. miniT and TBE provide their own way so they wouldn't need, MozFBRH could benefit from it, but it is possible that this would break compatibility with TBE (and current miniT of course).
Anything else modifying core tab function (like Rue's "New tabs open right of Current" script) would also need to be updated to work with it.

Anyway, if any extension author would want it, I can separate my core reordering functionality, but it doesn't work with SeaMonkey currently.
Post Reply