OLD | NEW |
1 /* | 1 /* |
2 Copyright (C) 1998 Lars Knoll (knoll@mpi-hd.mpg.de) | 2 Copyright (C) 1998 Lars Knoll (knoll@mpi-hd.mpg.de) |
3 Copyright (C) 2001 Dirk Mueller (mueller@kde.org) | 3 Copyright (C) 2001 Dirk Mueller (mueller@kde.org) |
4 Copyright (C) 2002 Waldo Bastian (bastian@kde.org) | 4 Copyright (C) 2002 Waldo Bastian (bastian@kde.org) |
5 Copyright (C) 2006 Samuel Weinig (sam.weinig@gmail.com) | 5 Copyright (C) 2006 Samuel Weinig (sam.weinig@gmail.com) |
6 Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All | 6 Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All |
7 rights reserved. | 7 rights reserved. |
8 | 8 |
9 This library is free software; you can redistribute it and/or | 9 This library is free software; you can redistribute it and/or |
10 modify it under the terms of the GNU Library General Public | 10 modify it under the terms of the GNU Library General Public |
(...skipping 284 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
295 void Resource::ResourceCallback::runTask() { | 295 void Resource::ResourceCallback::runTask() { |
296 HeapVector<Member<Resource>> resources; | 296 HeapVector<Member<Resource>> resources; |
297 for (const Member<Resource>& resource : m_resourcesWithPendingClients) | 297 for (const Member<Resource>& resource : m_resourcesWithPendingClients) |
298 resources.push_back(resource.get()); | 298 resources.push_back(resource.get()); |
299 m_resourcesWithPendingClients.clear(); | 299 m_resourcesWithPendingClients.clear(); |
300 | 300 |
301 for (const auto& resource : resources) | 301 for (const auto& resource : resources) |
302 resource->finishPendingClients(); | 302 resource->finishPendingClients(); |
303 } | 303 } |
304 | 304 |
305 constexpr Resource::Status Resource::NotStarted; | |
306 constexpr Resource::Status Resource::Pending; | |
307 constexpr Resource::Status Resource::Cached; | |
308 constexpr Resource::Status Resource::LoadError; | |
309 constexpr Resource::Status Resource::DecodeError; | |
310 | |
311 Resource::Resource(const ResourceRequest& request, | 305 Resource::Resource(const ResourceRequest& request, |
312 Type type, | 306 Type type, |
313 const ResourceLoaderOptions& options) | 307 const ResourceLoaderOptions& options) |
314 : m_loadFinishTime(0), | 308 : m_loadFinishTime(0), |
315 m_identifier(0), | 309 m_identifier(0), |
316 m_encodedSize(0), | 310 m_encodedSize(0), |
317 m_encodedSizeMemoryUsage(0), | 311 m_encodedSizeMemoryUsage(0), |
318 m_decodedSize(0), | 312 m_decodedSize(0), |
319 m_overheadSize(calculateOverheadSize()), | 313 m_overheadSize(calculateOverheadSize()), |
320 m_preloadCount(0), | 314 m_preloadCount(0), |
321 m_preloadDiscoveryTime(0.0), | 315 m_preloadDiscoveryTime(0.0), |
322 m_cacheIdentifier(MemoryCache::defaultCacheIdentifier()), | 316 m_cacheIdentifier(MemoryCache::defaultCacheIdentifier()), |
323 m_preloadResult(PreloadNotReferenced), | 317 m_preloadResult(PreloadNotReferenced), |
324 m_type(type), | 318 m_type(type), |
325 m_status(NotStarted), | 319 m_status(ResourceStatus::NotStarted), |
326 m_needsSynchronousCacheHit(false), | 320 m_needsSynchronousCacheHit(false), |
327 m_linkPreload(false), | 321 m_linkPreload(false), |
328 m_isRevalidating(false), | 322 m_isRevalidating(false), |
329 m_isAlive(false), | 323 m_isAlive(false), |
330 m_isAddRemoveClientProhibited(false), | 324 m_isAddRemoveClientProhibited(false), |
331 m_integrityDisposition(ResourceIntegrityDisposition::NotChecked), | 325 m_integrityDisposition(ResourceIntegrityDisposition::NotChecked), |
332 m_options(options), | 326 m_options(options), |
333 m_responseTimestamp(currentTime()), | 327 m_responseTimestamp(currentTime()), |
334 m_cancelTimer(Platform::current()->mainThread()->getWebTaskRunner(), | 328 m_cancelTimer(Platform::current()->mainThread()->getWebTaskRunner(), |
335 this, | 329 this, |
(...skipping 17 matching lines...) Expand all Loading... |
353 visitor->trace(m_clients); | 347 visitor->trace(m_clients); |
354 visitor->trace(m_clientsAwaitingCallback); | 348 visitor->trace(m_clientsAwaitingCallback); |
355 visitor->trace(m_finishedClients); | 349 visitor->trace(m_finishedClients); |
356 MemoryCoordinatorClient::trace(visitor); | 350 MemoryCoordinatorClient::trace(visitor); |
357 } | 351 } |
358 | 352 |
359 void Resource::setLoader(ResourceLoader* loader) { | 353 void Resource::setLoader(ResourceLoader* loader) { |
360 CHECK(!m_loader); | 354 CHECK(!m_loader); |
361 DCHECK(stillNeedsLoad()); | 355 DCHECK(stillNeedsLoad()); |
362 m_loader = loader; | 356 m_loader = loader; |
363 m_status = Pending; | 357 m_status = ResourceStatus::Pending; |
364 } | 358 } |
365 | 359 |
366 void Resource::checkNotify() { | 360 void Resource::checkNotify() { |
367 if (isLoading()) | 361 if (isLoading()) |
368 return; | 362 return; |
369 | 363 |
370 ResourceClientWalker<ResourceClient> w(m_clients); | 364 ResourceClientWalker<ResourceClient> w(m_clients); |
371 while (ResourceClient* c = w.next()) { | 365 while (ResourceClient* c = w.next()) { |
372 markClientFinished(c); | 366 markClientFinished(c); |
373 c->notifyFinished(this); | 367 c->notifyFinished(this); |
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
415 | 409 |
416 void Resource::error(const ResourceError& error) { | 410 void Resource::error(const ResourceError& error) { |
417 DCHECK(!error.isNull()); | 411 DCHECK(!error.isNull()); |
418 m_error = error; | 412 m_error = error; |
419 m_isRevalidating = false; | 413 m_isRevalidating = false; |
420 | 414 |
421 if (m_error.isCancellation() || !isPreloaded()) | 415 if (m_error.isCancellation() || !isPreloaded()) |
422 memoryCache()->remove(this); | 416 memoryCache()->remove(this); |
423 | 417 |
424 if (!errorOccurred()) | 418 if (!errorOccurred()) |
425 setStatus(LoadError); | 419 setStatus(ResourceStatus::LoadError); |
426 DCHECK(errorOccurred()); | 420 DCHECK(errorOccurred()); |
427 clearData(); | 421 clearData(); |
428 m_loader = nullptr; | 422 m_loader = nullptr; |
429 checkNotify(); | 423 checkNotify(); |
430 } | 424 } |
431 | 425 |
432 void Resource::finish(double loadFinishTime) { | 426 void Resource::finish(double loadFinishTime) { |
433 DCHECK(!m_isRevalidating); | 427 DCHECK(!m_isRevalidating); |
434 m_loadFinishTime = loadFinishTime; | 428 m_loadFinishTime = loadFinishTime; |
435 if (!errorOccurred()) | 429 if (!errorOccurred()) |
436 m_status = Cached; | 430 m_status = ResourceStatus::Cached; |
437 m_loader = nullptr; | 431 m_loader = nullptr; |
438 checkNotify(); | 432 checkNotify(); |
439 } | 433 } |
440 | 434 |
441 AtomicString Resource::httpContentType() const { | 435 AtomicString Resource::httpContentType() const { |
442 return extractMIMETypeFromMediaType( | 436 return extractMIMETypeFromMediaType( |
443 response().httpHeaderField(HTTPNames::Content_Type).lower()); | 437 response().httpHeaderField(HTTPNames::Content_Type).lower()); |
444 } | 438 } |
445 | 439 |
446 bool Resource::passesAccessControlCheck(SecurityOrigin* securityOrigin) const { | 440 bool Resource::passesAccessControlCheck(SecurityOrigin* securityOrigin) const { |
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
569 return resourceRequest(); | 563 return resourceRequest(); |
570 return m_redirectChain.back().m_request; | 564 return m_redirectChain.back().m_request; |
571 } | 565 } |
572 | 566 |
573 void Resource::setRevalidatingRequest(const ResourceRequest& request) { | 567 void Resource::setRevalidatingRequest(const ResourceRequest& request) { |
574 SECURITY_CHECK(m_redirectChain.isEmpty()); | 568 SECURITY_CHECK(m_redirectChain.isEmpty()); |
575 DCHECK(!request.isNull()); | 569 DCHECK(!request.isNull()); |
576 CHECK(!m_isRevalidationStartForbidden); | 570 CHECK(!m_isRevalidationStartForbidden); |
577 m_isRevalidating = true; | 571 m_isRevalidating = true; |
578 m_resourceRequest = request; | 572 m_resourceRequest = request; |
579 m_status = NotStarted; | 573 m_status = ResourceStatus::NotStarted; |
580 } | 574 } |
581 | 575 |
582 bool Resource::willFollowRedirect(const ResourceRequest& newRequest, | 576 bool Resource::willFollowRedirect(const ResourceRequest& newRequest, |
583 const ResourceResponse& redirectResponse) { | 577 const ResourceResponse& redirectResponse) { |
584 if (m_isRevalidating) | 578 if (m_isRevalidating) |
585 revalidationFailed(); | 579 revalidationFailed(); |
586 m_redirectChain.push_back(RedirectPair(newRequest, redirectResponse)); | 580 m_redirectChain.push_back(RedirectPair(newRequest, redirectResponse)); |
587 return true; | 581 return true; |
588 } | 582 } |
589 | 583 |
(...skipping 525 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1115 case Resource::Media: | 1109 case Resource::Media: |
1116 case Resource::Manifest: | 1110 case Resource::Manifest: |
1117 case Resource::Mock: | 1111 case Resource::Mock: |
1118 return false; | 1112 return false; |
1119 } | 1113 } |
1120 NOTREACHED(); | 1114 NOTREACHED(); |
1121 return false; | 1115 return false; |
1122 } | 1116 } |
1123 | 1117 |
1124 } // namespace blink | 1118 } // namespace blink |
OLD | NEW |