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

Side by Side Diff: third_party/WebKit/Source/core/loader/ImageLoader.cpp

Issue 2327643003: Replace ASSERT*() with DCHECK*() in core/fetch/ and core/loader/ (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: ASSERT_UNUSED Created 4 years, 3 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) 1999 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
3 * (C) 1999 Antti Koivisto (koivisto@kde.org) 3 * (C) 1999 Antti Koivisto (koivisto@kde.org)
4 * Copyright (C) 2004, 2005, 2006, 2007, 2009, 2010 Apple Inc. All rights reserv ed. 4 * Copyright (C) 2004, 2005, 2006, 2007, 2009, 2010 Apple Inc. All rights reserv ed.
5 * 5 *
6 * This library is free software; you can redistribute it and/or 6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Library General Public 7 * modify it under the terms of the GNU Library General Public
8 * License as published by the Free Software Foundation; either 8 * License as published by the Free Software Foundation; either
9 * version 2 of the License, or (at your option) any later version. 9 * version 2 of the License, or (at your option) any later version.
10 * 10 *
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
67 return sender; 67 return sender;
68 } 68 }
69 69
70 static inline bool pageIsBeingDismissed(Document* document) 70 static inline bool pageIsBeingDismissed(Document* document)
71 { 71 {
72 return document->pageDismissalEventBeingDispatched() != Document::NoDismissa l; 72 return document->pageDismissalEventBeingDispatched() != Document::NoDismissa l;
73 } 73 }
74 74
75 static ImageLoader::BypassMainWorldBehavior shouldBypassMainWorldCSP(ImageLoader * loader) 75 static ImageLoader::BypassMainWorldBehavior shouldBypassMainWorldCSP(ImageLoader * loader)
76 { 76 {
77 ASSERT(loader); 77 DCHECK(loader);
78 ASSERT(loader->element()); 78 DCHECK(loader->element());
79 if (loader->element()->document().frame() && loader->element()->document().f rame()->script().shouldBypassMainWorldCSP()) 79 if (loader->element()->document().frame() && loader->element()->document().f rame()->script().shouldBypassMainWorldCSP())
80 return ImageLoader::BypassMainWorldCSP; 80 return ImageLoader::BypassMainWorldCSP;
81 return ImageLoader::DoNotBypassMainWorldCSP; 81 return ImageLoader::DoNotBypassMainWorldCSP;
82 } 82 }
83 83
84 class ImageLoader::Task { 84 class ImageLoader::Task {
85 public: 85 public:
86 static std::unique_ptr<Task> create(ImageLoader* loader, UpdateFromElementBe havior updateBehavior, ReferrerPolicy referrerPolicy) 86 static std::unique_ptr<Task> create(ImageLoader* loader, UpdateFromElementBe havior updateBehavior, ReferrerPolicy referrerPolicy)
87 { 87 {
88 return wrapUnique(new Task(loader, updateBehavior, referrerPolicy)); 88 return wrapUnique(new Task(loader, updateBehavior, referrerPolicy));
89 } 89 }
90 90
91 Task(ImageLoader* loader, UpdateFromElementBehavior updateBehavior, Referrer Policy referrerPolicy) 91 Task(ImageLoader* loader, UpdateFromElementBehavior updateBehavior, Referrer Policy referrerPolicy)
92 : m_loader(loader) 92 : m_loader(loader)
93 , m_shouldBypassMainWorldCSP(shouldBypassMainWorldCSP(loader)) 93 , m_shouldBypassMainWorldCSP(shouldBypassMainWorldCSP(loader))
94 , m_updateBehavior(updateBehavior) 94 , m_updateBehavior(updateBehavior)
95 , m_weakFactory(this) 95 , m_weakFactory(this)
96 , m_referrerPolicy(referrerPolicy) 96 , m_referrerPolicy(referrerPolicy)
97 { 97 {
98 ExecutionContext& context = m_loader->element()->document(); 98 ExecutionContext& context = m_loader->element()->document();
99 InspectorInstrumentation::asyncTaskScheduled(&context, "Image", this); 99 InspectorInstrumentation::asyncTaskScheduled(&context, "Image", this);
100 v8::Isolate* isolate = V8PerIsolateData::mainThreadIsolate(); 100 v8::Isolate* isolate = V8PerIsolateData::mainThreadIsolate();
101 v8::HandleScope scope(isolate); 101 v8::HandleScope scope(isolate);
102 // If we're invoked from C++ without a V8 context on the stack, we shoul d 102 // If we're invoked from C++ without a V8 context on the stack, we shoul d
103 // run the microtask in the context of the element's document's main wor ld. 103 // run the microtask in the context of the element's document's main wor ld.
104 if (ScriptState::hasCurrentScriptState(isolate)) { 104 if (ScriptState::hasCurrentScriptState(isolate)) {
105 m_scriptState = ScriptState::current(isolate); 105 m_scriptState = ScriptState::current(isolate);
106 } else { 106 } else {
107 m_scriptState = ScriptState::forMainWorld(loader->element()->documen t().frame()); 107 m_scriptState = ScriptState::forMainWorld(loader->element()->documen t().frame());
108 ASSERT(m_scriptState); 108 DCHECK(m_scriptState);
109 } 109 }
110 m_requestURL = loader->imageSourceToKURL(loader->element()->imageSourceU RL()); 110 m_requestURL = loader->imageSourceToKURL(loader->element()->imageSourceU RL());
111 } 111 }
112 112
113 void run() 113 void run()
114 { 114 {
115 if (!m_loader) 115 if (!m_loader)
116 return; 116 return;
117 ExecutionContext& context = m_loader->element()->document(); 117 ExecutionContext& context = m_loader->element()->document();
118 InspectorInstrumentation::AsyncTask asyncTask(&context, this); 118 InspectorInstrumentation::AsyncTask asyncTask(&context, this);
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
185 { 185 {
186 setImageWithoutConsideringPendingLoadEvent(newImage); 186 setImageWithoutConsideringPendingLoadEvent(newImage);
187 187
188 // Only consider updating the protection ref-count of the Element immediatel y before returning 188 // Only consider updating the protection ref-count of the Element immediatel y before returning
189 // from this function as doing so might result in the destruction of this Im ageLoader. 189 // from this function as doing so might result in the destruction of this Im ageLoader.
190 updatedHasPendingEvent(); 190 updatedHasPendingEvent();
191 } 191 }
192 192
193 void ImageLoader::setImageWithoutConsideringPendingLoadEvent(ImageResource* newI mage) 193 void ImageLoader::setImageWithoutConsideringPendingLoadEvent(ImageResource* newI mage)
194 { 194 {
195 ASSERT(m_failedLoadURL.isEmpty()); 195 DCHECK(m_failedLoadURL.isEmpty());
196 ImageResource* oldImage = m_image.get(); 196 ImageResource* oldImage = m_image.get();
197 if (newImage != oldImage) { 197 if (newImage != oldImage) {
198 m_image = newImage; 198 m_image = newImage;
199 if (m_hasPendingLoadEvent) { 199 if (m_hasPendingLoadEvent) {
200 loadEventSender().cancelEvent(this); 200 loadEventSender().cancelEvent(this);
201 m_hasPendingLoadEvent = false; 201 m_hasPendingLoadEvent = false;
202 } 202 }
203 if (m_hasPendingErrorEvent) { 203 if (m_hasPendingErrorEvent) {
204 errorEventSender().cancelEvent(this); 204 errorEventSender().cancelEvent(this);
205 m_hasPendingErrorEvent = false; 205 m_hasPendingErrorEvent = false;
(...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after
430 return true; 430 return true;
431 } 431 }
432 return (isHTMLObjectElement(m_element) || isHTMLEmbedElement(m_element) || u rl.protocolIsData()); 432 return (isHTMLObjectElement(m_element) || isHTMLEmbedElement(m_element) || u rl.protocolIsData());
433 } 433 }
434 434
435 void ImageLoader::imageNotifyFinished(ImageResource* resource) 435 void ImageLoader::imageNotifyFinished(ImageResource* resource)
436 { 436 {
437 RESOURCE_LOADING_DVLOG(1) << "ImageLoader::imageNotifyFinished " << this 437 RESOURCE_LOADING_DVLOG(1) << "ImageLoader::imageNotifyFinished " << this
438 << "; m_hasPendingLoadEvent=" << m_hasPendingLoadEvent; 438 << "; m_hasPendingLoadEvent=" << m_hasPendingLoadEvent;
439 439
440 ASSERT(m_failedLoadURL.isEmpty()); 440 DCHECK(m_failedLoadURL.isEmpty());
441 ASSERT(resource == m_image.get()); 441 DCHECK(resource == m_image.get());
yhirano 2016/09/12 04:33:13 DCHECK_EQ
hiroshige 2016/09/13 08:43:21 Done.
442 442
443 m_imageComplete = true; 443 m_imageComplete = true;
444 444
445 // Update ImageAnimationPolicy for m_image. 445 // Update ImageAnimationPolicy for m_image.
446 if (m_image) 446 if (m_image)
447 m_image->updateImageAnimationPolicy(); 447 m_image->updateImageAnimationPolicy();
448 448
449 updateLayoutObject(); 449 updateLayoutObject();
450 450
451 if (m_image && m_image->getImage() && m_image->getImage()->isSVGImage()) 451 if (m_image && m_image->getImage() && m_image->getImage()->isSVGImage())
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
527 m_elementIsProtected = m_hasPendingLoadEvent || m_hasPendingErrorEvent; 527 m_elementIsProtected = m_hasPendingLoadEvent || m_hasPendingErrorEvent;
528 if (wasProtected == m_elementIsProtected) 528 if (wasProtected == m_elementIsProtected)
529 return; 529 return;
530 530
531 if (m_elementIsProtected) { 531 if (m_elementIsProtected) {
532 if (m_derefElementTimer.isActive()) 532 if (m_derefElementTimer.isActive())
533 m_derefElementTimer.stop(); 533 m_derefElementTimer.stop();
534 else 534 else
535 m_keepAlive = m_element; 535 m_keepAlive = m_element;
536 } else { 536 } else {
537 ASSERT(!m_derefElementTimer.isActive()); 537 DCHECK(!m_derefElementTimer.isActive());
538 m_derefElementTimer.startOneShot(0, BLINK_FROM_HERE); 538 m_derefElementTimer.startOneShot(0, BLINK_FROM_HERE);
539 } 539 }
540 } 540 }
541 541
542 void ImageLoader::timerFired(TimerBase*) 542 void ImageLoader::timerFired(TimerBase*)
543 { 543 {
544 m_keepAlive.clear(); 544 m_keepAlive.clear();
545 } 545 }
546 546
547 void ImageLoader::dispatchPendingEvent(ImageEventSender* eventSender) 547 void ImageLoader::dispatchPendingEvent(ImageEventSender* eventSender)
548 { 548 {
549 RESOURCE_LOADING_DVLOG(1) << "ImageLoader::dispatchPendingEvent " << this; 549 RESOURCE_LOADING_DVLOG(1) << "ImageLoader::dispatchPendingEvent " << this;
550 ASSERT(eventSender == &loadEventSender() || eventSender == &errorEventSender ()); 550 DCHECK(eventSender == &loadEventSender() || eventSender == &errorEventSender ());
551 const AtomicString& eventType = eventSender->eventType(); 551 const AtomicString& eventType = eventSender->eventType();
552 if (eventType == EventTypeNames::load) 552 if (eventType == EventTypeNames::load)
553 dispatchPendingLoadEvent(); 553 dispatchPendingLoadEvent();
554 if (eventType == EventTypeNames::error) 554 if (eventType == EventTypeNames::error)
555 dispatchPendingErrorEvent(); 555 dispatchPendingErrorEvent();
556 } 556 }
557 557
558 void ImageLoader::dispatchPendingLoadEvent() 558 void ImageLoader::dispatchPendingLoadEvent()
559 { 559 {
560 if (!m_hasPendingLoadEvent) 560 if (!m_hasPendingLoadEvent)
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
605 605
606 void ImageLoader::elementDidMoveToNewDocument() 606 void ImageLoader::elementDidMoveToNewDocument()
607 { 607 {
608 if (m_loadDelayCounter) 608 if (m_loadDelayCounter)
609 m_loadDelayCounter->documentChanged(m_element->document()); 609 m_loadDelayCounter->documentChanged(m_element->document());
610 clearFailedLoadURL(); 610 clearFailedLoadURL();
611 setImage(0); 611 setImage(0);
612 } 612 }
613 613
614 } // namespace blink 614 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698