Необходимо определить время загрузки страницы.

Я понял, что надо действовать через addProgressListener - на onStateChange ловить начало загрузки STATE_START, а где-то в конце ловить конечное время и вычитать начальное. Все бы замечательно, но после начала загрузки необходимо сохранить время (чтобы потом вычесть), и я решил сохранять его на вкладках ;) (слава богу фреймы ловить не надо). Нашел функции - setTabValue \ getTabValue, однако проблема определить какая вкладка принадлежит запросу идущему в данный момент в addProgressListener - onStateChange. Очень нехотелось бы каждому браузеру добавлять ProgressListener, может быть можно как-то попроще ? Или вообще без ProgressListener ?

Определяю так:

Выделить код

Код:

onStateChange: function(aWebProgress, aRequest, aStateFlags, aStatus)
	{
		// begin loading document
		const nsIWebProgressListener = Components.interfaces.nsIWebProgressListener;
		if ((aStateFlags & nsIWebProgressListener.STATE_START) && (aStateFlags & nsIWebProgressListener.STATE_IS_NETWORK))
		{
			var browser = null;
			// search for browser
			if (gBrowser.selectedBrowser.contentWindow == aWebProgress.DOMWindow)
			{
				// active browser
				browser = gBrowser.selectedBrowser;
			} else 
			{
				// bruteforce browsers
				for (var i = 0; i < gBrowser.browsers.length; i++)
				{
					if (aWebProgress.DOMWindow == gBrowser.browsers[i].contentWindow)
					{
						browser = gBrowser.browsers[i];
						break;
					}             
				}
			}

			if (browser != null)
			{
				// search browser tab
				for (var i = 0; i < gBrowser.mTabContainer.childNodes.length; i++)
				{	
					if (gBrowser.getBrowserForTab(gBrowser.mTabContainer.childNodes[i]) == browser)
					{
						// founded tab
						var currentTab = gBrowser.mTabContainer.childNodes[i];


						break;
					}
				}
			}
		}
	}