Search completed in 2.79 seconds.
tabs - Archive of obsolete content
open, manipulate, and access
tabs, and receive tab events.
... usage open a tab you can open a new tab, specifying various properties including location: var
tabs = require("sdk/
tabs");
tabs.open("http://www.example.com"); track
tabs you can register event listeners to be notified when
tabs open, close, finish loading dom content, or are made active or inactive: var
tabs = require("sdk/
tabs"); // listen for tab openings.
...
tabs.on('open', function onopen(tab) { myopen
tabs.push(tab); }); // listen for tab content loads.
...And 22 more matches
tabs - Archive of obsolete content
« xul reference home [ examples | attributes | properties | methods | related ] a row of
tabs.
... a
tabs element should be placed inside a tabbox and should contain tab elements.
... nb: you can add some other elements to
tabs such as button, but they will receive an index.
...And 6 more matches
List Open Tabs - Archive of obsolete content
to list the open
tabs, you can iterate over the
tabs object itself.
... the following add-on adds an action button that logs the urls of open
tabs when the user clicks it: require("sdk/ui/button/action").actionbutton({ id: "list-
tabs", label: "list
tabs", icon: "./icon-16.png", onclick: list
tabs }); function list
tabs() { var
tabs = require("sdk/
tabs"); for (let tab of
tabs) console.log(tab.url); } note: to get this working, you will need to save an icon for the button to your add-on's "data" directory as "icon-16.png".
... run the add-on, load a couple of
tabs and click the button.
...And 3 more matches
tabs/utils - Archive of obsolete content
functions for working with xul
tabs and the xul tabbrowser object.
... returns tabcontainer : get
tabs(window) returns the
tabs for the specified window.
... if you omit window, this function will return
tabs across all the browser's windows.
...And 2 more matches
Tabs - Archive of obsolete content
in this class you can find information about the
tabs in your firefox window.
... the namespace for this class is jetpack.
tabs.
... blah(lengthstringfocusedstringtostringstringpopstringpushstringreversestringshiftstringsortstringsplicestringunshiftstring)this is some default text lengththe number of open
tabsstring focusedthe current tab in your browserstring tostringstuffstring popstuffstring pushstuffstring reversestuffstring shiftstuffstring sortstuffstring splicestuffstring unshiftstuffstring onready()when the inherited document is fully loaded.
... urlurl to be openedstring jetpack.
tabs.open("http://www.example.com/"); blah(lengthstringfocusedstringtostringstringpopstringpushstringreversestringshiftstringsortstringsplicestringunshiftstring)this is some default text lengththe number of open
tabsstring focusedthe current tab in your browserstring tostringstuffstring popstuffstring pushstuffstring reversestuffstring shiftstuffstring sortstuffstring splicestuffstring unshiftstuffstring onready()when the inherited document is fully loaded.
mail.tabs.drawInTitlebar
starting in thunderbird 17.0, the
tabs are drawn in the title bar.
... the old behavior can be restored by setting the preference mail.
tabs.drawintitlebar to false.
... type:boolean default value: true exists by default: yes application support:thunderbird 17.0 status: active; last updated 2012-09-17 introduction: pushed to daily on 2012-08-08 bugs: bug 771816 values true (default) the
tabs are drawn in the title bar of the mail program.
... false the
tabs are drawn in a separate tab bar, and the title bar shows the title of the current tab (e.g.
Listening to events on all tabs
firefox 3.5 adds support for listening to progress events on all
tabs.
... adding a listener to listen to progress events on all
tabs, call the browser's add
tabsprogresslistener() method: gbrowser.add
tabsprogresslistener(myprogresslistener); myprogresslistener is an object that implements the callbacks used to provide notifications of progress events.
... removing a listener to remove a previously installed progress listener, call remove
tabsprogresslistener(): gbrowser.remove
tabsprogresslistener(myprogresslistener); implementing a listener the listener object itself has five methods it can implement to handle various events: onlocationchange called when the uri of the document displayed in the tab changes.
Element.tabStop - Web APIs
the
tabstop property of the element interface returns a boolean indicating if the element can receive input focus via the tab key.
...the
tabstop property would decouple the tabbable property from the tab index.
... syntax var is
tabstop = element.
tabstop; element.
tabstop = (true|false); example // tbd ...
addTabsProgressListener - Archive of obsolete content
« xul reference home add
tabsprogresslistener( listener ) return type: no return value add a progress listener to the browser which will monitor loaded documents in all
tabs in the tabbed browser.
...see listening to events on all
tabs for details.
loadTabs - Archive of obsolete content
« xul reference home load
tabs( uris, loadinbackground, replace ) load
tabs( uris, params ) return type: no return value loads a set of uris, specified by the array uris, into
tabs.
... if loadinbackground is true, the
tabs are loaded in the background, and if replace is true, the currently displayed
tabs are replaced with the specified uris instead of adding new
tabs.
visibleTabs - Archive of obsolete content
« xul reference visible
tabs type: array an array containing tab objects for each visible tab in the tabbrowser.
... this lets you determine which
tabs are visible in the current tab set.
tabscrolling - Archive of obsolete content
« xul reference home
tabscrolling new in thunderbird 3requires seamonkey 2.0 type: boolean if true, the user may cycle through the results list by pressing the tab key.
tabbrowser - Archive of obsolete content
, autoscroll, contentcontextmenu, contenttooltip, handlectrlpageupdown, onbookmarkgroup, onnewtab, tabmodalpromptshowing properties browsers, cangoback, cangoforward, contentdocument, contenttitle, contentvieweredit, contentviewerfile, contentwindow, currenturi, docshell, documentcharsetinfo, homepage, markupdocumentviewer, securityui, selectedbrowser, selectedtab, sessionhistory, tabcontainer,
tabs, visible
tabs, webbrowserfind, webnavigation, webprogress methods addprogresslistener, addtab, add
tabsprogresslistener,appendgroup, getbrowseratindex, getbrowserindexfordocument, getbrowserfordocument, getbrowserfortab, geticon, getnotificationbox, gettabforbrowser, gettabmodalpromptbox, goback, gobackgroup, goforward, goforwardgroup, gohome, gotoindex, loadgroup, loadonetab, load
tabs, loaduri, ...
...loaduriwithflags, movetabto, pintab, reload, reloadall
tabs, reloadtab, reloadwithflags, removeall
tabsbut, removecurrenttab, removeprogresslistener, removetab, remove
tabsprogresslistener,replacegroup, selecttabatindex, seticon, showonlythese
tabs, stop, unpintab attributes autocompleteenabled type: boolean set to true to enable autocomplete of fields.
... onbookmarkgroup not in firefox type: script code this code executes when the user chooses the "bookmark this group of
tabs" command.
...And 29 more matches
Tabboxes - Archive of obsolete content
a series of
tabs appears across the top of a window.
... tabbox the outer box that contains the
tabs along the top and the tab pages themselves.
...
tabs the inner box that contains the individual
tabs.
...And 22 more matches
Index - Archive of obsolete content
61
tabs add-on sdk open, manipulate, and access
tabs, and receive tab events.
... 112
tabs/utils functions for working with xul
tabs and the xul tabbrowser object.
... 156 getting started (jpm) add-on sdk, jpm in this tutorial we've built and packaged an add-on using three commands: 157 getting started (cfx) in this tutorial we've built and packaged an add-on using three commands: 158 list open
tabs add-on sdk no summary!
...And 21 more matches
nsISessionStore
browser/components/sessionstore/nsisessionstore.idlscriptable provides a means for extensions and other code to store data in association with browser sessions,
tabs, and windows.
...closedtab(in nsidomwindow awindow, in unsigned long aindex); nsidomnode forgetclosedwindow(in unsigned long aindex); astring getbrowserstate(); unsigned long getclosedtabcount(in nsidomwindow awindow); astring getclosedtabdata(in nsidomwindow awindow); unsigned long getclosedwindowcount(); astring getclosedwindowdata(); astring get
tabstate(in nsidomnode atab); astring gettabvalue(in nsidomnode atab, in astring akey); astring getwindowstate(in nsidomwindow awindow); astring getwindowvalue(in nsidomwindow awindow, in astring akey); void init(in nsidomwindow awindow); void persisttabattribute(in astring aname); void restorelastsession(); void setbrowserstate(in astri...
...ng astate); void set
tabstate(in nsidomnode atab, in astring astate); void settabvalue(in nsidomnode atab, in astring akey, in astring astringvalue); void setwindowstate(in nsidomwindow awindow, in astring astate, in boolean aoverwrite); void setwindowvalue(in nsidomwindow awindow, in astring akey, in astring astringvalue); nsidomnode undoclosetab(in nsidomwindow awindow, in unsigned long aindex); nsidomwindow undoclosewindow(in unsigned long aindex); attributes attribute type description canrestorelastsession boolean is it possible to restore the previous session.
...And 20 more matches
Index - Archive of obsolete content
359
tabs.onselect xul attributes, xul reference no summary!
... 360
tabscrolling xul attributes, xul reference no summary!
... 378 textbox.
tabscrolling no summary!
...And 17 more matches
Practical positioning examples - Learn web development
you might be thinking "why not just create the separate
tabs as separate webpages, and just have the
tabs clicking through to the separate pages to create the effect?" this code would be simpler, yes, but then each separate "page" view would actually be a newly-loaded webpage, which would make it harder to save information across views, and integrate this feature into a larger ui design.
...the unordered list contains three list items with links inside, which will become the actual
tabs to click on for displaying our content panels.
... the idea here is that we will style the
tabs to look like a standard horizontal navigation menu, and style the panels to sit on top of one another using absolute positioning.
...And 11 more matches
Tabbed browser - Archive of obsolete content
if you need to work with
tabs from a non-browser window, you need to obtain a reference to one first, see working with windows in chrome code for details.
...within the firefox browser are
tabs and inside each tab is a browser, both in the common sense of a web page browser and the xul sense of a browser element.
...note that the code above does not work inside of the electrolysis (e10s) enabled
tabs.
...And 10 more matches
ui/button/toggle - Archive of obsolete content
depending on your application, you might want a button to have different state in different browser windows or different
tabs.
...for example, suppose the browser has two windows (w1 and w2), and each window has two
tabs.
... initially the buttons in all
tabs and windows will display the label value inherited from the global state: browser: label = "my default" w1 t1 > displays "my default" t2 > displays "my default" w2 t3 > displays "my default" t4 > displays "my default" if you then set a label specific to t3 as "my t3 label", then set a label state specific to w2 as "my w2 label", then the button displayed when t3 is the active tab will still show "my t3 label", but the button displayed when t4 is the active tab will show "my w2 label": browser: label = "my default" w1 t1 > displays "my default" t2 > displays "my default" w2 t3 > displays "my t3 label" t4 > displays "my w2 label"...
...And 8 more matches
page-mod - Archive of obsolete content
a page-mod only attaches scripts to documents loaded in
tabs.
... attachto controls whether to attach scripts to
tabs that were already open when the page-mod was created, and whether to attach scripts to iframes as well as the topmost document.
... mapping workers to
tabs the worker has a tab property which returns the tab associated with this worker.
...And 7 more matches
Content Scripts - Archive of obsolete content
there are five basic principles: the add-on's main code, including "main.js" and other modules in "lib", can use the sdk high-level and low-level apis, but can't access web content directly content scripts can't use the sdk's apis (no access to globals exports, require) but can access web content sdk apis that use content scripts, like page-mod and
tabs, provide functions that enable the add-on's main code to load content scripts into web pages content scripts can be loaded in as strings, but are more often stored as separate files under the add-on's "data" directory.
...its "main.js" attaches a content script to the current tab using the
tabs module.
...the content script simply replaces the content of the page: // main.js var
tabs = require("sdk/
tabs"); var contentscriptstring = 'document.body.innerhtml = "<h1>this page has been eaten</h1>";'
tabs.activetab.attach({ contentscript: contentscriptstring }); the following high-level sdk modules can use content scripts to modify web pages: page-mod: enables you to attach content scripts to web pages that match a specific url pattern.
...And 6 more matches
ui/button/action - Archive of obsolete content
by default, the button has global state: that is, its properties are the same across all open windows and
tabs, and updating them updates the button's state across all open windows and
tabs.
... by default, a button's properties are global, meaning that they are the same across all open windows and
tabs, and that if you update these properties, then they are updated across all windows and
tabs.
...for example, this add-on: creates a button with a default label opens a new tab sets a new label only for the new tab logs the result of accessing the global label, the window-specific label, and each of the 2 tab-specific labels var { actionbutton } = require('sdk/ui/button/action'); var
tabs = require("sdk/
tabs"); var button = actionbutton({ id: "my-button", label: "default label", icon: "./firefox-16.png" });
tabs.open({ url: "https://mozilla.org/", onopen: onnewtab }); function onnewtab(tab) { // modify the label only for the new tab button.state(tab, { "label" : "tab-specific label" }); // access the global label -> "default label" console.log(button.la...
...And 6 more matches
tab - Archive of obsolete content
« xul reference home [ examples | attributes | properties | methods | related ] a single tab which should be placed inside a
tabs element.
...if this attribute is not used, the tab will be connected to the panel at the corresponding index in the tabpanels element that the tab is in its
tabs container.
...this might be used to avoid duplication by linking several
tabs to one panel with slight differences to the content adjusted in the select event.
...And 6 more matches
Theme changes in Firefox 2 - Archive of obsolete content
global/all
tabs-box-bkgnd.png new file; the background for the "all
tabs" drop-down menu at the right side of the tab bar.
... global/all
tabs-box-overflow-bkgnd.png new file; the background for the "all
tabs" drop-down menu when there are enough
tabs to activate tab bar scrolling.
... global/icons/all
tabs.png not actually used; left over from earlier drafts of the theme.
...And 5 more matches
Page Visibility API - Web APIs
pages only become hidden when the user switches
tabs or minimizes the browser window containing the tab.
... policies in place to aid background page performance separately from the page visibility api, user agents typically have a number of policies in place to mitigate the performance impact of background or hidden
tabs.
... these may include: most browsers stop sending requestanimationframe() callbacks to background
tabs or hidden <iframe>s in order to improve performance and battery life.
...And 5 more matches
ARIA: tab role - Accessibility
the common user experience pattern is a group of visual
tabs above, or to the side of, a content area, and selecting a different tab changes the content and makes the selected tab more prominent than the other
tabs.
... required javascript features while there are ways to build tab-like functionality without javascript, there are no substitute combination of html and css only that will provide the same set of functionality that's required above for accessible
tabs with content.
... <div class="
tabs"> <div role="tablist" aria-label="sample
tabs"> <button role="tab" aria-selected="true" aria-controls="panel-1" id="tab-1" tabindex="0"> first tab </button> <button role="tab" aria-selected="false" aria-controls="panel-2" id="tab-2" tabindex="-1"> second tab </button> <button role="tab" aria-selected="false" aria-controls="panel-3" id="tab-3" tabi...
...And 5 more matches
Working with Events - Archive of obsolete content
so there are two main ways you will interact with the eventemitter framework: listening to built-in events emitted by objects in the sdk, such as
tabs opening, pages loading, mouse clicks sending and receiving user-defined events between content scripts and add-on code this guide only covers the first of these; the second is explained in the working with content scripts guide.
... for example, the following add-on registers a listener with the
tabs module to listen for the ready event, and logs a string to the console reporting the event: var
tabs = require("sdk/
tabs");
tabs.on("ready", function () { console.log("tab loaded"); }); it is not possible to enumerate the set of listeners for a given event.
...ar panel = panels.panel({ contenturl: self.data.url("panel.html") }); panel.on("*", function(e) { console.log("event " + e + " was emitted"); }); var button = ui.actionbutton({ id: "my-button", label: "my button", icon: "./icon-16.png", onclick: handleclick }); function handleclick(state) { panel.show({ position: button }); } this wildcard feature does not yet work for the
tabs or windows modules.
...And 4 more matches
tabbox - Archive of obsolete content
a row of
tabs is displayed at the top of tabbox which may be used to switch between each page.
... the tabbox should contain two children, the first a
tabs element which contains the
tabs and the second a tabpanels element which contains the contents of the pages.
... attributes eventnode, handlectrlpageupdown, handlectrltab properties accessibletype, eventnode, handlectrlpageupdown, handlectrltab, selectedindex, selectedpanel, selectedtab,
tabs, tabpanels examples <tabbox id="mytablist" selectedindex="2"> <
tabs> <tab label="a first tab"/> <tab label="second tab"/> <tab label="another tab"/> <tab label="last tab"/> </
tabs> <tabpanels> <tabpanel><!-- tabpanel first elements go here --></tabpanel> <tabpanel><!-- tabpanel second elements go here --></tabpanel> <tabpanel><button label="click me"/></tabpanel> <tabpanel><!-- tabpanel fourth elements go here --></tabpanel> </tabpanels> </tabbox> attributes eventnode type: one of the values below in...
...And 4 more matches
DevTools API - Firefox Developer Tools
these
tabs are located in a box we call a toolbox.
... api gdevtools the gdevtools api can be used to register new tools, themes and handle toolboxes for different
tabs and windows.
... console.log("network monitor initialized to toolbox", toolbox); }); toolsidebar to build a sidebar in your tool, first, add a xul:tabbox where you want the sidebar to live: <splitter class="devtools-side-splitter"/> <tabbox id="mytool-sidebar" class="devtools-sidebar-
tabs" hidden="true"> <
tabs/> <tabpanels flex="1"/> </tabbox> a sidebar is composed of
tabs.
...And 4 more matches
An overview of accessible web applications and widgets - Accessibility
example 1: markup for a
tabs widget built without aria labeling.
... <!-- this is a
tabs widget.
...> <ol> <li id="ch1tab"> <a href="#ch1panel">chapter 1</a> </li> <li id="ch2tab"> <a href="#ch2panel">chapter 2</a> </li> <li id="quiztab"> <a href="#quizpanel">quiz</a> </li> </ol> <div> <div id="ch1panel">chapter 1 content goes here</div> <div id="ch2panel">chapter 2 content goes here</div> <div id="quizpanel">quiz content goes here</div> </div> example 2: how the
tabs widget might be styled visually.
...And 4 more matches
dev/panel - Archive of obsolete content
for example, here's a main.js which sends the list
tabs message to the debugger server, and logs the response: // main.js // require the sdk modules const { panel } = require("dev/panel"); const { tool } = require("dev/toolbox"); const { class } = require("sdk/core/heritage"); const mypanel = class({ extends: panel, label: "my panel", tooltip: "my new devtool's panel", icon: "./my-icon.png", url: "./my-panel.html", setup: function(optio...
...ns) { this.debuggee = options.debuggee; this.debuggee.start(); this.debuggee.onmessage = function(event) { console.log(event.data); } this.debuggee.postmessage({ "to":"root", "type":"list
tabs" }); } }); // export the constructor exports.mypanel = mypanel; // create a new tool, initialized // with the new constructor const mytool = new tool({ panels: { mypanel: mypanel } }); more usefully, you can pass debuggee from the main add-on to the panel document using the ports argument to postmessage.
...ew tool({ panels: { mypanel: mypanel } }); in my-panel.js: // my-panel.js var content = document.getelementbyid("content"); window.addeventlistener("message", function(event) { var debuggee = event.ports[0]; console.log(debuggee); debuggee.onmessage = function(event) { content.textcontent = json.stringify(event.data); } debuggee.postmessage({ "to":"root", "type":"list
tabs" }); }); if you do this, don't forget to call start() on the port before passing it over to the panel document.
...And 3 more matches
Chapter 5: Let's build a Firefox extension - Archive of obsolete content
session restoration overwrites any currently open
tabs.
... extensions.sessionstore.replace
tabs integer activated when restoring sessions.
... 0: leave current
tabs 1: overwrite current
tabs 2: ask each time defaults definition file listing 25 gives the contents for the default preferences, as described in table 6.
...And 3 more matches
Intercepting Page Loads - Archive of obsolete content
it is full of useful functions, so you should always keep it in mind when you want to handle
tabs and web content windows.
... attaching the load event handler to gbrowser allows us to listen to these events for all
tabs, without having to worry how many
tabs are open.
...it means you have to keep track of
tabs being opened and closed, in order to add and remove your listener.
...And 3 more matches
Session store API - Archive of obsolete content
one key scenario in which supporting this feature can be crucial for an extension: firefox 2 lets users undo the closing of
tabs.
...if your extension wants to be able to restore data when
tabs are restored, you can install a listener like this: function myextensionhandlerestore(aevent) { var tab = event.originaltarget; /* the tab being restored */ var uri = tab.linkedbrowser.contentdocument.location; /* the tab's uri */ components.classes["@mozilla.org/consoleservice;1"] .getservice(components.interfaces.nsiconsoleservice) .logstringmessage("rest...
...this can be on startup or in response to undo close tab, since closed
tabs are restored as single-tab sessions.
...And 3 more matches
WAI-ARIA basics - Learn web development
this example as-is works fine in terms of keyboard accessibility — you can happily tab between the different
tabs and select them to show the tab contents.
... </article> </div> note: the most striking change here is that we've removed the links that were originally present in the example, and just used the list items as the
tabs — this was done because it makes things less confusing for screenreader users (the links don't really take you anywhere; they just change the view), and it allows the setsize/position in set features to work better — when these were put on the links, the browser kept reporting "1 of 1" all the time, not "1 of 3", "2 of 3", etc.
... the new features are as follows: new roles — tablist, tab, tabpanel — these identify the important areas of the tabbed interface — the container for the
tabs, the
tabs themselves, and the corresponding tabpanels.
...And 3 more matches
Message manager overview
communicate with frame scripts using message-passing apis there are various types of frame message managers, as depicted in this diagram: this diagram shows the setup when there are 2 browser windows open, one with 2
tabs open and one with 1 tab open.
... this operates on all frames, in all content
tabs.
...similarly, if you send a message using the global frame message manager, it's received by all content
tabs, and is then delivered to any frame scripts that are listening for it.
...And 3 more matches
about:debugging - Firefox Developer Tools
at the moment it supports three main sorts of targets: restartless add-ons,
tabs, and workers.
... this firefox provides information about temporary extensions you have loaded for debugging, extensions that are installed in firefox, the
tabs that you currently have open, and service workers running on firefox.
... the information on this page is the same as the information on the this firefox tab, but instead of displaying information for your computer, it displays the information for the remote device with the addition of a
tabs section with an entry for each of the
tabs open on the remote device.
...And 3 more matches
Listen for Page Load - Archive of obsolete content
you can get notifications about new pages loading using the
tabs module.
... the following add-on listens to the tab's built-in ready event and just logs the url of each tab as the user loads it: require("sdk/
tabs").on("ready", logurl); function logurl(tab) { console.log(tab.url); } you will find this console output in the browser console, not the web console.
...this add-on attaches a script to all open
tabs.
...And 2 more matches
Modifying the Page Hosted by a Tab - Archive of obsolete content
here's a simple example: var button = require("sdk/ui/button/action").actionbutton({ id: "style-tab", label: "style tab", icon: "./icon-16.png", onclick: function() { require("sdk/
tabs").activetab.attach({ contentscript: 'document.body.style.border = "5px solid red";' }); } }); to run this example, save an icon file named "icon-16.png" in add-on's "data" directory.
... for example, if we save the script above under the add-on's data directory in a file called my-script.js: var self = require("sdk/self"); var button = require("sdk/ui/button/action").actionbutton({ id: "style-tab", label: "style tab", icon: "./icon-16.png", onclick: function() { require("sdk/
tabs").activetab.attach({ contentscriptfile: self.data.url("my-script.js") }); } }); you can load more than one script, and the scripts can interact directly with each other.
... // index.js var self = require("sdk/self"); var
tabs = require("sdk/
tabs"); require("sdk/ui/button/action").actionbutton({ id: "load-several", label: "load several scripts", icon: "./icon-16.png", onclick: function () {
tabs.activetab.attach({ contentscriptfile: [self.data.url('first.js'), self.data.url('second.js')] }); } }); communicating with the content scripts your add-on script and content...
...And 2 more matches
Index of archived content - Archive of obsolete content
hotkeys indexed-db l10n notifications page-mod page-worker panel passwords private-browsing querystring request selection self simple-prefs simple-storage system
tabs timers ui url widget windows low-level apis /loader chrome console/plain-text console/traceback content/content content/loader content/mod content/sym...
...latform/xpcom preferences/event-target preferences/service remote/child remote/parent stylesheet/style stylesheet/utils system/child_process system/environment system/events system/runtime system/unload system/xul-app
tabs/utils test/assert test/harness test/httpd test/runner test/utils ui/button/action ui/button/toggle ui/frame ui/id ui/sidebar ui/toolbar util/array util/collection util/deprecate util/list ...
... implementing the widget overview storing annotations chrome authority creating event targets creating reusable modules developing for firefox mobile display a popup getting started (jpm) getting started (cfx) list open
tabs listen for page load listening for load and unload localization logging modifying web pages based on url modifying the page hosted by a tab open a web page troubleshooting unit testing using xpcom without chrome using third-party modules (jpm) ...
...And 2 more matches
Textbox (XPFE autocomplete) - Archive of obsolete content
mplete, forcecomplete, highlightnonmatches, ignoreblurwhilesearching, ignoreblurwhilesearching, inputtooltiptext, label, maxlength, maxrows, minresultsforpopup, minresultsforpopup, nomatch, onchange, onerrorcommand, oninput, onsearchcomplete, ontextcommand, ontextentered, ontextrevert, ontextreverted, open, readonly, searchsessions, showcommentcolumn, showcommentcolumn, showpopup, size, tabindex,
tabscrolling,
tabscrolling, timeout, type, useraction, value properties accessible, alwaysopenpopup, autofill, autofillaftermatch, completedefaultindex, crop, disableautocomplete, disabled, editable, focused, forcecomplete, highlightnonmatches, ignoreblurwhilesearching, inputfield, issearching, iswaiting, label, maxlength, maxrows, minresultsforpopup, nomatch, open, popup, popupopen, r...
...esultspopup, searchcount, searchparam, searchsessions, selectionend, selectionstart, sessioncount, showcommentcolumn, showpopup, size, tabindex,
tabscrolling, textlength, textvalue, timeout, type, useraction, value methods addsession, clearresults, getdefaultsession, getresultat, getresultcount, getresultvalueat, getsession, getsessionbyname, getsessionresultat, getsessionstatusat, getsessionvalueat, removesession, select, setselectionrange, syncsessions examples (example needed) attributes accesskey type: character this should be set to a character that is used as a shortcut key.
...
tabscrolling obsolete since gecko 1.9.1 type: boolean if true, the user may cycle through the results list by pressing the tab key.
...And 2 more matches
source-editor.jsm
sourceeditor.prefs.expand_tab "devtools.editor.expandtab" a boolean value that indicates whether or not to automatically expand
tabs out to a series of spaces.
... sourceeditor.prefs.tab_size "devtools.editor.
tabsize" an integer value that specifies the number of spaces per tab.
...rceeditor.defaults.initialtext "" sourceeditor.defaults.keys null sourceeditor.defaults.mode sourceeditor.modes.text sourceeditor.defaults.readonly false sourceeditor.defaults.showannotationruler false sourceeditor.defaults.showlinenumbers false sourceeditor.defaults.showoverviewruler false sourceeditor.defaults.
tabsize 4 sourceeditor.defaults.theme sourceeditor.themes.mozilla sourceeditor.defaults.undolimit 200 event name constants these constants provide the names of the editor events for which you can listen.
...And 2 more matches
TPS Tab Lists
a
tabs asset list is an array of objects with the following keys: uri: the uri of the tab, required.
... for example: var
tabs1 = [ { uri: "http://hg.mozilla.org/automation/crossweave/raw-file/2d9aca9585b6/pages/page1.html", title: "crossweave test page 1", profile: "profile1" }, { uri: "data:text/html,<html><head><title>hello</title></head><body>hello</body></html>", title: "hello", profile: "profile1" } ]; tab lists and phase actions
tabs cannot be modified or deleted, only added or verified with the following functions:
tabs.add - opens the specified
tabs in the browser window.
...
tabs.verify - verifies that the specified
tabs can be found in the specified profile.
...And 2 more matches
Browser Console - Firefox Developer Tools
however, rather than logging this information for a single content tab, it logs information for all content
tabs, for add-ons, and for the browser's own code.
...this means you can interact with all the browser's
tabs using the gbrowser global, and even with the xul used to specify the browser's user interface.
... however, it displays such messages from: web content hosted by all browser
tabs the browser's own code add-ons.
...And 2 more matches
How whitespace is handled by HTML, CSS, and in the DOM - Web APIs
whitespace is any string of text composed only of spaces,
tabs or line breaks (to be precise, crlf sequences, carriage returns or line feeds).
...to make it easier, we’ve illustrated all spaces with ◦, all
tabs with ⇥ , and all line breaks with ⏎: this example: <h1>◦◦◦hello◦⏎ ⇥⇥⇥⇥<span>◦world!</span>⇥◦◦</h1> is rendered in the browser like so: hidden example <h1> hello <span> world!</span> </h1> the <h1> element contains only inline elements.
... in fact it contains: a text node (consisting of some spaces, the word "hello" and some
tabs).
...And 2 more matches
Index - Web APIs
362 broadcast channel api api, broadcast channel api, html api, overview, reference the broadcast channel api allows simple communication between browsing contexts (that is windows,
tabs, frames, or iframes) with the same origin (usually pages from the same site).
...it allows communication between different documents (in different windows,
tabs, frames or iframes) of the same origin.
... 1169 element.
tabstop api, dom, element, needsexample, non-standard, obsolete, property, reference the
tabstop property of the element interface returns a boolean indicating if the element can receive input focus via the tab key.
...And 2 more matches
WindowOrWorkerGlobalScope.setTimeout() - Web APIs
timeouts in inactive
tabs throttled to ≥ 1000ms to reduce the load (and associated battery usage) from background
tabs, timeouts are throttled to firing no more often than once per second (1,000 ms) in inactive
tabs.
... firefox for android uses a timeout value of 15 minutes for background
tabs since bug 736602 in firefox 14, and background
tabs can also be unloaded entirely.
... firefox 50 no longer throttles background
tabs if a web audio api audiocontext is actively playing sound.
...And 2 more matches
Interacting with page scripts - Archive of obsolete content
in this example a page script adds a string variable foo to the window: <!doctype html"> <html> <head> <script> window.foo = "hello from page script" </script> </head> </html> the content script can see this object if it uses unsafewindow.foo instead of window.foo: // main.js var
tabs = require("sdk/
tabs"); var mod = require("sdk/page-mod"); var self = require("sdk/self"); var pageurl = self.data.url("page.html") var pagemod = mod.pagemod({ include: pageurl, contentscript: "console.log(unsafewindow.foo);" })
tabs.open(pageurl); be careful using unsafewindow: you can't rely on any of its properties or functions being, or doing, what you expect.
...the "main.js" opens the local file "page.html" and attaches a content script to it: // main.js var
tabs = require("sdk/
tabs"); var self = require("sdk/self");
tabs.open({ url: self.data.url("page.html"), onready: attachscript }); function attachscript(tab) { tab.attach({ contentscriptfile: self.data.url("content-script.js") }); } the content script defines an object and assigns it to unsafewindow twice: the first time using cloneinto(), the second time using simple assignment: // c...
...the "main.js" opens the local file "page.html" and attaches a content script to it: // main.js var
tabs = require("sdk/
tabs"); var self = require("sdk/self");
tabs.open({ url: self.data.url("page.html"), onready: attachscript }); function attachscript(tab) { tab.attach({ contentscriptfile: self.data.url("content-script.js") }); } the content script defines a function greetme() and exports it to the page script context.
... first, "main.js" will create a page-mod that will attach "content-script.js" to the target web page, and will then load the target web page: var
tabs = require("sdk/
tabs"); var mod = require("sdk/page-mod"); var self = require("sdk/self"); var pageurl = self.data.url("page.html") var pagemod = mod.pagemod({ include: pageurl, contentscriptfile: self.data.url("content-script.js"), contentscriptwhen: "ready" })
tabs.open(pageurl); the target web page "page.html" includes a button and a page script: <html> <head> <meta charset="u...
Getting Started (jpm) - Archive of obsolete content
open it and add the following code: var buttons = require('sdk/ui/button/action'); var
tabs = require("sdk/
tabs"); var button = buttons.actionbutton({ id: "mozilla-link", label: "visit mozilla", icon: { "16": "./icon-16.png", "32": "./icon-32.png", "64": "./icon-64.png" }, onclick: handleclick }); function handleclick(state) {
tabs.open("http://www.mozilla.org/"); } note that "entry point" defaults to "index.js" in jpm, meaning that your main file is "index.
...it uses two sdk modules: the action button module, which enables you to add buttons to the browser, and the
tabs module, which enables you to perform basic operations with
tabs.
...for example, we could change the page that gets loaded: var buttons = require('sdk/ui/button/action'); var
tabs = require("sdk/
tabs"); var button = buttons.actionbutton({ id: "mozilla-link", label: "visit mozilla", icon: { "16": "./icon-16.png", "32": "./icon-32.png", "64": "./icon-64.png" }, onclick: handleclick }); function handleclick(state) {
tabs.open("https://developer.mozilla.org/"); } at the command prompt, execute jpm run again.
... the add-on code itself uses two sdk modules, action button and
tabs.
Getting started (cfx) - Archive of obsolete content
open it and add the following code: var buttons = require('sdk/ui/button/action'); var
tabs = require("sdk/
tabs"); var button = buttons.actionbutton({ id: "mozilla-link", label: "visit mozilla", icon: { "16": "./icon-16.png", "32": "./icon-32.png", "64": "./icon-64.png" }, onclick: handleclick }); function handleclick(state) {
tabs.open("https://www.mozilla.org/"); } save the file.
...it uses two sdk modules: the action button module, which enables you to add buttons to the browser, and the
tabs module, which enables you to perform basic operations with
tabs.
...for example, we could change the page that gets loaded: var buttons = require('sdk/ui/button/action'); var
tabs = require("sdk/
tabs"); var button = buttons.actionbutton({ id: "mozilla-link", label: "visit mozilla", icon: { "16": "./icon-16.png", "32": "./icon-32.png", "64": "./icon-64.png" }, onclick: handleclick }); function handleclick(state) {
tabs.open("https://developer.mozilla.org/"); } at the command prompt, execute cfx run again.
... the add-on code itself uses two sdk modules, action button and
tabs.
Open a Web Page - Archive of obsolete content
to open a new web page, you can use the
tabs module: var
tabs = require("sdk/
tabs");
tabs.open("http://www.example.com"); this function is asynchronous, so you don't immediately get back a tab object which you can examine.
...the callback is assigned to the onready property, and will be passed the tab as an argument: var
tabs = require("sdk/
tabs");
tabs.open({ url: "http://www.example.com", onready: function onready(tab) { console.log(tab.title); } }); even then, you don't get direct access to any content hosted in the tab.
...this add-on loads a page, then attaches a script to the page which adds a red border to it: var
tabs = require("sdk/
tabs");
tabs.open({ url: "http://www.example.com", onready: runscript }); function runscript(tab) { tab.attach({ contentscript: "document.body.style.border = '5px solid red';" }); } learning more to learn more about working with
tabs in the sdk, see the
tabs api reference.
... to learn more about running scripts in
tabs, see the tutorial on using tab.attach().
Progress Listeners - Archive of obsolete content
in the examples below the progress listener is attached to the tabbrowser, which means you don't get any notifications for inactive
tabs.
... firefox 3.5 includes a way to set up a listener for all
tabs, selected and not: listening to events on all
tabs.
...state change if (aflag & state_start) { // this fires when the load event is initiated } if (aflag & state_stop) { // this fires when the load finishes } }, onlocationchange: function(aprogress, arequest, auri) { // this fires when the location bar changes; that is load event is confirmed // or when the user switches
tabs.
...using the following code, you will get notified when user navigates to another page (by clicking a link, using the back/forward button, by typing an address in the location bar, etc.) and also when user switches
tabs.
Listening to events in Firefox extensions - Archive of obsolete content
in order to listen to events from all browsers, including those not currently being displayed, the following example can be used: var
tabsprogresslistener = { // add
tabs progress listener implementation here } gbrowser.add
tabsprogresslistener(
tabsprogresslistener); this lets you receive events related to all
tabs.
... more information about listening to events from all
tabs is available.
...date the progress bar and status messages as pages load turn on and off the throbber as pages load set the site icon when available update the address bar as the user navigates hide notification bars when appropriate as the user navigates apply the site zoom preferences to newly loading pages update the bookmarking star button ui update the identity display as the site's security changes
tabsprogresslistener this object is a
tabs progress listener and receives events for all browsers in the window.
... the internal listeners are used to send out progress events to listeners registered with addprogresslistener() (which receives events from the browser that is currently visible) and add
tabsprogresslistener() (which receives events from all browsers).
User Notifications and Alerts - Archive of obsolete content
there's a catch, though: these notifications are inside the current tab, so switching
tabs will make a notification disappear.
...nb.appendnotification( message, "xulschoolhello-friend-notification", "chrome://xulschoolhello/skin/friend-notification.png", nb.priority_info_high, [ acceptbutton, declinebutton ]); all browser
tabs have a notification box by default, so you don't need to do any overlaying.
...below is preferrable because it only cuts the bottom part of the current page, as opposed to pushing down all
tabs and content.
...first of all, switching
tabs will probably make your alert disappear.
Basics - Archive of obsolete content
titlethe head of the notification message.string bodythe messagestringfalse iconthe url of an .ico file.string jetpack.notifications.show("hello world");var mybody = " my first message body on jetpack";var myicon = "http://www.mozilla.com/favicon.ico";jetpack.notifications.show({title: "my first message on jetpack", body: mybody, icon: myicon}); class
tabs in this class you can find information about the
tabs in your firefox window.
... the namespace for this class is jetpack.
tabs.
... blah(lengthstringfocusedstringtostringstringpopstringpushstringreversestringshiftstringsortstringsplicestringunshiftstring)this is some default text lengththe number of open
tabsstring focusedthe current tab in your browserstring tostringstuffstring popstuffstring pushstuffstring reversestuffstring shiftstuffstring sortstuffstring splicestuffstring unshiftstuffstring onready()when the inherited document is fully loaded.
... urlurl to be openedstring jetpack.
tabs.open("http://www.example.com/"); ...
Install script template - Archive of obsolete content
* * @param rootkey must be one of these two string values hkey_local_machine or hkey_current_user * @param plidid plid for plugins * @param dllabsolutepath the fully qualified path to the dll * @param xp
tabsolutepath the fully qualified path to the xpt * @param plugindescription a string describing the plugin * @param vendor a string describing the vendor * @param productname the name of this software * @param pluginversion version string of the plugin * @param mimetype mime type handled by the plugin plugins with more than one mime type might use a...
....my files) * @param suffixdescription string describing suffix **/ function registerplid(rootkey, plidpath, plidid, dllabsolutepath, xp
tabsolutepath, plugindescription, vendor, productname, pluginversion, mimetype, suffix, suffixdescription) { var myregstatus = 0; winreg = getwinregistry(); if (winreg == null) { logcomment("moz registerplid: winreg == null"); return winregisnullerror; } // which root to start from hklm, hkcu if (rootkey == hkey_local_machine) { logcomment("moz registerplid: rootkey=="+hkey_local_machine); winreg.setrootkey(winreg.hkey_local_machine); } else if (rootkey == hkey_current_user) { logcomment("moz registerplid: rootkey=="+hkey_current_user); win...
...errorcode="+myregstatus); return myregstatus; } // write xptpath myregstatus = winreg.setvaluestring(mymozillapluginpath, "xptpath", xp
tabsolutepath); if (myregstatus != 0) { logcomment("moz registerplid: could not write the xpt path value.
... regpath="+mymozillapluginpath+"xptpath="+xp
tabsolutepath+", as expected.
replaceGroup - Archive of obsolete content
« xul reference home replacegroup( group ) not in firefox return type: array of session history objects replaces existing
tabs with a new set.
... if there were more
tabs before, the additional ones are not removed.
... you can use the removetab method to remove the existing
tabs first if that is desired.
...this method returns an array of the session history objects for the
tabs that were removed.
textbox (Toolkit autocomplete) - Archive of obsolete content
, completedefaultindex, completeselectedindex,crop, disableautocomplete, disabled, disablekeynavigation, enablehistory, focused, forcecomplete, highlightnonmatches, ignoreblurwhilesearching, inputtooltiptext, label, maxlength, maxrows, minresultsforpopup, nomatch, onchange, oninput, onsearchcomplete, ontextentered, ontextreverted, open, readonly,showcommentcolumn, showimagecolumn, size, tabindex,
tabscrolling, timeout, type, value properties accessibletype, completedefaultindex, controller, crop, disableautocomplete, disablekeynavigation, disabled, editable, focused, forcecomplete, highlightnonmatches, ignoreblurwhilesearching, inputfield, label, maxlength, maxrows, minresultsforpopup, open, popup, popupopen, searchcount, searchparam, selectionend, selectionstart, showcommentcolumn, ...
...showimagecolumn,size, tabindex,
tabscrolling, textlength, textvalue, timeout, type, value methods getsearchat, onsearchcomplete, ontextentered, ontextreverted, select, setselectionrange examples <textbox type="autocomplete" autocompletesearch="history"/> attributes accesskey type: character this should be set to a character that is used as a shortcut key.
...
tabscrolling new in thunderbird 3requires seamonkey 2.0 type: boolean if true, the user may cycle through the results list by pressing the tab key.
...
tabscrolling type: boolean gets and sets the value of the
tabscrolling (or
tabscrolling) attribute.
Creating a Skin - Archive of obsolete content
css: .findfilesbox { background-color: #0088cc; } xul: <vbox class="findfilesbox" orient="vertical" flex="100%"> <toolbox> rounding on the
tabs next, let's modify the
tabs.
... we will make the selected tab bold and change the rounding on the
tabs.
... the last rule only applies to
tabs that have their selected attribute set to true.
...for example, rules are already defined for buttons and
tabs and so on and we defined additional rules for them.
Common Firefox theme issues and solutions - Archive of obsolete content
operating system specific issues windows 7 windows 7 aero missing right-hand title bar buttons when
tabs are on top and the menu bar is disabled, firefox is missing the min/max/restore/close button on the right side of the title bar.
...in order to work around this issue, you need to either rename any of the following files that are in your chrome://browser/skin/ folder and fix any references to those files, or copy them to the folder chrome://browser/skin/lion/: keyhole-circle.png toolbar.png toolbarbutton-dropmarker.png tabbrowser/all
tabs-box-bkgnd-icon.png tabview/tabview.png places/toolbar.png linux linux select box fields are showing both drop arrow and spinner arrows on linux: the styling of drop down select box fields may show both a drop arrow and up/down spinner arrows.
... app button not styled on linux, but is styled on windows on linux the firefox app button that is displayed when
tabs are on top and menu bar is disabled is not styled properly compared to windows and is not changing colors when in private browsing mode.
... toolbars and menus firefox application button application button doesn't change styling for private browsing mode when in private browsing mode there needs to be a visual difference to the firefox app button that is displayed when
tabs are on top and the menu bar is disabled.
IPDL Tutorial
all messages for multi-process plugins and
tabs in firefox are declared in the ipdl language.
... the parent actor is typically the more permanent side of the conversation: parent/child actors parent child ipc
tabs chrome process content process ipc plugins content process plugin process each protocol is declared in a separate file.
... chrome to content calls (for ipc
tabs) must only use async semantics.
...in mozilla there are two main top-level protocols: ppluginmodule for remote plugins, and pcontent for remote
tabs.
Web Locks API - Web APIs
while held, no other script executing in the same origin can acquire the same lock, which allows a web app running in multiple
tabs or workers to coordinate work and the use of resources.
...for example, if a web app running in multiple
tabs wants to ensure that only one tab is syncing data between the network and indexed db, each tab could try to acquire a "my_net_db_sync" lock, but only one tab will succeed (the leader election pattern.) the api is used as follows: the lock is requested.
...}); while a lock is held, requests for the same lock from this execution context, or from other
tabs/workers, will be queued.
...note that such deadlocks only affect the locks themselves and code depending on them; the browser, other
tabs, and other script in the page is not affected.
Window.open() - Web APIs
if you are using the sdk,
tabs are handled a bit differently k-meleon 1.1, a mozilla-based browser, gives complete control and power to the user regarding how links are opened.
... more reading on the cross-domain script security restriction: http://www.mozilla.org/projects/secu...me-origin.html usability issues avoid resorting to window.open() generally speaking, it is preferable to avoid resorting to window.open() for several reasons: most modern desktop browsers offer tab-browsing, and tab-capable browser users overall prefer opening new
tabs than opening new windows in a majority of webpage situations.
... new windows can have menubar missing, scrollbars missing, status bar missing, window resizability disabled, etc.; new
tabs cannot be missing those functionalities or toolbars (or at least, the toolbars that are present by default).
...opening new
tabs is less demanding on the user's system resources (and faster to achieve) than opening new windows.
ARIA Test Cases - Accessibility
ms ie8 tab control example expected at behavior: as focus first lands on the
tabs, screen reader announces the label and role of the focused tab item, and whether it is selected.
... as the user presses left and right arrows to change the
tabs, the newly focused tab should be announced.
...note that for
tabs with ajax content, for performance reasons it is optional that they only load the panel only once the user presses space on the new tab.
... as the user
tabs into the panel, its name, role, and if present, description should be read, followed by the newly focused item.
tab-size - CSS: Cascading Style Sheets
syntax /* <integer> values */ tab-size: 4; tab-size: 0; /* <length> values */ tab-size: 10px; tab-size: 2em; /* global values */ tab-size: inherit; tab-size: initial; tab-size: unset; values <integer> a multiple of the advance width of the space character (u+0020) to be used as the width of
tabs.
... <length> the width of
tabs.
... formal definition initial value8applies toblock containersinheritedyescomputed valuethe specified integer or an absolute lengthanimation typea length formal syntax <integer> | <length> examples expanding by character count pre { tab-size: 4; /* set tab size to 4 characters wide */ } collapse
tabs pre { tab-size: 0; /* remove indentation */ } comparing to the default size this example compares a default tab size with a custom tab size.
... note that white-space is set to pre to prevent the
tabs from collapsing.
Porting the Library Detector - Archive of obsolete content
finally, it listens to gbrowser's
tabselect event, to update the contents of the box for that window.
...scriptfile: (data.url('library-detector.js')), onattach: function(worker) { worker.on('message', function(librarylist) { if (!worker.tab.libraries) { worker.tab.libraries = []; } librarylist.foreach(function(library) { if (worker.tab.libraries.indexof(library) == -1) { worker.tab.libraries.push(library); } }); if (worker.tab ==
tabs.activetab) { updatewidgetview(worker.tab); } }); } }); the content script is executed once for every window.onload event, so it will run multiple times when a single page containing multiple iframes is loaded.
...y.name + "<br>version: " + library.version); }); widgetcontent += htmlcontentpostamble; return widgetcontent; } function updatewidgetview(tab) { var widgetview = widget.getview(tab.window); if (!tab.libraries) { tab.libraries = []; } widgetview.content = buildwidgetviewcontent(tab.libraries); widgetview.width = tab.libraries.length * icon_width; } main.js will use the
tabs module to update the widget's content when necessary (for example, when the user switches between
tabs):
tabs.on('activate', function(tab) { updatewidgetview(tab); });
tabs.on('ready', function(tab) { tab.libraries = []; }); showing the library detail the xul library detector displayed the detailed information about each library on mouseover in a tooltip: we can't do this using a widget,...
widget - Archive of obsolete content
widgets.widget({ id: "google-link", label: "widget with an image and a click handler", contenturl: "http://www.google.com/favicon.ico", onclick: function() { require("sdk/
tabs").activetab.url = "http://www.google.com/"; } }); // a widget that changes display on mouseover.
...var
tabs = require("sdk/
tabs"); var windows = require("sdk/windows").browserwindows; var widget = require("sdk/widget").widget({ id: "window-specific-test", label: "widget with content specific to each window", content: " ", width: 50 }); // observe tab switch or document changes in each existing tab: function updatewidgetstate(tab) { var view = widget.getview(tab.window); if (!view) return; ...
..."secured" : "unsafe"; }
tabs.on('ready', updatewidgetstate);
tabs.on('activate', updatewidgetstate); methods destroy() removes the widget view from the add-on bar.
windows - Archive of obsolete content
var windows = require("sdk/windows").browserwindows; //print how many
tabs the current window has console.log("the active window has " + windows.activewindow.
tabs.length + "
tabs."); // print the title of all browser windows for (let window of windows) { console.log(window.title); } // close the active window windows.activewindow.close(function() { console.log("the active window was closed"); }); methods activate() makes window active, w...
...
tabs a live list of
tabs in this window.
... this object has the same interface as the
tabs api, except it contains only the
tabs in this window, not all
tabs in all windows.
Release notes - Archive of obsolete content
"./my-file" introduced everywhere as an alias for require("sdk/self").data.url("my-file") added the ability to attach stylesheets to individual
tabs.
... firefox 31 highlights add-on debugger added the ability to convert between high-level browserwindow objects and dom windows, and between high-level tab objects and xul
tabs.
... gettabforid() function added to
tabs/utils.
Tutorials - Archive of obsolete content
interact with the browser open a web page open a web page in a new browser tab or window using the
tabs module, and access its content.
... listen for page load use the
tabs module to get notified when new web pages are loaded, and access their content.
... get the list of open
tabs use the
tabs module to iterate through the currently open
tabs, and access their content.
Tabbox - Archive of obsolete content
handling onclosetab event assuming the tabbox,
tabs, and tabpanels widgets with id's the same as their nodename, this function will correctly remove the current tab and tab panel for the onclosetab
tabs event: function removetab(){ var tabbox = document.getelementbyid("tabbox"); var currentindex = tabbox.selectedindex; if(currentindex>=0){ var
tabs=document.getelementbyid("
tabs"); var tabpanels=document.getelementbyid("tabpanels"); tabpanels.removechild(tabpanels.childnodes[currentindex]);
tabs.removeitemat(currentindex); /*wor...
...k around if last tab is removed, widget fails to advance to next tab*/ if(-1 == tabbox.selectedindex &&
tabs.childnodes.length>0){ tabbox.selectedindex=0; } } creating a close tab button to have a tab close button, you must configure the style.
... examples: .
tabs-closebutton { list-style-image: url(http://mozilla.org/favicon.ico); } .
tabs-closebutton { list-style-image: url("chrome://global/skin/icons/close.gif"); } ...
Adding sidebars - Archive of obsolete content
the
tabs are styled to match the operating system you're using, so you should avoid changing the css in tab boxes.
... creating a tabbed view is simple: <tabbox id="xulschoolhello-tabbox"> <
tabs> <tab label="&xulschoolhello.maintab.label;" /> <tab label="&xulschoolhello.advancedtab.label;" /> </
tabs> <tabpanels> <tabpanel> <!-- content for the main panel.
... a deck is like a tabbbox without the
tabs.
Code snippets - Archive of obsolete content
tabs from other computers this snippet shows how to load all
tabs from other computers.
...requestor) .getinterface(components.interfaces.nsiwebnavigation) .queryinterface(components.interfaces.nsidocshelltreeitem) .roottreeitem .queryinterface(components.interfaces.nsiinterfacerequestor) .getinterface(components.interfaces.nsidomwindow); // obtain a reference to sync's
tabs "engine." let
tabsengine = weave.service.enginemanager.get("
tabs"); // iterate over each client having data.
... for each (let client in
tabsengine.getallclients()) { for each (let tab in client.
tabs) { let url = tab.urlhistory[0]; // load the tab via the tabbed browser api.
closebutton - Archive of obsolete content
« xul reference home closebutton obsolete since gecko 1.9.2 type: boolean if this attribute is set to true, the
tabs row will have a "new tab" button and "close" button on the ends.
... this feature is used by the tabbrowser to provide the facilities for adding and closing
tabs.
... you can set an image to the "new tab" and "close" buttons by applying them to the
tabs-newbutton and
tabs-closebutton classes respectively.
Methods - Archive of obsolete content
« xul reference home acceptdialog additemtoselection addpane addprogresslistener addsession addtab add
tabsprogresslistener advance advanceselectedtab appendcustomtoolbar appendgroup appenditem appendnotification blur cancel canceldialog centerwindowonscreen checkadjacentelement clearresults clearselection click close collapsetoolbar contains decrease decreasepage docommand ensureelementisvisible ensureindexisvisible ensureselectedelementisvisible expandtoolbar extra1 extra2 focus getbrowseratindex getbrowserfordocument getbrowserfortab getbrowserindexfordocument getbutton getdefaultsession geteditor getelementsbyattribute getelementsbyattributens getformattedstring gethtmleditor getindexoffirs...
... getresultcount getresultvalueat getrowcount getsearchat getselecteditem getsession getsessionbyname getsessionresultat getsessionstatusat getsessionvalueat getstring goback gobackgroup godown goforward goforwardgroup gohome goto gotoindex goup hidepopup increase increasepage insertitem insertitemat invertselection loadgroup loadonetab load
tabs loaduri loaduriwithflags makeeditable movebyoffset moveto movetoalertposition onsearchcomplete ontextentered ontextreverted openpopup openpopupatscreen opensubdialog openwindow preferenceforelement reload reloadall
tabs reloadtab reloadwithflags removeallitems removeallnotifications removeall
tabsbut removecurrentnotification removecurrenttab removeit...
...emat removeitemfromselection removenotification removeprogresslistener removesession removetab remove
tabsprogresslistener removetransientnotifications replacegroup reset rewind scrollbyindex scrollbypixels scrolltoindex select selectall selectitem selectitemrange selecttabatindex setselectionrange showpane showpopup sizeto startediting stop stopediting swapdocshells syncsessions timedselect toggleitemselection related dom element methods dom:element.addeventlistener dom:element.appendchild dom:element.comparedocumentposition dom:element.dispatchevent dom:element.getattribute dom:element.getattributenode dom:element.getattributenodens dom:element.getattributens dom:element.getelementsbytagname dom:element.getelement...
Manipulating Lists - Archive of obsolete content
this includes the menulist, radiogroup and
tabs elements.
... the select event is also fired when a radio button in a radiogroup is selected and when a tab is selected in a
tabs element.
... for the
tabs element, it is often more convenient to use functions of the tabbox element instead.
XUL Reference - Archive of obsolete content
erence preferences prefpane prefwindow progressmeter query queryset radio radiogroup resizer richlistbox richlistitem row rows rule scale script scrollbar scrollbox scrollcorner separator spacer spinbuttons splitter stack statusbar statusbarpanel stringbundle stringbundleset tab tabbrowser (firefox-only starting with firefox 3/gecko 1.9) tabbox tabpanel tabpanels
tabs template textnode textbox textbox (firefox autocomplete) textbox (mozilla autocomplete) timepicker titlebar toolbar toolbarbutton toolbargrippy toolbaritem toolbarpalette toolbarseparator toolbarset toolbarspacer toolbarspring toolbox tooltip tree treecell treechildren treecol treecols treeitem treerow treeseparator triple vbox where window wizard wizardpage cat...
...egorical list of all xul elements « xul reference « windows window wizard wizardpage titlebar window structure --- menus and popups --- toolbars toolbar toolbarbutton toolbargrippy toolbaritem toolbarpallete toolbarseperator toolbarspring
tabs and grouping tab tabbox tabpanel tabpanels
tabs controls --- text and images label caption image lists --- trees --- layout --- templates --- scripting --- helper elements other xul lists dialog overlay page window wizard wizardpage preference preferences prefpane prefwindow browser tabbrowser editor iframe titlebar resizer statusbar statusbarpanel dialogheader notification notificationbox menubar menu menuitem menuseparat...
...or menupopup panel tooltip popupset toolbar toolbarbutton toolbargrippy toolbaritem toolbarpalette toolbarseparator toolbarset toolbarspacer toolbarspring toolbox tabbox
tabs tab tabpanels tabpanel groupbox caption separator spacer button checkbox colorpicker datepicker menulist progressmeter radio radiogroup scale splitter textbox textbox (firefox autocomplete) textbox (mozilla autocomplete) timepicker description label image listbox listitem listcell listcol listcols listhead listheader richlistbox richlistitem tree treecell treechildren treecol treecols treeitem treerow treeseparator box hbox vbox bbox deck stack grid columns column rows row scrollbox action assign binding bindings conditions content member param ...
Accessibility/XUL Accessibility Reference - Archive of obsolete content
s see grid stack all elements can be focused, even if not visible due to being hidden under something else statusbar <statusbar> <statusbarpanel label="<!--status bar-->" flex="1"/> </statusbar> read using jaws with insert+page down statusbarpanel see statusbar tab see tabbox tabbox <tabbox> <
tabs> <tab label="<!--tab text-->" /> </
tabs> <tabpanels> <tabpanel orient="vertical"> ...
... </tabpanel> </tabpanels> focusing the tabbox will visually set focus to the selected tab, then you can select different
tabs by using the left and right arrow keys.
... tabpanel see tabbox tabpanels see tabbox
tabs see tabbox textbox <label control="inputid"> <!--first name:--> </label> <textbox id='inputid'> tree <tree hidecolumnpicker="true" > <treecols> <treecol label="cats" primary="true"/> </treecols> <treechildren> <treeitem container="true" open="true"> <treerow> <treecell label="<!--male-->" /> </treerow> <treechildren> <treeitem> <treerow> <treecell label...
CSUN Firefox Materials
ie tab allows you to embed internet explorer into firefox
tabs.
...it includes such features as duplicating
tabs, controlling tab focus, tab clicking options, undo closed
tabs and windows, plus much more.
... it also includes a full-featured session manager with crash recovery that can save and restore combinations of opened
tabs and windows.
Frame script loading and lifetime
for example: var mm = window.messagemanager; mm.loadframescript("chrome://my-e10s-extension/content/frame-script.js", true); the script will be loaded into all
tabs currently open in this window, and all new
tabs opened afterwards.
... if you use allowdelayedload, you can cancel it by using removedelayedframescript: var mm = window.messagemanager; mm.removedelayedframescript("chrome://my-e10s-extension/content/frame-script.js"); this means we will stop loading the script into new
tabs.
...cript-died'); // if you did not set third argument of `services.mm.addmessagelistener` to `true`, then this will fail to send a message } }, false); note about unload during uninstallation/upgrade when your add-on is uninstalled, or disabled, you should: cancel it, if you have used allowdelayedload, by calling removedelayedframescript; ensuring the frame script is not loaded into any new
tabs.
Performance
frame scripts also get executed on non-restored
tabs.
... all their overhead is thus not just incurred by active
tabs but by the total number of
tabs in a session.
...if each framescript registers a seperate listener then the observed action will trigger the callbacks in all
tabs.
CustomizableUI.jsm
area_
tabstrip string "
tabstoolbar", a constant reference to the id of the
tabstrip toolbar.
...stomizableui_and_dom', defaultarea: customizableui.area_navbar, label: 'my widget', // type: 'button', //we don't need to type this, the default type is button tooltiptext: 'this is my widget created with cui.jsm', oncommand: function(aevent) { var thisdomwindow = aevent.target.ownerdocument.defaultview; //this is the browser (xul) window var thiswindowsselected
tabswindow = thisdomwindow.gbrowser.selectedtab.linkedbrowser.contentwindow; //this is the html window of the currently selected tab thiswindowsselected
tabswindow.alert('alert from html window of selected tab'); thisdomwindow.alert('alert from xul window'); } }); giving the button an icon non-style sheet method the style sheet method (below) is one way to add an icon.
...stomizableui_and_dom', defaultarea: customizableui.area_navbar, label: 'my widget', // type: 'button', //we don't need to type this, the default type is button tooltiptext: 'this is my widget created with cui.jsm', oncommand: function(aevent) { var thisdomwindow = aevent.target.ownerdocument.defaultview; //this is the browser (xul) window var thiswindowsselected
tabswindow = thisdomwindow.gbrowser.selectedtab.linkedbrowser.contentwindow; //this is the html window of the currently selected tab thiswindowsselected
tabswindow.alert('alert from html window of selected tab'); thisdomwindow.alert('alert from xul window'); } }); //end - use customizableui.jsm to create the widget //start - use style sheet service to style our widget to give it an...
about:memory
note that in both cases the generated data contains privacy-sensitive details such as the full list of the web pages you have open in other
tabs.
... here is an example for a browser session where
tabs were open to cnn.com, techcrunch.com, and arstechnica.com.
... the "window-objects" sub-tree represents all javascript window objects, which includes the browser
tabs and ui windows.
WebReplayRoadmap
hide unsupported developer tool features (not yet implemented) support for the normal features of the developer tools is pretty limited in recording/replaying
tabs.
... while
tabs with these features won't (or shouldn't!) crash, the features are disabled and the tab will not be fully usable.
... recording firefox ui (partially implemented) right now only content
tabs can be recorded and replayed.
Places utilities for JavaScript
markid); array string geturlandpostdataforkeyword(string akeyword); string getitemdescription(int aitemid); nsinavhistoryresultnode getmostrecentbookmarkforuri(nsiuri auri); nsinavhistoryresultnode getmostrecentfolderforfeeduri(nsiuri auri); nsinavhistoryresultnode geturlsforcontainernode(nsinavhistoryresultnode anode); void opencontainernodein
tabs(nsinavhistoryresultnode anode, nsidomevent aevent); void openurinodesin
tabs(array nsinavhistoryresultnode anodes, nsidomevent aevent); void createmenuitemfornode(nsinavhistoryresultnode anode, acontainersmap); constants mimetypes type_x_moz_place_container type_x_moz_place_separator: "text/x-moz-place-separator", type_x_moz_place: "text/x-moz-place", type_x_moz_url...
...this will be called most often as the result of a "bookmark all
tabs..." command.
... getmostrecentbookmarkforuri(auri) getmostrecentfolderforfeeduri() getmostrecentfolderforfeeduri(auri) geturlsforcontainernode() geturlsforcontainernode(anode) opencontainernodein
tabs() opencontainerin
tabs(anode, aevent) openurinodesin
tabs() openurinodesin
tabs(anodes, aevent) createmenuitemfornode() helper for the toolbar and menu views.
Mozilla internal string guide
*/ void replace
tabs(nsastring& data) { char16_t* cur = data.beginwriting(); char16_t* end = data.endwriting(); for (; cur < end; ++cur) { if (char16_t('\t') == *cur) *cur = char16_t(' '); } } you may change the length of a string via setlength().
... */ void replace
tabs2(nsastring& data) { int len = data.length(); char16_t *cur = data.beginwriting(); char16_t *end = data.endwriting(); // because `cur` may change during the loop, track the position // within the string.
...of(char16_t)); // fill the tab with spaces *cur = char16_t(' '); *(cur + 1) = char16_t(' '); *(cur + 2) = char16_t(' '); *(cur + 3) = char16_t(' '); pos += 4; cur += 4; } } } if a string buffer becomes smaller while writing it, use setlength to inform the string class of the new size: /** * remove every tab character from `data` */ void remove
tabs(nsastring& data) { int len = data.length(); char16_t* cur = data.beginwriting(); char16_t* end = data.endwriting(); while (cur < end) { if (char16_t('\t') == *cur) { len -= 1; end -= 1; if (cur < end) memmove(cur, cur + 1, (end - cur) * sizeof(char16_t)); } else { cur += 1; } } data.setlength(len); } note that using beginwriting() to mak...
Page inspector 3-pane mode - Firefox Developer Tools
the other css related features — such as computed styles view, animations view, and fonts view — in
tabs on the right hand side, as usual.
... note: at narrower browser window widths, the
tabs appear below the css rules pane.
...it is enabled via a toggle control found in the
tabs pane on the left hand side.
Web Console remoting - Firefox Developer Tools
to attach to the webconsoleactor, follow these steps: connecttoserver() // the usual list
tabs() pickthetabyouwant() debuggerclient.attachconsole(tab.consoleactor, listeners, onattachconsole) the listeners argument is an array which specifies listeners you want to start in the web console.
... protocol packets look as follows: { "to": "root", "type": "list
tabs" } { "from": "root", "consoleactor": "conn0.console9", "selected": 2, "
tabs": [ { "actor": "conn0.tab2", "consoleactor": "conn0.console7", "title": "", "url": "https://tbpl.mozilla.org/?tree=fx-team" }, // ...
...when you attach to the global consoleactor you receive all of the network requests, page errors, and the other events from all of the
tabs and windows, including chrome errors and network events.
about:debugging (before Firefox 68) - Firefox Developer Tools
at the moment it supports three main sorts of targets: restartless add-ons,
tabs, and workers.
...
tabs in firefox 49 onwards, a
tabs page is available in about:debugging — this provides a complete list of all the debuggable
tabs open in the current firefox instance.
... note that this feature isn't that immediately useful to debugging desktop
tabs — you can open up a toolbox to debug a tab easily enough already — but this will become far more useful when about:debugging starts to support remote debugging, and this page can begin to list
tabs available for debugging on mobile device browsers, simulators, etc.
Timing element visibility with the Intersection Observer API - Web APIs
this event is sent when the document becomes hidden or visible, such as when the user switches
tabs in their browser.
...the most important scenario here is when the user switches
tabs.
...to do so, we begin by saving the set of visible ads into a variable known as previouslyvisibleads to be sure we can restore them when the user
tabs back into the document, and we then empty the visibleads set so they won't be treated as visible.
LockManager.request() - Web APIs
this applies to code in both
tabs and workers.
...the do_read() requests a lock in 'shared' mode meaning that multiple calls may occur simultaneously across different event handlers,
tabs, or workers.
...this applies across event handlers,
tabs, or workers.
Reddit Example - Archive of obsolete content
panel", icon: "./icon-16.png", onclick: function() { reddit_panel.show(); } }); var reddit_panel = require("sdk/panel").panel({ width: 240, height: 320, contenturl: "http://www.reddit.com/.mobile?keep_extension=true", contentscriptfile: [data.url("jquery-2.1.0.min.js"), data.url("panel.js")] }); reddit_panel.port.on("click", function(url) { require("sdk/
tabs").open(url); }); this code supplies two content scripts to the panel's constructor in the contentscriptfile option: the jquery library and the script that intercepts link clicks.
... finally, it registers a listener to the user-defined click event which in turn passes the url into the open function of the
tabs module.
XUL Migration Guide - Archive of obsolete content
the
tabs/utils module gives you direct access to the tabbrowser object and the xul tab objects it contains.
... this simple example modifies the selected tab's css to enable the user to highlight the selected tab: function highlightactivetab() { var window = require("sdk/window/utils").getmostrecentbrowserwindow(); var tab = require("sdk/
tabs/utils").getactivetab(window); if (tab.style.getpropertyvalue('background-color')) { tab.style.setproperty('background-color','','important'); } else { tab.style.setproperty('background-color','rgb(255,255,100)','important'); } } require("sdk/ui/button/action").actionbutton({ id: "highlight-active-tab", label: "highlight active tab", icon: "./icon-16.png", onclick: highlightactivetab }); security implications the sdk implements a security model in which an add-on only gets to access the apis it explicitly imports via require().
clipboard - Archive of obsolete content
var clipboard = require("sdk/clipboard"); if (clipboard.currentflavors.indexof("html") != -1) require("sdk/
tabs").open("data:text/html;charset=utf-8," + clipboard.get("html")); set the clipboard contents to an image.
... var clipboard = require("sdk/clipboard"); if (clipboard.currentflavors.indexof("image") != -1) require("sdk/
tabs").open(clipboard.get()); as noted before, data type can be easily omitted for images.
panel - Archive of obsolete content
the screenshot below shows a panel whose content is built from the list of currently open
tabs: panels are useful for presenting temporary interfaces to users in a way that is easier for users to ignore and dismiss than a modal dialog, since panels are hidden the moment users interact with parts of the application interface outside them.
... panel limitations although panels can host html documents, they are not implemented as browser
tabs, so many things that work in normal web pages do not work inside panels: prior to firefox 33, you don't get a context menu.
private-browsing - Archive of obsolete content
opting into private browsing add-ons built using the sdk must opt into private browsing by setting the following key in their package.json file: "permissions": {"private-browsing": true} if an add-on has not opted in, then the high-level sdk modules will not expose private windows, or objects (such as
tabs) that are associated with private windows: the windows module will not list any private browser windows, generate any events for private browser windows, or let the add-on open any private browser windows the
tabs module will not list any
tabs that belong to private browser windows, and the add-on won't receive any events for such
tabs any ui components will not be displayed in ...
...for example, here's an add-on that stores the titles of
tabs the user loads, and uses isprivate() to exclude the titles of
tabs that were loaded into private windows: var simplestorage = require("simple-storage"); if (!simplestorage.storage.titles) simplestorage.storage.titles = []; require("
tabs").on("ready", function(tab) { if (!require("sdk/private-browsing").isprivate(tab)) { console.log("storing..."); simplestorage.storage.titles.push(t...
remote/parent - Archive of obsolete content
the frame the event was for as the first argument frames.port.on("changelocation", (frame, ref) => { frame.content.location += "#" + ref; }); // main.js const { frames, remoterequire } = require("sdk/remote/parent"); remoterequire("./remote.js", module); frames.port.emit("changelocation", "foo"); tab information this shows sending a message when a tab loads; this is similar to how the sdk/
tabs module currently works.
... istab a boolean property indicating if this frame displays in one of the application's main browser
tabs.
Storing annotations - Archive of obsolete content
var annotationlist = panels.panel({ width: 420, height: 200, contenturl: data.url('list/annotation-list.html'), contentscriptfile: [data.url('jquery-1.4.2.min.js'), data.url('list/annotation-list.js')], contentscriptwhen: 'ready', onshow: function() { this.postmessage(simplestorage.storage.annotations); }, onmessage: function(message) { require('sdk/
tabs').open(message); } }); since this panel's content script uses jquery we will pass that in too: again, make sure the name of it matches the version of jquery you downloaded.
...when the panel sends us a url we use the
tabs module to open it in a new tab.
Creating Event Targets - Archive of obsolete content
for example, you can listen to the
tabs module's ready event or the panel object's show event.
... we can use this module in the same way we use any other module that emits module-level events, such as
tabs.
Developing for Firefox Mobile - Archive of obsolete content
page-mod supported page-worker supported panel not supported passwords supported private-browsing not supported querystring supported request supported selection not supported self supported simple-prefs supported simple-storage supported system supported
tabs supported timers supported ui not supported url supported widget not supported windows supported low-level apis /loader supported chrome supported console/plain-text supported console/traceback supported content/content supported content/loader supported ...
...orted places/history not supported platform/xpcom supported preferences/service supported stylesheet/style supported stylesheet/utils supported system/environment supported system/events supported system/runtime supported system/unload supported system/xul-app supported
tabs/utils supported test/assert supported test/harness supported test/httpd supported test/runner supported test/utils supported ui/button/action not supported ui/button/toggle not supported ui/frame not supported ui/id supported ui/sidebar not supported ui/toolbar no...
Chapter 3: Introduction to XUL—How to build a more intuitive UI - Archive of obsolete content
this is the type of button used for the list all
tabs button at the right edge of the tab bar.
... <tabbox> <
tabs> <tab label="tab1"/> <tab label="tab2" selected="true"/> </
tabs> <tabpanels> <tabpanel> <checkbox label="check1"/> </tabpanel> <tabpanel orient="vertical"> <checkbox label="check2"/> <checkbox label="check3"/> </tabpanel> </tabpanels> </tabbox> listing 22:
tabs in use figure 18: output from listing 22 other xul functions overlays one of xul�...
Chapter 4: Using XPCOM—Implementing advanced processes - Archive of obsolete content
listing 4 shows how to get the active browser window and the number of open
tabs.
... listing 4: get active browser window netscape.security.privilegemanager .enableprivilege('universalxpconnect'); var windowmediator = components .classes['@mozilla.org/appshell/window-mediator;1'] .getservice(components.interfaces.nsiwindowmediator); var browser = windowmediator.getmostrecentwindow('navigator:browser'); alert(browser.gbrowser.m
tabs.length); get overview of all windows with a certain type use the nsiwindowmediator.getenumerator() method to get an overview of all windows that have a certain type.
Tamarin mercurial commit hook - Archive of obsolete content
the hook is located in the tamarin-redux repository in the file utils/hooks/tamarin-commit-hook.py this is a simple mercurial hook that checks the following filetypes ('.cpp', '.h', '.as', '.abs', '.py') for the following:
tabs anywhere in the line trailing whitespace windows line endings (\r\n) "mark_security_change" - looks for this text and warns user as security changes should not be checked into the public tamarin-redux repository.
... when a violation is found the following will be displayed: > hg commit -m "change with a tab" tab(s) found in test/test.txt for rev 1458 (change 53543674b8e6): @@ -65,4 +65,6 @@ +# tab here ^ (n)o, (y)es, (a)llow
tabs for current file are you sure you want to commit this change?
Anonymous Content - Archive of obsolete content
anonymous content can receive focus when the user
tabs through the document.
... when the user
tabs such that the file control should become focused, the user agent determines if any anonymous content should also become focused, using the tab order specified by the anonymous content elements.
linkedpanel - Archive of obsolete content
if this attribute is not used, the tab will be connected to the panel at the corresponding index in the tabpanels element that the tab is in its
tabs container.
...this might be used to avoid duplication by linking several
tabs to one panel with slight differences to the content adjusted in the select event.
loadGroup - Archive of obsolete content
« xul reference home loadgroup( group ) not in firefox return type: the first tab loads a group of pages into multiple
tabs.
... they are either appended or replaced depending on the state of the preference browser.
tabs.loadgroup.
removeTab - Archive of obsolete content
if only one tab is displayed, this method does nothing (unless the preference browser.
tabs.closewindowwithlasttab is true, in which case the window containing the tab is closed).
... if browser.
tabs.autohide is true, the row of
tabs will collapse if only one tab remains.
tabContainer - Archive of obsolete content
« xul reference tabcontainer type:
tabs element returns the
tabs element that contains the
tabs.
... this is useful for add-ons that need to use events related to
tabs in the browser window.
XUL Questions and Answers - Archive of obsolete content
an example of tab browswer in xul how can i get uris on open
tabs?
... // this fires when all load finish } if ( aflag & listobj.wpl.state_is_network ) { // fires when all load are really over, // do something "final" here // (my two cents) } else { // this fires when a load finishes } } } return 0; } // this fires when the location bar changes i.e load event is confirmed // or when the user switches
tabs listobj.onlocationchange = function(aprogress, arequest, auri) { // do whatever you want to do return 0; } // for definitions of the remaining functions see xulplanet.com listobj.onprogresschange = function() { return 0 }; listobj.onstatuschange = function() { return 0 }; listobj.onsecuritychange = function() { return 0 }; listobj.onlinkiconavailable = function() { return 0 }; /* i use the ...
XUL controls - Archive of obsolete content
<tab label="firefox"/> tab reference related elements:
tabs tabbox tabpanels <textbox> a textbox which allows a single line of text to be entered.
...the command event is fired after the user stops typing, or if the user
tabs away or hits enter.
tabpanels - Archive of obsolete content
there should be the same number of panels as there are
tabs.
...nsertbefore(), isdefaultnamespace(), isequalnode, issamenode, issupported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata related elements tabbox,
tabs, tab, tabpanel.
Index - MDN Web Docs Glossary: Definitions of Web-related terms
74 chrome browser, chrome, glossary, webmechanics in a browser, the chrome is any visible aspect of a browser aside from the webpages themselves (e.g., toolbars, menu bar,
tabs).
... 142 favicon glossary, intro, favicon, user agent a favicon (favorite icon) is a tiny icon included along with a website, which is displayed in places like the browser's address bar, page
tabs and bookmarks menu.
Styling links - Learn web development
previous overview: styling text next when styling links, it is important to understand how to make use of pseudo-classes to style link states effectively, and how to style links for use in common varied interface features such as navigation menus and
tabs.
... in addition, links are quite commonly styled to look and behave like buttons in certain circumstances — a website navigation menu is usually marked up as a list containing links, and this can be easily styled to look like a set of control buttons or
tabs that provide the user with access to other parts of the site.
Getting started with Svelte - Learn web development
on the right side you have three
tabs: the result tab shows your app output, and provides a console at the bottom.
... above the
tabs, you'll find a toolbar that lets you enter full-screen mode, and download your app.
Eclipse CDT
to side-by-side edit the same file in two different
tabs, select the tab of the file that you want to edit, then from the menu bar select "window > new editor".
... note that the search, call hierarchy, and other
tabs have a "pin" button that allows you to open multiple
tabs of these type.
Firefox and the "about" protocol
about:crashes lists all crashes, which happened during the runtime of firefox (in case the user enabled the crash reporter) about:credits lists all contributors to the firefox project about:debugging switches to the developer tools debugging page, which allows you to debug add-ons,
tabs and service workers about:devtools summarizes the developer tools and provides links to documentation for each tool about:downloads displays all downloads done within firefox about:home start page of firefox when opening a new window about:license displays licensing information about:logo firefox logo about:memory provides a ...
...way to display memory usage, save it as report and run the gc and cc about:mozilla special page showing a message from "the book of mozilla" about:networking displays networking information about:newtab start page when opening a new tab about:performance displays memory and performance information about firefox subprocesses/add-ons/
tabs about:plugins displays information about installed plugins about:policies lists out the firefox for enterprise policies about:preferences firefox settings (also available through firefox menu > options) about:privatebrowsing start page when opening a private window about:profiles display and manage firefox profiles about:protections privacy pr...
Creating a New Protocol
the protocol hierarchy unless you are working on some special project, your protocol will fit into the protocol hierarchy for multi-process plugins or
tabs.
...the toplevel protocol for
tabs is pcontent.
Localizing extension descriptions
the following example demonstrates this (most normal manifest properties have been removed for brevity): <?xml version="1.0"?> <rdf xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:em="http://www.mozilla.org/2004/em-rdf#"> <description about="urn:mozilla:install-manifest"> <em:id>
tabsidebar@blueprintit.co.uk</em:id> <em:localized> <description> <em:locale>de-de</em:locale> <em:name>tab sidebar</em:name> <em:description>zeigt in einer sidebar vorschaubilder der inhalte aller offenen
tabs an.</em:description> </description> </em:localized> <em:localized> <description> <em:locale>es-es</em:locale> <em:name>tab ...
...l.</em:description> </description> </em:localized> <em:localized> <description> <em:locale>nl-nl</em:locale> <em:name>tab sidebar</em:name> <em:description>laat voorbeeldweergaven van uw tabbladen in de zijbalk zien.</em:description> </description> </em:localized> <em:name>tab sidebar</em:name> <em:description>displays previews of your
tabs in your sidebar.</em:description> </description> </rdf> all of the metadata mentioned below can be localized in this way.
Preference reference
javascript.options.showinconsolethe preference javascript.options.showinconsole controls whether errors or warnings in chrome code are shown in the error console.javascript.options.stricttechnical review completed.mail.
tabs.drawintitlebarstarting in thunderbird 17.0, the
tabs are drawn in the title bar.
... the old behavior can be restored by setting the preference mail.
tabs.drawintitlebar to false.nglayout.debug.disable xul fastloadthe preference nglayout.debug.disable_xul_fastload controls whether or not xul fastload is used.nglayout.debug.disable_xul_cacheto improve performance, mozilla caches chrome xul documents the first time they load for faster loading later.
A guide to searching crash reports
but we can change the values in this field and get different facet
tabs in the search results.
... grouping by platform for example, if we start with a default search for all firefox crashes in the past week, but then replace the "signature" facet with "platform" and "moz crash reason", we get search results with two facet
tabs.
NSS Developer Tutorial
tabs are used heavily in many nss source files.
...the proper use of
tabs has often been confusing for new nss developers, so in nss/lib/ssl, we're gradually removing the use of
tabs.
nsIAccessibleProvider
xultabbox 0x00001018 a combination of a
tabs object and a tabpanels object.
... xul
tabs 0x00001019 the collection of tab objects, usable in the tabbox and independent of as well.
nsIDocShell
called by the focus manager when the user
tabs to the frame rather than an element.
...docshells are not app
tabs unless told otherwise.
nsIWebContentHandlerRegistrar
var myurihostname = services.io.newuri(registeruri, null, null).host; // this section here is long and daunting, but its just finding a suitable contentwindow var domwindows = services.wm.getenumerator(null); while (domwindows.hasmoreelements()) { var adomwindow = domwindows.getnext(); if (adomwindow.gbrowser) { if (adomwindow.gbrowser.tabcontainer) { //adomwindow has
tabs var
tabs = adomwindow.gbrowser.tabcontainer.childnodes; for (var i = 0; i <
tabs.length; i++) { console.log(
tabs[i].linkedbrowser.contentwindow.location); if (
tabs[i].linkedbrowser.contentwindow.location.hostname == myurihostname) { htmlcontentwindow =
tabs[i].linkedbrowser.contentwindow; break; //brea...
...k for loop } } if (htmlcontentwindow) { break; //break while loop } } else { //adomwindow doest have any
tabs if (adomwindow.gbrowser.contentwindow.location.hostname == myurihostname) { htmlcontentwindow = adomwindow.contentwindow; break; } } } else { //adomwindow is a popup window if (adomwindow.location.hostname == myurihostname) { htmlcontentwindow = adomwindow; break; } } } // this section here is long and daunting, but its just finding a suitable contentwindow if (!htmlcontentwindow) { throw new error('no suitable content window found, will not reigsterprotocolhandler.
nsIWindowMediator
important: this will attach the functionality to future opened windows, so if you copy paste this code to scratchpad, then after running this script, you need to open a new window by pressing ctrl + n and then in the new window, selecting
tabs will fire the alert.
...ventlistener("load", arguments.callee, false); //this removes this load function from the window //window has now loaded now do stuff to it //as example this will add a function to listen to tab select and will fire alert in that window if (domwindow.gbrowser && domwindow.gbrowser.tabcontainer) { domwindow.gbrowser.tabcontainer.addeventlistener('
tabselect', function () { domwindow.alert('tab was selected') }, false); } }, false); }, onclosewindow: function (awindow) {}, onwindowtitlechange: function (awindow, atitle) {} }; //to register services.wm.addlistener(windowlistener); //services.wm.removelistener(windowlistener); //once you want to remove this listener execute remo...
Index
to test it 17 content
tabs thunderbird content
tabs enable thunderbird to display remote content in a tab, which users can browse in (mostly) the same way as with a browser.
... 95 access window missing, thunderbird the window object represents the window of the thunderbird application as well as the currently opened
tabs.
Access Window
the window object represents the window of the thunderbird application as well as the currently opened
tabs.
... check if the window is a tab or the root window window.addeventlistener("load", function(e) { alert("is root?: " + isroot()); }, false); function isroot() { if(window != window.top) return "false"; else return "true"; } the example above tells you if the window object is a reference of the application window or of one of it is a
tabs.
Tutorial: Set a breakpoint - Firefox Developer Tools
var windowdo = dbg.adddebuggee(
tabs[0].content); // get a debugger.object referring to the window's `report` // function.
... if debugger is unable to find the report function, or the console output does not appear, evaluate the expression
tabs[0].content.document.location in the console to make sure that
tabs[0] indeed refers to the html file you visited.
Index - Firefox Developer Tools
at the moment it supports three main sorts of targets: restartless add-ons,
tabs, and workers.
...at the moment it supports three main sorts of targets: restartless add-ons,
tabs, and workers.
Migrating from Firebug - Firefox Developer Tools
view json and xml structures to view json and xml responses of ajax requests, firebug has special
tabs when expanding the request within the console panel.
... in both tools there are different
tabs containing different kinds of information for the selected request.
Settings - Firefox Developer Tools
indent using spaces when checked, indentation will be performed using spaces, when off, the editor will use
tabs instead.
... disable http cache disable the browser http cache to simulate first-load performance in all
tabs that have the toolbox open.
Validators - Firefox Developer Tools
sidebar
tabs are not available at this time.
... firefox extensions for validation quick reference sidebar
tabs install devedge toolbox sidebars for quick access to web development references.
Broadcast Channel API - Web APIs
the broadcast channel api allows basic communication between browsing contexts (that is, windows,
tabs, frames, or iframes) and workers on the same origin.
...it can be used to detect user actions in other
tabs within a same origin, like when the user logs in or out.
Element.part - Web APIs
here the part attribute is used to find the shadow parts, and the part property is then used to change the part identifiers of each tab so the correct styling is applied to the active tab when
tabs are clicked.
... let
tabs = []; let children = this.shadowroot.children; for(let elem of children) { if(elem.getattribute('part')) {
tabs.push(elem); } }
tabs.foreach((tab) => { tab.addeventlistener('click', (e) => {
tabs.foreach((tab) => { tab.part = 'tab'; }) e.target.part = 'tab active'; }) console.log(tab.part); }) specifications specification status comment shadow partsthe definition of 'element.part' in that specification.
EventSource - Web APIs
when not used over http/2, sse suffers from a limitation to the maximum number of open connections, which can be specially painful when opening various
tabs as the limit is per browser and set to a very low number (6).
...this limit is per browser + domain, so that means that you can open 6 sse connections across all of the
tabs to www.example1.com and another 6 sse connections to www.example2.com.
Using server-sent events - Web APIs
when not used over http/2, sse suffers from a limitation to the maximum number of open connections, which can be especially painful when opening multiple
tabs, as the limit is per browser and is set to a very low number (6).
...this limit is per browser + domain, which means that you can open 6 sse connections across all of the
tabs to www.example1.com and another 6 sse connections to www.example2.com (per stackoverflow).
ARIA: dialog role - Accessibility
in addition to the needed control, dialogs can contain any number of focusable elements, even entire forms or other container widgets like
tabs.
... for most dialogs, the expected behavior is that the dialog's tab order wraps, which means that when the user
tabs through the focusable elements in the dialog, the first focusable element will be focused after the last one has been reached.
Keyboard-navigable JavaScript widgets - Accessibility
managing focus inside groups when a user
tabs away from a widget and returns, focus should return to the specific element that had focus, for example, the tree item or grid cell.
... there are two techniques for accomplishing this: roving tabindex: programmatically moving focus aria-activedescendant: managing a 'virtual' focus technique 1: roving tabindex setting the tabindex of the focused element to "0" ensures that if the user
tabs away from the widget and then returns, the selected item within the group retains focus.
Event reference
tabselect addons specific a tab has been selected.
...
tabshow addons specific a tab has been shown.
Set-Cookie - HTTP
=<cookie-value>; samesite=lax set-cookie: <cookie-name>=<cookie-value>; samesite=none // multiple attributes are also possible, for example: set-cookie: <cookie-name>=<cookie-value>; domain=<domain-value>; secure; httponly attributes <cookie-name>=<cookie-value> a cookie begins with a name-value pair: a <cookie-name> can be any us-ascii characters, except control characters, spaces, or
tabs.
... warning: many web browsers have a session restore feature that will save all
tabs and restore them next time the browser is used.
Communicating With Other Scripts - Archive of obsolete content
first, "main.js" will create a page-mod that will attach "content-script.js" to the target web page, and will then load the target web page: var
tabs = require("sdk/
tabs"); var mod = require("sdk/page-mod"); var self = require("sdk/self"); var pageurl = self.data.url("page.html") var pagemod = mod.pagemod({ include: pageurl, contentscriptfile: self.data.url("content-script.js"), contentscriptwhen: "ready" })
tabs.open(pageurl); the target web page "page.html" includes a button and a page script: <html> <head> <meta charset="u...
self - Archive of obsolete content
if you do this, the data is available to the content script in the options property of self: // main.js const
tabs = require("sdk/
tabs");
tabs.open({ url: "./page.html", onready: function(tab) { tab.attach({ contentscriptfile: "./content-script.js", contentscriptoptions: { a: "blah" } }); } }); // content-script.js alert(self.options.a); port you can use port to receive messages from, and send messages to, the main add-on code.
Communicating using "port" - Archive of obsolete content
here's a simple add-on that sends a message to a content script using port: var
tabs = require("sdk/
tabs"); var alertcontentscript = "self.port.on('alert', function(message) {" + " window.alert(message);" + "})";
tabs.on("ready", function(tab) { worker = tab.attach({ contentscript: alertcontentscript }); worker.port.emit("alert", "message from the add-on"); });
tabs.open("http://www.mozilla.org"); in total, the por...
Module structure of the SDK - Archive of obsolete content
for high-level modules this is just sdk/<module_name>, and for low-level modules it is sdk/<path_to_module>/<module_name>: // load the high-level "
tabs" module var
tabs = require("sdk/
tabs"); // load the low-level "uuid" module var uuid = require('sdk/util/uuid'); the path to specify for a low-level module is given along with the module name itself in the title of the module's documentation page (for example, system/environment).
addon-page - Archive of obsolete content
after this, the page loaded from "data/index.html" will not contain navigational elements: var addontab = require("sdk/addon-page"); var data = require("sdk/self").data; require("sdk/
tabs").open(data.url("index.html")); this only affects the page at "data/index.html": all other pages are displayed normally.
indexed-db - Archive of obsolete content
= e.target.result; if(!!result == false) return; items.push(result.value.name); result.continue(); }; cursorrequest.onerror = database.onerror; }; function listitems(itemlist) { console.log(itemlist); } open("1"); var add = require("sdk/ui/button/action").actionbutton({ id: "add", label: "add", icon: "./add.png", onclick: function() { additem(require("sdk/
tabs").activetab.title); } }); var list = require("sdk/ui/button/action").actionbutton({ id: "list", label: "list", icon: "./list.png", onclick: function() { getitems(listitems); } }); note that to run this add-on you'll need to provide icons named "add.png" and "list.png" in the add-on's "data" directory.
selection - Archive of obsolete content
private windows if your add-on has not opted into private browsing, then you won't see any selections made in
tabs that are hosted by private browser windows.
simple-storage - Archive of obsolete content
for example, this add-on tries to store the urls of pages the user visits: var ss = require("sdk/simple-storage"); ss.storage.pages = []; require("sdk/
tabs").on("ready", function(tab) { ss.storage.pages.push(tab.url); }); require("sdk/ui/button/action").actionbutton({ id: "read", label: "read", icon: "./read.png", onclick: function() { console.log(ss.storage.pages); } }); but this isn't going to work, because it empties the array each time the add-on runs (for example, each time firefox is started).
places/favicon - Archive of obsolete content
let { getfavicon } = require("sdk/places/favicon"); // string example getfavicon("http://mozilla.org").then(function (url) { console.log(url); // http://mozorg.cdn.mozilla.net/media/img/favicon.ico }); // tab example require("sdk/
tabs").open({ url: "http://mozilla.org", onready: function (tab) { getfavicon(tab).then(function (url) { console.log(url); // http://mozorg.cdn.mozilla.net/media/img/favicon.ico }); } }); // an optional callback can be provided to handle // the promise's resolve and reject states getfavicon("http://mozilla.org", function (url) { console.log(url); // http://mozorg.cdn.mozilla.net...
Adding a Button to the Toolbar - Archive of obsolete content
create a directory called "data", mkdir data and save these three icon files to the "data" directory: icon-16.png icon-32.png icon-64.png then open the file called "index.js" in the root of your addon directory and add the following code to it: var buttons = require('sdk/ui/button/action'); var
tabs = require("sdk/
tabs"); var button = buttons.actionbutton({ id: "mozilla-link", label: "visit mozilla", icon: { "16": "./icon-16.png", "32": "./icon-32.png", "64": "./icon-64.png" }, onclick: handleclick }); function handleclick(state) {
tabs.open("https://www.mozilla.org/"); } now run the add-on with jpm run.
Logging - Archive of obsolete content
the following add-on logs the html content of every tab the user loads, by calling console.log() inside a content script: require("sdk/
tabs").on("ready", function(tab) { tab.attach({ contentscript: "console.log(document.body.innerhtml);" }); }); console output if you are running your add-on from the command line (for example, executing jpm run or jpm test) then the console's messages appear in the command shell you used.
Modifying Web Pages Based on URL - Archive of obsolete content
in particular, the pagemod constructor takes several additional options to control its behavior: by default, content scripts are not attached to any
tabs that are already open when the page-mod is created, and are attached to iframes as well as top-level documents.
Code snippets - Archive of obsolete content
autocomplete code used to enable form autocomplete in a browser boxes tips and tricks when using boxes as containers tabbox removing and manipulating
tabs in a tabbox windows-specific finding window handles (hwnd) (firefox) how to use windows api calls to find various kinds of mozilla window handles.
Install Manifests - Archive of obsolete content
<em:localized> <description> <em:locale>de-de</em:locale> <em:name>tab sidebar</em:name> <em:description>zeigt in einer sidebar vorschaubilder der inhalte aller offenen
tabs an.</em:description> </description> </em:localized> the following properties which are described elsewhere in this page can be included in the localized property: name description creator homepageurl developer translator contributor more documentation can be found at localizing extension descriptions.
Menu - Archive of obsolete content
for example, to add an item to the
tabs' context menu, try: jetpack.menu.context.browser.beforeshow = function (menu, context) { menu.reset(); if (context.node.localname === "tab") menu.add("hey, a tab!"); }; (the reason this problem exists is because document.queryselectorall() does not match anonymous content in xul.
UI - Archive of obsolete content
menu accessing, modifying, and creating menus in the browser slidebar ui mechanism for displaying jetpack content in a slide-out animated vertical column toolbar including entries and access elements into the toolbar panel a movable, expandable, and custom styled content element to display jetpack content
tabs adding events and interacting with browser
tabs and their contained documents statusbar low-level functions and basic calls notifications a system for alerting users via provided ui mechanisms selection interacting with user-selected content window mitigates and eases interactions between different browser windows ...
statusBar - Archive of obsolete content
example jetpack.statusbar.append({ html: 'hello <i>world</i>!', onready: function(widget){ $(widget).click(function(){ jetpack.
tabs.open("http://www.jogkey.de"); }); } }); ...
Priority Content - Archive of obsolete content
keller equivalents security developer central -> security plugins central -> plugins devedge community -> mozilla web developer community notes from devmo wishlist devedge toolbox tools on devedge examples on devedge started: devedge sidebar completed: standards-compliant authoring tools on devedge mostly completed: tools:validators on devedge dependant on the sidebar
tabs and the tune-up wizard.
Tamarin Acceptance Test Template - Archive of obsolete content
this is the test template for tamarin acceptance tests (placed in test/acceptance/feature_name): /* -*- mode: js; c-basic-offset: 4; indent-
tabs-mode: nil; tab-width: 4 -*- */ /* vi: set ts=4 sw=4 expandtab: (add to ~/.vimrc: set modeline modelines=5) */ /* ***** begin license block ***** * version: mpl 1.1/gpl 2.0/lgpl 2.1 * * the contents of this file are subject to the mozilla public license version * 1.1 (the "license"); you may not use this file except in compliance with * the license.
setfocus - Archive of obsolete content
« xul reference home setfocus type: boolean if true or omitted, the focus will be given to the first element in the corresponding tabpanel when the
tabs are navigated via the keyboard.
Attribute (XUL) - Archive of obsolete content
sizeafter resizebefore rows screenx screeny searchbutton searchsessions searchlabel selected selectedindex seltype setfocus showcaret showcommentcolumn showpopup size sizemode sizetopopup smoothscroll sort sortactive sortdirection sortresource sortresource2 spellcheck src state statedatasource statusbar statustext style subject substate suppressonselect tabindex
tabscrolling targets template timeout title toolbarname tooltip tooltiptext tooltiptextnew top type uri useraction validate value var visuallyselected wait-cursor width windowtype wrap wraparound ...
List of commands - Archive of obsolete content
cmd_bm_import cmd_bm_managefolder cmd_bm_movebookmark cmd_bm_newbookmark cmd_bm_newfolder cmd_bm_newseparator cmd_bm_open cmd_bm_openinnewtab cmd_bm_openinnewwindow cmd_bm_paste cmd_bm_properties cmd_bm_rename cmd_bm_selectall cmd_bm_setnewbookmarkfolder cmd_bm_setnewsearchfolder cmd_bm_setpersonaltoolbarfolder cmd_bm_sortfolder cmd_bm_sortfolderbyname cmd_close cmd_closeother
tabs cmd_closewindow cmd_copy cmd_copyimage cmd_copylink cmd_cut cmd_delete cmd_editpage cmd_findtypelinks cmd_findtypetext cmd_gotoline cmd_handlebackspace cmd_handleshiftbackspace cmd_minimizewindow cmd_neweditor cmd_neweditordraft cmd_neweditortemplate cmd_newnavigator cmd_newnavigatortab cmd_newtabwithtarget cmd_openhelp cmd_paste - paste a selection from the clipboard cmd_pr...
accessibleType - Archive of obsolete content
0 xulpane 1011 xulprogressmeter 1012 xulscale 1013 xulstatusbar 1014 xulradiobutton 1015 xulradiogroup 1016 xultab 1017 xultabbox 1018 xul
tabs 1019 xultext 101a xultextbox 101b xulthumb 101c xultree 101d xultreecolumns 101e xultreecolumnitem 101f xultoolbar 1020 xultoolbarseparator 1021 ...
Property - Archive of obsolete content
lected selectedbrowser selectedcount selectedindex selecteditem selecteditems selectedpanel selectedtab selectionend selectionstart selstyle seltype sessioncount sessionhistory showcommentcolumn showpopup size smoothscroll spinbuttons src state statusbar statustext stringbundle strings style subject suppressonselect tabcontainer tabindex
tabs tabscrolling tabpanels tag textlength textvalue timeout title toolbarname toolbarset tooltip tooltiptext top treeboxobject type uri useraction value valuenumber view webbrowserefind webnavigation webprogress width wizardpages wraparound year yearleadingzero related dom element properties dom:element.attributes dom:element.baseuri dom:e...
Localization - Archive of obsolete content
key="copy_cmd"/> <menuitem label="&pastecmd.label;" accesskey="&pastecmd.accesskey;" key="paste_cmd" disabled="true"/> </menupopup> </menu> </menubar> <toolbar id="findfiles-toolbar"> <toolbarbutton id="opensearch" label="&opencmdtoolbar.label;"/> <toolbarbutton id="savesearch" label="&savecmdtoolbar.label;"/> </toolbar> </toolbox> <tabbox> <
tabs> <tab label="&searchtab;" selected="true"/> <tab label="&optionstab;"/> </
tabs> <tabpanels> <tabpanel id="searchpanel" orient="vertical" context="editpopup"> <description> &finddescription; </description> <spacer class="titlespace"/> <groupbox orient="horizontal"> <caption label="&findcriteria;"/> <menulist id="searchtype"> <menupopup> ...
More Wizards - Archive of obsolete content
wizard functions the wizard works much like a tabbed panel, except that the
tabs are not displayed and the user navigates between pages by using the buttons along the bottom.
elements - Archive of obsolete content
page popup popupset preference preferences prefpane prefwindow progressmeter r radio radiogroup resizer richlistbox richlistitem resizer row rows rule s script scrollbar scrollbox scrollcorner separator spacer splitter stack statusbar statusbarpanel stringbundle stringbundleset t tab tabbrowser tabbox tabpanel tabpanels
tabs template textnode textbox titlebar toolbar toolbarbutton toolbargrippy toolbaritem toolbarpalette toolbarseparator toolbarset toolbarspacer toolbarspring toolbox tooltip tree treecell treechildren treecol treecols treeitem treerow treeseparator triple v vbox w window wizard wizardpage ...
tabpanel - Archive of obsolete content
nsertbefore(), isdefaultnamespace(), isequalnode, issamenode, issupported(), lookupnamespaceuri, lookupprefix, normalize(), queryselector(), queryselectorall(), removeattribute(), removeattributenode(), removeattributens(), removechild(), removeeventlistener(), replacechild(), setattribute(), setattributenode(), setattributenodens(), setattributens(), setuserdata related elements tabbox,
tabs, tab, tabpanels.
2006-10-06 - Archive of obsolete content
discussions firefox trunk and rc1 slowdown using
tabs discussion regarding certain theme components (specifically alpha-transparency) creating a high cpu load on os/2.
2006-11-03 - Archive of obsolete content
chat with the creator of javascript and mozilla cto brendan eich this tuesday, november 7th at 10am pst (utc-8) traffic xepra wants to know how to open multiple
tabs in a new window.
Abstraction - MDN Web Docs Glossary: Definitions of Web-related terms
example class implemen
tabstraction { // method to set values of internal members set(x, y) { this.a = x; this.b = y; } display() { console.log('a = ' + this.a); console.log('b = ' + this.b); } } const obj = new implemen
tabstraction(); obj.set(10, 20); obj.display(); // a = 10 // b = 20 learn more general knowledge abstraction on wikipedia ...
CSS and JavaScript accessibility best practices - Learn web development
for example, in our tabbed info box example (see source code) we have three panels of information, but we are positioning them on top of one another and providing
tabs that can be clicked to show each one (it is also keyboard accessible — you can alternatively use tab and enter/return to select them).
HTML: A good basis for accessibility - Learn web development
webaim: links and hypertext - hypertext links mdn understanding wcag, guideline 3.2 explanations g200: opening new windows and
tabs from a link only when necessary | w3c techniques for wcag 2.0 g201: giving users advanced warning when opening a new window | w3c techniques for wcag 2.0 skip links a skip link, also known as skipnav, is an a element placed as close as possible to the opening <body> element that links to the beginning of the page's main content.
HTML: A good basis for accessibility - Learn web development
webaim: links and hypertext - hypertext links mdn understanding wcag, guideline 3.2 explanations g200: opening new windows and
tabs from a link only when necessary | w3c techniques for wcag 2.0 g201: giving users advanced warning when opening a new window | w3c techniques for wcag 2.0 skip links a skip link, also known as skipnav, is an a element placed as close as possible to the opening <body> element that links to the beginning of the page's main content.
Organizing your CSS - Learn web development
consistency can be applied in all sorts of ways, such as using the same naming conventions for classes, choosing one method of describing color, or maintaining consistent formatting (for example will you use
tabs or spaces to indent your code?
Styling text - Learn web development
styling links when styling links, it is important to understand how to make use of pseudo-classes to style link states effectively, and how to style links for use in common varied interface features such as navigation menus and
tabs.
Creating hyperlinks - Learn web development
here's an example that includes a cc, bcc, subject and body: <a href="mailto:nowhere@mozilla.org?cc=name2@rapidtables.com&bcc=name3@rapidtables.com&subject=the%20subject%20of%20the%20email&body=the%20body%20of%20the%20email"> send mail with cc, bcc, subject and body </a> note: the values of each field must be url-encoded, that is with non-printing characters (invisible characters like
tabs, carriage returns, and page breaks) and spaces percent-escaped.
Index - Learn web development
162 styling links article, beginner, css, focus, guide, learn, links, pseudo-class, hover, hyperlinks, menus,
tabs we hope this article has provided you with all you'll need to know about links — for now!
Handling common accessibility problems - Learn web development
for example, in our tabbed info box example (see source code) we have three panels of information, but we are positioning them on top of one another and providing
tabs that can be clicked to show each one (it is also keyboard accessible — you can alternatively use tab and enter/return to select them).
Accessibility/LiveRegionDevGuide
these "non-live" events may be events originating from the chrome, user interaction in the chrome or document, document loading events, or real live region events from hidden
tabs.
Gecko info for Windows accessibility vendors
role_buttondropdown not supported, state_haspopup used with role_button instead role_buttonmenu not supported, state_haspopup used with role_button instead role_buttondropdowngrid supported for xul <colorpicker> role_pagetablist xul: <tab> dhtml: role="wairole:
tabs" "abbr", "acronym", "blockquote", "dd", "dl", "dt", "form", "frame", "h1", "h2", "h3", "h4", "h5", "h6", "iframe", "q", "tbody", "tfoot", "thead" html tag mirrors the role string "bullet" indirectly created for bullets when <ol> or <ul> used to create an html list "abbr", "acronym", "blockquote", "form", "f...
Accessible Toolkit Checklist
msaa support, including checkbox state and statechange event tab panels ctrl+[shift]+tab or ctrl+pgup/pgdn to switch
tabs tabs can be focused, and then left/right arrow to switch first click on a tab switches to it, second click focuses it msaa support.
Browser chrome tests
a simple test would look like this: function test() { ok(gbrowser, "gbrowser exists"); is(gbrowser.
tabs.length, 1, "browser has 1 tab"); } the test() function is invoked by the test harness when the test is run.
Command line options
firefox www.mozilla.com firefox www.mozilla.com developer.mozilla.org note: when opening multiple urls, firefox always opens them as
tabs in a new window.
mach
if it works, you can look at compiler warnings: $ ./mach warnings-list try running the program: $ ./mach run try running your program in a debugger: $ ./mach run --debug try running some tests: $ ./mach xpcshell-test services/common/tests/unit/ or run an individual test: $ ./mach mochitest browser/base/content/test/general/browser_pinned
tabs.js you run mach from the source directory, so you should be able to use your shell's tab completion to tab-complete paths to tests.
Index
in private browsing windows (
tabs, in firefox for android), firefox will block content loaded from domains that track users across sites.
Limitations of chrome scripts
if the custom protocol is registered only in the chrome process, no iframes or
tabs will be able to load any resource from the custom procotol.
Process scripts
for example, if you call the global frame message manager's loadframescript() function, then the script will be loaded separately into all open
tabs.
Tracking Protection
in private browsing windows (
tabs, in firefox for android), firefox will block content loaded from domains that track users across sites.
Browser API
this is particularly useful to get thumbnails of
tabs in a tabbed browser app.
How to get a process dump with Windows Task Manager
(to get a process dump for thunderbird or some other product, substitute the product name where ever you see firefox in these instructions.) caution the memory dump that will be created through this process is a complete snapshot of the state of firefox when you create the file, so it contains urls of active
tabs, history information, and possibly even passwords depending on what you are doing when the snapshot is taken.
PopupNotifications.jsm
the first parameter to the callback is a string identifying the state change, and may be one of the following: "dismissed" the notification has been dismissed by the user (for example, by clicking away or by switching
tabs).
Localizing with Koala
if the sidebar with the results of the comparison doesn't show up automatically: open the projects sidebar by choosing view >
tabs & sidebars > projects from the menu.
Scroll-linked effects
as this animation is driven by javascript on the browser's main thread, it can be interrupted by other javascript running in other
tabs or other windows.
Index
a complex string must not include newlines or carriage returns.outside of complex strings, all white space (for example, spaces,
tabs, and carriage returns) is considered equal and is used only to delimit tokens.
NSS tools : modutil
a complex string must not include newlines or carriage returns.outside of complex strings, all white space (for example, spaces,
tabs, and carriage returns) is considered equal and is used only to delimit tokens.
NSS Tools modutil
a complex string must notinclude newlines or carriage returns.) outside of complex strings, all white space (for example, spaces,
tabs, and carriage returns) is considered equal and is used only to delimit tokens.
NSS tools : modutil
a complex string must not include newlines or carriage returns.outside of complex strings, all white space (for example, spaces,
tabs, and carriage returns) is considered equal and is used only to delimit tokens.
Rhino Debugger
viewing variables the lower-left (dockable) pane in the debugger main window contains a tab-pane with two
tabs, labeled "this" and "locals".
TPS Pref Lists
for example: var prefs1 = [ { name: "browser.startup.homepage", value: "http://www.getfirefox.com" }, { name: "browser.urlbar.maxrichresults", value: 20 }, { name: "browser.
tabs.autohide", value: true } ]; pref lists and phase actions the only actions supported for preference asset lists are modify and verify: prefs.modify prefs.verify sync only syncs certain preferences.
TPS Tests
bookmarks passwords history
tabs form data prefs test phases the phase blocks are where the action happens!
Index
231 nsiaccelerometerupdate interfaces, needscontent, xpcom, xpcom interface reference this method is only used in content
tabs to receive nsiacceleration data from the chrome process.
Observer Notifications
note that while the window are open and the chrome loaded the
tabs in the windows may still be being restored after this notification.
nsIAccelerometerUpdate
xpcom/system/nsiaccelerometer.idlnot scriptable replaced by nsidevicemotionupdate 1.0 66 introduced gecko 2.0 obsolete gecko 6.0 inherits from: nsiaccelerometer last changed in gecko 5.0 (firefox 5.0 / thunderbird 5.0 / seamonkey 2.2) this method is only used in content
tabs to receive nsiacceleration data from the chrome process.
nsIEditor
ction(); output methods astring outputtostring(in astring formattype, in unsigned long flags); example: // flags are declared in base/public/nsidocumentencoder.idl // outputselectiononly = 1, outputformatted = 2, // outputraw = 4, outputbodyonly = 8, // outputpreformatted = 16, outputwrap = 32, // outputformatflowed = 64, outpu
tabsolutelinks = 258, // outputencodew3centities = 256, outputcrlinebreak = 512, // outputlflinebreak = 1024, outputnoscriptcontent = 2048, // outputnoframescontent = 4096, outputnoformattinginpre = 8192, // outputencodebasicentities=16384, outputencodelatin1entities=32768, // outputencodehtmlentities=65536, outputpersistnbsp=131072 editorapi.outputtostring('text/html', 2); editorapi.out...
nsIFrameScriptLoader
as the user opens new
tabs in this window, copies of the script will be loaded into these new
tabs, as well.
nsIScriptableUnescapeHTML
this is equivalent to calling nsiparserutils::converttoplaintext(src, nsidocumentencoder::outputselectiononly | nsidocumentencoder::outpu
tabsolutelinks, 0).
nsISessionStartup
defer_session 3 the previous session is viable but shouldn't be restored without explicit action (with the exception of app
tabs, which are always restored in this case).
nsIWebBrowserChrome
chrome_remote_window 1048576 whether this window should use remote (out-of-process)
tabs.
nsIWinTaskbar
these don't have to correspond to
tabs within the application; they can vary in size, shape, and location.
nsIXULBrowserWindow
this may be used, for example, to redirect links into new
tabs or windows when it's not desirable to replace the content in the current tab (such as when the link is clicked in an app tab).
nsIXULRuntime
browser
tabsremoteautostart boolean if true, browser
tabs may be opened by default in a different process from the main browser ui.
XPIDL Syntax
lexically, tokens are delimited by whitespace (defined here as spaces,
tabs, vertical
tabs, form feeds, line feeds, and carriage returns, or [ \t\v\f\r\n] in regular expression form).
Using tab-modal prompts
that is, when an alert occurred, it blocked the user interface on all
tabs in the window until the user dismissed the prompt.
Zombie compartments
in particular, if you have multiple
tabs open it's easy to mis-identify whether a compartment should still be alive.
Mozilla
all messages for multi-process plugins and
tabs in firefox are declared in the ipdl language.
Network request details - Firefox Developer Tools
the
tabs at the top of this pane enable you to switch between the following pages: headers messages (only for websocket items) cookies params response cache timings security (only for secure pages) stack trace (only when the request has a stack trace, e.g.
Toolbox - Firefox Developer Tools
this is what it looks like when it's docked: the window itself is split into two parts: a toolbar along the top, and a main pane underneath: note: since firefox 62, you can drag and drop
tabs in the main toolbar of the toolbox to reorder your tools as you wish (bug 1226272).
BroadcastChannel - Web APIs
it allows communication between different documents (in different windows,
tabs, frames or iframes) of the same origin.
Basic animations - Web APIs
the number of callbacks is usually 60 times per second and may be reduced to a lower rate when running in background
tabs.
Element - Web APIs
element.
tabstop is a boolean indicating if the element can receive input focus via the tab key.
Guide to the Fullscreen API - Web APIs
in addition, navigating to another page, changing
tabs, or switching to another application (using, for example, alt-tab) while in fullscreen mode exits fullscreen mode as well.
Fullscreen API - Web APIs
note: navigating to another page, changing
tabs, or switching to another application using any application switcher (or alt-tab) will likewise exit full-screen mode.
Basic concepts - Web APIs
this transaction model is really useful when you consider what might happen if a user opened two instances of your web app in two different
tabs simultaneously.
Using IndexedDB - Web APIs
console.log("please close all other
tabs with this site open!"); }; openreq.onupgradeneeded = function(event) { // all other databases have been closed.
Locks.name - Web APIs
the name is selected by the developer to represent an abstract resource for which use is being coordinated across multiple
tabs, workers, or other code within the origin.
MediaStreamTrack.stop() - Web APIs
since multiple tracks may use the same source (for example, if two
tabs are using the device's microphone), the source itself isn't necessarily immediately stopped.
Node.firstChild - Web APIs
any whitespace will create a #text node, from a single space to multiple spaces, returns,
tabs, and so on.
Notifications API - Web APIs
these are outside the top-level browsing context viewport, so therefore can be displayed even when the user has switched
tabs or moved to a different app.
Functions and classes available to Web Workers - Web APIs
unknown no postmessage() yes, on dedicatedworkerglobalscope no no unknown no apis available in workers function functionality support in gecko (firefox) support in ie support in blink (chrome and opera) support in webkit (safari) broadcast channel api allows simple communication between browsing contexts (that is windows,
tabs, frames, or iframes) with the same origin (usually pages from the same site).
WindowOrWorkerGlobalScope.setInterval() - Web APIs
example: var intervalid = setinterval(function(arg1) {}.bind(undefined, 10), 1000); inactive
tabs requires gecko 5.0(firefox 5.0 / thunderbird 5.0 / seamonkey 2.2) starting in gecko 5.0 (firefox 5.0 / thunderbird 5.0 / seamonkey 2.2), intervals are clamped to fire no more often than once per second in inactive
tabs.
overview - Accessibility
ces guide checkbox aria toggle button and tri-state checkbox examples (from "the paciello group blog") aria example checkbox widgets from the university of illinois menu using wai-aria roles and states with the yui menu control slider from the paciello group blog: aria slider, part one, part two, part threet (example) creating an accessible, internationalized dojo rating widget
tabs enhancing tabview accessibility with wai-aria roles and states, from the yui blog enhancing the jquery ui
tabs accordingly to wcag 2.0 and aria tab panel example here on codetalks lightbox wcag 2.0 and aria-conformant lightbox application http://majx-js.digissime.net/js/popin/ form validation wcag 2.0 and aria-conformant live form validation tables german tutorial on creating...
Using CSS animations - CSS: Cascading Style Sheets
letting the browser control the animation sequence lets the browser optimize performance and efficiency by, for example, reducing the update frequency of animations running in
tabs that aren't currently visible.
white-space - CSS: Cascading Style Sheets
the following table summarizes the behavior of the various white-space values: new lines spaces and
tabs text wrapping end-of-line spaces normal collapse collapse wrap remove nowrap collapse collapse no wrap remove pre preserve preserve no wrap preserve pre-wrap preserve preserve wrap hang pre-line preserve collapse wrap remove break-spaces preserve preserve wrap wr...
<a>: The Anchor element - HTML: Hypertext Markup Language
fy link behavior, make sure it has alt text: <a target="_blank" href="https://www.wikipedia.org"> wikipedia <img alt="(opens in new tab)" src="newtab.svg"> </a> <a href="2017-annual-report.ppt"> 2017 annual report <img alt="(powerpoint file)" src="ppt-icon.svg"> </a> webaim: links and hypertext - hypertext links mdn / understanding wcag, guideline 3.2 g200: opening new windows and
tabs from a link only when necessary g201: giving users advanced warning when opening a new window skip links a skip link is a link placed as early as possible in <body> content that points to the beginning of the page's main content.