servo/components/script
bors-servo a0116827e6
Auto merge of #22336 - jdm:image-reload, r=Manishearth
Fix missing textures on reloading three.js image content

The fundamental problem is that three.js sets the crossOrigin property of an image, which kicks off an image microtask, and then sets the src. When the image URL is in the image cache (such as when reloading a page), this causes the shortcut to be taken and the image data is made available immediately, but the queued image task is unaware of this and asks the image cache to feed the image data. The existing code then ended up in an unexpected state when trying to deal with this data, such that when three.js received the image load notification and performed the texImage2D operation on the image data, it would discover that the image element did not claim to have a URL, and it would treat this as a broken image. Ultimately, this caused the texture that three.js obtained to be completely black.

---
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #22152.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/22336)
<!-- Reviewable:end -->
2018-11-30 22:38:49 -05:00
..
docs Replace http with https in docs 2018-11-06 11:39:09 +01:00
dom Auto merge of #22336 - jdm:image-reload, r=Manishearth 2018-11-30 22:38:49 -05:00
task_source Update MPL license to https (part 3) 2018-11-19 14:47:12 +01:00
body.rs Update MPL license to https (part 3) 2018-11-19 14:47:12 +01:00
build.rs Update MPL license to https (part 3) 2018-11-19 14:47:12 +01:00
Cargo.toml Auto merge of #22221 - Eijebong:random-depup, r=nox 2018-11-27 11:27:54 -05:00
clipboard_provider.rs Update MPL license to https (part 3) 2018-11-19 14:47:12 +01:00
CMakeLists.txt build(cmake): detect python binary for specified version 2018-03-13 09:25:06 -07:00
devtools.rs Update MPL license to https (part 3) 2018-11-19 14:47:12 +01:00
document_loader.rs Update MPL license to https (part 3) 2018-11-19 14:47:12 +01:00
fetch.rs refactored performance timing to align with updated spec 2018-11-20 16:21:32 +00:00
layout_image.rs refactored performance timing to align with updated spec 2018-11-20 16:21:32 +00:00
lib.rs Auto merge of #22225 - servo:webgl, r=emilio 2018-11-21 10:21:41 -05:00
mem.rs Update MPL license to https (part 3) 2018-11-19 14:47:12 +01:00
microtask.rs Update MPL license to https (part 3) 2018-11-19 14:47:12 +01:00
network_listener.rs refactored performance timing to align with updated spec 2018-11-20 16:21:32 +00:00
script_runtime.rs Update MPL license to https (part 3) 2018-11-19 14:47:12 +01:00
script_thread.rs Remove unused recycle argument from Document::unload 2018-11-30 18:08:08 +02:00
serviceworker_manager.rs Update MPL license to https (part 3) 2018-11-19 14:47:12 +01:00
serviceworkerjob.rs Update MPL license to https (part 3) 2018-11-19 14:47:12 +01:00
stylesheet_loader.rs refactored performance timing to align with updated spec 2018-11-20 16:21:32 +00:00
task.rs Update MPL license to https (part 3) 2018-11-19 14:47:12 +01:00
task_manager.rs Update MPL license to https (part 3) 2018-11-19 14:47:12 +01:00
task_queue.rs Update MPL license to https (part 3) 2018-11-19 14:47:12 +01:00
test.rs Update MPL license to https (part 3) 2018-11-19 14:47:12 +01:00
textinput.rs Auto merge of #22224 - pyfisch:composition-webdriver, r=nox 2018-11-20 03:32:25 -05:00
timers.rs Update MPL license to https (part 3) 2018-11-19 14:47:12 +01:00
unpremultiplytable.rs Update MPL license to https (part 3) 2018-11-19 14:47:12 +01:00
webdriver_handlers.rs Update MPL license to https (part 3) 2018-11-19 14:47:12 +01:00