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

Side by Side Diff: third_party/WebKit/Source/web/ServiceWorkerGlobalScopeProxy.cpp

Issue 1448353002: Oilpan: move ServiceWorkerGlobalScopeProxy to the heap. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 1 month 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) 2013 Google Inc. All rights reserved. 2 * Copyright (C) 2013 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 55 matching lines...) Expand 10 before | Expand all | Expand 10 after
66 #include "public/platform/modules/serviceworker/WebServiceWorkerRequest.h" 66 #include "public/platform/modules/serviceworker/WebServiceWorkerRequest.h"
67 #include "public/web/WebSerializedScriptValue.h" 67 #include "public/web/WebSerializedScriptValue.h"
68 #include "public/web/modules/serviceworker/WebServiceWorkerContextClient.h" 68 #include "public/web/modules/serviceworker/WebServiceWorkerContextClient.h"
69 #include "web/WebEmbeddedWorkerImpl.h" 69 #include "web/WebEmbeddedWorkerImpl.h"
70 #include "wtf/Assertions.h" 70 #include "wtf/Assertions.h"
71 #include "wtf/Functional.h" 71 #include "wtf/Functional.h"
72 #include "wtf/PassOwnPtr.h" 72 #include "wtf/PassOwnPtr.h"
73 73
74 namespace blink { 74 namespace blink {
75 75
76 PassOwnPtr<ServiceWorkerGlobalScopeProxy> ServiceWorkerGlobalScopeProxy::create( WebEmbeddedWorkerImpl& embeddedWorker, Document& document, WebServiceWorkerConte xtClient& client) 76 PassOwnPtrWillBeRawPtr<ServiceWorkerGlobalScopeProxy> ServiceWorkerGlobalScopePr oxy::create(WebEmbeddedWorkerImpl& embeddedWorker, Document& document, WebServic eWorkerContextClient& client)
77 { 77 {
78 return adoptPtr(new ServiceWorkerGlobalScopeProxy(embeddedWorker, document, client)); 78 return adoptPtrWillBeNoop(new ServiceWorkerGlobalScopeProxy(embeddedWorker, document, client));
79 } 79 }
80 80
81 ServiceWorkerGlobalScopeProxy::~ServiceWorkerGlobalScopeProxy() 81 ServiceWorkerGlobalScopeProxy::~ServiceWorkerGlobalScopeProxy()
82 { 82 {
83 } 83 }
84 84
85 DEFINE_TRACE(ServiceWorkerGlobalScopeProxy)
86 {
87 visitor->trace(m_document);
88 visitor->trace(m_workerGlobalScope);
89 }
90
85 void ServiceWorkerGlobalScopeProxy::setRegistration(WebPassOwnPtr<WebServiceWork erRegistration::Handle> handle) 91 void ServiceWorkerGlobalScopeProxy::setRegistration(WebPassOwnPtr<WebServiceWork erRegistration::Handle> handle)
86 { 92 {
87 ASSERT(m_workerGlobalScope); 93 ASSERT(m_workerGlobalScope);
88 m_workerGlobalScope->setRegistration(handle); 94 m_workerGlobalScope->setRegistration(handle);
89 } 95 }
90 96
91 void ServiceWorkerGlobalScopeProxy::dispatchActivateEvent(int eventID) 97 void ServiceWorkerGlobalScopeProxy::dispatchActivateEvent(int eventID)
92 { 98 {
93 ASSERT(m_workerGlobalScope); 99 ASSERT(m_workerGlobalScope);
94 WaitUntilObserver* observer = WaitUntilObserver::create(m_workerGlobalScope, WaitUntilObserver::Activate, eventID); 100 WaitUntilObserver* observer = WaitUntilObserver::create(m_workerGlobalScope, WaitUntilObserver::Activate, eventID);
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
197 m_client.reportException(errorMessage, lineNumber, columnNumber, sourceURL); 203 m_client.reportException(errorMessage, lineNumber, columnNumber, sourceURL);
198 } 204 }
199 205
200 void ServiceWorkerGlobalScopeProxy::reportConsoleMessage(PassRefPtrWillBeRawPtr< ConsoleMessage> consoleMessage) 206 void ServiceWorkerGlobalScopeProxy::reportConsoleMessage(PassRefPtrWillBeRawPtr< ConsoleMessage> consoleMessage)
201 { 207 {
202 m_client.reportConsoleMessage(consoleMessage->source(), consoleMessage->leve l(), consoleMessage->message(), consoleMessage->lineNumber(), consoleMessage->ur l()); 208 m_client.reportConsoleMessage(consoleMessage->source(), consoleMessage->leve l(), consoleMessage->message(), consoleMessage->lineNumber(), consoleMessage->ur l());
203 } 209 }
204 210
205 void ServiceWorkerGlobalScopeProxy::postMessageToPageInspector(const String& mes sage) 211 void ServiceWorkerGlobalScopeProxy::postMessageToPageInspector(const String& mes sage)
206 { 212 {
207 m_document.postInspectorTask(BLINK_FROM_HERE, createCrossThreadTask(&WebEmbe ddedWorkerImpl::postMessageToPageInspector, &m_embeddedWorker, message)); 213 m_document->postInspectorTask(BLINK_FROM_HERE, createCrossThreadTask(&WebEmb eddedWorkerImpl::postMessageToPageInspector, &m_embeddedWorker, message));
208 } 214 }
209 215
210 void ServiceWorkerGlobalScopeProxy::didEvaluateWorkerScript(bool success) 216 void ServiceWorkerGlobalScopeProxy::didEvaluateWorkerScript(bool success)
211 { 217 {
212 m_client.didEvaluateWorkerScript(success); 218 m_client.didEvaluateWorkerScript(success);
213 } 219 }
214 220
215 void ServiceWorkerGlobalScopeProxy::didInitializeWorkerContext() 221 void ServiceWorkerGlobalScopeProxy::didInitializeWorkerContext()
216 { 222 {
217 ASSERT(m_workerGlobalScope); 223 ASSERT(m_workerGlobalScope);
218 ScriptState::Scope scope(m_workerGlobalScope->script()->scriptState()); 224 ScriptState::Scope scope(m_workerGlobalScope->script()->scriptState());
219 m_client.didInitializeWorkerContext(m_workerGlobalScope->script()->context() , WebURL(m_documentURL)); 225 m_client.didInitializeWorkerContext(m_workerGlobalScope->script()->context() , WebURL(m_documentURL));
220 } 226 }
221 227
222 void ServiceWorkerGlobalScopeProxy::workerGlobalScopeStarted(WorkerGlobalScope* workerGlobalScope) 228 void ServiceWorkerGlobalScopeProxy::workerGlobalScopeStarted(WorkerGlobalScope* workerGlobalScope)
223 { 229 {
224 ASSERT(!m_workerGlobalScope); 230 ASSERT(!m_workerGlobalScope);
225 m_workerGlobalScope = static_cast<ServiceWorkerGlobalScope*>(workerGlobalSco pe); 231 m_workerGlobalScope = static_cast<ServiceWorkerGlobalScope*>(workerGlobalSco pe);
226 m_client.workerContextStarted(this); 232 m_client.workerContextStarted(this);
227 } 233 }
228 234
229 void ServiceWorkerGlobalScopeProxy::workerGlobalScopeClosed() 235 void ServiceWorkerGlobalScopeProxy::workerGlobalScopeClosed()
230 { 236 {
231 m_document.postTask(BLINK_FROM_HERE, createCrossThreadTask(&WebEmbeddedWorke rImpl::terminateWorkerContext, &m_embeddedWorker)); 237 m_document->postTask(BLINK_FROM_HERE, createCrossThreadTask(&WebEmbeddedWork erImpl::terminateWorkerContext, &m_embeddedWorker));
232 } 238 }
233 239
234 void ServiceWorkerGlobalScopeProxy::willDestroyWorkerGlobalScope() 240 void ServiceWorkerGlobalScopeProxy::willDestroyWorkerGlobalScope()
235 { 241 {
236 v8::HandleScope handleScope(m_workerGlobalScope->thread()->isolate()); 242 v8::HandleScope handleScope(m_workerGlobalScope->thread()->isolate());
237 m_client.willDestroyWorkerContext(m_workerGlobalScope->script()->context()); 243 m_client.willDestroyWorkerContext(m_workerGlobalScope->script()->context());
238 m_workerGlobalScope = nullptr; 244 m_workerGlobalScope = nullptr;
239 } 245 }
240 246
241 void ServiceWorkerGlobalScopeProxy::workerThreadTerminated() 247 void ServiceWorkerGlobalScopeProxy::workerThreadTerminated()
242 { 248 {
243 m_client.workerContextDestroyed(); 249 m_client.workerContextDestroyed();
244 } 250 }
245 251
246 ServiceWorkerGlobalScopeProxy::ServiceWorkerGlobalScopeProxy(WebEmbeddedWorkerIm pl& embeddedWorker, Document& document, WebServiceWorkerContextClient& client) 252 ServiceWorkerGlobalScopeProxy::ServiceWorkerGlobalScopeProxy(WebEmbeddedWorkerIm pl& embeddedWorker, Document& document, WebServiceWorkerContextClient& client)
247 : m_embeddedWorker(embeddedWorker) 253 : m_embeddedWorker(embeddedWorker)
248 , m_document(document) 254 , m_document(&document)
249 , m_documentURL(document.url().copy()) 255 , m_documentURL(document.url().copy())
250 , m_client(client) 256 , m_client(client)
251 , m_workerGlobalScope(nullptr) 257 , m_workerGlobalScope(nullptr)
252 { 258 {
253 } 259 }
254 260
255 } // namespace blink 261 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698