| Index: third_party/WebKit/Source/core/loader/ImageLoader.h | 
| diff --git a/third_party/WebKit/Source/core/loader/ImageLoader.h b/third_party/WebKit/Source/core/loader/ImageLoader.h | 
| index f0cf0fee9eb961a68561109d97dd50b7032c40e5..534fbb0ec861361acf57d755c2709fd28da64773 100644 | 
| --- a/third_party/WebKit/Source/core/loader/ImageLoader.h | 
| +++ b/third_party/WebKit/Source/core/loader/ImageLoader.h | 
| @@ -111,6 +111,7 @@ class CORE_EXPORT ImageLoader : public GarbageCollectedFinalized<ImageLoader>, | 
| bool GetImageAnimationPolicy(ImageAnimationPolicy&) final; | 
|  | 
| protected: | 
| +  void ImageChanged(ImageResourceContent*, const IntRect*) override; | 
| void ImageNotifyFinished(ImageResourceContent*) override; | 
|  | 
| private: | 
| @@ -165,7 +166,26 @@ class CORE_EXPORT ImageLoader : public GarbageCollectedFinalized<ImageLoader>, | 
| Timer<ImageLoader> deref_element_timer_; | 
| AtomicString failed_load_url_; | 
| WeakPtr<Task> pending_task_;  // owned by Microtask | 
| -  std::unique_ptr<IncrementLoadEventDelayCount> load_delay_counter_; | 
| +  std::unique_ptr<IncrementLoadEventDelayCount> | 
| +      delay_until_do_update_from_element_; | 
| + | 
| +  // Delaying load event: the timeline should be: | 
| +  // (0) ImageResource::Fetch() is called. | 
| +  // (1) ResourceFetcher::StartLoad(): Resource loading is actually started. | 
| +  // (2) ResourceLoader::DidFinishLoading() etc: | 
| +  //         Resource loading is finished, but SVG document load might be | 
| +  //         incomplete because of asynchronously loaded subresources. | 
| +  // (3) ImageNotifyFinished(): Image is completely loaded. | 
| +  // and we delay Document load event from (1) to (3): | 
| +  // - |ResourceFetcher::loaders_| delays Document load event from (1) to (2). | 
| +  // - |delay_until_image_notify_finished_| delays Document load event from | 
| +  //   the first ImageChanged() (at some time between (1) and (2)) until (3). | 
| +  // Ideally, we might want to delay Document load event from (1) to (3), | 
| +  // but currently we piggyback on ImageChanged() because adding a callback | 
| +  // hook at (1) might complicate the code. | 
| +  std::unique_ptr<IncrementLoadEventDelayCount> | 
| +      delay_until_image_notify_finished_; | 
| + | 
| bool has_pending_load_event_ : 1; | 
| bool has_pending_error_event_ : 1; | 
| bool image_complete_ : 1; | 
|  |