servo/components/script/dom
bors-servo bc62b5aadb Auto merge of #8785 - mbrubeck:fixed-hit-test, r=pcwalton
Add slow path for hit testing of iframe behind positioned content layer

Fixes browser.html blocker #8759. r? @pcwalton

This adds a slow path for cases where the compositor's layer-based hit testing is incorrect.  If the script task discovers that a mouse event should have been dispatched to an iframe, it bounces the event back to the constellation to be forwarded to the correct pipeline.

This isn't terribly slow (on the slow path, it adds one extra round-trip message between script and constellation), but if we want to optimize this better we could instead replace the compositor's layer hit testing with display list hit testing in the paint task.  This would be a more complicated change that I think we should save for a follow-up.

This only fixes mouse input for now.  A basically-identical change will be needed for touch-screen input, whether we stick with this approach or switch to the paint task.

<!-- Reviewable:start -->
[<img src="https://reviewable.io/review_button.png" height=40 alt="Review on Reviewable"/>](https://reviewable.io/reviews/servo/servo/8785)
<!-- Reviewable:end -->
2015-12-04 02:54:22 +05:30
..
bindings Implement [Unforgeable] 2015-12-02 22:15:11 +01:00
webidls Auto merge of #8712 - simartin:issue_8462, r=ecoal95 2015-12-04 01:07:14 +05:30
activation.rs Rustfmt some of script. 2015-11-18 11:14:05 +01:00
attr.rs Update string_cache to 0.2. 2015-11-25 10:13:21 -06:00
blob.rs Rustfmt some of script. 2015-11-18 11:14:05 +01:00
browsercontext.rs Rustfmt some of script. 2015-11-18 11:14:05 +01:00
canvasgradient.rs Parse currentColor as Canvas2D color 2015-11-21 11:59:19 -08:00
canvaspattern.rs Rustfmt some of script. 2015-11-18 11:14:05 +01:00
canvasrenderingcontext2d.rs Update Canvas webIDL to spec 2015-11-28 20:03:48 -08:00
characterdata.rs Rustfmt some of script. 2015-11-18 11:14:05 +01:00
closeevent.rs Rustfmt some of script. 2015-11-18 11:14:05 +01:00
comment.rs Rustfmt some of script. 2015-11-18 11:14:05 +01:00
console.rs Rustfmt some of script. 2015-11-18 11:14:05 +01:00
create.rs Remove unnecessary conversion to/from DOMString for localName. 2015-12-02 13:42:45 -08:00
crypto.rs Rustfmt some of script. 2015-11-18 11:14:05 +01:00
css.rs Replaced DOMString constructor by conversion functions. 2015-11-12 17:52:59 -06:00
cssstyledeclaration.rs Defined new trait ParseErrorReporter and added error_reporter member to ParserContext 2015-11-25 18:28:30 -05:00
customevent.rs Rustfmt some of script. 2015-11-18 11:14:05 +01:00
dedicatedworkerglobalscope.rs Rustfmt some of script. 2015-11-18 11:14:05 +01:00
document.rs If a mouse event is targeting an iframe, forward it to the iframe's inner window 2015-12-03 08:19:41 -08:00
documentfragment.rs Update string_cache to 0.2. 2015-11-25 10:13:21 -06:00
documenttype.rs Rustfmt some of script. 2015-11-18 11:14:05 +01:00
domexception.rs Rustfmt some of script. 2015-11-18 11:14:05 +01:00
domimplementation.rs Remove unnecessary conversion to/from DOMString for localName. 2015-12-02 13:42:45 -08:00
domparser.rs Rustfmt some of script. 2015-11-18 11:14:05 +01:00
dompoint.rs Rustfmt some of script. 2015-11-18 11:14:05 +01:00
dompointreadonly.rs Rustfmt some of script. 2015-11-18 11:14:05 +01:00
domrect.rs Rustfmt some of script. 2015-11-18 11:14:05 +01:00
domrectlist.rs Rustfmt some of script. 2015-11-18 11:14:05 +01:00
domrectreadonly.rs Rustfmt some of script. 2015-11-18 11:14:05 +01:00
domstringmap.rs Rustfmt some of script. 2015-11-18 11:14:05 +01:00
domtokenlist.rs Update string_cache to 0.2. 2015-11-25 10:13:21 -06:00
element.rs Auto merge of #8786 - eefriedman:localname-atom, r=jdm 2015-12-03 15:05:22 +05:30
errorevent.rs Use DOMString::new() somewhat consistently. 2015-11-04 12:09:10 +01:00
event.rs Update string_cache to 0.2. 2015-11-25 10:13:21 -06:00
eventdispatcher.rs Clean up the conversion routines 2015-11-11 14:19:30 +01:00
eventtarget.rs Update string_cache to 0.2. 2015-11-25 10:13:21 -06:00
file.rs more refactoring 2015-10-30 20:26:29 +09:00
filelist.rs merge from master 2015-11-03 19:01:23 +09:00
filereader.rs Replaced DOMString constructor by conversion functions. 2015-11-12 17:52:59 -06:00
formdata.rs Replaced DOMString constructor by conversion functions. 2015-11-12 17:52:59 -06:00
htmlanchorelement.rs Remove unnecessary conversion to/from DOMString for localName. 2015-12-02 13:42:45 -08:00
htmlappletelement.rs Remove unnecessary conversion to/from DOMString for localName. 2015-12-02 13:42:45 -08:00
htmlareaelement.rs Remove unnecessary conversion to/from DOMString for localName. 2015-12-02 13:42:45 -08:00
htmlaudioelement.rs Remove unnecessary conversion to/from DOMString for localName. 2015-12-02 13:42:45 -08:00
htmlbaseelement.rs Remove unnecessary conversion to/from DOMString for localName. 2015-12-02 13:42:45 -08:00
htmlbodyelement.rs Remove unnecessary conversion to/from DOMString for localName. 2015-12-02 13:42:45 -08:00
htmlbrelement.rs Remove unnecessary conversion to/from DOMString for localName. 2015-12-02 13:42:45 -08:00
htmlbuttonelement.rs Remove unnecessary conversion to/from DOMString for localName. 2015-12-02 13:42:45 -08:00
htmlcanvaselement.rs Remove unnecessary conversion to/from DOMString for localName. 2015-12-02 13:42:45 -08:00
htmlcollection.rs Update string_cache to 0.2. 2015-11-25 10:13:21 -06:00
htmldataelement.rs Remove unnecessary conversion to/from DOMString for localName. 2015-12-02 13:42:45 -08:00
htmldatalistelement.rs Remove unnecessary conversion to/from DOMString for localName. 2015-12-02 13:42:45 -08:00
htmldialogelement.rs Remove unnecessary conversion to/from DOMString for localName. 2015-12-02 13:42:45 -08:00
htmldirectoryelement.rs Remove unnecessary conversion to/from DOMString for localName. 2015-12-02 13:42:45 -08:00
htmldivelement.rs Remove unnecessary conversion to/from DOMString for localName. 2015-12-02 13:42:45 -08:00
htmldlistelement.rs Remove unnecessary conversion to/from DOMString for localName. 2015-12-02 13:42:45 -08:00
htmlelement.rs Remove unnecessary conversion to/from DOMString for localName. 2015-12-02 13:42:45 -08:00
htmlembedelement.rs Remove unnecessary conversion to/from DOMString for localName. 2015-12-02 13:42:45 -08:00
htmlfieldsetelement.rs Remove unnecessary conversion to/from DOMString for localName. 2015-12-02 13:42:45 -08:00
htmlfontelement.rs Remove unnecessary conversion to/from DOMString for localName. 2015-12-02 13:42:45 -08:00
htmlformelement.rs Auto merge of #8293 - simartin:issue_8113, r=jdm 2015-12-03 22:48:46 +05:30
htmlframeelement.rs Remove unnecessary conversion to/from DOMString for localName. 2015-12-02 13:42:45 -08:00
htmlframesetelement.rs Remove unnecessary conversion to/from DOMString for localName. 2015-12-02 13:42:45 -08:00
htmlheadelement.rs Remove unnecessary conversion to/from DOMString for localName. 2015-12-02 13:42:45 -08:00
htmlheadingelement.rs Remove unnecessary conversion to/from DOMString for localName. 2015-12-02 13:42:45 -08:00
htmlhrelement.rs Remove unnecessary conversion to/from DOMString for localName. 2015-12-02 13:42:45 -08:00
htmlhtmlelement.rs Remove unnecessary conversion to/from DOMString for localName. 2015-12-02 13:42:45 -08:00
htmliframeelement.rs Auto merge of #8785 - mbrubeck:fixed-hit-test, r=pcwalton 2015-12-04 02:54:22 +05:30
htmlimageelement.rs Remove unnecessary conversion to/from DOMString for localName. 2015-12-02 13:42:45 -08:00
htmlinputelement.rs Auto merge of #8786 - eefriedman:localname-atom, r=jdm 2015-12-03 15:05:22 +05:30
htmllabelelement.rs Remove unnecessary conversion to/from DOMString for localName. 2015-12-02 13:42:45 -08:00
htmllegendelement.rs Remove unnecessary conversion to/from DOMString for localName. 2015-12-02 13:42:45 -08:00
htmllielement.rs Remove unnecessary conversion to/from DOMString for localName. 2015-12-02 13:42:45 -08:00
htmllinkelement.rs Remove unnecessary conversion to/from DOMString for localName. 2015-12-02 13:42:45 -08:00
htmlmapelement.rs Remove unnecessary conversion to/from DOMString for localName. 2015-12-02 13:42:45 -08:00
htmlmediaelement.rs Remove unnecessary conversion to/from DOMString for localName. 2015-12-02 13:42:45 -08:00
htmlmetaelement.rs Remove unnecessary conversion to/from DOMString for localName. 2015-12-02 13:42:45 -08:00
htmlmeterelement.rs Remove unnecessary conversion to/from DOMString for localName. 2015-12-02 13:42:45 -08:00
htmlmodelement.rs Remove unnecessary conversion to/from DOMString for localName. 2015-12-02 13:42:45 -08:00
htmlobjectelement.rs Remove unnecessary conversion to/from DOMString for localName. 2015-12-02 13:42:45 -08:00
htmlolistelement.rs Remove unnecessary conversion to/from DOMString for localName. 2015-12-02 13:42:45 -08:00
htmloptgroupelement.rs Remove unnecessary conversion to/from DOMString for localName. 2015-12-02 13:42:45 -08:00
htmloptionelement.rs Remove unnecessary conversion to/from DOMString for localName. 2015-12-02 13:42:45 -08:00
htmloutputelement.rs Remove unnecessary conversion to/from DOMString for localName. 2015-12-02 13:42:45 -08:00
htmlparagraphelement.rs Remove unnecessary conversion to/from DOMString for localName. 2015-12-02 13:42:45 -08:00
htmlparamelement.rs Remove unnecessary conversion to/from DOMString for localName. 2015-12-02 13:42:45 -08:00
htmlpreelement.rs Remove unnecessary conversion to/from DOMString for localName. 2015-12-02 13:42:45 -08:00
htmlprogresselement.rs Remove unnecessary conversion to/from DOMString for localName. 2015-12-02 13:42:45 -08:00
htmlquoteelement.rs Remove unnecessary conversion to/from DOMString for localName. 2015-12-02 13:42:45 -08:00
htmlscriptelement.rs Remove unnecessary conversion to/from DOMString for localName. 2015-12-02 13:42:45 -08:00
htmlselectelement.rs Remove unnecessary conversion to/from DOMString for localName. 2015-12-02 13:42:45 -08:00
htmlsourceelement.rs Remove unnecessary conversion to/from DOMString for localName. 2015-12-02 13:42:45 -08:00
htmlspanelement.rs Remove unnecessary conversion to/from DOMString for localName. 2015-12-02 13:42:45 -08:00
htmlstyleelement.rs Remove unnecessary conversion to/from DOMString for localName. 2015-12-02 13:42:45 -08:00
htmltablecaptionelement.rs Remove unnecessary conversion to/from DOMString for localName. 2015-12-02 13:42:45 -08:00
htmltablecellelement.rs Remove unnecessary conversion to/from DOMString for localName. 2015-12-02 13:42:45 -08:00
htmltablecolelement.rs Remove unnecessary conversion to/from DOMString for localName. 2015-12-02 13:42:45 -08:00
htmltabledatacellelement.rs Remove unnecessary conversion to/from DOMString for localName. 2015-12-02 13:42:45 -08:00
htmltableelement.rs Remove unnecessary conversion to/from DOMString for localName. 2015-12-02 13:42:45 -08:00
htmltableheadercellelement.rs Remove unnecessary conversion to/from DOMString for localName. 2015-12-02 13:42:45 -08:00
htmltablerowelement.rs Remove unnecessary conversion to/from DOMString for localName. 2015-12-02 13:42:45 -08:00
htmltablesectionelement.rs Remove unnecessary conversion to/from DOMString for localName. 2015-12-02 13:42:45 -08:00
htmltemplateelement.rs Remove unnecessary conversion to/from DOMString for localName. 2015-12-02 13:42:45 -08:00
htmltextareaelement.rs Auto merge of #8786 - eefriedman:localname-atom, r=jdm 2015-12-03 15:05:22 +05:30
htmltimeelement.rs Remove unnecessary conversion to/from DOMString for localName. 2015-12-02 13:42:45 -08:00
htmltitleelement.rs Remove unnecessary conversion to/from DOMString for localName. 2015-12-02 13:42:45 -08:00
htmltrackelement.rs Remove unnecessary conversion to/from DOMString for localName. 2015-12-02 13:42:45 -08:00
htmlulistelement.rs Remove unnecessary conversion to/from DOMString for localName. 2015-12-02 13:42:45 -08:00
htmlunknownelement.rs Remove unnecessary conversion to/from DOMString for localName. 2015-12-02 13:42:45 -08:00
htmlvideoelement.rs Remove unnecessary conversion to/from DOMString for localName. 2015-12-02 13:42:45 -08:00
imagedata.rs Remove #[allow(raw_pointer_derive)] attributes 2015-11-27 14:32:57 -05:00
keyboardevent.rs Cleanup some unneeded let bindings 2015-11-06 00:22:31 -08:00
location.rs Replaced DOMString constructor by conversion functions. 2015-11-12 17:52:59 -06:00
macros.rs Makes setting negative values to maxLength throw an IndexSize exception 2015-12-03 14:00:59 +11:00
messageevent.rs Replaced DOMString constructor by conversion functions. 2015-11-12 17:52:59 -06:00
mod.rs Add XMLDocument object 2015-11-27 14:55:41 +01:00
mouseevent.rs Get rid of a bunch of explicit derefs 2015-11-03 19:51:46 -08:00
namednodemap.rs Update string_cache to 0.2. 2015-11-25 10:13:21 -06:00
navigator.rs more refactoring 2015-10-30 20:26:29 +09:00
navigatorinfo.rs Replaced DOMString constructor by conversion functions. 2015-11-12 17:52:59 -06:00
node.rs now using external ref_slice instead of the std version 2015-12-03 07:32:07 +00:00
nodeiterator.rs Get rid of a bunch of explicit derefs 2015-11-03 19:51:46 -08:00
nodelist.rs merge from master 2015-11-03 19:01:23 +09:00
performance.rs merge from master 2015-11-03 19:01:23 +09:00
performancetiming.rs Add DOM-related performance timing properties 2015-11-13 17:51:34 -05:00
processinginstruction.rs Explicitly customise flags of new nodes where needed 2015-10-15 17:30:41 +02:00
progressevent.rs rearrange imports to be in alphabetical order 2015-10-30 20:28:59 +09:00
range.rs Add XMLDocument object 2015-11-27 14:55:41 +01:00
screen.rs more refactoring 2015-10-30 20:26:29 +09:00
servohtmlparser.rs Use set_plaintext_state instead of plaintext tag 2015-11-27 00:45:34 -08:00
servoxmlparser.rs M1503 - Integrate XML parse -Initial Steps 2015-11-04 19:18:20 -05:00
storage.rs Replaced DOMString by String in storage APIs. 2015-11-12 17:52:59 -06:00
storageevent.rs rearrange imports to be in alphabetical order 2015-10-30 20:28:59 +09:00
testbinding.rs Auto merge of #8147 - nox:weakref, r=Ms2ger 2015-11-13 06:22:40 +05:30
testbindingproxy.rs Use DOMString::new() somewhat consistently. 2015-11-04 12:09:10 +01:00
text.rs Replaced DOMString constructor by conversion functions. 2015-11-12 17:52:59 -06:00
textdecoder.rs Replaced DOMString constructor by conversion functions. 2015-11-12 17:52:59 -06:00
textencoder.rs Replaced DOMString constructor by conversion functions. 2015-11-12 17:52:59 -06:00
touch.rs more refactoring 2015-10-30 20:26:29 +09:00
touchevent.rs rearrange imports to be in alphabetical order 2015-10-30 20:28:59 +09:00
touchlist.rs merge from master 2015-11-03 19:01:23 +09:00
treewalker.rs Get rid of a bunch of explicit derefs 2015-11-03 19:51:46 -08:00
uievent.rs Get rid of a bunch of explicit derefs 2015-11-03 19:51:46 -08:00
url.rs Replaced DOMString constructor by conversion functions. 2015-11-12 17:52:59 -06:00
urlhelper.rs Update URL-related interfaces and their tests up to spec 2015-10-19 21:05:07 +02:00
urlsearchparams.rs Replaced DOMString constructor by conversion functions. 2015-11-12 17:52:59 -06:00
userscripts.rs Replaced DOMString constructor by conversion functions. 2015-11-12 17:52:59 -06:00
validitystate.rs more refactoring 2015-10-30 20:26:29 +09:00
values.rs Consolidate magic number representing max unsigned long 2015-10-10 13:46:11 -04:00
virtualmethods.rs Implement <hr> 'color' attribute 2015-11-08 18:34:27 -05:00
webglactiveinfo.rs Make DOMString a newtype around String, rather than a typedef. 2015-11-04 12:09:11 +01:00
webglbuffer.rs merge from master 2015-11-03 19:01:23 +09:00
webglcontextevent.rs Use DOMString::new() somewhat consistently. 2015-11-04 12:09:10 +01:00
webglframebuffer.rs merge from master 2015-11-03 19:01:23 +09:00
webglobject.rs more refactoring 2015-10-30 20:26:29 +09:00
webglprogram.rs Replaced DOMString constructor by conversion functions. 2015-11-12 17:52:59 -06:00
webglrenderbuffer.rs merge from master 2015-11-03 19:01:23 +09:00
webglrenderingcontext.rs Issue #8462: Add support for BufferSubData, CompressedTexImage2D and 2015-12-01 20:40:42 +01:00
webglshader.rs Make DOMString a newtype around String, rather than a typedef. 2015-11-04 12:09:11 +01:00
webglshaderprecisionformat.rs more refactoring 2015-10-30 20:26:29 +09:00
webgltexture.rs merge from master 2015-11-03 19:01:23 +09:00
webgluniformlocation.rs more refactoring 2015-10-30 20:26:29 +09:00
websocket.rs Auto merge of #8787 - Jayflux:hotfix/8695, r=mbrubeck 2015-12-03 16:10:24 +05:30
window.rs Defined new trait ParseErrorReporter and added error_reporter member to ParserContext 2015-11-25 18:28:30 -05:00
worker.rs Replaced DOMString constructor by conversion functions. 2015-11-12 17:52:59 -06:00
workerglobalscope.rs Split ConstellationMsg into ScriptMsg and CompositorMsg 2015-11-16 23:10:53 -08:00
workerlocation.rs Replaced DOMString constructor by conversion functions. 2015-11-12 17:52:59 -06:00
workernavigator.rs more refactoring 2015-10-30 20:26:29 +09:00
xmldocument.rs Implement [Unforgeable] 2015-12-02 22:15:11 +01:00
xmlhttprequest.rs Implement final_mime_type and final_charset helpers and use in text_response 2015-12-02 20:06:59 -05:00
xmlhttprequesteventtarget.rs Introduce trait Castable 2015-10-21 11:37:16 +02:00
xmlhttprequestupload.rs more refactoring 2015-10-30 20:26:29 +09:00