Auto merge of #14679 - jdm:nowarntimer, r=asajeffrey

Warn when a timer event is processed for a discarded document.

Turn a panic into a warning for a situation that is easy to hit in web content.

- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix #14677
- [X] There are tests for these changes

<!-- 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/14679)
<!-- Reviewable:end -->
This commit is contained in:
bors-servo 2016-12-22 18:19:48 -08:00 committed by GitHub
commit f0a74ee0d2
3 changed files with 25 additions and 2 deletions

View file

@ -1049,8 +1049,11 @@ impl ScriptThread {
TimerSource::FromWorker => panic!("Worker timeouts must not be sent to script thread"),
};
let window = self.documents.borrow().find_window(pipeline_id)
.expect("ScriptThread: received fire timer msg for a pipeline not in this script thread. This is a bug.");
let window = self.documents.borrow().find_window(pipeline_id);
let window = match window {
Some(w) => w,
None => return warn!("Received fire timer msg for a closed pipeline {}.", pipeline_id),
};
window.handle_fire_timer(id);
}