#include "modules/websockets/WebSocketChannel.h"
+#include "RuntimeEnabledFeatures.h"
#include "bindings/v8/ScriptCallStackFactory.h"
#include "core/dom/Document.h"
#include "core/dom/ExecutionContext.h"
#include "core/inspector/ScriptCallStack.h"
-#include "core/frame/Settings.h"
#include "core/workers/WorkerGlobalScope.h"
#include "core/workers/WorkerRunLoop.h"
#include "core/workers/WorkerThread.h"
#include "modules/websockets/MainThreadWebSocketChannel.h"
+#include "modules/websockets/NewWebSocketChannelImpl.h"
#include "modules/websockets/ThreadableWebSocketChannelClientWrapper.h"
#include "modules/websockets/WebSocketChannelClient.h"
#include "modules/websockets/WorkerThreadableWebSocketChannel.h"
namespace WebCore {
-static const char webSocketChannelMode[] = "webSocketChannelMode";
-
PassRefPtr<WebSocketChannel> WebSocketChannel::create(ExecutionContext* context, WebSocketChannelClient* client)
{
ASSERT(context);
if (context->isWorkerGlobalScope()) {
WorkerGlobalScope* workerGlobalScope = toWorkerGlobalScope(context);
- WorkerRunLoop& runLoop = workerGlobalScope->thread()->runLoop();
- String mode = webSocketChannelMode + String::number(runLoop.createUniqueId());
- return WorkerThreadableWebSocketChannel::create(workerGlobalScope, client, mode, sourceURL, lineNumber);
+ return WorkerThreadableWebSocketChannel::create(workerGlobalScope, client, sourceURL, lineNumber);
}
Document* document = toDocument(context);
- Settings* settings = document->settings();
- if (settings && settings->experimentalWebSocketEnabled()) {
- // FIXME: Create and return an "experimental" WebSocketChannel instead of a MainThreadWebSocketChannel.
- return MainThreadWebSocketChannel::create(document, client, sourceURL, lineNumber);
+ if (RuntimeEnabledFeatures::experimentalWebSocketEnabled()) {
+ return NewWebSocketChannelImpl::create(document, client, sourceURL, lineNumber);
}
return MainThreadWebSocketChannel::create(document, client, sourceURL, lineNumber);
}