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

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

Issue 2389633002: reflow comments in web/ (Closed)
Patch Set: . Created 4 years, 2 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) 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 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
48 #include "public/web/WebKit.h" 48 #include "public/web/WebKit.h"
49 #include "public/web/WebSharedWorker.h" 49 #include "public/web/WebSharedWorker.h"
50 #include "public/web/WebSharedWorkerCreationErrors.h" 50 #include "public/web/WebSharedWorkerCreationErrors.h"
51 #include "public/web/WebSharedWorkerRepositoryClient.h" 51 #include "public/web/WebSharedWorkerRepositoryClient.h"
52 #include "web/WebLocalFrameImpl.h" 52 #include "web/WebLocalFrameImpl.h"
53 #include "wtf/PtrUtil.h" 53 #include "wtf/PtrUtil.h"
54 #include <memory> 54 #include <memory>
55 55
56 namespace blink { 56 namespace blink {
57 57
58 // Callback class that keeps the SharedWorker and WebSharedWorker objects alive while connecting. 58 // Callback class that keeps the SharedWorker and WebSharedWorker objects alive
59 // while connecting.
59 class SharedWorkerConnector 60 class SharedWorkerConnector
60 : private WebSharedWorkerConnector::ConnectListener { 61 : private WebSharedWorkerConnector::ConnectListener {
61 public: 62 public:
62 SharedWorkerConnector( 63 SharedWorkerConnector(
63 SharedWorker* worker, 64 SharedWorker* worker,
64 const KURL& url, 65 const KURL& url,
65 const String& name, 66 const String& name,
66 WebMessagePortChannelUniquePtr channel, 67 WebMessagePortChannelUniquePtr channel,
67 std::unique_ptr<WebSharedWorkerConnector> webWorkerConnector) 68 std::unique_ptr<WebSharedWorkerConnector> webWorkerConnector)
68 : m_worker(worker), 69 : m_worker(worker),
(...skipping 20 matching lines...) Expand all
89 SharedWorkerConnector::~SharedWorkerConnector() { 90 SharedWorkerConnector::~SharedWorkerConnector() {
90 m_worker->setIsBeingConnected(false); 91 m_worker->setIsBeingConnected(false);
91 } 92 }
92 93
93 void SharedWorkerConnector::connect() { 94 void SharedWorkerConnector::connect() {
94 m_worker->setIsBeingConnected(true); 95 m_worker->setIsBeingConnected(true);
95 m_webWorkerConnector->connect(m_channel.release(), this); 96 m_webWorkerConnector->connect(m_channel.release(), this);
96 } 97 }
97 98
98 void SharedWorkerConnector::connected() { 99 void SharedWorkerConnector::connected() {
99 // Free ourselves (this releases the SharedWorker so it can be freed as well i f unreferenced). 100 // Free ourselves (this releases the SharedWorker so it can be freed as well
101 // if unreferenced).
100 delete this; 102 delete this;
101 } 103 }
102 104
103 void SharedWorkerConnector::scriptLoadFailed() { 105 void SharedWorkerConnector::scriptLoadFailed() {
104 m_worker->dispatchEvent(Event::createCancelable(EventTypeNames::error)); 106 m_worker->dispatchEvent(Event::createCancelable(EventTypeNames::error));
105 // Free ourselves (this releases the SharedWorker so it can be freed as well i f unreferenced). 107 // Free ourselves (this releases the SharedWorker so it can be freed as well
108 // if unreferenced).
106 delete this; 109 delete this;
107 } 110 }
108 111
109 static WebSharedWorkerRepositoryClient::DocumentID getId(void* document) { 112 static WebSharedWorkerRepositoryClient::DocumentID getId(void* document) {
110 DCHECK(document); 113 DCHECK(document);
111 return reinterpret_cast<WebSharedWorkerRepositoryClient::DocumentID>( 114 return reinterpret_cast<WebSharedWorkerRepositoryClient::DocumentID>(
112 document); 115 document);
113 } 116 }
114 117
115 void SharedWorkerRepositoryClientImpl::connect( 118 void SharedWorkerRepositoryClientImpl::connect(
116 SharedWorker* worker, 119 SharedWorker* worker,
117 WebMessagePortChannelUniquePtr port, 120 WebMessagePortChannelUniquePtr port,
118 const KURL& url, 121 const KURL& url,
119 const String& name, 122 const String& name,
120 ExceptionState& exceptionState) { 123 ExceptionState& exceptionState) {
121 DCHECK(m_client); 124 DCHECK(m_client);
122 125
123 // No nested workers (for now) - connect() should only be called from document context. 126 // No nested workers (for now) - connect() should only be called from document
127 // context.
124 DCHECK(worker->getExecutionContext()->isDocument()); 128 DCHECK(worker->getExecutionContext()->isDocument());
125 Document* document = toDocument(worker->getExecutionContext()); 129 Document* document = toDocument(worker->getExecutionContext());
126 130
127 // TODO(estark): this is broken, as it only uses the first header 131 // TODO(estark): this is broken, as it only uses the first header
128 // when multiple might have been sent. Fix by making the 132 // when multiple might have been sent. Fix by making the
129 // SharedWorkerConnector interface take a map that can contain 133 // SharedWorkerConnector interface take a map that can contain
130 // multiple headers. 134 // multiple headers.
131 std::unique_ptr<Vector<CSPHeaderAndType>> headers = 135 std::unique_ptr<Vector<CSPHeaderAndType>> headers =
132 worker->getExecutionContext()->contentSecurityPolicy()->headers(); 136 worker->getExecutionContext()->contentSecurityPolicy()->headers();
133 WebString header; 137 WebString header;
(...skipping 11 matching lines...) Expand all
145 worker->getExecutionContext()->isSecureContext(unusedSecureContextError); 149 worker->getExecutionContext()->isSecureContext(unusedSecureContextError);
146 std::unique_ptr<WebSharedWorkerConnector> webWorkerConnector = 150 std::unique_ptr<WebSharedWorkerConnector> webWorkerConnector =
147 wrapUnique(m_client->createSharedWorkerConnector( 151 wrapUnique(m_client->createSharedWorkerConnector(
148 url, name, getId(document), header, headerType, 152 url, name, getId(document), header, headerType,
149 worker->getExecutionContext()->securityContext().addressSpace(), 153 worker->getExecutionContext()->securityContext().addressSpace(),
150 isSecureContext ? WebSharedWorkerCreationContextTypeSecure 154 isSecureContext ? WebSharedWorkerCreationContextTypeSecure
151 : WebSharedWorkerCreationContextTypeNonsecure, 155 : WebSharedWorkerCreationContextTypeNonsecure,
152 &creationError)); 156 &creationError));
153 if (creationError != WebWorkerCreationErrorNone) { 157 if (creationError != WebWorkerCreationErrorNone) {
154 if (creationError == WebWorkerCreationErrorURLMismatch) { 158 if (creationError == WebWorkerCreationErrorURLMismatch) {
155 // Existing worker does not match this url, so return an error back to the caller. 159 // Existing worker does not match this url, so return an error back to the
160 // caller.
156 exceptionState.throwDOMException( 161 exceptionState.throwDOMException(
157 URLMismatchError, "The location of the SharedWorker named '" + name + 162 URLMismatchError, "The location of the SharedWorker named '" + name +
158 "' does not exactly match the provided URL ('" + 163 "' does not exactly match the provided URL ('" +
159 url.elidedString() + "')."); 164 url.elidedString() + "').");
160 return; 165 return;
161 } else if (creationError == WebWorkerCreationErrorSecureContextMismatch) { 166 } else if (creationError == WebWorkerCreationErrorSecureContextMismatch) {
162 if (isSecureContext) { 167 if (isSecureContext) {
163 UseCounter::count( 168 UseCounter::count(
164 document, 169 document,
165 UseCounter::NonSecureSharedWorkerAccessedFromSecureContext); 170 UseCounter::NonSecureSharedWorkerAccessedFromSecureContext);
166 } else { 171 } else {
167 UseCounter::count( 172 UseCounter::count(
168 document, 173 document,
169 UseCounter::SecureSharedWorkerAccessedFromNonSecureContext); 174 UseCounter::SecureSharedWorkerAccessedFromNonSecureContext);
170 } 175 }
171 } 176 }
172 } 177 }
173 178
174 // The connector object manages its own lifecycle (and the lifecycles of the t wo worker objects). 179 // The connector object manages its own lifecycle (and the lifecycles of the
175 // It will free itself once connecting is completed. 180 // two worker objects). It will free itself once connecting is completed.
176 SharedWorkerConnector* connector = new SharedWorkerConnector( 181 SharedWorkerConnector* connector = new SharedWorkerConnector(
177 worker, url, name, std::move(port), std::move(webWorkerConnector)); 182 worker, url, name, std::move(port), std::move(webWorkerConnector));
178 connector->connect(); 183 connector->connect();
179 } 184 }
180 185
181 void SharedWorkerRepositoryClientImpl::documentDetached(Document* document) { 186 void SharedWorkerRepositoryClientImpl::documentDetached(Document* document) {
182 DCHECK(m_client); 187 DCHECK(m_client);
183 m_client->documentDetached(getId(document)); 188 m_client->documentDetached(getId(document));
184 } 189 }
185 190
186 SharedWorkerRepositoryClientImpl::SharedWorkerRepositoryClientImpl( 191 SharedWorkerRepositoryClientImpl::SharedWorkerRepositoryClientImpl(
187 WebSharedWorkerRepositoryClient* client) 192 WebSharedWorkerRepositoryClient* client)
188 : m_client(client) {} 193 : m_client(client) {}
189 194
190 } // namespace blink 195 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/web/RotationViewportAnchor.cpp ('k') | third_party/WebKit/Source/web/TextFinder.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698