1
edit
Changes
Labs posted.
*Project: [[Radio Button Bookmarks Extension]]
*FSOSS Report: [[User:Dtheosab/FSOSS_2007|FSOSS 2007]]
=Labs=
==Modifying the Browser Lab Part I==
*This patch will make the new tab to be opened next to the current tab.
<pre>
Index: tabbrowser.xml
===================================================================
RCS file: /cvsroot/mozilla/browser/base/content/tabbrowser.xml,v
retrieving revision 1.243
diff -u -8 -p -r1.243 tabbrowser.xml
--- tabbrowser.xml 18 Sep 2007 00:59:41 -0000 1.243
+++ tabbrowser.xml 15 Oct 2007 22:15:13 -0000
@@ -1088,17 +1088,17 @@
if (!bgLoad) {
function selectNewForegroundTab(browser, tab) {
browser.selectedTab = tab;
}
setTimeout(selectNewForegroundTab, 0, getBrowser(), tab);
}
if (!bgLoad)
this.selectedTab = tab;
-
+ var position = currentTabIndex + 1;
return tab;
]]>
</body>
</method>
<method name="loadTabs">
<parameter name="aURIs"/>
<parameter name="aLoadInBackground"/>
@@ -1173,17 +1173,18 @@
t.maxWidth = this.mTabContainer.mTabMaxWidth;
t.minWidth = this.mTabContainer.mTabMinWidth;
t.width = 0;
t.setAttribute("flex", "100");
t.setAttribute("validate", "never");
t.setAttribute("onerror", "this.parentNode.parentNode.parentNode.parentNode.addToMissedIconCache(this.getAttribute('image')); this.removeAttribute('image');");
t.className = "tabbrowser-tab";
- this.mTabContainer.appendChild(t);
+ var currentTabIndex = this.mTabContainer.selectedIndex;
+ this.mTabContainer.insertBefore(t, this.mTabContainer.childNodes.item(currentTabIndex + 1));
if (document.defaultView
.getComputedStyle(this.mTabContainer, "")
.direction == "rtl") {
/* In RTL UI, the tab is visually added to the left side of the
* tabstrip. This means the tabstip has to be scrolled back in
* order to make sure the same set of tabs is visible before and
* after the new tab is added */
@@ -1952,17 +1953,17 @@
this.mTabListeners.splice(aIndex, 0, this.mTabListeners.splice(aTab._tPos, 1)[0]);
var oldPosition = aTab._tPos;
aIndex = aIndex < aTab._tPos ? aIndex: aIndex+1;
this.mCurrentTab._selected = false;
// use .item() instead of [] because dragging to the end of the strip goes out of
// bounds: .item() returns null (so it acts like appendChild), but [] throws
- this.mTabContainer.insertBefore(aTab, this.mTabContainer.childNodes.item(aIndex));
+ this.mTabContainer. Before(aTab, this.mTabContainer.childNodes.item(aIndex));
// invalidate cache, because mTabContainer is about to change
this._browsers = null;
var i;
for (i = 0; i < this.mTabContainer.childNodes.length; i++) {
this.mTabContainer.childNodes[i]._tPos = i;
this.mTabContainer.childNodes[i]._selected = false;
}
</pre>
==Modifying the Browser Part II - writing an extension==
*This extension that will open a new tab next to the current tab.
*Click here to [http://zenit.senecac.on.ca/wiki/imgs/Addtabbeside-dtheosab.xpi download]
==Thunderbird Bug Fix Lab==
*This patch will fix multiple . after @ sign of mailto link problem.
*In the lab, I somehow could not connect to the cvs server and cannot create the patch. Here is what before and after code.
<pre>
176 if (inString.FindChar('.', pos) != kNotFound) // if we have a '.' after the @ sign....
176 if (inString.FindChar('.', pos) != kNotFound && inString.Find("..") == kNotFound) // if we have a '.' after the @ sign....
</pre>