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

Side by Side Diff: Source/core/workers/WorkerMessagingProxy.cpp

Issue 177073004: Oilpan: move core/workers to oilpan's heap. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 6 years, 10 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
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2008 Apple Inc. All Rights Reserved. 2 * Copyright (C) 2008 Apple Inc. All Rights Reserved.
3 * Copyright (C) 2009 Google Inc. All Rights Reserved. 3 * Copyright (C) 2009 Google Inc. All Rights Reserved.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions 6 * modification, are permitted provided that the following conditions
7 * are met: 7 * are met:
8 * 1. Redistributions of source code must retain the above copyright 8 * 1. 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 * 2. Redistributions in binary form must reproduce the above copyright 10 * 2. Redistributions in binary form must reproduce the above copyright
(...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after
104 ASSERT((m_executionContext->isDocument() && isMainThread()) 104 ASSERT((m_executionContext->isDocument() && isMainThread())
105 || (m_executionContext->isWorkerGlobalScope() && toWorkerGlobalScope(m_e xecutionContext.get())->thread()->isCurrentThread())); 105 || (m_executionContext->isWorkerGlobalScope() && toWorkerGlobalScope(m_e xecutionContext.get())->thread()->isCurrentThread()));
106 } 106 }
107 107
108 void WorkerMessagingProxy::startWorkerGlobalScope(const KURL& scriptURL, const S tring& userAgent, const String& sourceCode, WorkerThreadStartMode startMode) 108 void WorkerMessagingProxy::startWorkerGlobalScope(const KURL& scriptURL, const S tring& userAgent, const String& sourceCode, WorkerThreadStartMode startMode)
109 { 109 {
110 // FIXME: This need to be revisited when we support nested worker one day 110 // FIXME: This need to be revisited when we support nested worker one day
111 ASSERT(m_executionContext->isDocument()); 111 ASSERT(m_executionContext->isDocument());
112 Document* document = toDocument(m_executionContext.get()); 112 Document* document = toDocument(m_executionContext.get());
113 113
114 OwnPtr<WorkerThreadStartupData> startupData = WorkerThreadStartupData::creat e(scriptURL, userAgent, sourceCode, startMode, document->contentSecurityPolicy() ->deprecatedHeader(), document->contentSecurityPolicy()->deprecatedHeaderType(), m_workerClients.release()); 114 OwnPtrWillBeRawPtr<WorkerThreadStartupData> startupData = WorkerThreadStartu pData::create(scriptURL, userAgent, sourceCode, startMode, document->contentSecu rityPolicy()->deprecatedHeader(), document->contentSecurityPolicy()->deprecatedH eaderType(), m_workerClients.release());
115 double originTime = document->loader() ? document->loader()->timing()->refer enceMonotonicTime() : monotonicallyIncreasingTime(); 115 double originTime = document->loader() ? document->loader()->timing()->refer enceMonotonicTime() : monotonicallyIncreasingTime();
116 116
117 RefPtr<DedicatedWorkerThread> thread = DedicatedWorkerThread::create(*this, *m_workerObjectProxy.get(), originTime, startupData.release()); 117 RefPtrWillBeRawPtr<DedicatedWorkerThread> thread = DedicatedWorkerThread::cr eate(*this, *m_workerObjectProxy.get(), originTime, startupData.release());
118 workerThreadCreated(thread); 118 workerThreadCreated(thread);
119 thread->start(); 119 thread->start();
120 InspectorInstrumentation::didStartWorkerGlobalScope(m_executionContext.get() , this, scriptURL); 120 InspectorInstrumentation::didStartWorkerGlobalScope(m_executionContext.get() , this, scriptURL);
121 } 121 }
122 122
123 void WorkerMessagingProxy::postMessageToWorkerObject(PassRefPtr<SerializedScript Value> message, PassOwnPtr<MessagePortChannelArray> channels) 123 void WorkerMessagingProxy::postMessageToWorkerObject(PassRefPtr<SerializedScript Value> message, PassOwnPtr<MessagePortChannelArray> channels)
124 { 124 {
125 if (!m_workerObject || m_askedToTerminate) 125 if (!m_workerObject || m_askedToTerminate)
126 return; 126 return;
127 127
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
172 m_executionContext->reportException(event, nullptr, NotSharableCrossOrig in); 172 m_executionContext->reportException(event, nullptr, NotSharableCrossOrig in);
173 } 173 }
174 174
175 void WorkerMessagingProxy::reportConsoleMessage(MessageSource source, MessageLev el level, const String& message, int lineNumber, const String& sourceURL) 175 void WorkerMessagingProxy::reportConsoleMessage(MessageSource source, MessageLev el level, const String& message, int lineNumber, const String& sourceURL)
176 { 176 {
177 if (m_askedToTerminate) 177 if (m_askedToTerminate)
178 return; 178 return;
179 m_executionContext->addConsoleMessage(source, level, message, sourceURL, lin eNumber); 179 m_executionContext->addConsoleMessage(source, level, message, sourceURL, lin eNumber);
180 } 180 }
181 181
182 void WorkerMessagingProxy::workerThreadCreated(PassRefPtr<DedicatedWorkerThread> workerThread) 182 void WorkerMessagingProxy::workerThreadCreated(PassRefPtrWillBeRawPtr<DedicatedW orkerThread> workerThread)
183 { 183 {
184 m_workerThread = workerThread; 184 m_workerThread = workerThread;
185 185
186 if (m_askedToTerminate) { 186 if (m_askedToTerminate) {
187 // Worker.terminate() could be called from JS before the thread was crea ted. 187 // Worker.terminate() could be called from JS before the thread was crea ted.
188 m_workerThread->stop(); 188 m_workerThread->stop();
189 } else { 189 } else {
190 unsigned taskCount = m_queuedEarlyTasks.size(); 190 unsigned taskCount = m_queuedEarlyTasks.size();
191 ASSERT(!m_unconfirmedMessageCount); 191 ASSERT(!m_unconfirmedMessageCount);
192 m_unconfirmedMessageCount = taskCount; 192 m_unconfirmedMessageCount = taskCount;
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
297 { 297 {
298 m_workerThreadHadPendingActivity = hasPendingActivity; 298 m_workerThreadHadPendingActivity = hasPendingActivity;
299 } 299 }
300 300
301 bool WorkerMessagingProxy::hasPendingActivity() const 301 bool WorkerMessagingProxy::hasPendingActivity() const
302 { 302 {
303 return (m_unconfirmedMessageCount || m_workerThreadHadPendingActivity) && !m _askedToTerminate; 303 return (m_unconfirmedMessageCount || m_workerThreadHadPendingActivity) && !m _askedToTerminate;
304 } 304 }
305 305
306 } // namespace WebCore 306 } // namespace WebCore
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698