Index: trunk/src/libs/xpcom18a4/Config.kmk
===================================================================
--- trunk/src/libs/xpcom18a4/Config.kmk	(revision 101802)
+++ trunk/src/libs/xpcom18a4/Config.kmk	(revision 101803)
@@ -412,5 +412,4 @@
 	xpcom/ds/nsISupportsIterators.idl \
 	xpcom/ds/nsIVariant.idl \
-	xpcom/ds/nsITimelineService.idl \
 	xpcom/ds/nsIArray.idl \
 	xpcom/ds/nsIPropertyBag.idl \
Index: trunk/src/libs/xpcom18a4/Makefile.kmk
===================================================================
--- trunk/src/libs/xpcom18a4/Makefile.kmk	(revision 101802)
+++ trunk/src/libs/xpcom18a4/Makefile.kmk	(revision 101803)
@@ -645,5 +645,4 @@
 	xpcom/ds/nsVariant.cpp \
 	xpcom/ds/nsVoidArray.cpp \
-	xpcom/ds/nsTimelineService.cpp \
 	xpcom/ds/nsValueArray.cpp \
 	xpcom/ds/nsCOMArray.cpp \
@@ -1195,5 +1194,4 @@
 		nsISupportsArray.xpt \
 		nsISupportsIterators.xpt \
-		nsITimelineService.xpt \
 		nsIArray.xpt \
 		nsIObserverService.xpt \
Index: trunk/src/libs/xpcom18a4/python/src/loader/pyloader.cpp
===================================================================
--- trunk/src/libs/xpcom18a4/python/src/loader/pyloader.cpp	(revision 101802)
+++ trunk/src/libs/xpcom18a4/python/src/loader/pyloader.cpp	(revision 101803)
@@ -66,6 +66,4 @@
 
 #endif
-
-#include "nsITimelineService.h"
 
 typedef nsresult (*pfnPyXPCOM_NSGetModule)(nsIComponentManager *servMgr,
@@ -185,5 +183,4 @@
 	PRBool bDidInitPython = !Py_IsInitialized(); // well, I will next line, anyway :-)
 	if (bDidInitPython) {
-		NS_TIMELINE_START_TIMER("PyXPCOM: Python initializing");
 		Py_Initialize();
 		if (!Py_IsInitialized()) {
@@ -195,9 +192,6 @@
 #endif // NS_DEBUG
 		PyEval_InitThreads();
-		NS_TIMELINE_STOP_TIMER("PyXPCOM: Python initializing");
-		NS_TIMELINE_MARK_TIMER("PyXPCOM: Python initializing");
 	}
 	// Get the Python interpreter state
-	NS_TIMELINE_START_TIMER("PyXPCOM: Python threadstate setup");
 #ifndef PYXPCOM_USE_PYGILSTATE
 	PyThreadState *threadStateCreated = NULL;
@@ -218,12 +212,4 @@
 	PyGILState_STATE state = PyGILState_Ensure();
 #endif // PYXPCOM_USE_PYGILSTATE
-#ifdef MOZ_TIMELINE
-	// If the timeline service is installed, see if we can install our hooks.
-	if (NULL==PyImport_ImportModule("timeline_hook")) {
-		if (!PyErr_ExceptionMatches(PyExc_ImportError))
-			LogError("Failed to import 'timeline_hook'");
-		PyErr_Clear(); // but don't care if we can't.
-	}
-#endif
 	// Add the standard paths always - we may not have been the first to
 	// init Python.
@@ -249,10 +235,5 @@
 #endif 
 
-	NS_TIMELINE_STOP_TIMER("PyXPCOM: Python threadstate setup");
-	NS_TIMELINE_MARK_TIMER("PyXPCOM: Python threadstate setup");
-	NS_TIMELINE_START_TIMER("PyXPCOM: PyXPCOM NSGetModule entry point");
 	nsresult rc = PyXPCOM_NSGetModule(servMgr, location, result);
-	NS_TIMELINE_STOP_TIMER("PyXPCOM: PyXPCOM NSGetModule entry point");
-	NS_TIMELINE_MARK_TIMER("PyXPCOM: PyXPCOM NSGetModule entry point");
 	return rc;
 }
Index: trunk/src/libs/xpcom18a4/xpcom/build/nsXPComInit.cpp
===================================================================
--- trunk/src/libs/xpcom18a4/xpcom/build/nsXPComInit.cpp	(revision 101802)
+++ trunk/src/libs/xpcom18a4/xpcom/build/nsXPComInit.cpp	(revision 101803)
@@ -106,5 +106,4 @@
 #include "nsAtomTable.h"
 #include "nsTraceRefcnt.h"
-#include "nsTimelineService.h"
 
 #include "nsVariant.h"
@@ -198,8 +197,4 @@
 NS_GENERIC_FACTORY_CONSTRUCTOR(nsRecyclingAllocatorImpl)
 
-#ifdef MOZ_TIMELINE
-NS_GENERIC_FACTORY_CONSTRUCTOR(nsTimelineService)
-#endif
-
 static NS_METHOD
 nsXPTIInterfaceInfoManagerGetSingleton(nsISupports* outer,
@@ -369,7 +364,4 @@
     COMPONENT(EXCEPTIONSERVICE, nsExceptionServiceConstructor),
     COMPONENT(ATOMSERVICE, nsAtomServiceConstructor),
-#ifdef MOZ_TIMELINE
-    COMPONENT(TIMELINESERVICE, nsTimelineServiceConstructor),
-#endif
     COMPONENT(OBSERVERSERVICE, nsObserverService::Create),
     COMPONENT(GENERICFACTORY, nsGenericFactory::Create),
Index: trunk/src/libs/xpcom18a4/xpcom/components/xcDll.cpp
===================================================================
--- trunk/src/libs/xpcom18a4/xpcom/components/xcDll.cpp	(revision 101802)
+++ trunk/src/libs/xpcom18a4/xpcom/components/xcDll.cpp	(revision 101803)
@@ -55,5 +55,4 @@
 #include "nsCRT.h"
 #include "nsString.h"
-#include "nsITimelineService.h"
 #include "nsModule.h"
 #ifdef DEBUG
Index: trunk/src/libs/xpcom18a4/xpcom/ds/nsITimelineService.idl
===================================================================
--- trunk/src/libs/xpcom18a4/xpcom/ds/nsITimelineService.idl	(revision 101802)
+++ 	(revision )
@@ -1,242 +1,0 @@
-/* -*- Mode: IDL; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/* ***** 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. You may obtain a copy of the License at
- * http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- * for the specific language governing rights and limitations under the
- * License.
- *
- * The Original Code is mozilla.org code.
- *
- * The Initial Developer of the Original Code is
- * Netscape Communications Corporation.
- * Portions created by the Initial Developer are Copyright (C) 1998
- * the Initial Developer. All Rights Reserved.
- *
- * Contributor(s):
- *
- * Alternatively, the contents of this file may be used under the terms of
- * either of the GNU General Public License Version 2 or later (the "GPL"),
- * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
- * in which case the provisions of the GPL or the LGPL are applicable instead
- * of those above. If you wish to allow use of your version of this file only
- * under the terms of either the GPL or the LGPL, and not to allow others to
- * use your version of this file under the terms of the MPL, indicate your
- * decision by deleting the provisions above and replace them with the notice
- * and other provisions required by the GPL or the LGPL. If you do not delete
- * the provisions above, a recipient may use your version of this file under
- * the terms of any one of the MPL, the GPL or the LGPL.
- *
- * ***** END LICENSE BLOCK ***** */
-
-#include "nsISupports.idl"
-
-%{C++
-#ifdef MOZ_TIMELINE
-%}
-      
-/**
- * nsITimelineService is used to constuct a timeline of program
- * execution.  The timeline is output to a file, either stderr or the
- * value of the environment variable NS_TIMELINE_LOG_FILE.  On the
- * Mac, the timeline is output to the file named "timeline.txt".  The
- * reason it's different on the Mac is that the Mac environment
- * initialization code happens after timeline initialization code.
- * 
- * If NS_TIMELINE_INIT_TIME is set in the environment, that will be
- * used as the time of startup; otherwise the current time when mark()
- * is first called will be used.
- * 
- * mark() is used to put marks on the timeline.
- * 
- * indent() and outdent() are used to format the timeline a bit to
- * show nesting.  This doesn't produce perfect results in the face of
- * asychrony and multiple threads.
- * 
- * enter() and leave() are convenience functions that add marks to the
- * timeline and do indentation.
- * 
- * startTimer() and stopTimer() control named stop watches.  If
- * startTimer() is called more than once, an equal number of
- * stopTimer() calls are needed to actually stop the timer.  This
- * makes these timers slightly useful in a threaded environment.
- * 
- * markTimer() puts a mark on the timeline containing the total for
- * the named timer.
- * 
- * Don't use nsITimelineService in C++ code; use the NS_TIMELINE
- * macros instead.  nsITimelineService exists so that JavaScript code
- * can mark the timeline.
- */
-[scriptable, uuid(93276790-3daf-11d5-b67d-000064657374)]
-interface nsITimelineService : nsISupports
-{
-    /**
-     * mark()
-     * Print "<elapsed time>: <text>\n" in the timeline log file.
-     */
-    void mark(in string text);
-
-    /**
-     * causes subsequent marks to be indented for a more readable
-     * report.
-     */
-    void indent();
-
-    /**
-     * Causes subsequent marks to be outdented.
-     */
-    void outdent();
-
-    /**
-     * enter/leave bracket code with "<text>..." and "...<text>" as
-     * well as indentation.
-     */
-    void enter(in string text);
-    void leave(in string text);
-
-    void startTimer(in string timerName);
-
-    void stopTimer(in string timerName);
-
-    void markTimer(in string timerName);
-
-    void resetTimer(in string timerName);
-
-    // Mark a timer, plus an additional comment
-    void markTimerWithComment(in string timerName, in string comment);
-};
-
-%{C++
-#endif /* MOZ_TIMELINE */
-%}
-
-
-%{C++
-
-#ifdef MOZ_TIMELINE
-
-/*
- * These are equivalent to the corresponding nsITimelineService
- * methods, and can be called before XPCOM is initialized.
- */
-extern "C" NS_COM nsresult NS_TimelineMark(const char *text, ...);
-extern "C" NS_COM nsresult NS_TimelineForceMark(const char *text, ...);
-extern "C" NS_COM nsresult NS_TimelineStartTimer(const char *timerName);
-extern "C" NS_COM nsresult NS_TimelineStopTimer(const char *timerName);
-extern "C" NS_COM nsresult NS_TimelineResetTimer(const char *timerName);
-extern "C" NS_COM nsresult NS_TimelineMarkTimer(const char *timerName, const char *str=nsnull);
-extern "C" NS_COM nsresult NS_TimelineIndent();
-extern "C" NS_COM nsresult NS_TimelineOutdent();
-extern "C" NS_COM nsresult NS_TimelineEnter(const char *text);
-extern "C" NS_COM nsresult NS_TimelineLeave(const char *text);
-
-/*
- * Use these macros for the above calls so we can easily compile them
- * out.
- */
-#define NS_TIMELINE_MARK(text) NS_TimelineMark(text)
-#define NS_TIMELINE_MARKV(args) NS_TimelineMark args
-#define NS_TIMELINE_INDENT() NS_TimelineIndent()
-#define NS_TIMELINE_OUTDENT() NS_TimelineOutdent()
-#define NS_TIMELINE_ENTER(text) NS_TimelineEnter(text)
-#define NS_TIMELINE_LEAVE(text) NS_TimelineLeave(text)
-#define NS_TIMELINE_START_TIMER(timerName) NS_TimelineStartTimer(timerName)
-#define NS_TIMELINE_STOP_TIMER(timerName) NS_TimelineStopTimer(timerName)
-#define NS_TIMELINE_MARK_TIMER(timerName) NS_TimelineMarkTimer(timerName)
-#define NS_TIMELINE_RESET_TIMER(timerName) NS_TimelineResetTimer(timerName)
-#define NS_TIMELINE_MARK_TIMER1(timerName, str) NS_TimelineMarkTimer(timerName, str)
-
-/*
- * Helper class to time functions. Use only static strings.
- */
-class nsFunctionTimer {
-public:
-    const char *mTimer;
-    PRBool mMark;
-    const char *mMarkStr;
-    nsFunctionTimer(const char *timer, PRBool mark = PR_TRUE, const char *markStr = nsnull)
-        : mTimer(timer), mMark(mark), mMarkStr(markStr)
-    {
-        NS_TIMELINE_START_TIMER(mTimer);
-    }
-
-    ~nsFunctionTimer()
-    {
-        NS_TIMELINE_STOP_TIMER(mTimer);
-        if (mMark)
-            if (mMarkStr)
-                NS_TIMELINE_MARK_TIMER1(mTimer, mMarkStr);
-            else
-                NS_TIMELINE_MARK_TIMER(mTimer);
-    }
-};
-
-/*
- * NS_TIMELINE_MARK_ macros for various data types.  Each of these
- * macros replaces "%s" in its "text" argument with a string
- * representation of its last argument.
- * 
- * Please feel free to add more NS_TIMELINE_MARK_ macros for
- * various data types so that code using NS_TIMELINE is uncluttered.
- * Don't forget the empty versions in the #else section below for
- * non-timeline builds.
- */
-#define NS_TIMELINE_MARK_URI(text, uri) \
-    { \
-        nsCAutoString spec; \
-        if (uri) { \
-            uri->GetSpec(spec); \
-        } \
-        if (!spec.IsEmpty()) { \
-            NS_TimelineMark(text, spec.get()); \
-        } else { \
-            NS_TimelineMark(text, "??"); \
-        } \
-    }
-
-#define NS_TIMELINE_MARK_CHANNEL(text, channel) \
-    { \
-        nsCOMPtr<nsIURI> uri; \
-        if (channel) { \
-            channel->GetURI(getter_AddRefs(uri)); \
-        } \
-        NS_TIMELINE_MARK_URI(text, uri); \
-    }
-
-#define NS_TIMELINE_MARK_LOADER(text, loader) \
-    { \
-        nsCOMPtr<nsIRequest> request; \
-        loader->GetRequest(getter_AddRefs(request)); \
-        nsCOMPtr<nsIChannel> channel(do_QueryInterface(request)); \
-        NS_TIMELINE_MARK_CHANNEL(text, channel); \
-    }
-#define NS_TIMELINE_MARK_FUNCTION(timer) nsFunctionTimer functionTimer(timer)
-#define NS_TIMELINE_MARK_FUNCTION1(timer, str) nsFunctionTimer functionTimer(timer, PR_TRUE, str)
-#define NS_TIMELINE_TIME_FUNCTION(timer) nsFunctionTimer functionTimer(timer, PR_FALSE) /* no mark, only time */
-
-#else /* !defined(MOZ_TIMELINE) */
-#define NS_TIMELINE_MARK(text)
-#define NS_TIMELINE_MARKV(args)
-#define NS_TIMELINE_INDENT()
-#define NS_TIMELINE_OUTDENT()
-#define NS_TIMELINE_START_TIMER(timerName)
-#define NS_TIMELINE_STOP_TIMER(timerName)
-#define NS_TIMELINE_MARK_TIMER(timerName)
-#define NS_TIMELINE_RESET_TIMER(timerName)
-#define NS_TIMELINE_MARK_TIMER1(timerName, str)
-#define NS_TIMELINE_ENTER(text)
-#define NS_TIMELINE_LEAVE(text)
-#define NS_TIMELINE_MARK_URI(text, uri)
-#define NS_TIMELINE_MARK_FUNCTION(timer)
-#define NS_TIMELINE_TIME_FUNCTION(timer)
-#define NS_TIMELINE_MARK_CHANNEL(text, channel)
-#define NS_TIMELINE_MARK_LOADER(text, loader);
-#endif /* defined(MOZ_TIMELINE) */ 
-%}
Index: trunk/src/libs/xpcom18a4/xpcom/ds/nsTimelineService.cpp
===================================================================
--- trunk/src/libs/xpcom18a4/xpcom/ds/nsTimelineService.cpp	(revision 101802)
+++ 	(revision )
@@ -1,613 +1,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/* ***** 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. You may obtain a copy of the License at
- * http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- * for the specific language governing rights and limitations under the
- * License.
- *
- * The Original Code is mozilla.org code.
- *
- * The Initial Developer of the Original Code is
- * Netscape Communications Corporation.
- * Portions created by the Initial Developer are Copyright (C) 1998
- * the Initial Developer. All Rights Reserved.
- *
- * Contributor(s):
- *
- * Alternatively, the contents of this file may be used under the terms of
- * either of the GNU General Public License Version 2 or later (the "GPL"),
- * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
- * in which case the provisions of the GPL or the LGPL are applicable instead
- * of those above. If you wish to allow use of your version of this file only
- * under the terms of either the GPL or the LGPL, and not to allow others to
- * use your version of this file under the terms of the MPL, indicate your
- * decision by deleting the provisions above and replace them with the notice
- * and other provisions required by the GPL or the LGPL. If you do not delete
- * the provisions above, a recipient may use your version of this file under
- * the terms of any one of the MPL, the GPL or the LGPL.
- *
- * ***** END LICENSE BLOCK ***** */
-
-#include "nsTimelineService.h"
-#include "prlong.h"
-#include "prprf.h"
-#include "prenv.h"
-#include "plhash.h"
-#include "prlock.h"
-#include "prinit.h"
-#include "prinrval.h"
-#include "prthread.h"
-
-#ifdef MOZ_TIMELINE
-
-#define MAXINDENT 20
-
-#ifdef XP_MAC
-static PRIntervalTime initInterval = 0;
-#endif
-
-static PRFileDesc *timelineFD = PR_STDERR;
-static PRBool gTimelineDisabled = PR_TRUE;
-
-// Notes about threading:
-// We avoid locks as we always use thread-local-storage.
-// This means every other thread has its own private copy of
-// data, and this thread can't re-enter (as our implemenation
-// doesn't call back out anywhere).  Thus, we can avoid locks!
-// TLS index
-static const PRUintn BAD_TLS_INDEX = (PRUintn) -1;
-static PRUintn gTLSIndex = BAD_TLS_INDEX;
-
-class TimelineThreadData {
-public:
-    TimelineThreadData() : initTime(0), indent(0),
-                           disabled(PR_TRUE), timers(nsnull) {}
-    ~TimelineThreadData() {if (timers) PL_HashTableDestroy(timers);}
-    PRTime initTime;
-    PRHashTable *timers;
-    int indent;
-    PRBool disabled;
-};
-
-/* Implementation file */
-NS_IMPL_THREADSAFE_ISUPPORTS1(nsTimelineService, nsITimelineService)
-
-static PRTime Now(void);
-
-/*
- * Timer structure stored in a hash table to keep track of named
- * timers.
- */
-class nsTimelineServiceTimer {
-  public:
-    nsTimelineServiceTimer();
-    ~nsTimelineServiceTimer();
-    void start();
-    
-    /*
-     * Caller passes in "now" rather than having us calculate it so
-     * that we can avoid including timer overhead in the time being
-     * measured.
-     */
-    void stop(PRTime now);
-    void reset();
-    PRTime getAccum();
-    PRTime getAccum(PRTime now);
-
-  private:
-    PRTime mAccum;
-    PRTime mStart;
-    PRInt32 mRunning;
-    PRThread *mOwnerThread; // only used for asserts - could be #if MOZ_DEBUG
-};
-
-#define TIMER_CHECK_OWNER() \
-    NS_ABORT_IF_FALSE(PR_GetCurrentThread() == mOwnerThread, \
-                      "Timer used by non-owning thread")
-
-
-nsTimelineServiceTimer::nsTimelineServiceTimer()
-: mAccum(LL_ZERO), mStart(LL_ZERO), mRunning(0),
-  mOwnerThread(PR_GetCurrentThread())
-{
-}
-
-nsTimelineServiceTimer::~nsTimelineServiceTimer()
-{
-}
-
-void nsTimelineServiceTimer::start()
-{
-    TIMER_CHECK_OWNER();
-    if (!mRunning) {
-        mStart = Now();
-    }
-    mRunning++;
-}
-
-void nsTimelineServiceTimer::stop(PRTime now)
-{
-    TIMER_CHECK_OWNER();
-    mRunning--;
-    if (mRunning == 0) {
-        PRTime delta, accum;
-        LL_SUB(delta, now, mStart);
-        LL_ADD(accum, mAccum, delta);
-        mAccum = accum;
-    }
-}
-
-void nsTimelineServiceTimer::reset()
-{
-  TIMER_CHECK_OWNER();
-  mStart = 0;
-  mAccum = 0;
-}
-
-PRTime nsTimelineServiceTimer::getAccum()
-{
-    TIMER_CHECK_OWNER();
-    PRTime accum;
-
-    if (!mRunning) {
-        accum = mAccum;
-    } else {
-        PRTime delta;
-        LL_SUB(delta, Now(), mStart);
-        LL_ADD(accum, mAccum, delta);
-    }
-    return accum;
-}
-
-PRTime nsTimelineServiceTimer::getAccum(PRTime now)
-{
-    TIMER_CHECK_OWNER();
-    PRTime accum;
-
-    if (!mRunning) {
-        accum = mAccum;
-    } else {
-        PRTime delta;
-        LL_SUB(delta, now, mStart);
-        LL_ADD(accum, mAccum, delta);
-    }
-    return accum;
-}
-
-#ifdef XP_MAC
-/*
- * PR_Now() on the Mac only gives us a resolution of seconds.  Using
- * PR_IntervalNow() gives us better resolution. with the drawback that 
- * the timeline is only good for about six hours.
- *
- * PR_IntervalNow() occasionally exhibits discontinuities on Windows,
- * so we only use it on the Mac.  Bleah!
- */
-static PRTime Now(void)
-{
-    PRIntervalTime numTicks = PR_IntervalNow() - initInterval;
-    PRTime now;
-    LL_ADD(now, initTime, PR_IntervalToMilliseconds(numTicks) * 1000);
-    return now;
-}
-#else
-static PRTime Now(void)
-{
-    return PR_Now();
-}
-#endif
-
-static TimelineThreadData *GetThisThreadData()
-{
-    NS_ABORT_IF_FALSE(gTLSIndex!=BAD_TLS_INDEX, "Our TLS not initialized");
-    TimelineThreadData *new_data = nsnull;
-    TimelineThreadData *data = (TimelineThreadData *)PR_GetThreadPrivate(gTLSIndex);
-    if (data == nsnull) {
-        // First request for this thread - allocate it.
-        new_data = new TimelineThreadData();
-        if (!new_data)
-            goto done;
-
-        // Fill it
-        new_data->timers = PL_NewHashTable(100, PL_HashString, PL_CompareStrings,
-                                 PL_CompareValues, NULL, NULL);
-        if (new_data->timers==NULL)
-            goto done;
-        new_data->initTime = PR_Now();
-        NS_WARN_IF_FALSE(!gTimelineDisabled,
-                         "Why are we creating new state when disabled?");
-        new_data->disabled = PR_FALSE;
-        data = new_data;
-        new_data = nsnull;
-        PR_SetThreadPrivate(gTLSIndex, data);
-    }
-done:
-    if (new_data) // eeek - error during creation!
-        delete new_data;
-    NS_WARN_IF_FALSE(data, "TimelineService could not get thread-local data");
-    return data;
-}
-
-extern "C" {
-  static void ThreadDestruct (void *data);
-  static PRStatus TimelineInit(void);
-};
-
-void ThreadDestruct( void *data )
-{
-    if (data)
-        delete (TimelineThreadData *)data;
-}
-
-/*
-* PRCallOnceFN that initializes stuff for the timing service.
-*/
-static PRCallOnceType initonce;
-
-PRStatus TimelineInit(void)
-{
-    char *timeStr;
-    char *fileName;
-    PRInt32 secs, msecs;
-    PRFileDesc *fd;
-    PRInt64 tmp1, tmp2;
-
-    PRStatus status = PR_NewThreadPrivateIndex( &gTLSIndex, ThreadDestruct );
-    NS_WARN_IF_FALSE(status==0, "TimelineService could not allocate TLS storage.");
-
-    timeStr = PR_GetEnv("NS_TIMELINE_INIT_TIME");
-#ifdef XP_MAC    
-    initInterval = PR_IntervalNow();
-#endif
-    // NS_TIMELINE_INIT_TIME only makes sense for the main thread, so if it
-    // exists, set it there.  If not, let normal thread management code take
-    // care of setting the init time.
-    if (timeStr != NULL && 2 == PR_sscanf(timeStr, "%d.%d", &secs, &msecs)) {
-        PRTime &initTime = GetThisThreadData()->initTime;
-        LL_MUL(tmp1, (PRInt64)secs, 1000000);
-        LL_MUL(tmp2, (PRInt64)msecs, 1000);
-        LL_ADD(initTime, tmp1, tmp2);
-#ifdef XP_MAC
-        initInterval -= PR_MicrosecondsToInterval(
-            (PRUint32)(PR_Now() - initTime));
-#endif
-    }
-    // Get the log file.
-#ifdef XP_MAC
-    fileName = "timeline.txt";
-#else
-    fileName = PR_GetEnv("NS_TIMELINE_LOG_FILE");
-#endif
-    if (fileName != NULL
-        && (fd = PR_Open(fileName, PR_WRONLY | PR_CREATE_FILE | PR_TRUNCATE,
-                         0666)) != NULL) {
-        timelineFD = fd;
-        PR_fprintf(fd,
-                   "NOTE: due to asynchrony, the indentation that you see does"
-                   " not necessarily correspond to nesting in the code.\n\n");
-    }
-
-    // Runtime disable of timeline
-    if (PR_GetEnv("NS_TIMELINE_ENABLE"))
-        gTimelineDisabled = PR_FALSE;
-    return PR_SUCCESS;
-}
-
-static void ParseTime(PRTime tm, PRInt32& secs, PRInt32& msecs)
-{
-    PRTime llsecs, llmsecs, tmp;
-
-    LL_DIV(llsecs, tm, 1000000);
-    LL_MOD(tmp, tm, 1000000);
-    LL_DIV(llmsecs, tmp, 1000);
-
-    LL_L2I(secs, llsecs);
-    LL_L2I(msecs, llmsecs);
-}
-
-static char *Indent(char *buf)
-{
-    int &indent = GetThisThreadData()->indent;
-    int amount = indent;
-    if (amount > MAXINDENT) {
-        amount = MAXINDENT;
-    }
-    if (amount < 0) {
-        amount = 0;
-        indent = 0;
-        PR_Write(timelineFD, "indent underflow!\n", 18);
-    }
-    while (amount--) {
-        *buf++ = ' ';
-    }
-    return buf;
-}
-
-static void PrintTime(PRTime tm, const char *text, va_list args)
-{
-    PRInt32 secs, msecs;
-    char pbuf[550], *pc, tbuf[550];
-
-    ParseTime(tm, secs, msecs);
-
-    // snprintf/write rather than fprintf because we don't want
-    // messages from multiple threads to garble one another.
-    pc = Indent(pbuf);
-    PR_vsnprintf(pc, sizeof pbuf - (pc - pbuf), text, args);
-    PR_snprintf(tbuf, sizeof tbuf, "%05d.%03d (%08p): %s\n",
-                secs, msecs, PR_GetCurrentThread(), pbuf);
-    PR_Write(timelineFD, tbuf, strlen(tbuf));
-}
-
-/*
- * Make this public if we need it.
- */
-static nsresult NS_TimelineMarkV(const char *text, va_list args)
-{
-    PRTime elapsed,tmp;
-
-    PR_CallOnce(&initonce, TimelineInit);
-
-    TimelineThreadData *thread = GetThisThreadData();
-
-    tmp = Now();
-    LL_SUB(elapsed, tmp, thread->initTime);
-
-    PrintTime(elapsed, text, args);
-
-    return NS_OK;
-}
-
-PR_IMPLEMENT(nsresult) NS_TimelineForceMark(const char *text, ...)
-{
-    va_list args;
-    va_start(args, text);
-    NS_TimelineMarkV(text, args);
-    va_end(args);
-
-    return NS_OK;
-}
-
-PR_IMPLEMENT(nsresult) NS_TimelineMark(const char *text, ...)
-{
-    va_list args;
-
-    PR_CallOnce(&initonce, TimelineInit);
-
-    if (gTimelineDisabled)
-        return NS_ERROR_NOT_AVAILABLE;
-
-    TimelineThreadData *thread = GetThisThreadData();
-
-    if (thread->disabled)
-        return NS_ERROR_NOT_AVAILABLE;
-
-    va_start(args, text);
-    NS_TimelineMarkV(text, args);
-    va_end(args);
-
-    return NS_OK;
-}
-
-PR_IMPLEMENT(nsresult) NS_TimelineStartTimer(const char *timerName)
-{
-    PR_CallOnce(&initonce, TimelineInit);
-
-    if (gTimelineDisabled)
-        return NS_ERROR_NOT_AVAILABLE;
-
-    TimelineThreadData *thread = GetThisThreadData();
-
-    if (thread->timers == NULL)
-        return NS_ERROR_FAILURE;
-    if (thread->disabled)
-        return NS_ERROR_NOT_AVAILABLE;
-
-    nsTimelineServiceTimer *timer
-        = (nsTimelineServiceTimer *)PL_HashTableLookup(thread->timers, timerName);
-    if (timer == NULL) {
-        timer = new nsTimelineServiceTimer;
-        if (!timer)
-            return NS_ERROR_OUT_OF_MEMORY;
-
-        PL_HashTableAdd(thread->timers, timerName, timer);
-    }
-    timer->start();
-    return NS_OK;
-}
-
-PR_IMPLEMENT(nsresult) NS_TimelineStopTimer(const char *timerName)
-{
-    if (gTimelineDisabled)
-        return NS_ERROR_NOT_AVAILABLE;
-    /*
-     * Strange-looking now/timer->stop() interaction is to avoid
-     * including time spent in TLS and PL_HashTableLookup in the
-     * timer.
-     */
-    PRTime now = Now();
-
-    TimelineThreadData *thread = GetThisThreadData();
-    if (thread->timers == NULL)
-        return NS_ERROR_FAILURE;
-    if (thread->disabled)
-        return NS_ERROR_NOT_AVAILABLE;
-    nsTimelineServiceTimer *timer
-        = (nsTimelineServiceTimer *)PL_HashTableLookup(thread->timers, timerName);
-    if (timer == NULL) {
-        return NS_ERROR_FAILURE;
-    }
-
-    timer->stop(now);
-
-    return NS_OK;
-}
-
-PR_IMPLEMENT(nsresult) NS_TimelineMarkTimer(const char *timerName, const char *str)
-{
-    PR_CallOnce(&initonce, TimelineInit);
-
-    if (gTimelineDisabled)
-        return NS_ERROR_NOT_AVAILABLE;
-
-    TimelineThreadData *thread = GetThisThreadData();
-    if (thread->timers == NULL)
-        return NS_ERROR_FAILURE;
-    if (thread->disabled)
-        return NS_ERROR_NOT_AVAILABLE;
-    nsTimelineServiceTimer *timer
-        = (nsTimelineServiceTimer *)PL_HashTableLookup(thread->timers, timerName);
-    if (timer == NULL) {
-        return NS_ERROR_FAILURE;
-    }
-    PRTime accum = timer->getAccum();
-
-    char buf[500];
-    PRInt32 sec, msec;
-    ParseTime(accum, sec, msec);
-    if (!str)
-        PR_snprintf(buf, sizeof buf, "%s total: %d.%03d",
-                    timerName, sec, msec);
-    else
-        PR_snprintf(buf, sizeof buf, "%s total: %d.%03d (%s)",
-                    timerName, sec, msec, str);
-    NS_TimelineMark(buf);
-
-    return NS_OK;
-}
-
-PR_IMPLEMENT(nsresult) NS_TimelineResetTimer(const char *timerName)
-{
-    if (gTimelineDisabled)
-        return NS_ERROR_NOT_AVAILABLE;
-
-    TimelineThreadData *thread = GetThisThreadData();
-    if (thread->timers == NULL)
-        return NS_ERROR_FAILURE;
-    if (thread->disabled)
-        return NS_ERROR_NOT_AVAILABLE;
-    nsTimelineServiceTimer *timer
-        = (nsTimelineServiceTimer *)PL_HashTableLookup(thread->timers, timerName);
-    if (timer == NULL) {
-        return NS_ERROR_FAILURE;
-    }
-
-    timer->reset();
-    return NS_OK;
-}
-
-PR_IMPLEMENT(nsresult) NS_TimelineIndent()
-{
-    if (gTimelineDisabled)
-        return NS_ERROR_NOT_AVAILABLE;
-
-    TimelineThreadData *thread = GetThisThreadData();
-    if (thread->disabled)
-        return NS_ERROR_NOT_AVAILABLE;
-    thread->indent++;
-    return NS_OK;
-}
-
-PR_IMPLEMENT(nsresult) NS_TimelineOutdent()
-{
-    if (gTimelineDisabled)
-        return NS_ERROR_NOT_AVAILABLE;
-
-    TimelineThreadData *thread = GetThisThreadData();
-    if (thread->disabled)
-        return NS_ERROR_NOT_AVAILABLE;
-    thread->indent--;
-    return NS_OK;
-}
-
-PR_IMPLEMENT(nsresult) NS_TimelineEnter(const char *text)
-{
-    nsresult rv = NS_TimelineMark("%s...", text);
-    if (NS_FAILED(rv)) {
-        return rv;
-    }
-    return NS_TimelineIndent();
-}
-
-PR_IMPLEMENT(nsresult) NS_TimelineLeave(const char *text)
-{
-    nsresult rv = NS_TimelineOutdent();
-    if (NS_FAILED(rv)) {
-        return rv;
-    }
-    return NS_TimelineMark("...%s", text);
-}
-
-nsTimelineService::nsTimelineService()
-{
-  /* member initializers and constructor code */
-}
-
-/* void mark (in string text); */
-NS_IMETHODIMP nsTimelineService::Mark(const char *text)
-{
-    return NS_TimelineMark(text);
-}
-
-/* void startTimer (in string timerName); */
-NS_IMETHODIMP nsTimelineService::StartTimer(const char *timerName)
-{
-    return NS_TimelineStartTimer(timerName);
-}
-
-/* void stopTimer (in string timerName); */
-NS_IMETHODIMP nsTimelineService::StopTimer(const char *timerName)
-{
-    return NS_TimelineStopTimer(timerName);
-}
-
-/* void markTimer (in string timerName); */
-NS_IMETHODIMP nsTimelineService::MarkTimer(const char *timerName)
-{
-    return NS_TimelineMarkTimer(timerName);
-}
-
-/* void markTimerWithComment(in string timerName, in string comment); */
-NS_IMETHODIMP nsTimelineService::MarkTimerWithComment(const char *timerName, const char *comment)
-{
-    return NS_TimelineMarkTimer(timerName, comment);
-}
-
-/* void resetTimer (in string timerName); */
-NS_IMETHODIMP nsTimelineService::ResetTimer(const char *timerName)
-{
-    return NS_TimelineResetTimer(timerName);
-}
-
-/* void indent (); */
-NS_IMETHODIMP nsTimelineService::Indent()
-{
-    return NS_TimelineIndent();
-}
-
-/* void outdent (); */
-NS_IMETHODIMP nsTimelineService::Outdent()
-{
-    return NS_TimelineOutdent();
-}
-
-/* void enter (in string text); */
-NS_IMETHODIMP nsTimelineService::Enter(const char *text)
-{
-    return NS_TimelineEnter(text);
-}
-
-/* void leave (in string text); */
-NS_IMETHODIMP nsTimelineService::Leave(const char *text)
-{
-    return NS_TimelineLeave(text);
-}
-
-#endif /* MOZ_TIMELINE */
Index: trunk/src/libs/xpcom18a4/xpcom/ds/nsTimelineService.h
===================================================================
--- trunk/src/libs/xpcom18a4/xpcom/ds/nsTimelineService.h	(revision 101802)
+++ 	(revision )
@@ -1,64 +1,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/* ***** 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. You may obtain a copy of the License at
- * http://www.mozilla.org/MPL/
- *
- * Software distributed under the License is distributed on an "AS IS" basis,
- * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
- * for the specific language governing rights and limitations under the
- * License.
- *
- * The Original Code is mozilla.org code.
- *
- * The Initial Developer of the Original Code is
- * Netscape Communications Corporation.
- * Portions created by the Initial Developer are Copyright (C) 1998
- * the Initial Developer. All Rights Reserved.
- *
- * Contributor(s):
- *
- * Alternatively, the contents of this file may be used under the terms of
- * either of the GNU General Public License Version 2 or later (the "GPL"),
- * or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
- * in which case the provisions of the GPL or the LGPL are applicable instead
- * of those above. If you wish to allow use of your version of this file only
- * under the terms of either the GPL or the LGPL, and not to allow others to
- * use your version of this file under the terms of the MPL, indicate your
- * decision by deleting the provisions above and replace them with the notice
- * and other provisions required by the GPL or the LGPL. If you do not delete
- * the provisions above, a recipient may use your version of this file under
- * the terms of any one of the MPL, the GPL or the LGPL.
- *
- * ***** END LICENSE BLOCK ***** */
-
-#include "nsITimelineService.h"
-
-#ifdef MOZ_TIMELINE
-
-#define NS_TIMELINESERVICE_CID \
-{ /* a335edf0-3daf-11d5-b67d-000064657374 */ \
-    0xa335edf0, \
-        0x3daf, \
-        0x11d5, \
-        {0xb6, 0x7d, 0x00, 0x00, 0x64, 0x65, 0x73, 0x74}}
-
-#define NS_TIMELINESERVICE_CONTRACTID "@mozilla.org;timeline-service;1"
-#define NS_TIMELINESERVICE_CLASSNAME "Timeline Service"
-
-class nsTimelineService : public nsITimelineService
-{
-public:
-  NS_DECL_ISUPPORTS
-  NS_DECL_NSITIMELINESERVICE
-
-  nsTimelineService();
-
-private:
-  ~nsTimelineService() {}
-};
-
-#endif
Index: trunk/src/libs/xpcom18a4/xpcom/io/nsLocalFileUnix.cpp
===================================================================
--- trunk/src/libs/xpcom18a4/xpcom/io/nsLocalFileUnix.cpp	(revision 101802)
+++ trunk/src/libs/xpcom18a4/xpcom/io/nsLocalFileUnix.cpp	(revision 101803)
@@ -79,5 +79,4 @@
 #include "prproces.h"
 #include "nsISimpleEnumerator.h"
-#include "nsITimelineService.h"
 
 #include "nsNativeCharsetUtils.h"
@@ -1538,10 +1537,5 @@
     NS_ENSURE_ARG_POINTER(_retval);
 
-    NS_TIMELINE_START_TIMER("PR_LoadLibrary");
-
     *_retval = PR_LoadLibrary(mPath.get());
-
-    NS_TIMELINE_STOP_TIMER("PR_LoadLibrary");
-    NS_TIMELINE_MARK_TIMER1("PR_LoadLibrary", mPath.get());
 
     if (!*_retval)
Index: trunk/src/libs/xpcom18a4/xpcom/io/nsLocalFileWin.cpp
===================================================================
--- trunk/src/libs/xpcom18a4/xpcom/io/nsLocalFileWin.cpp	(revision 101802)
+++ trunk/src/libs/xpcom18a4/xpcom/io/nsLocalFileWin.cpp	(revision 101803)
@@ -68,5 +68,4 @@
 #include "nsXPIDLString.h"
 #include "prproces.h"
-#include "nsITimelineService.h"
 
 #include "nsAutoLock.h"
@@ -1339,9 +1338,5 @@
         return NS_ERROR_FILE_IS_DIRECTORY;
 
-    NS_TIMELINE_START_TIMER("PR_LoadLibrary");
     *_retval =  PR_LoadLibrary(mResolvedPath.get());
-    NS_TIMELINE_STOP_TIMER("PR_LoadLibrary");
-    NS_TIMELINE_MARK_TIMER1("PR_LoadLibrary", mResolvedPath.get());
-
     if (*_retval)
         return NS_OK;
