Bug 109071

Summary: Rename isMainThread to isInWebCoreExecutionContext
Product: WebKit Reporter: Pratik Solanki <psolanki>
Component: Web Template FrameworkAssignee: Pratik Solanki <psolanki>
Status: RESOLVED WONTFIX    
Severity: Normal CC: abarth, andersca, ap, benjamin, buildbot, cgarcia, danw, darin, dbates, ddkilzer, dglazkov, dino, d-r, eric.carlson, eric, feature-media-reviews, gns, gyuyoung.kim, haraken, hta, jamesr, japhet, mitz, mrobinson, noam, ojan.autocc, peter+ews, psolanki, rakuco, rniwa, simon.fraser, tommyw, tonikitoo, webkit.review.bot, yutak
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
WIP patch for the EWS bots to chew on
webkit.review.bot: commit-queue-
Take 2 for EWS abarth: review-

Description Pratik Solanki 2013-02-06 10:55:43 PST
When USE(WEB_THREAD) is defined, we can have WebCore running on main thread or web thread. We should rename isMainThread to be clearer.
Comment 1 Pratik Solanki 2013-02-06 10:58:45 PST
Created attachment 186877 [details]
WIP patch for the EWS bots to chew on

First shot at the rename. Lets see what the EWS bots say.
Comment 2 WebKit Review Bot 2013-02-06 11:01:23 PST
Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See http://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API
Comment 3 WebKit Review Bot 2013-02-06 11:01:53 PST
Attachment 186877 [details] did not pass style-queue:

Failed to run "['Tools/Scripts/check-webkit-style', '--diff-files', u'Source/JavaScriptCore/JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreExports.def', u'Source/JavaScriptCore/JavaScriptCore.vcxproj/JavaScriptCoreExportGenerator/JavaScriptCoreExports.def.in', u'Source/JavaScriptCore/JavaScriptCore.vcxproj/JavaScriptCoreExports.def', u'Source/JavaScriptCore/bytecode/SamplingTool.h', u'Source/JavaScriptCore/heap/HeapTimer.cpp', u'Source/WTF/wtf/MainThread.cpp', u'Source/WTF/wtf/MainThread.h', u'Source/WTF/wtf/mac/MainThreadMac.mm', u'Source/WTF/wtf/text/StringStatics.cpp', u'Source/WebCore/Modules/filesystem/LocalFileSystem.cpp', u'Source/WebCore/Modules/filesystem/chromium/DraggedIsolatedFileSystem.cpp', u'Source/WebCore/Modules/mediasource/MediaSourceRegistry.cpp', u'Source/WebCore/Modules/mediastream/MediaStreamRegistry.cpp', u'Source/WebCore/Modules/webaudio/AsyncAudioDecoder.cpp', u'Source/WebCore/Modules/webaudio/AudioBasicInspectorNode.cpp', u'Source/WebCore/Modules/webaudio/AudioBufferSourceNode.cpp', u'Source/WebCore/Modules/webaudio/AudioContext.cpp', u'Source/WebCore/Modules/webaudio/AudioContext.h', u'Source/WebCore/Modules/webaudio/AudioNode.cpp', u'Source/WebCore/Modules/webaudio/AudioScheduledSourceNode.cpp', u'Source/WebCore/Modules/webaudio/ConvolverNode.cpp', u'Source/WebCore/Modules/webaudio/DefaultAudioDestinationNode.cpp', u'Source/WebCore/Modules/webaudio/OfflineAudioDestinationNode.cpp', u'Source/WebCore/Modules/webaudio/OscillatorNode.cpp', u'Source/WebCore/Modules/webaudio/RealtimeAnalyser.cpp', u'Source/WebCore/Modules/webaudio/ScriptProcessorNode.cpp', u'Source/WebCore/Modules/webaudio/WaveShaperNode.cpp', u'Source/WebCore/Modules/websockets/WorkerThreadableWebSocketChannel.cpp', u'Source/WebCore/bindings/js/DOMWrapperWorld.cpp', u'Source/WebCore/bindings/js/JSDOMWindowBase.cpp', u'Source/WebCore/bindings/js/JSInjectedScriptManager.cpp', u'Source/WebCore/bindings/js/JSMainThreadExecState.h', u'Source/WebCore/bindings/js/ScriptFunctionCall.cpp', u'Source/WebCore/bindings/objc/WebScriptObject.mm', u'Source/WebCore/bindings/v8/DOMDataStore.cpp', u'Source/WebCore/bindings/v8/DOMWrapperWorld.cpp', u'Source/WebCore/bindings/v8/V8GCController.cpp', u'Source/WebCore/bindings/v8/V8Initializer.cpp', u'Source/WebCore/bindings/v8/V8StringResource.cpp', u'Source/WebCore/dom/ContainerNode.h', u'Source/WebCore/dom/Document.cpp', u'Source/WebCore/dom/MutationObserver.cpp', u'Source/WebCore/dom/Node.h', u'Source/WebCore/dom/ScriptExecutionContext.cpp', u'Source/WebCore/fileapi/ThreadableBlobRegistry.cpp', u'Source/WebCore/html/DOMURL.cpp', u'Source/WebCore/html/parser/HTMLTreeBuilder.cpp', u'Source/WebCore/html/parser/XSSAuditor.cpp', u'Source/WebCore/html/parser/XSSAuditorDelegate.cpp', u'Source/WebCore/inspector/InspectorCounters.h', u'Source/WebCore/inspector/InstrumentingAgents.cpp', u'Source/WebCore/loader/CrossOriginPreflightResultCache.cpp', u'Source/WebCore/loader/ResourceLoadScheduler.cpp', u'Source/WebCore/loader/WorkerThreadableLoader.cpp', u'Source/WebCore/loader/appcache/ApplicationCacheGroup.cpp', u'Source/WebCore/loader/cache/MemoryCache.cpp', u'Source/WebCore/loader/icon/IconDatabase.cpp', u'Source/WebCore/page/DOMWindow.cpp', u'Source/WebCore/page/History.cpp', u'Source/WebCore/page/MemoryInfo.cpp', u'Source/WebCore/page/SecurityPolicy.cpp', u'Source/WebCore/page/mac/EventHandlerMac.mm', u'Source/WebCore/page/scrolling/ScrollingCoordinator.cpp', u'Source/WebCore/page/scrolling/ScrollingTree.cpp', u'Source/WebCore/page/scrolling/mac/ScrollingCoordinatorMac.mm', u'Source/WebCore/platform/MIMETypeRegistry.cpp', u'Source/WebCore/platform/ThreadGlobalData.cpp', u'Source/WebCore/platform/ThreadTimers.cpp', u'Source/WebCore/platform/TreeShared.h', u'Source/WebCore/platform/audio/HRTFDatabaseLoader.cpp', u'Source/WebCore/platform/chromium/support/WebMediaStreamSource.cpp', u'Source/WebCore/platform/efl/MIMETypeRegistryEfl.cpp', u'Source/WebCore/platform/graphics/Font.cpp', u'Source/WebCore/platform/graphics/FontFallbackList.h', u'Source/WebCore/platform/graphics/FontFastPath.cpp', u'Source/WebCore/platform/graphics/Image.cpp', u'Source/WebCore/platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp', u'Source/WebCore/platform/graphics/ca/mac/TileCache.mm', u'Source/WebCore/platform/graphics/ca/mac/WebTileCacheLayer.mm', u'Source/WebCore/platform/graphics/ca/win/PlatformCALayerWinInternal.cpp', u'Source/WebCore/platform/graphics/ca/win/WKCACFViewLayerTreeHost.cpp', u'Source/WebCore/platform/graphics/cairo/GLContext.cpp', u'Source/WebCore/platform/graphics/cg/ImageBufferCG.cpp', u'Source/WebCore/platform/graphics/gpu/SharedGraphicsContext3D.cpp', u'Source/WebCore/platform/graphics/mac/FontCacheMac.mm', u'Source/WebCore/platform/graphics/mac/SimpleFontDataMac.mm', u'Source/WebCore/platform/graphics/opengl/Extensions3DOpenGLCommon.cpp', u'Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp', u'Source/WebCore/platform/gtk/MIMETypeRegistryGtk.cpp', u'Source/WebCore/platform/mac/Language.mm', u'Source/WebCore/platform/mac/LocalizedStringsMac.cpp', u'Source/WebCore/platform/mac/MIMETypeRegistryMac.mm', u'Source/WebCore/platform/mac/WebCoreObjCExtras.mm', u'Source/WebCore/platform/mac/WebVideoFullscreenController.mm', u'Source/WebCore/platform/mediastream/blackberry/MediaStreamCenterBlackBerry.cpp', u'Source/WebCore/platform/mediastream/chromium/MediaStreamCenterChromium.cpp', u'Source/WebCore/platform/mediastream/gstreamer/MediaStreamCenterGStreamer.cpp', u'Source/WebCore/platform/network/BlobRegistryImpl.cpp', u'Source/WebCore/platform/network/ResourceHandle.cpp', u'Source/WebCore/platform/network/cf/CookieStorageCFNet.cpp', u'Source/WebCore/platform/network/cf/DNSCFNet.cpp', u'Source/WebCore/platform/network/cf/LoaderRunLoopCF.cpp', u'Source/WebCore/platform/network/cf/NetworkStorageSessionCFNet.cpp', u'Source/WebCore/platform/network/cf/SocketStreamHandleCFNet.cpp', u'Source/WebCore/platform/network/chromium/BlobRegistryProxy.cpp', u'Source/WebCore/platform/network/soup/DNSSoup.cpp', u'Source/WebCore/platform/network/soup/NetworkStorageSessionSoup.cpp', u'Source/WebCore/platform/text/TextEncodingRegistry.cpp', u'Source/WebCore/platform/text/cf/StringImplCF.cpp', u'Source/WebCore/platform/win/LocalizedStringsWin.cpp', u'Source/WebCore/platform/win/MIMETypeRegistryWin.cpp', u'Source/WebCore/platform/wx/MimeTypeRegistryWx.cpp', u'Source/WebCore/storage/StorageAreaImpl.cpp', u'Source/WebCore/storage/StorageAreaSync.cpp', u'Source/WebCore/storage/StorageNamespaceImpl.cpp', u'Source/WebCore/storage/StorageSyncManager.cpp', u'Source/WebCore/storage/StorageThread.cpp', u'Source/WebCore/storage/StorageTracker.cpp', u'Source/WebCore/workers/SharedWorker.cpp', u'Source/WebCore/workers/Worker.cpp', u'Source/WebCore/workers/WorkerMessagingProxy.cpp', u'Source/WebKit/WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in', u'Source/WebKit/chromium/src/WebKit.cpp', u'Source/WebKit/chromium/src/WorkerFileSystemCallbacksBridge.cpp', u'Source/WebKit/chromium/src/WorkerFileWriterCallbacksBridge.cpp', u'Source/WebKit/gtk/webkit/webkitfavicondatabase.cpp', u'Source/WebKit/mac/Misc/WebLocalizableStrings.mm', u'Source/WebKit/mac/Storage/WebDatabaseManagerClient.mm', u'Source/WebKit/mac/Storage/WebStorageTrackerClient.mm', u'Source/WebKit/mac/WebCoreSupport/WebFrameNetworkingContext.mm', u'Source/WebKit/win/WebCoreSupport/WebFrameNetworkingContext.cpp', u'Source/WebKit/win/WebDatabaseManager.cpp', u'Source/WebKit/win/WebKit.vcproj/WebKitExports.def.in', u'Source/WebKit/win/WebKit.vcproj/WebKit_Cairo.def', u'Source/WebKit/win/WebKit.vcproj/WebKit_Cairo_debug.def', u'Source/WebKit2/NetworkProcess/HostRecord.cpp', u'Source/WebKit2/NetworkProcess/NetworkResourceLoadScheduler.cpp', u'Source/WebKit2/NetworkProcess/NetworkResourceLoader.cpp', u'Source/WebKit2/NetworkProcess/SchedulableLoader.h', u'Source/WebKit2/NetworkProcess/SyncNetworkResourceLoader.cpp', u'Source/WebKit2/NetworkProcess/mac/RemoteNetworkingContext.mm', u'Source/WebKit2/Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm', u'Source/WebKit2/UIProcess/API/gtk/WebKitFaviconDatabase.cpp', u'Source/WebKit2/UIProcess/API/mac/WKPrintingView.mm', u'Source/WebKit2/UIProcess/WebProcessProxy.cpp', u'Source/WebKit2/WebProcess/Cookies/WebCookieManager.cpp', u'Source/WebKit2/WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.mm', u'Source/WebKit2/WebProcess/WebPage/EventDispatcher.cpp', u'Tools/Scripts/do-webcore-rename']" exit_code: 1
Source/JavaScriptCore/JavaScriptCore.vcxproj/JavaScriptCoreExportGenerator/JavaScriptCoreExports.def.in:279:  One or more unexpected \r (^M) found; better to use only a \n  [whitespace/carriage_return] [1]
Suppressing further [whitespace/carriage_return] reports for this file.
Source/WebCore/Modules/websockets/WorkerThreadableWebSocketChannel.cpp:343:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 2 in 149 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 4 WebKit Review Bot 2013-02-06 11:29:49 PST
Comment on attachment 186877 [details]
WIP patch for the EWS bots to chew on

Attachment 186877 [details] did not pass cr-linux-debug-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/16395313
Comment 5 WebKit Review Bot 2013-02-06 11:36:42 PST
Comment on attachment 186877 [details]
WIP patch for the EWS bots to chew on

Attachment 186877 [details] did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/16395316
Comment 6 Build Bot 2013-02-06 11:38:00 PST
Comment on attachment 186877 [details]
WIP patch for the EWS bots to chew on

Attachment 186877 [details] did not pass mac-wk2-ews (mac-wk2):
Output: http://queues.webkit.org/results/16396301
Comment 7 Peter Beverloo (cr-android ews) 2013-02-06 12:02:19 PST
Comment on attachment 186877 [details]
WIP patch for the EWS bots to chew on

Attachment 186877 [details] did not pass cr-android-ews (chromium-android):
Output: http://queues.webkit.org/results/16401222
Comment 8 Pratik Solanki 2013-02-06 12:21:20 PST
Created attachment 186893 [details]
Take 2 for EWS

This fixes some compile issues and renames isMainThreadOrGCThread to isInWebCoreExecutionContextOrGCThread.
Comment 9 WebKit Review Bot 2013-02-06 12:28:30 PST
Attachment 186893 [details] did not pass style-queue:

Failed to run "['Tools/Scripts/check-webkit-style', '--diff-files', u'Source/JavaScriptCore/JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCoreExports.def', u'Source/JavaScriptCore/JavaScriptCore.vcxproj/JavaScriptCoreExportGenerator/JavaScriptCoreExports.def.in', u'Source/JavaScriptCore/JavaScriptCore.vcxproj/JavaScriptCoreExports.def', u'Source/JavaScriptCore/bytecode/SamplingTool.h', u'Source/JavaScriptCore/heap/HeapTimer.cpp', u'Source/WTF/wtf/MainThread.cpp', u'Source/WTF/wtf/MainThread.h', u'Source/WTF/wtf/chromium/MainThreadChromium.cpp', u'Source/WTF/wtf/mac/MainThreadMac.mm', u'Source/WTF/wtf/text/StringStatics.cpp', u'Source/WebCore/Modules/filesystem/LocalFileSystem.cpp', u'Source/WebCore/Modules/filesystem/chromium/DraggedIsolatedFileSystem.cpp', u'Source/WebCore/Modules/mediasource/MediaSourceRegistry.cpp', u'Source/WebCore/Modules/mediastream/MediaStreamRegistry.cpp', u'Source/WebCore/Modules/webaudio/AsyncAudioDecoder.cpp', u'Source/WebCore/Modules/webaudio/AudioBasicInspectorNode.cpp', u'Source/WebCore/Modules/webaudio/AudioBufferSourceNode.cpp', u'Source/WebCore/Modules/webaudio/AudioContext.cpp', u'Source/WebCore/Modules/webaudio/AudioContext.h', u'Source/WebCore/Modules/webaudio/AudioNode.cpp', u'Source/WebCore/Modules/webaudio/AudioScheduledSourceNode.cpp', u'Source/WebCore/Modules/webaudio/ConvolverNode.cpp', u'Source/WebCore/Modules/webaudio/DefaultAudioDestinationNode.cpp', u'Source/WebCore/Modules/webaudio/OfflineAudioDestinationNode.cpp', u'Source/WebCore/Modules/webaudio/OscillatorNode.cpp', u'Source/WebCore/Modules/webaudio/RealtimeAnalyser.cpp', u'Source/WebCore/Modules/webaudio/ScriptProcessorNode.cpp', u'Source/WebCore/Modules/webaudio/WaveShaperNode.cpp', u'Source/WebCore/Modules/websockets/WorkerThreadableWebSocketChannel.cpp', u'Source/WebCore/bindings/js/DOMWrapperWorld.cpp', u'Source/WebCore/bindings/js/JSDOMWindowBase.cpp', u'Source/WebCore/bindings/js/JSInjectedScriptManager.cpp', u'Source/WebCore/bindings/js/JSMainThreadExecState.h', u'Source/WebCore/bindings/js/ScriptFunctionCall.cpp', u'Source/WebCore/bindings/objc/WebScriptObject.mm', u'Source/WebCore/bindings/v8/DOMDataStore.cpp', u'Source/WebCore/bindings/v8/DOMWrapperWorld.cpp', u'Source/WebCore/bindings/v8/V8GCController.cpp', u'Source/WebCore/bindings/v8/V8Initializer.cpp', u'Source/WebCore/bindings/v8/V8StringResource.cpp', u'Source/WebCore/dom/ContainerNode.h', u'Source/WebCore/dom/Document.cpp', u'Source/WebCore/dom/MutationObserver.cpp', u'Source/WebCore/dom/Node.h', u'Source/WebCore/dom/ScriptExecutionContext.cpp', u'Source/WebCore/fileapi/ThreadableBlobRegistry.cpp', u'Source/WebCore/html/DOMURL.cpp', u'Source/WebCore/html/parser/HTMLTreeBuilder.cpp', u'Source/WebCore/html/parser/XSSAuditor.cpp', u'Source/WebCore/html/parser/XSSAuditorDelegate.cpp', u'Source/WebCore/inspector/InspectorCounters.h', u'Source/WebCore/inspector/InstrumentingAgents.cpp', u'Source/WebCore/loader/CrossOriginPreflightResultCache.cpp', u'Source/WebCore/loader/ResourceLoadScheduler.cpp', u'Source/WebCore/loader/WorkerThreadableLoader.cpp', u'Source/WebCore/loader/appcache/ApplicationCacheGroup.cpp', u'Source/WebCore/loader/cache/MemoryCache.cpp', u'Source/WebCore/loader/icon/IconDatabase.cpp', u'Source/WebCore/page/DOMWindow.cpp', u'Source/WebCore/page/History.cpp', u'Source/WebCore/page/MemoryInfo.cpp', u'Source/WebCore/page/SecurityPolicy.cpp', u'Source/WebCore/page/mac/EventHandlerMac.mm', u'Source/WebCore/page/scrolling/ScrollingCoordinator.cpp', u'Source/WebCore/page/scrolling/ScrollingTree.cpp', u'Source/WebCore/page/scrolling/mac/ScrollingCoordinatorMac.mm', u'Source/WebCore/platform/MIMETypeRegistry.cpp', u'Source/WebCore/platform/ThreadGlobalData.cpp', u'Source/WebCore/platform/ThreadTimers.cpp', u'Source/WebCore/platform/TreeShared.h', u'Source/WebCore/platform/audio/HRTFDatabaseLoader.cpp', u'Source/WebCore/platform/chromium/support/WebMediaStreamSource.cpp', u'Source/WebCore/platform/efl/MIMETypeRegistryEfl.cpp', u'Source/WebCore/platform/graphics/Font.cpp', u'Source/WebCore/platform/graphics/FontFallbackList.h', u'Source/WebCore/platform/graphics/FontFastPath.cpp', u'Source/WebCore/platform/graphics/Image.cpp', u'Source/WebCore/platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp', u'Source/WebCore/platform/graphics/ca/mac/TileCache.mm', u'Source/WebCore/platform/graphics/ca/mac/WebTileCacheLayer.mm', u'Source/WebCore/platform/graphics/ca/win/PlatformCALayerWinInternal.cpp', u'Source/WebCore/platform/graphics/ca/win/WKCACFViewLayerTreeHost.cpp', u'Source/WebCore/platform/graphics/cairo/GLContext.cpp', u'Source/WebCore/platform/graphics/cg/ImageBufferCG.cpp', u'Source/WebCore/platform/graphics/gpu/SharedGraphicsContext3D.cpp', u'Source/WebCore/platform/graphics/mac/FontCacheMac.mm', u'Source/WebCore/platform/graphics/mac/SimpleFontDataMac.mm', u'Source/WebCore/platform/graphics/opengl/Extensions3DOpenGLCommon.cpp', u'Source/WebCore/platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp', u'Source/WebCore/platform/gtk/MIMETypeRegistryGtk.cpp', u'Source/WebCore/platform/mac/Language.mm', u'Source/WebCore/platform/mac/LocalizedStringsMac.cpp', u'Source/WebCore/platform/mac/MIMETypeRegistryMac.mm', u'Source/WebCore/platform/mac/WebCoreObjCExtras.mm', u'Source/WebCore/platform/mediastream/blackberry/MediaStreamCenterBlackBerry.cpp', u'Source/WebCore/platform/mediastream/chromium/MediaStreamCenterChromium.cpp', u'Source/WebCore/platform/mediastream/gstreamer/MediaStreamCenterGStreamer.cpp', u'Source/WebCore/platform/network/BlobRegistryImpl.cpp', u'Source/WebCore/platform/network/ResourceHandle.cpp', u'Source/WebCore/platform/network/cf/CookieStorageCFNet.cpp', u'Source/WebCore/platform/network/cf/DNSCFNet.cpp', u'Source/WebCore/platform/network/cf/LoaderRunLoopCF.cpp', u'Source/WebCore/platform/network/cf/NetworkStorageSessionCFNet.cpp', u'Source/WebCore/platform/network/cf/SocketStreamHandleCFNet.cpp', u'Source/WebCore/platform/network/chromium/BlobRegistryProxy.cpp', u'Source/WebCore/platform/network/soup/DNSSoup.cpp', u'Source/WebCore/platform/network/soup/NetworkStorageSessionSoup.cpp', u'Source/WebCore/platform/text/TextEncodingRegistry.cpp', u'Source/WebCore/platform/text/cf/StringImplCF.cpp', u'Source/WebCore/platform/win/LocalizedStringsWin.cpp', u'Source/WebCore/platform/win/MIMETypeRegistryWin.cpp', u'Source/WebCore/platform/wx/MimeTypeRegistryWx.cpp', u'Source/WebCore/storage/StorageAreaImpl.cpp', u'Source/WebCore/storage/StorageAreaSync.cpp', u'Source/WebCore/storage/StorageNamespaceImpl.cpp', u'Source/WebCore/storage/StorageSyncManager.cpp', u'Source/WebCore/storage/StorageThread.cpp', u'Source/WebCore/storage/StorageTracker.cpp', u'Source/WebCore/workers/SharedWorker.cpp', u'Source/WebCore/workers/Worker.cpp', u'Source/WebCore/workers/WorkerMessagingProxy.cpp', u'Source/WebKit/WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in', u'Source/WebKit/chromium/src/WebKit.cpp', u'Source/WebKit/chromium/src/WorkerFileSystemCallbacksBridge.cpp', u'Source/WebKit/chromium/src/WorkerFileWriterCallbacksBridge.cpp', u'Source/WebKit/gtk/webkit/webkitfavicondatabase.cpp', u'Source/WebKit/mac/Misc/WebLocalizableStrings.mm', u'Source/WebKit/mac/Storage/WebDatabaseManagerClient.mm', u'Source/WebKit/mac/Storage/WebStorageTrackerClient.mm', u'Source/WebKit/mac/WebCoreSupport/WebFrameNetworkingContext.mm', u'Source/WebKit/win/WebCoreSupport/WebFrameNetworkingContext.cpp', u'Source/WebKit/win/WebDatabaseManager.cpp', u'Source/WebKit/win/WebKit.vcproj/WebKitExports.def.in', u'Source/WebKit/win/WebKit.vcproj/WebKit_Cairo.def', u'Source/WebKit/win/WebKit.vcproj/WebKit_Cairo_debug.def', u'Source/WebKit2/NetworkProcess/HostRecord.cpp', u'Source/WebKit2/NetworkProcess/NetworkResourceLoadScheduler.cpp', u'Source/WebKit2/NetworkProcess/NetworkResourceLoader.cpp', u'Source/WebKit2/NetworkProcess/SchedulableLoader.h', u'Source/WebKit2/NetworkProcess/SyncNetworkResourceLoader.cpp', u'Source/WebKit2/NetworkProcess/mac/RemoteNetworkingContext.mm', u'Source/WebKit2/Shared/Plugins/Netscape/mac/NetscapePluginModuleMac.mm', u'Source/WebKit2/UIProcess/API/gtk/WebKitFaviconDatabase.cpp', u'Source/WebKit2/UIProcess/API/mac/WKPrintingView.mm', u'Source/WebKit2/UIProcess/WebProcessProxy.cpp', u'Source/WebKit2/WebProcess/Cookies/WebCookieManager.cpp', u'Source/WebKit2/WebProcess/WebCoreSupport/mac/WebFrameNetworkingContext.mm', u'Source/WebKit2/WebProcess/WebPage/EventDispatcher.cpp', u'Tools/Scripts/do-webcore-rename']" exit_code: 1
Source/JavaScriptCore/JavaScriptCore.vcxproj/JavaScriptCoreExportGenerator/JavaScriptCoreExports.def.in:279:  One or more unexpected \r (^M) found; better to use only a \n  [whitespace/carriage_return] [1]
Suppressing further [whitespace/carriage_return] reports for this file.
Total errors found: 1 in 149 files


If any of these errors are false positives, please file a bug against check-webkit-style.
Comment 10 Adam Barth 2013-02-06 12:29:13 PST
I'm not sure I understand this new threading model.  Would you be willing to explain it on webkit-dev?
Comment 11 Eric Seidel (no email) 2013-02-06 12:52:02 PST
o_O
Comment 12 Adam Barth 2013-02-06 12:53:27 PST
Comment on attachment 186893 [details]
Take 2 for EWS

Pending resolution of Comment #10.
Comment 13 Alexey Proskuryakov 2013-02-06 14:38:22 PST
Can this be named isInWebCoreExecutionThread?
Comment 14 Benjamin Poulain 2013-02-06 14:41:36 PST
(In reply to comment #10)
> I'm not sure I understand this new threading model.  Would you be willing to explain it on webkit-dev?

I know this looks a little scary, but there is really not much threading involved other than some message passing in the WebKit layer. :)

There are two threads, one for WebKit (the Web Thread) and the main thread where the UI lives. The two threads can enter WebKit, but not simultaneously (locking at the event loop, not in WebCore).

The biggest changes are really in assertions. Many of them assume WebCore runs in the main thread, while on iOS you can be either one of two threads.

The change is mostly transparent for WebKit. Except assertions and a few details, the code runs just like on Mac. We want this to be mostly an implementation detail, not something people have to consider extensively when making changes.
How do you suggest we can make this change as painless a possible?
Comment 15 Adam Barth 2013-02-06 15:46:45 PST
Maybe we should change what isMainThread means on iOS rather than renaming it everywhere?  From WebCore's point of view, it sounds like there's still a main thread...
Comment 16 Pratik Solanki 2013-02-06 17:01:07 PST
(In reply to comment #15)
> Maybe we should change what isMainThread means on iOS rather than renaming it everywhere?

Sure. But that would have been confusing on iOS. Which is why we wanted to come up with a function name that works for both.
Comment 17 Pratik Solanki 2013-02-06 17:34:44 PST
Ok. So for the moment we will just change isMainThread to have an PLATFORM(IOS) part. It would be good to have a name for isMainThread that can work for both though. But that can be done later.
Comment 18 Adam Barth 2013-02-06 18:21:03 PST
Thanks.  I think it's better to hide this information from WebCore as much as possible, including avoiding mysterious names like "WebCore execution context".
Comment 19 Darin Adler 2013-02-08 09:49:04 PST
(In reply to comment #18)
> I think it's better to hide this information from WebCore as much as possible, including avoiding mysterious names like "WebCore execution context".

Adam, I wish we could talk about this in person. I’m not sure I can do this justice in a bug comment.

I do want to shield WebCore from confusing concepts, but I think we can make things better by making some change here. The issue is that there are two different concepts.

A)

One is checking that it’s safe to use single-threaded WebCore data structures. Today, we write this:

ASSERT(isMainThread());

But iOS WebKit, one of the older WebKit ports, but one that’s not integrated in the repository yet, has a different policy. It would be good if there was a clearer way to indicate that we want to check whether we are on a thread where it’s safe to run WebKit.

ASSERT(isSafeToAccessWebCoreDataStructures());

Or something brief and clear.

B)

The second concept is that there is a “main thread” and you can do things like run code on that main thread. This is a basic WTF concept, and not one defined at the higher WebCore level. Mechanically checking if this is the that special thread is different than asking if it’s safe to use WebCore data structures. I think it’s this concept (B) that deserves the name isMainThread(), not the first.

The current way of doing our WebCore data structure assertions makes the intent unclear at many call sites because it’s too specific and mechanical.

I think this new threading assertion might belong in some higher level than WTF, although I suppose that may be impractical because the “single thread WebCore” concept may indeed already be present at the WTF level.
Comment 20 Adam Barth 2013-02-08 09:54:51 PST
It's not clear to me that running WebCore on multiple interlocked threads is a good idea.  That seems like a pretty major change to WebCore's architecture.  Is that something that's up for discussion?

> ASSERT(isSafeToAccessWebCoreDataStructures());

The problem with names like these is that they're confusing.  WebCore itself uses multiple threads (e.g., for databases, workers, and likely more things in the future).  Those threads are also part of WebCore and have data structures.  Presumably it's safe to access those WebCore data structures on background threads.
Comment 21 Darin Adler 2013-02-08 09:58:10 PST
(In reply to comment #20)
> It's not clear to me that running WebCore on multiple interlocked threads is a good idea.  That seems like a pretty major change to WebCore's architecture.  Is that something that's up for discussion?

I agree that it’s not something I’d do if I was starting a project now.

In the iOS context, it’s fantastic for discussion as a possibly multi-year major architecture change, but if we take a hard line on this, then we won’t have the iOS port in the tree for years, and I think it would be good if we do. iOS WebKit has worked this way for the entire history of iPhone, so it’s not a change that can be made easily.
Comment 22 Darin Adler 2013-02-08 10:00:58 PST
(In reply to comment #20)
> > ASSERT(isSafeToAccessWebCoreDataStructures());
> 
> The problem with names like these is that they're confusing. WebCore itself uses multiple threads (e.g., for databases, workers, and likely more things in the future). Those threads are also part of WebCore and have data structures. Presumably it's safe to access those WebCore data structures on background threads.

I understand that it’s hard to find a good name for the concept. I understand that you are moving the WebCore threading model forward, too, and this might be an unwanted distraction during that process.

That makes clear that this is a difficult problem to be solved.

I think where you and I may differ is on whether a good solution to the problem would be valuable to the WebKit project. Is there some way I convince you of the value of fitting an important existing port of WebKit into our tree in as clean as possible a way?
Comment 23 Adam Barth 2013-02-08 13:44:40 PST
I replied on webkit-dev.