Changeset 58266 in webkit


Ignore:
Timestamp:
Apr 26, 2010 3:38:55 PM (14 years ago)
Author:
weinig@apple.com
Message:

Fix for https://bugs.webkit.org/show_bug.cgi?id=38097
Disentangle initializing the main thread from initializing threading

Reviewed by Maciej Stachowiak.

JavaScriptCore:

This is the first step in getting rid of the WEB_THREAD #define and
paving the way to allowing mac both WebKit and WebKit2 to use the same
WebCore.

  • JavaScriptCore.exp: Export initializeMainThread and initializeMainThreadToProcessMainThread.
  • JavaScriptCore.xcodeproj/project.pbxproj: Sort files.
  • wtf/MainThread.cpp:

(WTF::mainThreadInitializationMutex):
(WTF::mainThreadFunctionQueueMutex):
(WTF::initializeMainThread):
(WTF::deprecatedInitializeMainThread):

  • wtf/MainThread.h:

Added Mac only initializeMainThreadToProcessMainThread which sets up callOnMainThread
and isMainThead calls to assume that WebCore's main thread is also the
process's main thread. Since it is possible that both initializeMainThread
and initializeMainThreadToProcessMainThread could be called, the first one called
wins (either will work).

  • wtf/Threading.h: Moved to top of file.
  • wtf/ThreadingPthreads.cpp:

(WTF::initializeThreading): Remove call to initializeMainThread.

  • wtf/ThreadingWin.cpp:

(WTF::initializeThreading): Ditto.

  • wtf/gtk/ThreadingGtk.cpp:

(WTF::initializeThreading): Ditto.

  • wtf/mac/MainThreadMac.mm:

(WTF::initializeMainThreadPlatform):
(WTF::initializeMainThreadToProcessMainThread):
(WTF::scheduleDispatchFunctionsOnMainThread):
(WTF::isMainThread):
Add runtime switch between the old behavior of using the system's main
thread and a stored pointer to the main thread. Tiger always uses the
system's main thread.

  • wtf/qt/ThreadingQt.cpp:

(WTF::initializeThreading): Remove call to initializeMainThread.

  • wtf/win/MainThreadWin.cpp:

(WTF::initializeMainThreadPlatform): Add call to initializeCurrentThreadInternal
removed from initializeThreading.

WebCore:

  • WebCore.xcodeproj/project.pbxproj: Sort files.
  • accessibility/mac/AccessibilityObjectWrapper.mm: Remove unnessary

+initialize method. The AccessibilityObjectWrapper has no data members
that need to be derefed, so it does not need to be finalized on the main
thread.

  • bindings/js/ScriptController.cpp:

(WebCore::ScriptController::initializeThreading): Add call to initializeMainThread.

  • bindings/objc/WebScriptObject.mm:

(+[WebScriptObject initialize]): Add call to initializeMainThreadToProcessMainThread.

  • bindings/v8/ScriptController.cpp:

(WebCore::ScriptController::initializeThreading): Add call to initializeMainThread.

  • platform/mac/SharedBufferMac.mm:

(+[WebCoreSharedBufferData initialize]): Add call to initializeMainThreadToProcessMainThread.

WebKit/chromium:

  • src/WebKit.cpp:

(WebKit::initialize): Add call to initializeMainThread.

  • src/WebViewImpl.cpp:

(WebKit::WebViewImpl::WebViewImpl): Ditto.

WebKit/gtk:

  • webkit/webkitprivate.cpp:

(webkit_init): Add call to initializeMainThread.

WebKit/mac:

Calls initializeMainThreadToProcessMainThread since there is no way to ensure
that the initialize method will be called on the main thread.

  • Carbon/CarbonWindowAdapter.mm:

(+[CarbonWindowAdapter initialize]): Add call to initializeMainThreadToProcessMainThread.

  • History/WebBackForwardList.mm:

(+[WebBackForwardList initialize]): Ditto.

  • History/WebHistoryItem.mm:

(+[WebHistoryItem initialize]): Ditto.

  • Misc/WebElementDictionary.mm:

(+[WebElementDictionary initialize]): Ditto.

  • Misc/WebIconDatabase.mm:

(+[WebIconDatabase initialize]): Ditto.

  • Plugins/Hosted/WebHostedNetscapePluginView.mm:

(+[WebHostedNetscapePluginView initialize]): Ditto.

  • Plugins/WebBaseNetscapePluginView.mm:

(+[WebBaseNetscapePluginView initialize]): Ditto.

  • Plugins/WebBasePluginPackage.mm:

(+[WebBasePluginPackage initialize]): Ditto.

  • Plugins/WebNetscapePluginView.mm:

(+[WebNetscapePluginView initialize]): Ditto.

  • WebCoreSupport/WebEditorClient.mm:

(+[WebEditCommand initialize]): Ditto.

  • WebCoreSupport/WebFrameLoaderClient.mm:

(+[WebFramePolicyListener initialize]): Ditto.

  • WebView/WebArchive.mm:

(+[WebArchivePrivate initialize]): Ditto.

  • WebView/WebDataSource.mm:

(+[WebDataSourcePrivate initialize]): Ditto.

  • WebView/WebHTMLView.mm:

(+[WebHTMLViewPrivate initialize]): Ditto.
(+[WebHTMLView initialize]): Ditto.

  • WebView/WebResource.mm:

(+[WebResourcePrivate initialize]): Ditto.

  • WebView/WebTextIterator.mm:

(+[WebTextIteratorPrivate initialize]): Ditto.

  • WebView/WebView.mm:
  • WebView/WebViewData.mm: Ditto.

(+[WebViewPrivate initialize]): Ditto.

WebKit/qt:

  • Api/qwebpage.cpp:

(QWebPagePrivate::QWebPagePrivate): Add call to initializeMainThread.

WebKit/win:

  • WebKitClassFactory.cpp:

(WebKitClassFactory::WebKitClassFactory): Add call to initializeMainThread.

  • WebView.cpp:

(WebView::WebView): Ditto.

WebKit/wx:

  • WebView.cpp:

(wxWebView::Create): Add call to initializeMainThread.

WebKit2:

  • UIProcess/Launcher/mac/WebProcessLauncher.mm:

(WebKit::webThreadBody): Add call to initializeMainThread.

  • UIProcess/Launcher/win/WebProcessLauncher.cpp:

(WebKit::webThreadBody): Ditto.

  • WebProcess/Launching/mac/WebProcessMain.mm:

(main): Ditto.

  • WebProcess/win/WebProcessMain.cpp:

(WebKit::WebProcessMain): Ditto.

Location:
trunk
Files:
56 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/ChangeLog

    r58248 r58266  
     12010-04-25  Sam Weinig  <sam@webkit.org>
     2
     3        Reviewed by Maciej Stachowiak.
     4
     5        Fix for https://bugs.webkit.org/show_bug.cgi?id=38097
     6        Disentangle initializing the main thread from initializing threading
     7
     8        This is the first step in getting rid of the WEB_THREAD #define and
     9        paving the way to allowing mac both WebKit and WebKit2 to use the same
     10        WebCore.
     11
     12        * JavaScriptCore.exp: Export initializeMainThread and initializeMainThreadToProcessMainThread.
     13        * JavaScriptCore.xcodeproj/project.pbxproj: Sort files.
     14
     15        * wtf/MainThread.cpp:
     16        (WTF::mainThreadInitializationMutex):
     17        (WTF::mainThreadFunctionQueueMutex):
     18        (WTF::initializeMainThread):
     19        (WTF::deprecatedInitializeMainThread):
     20        * wtf/MainThread.h:
     21        Added Mac only initializeMainThreadToProcessMainThread which sets up callOnMainThread
     22        and isMainThead calls to assume that WebCore's main thread is also the
     23        process's main thread. Since it is possible that both initializeMainThread
     24        and initializeMainThreadToProcessMainThread could be called, the first one called
     25        wins (either will work).
     26
     27        * wtf/Threading.h: Moved to top of file.
     28
     29        * wtf/ThreadingPthreads.cpp:
     30        (WTF::initializeThreading): Remove call to initializeMainThread.
     31        * wtf/ThreadingWin.cpp:
     32        (WTF::initializeThreading): Ditto.
     33        * wtf/gtk/ThreadingGtk.cpp:
     34        (WTF::initializeThreading): Ditto.
     35
     36        * wtf/mac/MainThreadMac.mm:
     37        (WTF::initializeMainThreadPlatform):
     38        (WTF::initializeMainThreadToProcessMainThread):
     39        (WTF::scheduleDispatchFunctionsOnMainThread):
     40        (WTF::isMainThread):
     41        Add runtime switch between the old behavior of using the system's main
     42        thread and a stored pointer to the main thread. Tiger always uses the
     43        system's main thread.
     44
     45        * wtf/qt/ThreadingQt.cpp:
     46        (WTF::initializeThreading): Remove call to initializeMainThread.
     47        * wtf/win/MainThreadWin.cpp:
     48        (WTF::initializeMainThreadPlatform): Add call to initializeCurrentThreadInternal
     49        removed from initializeThreading.
     50
    1512010-04-26  Jedrzej Nowacki  <jedrzej.nowacki@nokia.com>
    252
  • trunk/JavaScriptCore/JavaScriptCore.exp

    r58136 r58266  
    332332__ZN3WTF19initializeThreadingEv
    333333__ZN3WTF20fastMallocStatisticsEv
     334__ZN3WTF20initializeMainThreadEv
    334335__ZN3WTF21RefCountedLeakCounter16suppressMessagesEPKc
    335336__ZN3WTF21RefCountedLeakCounter24cancelMessageSuppressionEPKc
     
    347348__ZN3WTF37parseDateFromNullTerminatedCharactersEPKc
    348349__ZN3WTF38unlockAtomicallyInitializedStaticMutexEv
     350__ZN3WTF39initializeMainThreadToProcessMainThreadEv
     351__ZN3WTF3MD58addBytesEPKhm
     352__ZN3WTF3MD58checksumEv
    349353__ZN3WTF3MD5C1Ev
    350 __ZN3WTF3MD58checksumEv
    351 __ZN3WTF3MD58addBytesEPKhm
    352354__ZN3WTF5Mutex4lockEv
    353355__ZN3WTF5Mutex6unlockEv
  • trunk/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj

    r58206 r58266  
    13461346                        isa = PBXGroup;
    13471347                        children = (
    1348                                 511FC4CA117EE2A800425272 /* MD5.h */,
    1349                                 511FC4C7117EE23D00425272 /* MD5.cpp */,
    13501348                                06D358A00DAAD9C4003B174E /* mac */,
    13511349                                8656573E115BE35200291F40 /* text */,
     
    13551353                                65E217B808E7EECC0023E5F6 /* Assertions.cpp */,
    13561354                                65E217B708E7EECC0023E5F6 /* Assertions.h */,
     1355                                BC5F7BBB11823B590052C02C /* Atomics.h */,
    13571356                                E1A596370DE3E1C300C17E37 /* AVLTree.h */,
    13581357                                A7A1F7AA0F252B3C00E184E2 /* ByteArray.cpp */,
     
    13741373                                657EEBBF094E445E008C9C7B /* HashCountedSet.h */,
    13751374                                65DFC92A08EA173A00F7300B /* HashFunctions.h */,
    1376                                 BC5F7BBB11823B590052C02C /* Atomics.h */,
    1377                                 BC5F7BBC11823B590052C02C /* ThreadingPrimitives.h */,
    1378                                 BC5F7BBD11823B590052C02C /* ThreadSafeShared.h */,
    13791375                                652246A40C8D7A0E007BDAF7 /* HashIterators.h */,
    13801376                                65DFC92B08EA173A00F7300B /* HashMap.h */,
     
    13901386                                5DBD18AF0C5401A700C15EAE /* MallocZoneSupport.h */,
    13911387                                BCF6553B0A2048DE0038A194 /* MathExtras.h */,
     1388                                511FC4C7117EE23D00425272 /* MD5.cpp */,
     1389                                511FC4CA117EE2A800425272 /* MD5.h */,
    13921390                                E1EE798B0D6CA53D00FEA3BA /* MessageQueue.h */,
    13931391                                9303F5690991190000AD71B8 /* Noncopyable.h */,
     
    14241422                                5D6A566A0F05995500266145 /* Threading.cpp */,
    14251423                                E1EE79220D6C95CD00FEA3BA /* Threading.h */,
     1424                                BC5F7BBC11823B590052C02C /* ThreadingPrimitives.h */,
    14261425                                E1EE793C0D6C9B9200FEA3BA /* ThreadingPthreads.cpp */,
     1426                                BC5F7BBD11823B590052C02C /* ThreadSafeShared.h */,
    14271427                                E1B7C8BD0DA3A3360074B0DC /* ThreadSpecific.h */,
    14281428                                0B330C260F38C62300692DE3 /* TypeTraits.cpp */,
  • trunk/JavaScriptCore/wtf/MainThread.cpp

    r58179 r58266  
    3030#include "MainThread.h"
    3131
    32 #include "StdLibExtras.h"
    3332#include "CurrentTime.h"
    3433#include "Deque.h"
     34#include "StdLibExtras.h"
    3535#include "Threading.h"
    3636
    3737namespace WTF {
    38 
    39 #if !PLATFORM(MAC) && !PLATFORM(QT)
    40 static ThreadIdentifier mainThreadIdentifier;
    41 #endif
    4238
    4339struct FunctionWithContext {
     
    5753
    5854static bool callbacksPaused; // This global variable is only accessed from main thread.
    59 
    60 Mutex& mainThreadFunctionQueueMutex()
     55#if !PLATFORM(MAC) && !PLATFORM(QT)
     56static ThreadIdentifier mainThreadIdentifier;
     57#endif
     58
     59static Mutex& mainThreadFunctionQueueMutex()
    6160{
    6261    DEFINE_STATIC_LOCAL(Mutex, staticMutex, ());
     
    7069}
    7170
     71
     72#if !PLATFORM(MAC)
     73
    7274void initializeMainThread()
    7375{
     76    static bool initializedMainThread;
     77    if (initializedMainThread)
     78        return;
     79    initializedMainThread = true;
     80
     81#if !PLATFORM(QT)
     82    mainThreadIdentifier = currentThread();
     83#endif
     84
    7485    mainThreadFunctionQueueMutex();
    7586    initializeMainThreadPlatform();
    76 
    77 #if !PLATFORM(MAC) && !PLATFORM(QT)
    78     mainThreadIdentifier = currentThread();
    79 #endif
    80 }
     87}
     88
     89#else
     90
     91static pthread_once_t initializeMainThreadKeyOnce = PTHREAD_ONCE_INIT;
     92
     93static void initializeMainThreadOnce()
     94{
     95    mainThreadFunctionQueueMutex();
     96    initializeMainThreadPlatform();
     97}
     98
     99void initializeMainThread()
     100{
     101    pthread_once(&initializeMainThreadKeyOnce, initializeMainThreadOnce);
     102}
     103
     104static void initializeMainThreadToProcessMainThreadOnce()
     105{
     106    mainThreadFunctionQueueMutex();
     107    initializeMainThreadToProcessMainThreadPlatform();
     108}
     109
     110void initializeMainThreadToProcessMainThread()
     111{
     112    pthread_once(&initializeMainThreadKeyOnce, initializeMainThreadToProcessMainThreadOnce);
     113}
     114#endif
    81115
    82116// 0.1 sec delays in UI is approximate threshold when they become noticeable. Have a limit that's half of that.
  • trunk/JavaScriptCore/wtf/MainThread.h

    r58179 r58266  
    11/*
    2  * Copyright (C) 2007, 2008 Apple Inc. All rights reserved.
     2 * Copyright (C) 2007, 2008, 2010 Apple Inc. All rights reserved.
    33 * Copyright (C) 2007 Justin Haygood (jhaygood@reaktix.com)
    44 *
     
    3131#define MainThread_h
    3232
     33#include <stdint.h>
     34
    3335namespace WTF {
    3436
    35 class Mutex;
    36 
     37typedef uint32_t ThreadIdentifier;
    3738typedef void MainThreadFunction(void*);
    3839
     40// Must be called from the main thread.
     41void initializeMainThread();
     42
    3943void callOnMainThread(MainThreadFunction*, void* context);
    40 
    41 // Blocks the thread until the call finishes on the main thread. Misusing this can easily cause deadlocks.
    4244void callOnMainThreadAndWait(MainThreadFunction*, void* context);
    43 
    4445void setMainThreadCallbacksPaused(bool paused);
    4546
    46 // Must be called from the main thread (Darwin is an exception to this rule).
    47 void initializeMainThread();
     47bool isMainThread();
    4848
    49 // These functions are internal to the callOnMainThread implementation.
     49// NOTE: these functions are internal to the callOnMainThread implementation.
    5050void initializeMainThreadPlatform();
    5151void scheduleDispatchFunctionsOnMainThread();
    52 Mutex& mainThreadFunctionQueueMutex();
    5352void dispatchFunctionsFromMainThread();
    5453
    55 bool isMainThread();
     54#if PLATFORM(MAC)
     55// This version of initializeMainThread sets up the main thread as corresponding
     56// to the process's main thread, and not necessarily the thread that calls this
     57// function. It should only be used as a legacy aid for Mac WebKit.
     58void initializeMainThreadToProcessMainThread();
     59void initializeMainThreadToProcessMainThreadPlatform();
     60#endif
    5661
    5762} // namespace WTF
  • trunk/JavaScriptCore/wtf/Threading.h

    r58206 r58266  
    8282typedef void* (*ThreadFunction)(void* argument);
    8383
     84// This function must be called from the main thread. It is safe to call it repeatedly.
     85// Darwin is an exception to this rule: it is OK to call it from any thread, the only
     86// requirement is that the calls are not reentrant.
     87void initializeThreading();
     88
    8489// Returns 0 if thread creation failed.
    8590// The thread name must be a literal since on some platforms it's passed in to the thread.
     
    97102void detachThread(ThreadIdentifier);
    98103
    99 // This function must be called from the main thread. It is safe to call it repeatedly.
    100 // Darwin is an exception to this rule: it is OK to call it from any thread, the only requirement is that the calls are not reentrant.
    101 void initializeThreading();
    102104
    103105void lockAtomicallyInitializedStaticMutex();
  • trunk/JavaScriptCore/wtf/ThreadingPthreads.cpp

    r58179 r58266  
    6868void initializeThreading()
    6969{
    70     if (!atomicallyInitializedStaticMutex) {
    71         atomicallyInitializedStaticMutex = new Mutex;
    72         threadMapMutex();
    73         initializeRandomNumberGenerator();
    74         initializeMainThread();
    75     }
     70    if (atomicallyInitializedStaticMutex)
     71        return;
     72
     73    atomicallyInitializedStaticMutex = new Mutex;
     74    threadMapMutex();
     75    initializeRandomNumberGenerator();
    7676}
    7777
  • trunk/JavaScriptCore/wtf/ThreadingWin.cpp

    r58179 r58266  
    146146}
    147147
    148 
    149148static Mutex& threadMapMutex()
    150149{
     
    155154void initializeThreading()
    156155{
    157     if (!atomicallyInitializedStaticMutex) {
    158         atomicallyInitializedStaticMutex = new Mutex;
    159         threadMapMutex();
    160         initializeRandomNumberGenerator();
    161         initializeMainThread();
    162         initializeCurrentThreadInternal("Main Thread");
    163     }
     156    if (atomicallyInitializedStaticMutex)
     157        return;
     158
     159    atomicallyInitializedStaticMutex = new Mutex;
     160    threadMapMutex();
     161    initializeRandomNumberGenerator();
    164162}
    165163
  • trunk/JavaScriptCore/wtf/gtk/ThreadingGtk.cpp

    r58179 r58266  
    6161        threadMapMutex();
    6262        initializeRandomNumberGenerator();
    63         initializeMainThread();
    6463    }
    6564}
  • trunk/JavaScriptCore/wtf/mac/MainThreadMac.mm

    r58179 r58266  
    3232#import <CoreFoundation/CoreFoundation.h>
    3333#import <Foundation/NSThread.h>
     34#import <stdio.h>
    3435#import <wtf/Assertions.h>
    3536#import <wtf/Threading.h>
     
    5152namespace WTF {
    5253
    53 static WTFMainThreadCaller* staticMainThreadCaller = nil;
    54 #if USE(WEB_THREAD)
    55 static pthread_t mainThread;
    56 static NSThread* webThread = nil;
    57 #endif
     54static WTFMainThreadCaller* staticMainThreadCaller;
     55static bool isTimerPosted; // This is only accessed on the 'main' thread.
     56static bool mainThreadEstablishedAsPthreadMain;
     57static pthread_t mainThreadPthread;
     58static NSThread* mainThreadNSThread;
    5859
    5960void initializeMainThreadPlatform()
    6061{
     62#if !defined(BUILDING_ON_TIGER)
    6163    ASSERT(!staticMainThreadCaller);
    6264    staticMainThreadCaller = [[WTFMainThreadCaller alloc] init];
    6365
    64 #if USE(WEB_THREAD)
    65     mainThread = pthread_self();
    66     webThread = [[NSThread currentThread] retain];
     66    mainThreadEstablishedAsPthreadMain = false;
     67    mainThreadPthread = pthread_self();
     68    mainThreadNSThread = [[NSThread currentThread] retain];
     69#else
     70    ASSERT_NOT_REACHED();
    6771#endif
    6872}
    6973
    70 static bool isTimerPosted; // This is only accessed on the 'main' thread.
     74void initializeMainThreadToProcessMainThreadPlatform()
     75{
     76    if (!pthread_main_np())
     77        NSLog(@"WebKit Threading Violation - initial use of WebKit from a secondary thread.");
     78
     79    ASSERT(!staticMainThreadCaller);
     80    staticMainThreadCaller = [[WTFMainThreadCaller alloc] init];
     81
     82    mainThreadEstablishedAsPthreadMain = true;
     83    mainThreadPthread = 0;
     84    mainThreadNSThread = nil;
     85}
    7186
    7287static void timerFired(CFRunLoopTimerRef timer, void*)
     
    88103}
    89104
    90 
    91105void scheduleDispatchFunctionsOnMainThread()
    92106{
     
    98112    }
    99113
    100 #if USE(WEB_THREAD)
    101     [staticMainThreadCaller performSelector:@selector(call) onThread:webThread withObject:nil waitUntilDone:NO];
     114    if (mainThreadEstablishedAsPthreadMain) {
     115        ASSERT(!mainThreadNSThread);
     116        [staticMainThreadCaller performSelectorOnMainThread:@selector(call) withObject:nil waitUntilDone:NO];
     117        return;
     118    }
     119
     120#if !defined(BUILDING_ON_TIGER)
     121    ASSERT(mainThreadNSThread);
     122    [staticMainThreadCaller performSelector:@selector(call) onThread:mainThreadNSThread withObject:nil waitUntilDone:NO];
    102123#else
    103     [staticMainThreadCaller performSelectorOnMainThread:@selector(call) withObject:nil waitUntilDone:NO];
     124    ASSERT_NOT_REACHED();
    104125#endif
    105126}
     
    107128bool isMainThread()
    108129{
    109 #if USE(WEB_THREAD)
    110     return pthread_equal(pthread_self(), mainThread);
     130    if (mainThreadEstablishedAsPthreadMain) {
     131        ASSERT(!mainThreadPthread);
     132        return pthread_main_np();
     133    }
     134
     135#if !defined(BUILDING_ON_TIGER)
     136    ASSERT(mainThreadPthread);
     137    return pthread_equal(pthread_self(), mainThreadPthread);
    111138#else
    112     return pthread_main_np();
     139    ASSERT_NOT_REACHED();
    113140#endif
    114141}
  • trunk/JavaScriptCore/wtf/qt/ThreadingQt.cpp

    r58179 r58266  
    145145        threadMapMutex();
    146146        initializeRandomNumberGenerator();
    147         initializeMainThread();
    148147    }
    149148}
  • trunk/JavaScriptCore/wtf/win/MainThreadWin.cpp

    r52791 r58266  
    7878       CW_USEDEFAULT, 0, CW_USEDEFAULT, 0, hWndParent, 0, 0, 0);
    7979    threadingFiredMessage = RegisterWindowMessage(L"com.apple.WebKit.MainThreadFired");
     80
     81    initializeCurrentThreadInternal("Main Thread");
    8082}
    8183
  • trunk/WebCore/ChangeLog

    r58264 r58266  
     12010-04-25  Sam Weinig  <sam@webkit.org>
     2
     3        Reviewed by Maciej Stachowiak.
     4
     5        Fix for https://bugs.webkit.org/show_bug.cgi?id=38097
     6        Disentangle initializing the main thread from initializing threading
     7
     8        * WebCore.xcodeproj/project.pbxproj: Sort files.
     9
     10        * accessibility/mac/AccessibilityObjectWrapper.mm: Remove unnessary
     11        +initialize method. The AccessibilityObjectWrapper has no data members
     12        that need to be derefed, so it does not need to be finalized on the main
     13        thread.
     14
     15        * bindings/js/ScriptController.cpp:
     16        (WebCore::ScriptController::initializeThreading): Add call to initializeMainThread.
     17        * bindings/objc/WebScriptObject.mm:
     18        (+[WebScriptObject initialize]): Add call to initializeMainThreadToProcessMainThread.
     19        * bindings/v8/ScriptController.cpp:
     20        (WebCore::ScriptController::initializeThreading): Add call to initializeMainThread.
     21        * platform/mac/SharedBufferMac.mm:
     22        (+[WebCoreSharedBufferData initialize]): Add call to initializeMainThreadToProcessMainThread.
     23
    1242010-04-26  Yongjun Zhang  <yongjun_zhang@apple.com>
    225
  • trunk/WebCore/WebCore.xcodeproj/project.pbxproj

    r58236 r58266  
    1299912999                        isa = PBXGroup;
    1300013000                        children = (
    13001                                 895253DE116C4F0600CABF00 /* FileThreadTask.h */,
    13002                                 895253DA116C4EF500CABF00 /* FileStreamProxy.cpp */,
    13003                                 895253DB116C4EF500CABF00 /* FileStreamProxy.h */,
    13004                                 895253D4116C4C6800CABF00 /* FileStream.cpp */,
    13005                                 895253D5116C4C6800CABF00 /* FileStream.h */,
    13006                                 895253D6116C4C6800CABF00 /* FileStreamClient.h */,
    13007                                 8952535011641B3400CABF00 /* FileThread.cpp */,
    13008                                 8952535111641B3400CABF00 /* FileThread.h */,
    1300913001                                49484FAE102CF01E00187DD3 /* canvas */,
    1301013002                                2EAFAF0B10E2AF2D007ED3D6 /* Blob.cpp */,
     
    1303613028                                BCDBB8AA0E088CA500C60FF6 /* FileList.h */,
    1303713029                                BC1881DC0E08C54300048C13 /* FileList.idl */,
     13030                                895253D4116C4C6800CABF00 /* FileStream.cpp */,
     13031                                895253D5116C4C6800CABF00 /* FileStream.h */,
     13032                                895253D6116C4C6800CABF00 /* FileStreamClient.h */,
     13033                                895253DA116C4EF500CABF00 /* FileStreamProxy.cpp */,
     13034                                895253DB116C4EF500CABF00 /* FileStreamProxy.h */,
     13035                                8952535011641B3400CABF00 /* FileThread.cpp */,
     13036                                8952535111641B3400CABF00 /* FileThread.h */,
     13037                                895253DE116C4F0600CABF00 /* FileThreadTask.h */,
    1303813038                                A8136D370973A8E700D74463 /* FormDataList.cpp */,
    1303913039                                A8136D360973A8E700D74463 /* FormDataList.h */,
  • trunk/WebCore/accessibility/mac/AccessibilityObjectWrapper.mm

    r58031 r58266  
    6060#import "htmlediting.h"
    6161#import "visible_units.h"
    62 #import <runtime/InitializeThreading.h>
    6362
    6463using namespace WebCore;
     
    172171
    173172@implementation AccessibilityObjectWrapper
    174 
    175 + (void)initialize
    176 {
    177     JSC::initializeThreading();
    178 #ifndef BUILDING_ON_TIGER
    179     WebCoreObjCFinalizeOnMainThread(self);
    180 #endif
    181 }
    182173
    183174- (id)initWithAccessibilityObject:(AccessibilityObject*)axObject
  • trunk/WebCore/bindings/js/ScriptController.cpp

    r57738 r58266  
    4444#include <runtime/InitializeThreading.h>
    4545#include <runtime/JSLock.h>
     46#include <wtf/Threading.h>
    4647
    4748using namespace JSC;
     
    5354{
    5455    JSC::initializeThreading();
     56    WTF::initializeMainThread();
    5557}
    5658
  • trunk/WebCore/bindings/objc/WebScriptObject.mm

    r57738 r58266  
    5050#import <runtime/Completion.h>
    5151#import <runtime/Completion.h>
     52#import <wtf/Threading.h>
    5253
    5354#ifdef BUILDING_ON_TIGER
     
    110111{
    111112    JSC::initializeThreading();
     113    WTF::initializeMainThreadToProcessMainThread();
    112114#ifndef BUILDING_ON_TIGER
    113115    WebCoreObjCFinalizeOnMainThread(self);
  • trunk/WebCore/bindings/v8/ScriptController.cpp

    r57313 r58266  
    6969    if (!initializedThreading) {
    7070        WTF::initializeThreading();
     71        WTF::initializeMainThread();
    7172        initializedThreading = true;
    7273    }
  • trunk/WebCore/platform/mac/SharedBufferMac.mm

    r40933 r58266  
    5151{
    5252    JSC::initializeThreading();
     53    WTF::initializeMainThreadToProcessMainThread();
    5354#ifndef BUILDING_ON_TIGER
    5455    WebCoreObjCFinalizeOnMainThread(self);
  • trunk/WebKit/chromium/ChangeLog

    r58259 r58266  
     12010-04-25  Sam Weinig  <sam@webkit.org>
     2
     3        Reviewed by Maciej Stachowiak.
     4
     5        Fix for https://bugs.webkit.org/show_bug.cgi?id=38097
     6        Disentangle initializing the main thread from initializing threading
     7
     8        * src/WebKit.cpp:
     9        (WebKit::initialize): Add call to initializeMainThread.
     10        * src/WebViewImpl.cpp:
     11        (WebKit::WebViewImpl::WebViewImpl): Ditto.
     12
    1132010-04-26  Roman Gershman  <romange@google.com>
    214
  • trunk/WebKit/chromium/src/WebKit.cpp

    r52852 r58266  
    5757
    5858    WTF::initializeThreading();
     59    WTF::initializeMainThread();
    5960    WebCore::AtomicString::init();
    6061
  • trunk/WebKit/chromium/src/WebViewImpl.cpp

    r57927 r58266  
    251251    // initialized because CollatorICU requires it.
    252252    WTF::initializeThreading();
     253    WTF::initializeMainThread();
    253254
    254255    // set to impossible point so we always get the first mouse pos
  • trunk/WebKit/efl/ewk/ewk_main.cpp

    r55964 r58266  
    2525#include "Logging.h"
    2626#include "PageCache.h"
    27 #include "PageGroup.h"
    2827#include "ewk_private.h"
    2928#include "runtime/InitializeThreading.h"
     29#include "wtf/Threading.h"
    3030
    3131#include <Ecore.h>
     
    104104
    105105    JSC::initializeThreading();
     106    WTF::initializeMainThread();
    106107    WebCore::InitializeLoggingChannelsIfNecessary();
    107108
  • trunk/WebKit/gtk/ChangeLog

    r58111 r58266  
     12010-04-25  Sam Weinig  <sam@webkit.org>
     2
     3        Reviewed by Maciej Stachowiak.
     4
     5        Fix for https://bugs.webkit.org/show_bug.cgi?id=38097
     6        Disentangle initializing the main thread from initializing threading
     7
     8        * webkit/webkitprivate.cpp:
     9        (webkit_init): Add call to initializeMainThread.
     10
    1112010-04-22  Dave Moore  <davemoore@chromium.org>
    212
  • trunk/WebKit/gtk/webkit/webkitprivate.cpp

    r57535 r58266  
    2020
    2121#include "config.h"
    22 
    23 #include "webkitsoupauthdialog.h"
    2422#include "webkitprivate.h"
     23
    2524#include "ApplicationCacheStorage.h"
    2625#include "Chrome.h"
     
    3231#include "HitTestResult.h"
    3332#include "IconDatabase.h"
    34 #include <libintl.h>
    3533#include "Logging.h"
    3634#include "PageCache.h"
     
    4240#include "ResourceHandleInternal.h"
    4341#include "ResourceResponse.h"
    44 #include <runtime/InitializeThreading.h>
    4542#include "SecurityOrigin.h"
    46 #include <stdlib.h>
    4743#include "TextEncodingRegistry.h"
    4844#include "webkitnetworkresponse.h"
     45#include "webkitsoupauthdialog.h"
     46#include <libintl.h>
     47#include <runtime/InitializeThreading.h>
     48#include <stdlib.h>
     49#include <wtf/Threading.h>
    4950
    5051#if ENABLE(DATABASE)
     
    247248
    248249    JSC::initializeThreading();
     250    WTF::initializeMainThread();
     251
    249252    WebCore::InitializeLoggingChannelsIfNecessary();
    250253
  • trunk/WebKit/mac/Carbon/CarbonWindowAdapter.mm

    r39028 r58266  
    7575#import <WebCore/WebCoreObjCExtras.h>
    7676#import <runtime/InitializeThreading.h>
     77#import <wtf/Threading.h>
    7778
    7879#import "WebKitLogging.h"
     
    270271{
    271272    JSC::initializeThreading();
     273    WTF::initializeMainThreadToProcessMainThread();
    272274#ifndef BUILDING_ON_TIGER
    273275    WebCoreObjCFinalizeOnMainThread(self);
  • trunk/WebKit/mac/ChangeLog

    r58221 r58266  
     12010-04-25  Sam Weinig  <sam@webkit.org>
     2
     3        Reviewed by Maciej Stachowiak.
     4
     5        Fix for https://bugs.webkit.org/show_bug.cgi?id=38097
     6        Disentangle initializing the main thread from initializing threading
     7
     8        Calls initializeMainThreadToProcessMainThread since there is no way to ensure
     9        that the initialize method will be called on the main thread.
     10
     11        * Carbon/CarbonWindowAdapter.mm:
     12        (+[CarbonWindowAdapter initialize]): Add call to initializeMainThreadToProcessMainThread.
     13        * History/WebBackForwardList.mm:
     14        (+[WebBackForwardList initialize]): Ditto.
     15        * History/WebHistoryItem.mm:
     16        (+[WebHistoryItem initialize]): Ditto.
     17        * Misc/WebElementDictionary.mm:
     18        (+[WebElementDictionary initialize]): Ditto.
     19        * Misc/WebIconDatabase.mm:
     20        (+[WebIconDatabase initialize]): Ditto.
     21        * Plugins/Hosted/WebHostedNetscapePluginView.mm:
     22        (+[WebHostedNetscapePluginView initialize]): Ditto.
     23        * Plugins/WebBaseNetscapePluginView.mm:
     24        (+[WebBaseNetscapePluginView initialize]): Ditto.
     25        * Plugins/WebBasePluginPackage.mm:
     26        (+[WebBasePluginPackage initialize]): Ditto.
     27        * Plugins/WebNetscapePluginView.mm:
     28        (+[WebNetscapePluginView initialize]): Ditto.
     29        * WebCoreSupport/WebEditorClient.mm:
     30        (+[WebEditCommand initialize]): Ditto.
     31        * WebCoreSupport/WebFrameLoaderClient.mm:
     32        (+[WebFramePolicyListener initialize]): Ditto.
     33        * WebView/WebArchive.mm:
     34        (+[WebArchivePrivate initialize]): Ditto.
     35        * WebView/WebDataSource.mm:
     36        (+[WebDataSourcePrivate initialize]): Ditto.
     37        * WebView/WebHTMLView.mm:
     38        (+[WebHTMLViewPrivate initialize]): Ditto.
     39        (+[WebHTMLView initialize]): Ditto.
     40        * WebView/WebResource.mm:
     41        (+[WebResourcePrivate initialize]): Ditto.
     42        * WebView/WebTextIterator.mm:
     43        (+[WebTextIteratorPrivate initialize]): Ditto.
     44        * WebView/WebView.mm:
     45        * WebView/WebViewData.mm: Ditto.
     46        (+[WebViewPrivate initialize]): Ditto.
     47
    1482010-04-24  Dan Bernstein  <mitz@apple.com>
    249
  • trunk/WebKit/mac/History/WebBackForwardList.mm

    r42871 r58266  
    5050#import <wtf/RetainPtr.h>
    5151#import <wtf/StdLibExtras.h>
     52#import <wtf/Threading.h>
    5253
    5354using namespace WebCore;
     
    101102{
    102103    JSC::initializeThreading();
     104    WTF::initializeMainThreadToProcessMainThread();
    103105#ifndef BUILDING_ON_TIGER
    104106    WebCoreObjCFinalizeOnMainThread(self);
  • trunk/WebKit/mac/History/WebHistoryItem.mm

    r51630 r58266  
    5454#import <wtf/Assertions.h>
    5555#import <wtf/StdLibExtras.h>
     56#import <wtf/Threading.h>
    5657
    5758// Private keys used in the WebHistoryItem's dictionary representation.
     
    9697{
    9798    JSC::initializeThreading();
     99    WTF::initializeMainThreadToProcessMainThread();
    98100#ifndef BUILDING_ON_TIGER
    99101    WebCoreObjCFinalizeOnMainThread(self);
  • trunk/WebKit/mac/Misc/WebElementDictionary.mm

    r53553 r58266  
    4444#import <WebKit/DOMExtensions.h>
    4545#import <runtime/InitializeThreading.h>
     46#import <wtf/Threading.h>
    4647
    4748using namespace WebCore;
     
    6566{
    6667    JSC::initializeThreading();
     68    WTF::initializeMainThreadToProcessMainThread();
    6769#ifndef BUILDING_ON_TIGER
    6870    WebCoreObjCFinalizeOnMainThread(self);
  • trunk/WebKit/mac/Misc/WebIconDatabase.mm

    r55643 r58266  
    4343#import <WebCore/SharedBuffer.h>
    4444#import <WebCore/ThreadCheck.h>
     45#import <runtime/InitializeThreading.h>
     46#import <wtf/Threading.h>
    4547
    4648using namespace WebCore;
     
    8890
    8991@implementation WebIconDatabase
     92
     93+ (void)initialize
     94{
     95    JSC::initializeThreading();
     96    WTF::initializeMainThreadToProcessMainThread();
     97}
    9098
    9199+ (WebIconDatabase *)sharedIconDatabase
  • trunk/WebKit/mac/Plugins/Hosted/WebHostedNetscapePluginView.mm

    r57095 r58266  
    4747#import <runtime/InitializeThreading.h>
    4848#import <wtf/Assertions.h>
     49#import <wtf/Threading.h>
    4950
    5051using namespace WebCore;
     
    6162{
    6263    JSC::initializeThreading();
     64    WTF::initializeMainThreadToProcessMainThread();
    6365#ifndef BUILDING_ON_TIGER
    6466    WebCoreObjCFinalizeOnMainThread(self);
  • trunk/WebKit/mac/Plugins/WebBaseNetscapePluginView.mm

    r56825 r58266  
    4242#import "WebViewInternal.h"
    4343
    44 #import <WebCore/WebCoreObjCExtras.h>
    4544#import <WebCore/AuthenticationMac.h>
    4645#import <WebCore/BitmapImage.h>
     
    5756#import <WebCore/RenderView.h>
    5857#import <WebCore/RenderWidget.h>
     58#import <WebCore/WebCoreObjCExtras.h>
    5959#import <WebKit/DOMPrivate.h>
    6060#import <runtime/InitializeThreading.h>
    6161#import <wtf/Assertions.h>
     62#import <wtf/Threading.h>
    6263#import <wtf/text/CString.h>
    6364
     
    116117{
    117118    JSC::initializeThreading();
     119    WTF::initializeMainThreadToProcessMainThread();
    118120#ifndef BUILDING_ON_TIGER
    119121    WebCoreObjCFinalizeOnMainThread(self);
  • trunk/WebKit/mac/Plugins/WebBasePluginPackage.mm

    r41376 r58266  
    2929#import <WebKit/WebBasePluginPackage.h>
    3030
     31#import <WebCore/WebCoreObjCExtras.h>
    3132#import <WebKit/WebKitNSStringExtras.h>
     33#import <WebKit/WebNSObjectExtras.h>
    3234#import <WebKit/WebNetscapePluginPackage.h>
    33 #import <WebKit/WebNSObjectExtras.h>
    3435#import <WebKit/WebPluginPackage.h>
    35 #import <WebCore/WebCoreObjCExtras.h>
    3636#import <runtime/InitializeThreading.h>
    3737#import <wtf/Assertions.h>
     38#import <wtf/Threading.h>
    3839#import <wtf/Vector.h>
    3940
     
    6465{
    6566    JSC::initializeThreading();
     67    WTF::initializeMainThreadToProcessMainThread();
    6668#ifndef BUILDING_ON_TIGER
    6769    WebCoreObjCFinalizeOnMainThread(self);
  • trunk/WebKit/mac/Plugins/WebNetscapePluginView.mm

    r58202 r58266  
    3131#import "WebNetscapePluginView.h"
    3232
     33#import "WebBaseNetscapePluginStream.h"
    3334#import "WebDataSourceInternal.h"
    3435#import "WebDefaultUIDelegate.h"
     
    3738#import "WebKitErrorsPrivate.h"
    3839#import "WebKitLogging.h"
    39 #import "WebNetscapeContainerCheckPrivate.h"
    4040#import "WebKitNSStringExtras.h"
    4141#import "WebKitSystemInterface.h"
     
    4646#import "WebNSURLRequestExtras.h"
    4747#import "WebNSViewExtras.h"
     48#import "WebNetscapeContainerCheckContextInfo.h"
     49#import "WebNetscapeContainerCheckPrivate.h"
     50#import "WebNetscapePluginEventHandler.h"
    4851#import "WebNetscapePluginPackage.h"
    49 #import "WebBaseNetscapePluginStream.h"
    5052#import "WebPluginContainerCheck.h"
    51 #import "WebNetscapeContainerCheckContextInfo.h"
    52 #import "WebNetscapePluginEventHandler.h"
     53#import "WebPluginRequest.h"
    5354#import "WebPreferences.h"
    54 #import "WebPluginRequest.h"
     55#import "WebUIDelegatePrivate.h"
    5556#import "WebViewInternal.h"
    56 #import "WebUIDelegatePrivate.h"
    5757#import <Carbon/Carbon.h>
    58 #import <runtime/JSLock.h>
    59 #import <WebCore/npruntime_impl.h>
    6058#import <WebCore/CookieJar.h>
    6159#import <WebCore/DocumentLoader.h>
     
    7270#import <WebCore/WebCoreObjCExtras.h>
    7371#import <WebCore/WebCoreURLResponse.h>
     72#import <WebCore/npruntime_impl.h>
    7473#import <WebKit/DOMPrivate.h>
    7574#import <WebKit/WebUIDelegate.h>
     75#import <objc/objc-runtime.h>
    7676#import <runtime/InitializeThreading.h>
     77#import <runtime/JSLock.h>
    7778#import <wtf/Assertions.h>
     79#import <wtf/Threading.h>
    7880#import <wtf/text/CString.h>
    79 #import <objc/objc-runtime.h>
    8081
    8182#define LoginWindowDidSwitchFromUserNotification    @"WebLoginWindowDidSwitchFromUserNotification"
     
    189190{
    190191    JSC::initializeThreading();
     192    WTF::initializeMainThreadToProcessMainThread();
    191193#ifndef BUILDING_ON_TIGER
    192194    WebCoreObjCFinalizeOnMainThread(self);
  • trunk/WebKit/mac/WebCoreSupport/WebEditorClient.mm

    r49806 r58266  
    6363#import <runtime/InitializeThreading.h>
    6464#import <wtf/PassRefPtr.h>
     65#import <wtf/Threading.h>
    6566
    6667using namespace WebCore;
     
    9596{
    9697    JSC::initializeThreading();
     98    WTF::initializeMainThreadToProcessMainThread();
    9799#ifndef BUILDING_ON_TIGER
    98100    WebCoreObjCFinalizeOnMainThread(self);
  • trunk/WebKit/mac/WebCoreSupport/WebFrameLoaderClient.mm

    r58120 r58266  
    5151#import "WebHTMLRepresentationPrivate.h"
    5252#import "WebHTMLViewInternal.h"
     53#import "WebHistoryInternal.h"
    5354#import "WebHistoryItemInternal.h"
    54 #import "WebHistoryInternal.h"
    5555#import "WebIconDatabaseInternal.h"
    5656#import "WebKitErrorsPrivate.h"
    5757#import "WebKitLogging.h"
    5858#import "WebKitNSStringExtras.h"
     59#import "WebNSURLExtras.h"
    5960#import "WebNavigationData.h"
    60 #import "WebNSURLExtras.h"
     61#import "WebNetscapePluginPackage.h"
    6162#import "WebNetscapePluginView.h"
    62 #import "WebNetscapePluginPackage.h"
    6363#import "WebPanelAuthenticationHandler.h"
    6464#import "WebPluginController.h"
     
    7474#import "WebUIDelegatePrivate.h"
    7575#import "WebViewInternal.h"
    76 #import <WebKitSystemInterface.h>
    7776#import <WebCore/AuthenticationMac.h>
    7877#import <WebCore/BlockExceptions.h>
     
    9089#import <WebCore/FrameView.h>
    9190#import <WebCore/HTMLAppletElement.h>
    92 #import <WebCore/HTMLHeadElement.h>
    9391#import <WebCore/HTMLFormElement.h>
    9492#import <WebCore/HTMLFrameElement.h>
    9593#import <WebCore/HTMLFrameOwnerElement.h>
     94#import <WebCore/HTMLHeadElement.h>
    9695#import <WebCore/HTMLNames.h>
    9796#import <WebCore/HTMLPlugInElement.h>
     
    116115#import <WebKit/DOMElement.h>
    117116#import <WebKit/DOMHTMLFormElement.h>
     117#import <WebKitSystemInterface.h>
    118118#import <runtime/InitializeThreading.h>
    119119#import <wtf/PassRefPtr.h>
     120#import <wtf/Threading.h>
    120121
    121122#if ENABLE(MAC_JAVA_BRIDGE)
     
    17931794{
    17941795    JSC::initializeThreading();
     1796    WTF::initializeMainThreadToProcessMainThread();
    17951797#ifndef BUILDING_ON_TIGER
    17961798    WebCoreObjCFinalizeOnMainThread(self);
  • trunk/WebKit/mac/WebView/WebArchive.mm

    r55529 r58266  
    3939#import <WebCore/ThreadCheck.h>
    4040#import <WebCore/WebCoreObjCExtras.h>
     41#import <wtf/Threading.h>
    4142
    4243using namespace WebCore;
     
    6768{
    6869    JSC::initializeThreading();
     70    WTF::initializeMainThreadToProcessMainThread();
    6971#ifndef BUILDING_ON_TIGER
    7072    WebCoreObjCFinalizeOnMainThread(self);
  • trunk/WebKit/mac/WebView/WebDataSource.mm

    r54908 r58266  
    6161#import <runtime/InitializeThreading.h>
    6262#import <wtf/Assertions.h>
     63#import <wtf/Threading.h>
    6364
    6465using namespace WebCore;
     
    8081{
    8182    JSC::initializeThreading();
     83    WTF::initializeMainThreadToProcessMainThread();
    8284#ifndef BUILDING_ON_TIGER
    8385    WebCoreObjCFinalizeOnMainThread(self);
  • trunk/WebKit/mac/WebView/WebHTMLView.mm

    r57723 r58266  
    119119#import <limits>
    120120#import <runtime/InitializeThreading.h>
     121#import <wtf/Threading.h>
    121122
    122123#if USE(ACCELERATED_COMPOSITING)
     
    491492{
    492493    JSC::initializeThreading();
     494    WTF::initializeMainThreadToProcessMainThread();
    493495#ifndef BUILDING_ON_TIGER
    494496    WebCoreObjCFinalizeOnMainThread(self);
     
    23182320                             returnTypes:[[self class] _insertablePasteboardTypes]];
    23192321    JSC::initializeThreading();
     2322    WTF::initializeMainThreadToProcessMainThread();
    23202323#ifndef BUILDING_ON_TIGER
    23212324    WebCoreObjCFinalizeOnMainThread(self);
  • trunk/WebKit/mac/WebView/WebResource.mm

    r45274 r58266  
    4444#import <WebCore/WebCoreObjCExtras.h>
    4545#import <WebCore/WebCoreURLResponse.h>
     46#import <wtf/Threading.h>
    4647
    4748using namespace WebCore;
     
    6667{
    6768    JSC::initializeThreading();
     69    WTF::initializeMainThreadToProcessMainThread();
    6870#ifndef BUILDING_ON_TIGER
    6971    WebCoreObjCFinalizeOnMainThread(self);
  • trunk/WebKit/mac/WebView/WebTextIterator.mm

    r58156 r58266  
    3333#import <WebCore/WebCoreObjCExtras.h>
    3434#import <runtime/InitializeThreading.h>
     35#import <wtf/Threading.h>
    3536
    3637using namespace JSC;
     
    4849{
    4950    JSC::initializeThreading();
     51    WTF::initializeMainThreadToProcessMainThread();
    5052#ifndef BUILDING_ON_TIGER
    5153    WebCoreObjCFinalizeOnMainThread(self);
  • trunk/WebKit/mac/WebView/WebView.mm

    r58221 r58266  
    159159#import <runtime/ArrayPrototype.h>
    160160#import <runtime/DateInstance.h>
    161 #import <runtime/InitializeThreading.h>
    162161#import <runtime/JSLock.h>
    163162#import <runtime/JSValue.h>
  • trunk/WebKit/mac/WebView/WebViewData.mm

    r57183 r58266  
    3535#import <objc/objc-auto.h>
    3636#import <runtime/InitializeThreading.h>
     37#import <wtf/Threading.h>
    3738
    3839BOOL applicationIsTerminating = NO;
     
    4445{
    4546    JSC::initializeThreading();
     47    WTF::initializeMainThreadToProcessMainThread();
    4648#ifndef BUILDING_ON_TIGER
    4749    WebCoreObjCFinalizeOnMainThread(self);
  • trunk/WebKit/qt/Api/qwebpage.cpp

    r58218 r58266  
    8484#include "PageClientQt.h"
    8585#include "WorkerThread.h"
     86#include "wtf/Threading.h"
    8687
    8788#include <QApplication>
     
    274275    WebCore::InitializeLoggingChannelsIfNecessary();
    275276    JSC::initializeThreading();
     277    WTF::initializeMainThread();
    276278    WebCore::SecurityOrigin::setLocalLoadPolicy(WebCore::SecurityOrigin::AllowLocalLoadsForLocalAndSubstituteData);
    277279
  • trunk/WebKit/qt/ChangeLog

    r58255 r58266  
     12010-04-25  Sam Weinig  <sam@webkit.org>
     2
     3        Reviewed by Maciej Stachowiak.
     4
     5        Fix for https://bugs.webkit.org/show_bug.cgi?id=38097
     6        Disentangle initializing the main thread from initializing threading
     7
     8        * Api/qwebpage.cpp:
     9        (QWebPagePrivate::QWebPagePrivate): Add call to initializeMainThread.
     10
    1112010-04-26  Thiago Macieira  <thiago.macieira@nokia.com>
    212
  • trunk/WebKit/win/ChangeLog

    r58227 r58266  
     12010-04-25  Sam Weinig  <sam@webkit.org>
     2
     3        Reviewed by Maciej Stachowiak.
     4
     5        Fix for https://bugs.webkit.org/show_bug.cgi?id=38097
     6        Disentangle initializing the main thread from initializing threading
     7
     8        * WebKitClassFactory.cpp:
     9        (WebKitClassFactory::WebKitClassFactory): Add call to initializeMainThread.
     10        * WebView.cpp:
     11        (WebView::WebView): Ditto.
     12
    1132010-04-25  Yury Semikhatsky  <yurys@chromium.org>
    214
  • trunk/WebKit/win/WebKitClassFactory.cpp

    r57730 r58266  
    5858#include "WebView.h"
    5959#include "WebWorkersPrivate.h"
    60 #pragma warning(push, 0)
    6160#include <JavaScriptCore/InitializeThreading.h>
    6261#include <WebCore/SoftLinking.h>
    63 #pragma warning(pop)
     62#include <wtf/Threading.h>
    6463
    6564// WebKitClassFactory ---------------------------------------------------------
     
    8887
    8988    JSC::initializeThreading();
     89    WTF::initializeMainThread();
    9090
    9191    gClassCount++;
  • trunk/WebKit/win/WebView.cpp

    r58072 r58266  
    124124#include <WebCore/TypingCommand.h>
    125125#include <WebCore/WindowMessageBroadcaster.h>
     126#include <wtf/Threading.h>
    126127
    127128#if ENABLE(CLIENT_BASED_GEOLOCATION)
     
    343344{
    344345    JSC::initializeThreading();
     346    WTF::initializeMainThread();
    345347
    346348    m_backingStoreSize.cx = m_backingStoreSize.cy = 0;
  • trunk/WebKit/wx/ChangeLog

    r58231 r58266  
     12010-04-25  Sam Weinig  <sam@webkit.org>
     2
     3        Reviewed by Maciej Stachowiak.
     4
     5        Fix for https://bugs.webkit.org/show_bug.cgi?id=38097
     6        Disentangle initializing the main thread from initializing threading
     7
     8        * WebView.cpp:
     9        (wxWebView::Create): Add call to initializeMainThread.
     10
    1112010-04-25  Kevin Watters  <kevinwatters@gmail.com>
    212
  • trunk/WebKit/wx/WebView.cpp

    r58231 r58266  
    303303
    304304    WTF::initializeThreading();
     305    WTF::initializeMainThread();
    305306
    306307// This is necessary because we are using SharedTimerWin.cpp on Windows,
  • trunk/WebKit2/ChangeLog

    r58199 r58266  
     12010-04-25  Sam Weinig  <sam@webkit.org>
     2
     3        Reviewed by Maciej Stachowiak.
     4
     5        Fix for https://bugs.webkit.org/show_bug.cgi?id=38097
     6        Disentangle initializing the main thread from initializing threading
     7
     8        * UIProcess/Launcher/mac/WebProcessLauncher.mm:
     9        (WebKit::webThreadBody): Add call to initializeMainThread.
     10        * UIProcess/Launcher/win/WebProcessLauncher.cpp:
     11        (WebKit::webThreadBody): Ditto.
     12        * WebProcess/Launching/mac/WebProcessMain.mm:
     13        (main): Ditto.
     14        * WebProcess/win/WebProcessMain.cpp:
     15        (WebKit::WebProcessMain): Ditto.
     16
    1172010-04-23  Sam Weinig  <sam@webkit.org>
    218
  • trunk/WebKit2/UIProcess/Launcher/mac/WebProcessLauncher.mm

    r57732 r58266  
    4949    InitWebCoreSystemInterface();
    5050    JSC::initializeThreading();
     51    WTF::initializeMainThread();
    5152
    5253    WebProcess::shared().initialize(serverPort, RunLoop::current());
  • trunk/WebKit2/UIProcess/Launcher/win/WebProcessLauncher.cpp

    r57739 r58266  
    4646    // Initialization
    4747    JSC::initializeThreading();
     48    WTF::initializeMainThread();
    4849
    4950    WebProcess::shared().initialize(serverName, RunLoop::current());
  • trunk/WebKit2/WebProcess/Launching/mac/WebProcessMain.mm

    r57732 r58266  
    3131#import <signal.h>
    3232#import <unistd.h>
     33#import <wtf/Threading.h>
    3334
    3435// FIXME: We should be doing this another way.
     
    6061    InitWebCoreSystemInterface();
    6162    JSC::initializeThreading();
     63    WTF::initializeMainThread();
    6264    RunLoop::initializeMainRunLoop();
    63    
     65
    6466    // Create the connection.
    6567    WebProcess::shared().initialize(serverPort, RunLoop::main());
  • trunk/WebKit2/WebProcess/win/WebProcessMain.cpp

    r57739 r58266  
    2929#include "WebProcess.h"
    3030#include <runtime/InitializeThreading.h>
     31#import <wtf/Threading.h>
    3132
    3233namespace WebKit {
     
    3738
    3839    JSC::initializeThreading();
     40    WTF::initializeMainThread();
    3941    RunLoop::initializeMainRunLoop();
    4042
Note: See TracChangeset for help on using the changeset viewer.