Join GitHub today
GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.
Sign upImplement AddEventListenerOptions: once #22100
Conversation
highfive
commented
Nov 3, 2018
|
Heads up! This PR modifies the following files:
|
|
@bors-servo try=wpt |
Implement AddEventListenerOptions: once Fixes #13242 <!-- 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/22100) <!-- Reviewable:end -->
|
|
|
|
||
| impl std::cmp::PartialEq for EventListenerEntry { | ||
| fn eq(&self, other: &Self) -> bool { | ||
| self.phase == other.phase && self.listener == other.listener |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
Eijebong
Nov 22, 2018
Author
Member
Because removing an eventlistener without specifying once: true still needs to find the ones that are once
|
|
||
| let listener = EventListenerType::Additive(listener); | ||
| for entry in handlers.get_mut(ty) { | ||
| if let Some(position) = entry.iter().position(|e| e.listener == listener && e.once) { |
This comment has been minimized.
This comment has been minimized.
nox
Dec 7, 2018
Member
You can probably use drain here, which will result in slightly more performant code.
| }); | ||
| } | ||
| }, | ||
| } | ||
| } | ||
|
|
||
| pub fn remove_listener_if_once(&self, ty: &Atom, listener: Rc<EventListener>) { |
This comment has been minimized.
This comment has been minimized.
nox
Dec 7, 2018
Member
Make listener be a &Rc<EventListener> and you will be able to avoid a cloning operation in the caller.
|
This should improve the behaviour of html/webappapis/dynamic-markup-insertion/opening-the-input-stream/bailout-exception-vs-return-xml.window.js; otherwise it ends up endlessly loading new iframes. |
|
There, anything else ? :p |
|
@bors-servo r+ |
|
|
Implement AddEventListenerOptions: once Fixes #13242 <!-- 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/22100) <!-- Reviewable:end -->
|
|
|
Ran rustfmt |
|
@bors-servo r+ |
|
|
Implement AddEventListenerOptions: once Fixes #13242 <!-- 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/22100) <!-- Reviewable:end -->
|
|
Eijebong commentedNov 3, 2018
•
edited by SimonSapin
Fixes #13242
This change is