Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 21 matching lines...) Expand all Loading... | |
| 32 | 32 |
| 33 #include "platform/exported/WebURLResponsePrivate.h" | 33 #include "platform/exported/WebURLResponsePrivate.h" |
| 34 #include "platform/network/ResourceLoadTiming.h" | 34 #include "platform/network/ResourceLoadTiming.h" |
| 35 #include "platform/network/ResourceResponse.h" | 35 #include "platform/network/ResourceResponse.h" |
| 36 #include "public/platform/WebHTTPHeaderVisitor.h" | 36 #include "public/platform/WebHTTPHeaderVisitor.h" |
| 37 #include "public/platform/WebHTTPLoadInfo.h" | 37 #include "public/platform/WebHTTPLoadInfo.h" |
| 38 #include "public/platform/WebString.h" | 38 #include "public/platform/WebString.h" |
| 39 #include "public/platform/WebURL.h" | 39 #include "public/platform/WebURL.h" |
| 40 #include "public/platform/WebURLLoadTiming.h" | 40 #include "public/platform/WebURLLoadTiming.h" |
| 41 #include "wtf/Allocator.h" | 41 #include "wtf/Allocator.h" |
| 42 #include "wtf/Assertions.h" | |
| 42 #include "wtf/PtrUtil.h" | 43 #include "wtf/PtrUtil.h" |
| 43 #include "wtf/RefPtr.h" | 44 #include "wtf/RefPtr.h" |
| 44 #include <memory> | 45 #include <memory> |
| 45 | 46 |
| 46 namespace blink { | 47 namespace blink { |
| 47 | 48 |
| 48 namespace { | 49 namespace { |
| 49 | 50 |
| 50 class ExtraDataContainer : public ResourceResponse::ExtraData { | 51 class ExtraDataContainer : public ResourceResponse::ExtraData { |
| 51 public: | 52 public: |
| (...skipping 12 matching lines...) Expand all Loading... | |
| 64 std::unique_ptr<WebURLResponse::ExtraData> m_extraData; | 65 std::unique_ptr<WebURLResponse::ExtraData> m_extraData; |
| 65 }; | 66 }; |
| 66 | 67 |
| 67 } // namespace | 68 } // namespace |
| 68 | 69 |
| 69 // The standard implementation of WebURLResponsePrivate, which maintains | 70 // The standard implementation of WebURLResponsePrivate, which maintains |
| 70 // ownership of a ResourceResponse instance. | 71 // ownership of a ResourceResponse instance. |
| 71 class WebURLResponsePrivateImpl final : public WebURLResponsePrivate { | 72 class WebURLResponsePrivateImpl final : public WebURLResponsePrivate { |
| 72 USING_FAST_MALLOC(WebURLResponsePrivateImpl); | 73 USING_FAST_MALLOC(WebURLResponsePrivateImpl); |
| 73 public: | 74 public: |
| 74 WebURLResponsePrivateImpl() | 75 WebURLResponsePrivateImpl() {} |
| 76 WebURLResponsePrivateImpl(const WebURLResponsePrivate& p) | |
| 77 : m_resourceResponseAllocation(*p.resourceResponse()) {} | |
| 78 ~WebURLResponsePrivateImpl() override {} | |
| 79 | |
| 80 const ResourceResponse* resourceResponse() const override | |
| 75 { | 81 { |
| 76 m_resourceResponse = &m_resourceResponseAllocation; | 82 return &m_resourceResponseAllocation; |
| 77 } | 83 } |
| 78 | 84 |
| 79 WebURLResponsePrivateImpl(const WebURLResponsePrivate* p) | 85 ResourceResponse* resourceResponse() override |
| 80 : m_resourceResponseAllocation(*p->m_resourceResponse) | |
| 81 { | 86 { |
| 82 m_resourceResponse = &m_resourceResponseAllocation; | 87 return &m_resourceResponseAllocation; |
| 83 } | 88 } |
| 84 | 89 |
| 85 virtual void dispose() { delete this; } | 90 void setResourceResponse(const ResourceResponse& response) override |
| 91 { | |
| 92 m_resourceResponseAllocation = response; | |
| 93 } | |
| 86 | 94 |
| 87 private: | 95 private: |
| 88 virtual ~WebURLResponsePrivateImpl() { } | |
| 89 | |
| 90 ResourceResponse m_resourceResponseAllocation; | 96 ResourceResponse m_resourceResponseAllocation; |
| 91 }; | 97 }; |
| 92 | 98 |
| 93 void WebURLResponse::initialize() | 99 WebURLResponse::~WebURLResponse() |
| 94 { | 100 { |
| 95 assign(new WebURLResponsePrivateImpl()); | 101 if (m_owningPrivate) |
| 102 delete m_private; | |
| 96 } | 103 } |
| 97 | 104 |
| 98 void WebURLResponse::reset() | 105 WebURLResponse::WebURLResponse() |
| 106 : m_private(new WebURLResponsePrivateImpl()) | |
| 107 , m_owningPrivate(true) | |
| 99 { | 108 { |
| 100 assign(0); | 109 } |
| 110 WebURLResponse::WebURLResponse(const WebURLResponse& r) | |
| 111 : m_private(new WebURLResponsePrivateImpl(*r.m_private)) | |
| 112 , m_owningPrivate(true) | |
| 113 { | |
| 101 } | 114 } |
| 102 | 115 |
| 103 void WebURLResponse::assign(const WebURLResponse& r) | 116 WebURLResponse::WebURLResponse(const WebURL& url) |
| 117 : WebURLResponse() | |
| 118 { | |
| 119 setURL(url); | |
| 120 } | |
| 121 | |
| 122 WebURLResponse& WebURLResponse::operator=(const WebURLResponse& r) | |
| 104 { | 123 { |
| 105 if (&r != this) | 124 if (&r != this) |
| 106 assign(r.m_private ? new WebURLResponsePrivateImpl(r.m_private) : 0); | 125 m_private->setResourceResponse(*r.m_private->resourceResponse()); |
|
Adam Rice
2016/07/06 01:39:00
This changes behaviour if m_private is a WrappedRe
kinuko
2016/07/06 09:45:57
This assignment operator doesn't work / wouldn't b
Adam Rice
2016/07/06 10:06:50
I think WrappedResourceResponse is still copyable.
kinuko
2016/07/06 11:06:33
No it is not because Handle is not copyable. It's
Adam Rice
2016/07/07 01:32:47
Sorry, I missed that point.
| |
| 126 return *this; | |
| 107 } | 127 } |
| 108 | 128 |
| 109 bool WebURLResponse::isNull() const | 129 bool WebURLResponse::isNull() const |
| 110 { | 130 { |
| 111 return !m_private || m_private->m_resourceResponse->isNull(); | 131 return !m_private->resourceResponse() || m_private->resourceResponse()->isNu ll(); |
| 112 } | 132 } |
| 113 | 133 |
| 114 WebURL WebURLResponse::url() const | 134 WebURL WebURLResponse::url() const |
| 115 { | 135 { |
| 116 return m_private->m_resourceResponse->url(); | 136 return m_private->resourceResponse()->url(); |
| 117 } | 137 } |
| 118 | 138 |
| 119 void WebURLResponse::setURL(const WebURL& url) | 139 void WebURLResponse::setURL(const WebURL& url) |
| 120 { | 140 { |
| 121 m_private->m_resourceResponse->setURL(url); | 141 m_private->resourceResponse()->setURL(url); |
| 122 } | 142 } |
| 123 | 143 |
| 124 unsigned WebURLResponse::connectionID() const | 144 unsigned WebURLResponse::connectionID() const |
| 125 { | 145 { |
| 126 return m_private->m_resourceResponse->connectionID(); | 146 return m_private->resourceResponse()->connectionID(); |
| 127 } | 147 } |
| 128 | 148 |
| 129 void WebURLResponse::setConnectionID(unsigned connectionID) | 149 void WebURLResponse::setConnectionID(unsigned connectionID) |
| 130 { | 150 { |
| 131 m_private->m_resourceResponse->setConnectionID(connectionID); | 151 m_private->resourceResponse()->setConnectionID(connectionID); |
| 132 } | 152 } |
| 133 | 153 |
| 134 bool WebURLResponse::connectionReused() const | 154 bool WebURLResponse::connectionReused() const |
| 135 { | 155 { |
| 136 return m_private->m_resourceResponse->connectionReused(); | 156 return m_private->resourceResponse()->connectionReused(); |
| 137 } | 157 } |
| 138 | 158 |
| 139 void WebURLResponse::setConnectionReused(bool connectionReused) | 159 void WebURLResponse::setConnectionReused(bool connectionReused) |
| 140 { | 160 { |
| 141 m_private->m_resourceResponse->setConnectionReused(connectionReused); | 161 m_private->resourceResponse()->setConnectionReused(connectionReused); |
| 142 } | 162 } |
| 143 | 163 |
| 144 WebURLLoadTiming WebURLResponse::loadTiming() | 164 WebURLLoadTiming WebURLResponse::loadTiming() |
| 145 { | 165 { |
| 146 return WebURLLoadTiming(m_private->m_resourceResponse->resourceLoadTiming()) ; | 166 return WebURLLoadTiming(m_private->resourceResponse()->resourceLoadTiming()) ; |
| 147 } | 167 } |
| 148 | 168 |
| 149 void WebURLResponse::setLoadTiming(const WebURLLoadTiming& timing) | 169 void WebURLResponse::setLoadTiming(const WebURLLoadTiming& timing) |
| 150 { | 170 { |
| 151 RefPtr<ResourceLoadTiming> loadTiming = PassRefPtr<ResourceLoadTiming>(timin g); | 171 RefPtr<ResourceLoadTiming> loadTiming = PassRefPtr<ResourceLoadTiming>(timin g); |
| 152 m_private->m_resourceResponse->setResourceLoadTiming(loadTiming.release()); | 172 m_private->resourceResponse()->setResourceLoadTiming(loadTiming.release()); |
| 153 } | 173 } |
| 154 | 174 |
| 155 WebHTTPLoadInfo WebURLResponse::httpLoadInfo() | 175 WebHTTPLoadInfo WebURLResponse::httpLoadInfo() |
| 156 { | 176 { |
| 157 return WebHTTPLoadInfo(m_private->m_resourceResponse->resourceLoadInfo()); | 177 return WebHTTPLoadInfo(m_private->resourceResponse()->resourceLoadInfo()); |
| 158 } | 178 } |
| 159 | 179 |
| 160 void WebURLResponse::setHTTPLoadInfo(const WebHTTPLoadInfo& value) | 180 void WebURLResponse::setHTTPLoadInfo(const WebHTTPLoadInfo& value) |
| 161 { | 181 { |
| 162 m_private->m_resourceResponse->setResourceLoadInfo(value); | 182 m_private->resourceResponse()->setResourceLoadInfo(value); |
| 163 } | 183 } |
| 164 | 184 |
| 165 void WebURLResponse::setResponseTime(long long responseTime) | 185 void WebURLResponse::setResponseTime(long long responseTime) |
| 166 { | 186 { |
| 167 m_private->m_resourceResponse->setResponseTime(static_cast<int64_t>(response Time)); | 187 m_private->resourceResponse()->setResponseTime(static_cast<int64_t>(response Time)); |
| 168 } | 188 } |
| 169 | 189 |
| 170 WebString WebURLResponse::mimeType() const | 190 WebString WebURLResponse::mimeType() const |
| 171 { | 191 { |
| 172 return m_private->m_resourceResponse->mimeType(); | 192 return m_private->resourceResponse()->mimeType(); |
| 173 } | 193 } |
| 174 | 194 |
| 175 void WebURLResponse::setMIMEType(const WebString& mimeType) | 195 void WebURLResponse::setMIMEType(const WebString& mimeType) |
| 176 { | 196 { |
| 177 m_private->m_resourceResponse->setMimeType(mimeType); | 197 m_private->resourceResponse()->setMimeType(mimeType); |
| 178 } | 198 } |
| 179 | 199 |
| 180 long long WebURLResponse::expectedContentLength() const | 200 long long WebURLResponse::expectedContentLength() const |
| 181 { | 201 { |
| 182 return m_private->m_resourceResponse->expectedContentLength(); | 202 return m_private->resourceResponse()->expectedContentLength(); |
| 183 } | 203 } |
| 184 | 204 |
| 185 void WebURLResponse::setExpectedContentLength(long long expectedContentLength) | 205 void WebURLResponse::setExpectedContentLength(long long expectedContentLength) |
| 186 { | 206 { |
| 187 m_private->m_resourceResponse->setExpectedContentLength(expectedContentLengt h); | 207 m_private->resourceResponse()->setExpectedContentLength(expectedContentLengt h); |
| 188 } | 208 } |
| 189 | 209 |
| 190 WebString WebURLResponse::textEncodingName() const | 210 WebString WebURLResponse::textEncodingName() const |
| 191 { | 211 { |
| 192 return m_private->m_resourceResponse->textEncodingName(); | 212 return m_private->resourceResponse()->textEncodingName(); |
| 193 } | 213 } |
| 194 | 214 |
| 195 void WebURLResponse::setTextEncodingName(const WebString& textEncodingName) | 215 void WebURLResponse::setTextEncodingName(const WebString& textEncodingName) |
| 196 { | 216 { |
| 197 m_private->m_resourceResponse->setTextEncodingName(textEncodingName); | 217 m_private->resourceResponse()->setTextEncodingName(textEncodingName); |
| 198 } | 218 } |
| 199 | 219 |
| 200 WebString WebURLResponse::suggestedFileName() const | 220 WebString WebURLResponse::suggestedFileName() const |
| 201 { | 221 { |
| 202 return m_private->m_resourceResponse->suggestedFilename(); | 222 return m_private->resourceResponse()->suggestedFilename(); |
| 203 } | 223 } |
| 204 | 224 |
| 205 void WebURLResponse::setSuggestedFileName(const WebString& suggestedFileName) | 225 void WebURLResponse::setSuggestedFileName(const WebString& suggestedFileName) |
| 206 { | 226 { |
| 207 m_private->m_resourceResponse->setSuggestedFilename(suggestedFileName); | 227 m_private->resourceResponse()->setSuggestedFilename(suggestedFileName); |
| 208 } | 228 } |
| 209 | 229 |
| 210 WebURLResponse::HTTPVersion WebURLResponse::httpVersion() const | 230 WebURLResponse::HTTPVersion WebURLResponse::httpVersion() const |
| 211 { | 231 { |
| 212 return static_cast<HTTPVersion>(m_private->m_resourceResponse->httpVersion() ); | 232 return static_cast<HTTPVersion>(m_private->resourceResponse()->httpVersion() ); |
| 213 } | 233 } |
| 214 | 234 |
| 215 void WebURLResponse::setHTTPVersion(HTTPVersion version) | 235 void WebURLResponse::setHTTPVersion(HTTPVersion version) |
| 216 { | 236 { |
| 217 m_private->m_resourceResponse->setHTTPVersion(static_cast<ResourceResponse:: HTTPVersion>(version)); | 237 m_private->resourceResponse()->setHTTPVersion(static_cast<ResourceResponse:: HTTPVersion>(version)); |
| 218 } | 238 } |
| 219 | 239 |
| 220 int WebURLResponse::httpStatusCode() const | 240 int WebURLResponse::httpStatusCode() const |
| 221 { | 241 { |
| 222 return m_private->m_resourceResponse->httpStatusCode(); | 242 return m_private->resourceResponse()->httpStatusCode(); |
| 223 } | 243 } |
| 224 | 244 |
| 225 void WebURLResponse::setHTTPStatusCode(int httpStatusCode) | 245 void WebURLResponse::setHTTPStatusCode(int httpStatusCode) |
| 226 { | 246 { |
| 227 m_private->m_resourceResponse->setHTTPStatusCode(httpStatusCode); | 247 m_private->resourceResponse()->setHTTPStatusCode(httpStatusCode); |
| 228 } | 248 } |
| 229 | 249 |
| 230 WebString WebURLResponse::httpStatusText() const | 250 WebString WebURLResponse::httpStatusText() const |
| 231 { | 251 { |
| 232 return m_private->m_resourceResponse->httpStatusText(); | 252 return m_private->resourceResponse()->httpStatusText(); |
| 233 } | 253 } |
| 234 | 254 |
| 235 void WebURLResponse::setHTTPStatusText(const WebString& httpStatusText) | 255 void WebURLResponse::setHTTPStatusText(const WebString& httpStatusText) |
| 236 { | 256 { |
| 237 m_private->m_resourceResponse->setHTTPStatusText(httpStatusText); | 257 m_private->resourceResponse()->setHTTPStatusText(httpStatusText); |
| 238 } | 258 } |
| 239 | 259 |
| 240 WebString WebURLResponse::httpHeaderField(const WebString& name) const | 260 WebString WebURLResponse::httpHeaderField(const WebString& name) const |
| 241 { | 261 { |
| 242 return m_private->m_resourceResponse->httpHeaderField(name); | 262 return m_private->resourceResponse()->httpHeaderField(name); |
| 243 } | 263 } |
| 244 | 264 |
| 245 void WebURLResponse::setHTTPHeaderField(const WebString& name, const WebString& value) | 265 void WebURLResponse::setHTTPHeaderField(const WebString& name, const WebString& value) |
| 246 { | 266 { |
| 247 m_private->m_resourceResponse->setHTTPHeaderField(name, value); | 267 m_private->resourceResponse()->setHTTPHeaderField(name, value); |
| 248 } | 268 } |
| 249 | 269 |
| 250 void WebURLResponse::addHTTPHeaderField(const WebString& name, const WebString& value) | 270 void WebURLResponse::addHTTPHeaderField(const WebString& name, const WebString& value) |
| 251 { | 271 { |
| 252 if (name.isNull() || value.isNull()) | 272 if (name.isNull() || value.isNull()) |
| 253 return; | 273 return; |
| 254 | 274 |
| 255 m_private->m_resourceResponse->addHTTPHeaderField(name, value); | 275 m_private->resourceResponse()->addHTTPHeaderField(name, value); |
| 256 } | 276 } |
| 257 | 277 |
| 258 void WebURLResponse::clearHTTPHeaderField(const WebString& name) | 278 void WebURLResponse::clearHTTPHeaderField(const WebString& name) |
| 259 { | 279 { |
| 260 m_private->m_resourceResponse->clearHTTPHeaderField(name); | 280 m_private->resourceResponse()->clearHTTPHeaderField(name); |
| 261 } | 281 } |
| 262 | 282 |
| 263 void WebURLResponse::visitHTTPHeaderFields(WebHTTPHeaderVisitor* visitor) const | 283 void WebURLResponse::visitHTTPHeaderFields(WebHTTPHeaderVisitor* visitor) const |
| 264 { | 284 { |
| 265 const HTTPHeaderMap& map = m_private->m_resourceResponse->httpHeaderFields() ; | 285 const HTTPHeaderMap& map = m_private->resourceResponse()->httpHeaderFields() ; |
| 266 for (HTTPHeaderMap::const_iterator it = map.begin(); it != map.end(); ++it) | 286 for (HTTPHeaderMap::const_iterator it = map.begin(); it != map.end(); ++it) |
| 267 visitor->visitHeader(it->key, it->value); | 287 visitor->visitHeader(it->key, it->value); |
| 268 } | 288 } |
| 269 | 289 |
| 270 double WebURLResponse::lastModifiedDate() const | 290 double WebURLResponse::lastModifiedDate() const |
| 271 { | 291 { |
| 272 return static_cast<double>(m_private->m_resourceResponse->lastModifiedDate() ); | 292 return static_cast<double>(m_private->resourceResponse()->lastModifiedDate() ); |
| 273 } | 293 } |
| 274 | 294 |
| 275 void WebURLResponse::setLastModifiedDate(double lastModifiedDate) | 295 void WebURLResponse::setLastModifiedDate(double lastModifiedDate) |
| 276 { | 296 { |
| 277 m_private->m_resourceResponse->setLastModifiedDate(static_cast<time_t>(lastM odifiedDate)); | 297 m_private->resourceResponse()->setLastModifiedDate(static_cast<time_t>(lastM odifiedDate)); |
| 278 } | 298 } |
| 279 | 299 |
| 280 long long WebURLResponse::appCacheID() const | 300 long long WebURLResponse::appCacheID() const |
| 281 { | 301 { |
| 282 return m_private->m_resourceResponse->appCacheID(); | 302 return m_private->resourceResponse()->appCacheID(); |
| 283 } | 303 } |
| 284 | 304 |
| 285 void WebURLResponse::setAppCacheID(long long appCacheID) | 305 void WebURLResponse::setAppCacheID(long long appCacheID) |
| 286 { | 306 { |
| 287 m_private->m_resourceResponse->setAppCacheID(appCacheID); | 307 m_private->resourceResponse()->setAppCacheID(appCacheID); |
| 288 } | 308 } |
| 289 | 309 |
| 290 WebURL WebURLResponse::appCacheManifestURL() const | 310 WebURL WebURLResponse::appCacheManifestURL() const |
| 291 { | 311 { |
| 292 return m_private->m_resourceResponse->appCacheManifestURL(); | 312 return m_private->resourceResponse()->appCacheManifestURL(); |
| 293 } | 313 } |
| 294 | 314 |
| 295 void WebURLResponse::setAppCacheManifestURL(const WebURL& url) | 315 void WebURLResponse::setAppCacheManifestURL(const WebURL& url) |
| 296 { | 316 { |
| 297 m_private->m_resourceResponse->setAppCacheManifestURL(url); | 317 m_private->resourceResponse()->setAppCacheManifestURL(url); |
| 298 } | 318 } |
| 299 | 319 |
| 300 WebCString WebURLResponse::securityInfo() const | 320 WebCString WebURLResponse::securityInfo() const |
| 301 { | 321 { |
| 302 // FIXME: getSecurityInfo is misnamed. | 322 // FIXME: getSecurityInfo is misnamed. |
| 303 return m_private->m_resourceResponse->getSecurityInfo(); | 323 return m_private->resourceResponse()->getSecurityInfo(); |
| 304 } | 324 } |
| 305 | 325 |
| 306 void WebURLResponse::setSecurityInfo(const WebCString& securityInfo) | 326 void WebURLResponse::setSecurityInfo(const WebCString& securityInfo) |
| 307 { | 327 { |
| 308 m_private->m_resourceResponse->setSecurityInfo(securityInfo); | 328 m_private->resourceResponse()->setSecurityInfo(securityInfo); |
| 309 } | 329 } |
| 310 | 330 |
| 311 void WebURLResponse::setHasMajorCertificateErrors(bool value) | 331 void WebURLResponse::setHasMajorCertificateErrors(bool value) |
| 312 { | 332 { |
| 313 m_private->m_resourceResponse->setHasMajorCertificateErrors(value); | 333 m_private->resourceResponse()->setHasMajorCertificateErrors(value); |
| 314 } | 334 } |
| 315 | 335 |
| 316 WebURLResponse::SecurityStyle WebURLResponse::getSecurityStyle() const | 336 WebURLResponse::SecurityStyle WebURLResponse::getSecurityStyle() const |
| 317 { | 337 { |
| 318 return static_cast<SecurityStyle>(m_private->m_resourceResponse->getSecurity Style()); | 338 return static_cast<SecurityStyle>(m_private->resourceResponse()->getSecurity Style()); |
| 319 } | 339 } |
| 320 | 340 |
| 321 void WebURLResponse::setSecurityStyle(SecurityStyle securityStyle) | 341 void WebURLResponse::setSecurityStyle(SecurityStyle securityStyle) |
| 322 { | 342 { |
| 323 m_private->m_resourceResponse->setSecurityStyle(static_cast<ResourceResponse ::SecurityStyle>(securityStyle)); | 343 m_private->resourceResponse()->setSecurityStyle(static_cast<ResourceResponse ::SecurityStyle>(securityStyle)); |
| 324 } | 344 } |
| 325 | 345 |
| 326 void WebURLResponse::setSecurityDetails(const WebSecurityDetails& webSecurityDet ails) | 346 void WebURLResponse::setSecurityDetails(const WebSecurityDetails& webSecurityDet ails) |
| 327 { | 347 { |
| 328 blink::ResourceResponse::SignedCertificateTimestampList sctList; | 348 blink::ResourceResponse::SignedCertificateTimestampList sctList; |
| 329 for (const auto& iter : webSecurityDetails.sctList) | 349 for (const auto& iter : webSecurityDetails.sctList) |
| 330 sctList.append(static_cast<blink::ResourceResponse::SignedCertificateTim estamp>(iter)); | 350 sctList.append(static_cast<blink::ResourceResponse::SignedCertificateTim estamp>(iter)); |
| 331 m_private->m_resourceResponse->setSecurityDetails( | 351 m_private->resourceResponse()->setSecurityDetails( |
| 332 webSecurityDetails.protocol, | 352 webSecurityDetails.protocol, |
| 333 webSecurityDetails.keyExchange, | 353 webSecurityDetails.keyExchange, |
| 334 webSecurityDetails.cipher, | 354 webSecurityDetails.cipher, |
| 335 webSecurityDetails.mac, | 355 webSecurityDetails.mac, |
| 336 webSecurityDetails.certId, | 356 webSecurityDetails.certId, |
| 337 webSecurityDetails.numUnknownScts, | 357 webSecurityDetails.numUnknownScts, |
| 338 webSecurityDetails.numInvalidScts, | 358 webSecurityDetails.numInvalidScts, |
| 339 webSecurityDetails.numValidScts, | 359 webSecurityDetails.numValidScts, |
| 340 sctList); | 360 sctList); |
| 341 } | 361 } |
| 342 | 362 |
| 343 ResourceResponse& WebURLResponse::toMutableResourceResponse() | 363 ResourceResponse& WebURLResponse::toMutableResourceResponse() |
| 344 { | 364 { |
| 345 ASSERT(m_private); | 365 DCHECK(m_private->resourceResponse()); |
| 346 ASSERT(m_private->m_resourceResponse); | 366 return *m_private->resourceResponse(); |
| 347 | |
| 348 return *m_private->m_resourceResponse; | |
| 349 } | 367 } |
| 350 | 368 |
| 351 const ResourceResponse& WebURLResponse::toResourceResponse() const | 369 const ResourceResponse& WebURLResponse::toResourceResponse() const |
| 352 { | 370 { |
| 353 ASSERT(m_private); | 371 DCHECK(m_private->resourceResponse()); |
| 354 ASSERT(m_private->m_resourceResponse); | 372 return *m_private->resourceResponse(); |
| 355 | |
| 356 return *m_private->m_resourceResponse; | |
| 357 } | 373 } |
| 358 | 374 |
| 359 bool WebURLResponse::wasCached() const | 375 bool WebURLResponse::wasCached() const |
| 360 { | 376 { |
| 361 return m_private->m_resourceResponse->wasCached(); | 377 return m_private->resourceResponse()->wasCached(); |
| 362 } | 378 } |
| 363 | 379 |
| 364 void WebURLResponse::setWasCached(bool value) | 380 void WebURLResponse::setWasCached(bool value) |
| 365 { | 381 { |
| 366 m_private->m_resourceResponse->setWasCached(value); | 382 m_private->resourceResponse()->setWasCached(value); |
| 367 } | 383 } |
| 368 | 384 |
| 369 bool WebURLResponse::wasFetchedViaSPDY() const | 385 bool WebURLResponse::wasFetchedViaSPDY() const |
| 370 { | 386 { |
| 371 return m_private->m_resourceResponse->wasFetchedViaSPDY(); | 387 return m_private->resourceResponse()->wasFetchedViaSPDY(); |
| 372 } | 388 } |
| 373 | 389 |
| 374 void WebURLResponse::setWasFetchedViaSPDY(bool value) | 390 void WebURLResponse::setWasFetchedViaSPDY(bool value) |
| 375 { | 391 { |
| 376 m_private->m_resourceResponse->setWasFetchedViaSPDY(value); | 392 m_private->resourceResponse()->setWasFetchedViaSPDY(value); |
| 377 } | 393 } |
| 378 | 394 |
| 379 bool WebURLResponse::wasNpnNegotiated() const | 395 bool WebURLResponse::wasNpnNegotiated() const |
| 380 { | 396 { |
| 381 return m_private->m_resourceResponse->wasNpnNegotiated(); | 397 return m_private->resourceResponse()->wasNpnNegotiated(); |
| 382 } | 398 } |
| 383 | 399 |
| 384 void WebURLResponse::setWasNpnNegotiated(bool value) | 400 void WebURLResponse::setWasNpnNegotiated(bool value) |
| 385 { | 401 { |
| 386 m_private->m_resourceResponse->setWasNpnNegotiated(value); | 402 m_private->resourceResponse()->setWasNpnNegotiated(value); |
| 387 } | 403 } |
| 388 | 404 |
| 389 bool WebURLResponse::wasAlternateProtocolAvailable() const | 405 bool WebURLResponse::wasAlternateProtocolAvailable() const |
| 390 { | 406 { |
| 391 return m_private->m_resourceResponse->wasAlternateProtocolAvailable(); | 407 return m_private->resourceResponse()->wasAlternateProtocolAvailable(); |
| 392 } | 408 } |
| 393 | 409 |
| 394 void WebURLResponse::setWasAlternateProtocolAvailable(bool value) | 410 void WebURLResponse::setWasAlternateProtocolAvailable(bool value) |
| 395 { | 411 { |
| 396 m_private->m_resourceResponse->setWasAlternateProtocolAvailable(value); | 412 m_private->resourceResponse()->setWasAlternateProtocolAvailable(value); |
| 397 } | 413 } |
| 398 | 414 |
| 399 bool WebURLResponse::wasFetchedViaProxy() const | 415 bool WebURLResponse::wasFetchedViaProxy() const |
| 400 { | 416 { |
| 401 return m_private->m_resourceResponse->wasFetchedViaProxy(); | 417 return m_private->resourceResponse()->wasFetchedViaProxy(); |
| 402 } | 418 } |
| 403 | 419 |
| 404 void WebURLResponse::setWasFetchedViaProxy(bool value) | 420 void WebURLResponse::setWasFetchedViaProxy(bool value) |
| 405 { | 421 { |
| 406 m_private->m_resourceResponse->setWasFetchedViaProxy(value); | 422 m_private->resourceResponse()->setWasFetchedViaProxy(value); |
| 407 } | 423 } |
| 408 | 424 |
| 409 bool WebURLResponse::wasFetchedViaServiceWorker() const | 425 bool WebURLResponse::wasFetchedViaServiceWorker() const |
| 410 { | 426 { |
| 411 return m_private->m_resourceResponse->wasFetchedViaServiceWorker(); | 427 return m_private->resourceResponse()->wasFetchedViaServiceWorker(); |
| 412 } | 428 } |
| 413 | 429 |
| 414 void WebURLResponse::setWasFetchedViaServiceWorker(bool value) | 430 void WebURLResponse::setWasFetchedViaServiceWorker(bool value) |
| 415 { | 431 { |
| 416 m_private->m_resourceResponse->setWasFetchedViaServiceWorker(value); | 432 m_private->resourceResponse()->setWasFetchedViaServiceWorker(value); |
| 417 } | 433 } |
| 418 | 434 |
| 419 bool WebURLResponse::wasFallbackRequiredByServiceWorker() const | 435 bool WebURLResponse::wasFallbackRequiredByServiceWorker() const |
| 420 { | 436 { |
| 421 return m_private->m_resourceResponse->wasFallbackRequiredByServiceWorker(); | 437 return m_private->resourceResponse()->wasFallbackRequiredByServiceWorker(); |
| 422 } | 438 } |
| 423 | 439 |
| 424 void WebURLResponse::setWasFallbackRequiredByServiceWorker(bool value) | 440 void WebURLResponse::setWasFallbackRequiredByServiceWorker(bool value) |
| 425 { | 441 { |
| 426 m_private->m_resourceResponse->setWasFallbackRequiredByServiceWorker(value); | 442 m_private->resourceResponse()->setWasFallbackRequiredByServiceWorker(value); |
| 427 } | 443 } |
| 428 | 444 |
| 429 WebServiceWorkerResponseType WebURLResponse::serviceWorkerResponseType() const | 445 WebServiceWorkerResponseType WebURLResponse::serviceWorkerResponseType() const |
| 430 { | 446 { |
| 431 return m_private->m_resourceResponse->serviceWorkerResponseType(); | 447 return m_private->resourceResponse()->serviceWorkerResponseType(); |
| 432 } | 448 } |
| 433 | 449 |
| 434 void WebURLResponse::setServiceWorkerResponseType(WebServiceWorkerResponseType v alue) | 450 void WebURLResponse::setServiceWorkerResponseType(WebServiceWorkerResponseType v alue) |
| 435 { | 451 { |
| 436 m_private->m_resourceResponse->setServiceWorkerResponseType(value); | 452 m_private->resourceResponse()->setServiceWorkerResponseType(value); |
| 437 } | 453 } |
| 438 | 454 |
| 439 WebURL WebURLResponse::originalURLViaServiceWorker() const | 455 WebURL WebURLResponse::originalURLViaServiceWorker() const |
| 440 { | 456 { |
| 441 return m_private->m_resourceResponse->originalURLViaServiceWorker(); | 457 return m_private->resourceResponse()->originalURLViaServiceWorker(); |
| 442 } | 458 } |
| 443 | 459 |
| 444 void WebURLResponse::setOriginalURLViaServiceWorker(const WebURL& url) | 460 void WebURLResponse::setOriginalURLViaServiceWorker(const WebURL& url) |
| 445 { | 461 { |
| 446 m_private->m_resourceResponse->setOriginalURLViaServiceWorker(url); | 462 m_private->resourceResponse()->setOriginalURLViaServiceWorker(url); |
| 447 } | 463 } |
| 448 | 464 |
| 449 void WebURLResponse::setMultipartBoundary(const char* bytes, size_t size) | 465 void WebURLResponse::setMultipartBoundary(const char* bytes, size_t size) |
| 450 { | 466 { |
| 451 m_private->m_resourceResponse->setMultipartBoundary(bytes, size); | 467 m_private->resourceResponse()->setMultipartBoundary(bytes, size); |
| 452 } | 468 } |
| 453 | 469 |
| 454 WebString WebURLResponse::cacheStorageCacheName() const | 470 WebString WebURLResponse::cacheStorageCacheName() const |
| 455 { | 471 { |
| 456 return m_private->m_resourceResponse->cacheStorageCacheName(); | 472 return m_private->resourceResponse()->cacheStorageCacheName(); |
| 457 } | 473 } |
| 458 | 474 |
| 459 void WebURLResponse::setCacheStorageCacheName(const WebString& cacheStorageCache Name) | 475 void WebURLResponse::setCacheStorageCacheName(const WebString& cacheStorageCache Name) |
| 460 { | 476 { |
| 461 m_private->m_resourceResponse->setCacheStorageCacheName(cacheStorageCacheNam e); | 477 m_private->resourceResponse()->setCacheStorageCacheName(cacheStorageCacheNam e); |
| 462 } | 478 } |
| 463 | 479 |
| 464 void WebURLResponse::setCorsExposedHeaderNames(const WebVector<WebString>& heade rNames) | 480 void WebURLResponse::setCorsExposedHeaderNames(const WebVector<WebString>& heade rNames) |
| 465 { | 481 { |
| 466 Vector<String> exposedHeaderNames; | 482 Vector<String> exposedHeaderNames; |
| 467 exposedHeaderNames.append(headerNames.data(), headerNames.size()); | 483 exposedHeaderNames.append(headerNames.data(), headerNames.size()); |
| 468 m_private->m_resourceResponse->setCorsExposedHeaderNames(exposedHeaderNames) ; | 484 m_private->resourceResponse()->setCorsExposedHeaderNames(exposedHeaderNames) ; |
| 469 } | 485 } |
| 470 | 486 |
| 471 WebString WebURLResponse::downloadFilePath() const | 487 WebString WebURLResponse::downloadFilePath() const |
| 472 { | 488 { |
| 473 return m_private->m_resourceResponse->downloadedFilePath(); | 489 return m_private->resourceResponse()->downloadedFilePath(); |
| 474 } | 490 } |
| 475 | 491 |
| 476 void WebURLResponse::setDownloadFilePath(const WebString& downloadFilePath) | 492 void WebURLResponse::setDownloadFilePath(const WebString& downloadFilePath) |
| 477 { | 493 { |
| 478 m_private->m_resourceResponse->setDownloadedFilePath(downloadFilePath); | 494 m_private->resourceResponse()->setDownloadedFilePath(downloadFilePath); |
| 479 } | 495 } |
| 480 | 496 |
| 481 WebString WebURLResponse::remoteIPAddress() const | 497 WebString WebURLResponse::remoteIPAddress() const |
| 482 { | 498 { |
| 483 return m_private->m_resourceResponse->remoteIPAddress(); | 499 return m_private->resourceResponse()->remoteIPAddress(); |
| 484 } | 500 } |
| 485 | 501 |
| 486 void WebURLResponse::setRemoteIPAddress(const WebString& remoteIPAddress) | 502 void WebURLResponse::setRemoteIPAddress(const WebString& remoteIPAddress) |
| 487 { | 503 { |
| 488 m_private->m_resourceResponse->setRemoteIPAddress(remoteIPAddress); | 504 m_private->resourceResponse()->setRemoteIPAddress(remoteIPAddress); |
| 489 } | 505 } |
| 490 | 506 |
| 491 unsigned short WebURLResponse::remotePort() const | 507 unsigned short WebURLResponse::remotePort() const |
| 492 { | 508 { |
| 493 return m_private->m_resourceResponse->remotePort(); | 509 return m_private->resourceResponse()->remotePort(); |
| 494 } | 510 } |
| 495 | 511 |
| 496 void WebURLResponse::setRemotePort(unsigned short remotePort) | 512 void WebURLResponse::setRemotePort(unsigned short remotePort) |
| 497 { | 513 { |
| 498 m_private->m_resourceResponse->setRemotePort(remotePort); | 514 m_private->resourceResponse()->setRemotePort(remotePort); |
| 499 } | 515 } |
| 500 | 516 |
| 501 WebURLResponse::ExtraData* WebURLResponse::getExtraData() const | 517 WebURLResponse::ExtraData* WebURLResponse::getExtraData() const |
| 502 { | 518 { |
| 503 RefPtr<ResourceResponse::ExtraData> data = m_private->m_resourceResponse->ge tExtraData(); | 519 RefPtr<ResourceResponse::ExtraData> data = m_private->resourceResponse()->ge tExtraData(); |
| 504 if (!data) | 520 if (!data) |
| 505 return 0; | 521 return 0; |
| 506 return static_cast<ExtraDataContainer*>(data.get())->getExtraData(); | 522 return static_cast<ExtraDataContainer*>(data.get())->getExtraData(); |
| 507 } | 523 } |
| 508 | 524 |
| 509 void WebURLResponse::setExtraData(WebURLResponse::ExtraData* extraData) | 525 void WebURLResponse::setExtraData(WebURLResponse::ExtraData* extraData) |
| 510 { | 526 { |
| 511 m_private->m_resourceResponse->setExtraData(ExtraDataContainer::create(extra Data)); | 527 m_private->resourceResponse()->setExtraData(ExtraDataContainer::create(extra Data)); |
| 512 } | 528 } |
| 513 | 529 |
| 514 void WebURLResponse::assign(WebURLResponsePrivate* p) | 530 WebURLResponse::WebURLResponse(WebURLResponsePrivate* p) |
| 531 : m_private(p) | |
| 532 , m_owningPrivate(false) | |
| 515 { | 533 { |
| 516 // Subclasses may call this directly so a self-assignment check is needed | 534 DCHECK(p); |
| 517 // here as well as in the public assign method. | |
| 518 if (m_private == p) | |
| 519 return; | |
| 520 if (m_private) | |
| 521 m_private->dispose(); | |
| 522 m_private = p; | |
| 523 } | 535 } |
| 524 | 536 |
| 525 } // namespace blink | 537 } // namespace blink |
| OLD | NEW |