Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(39)

Side by Side Diff: Source/web/WebSharedWorkerImpl.cpp

Issue 1115923002: workers: Rename WorkerThread to WorkerScript. Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: . Created 5 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2009 Google Inc. All rights reserved. 2 * Copyright (C) 2009 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
42 #include "core/loader/FrameLoadRequest.h" 42 #include "core/loader/FrameLoadRequest.h"
43 #include "core/loader/FrameLoader.h" 43 #include "core/loader/FrameLoader.h"
44 #include "core/page/Page.h" 44 #include "core/page/Page.h"
45 #include "core/workers/SharedWorkerGlobalScope.h" 45 #include "core/workers/SharedWorkerGlobalScope.h"
46 #include "core/workers/SharedWorkerThread.h" 46 #include "core/workers/SharedWorkerThread.h"
47 #include "core/workers/WorkerClients.h" 47 #include "core/workers/WorkerClients.h"
48 #include "core/workers/WorkerGlobalScope.h" 48 #include "core/workers/WorkerGlobalScope.h"
49 #include "core/workers/WorkerInspectorProxy.h" 49 #include "core/workers/WorkerInspectorProxy.h"
50 #include "core/workers/WorkerLoaderProxy.h" 50 #include "core/workers/WorkerLoaderProxy.h"
51 #include "core/workers/WorkerScriptLoader.h" 51 #include "core/workers/WorkerScriptLoader.h"
52 #include "core/workers/WorkerThreadStartupData.h" 52 #include "core/workers/WorkerScriptStartupData.h"
53 #include "platform/RuntimeEnabledFeatures.h" 53 #include "platform/RuntimeEnabledFeatures.h"
54 #include "platform/ThreadSafeFunctional.h" 54 #include "platform/ThreadSafeFunctional.h"
55 #include "platform/heap/Handle.h" 55 #include "platform/heap/Handle.h"
56 #include "platform/network/ContentSecurityPolicyParsers.h" 56 #include "platform/network/ContentSecurityPolicyParsers.h"
57 #include "platform/network/ResourceResponse.h" 57 #include "platform/network/ResourceResponse.h"
58 #include "platform/weborigin/KURL.h" 58 #include "platform/weborigin/KURL.h"
59 #include "platform/weborigin/SecurityOrigin.h" 59 #include "platform/weborigin/SecurityOrigin.h"
60 #include "public/platform/WebFileError.h" 60 #include "public/platform/WebFileError.h"
61 #include "public/platform/WebMessagePortChannel.h" 61 #include "public/platform/WebMessagePortChannel.h"
62 #include "public/platform/WebString.h" 62 #include "public/platform/WebString.h"
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after
184 return; 184 return;
185 m_askedToTerminate = true; 185 m_askedToTerminate = true;
186 if (m_mainScriptLoader) { 186 if (m_mainScriptLoader) {
187 m_mainScriptLoader->cancel(); 187 m_mainScriptLoader->cancel();
188 m_mainScriptLoader.clear(); 188 m_mainScriptLoader.clear();
189 if (client()) 189 if (client())
190 client()->workerScriptLoadFailed(); 190 client()->workerScriptLoadFailed();
191 delete this; 191 delete this;
192 return; 192 return;
193 } 193 }
194 if (m_workerThread) 194 if (m_workerScript)
195 m_workerThread->stop(); 195 m_workerScript->stop();
196 m_workerInspectorProxy->workerThreadTerminated(); 196 m_workerInspectorProxy->workerScriptTerminated();
197 } 197 }
198 198
199 void WebSharedWorkerImpl::initializeLoader() 199 void WebSharedWorkerImpl::initializeLoader()
200 { 200 {
201 // Create 'shadow page'. This page is never displayed, it is used to proxy t he 201 // Create 'shadow page'. This page is never displayed, it is used to proxy t he
202 // loading requests from the worker context to the rest of WebKit and Chromi um 202 // loading requests from the worker context to the rest of WebKit and Chromi um
203 // infrastructure. 203 // infrastructure.
204 ASSERT(!m_webView); 204 ASSERT(!m_webView);
205 m_webView = WebView::create(0); 205 m_webView = WebView::create(0);
206 // FIXME: http://crbug.com/363843. This needs to find a better way to 206 // FIXME: http://crbug.com/363843. This needs to find a better way to
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
320 if (client()) 320 if (client())
321 client()->workerContextClosed(); 321 client()->workerContextClosed();
322 322
323 stopWorkerThread(); 323 stopWorkerThread();
324 } 324 }
325 325
326 void WebSharedWorkerImpl::workerGlobalScopeStarted(WorkerGlobalScope*) 326 void WebSharedWorkerImpl::workerGlobalScopeStarted(WorkerGlobalScope*)
327 { 327 {
328 } 328 }
329 329
330 void WebSharedWorkerImpl::workerThreadTerminated() 330 void WebSharedWorkerImpl::workerScriptTerminated()
331 { 331 {
332 Platform::current()->mainThread()->postTask(FROM_HERE, threadSafeBind(&WebSh aredWorkerImpl::workerThreadTerminatedOnMainThread, AllowCrossThreadAccess(this) )); 332 Platform::current()->mainThread()->postTask(FROM_HERE, threadSafeBind(&WebSh aredWorkerImpl::workerScriptTerminatedOnMainThread, AllowCrossThreadAccess(this) ));
333 } 333 }
334 334
335 void WebSharedWorkerImpl::workerThreadTerminatedOnMainThread() 335 void WebSharedWorkerImpl::workerScriptTerminatedOnMainThread()
336 { 336 {
337 if (client()) 337 if (client())
338 client()->workerContextDestroyed(); 338 client()->workerContextDestroyed();
339 // The lifetime of this proxy is controlled by the worker context. 339 // The lifetime of this proxy is controlled by the worker context.
340 delete this; 340 delete this;
341 } 341 }
342 342
343 // WorkerLoaderProxyProvider --------------------------------------------------- -------- 343 // WorkerLoaderProxyProvider --------------------------------------------------- --------
344 344
345 void WebSharedWorkerImpl::postTaskToLoader(PassOwnPtr<ExecutionContextTask> task ) 345 void WebSharedWorkerImpl::postTaskToLoader(PassOwnPtr<ExecutionContextTask> task )
346 { 346 {
347 m_mainFrame->frame()->document()->postTask(FROM_HERE, task); 347 m_mainFrame->frame()->document()->postTask(FROM_HERE, task);
348 } 348 }
349 349
350 bool WebSharedWorkerImpl::postTaskToWorkerGlobalScope(PassOwnPtr<ExecutionContex tTask> task) 350 bool WebSharedWorkerImpl::postTaskToWorkerGlobalScope(PassOwnPtr<ExecutionContex tTask> task)
351 { 351 {
352 m_workerThread->postTask(FROM_HERE, task); 352 m_workerScript->postTask(FROM_HERE, task);
353 return true; 353 return true;
354 } 354 }
355 355
356 void WebSharedWorkerImpl::connect(WebMessagePortChannel* webChannel) 356 void WebSharedWorkerImpl::connect(WebMessagePortChannel* webChannel)
357 { 357 {
358 workerThread()->postTask( 358 workerScript()->postTask(
359 FROM_HERE, createCrossThreadTask(&connectTask, adoptPtr(webChannel))); 359 FROM_HERE, createCrossThreadTask(&connectTask, adoptPtr(webChannel)));
360 } 360 }
361 361
362 void WebSharedWorkerImpl::connectTask(PassOwnPtr<WebMessagePortChannel> channel, ExecutionContext* context) 362 void WebSharedWorkerImpl::connectTask(PassOwnPtr<WebMessagePortChannel> channel, ExecutionContext* context)
363 { 363 {
364 // Wrap the passed-in channel in a MessagePort, and send it off via a connec t event. 364 // Wrap the passed-in channel in a MessagePort, and send it off via a connec t event.
365 RefPtrWillBeRawPtr<MessagePort> port = MessagePort::create(*context); 365 RefPtrWillBeRawPtr<MessagePort> port = MessagePort::create(*context);
366 port->entangle(channel); 366 port->entangle(channel);
367 WorkerGlobalScope* workerGlobalScope = toWorkerGlobalScope(context); 367 WorkerGlobalScope* workerGlobalScope = toWorkerGlobalScope(context);
368 ASSERT_WITH_SECURITY_IMPLICATION(workerGlobalScope->isSharedWorkerGlobalScop e()); 368 ASSERT_WITH_SECURITY_IMPLICATION(workerGlobalScope->isSharedWorkerGlobalScop e());
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
407 if (InspectorInstrumentation::shouldPauseDedicatedWorkerOnStart(document)) 407 if (InspectorInstrumentation::shouldPauseDedicatedWorkerOnStart(document))
408 startMode = PauseWorkerGlobalScopeOnStart; 408 startMode = PauseWorkerGlobalScopeOnStart;
409 409
410 // FIXME: this document's origin is pristine and without any extra privilege s. (crbug.com/254993) 410 // FIXME: this document's origin is pristine and without any extra privilege s. (crbug.com/254993)
411 SecurityOrigin* starterOrigin = document->securityOrigin(); 411 SecurityOrigin* starterOrigin = document->securityOrigin();
412 412
413 OwnPtrWillBeRawPtr<WorkerClients> workerClients = WorkerClients::create(); 413 OwnPtrWillBeRawPtr<WorkerClients> workerClients = WorkerClients::create();
414 provideLocalFileSystemToWorker(workerClients.get(), LocalFileSystemClient::c reate()); 414 provideLocalFileSystemToWorker(workerClients.get(), LocalFileSystemClient::c reate());
415 WebSecurityOrigin webSecurityOrigin(m_loadingDocument->securityOrigin()); 415 WebSecurityOrigin webSecurityOrigin(m_loadingDocument->securityOrigin());
416 provideContentSettingsClientToWorker(workerClients.get(), adoptPtr(client()- >createWorkerContentSettingsClientProxy(webSecurityOrigin))); 416 provideContentSettingsClientToWorker(workerClients.get(), adoptPtr(client()- >createWorkerContentSettingsClientProxy(webSecurityOrigin)));
417 OwnPtr<WorkerThreadStartupData> startupData = WorkerThreadStartupData::creat e(m_url, m_loadingDocument->userAgent(m_url), m_mainScriptLoader->script(), null ptr, startMode, m_contentSecurityPolicy, static_cast<ContentSecurityPolicyHeader Type>(m_policyType), starterOrigin, workerClients.release()); 417 OwnPtr<WorkerScriptStartupData> startupData = WorkerScriptStartupData::creat e(m_url, m_loadingDocument->userAgent(m_url), m_mainScriptLoader->script(), null ptr, startMode, m_contentSecurityPolicy, static_cast<ContentSecurityPolicyHeader Type>(m_policyType), starterOrigin, workerClients.release());
418 m_loaderProxy = WorkerLoaderProxy::create(this); 418 m_loaderProxy = WorkerLoaderProxy::create(this);
419 setWorkerThread(SharedWorkerThread::create(m_name, m_loaderProxy, *this, sta rtupData.release())); 419 setWorkerThread(SharedWorkerThread::create(m_name, m_loaderProxy, *this, sta rtupData.release()));
420 InspectorInstrumentation::scriptImported(m_loadingDocument.get(), m_mainScri ptLoader->identifier(), m_mainScriptLoader->script()); 420 InspectorInstrumentation::scriptImported(m_loadingDocument.get(), m_mainScri ptLoader->identifier(), m_mainScriptLoader->script());
421 m_mainScriptLoader.clear(); 421 m_mainScriptLoader.clear();
422 422
423 workerThread()->start(); 423 workerScript()->start();
424 m_workerInspectorProxy->workerThreadCreated(m_loadingDocument.get(), workerT hread(), m_url); 424 m_workerInspectorProxy->workerScriptCreated(m_loadingDocument.get(), workerS cript(), m_url);
425 if (client()) 425 if (client())
426 client()->workerScriptLoaded(); 426 client()->workerScriptLoaded();
427 } 427 }
428 428
429 void WebSharedWorkerImpl::terminateWorkerContext() 429 void WebSharedWorkerImpl::terminateWorkerContext()
430 { 430 {
431 stopWorkerThread(); 431 stopWorkerThread();
432 } 432 }
433 433
434 void WebSharedWorkerImpl::clientDestroyed() 434 void WebSharedWorkerImpl::clientDestroyed()
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
471 if (devtoolsAgent) 471 if (devtoolsAgent)
472 devtoolsAgent->dispatchOnInspectorBackend(message); 472 devtoolsAgent->dispatchOnInspectorBackend(message);
473 } 473 }
474 474
475 WebSharedWorker* WebSharedWorker::create(WebSharedWorkerClient* client) 475 WebSharedWorker* WebSharedWorker::create(WebSharedWorkerClient* client)
476 { 476 {
477 return new WebSharedWorkerImpl(client); 477 return new WebSharedWorkerImpl(client);
478 } 478 }
479 479
480 } // namespace blink 480 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698