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

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: rebased 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 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
67 #include "public/platform/modules/serviceworker/WebServiceWorkerRequest.h" 67 #include "public/platform/modules/serviceworker/WebServiceWorkerRequest.h"
68 #include "public/web/WebSerializedScriptValue.h" 68 #include "public/web/WebSerializedScriptValue.h"
69 #include "public/web/modules/serviceworker/WebServiceWorkerContextClient.h" 69 #include "public/web/modules/serviceworker/WebServiceWorkerContextClient.h"
70 #include "web/WebEmbeddedWorkerImpl.h" 70 #include "web/WebEmbeddedWorkerImpl.h"
71 #include "wtf/Assertions.h" 71 #include "wtf/Assertions.h"
72 #include "wtf/Functional.h" 72 #include "wtf/Functional.h"
73 #include "wtf/PassOwnPtr.h" 73 #include "wtf/PassOwnPtr.h"
74 74
75 namespace blink { 75 namespace blink {
76 76
77 PassOwnPtr<ServiceWorkerGlobalScopeProxy> ServiceWorkerGlobalScopeProxy::create( WebEmbeddedWorkerImpl& embeddedWorker, Document& document, WebServiceWorkerConte xtClient& client) 77 PassOwnPtrWillBeRawPtr<ServiceWorkerGlobalScopeProxy> ServiceWorkerGlobalScopePr oxy::create(WebEmbeddedWorkerImpl& embeddedWorker, Document& document, WebServic eWorkerContextClient& client)
78 { 78 {
79 return adoptPtr(new ServiceWorkerGlobalScopeProxy(embeddedWorker, document, client)); 79 return adoptPtrWillBeNoop(new ServiceWorkerGlobalScopeProxy(embeddedWorker, document, client));
80 } 80 }
81 81
82 ServiceWorkerGlobalScopeProxy::~ServiceWorkerGlobalScopeProxy() 82 ServiceWorkerGlobalScopeProxy::~ServiceWorkerGlobalScopeProxy()
83 { 83 {
haraken 2015/11/17 23:53:59 Can we assert that detach() has been called?
sof 2015/11/18 08:58:09 Done; asserting for !m_embeddedWorker.
84 } 84 }
85 85
86 DEFINE_TRACE(ServiceWorkerGlobalScopeProxy)
87 {
88 visitor->trace(m_document);
89 visitor->trace(m_workerGlobalScope);
90 }
91
86 void ServiceWorkerGlobalScopeProxy::setRegistration(WebPassOwnPtr<WebServiceWork erRegistration::Handle> handle) 92 void ServiceWorkerGlobalScopeProxy::setRegistration(WebPassOwnPtr<WebServiceWork erRegistration::Handle> handle)
87 { 93 {
88 ASSERT(m_workerGlobalScope); 94 workerGlobalScope()->setRegistration(handle);
89 m_workerGlobalScope->setRegistration(handle);
90 } 95 }
91 96
92 void ServiceWorkerGlobalScopeProxy::dispatchActivateEvent(int eventID) 97 void ServiceWorkerGlobalScopeProxy::dispatchActivateEvent(int eventID)
93 { 98 {
94 ASSERT(m_workerGlobalScope); 99 WaitUntilObserver* observer = WaitUntilObserver::create(workerGlobalScope(), WaitUntilObserver::Activate, eventID);
95 WaitUntilObserver* observer = WaitUntilObserver::create(m_workerGlobalScope, WaitUntilObserver::Activate, eventID);
96 RefPtrWillBeRawPtr<Event> event(ExtendableEvent::create(EventTypeNames::acti vate, ExtendableEventInit(), observer)); 100 RefPtrWillBeRawPtr<Event> event(ExtendableEvent::create(EventTypeNames::acti vate, ExtendableEventInit(), observer));
97 m_workerGlobalScope->dispatchExtendableEvent(event.release(), observer); 101 workerGlobalScope()->dispatchExtendableEvent(event.release(), observer);
98 } 102 }
99 103
100 void ServiceWorkerGlobalScopeProxy::dispatchFetchEvent(int eventID, const WebSer viceWorkerRequest& webRequest) 104 void ServiceWorkerGlobalScopeProxy::dispatchFetchEvent(int eventID, const WebSer viceWorkerRequest& webRequest)
101 { 105 {
102 ASSERT(m_workerGlobalScope); 106 RespondWithObserver* observer = RespondWithObserver::create(workerGlobalScop e(), eventID, webRequest.url(), webRequest.mode(), webRequest.frameType(), webRe quest.requestContext());
103 RespondWithObserver* observer = RespondWithObserver::create(m_workerGlobalSc ope, eventID, webRequest.url(), webRequest.mode(), webRequest.frameType(), webRe quest.requestContext());
104 bool defaultPrevented = false; 107 bool defaultPrevented = false;
105 Request* request = Request::create(m_workerGlobalScope, webRequest); 108 Request* request = Request::create(workerGlobalScope(), webRequest);
106 request->headers()->setGuard(Headers::ImmutableGuard); 109 request->headers()->setGuard(Headers::ImmutableGuard);
107 FetchEventInit eventInit; 110 FetchEventInit eventInit;
108 eventInit.setCancelable(true); 111 eventInit.setCancelable(true);
109 eventInit.setRequest(request); 112 eventInit.setRequest(request);
110 eventInit.setIsReload(webRequest.isReload()); 113 eventInit.setIsReload(webRequest.isReload());
111 RefPtrWillBeRawPtr<FetchEvent> fetchEvent(FetchEvent::create(EventTypeNames: :fetch, eventInit, observer)); 114 RefPtrWillBeRawPtr<FetchEvent> fetchEvent(FetchEvent::create(EventTypeNames: :fetch, eventInit, observer));
112 defaultPrevented = !m_workerGlobalScope->dispatchEvent(fetchEvent.release()) ; 115 defaultPrevented = !workerGlobalScope()->dispatchEvent(fetchEvent.release()) ;
113 observer->didDispatchEvent(defaultPrevented); 116 observer->didDispatchEvent(defaultPrevented);
114 } 117 }
115 118
116 void ServiceWorkerGlobalScopeProxy::dispatchGeofencingEvent(int eventID, WebGeof encingEventType eventType, const WebString& regionID, const WebCircularGeofencin gRegion& region) 119 void ServiceWorkerGlobalScopeProxy::dispatchGeofencingEvent(int eventID, WebGeof encingEventType eventType, const WebString& regionID, const WebCircularGeofencin gRegion& region)
117 { 120 {
118 ASSERT(m_workerGlobalScope);
119 const AtomicString& type = eventType == WebGeofencingEventTypeEnter ? EventT ypeNames::geofenceenter : EventTypeNames::geofenceleave; 121 const AtomicString& type = eventType == WebGeofencingEventTypeEnter ? EventT ypeNames::geofenceenter : EventTypeNames::geofenceleave;
120 m_workerGlobalScope->dispatchEvent(GeofencingEvent::create(type, regionID, C ircularGeofencingRegion::create(regionID, region))); 122 workerGlobalScope()->dispatchEvent(GeofencingEvent::create(type, regionID, C ircularGeofencingRegion::create(regionID, region)));
121 } 123 }
122 124
123 void ServiceWorkerGlobalScopeProxy::dispatchInstallEvent(int eventID) 125 void ServiceWorkerGlobalScopeProxy::dispatchInstallEvent(int eventID)
124 { 126 {
125 ASSERT(m_workerGlobalScope); 127 WaitUntilObserver* observer = WaitUntilObserver::create(workerGlobalScope(), WaitUntilObserver::Install, eventID);
126 WaitUntilObserver* observer = WaitUntilObserver::create(m_workerGlobalScope, WaitUntilObserver::Install, eventID);
127 RefPtrWillBeRawPtr<Event> event; 128 RefPtrWillBeRawPtr<Event> event;
128 if (RuntimeEnabledFeatures::foreignFetchEnabled()) { 129 if (RuntimeEnabledFeatures::foreignFetchEnabled())
129 event = InstallEvent::create(EventTypeNames::install, ExtendableEventIni t(), observer); 130 event = InstallEvent::create(EventTypeNames::install, ExtendableEventIni t(), observer);
130 } else { 131 else
131 event = ExtendableEvent::create(EventTypeNames::install, ExtendableEvent Init(), observer); 132 event = ExtendableEvent::create(EventTypeNames::install, ExtendableEvent Init(), observer);
132 } 133 workerGlobalScope()->dispatchExtendableEvent(event.release(), observer);
133 m_workerGlobalScope->dispatchExtendableEvent(event.release(), observer);
134 } 134 }
135 135
136 void ServiceWorkerGlobalScopeProxy::dispatchMessageEvent(const WebString& messag e, const WebMessagePortChannelArray& webChannels) 136 void ServiceWorkerGlobalScopeProxy::dispatchMessageEvent(const WebString& messag e, const WebMessagePortChannelArray& webChannels)
137 { 137 {
138 ASSERT(m_workerGlobalScope); 138 MessagePortArray* ports = MessagePort::toMessagePortArray(workerGlobalScope( ), webChannels);
139
140 MessagePortArray* ports = MessagePort::toMessagePortArray(m_workerGlobalScop e, webChannels);
141 WebSerializedScriptValue value = WebSerializedScriptValue::fromString(messag e); 139 WebSerializedScriptValue value = WebSerializedScriptValue::fromString(messag e);
142 m_workerGlobalScope->dispatchEvent(MessageEvent::create(ports, value)); 140 workerGlobalScope()->dispatchEvent(MessageEvent::create(ports, value));
143 } 141 }
144 142
145 void ServiceWorkerGlobalScopeProxy::dispatchNotificationClickEvent(int eventID, int64_t notificationID, const WebNotificationData& data, int actionIndex) 143 void ServiceWorkerGlobalScopeProxy::dispatchNotificationClickEvent(int eventID, int64_t notificationID, const WebNotificationData& data, int actionIndex)
146 { 144 {
147 ASSERT(m_workerGlobalScope); 145 WaitUntilObserver* observer = WaitUntilObserver::create(workerGlobalScope(), WaitUntilObserver::NotificationClick, eventID);
148 WaitUntilObserver* observer = WaitUntilObserver::create(m_workerGlobalScope, WaitUntilObserver::NotificationClick, eventID);
149 NotificationEventInit eventInit; 146 NotificationEventInit eventInit;
150 eventInit.setNotification(Notification::create(m_workerGlobalScope, notifica tionID, data)); 147 eventInit.setNotification(Notification::create(workerGlobalScope(), notifica tionID, data));
151 if (0 <= actionIndex && actionIndex < static_cast<int>(data.actions.size())) 148 if (0 <= actionIndex && actionIndex < static_cast<int>(data.actions.size()))
152 eventInit.setAction(data.actions[actionIndex].action); 149 eventInit.setAction(data.actions[actionIndex].action);
153 RefPtrWillBeRawPtr<Event> event(NotificationEvent::create(EventTypeNames::no tificationclick, eventInit, observer)); 150 RefPtrWillBeRawPtr<Event> event(NotificationEvent::create(EventTypeNames::no tificationclick, eventInit, observer));
154 m_workerGlobalScope->dispatchExtendableEvent(event.release(), observer); 151 workerGlobalScope()->dispatchExtendableEvent(event.release(), observer);
155 } 152 }
156 153
157 void ServiceWorkerGlobalScopeProxy::dispatchPushEvent(int eventID, const WebStri ng& data) 154 void ServiceWorkerGlobalScopeProxy::dispatchPushEvent(int eventID, const WebStri ng& data)
158 { 155 {
159 ASSERT(m_workerGlobalScope); 156 WaitUntilObserver* observer = WaitUntilObserver::create(workerGlobalScope(), WaitUntilObserver::Push, eventID);
160 WaitUntilObserver* observer = WaitUntilObserver::create(m_workerGlobalScope, WaitUntilObserver::Push, eventID);
161 RefPtrWillBeRawPtr<Event> event(PushEvent::create(EventTypeNames::push, Push MessageData::create(data), observer)); 157 RefPtrWillBeRawPtr<Event> event(PushEvent::create(EventTypeNames::push, Push MessageData::create(data), observer));
162 m_workerGlobalScope->dispatchExtendableEvent(event.release(), observer); 158 workerGlobalScope()->dispatchExtendableEvent(event.release(), observer);
163 } 159 }
164 160
165 void ServiceWorkerGlobalScopeProxy::dispatchServicePortConnectEvent(WebServicePo rtConnectEventCallbacks* rawCallbacks, const WebURL& targetURL, const WebString& origin, WebServicePortID portID) 161 void ServiceWorkerGlobalScopeProxy::dispatchServicePortConnectEvent(WebServicePo rtConnectEventCallbacks* rawCallbacks, const WebURL& targetURL, const WebString& origin, WebServicePortID portID)
166 { 162 {
167 ASSERT(m_workerGlobalScope);
168 OwnPtr<WebServicePortConnectEventCallbacks> callbacks = adoptPtr(rawCallback s); 163 OwnPtr<WebServicePortConnectEventCallbacks> callbacks = adoptPtr(rawCallback s);
169 ServicePortCollection* collection = WorkerNavigatorServices::services(m_work erGlobalScope, *m_workerGlobalScope->navigator()); 164 ServicePortCollection* collection = WorkerNavigatorServices::services(worker GlobalScope(), *workerGlobalScope()->navigator());
170 collection->dispatchConnectEvent(callbacks.release(), targetURL, origin, por tID); 165 collection->dispatchConnectEvent(callbacks.release(), targetURL, origin, por tID);
171 } 166 }
172 167
173 void ServiceWorkerGlobalScopeProxy::dispatchSyncEvent(int eventID, const WebSync Registration& registration, LastChanceOption lastChance) 168 void ServiceWorkerGlobalScopeProxy::dispatchSyncEvent(int eventID, const WebSync Registration& registration, LastChanceOption lastChance)
174 { 169 {
175 ASSERT(m_workerGlobalScope);
176 if (!RuntimeEnabledFeatures::backgroundSyncEnabled()) { 170 if (!RuntimeEnabledFeatures::backgroundSyncEnabled()) {
177 ServiceWorkerGlobalScopeClient::from(m_workerGlobalScope)->didHandleSync Event(eventID, WebServiceWorkerEventResultCompleted); 171 ServiceWorkerGlobalScopeClient::from(workerGlobalScope())->didHandleSync Event(eventID, WebServiceWorkerEventResultCompleted);
178 return; 172 return;
179 } 173 }
180 WaitUntilObserver* observer = WaitUntilObserver::create(m_workerGlobalScope, WaitUntilObserver::Sync, eventID); 174 WaitUntilObserver* observer = WaitUntilObserver::create(workerGlobalScope(), WaitUntilObserver::Sync, eventID);
181 RefPtrWillBeRawPtr<Event> event(SyncEvent::create(EventTypeNames::sync, regi stration.tag, lastChance == IsLastChance, observer)); 175 RefPtrWillBeRawPtr<Event> event(SyncEvent::create(EventTypeNames::sync, regi stration.tag, lastChance == IsLastChance, observer));
182 m_workerGlobalScope->dispatchExtendableEvent(event.release(), observer); 176 workerGlobalScope()->dispatchExtendableEvent(event.release(), observer);
183 } 177 }
184 178
185 void ServiceWorkerGlobalScopeProxy::dispatchCrossOriginMessageEvent(const WebCro ssOriginServiceWorkerClient& webClient, const WebString& message, const WebMessa gePortChannelArray& webChannels) 179 void ServiceWorkerGlobalScopeProxy::dispatchCrossOriginMessageEvent(const WebCro ssOriginServiceWorkerClient& webClient, const WebString& message, const WebMessa gePortChannelArray& webChannels)
186 { 180 {
187 ASSERT(m_workerGlobalScope); 181 MessagePortArray* ports = MessagePort::toMessagePortArray(workerGlobalScope( ), webChannels);
188 MessagePortArray* ports = MessagePort::toMessagePortArray(m_workerGlobalScop e, webChannels);
189 WebSerializedScriptValue value = WebSerializedScriptValue::fromString(messag e); 182 WebSerializedScriptValue value = WebSerializedScriptValue::fromString(messag e);
190 // FIXME: Have proper source for this MessageEvent. 183 // FIXME: Have proper source for this MessageEvent.
191 RefPtrWillBeRawPtr<MessageEvent> event = MessageEvent::create(ports, value, webClient.origin.string()); 184 RefPtrWillBeRawPtr<MessageEvent> event = MessageEvent::create(ports, value, webClient.origin.string());
192 event->setType(EventTypeNames::crossoriginmessage); 185 event->setType(EventTypeNames::crossoriginmessage);
193 m_workerGlobalScope->dispatchEvent(event); 186 workerGlobalScope()->dispatchEvent(event);
194 } 187 }
195 188
196 void ServiceWorkerGlobalScopeProxy::reportException(const String& errorMessage, int lineNumber, int columnNumber, const String& sourceURL, int) 189 void ServiceWorkerGlobalScopeProxy::reportException(const String& errorMessage, int lineNumber, int columnNumber, const String& sourceURL, int)
197 { 190 {
198 m_client.reportException(errorMessage, lineNumber, columnNumber, sourceURL); 191 client().reportException(errorMessage, lineNumber, columnNumber, sourceURL);
199 } 192 }
200 193
201 void ServiceWorkerGlobalScopeProxy::reportConsoleMessage(PassRefPtrWillBeRawPtr< ConsoleMessage> consoleMessage) 194 void ServiceWorkerGlobalScopeProxy::reportConsoleMessage(PassRefPtrWillBeRawPtr< ConsoleMessage> consoleMessage)
202 { 195 {
203 m_client.reportConsoleMessage(consoleMessage->source(), consoleMessage->leve l(), consoleMessage->message(), consoleMessage->lineNumber(), consoleMessage->ur l()); 196 client().reportConsoleMessage(consoleMessage->source(), consoleMessage->leve l(), consoleMessage->message(), consoleMessage->lineNumber(), consoleMessage->ur l());
204 } 197 }
205 198
206 void ServiceWorkerGlobalScopeProxy::postMessageToPageInspector(const String& mes sage) 199 void ServiceWorkerGlobalScopeProxy::postMessageToPageInspector(const String& mes sage)
207 { 200 {
208 m_document.postInspectorTask(BLINK_FROM_HERE, createCrossThreadTask(&WebEmbe ddedWorkerImpl::postMessageToPageInspector, &m_embeddedWorker, message)); 201 ASSERT(m_embeddedWorker);
202 document().postInspectorTask(BLINK_FROM_HERE, createCrossThreadTask(&WebEmbe ddedWorkerImpl::postMessageToPageInspector, m_embeddedWorker, message));
209 } 203 }
210 204
211 void ServiceWorkerGlobalScopeProxy::didEvaluateWorkerScript(bool success) 205 void ServiceWorkerGlobalScopeProxy::didEvaluateWorkerScript(bool success)
212 { 206 {
213 m_client.didEvaluateWorkerScript(success); 207 client().didEvaluateWorkerScript(success);
214 } 208 }
215 209
216 void ServiceWorkerGlobalScopeProxy::didInitializeWorkerContext() 210 void ServiceWorkerGlobalScopeProxy::didInitializeWorkerContext()
217 { 211 {
218 ASSERT(m_workerGlobalScope); 212 ScriptState::Scope scope(workerGlobalScope()->script()->scriptState());
219 ScriptState::Scope scope(m_workerGlobalScope->script()->scriptState()); 213 client().didInitializeWorkerContext(workerGlobalScope()->script()->context() , WebURL(m_documentURL));
220 m_client.didInitializeWorkerContext(m_workerGlobalScope->script()->context() , WebURL(m_documentURL));
221 } 214 }
222 215
223 void ServiceWorkerGlobalScopeProxy::workerGlobalScopeStarted(WorkerGlobalScope* workerGlobalScope) 216 void ServiceWorkerGlobalScopeProxy::workerGlobalScopeStarted(WorkerGlobalScope* workerGlobalScope)
224 { 217 {
225 ASSERT(!m_workerGlobalScope); 218 ASSERT(!m_workerGlobalScope);
226 m_workerGlobalScope = static_cast<ServiceWorkerGlobalScope*>(workerGlobalSco pe); 219 m_workerGlobalScope = static_cast<ServiceWorkerGlobalScope*>(workerGlobalSco pe);
227 m_client.workerContextStarted(this); 220 client().workerContextStarted(this);
228 } 221 }
229 222
230 void ServiceWorkerGlobalScopeProxy::workerGlobalScopeClosed() 223 void ServiceWorkerGlobalScopeProxy::workerGlobalScopeClosed()
231 { 224 {
232 m_document.postTask(BLINK_FROM_HERE, createCrossThreadTask(&WebEmbeddedWorke rImpl::terminateWorkerContext, &m_embeddedWorker)); 225 ASSERT(m_embeddedWorker);
226 document().postTask(BLINK_FROM_HERE, createCrossThreadTask(&WebEmbeddedWorke rImpl::terminateWorkerContext, m_embeddedWorker));
233 } 227 }
234 228
235 void ServiceWorkerGlobalScopeProxy::willDestroyWorkerGlobalScope() 229 void ServiceWorkerGlobalScopeProxy::willDestroyWorkerGlobalScope()
236 { 230 {
237 v8::HandleScope handleScope(m_workerGlobalScope->thread()->isolate()); 231 v8::HandleScope handleScope(workerGlobalScope()->thread()->isolate());
238 m_client.willDestroyWorkerContext(m_workerGlobalScope->script()->context()); 232 client().willDestroyWorkerContext(workerGlobalScope()->script()->context());
239 m_workerGlobalScope = nullptr; 233 m_workerGlobalScope = nullptr;
240 } 234 }
241 235
242 void ServiceWorkerGlobalScopeProxy::workerThreadTerminated() 236 void ServiceWorkerGlobalScopeProxy::workerThreadTerminated()
243 { 237 {
244 m_client.workerContextDestroyed(); 238 client().workerContextDestroyed();
245 } 239 }
246 240
247 ServiceWorkerGlobalScopeProxy::ServiceWorkerGlobalScopeProxy(WebEmbeddedWorkerIm pl& embeddedWorker, Document& document, WebServiceWorkerContextClient& client) 241 ServiceWorkerGlobalScopeProxy::ServiceWorkerGlobalScopeProxy(WebEmbeddedWorkerIm pl& embeddedWorker, Document& document, WebServiceWorkerContextClient& client)
248 : m_embeddedWorker(embeddedWorker) 242 : m_embeddedWorker(&embeddedWorker)
249 , m_document(document) 243 , m_document(&document)
250 , m_documentURL(document.url().copy()) 244 , m_documentURL(document.url().copy())
251 , m_client(client) 245 , m_client(&client)
252 , m_workerGlobalScope(nullptr) 246 , m_workerGlobalScope(nullptr)
253 { 247 {
254 } 248 }
255 249
250 void ServiceWorkerGlobalScopeProxy::detach()
251 {
252 m_embeddedWorker = nullptr;
253 m_document = nullptr;
254 m_client = nullptr;
255 m_workerGlobalScope = nullptr;
256 }
257
258 WebServiceWorkerContextClient& ServiceWorkerGlobalScopeProxy::client() const
haraken 2015/11/17 23:53:59 Nit: I'd inline these getters.
259 {
260 ASSERT(m_client);
261 return *m_client;
262 }
263
264 Document& ServiceWorkerGlobalScopeProxy::document() const
265 {
266 ASSERT(m_document);
267 return *m_document;
268 }
269
270 ServiceWorkerGlobalScope* ServiceWorkerGlobalScopeProxy::workerGlobalScope() con st
271 {
272 ASSERT(m_workerGlobalScope);
273 return m_workerGlobalScope;
274 }
275
256 } // namespace blink 276 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/web/ServiceWorkerGlobalScopeProxy.h ('k') | third_party/WebKit/Source/web/WebEmbeddedWorkerImpl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698