Skip to content
Permalink
Browse files

Merge branch 'master' of https://github.com/servo/servo into implemen…

…t-DOMException-constructor
  • Loading branch information...
cdeler committed Dec 22, 2018
2 parents 83d318c + 72f64c4 commit b3c7c2a264de624608b00e72533945cd57778fd3
Showing with 3,087 additions and 2,500 deletions.
  1. +8 −3 .taskcluster.yml
  2. +105 −125 Cargo.lock
  3. +12 −0 components/background_hang_monitor/background_hang_monitor.rs
  4. +27 −0 components/background_hang_monitor/tests/hang_monitor_tests.rs
  5. +0 −3 components/compositing/lib.rs
  6. +1 −1 components/constellation/Cargo.toml
  7. +3 −2 components/constellation/browsingcontext.rs
  8. +56 −53 components/constellation/constellation.rs
  9. +14 −2 components/constellation/lib.rs
  10. +39 −8 components/constellation/pipeline.rs
  11. +2 −3 components/gfx/platform/macos/font.rs
  12. +1 −0 components/layout_thread/lib.rs
  13. +2 −0 components/msg/constellation_msg.rs
  14. +3 −10 components/net/connector.rs
  15. +12 −1 components/net/http_loader.rs
  16. +2 −7 components/net/tests/http_loader.rs
  17. +6 −0 components/script/dom/bindings/callback.rs
  18. +3 −0 components/script/dom/bindings/trace.rs
  19. +53 −14 components/script/dom/document.rs
  20. +4 −1 components/script/dom/event.rs
  21. +21 −1 components/script/dom/eventtarget.rs
  22. +3 −2 components/script/dom/htmlformelement.rs
  23. +28 −13 components/script/dom/htmliframeelement.rs
  24. +7 −16 components/script/dom/htmlimageelement.rs
  25. +4 −1 components/script/dom/htmlscriptelement.rs
  26. +3 −4 components/script/dom/mediaquerylist.rs
  27. +12 −0 components/script/dom/node.rs
  28. +1 −1 components/script/dom/webidls/EventTarget.webidl
  29. +27 −26 components/script/dom/window.rs
  30. +1 −1 components/script/dom/windowproxy.rs
  31. +5 −3 components/script/script_thread.rs
  32. +2 −2 components/script_traits/lib.rs
  33. +1 −1 components/servo/Cargo.toml
  34. +29 −5 components/servo/lib.rs
  35. +37 −16 etc/ci/buildbot_steps.yml
  36. +123 −70 etc/taskcluster/decision_task.py
  37. +52 −58 etc/taskcluster/decisionlib.py
  38. +3 −2 etc/taskcluster/macos/Brewfile
  39. +2 −0 etc/taskcluster/macos/config/roster
  40. +1 −1 etc/taskcluster/macos/states/generic-worker.plist.jinja
  41. +2 −2 etc/taskcluster/macos/states/generic-worker.sls
  42. +55 −17 python/servo/command_base.py
  43. +3 −3 python/servo/testing_commands.py
  44. +0 −1 servo-tidy.toml
  45. +0 −3 tests/wpt/metadata/FileAPI/url/url-with-fetch.any.js.ini
  46. +205 −207 tests/wpt/metadata/MANIFEST.json
  47. +1 −0 tests/wpt/metadata/bluetooth/__dir__.ini
  48. +4 −0 tests/wpt/metadata/bluetooth/characteristic/characteristicProperties.https.html.ini
  49. +4 −0 .../wpt/metadata/bluetooth/characteristic/getDescriptor/gen-characteristic-is-removed.https.html.ini
  50. +4 −0 ...wpt/metadata/bluetooth/characteristic/getDescriptor/gen-descriptor-get-same-object.https.html.ini
  51. +4 −0 tests/wpt/metadata/bluetooth/characteristic/getDescriptor/gen-service-is-removed.https.html.ini
  52. +4 −0 ...ta/bluetooth/characteristic/getDescriptors/gen-characteristic-is-removed-with-uuid.https.html.ini
  53. +4 −0 ...wpt/metadata/bluetooth/characteristic/getDescriptors/gen-characteristic-is-removed.https.html.ini
  54. +4 −0 ...pt/metadata/bluetooth/characteristic/getDescriptors/gen-descriptor-get-same-object.https.html.ini
  55. +4 −0 .../metadata/bluetooth/characteristic/getDescriptors/gen-service-is-removed-with-uuid.https.html.ini
  56. +4 −0 tests/wpt/metadata/bluetooth/characteristic/getDescriptors/gen-service-is-removed.https.html.ini
  57. +4 −0 tests/wpt/metadata/bluetooth/characteristic/notifications/characteristic-is-removed.https.html.ini
  58. +4 −0 tests/wpt/metadata/bluetooth/characteristic/notifications/service-is-removed.https.html.ini
  59. +4 −0 tests/wpt/metadata/bluetooth/characteristic/readValue/add-multiple-event-listeners.https.html.ini
  60. +4 −0 tests/wpt/metadata/bluetooth/characteristic/readValue/characteristic-is-removed.https.html.ini
  61. +4 −0 tests/wpt/metadata/bluetooth/characteristic/readValue/event-is-fired.https.html.ini
  62. +4 −0 tests/wpt/metadata/bluetooth/characteristic/readValue/gen-characteristic-is-removed.https.html.ini
  63. +4 −0 tests/wpt/metadata/bluetooth/characteristic/readValue/read-succeeds.https.html.ini
  64. +4 −0 tests/wpt/metadata/bluetooth/characteristic/readValue/read-updates-value.https.html.ini
  65. +4 −0 tests/wpt/metadata/bluetooth/characteristic/readValue/service-is-removed.https.html.ini
  66. +4 −0 tests/wpt/metadata/bluetooth/characteristic/service-same-from-2-characteristics.https.html.ini
  67. +4 −0 tests/wpt/metadata/bluetooth/characteristic/service-same-object.https.html.ini
  68. +4 −0 ...metadata/bluetooth/characteristic/startNotifications/gen-characteristic-is-removed.https.html.ini
  69. +4 −0 tests/wpt/metadata/bluetooth/characteristic/writeValue/characteristic-is-removed.https.html.ini
  70. +4 −0 tests/wpt/metadata/bluetooth/characteristic/writeValue/gen-characteristic-is-removed.https.html.ini
  71. +4 −0 tests/wpt/metadata/bluetooth/characteristic/writeValue/service-is-removed.https.html.ini
  72. +4 −0 tests/wpt/metadata/bluetooth/characteristic/writeValue/write-succeeds.https.html.ini
  73. +4 −0 tests/wpt/metadata/bluetooth/descriptor/readValue/gen-service-is-removed.https.html.ini
  74. +4 −0 tests/wpt/metadata/bluetooth/descriptor/readValue/read-succeeds.https.html.ini
  75. +4 −0 tests/wpt/metadata/bluetooth/descriptor/writeValue/gen-service-is-removed.https.html.ini
  76. +4 −0 tests/wpt/metadata/bluetooth/device/gattserverdisconnected-event/disconnected.https.html.ini
  77. +4 −0 tests/wpt/metadata/bluetooth/device/gattserverdisconnected-event/disconnected_gc.https.html.ini
  78. +4 −0 ...metadata/bluetooth/device/gattserverdisconnected-event/one-event-per-disconnection.https.html.ini
  79. +4 −0 .../bluetooth/device/gattserverdisconnected-event/reconnect-during-disconnected-event.https.html.ini
  80. +4 −0 tests/wpt/metadata/bluetooth/idl/idl-BluetoothDevice.https.html.ini
  81. +4 −0 tests/wpt/metadata/bluetooth/idl/idl-NavigatorBluetooth.html.ini
  82. +223 −0 tests/wpt/metadata/bluetooth/idl/idlharness.tentative.https.window.js.ini
  83. +4 −0 tests/wpt/metadata/bluetooth/requestDevice/acceptAllDevices/device-with-empty-name.https.html.ini
  84. +4 −0 tests/wpt/metadata/bluetooth/requestDevice/acceptAllDevices/device-with-name.https.html.ini
  85. +4 −0 tests/wpt/metadata/bluetooth/requestDevice/acceptAllDevices/optional-services-missing.https.html.ini
  86. +4 −0 tests/wpt/metadata/bluetooth/requestDevice/acceptAllDevices/optional-services-present.https.html.ini
  87. +4 −0 tests/wpt/metadata/bluetooth/requestDevice/blocklisted-service-in-filter.https.html.ini
  88. +4 −0 tests/wpt/metadata/bluetooth/requestDevice/blocklisted-service-in-optionalServices.https.html.ini
  89. +4 −0 ...tadata/bluetooth/requestDevice/canonicalizeFilter/device-name-longer-than-29-bytes.https.html.ini
  90. +4 −0 tests/wpt/metadata/bluetooth/requestDevice/canonicalizeFilter/empty-filter.https.html.ini
  91. +4 −0 tests/wpt/metadata/bluetooth/requestDevice/canonicalizeFilter/empty-filters-member.https.html.ini
  92. +4 −0 tests/wpt/metadata/bluetooth/requestDevice/canonicalizeFilter/empty-namePrefix.https.html.ini
  93. +4 −0 tests/wpt/metadata/bluetooth/requestDevice/canonicalizeFilter/empty-services-member.https.html.ini
  94. +4 −0 ...t/metadata/bluetooth/requestDevice/canonicalizeFilter/filters-xor-acceptAllDevices.https.html.ini
  95. +4 −0 ...tadata/bluetooth/requestDevice/canonicalizeFilter/max-length-exceeded-name-unicode.https.html.ini
  96. +4 −0 ...s/wpt/metadata/bluetooth/requestDevice/canonicalizeFilter/max-length-exceeded-name.https.html.ini
  97. +4 −0 .../bluetooth/requestDevice/canonicalizeFilter/max-length-exceeded-namePrefix-unicode.https.html.ini
  98. +4 −0 ...metadata/bluetooth/requestDevice/canonicalizeFilter/max-length-exceeded-namePrefix.https.html.ini
  99. +4 −0 tests/wpt/metadata/bluetooth/requestDevice/canonicalizeFilter/max-length-name-unicode.https.html.ini
  100. +4 −0 tests/wpt/metadata/bluetooth/requestDevice/canonicalizeFilter/max-length-name.https.html.ini
  101. +4 −0 .../metadata/bluetooth/requestDevice/canonicalizeFilter/max-length-namePrefix-unicode.https.html.ini
  102. +4 −0 tests/wpt/metadata/bluetooth/requestDevice/canonicalizeFilter/max-length-namePrefix.https.html.ini
  103. +4 −0 tests/wpt/metadata/bluetooth/requestDevice/canonicalizeFilter/no-arguments.https.html.ini
  104. +4 −0 ...metadata/bluetooth/requestDevice/canonicalizeFilter/unicode-valid-length-name-name.https.html.ini
  105. +4 −0 ...ta/bluetooth/requestDevice/canonicalizeFilter/unicode-valid-length-name-namePrefix.https.html.ini
  106. +4 −0 ...luetooth/requestDevice/canonicalizeFilter/wrong-service-in-optionalServices-member.https.html.ini
  107. +4 −0 ...tadata/bluetooth/requestDevice/canonicalizeFilter/wrong-service-in-services-member.https.html.ini
  108. +4 −0 tests/wpt/metadata/bluetooth/requestDevice/cross-origin-iframe.sub.https.html.ini
  109. +4 −0 tests/wpt/metadata/bluetooth/requestDevice/discovery-succeeds.https.html.ini
  110. +4 −0 tests/wpt/metadata/bluetooth/requestDevice/doesnt-consume-user-gesture.https.html.ini
  111. +4 −0 tests/wpt/metadata/bluetooth/requestDevice/filter-matches.https.html.ini
  112. +4 −0 tests/wpt/metadata/bluetooth/requestDevice/le-not-supported.https.html.ini
  113. +4 −0 tests/wpt/metadata/bluetooth/requestDevice/name-empty-device-from-name-empty-filter.https.html.ini
  114. +4 −0 tests/wpt/metadata/bluetooth/requestDevice/not-processing-user-gesture.https.html.ini
  115. +4 −0 tests/wpt/metadata/bluetooth/requestDevice/radio-not-present.https.html.ini
  116. +4 −0 tests/wpt/metadata/bluetooth/requestDevice/request-from-iframe.https.html.ini
  117. +4 −0 tests/wpt/metadata/bluetooth/requestDevice/request-from-sandboxed-iframe.https.html.ini
  118. +4 −0 tests/wpt/metadata/bluetooth/requestDevice/same-device.https.html.ini
  119. +4 −0 tests/wpt/metadata/bluetooth/requestDevice/single-filter-single-service.https.html.ini
  120. +4 −0 tests/wpt/metadata/bluetooth/server/connect/connection-succeeds.https.html.ini
  121. +4 −0 tests/wpt/metadata/bluetooth/server/connect/garbage-collection-ran-during-success.https.html.ini
  122. +4 −0 tests/wpt/metadata/bluetooth/server/connect/get-same-gatt-server.https.html.ini
  123. +4 −0 tests/wpt/metadata/bluetooth/server/device-same-object.https.html.ini
  124. +4 −0 tests/wpt/metadata/bluetooth/server/disconnect/connect-disconnect-twice.https.html.ini
  125. +4 −0 tests/wpt/metadata/bluetooth/server/disconnect/detach-gc.https.html.ini
  126. +4 −0 tests/wpt/metadata/bluetooth/server/disconnect/disconnect-twice-in-a-row.https.html.ini
  127. +4 −0 tests/wpt/metadata/bluetooth/server/disconnect/gc-detach.https.html.ini
  128. +4 −0 tests/wpt/metadata/bluetooth/server/getPrimaryService/gen-disconnect-called-before.https.html.ini
  129. +4 −0 ...wpt/metadata/bluetooth/server/getPrimaryService/gen-disconnect-called-during-error.https.html.ini
  130. +4 −0 ...t/metadata/bluetooth/server/getPrimaryService/gen-disconnect-called-during-success.https.html.ini
  131. +4 −0 ...wpt/metadata/bluetooth/server/getPrimaryService/gen-disconnect-invalidates-objects.https.html.ini
  132. +4 −0 tests/wpt/metadata/bluetooth/server/getPrimaryService/gen-disconnected-device.https.html.ini
  133. +4 −0 ...tooth/server/getPrimaryService/gen-discovery-complete-no-permission-absent-service.https.html.ini
  134. +4 −0 ...tadata/bluetooth/server/getPrimaryService/gen-discovery-complete-service-not-found.https.html.ini
  135. +4 −0 ...etadata/bluetooth/server/getPrimaryService/gen-garbage-collection-ran-during-error.https.html.ini
  136. +4 −0 ...adata/bluetooth/server/getPrimaryService/gen-garbage-collection-ran-during-success.https.html.ini
  137. +4 −0 ...ta/bluetooth/server/getPrimaryService/gen-get-different-service-after-reconnection.https.html.ini
  138. +4 −0 tests/wpt/metadata/bluetooth/server/getPrimaryService/gen-get-same-object.https.html.ini
  139. +4 −0 tests/wpt/metadata/bluetooth/server/getPrimaryService/gen-invalid-service-name.https.html.ini
  140. +4 −0 ...s/wpt/metadata/bluetooth/server/getPrimaryService/gen-no-permission-absent-service.https.html.ini
  141. +4 −0 .../wpt/metadata/bluetooth/server/getPrimaryService/gen-no-permission-for-any-service.https.html.ini
  142. +4 −0 .../wpt/metadata/bluetooth/server/getPrimaryService/gen-no-permission-present-service.https.html.ini
  143. +4 −0 tests/wpt/metadata/bluetooth/server/getPrimaryService/gen-service-not-found.https.html.ini
  144. +4 −0 tests/wpt/metadata/bluetooth/server/getPrimaryService/service-found.https.html.ini
  145. +4 −0 tests/wpt/metadata/bluetooth/server/getPrimaryService/two-iframes-from-same-origin.https.html.ini
  146. +4 −0 tests/wpt/metadata/bluetooth/server/getPrimaryServices/blocklisted-services-with-uuid.https.html.ini
  147. +4 −0 tests/wpt/metadata/bluetooth/server/getPrimaryServices/blocklisted-services.https.html.ini
  148. +4 −0 tests/wpt/metadata/bluetooth/server/getPrimaryServices/correct-services.https.html.ini
  149. +4 −0 ...etadata/bluetooth/server/getPrimaryServices/gen-disconnect-called-before-with-uuid.https.html.ini
  150. +4 −0 tests/wpt/metadata/bluetooth/server/getPrimaryServices/gen-disconnect-called-before.https.html.ini
  151. +4 −0 ...a/bluetooth/server/getPrimaryServices/gen-disconnect-called-during-error-with-uuid.https.html.ini
  152. +4 −0 ...pt/metadata/bluetooth/server/getPrimaryServices/gen-disconnect-called-during-error.https.html.ini
  153. +4 −0 ...bluetooth/server/getPrimaryServices/gen-disconnect-called-during-success-with-uuid.https.html.ini
  154. +4 −0 .../metadata/bluetooth/server/getPrimaryServices/gen-disconnect-called-during-success.https.html.ini
  155. +4 −0 ...a/bluetooth/server/getPrimaryServices/gen-disconnect-invalidates-objects-with-uuid.https.html.ini
  156. +4 −0 ...pt/metadata/bluetooth/server/getPrimaryServices/gen-disconnect-invalidates-objects.https.html.ini
  157. +4 −0 ...wpt/metadata/bluetooth/server/getPrimaryServices/gen-disconnected-device-with-uuid.https.html.ini
  158. +4 −0 tests/wpt/metadata/bluetooth/server/getPrimaryServices/gen-disconnected-device.https.html.ini
  159. +4 −0 ...r/getPrimaryServices/gen-discovery-complete-no-permission-absent-service-with-uuid.https.html.ini
  160. +4 −0 ...tooth/server/getPrimaryServices/gen-discovery-complete-service-not-found-with-uuid.https.html.ini
  161. +4 −0 ...etooth/server/getPrimaryServices/gen-garbage-collection-ran-during-error-with-uuid.https.html.ini
  162. +4 −0 ...tadata/bluetooth/server/getPrimaryServices/gen-garbage-collection-ran-during-error.https.html.ini
  163. +4 −0 ...ooth/server/getPrimaryServices/gen-garbage-collection-ran-during-success-with-uuid.https.html.ini
  164. +4 −0 ...data/bluetooth/server/getPrimaryServices/gen-garbage-collection-ran-during-success.https.html.ini
  165. +4 −0 ...h/server/getPrimaryServices/gen-get-different-service-after-reconnection-with-uuid.https.html.ini
  166. +4 −0 ...a/bluetooth/server/getPrimaryServices/gen-get-different-service-after-reconnection.https.html.ini
  167. +4 −0 tests/wpt/metadata/bluetooth/server/getPrimaryServices/gen-get-same-object-with-uuid.https.html.ini
  168. +4 −0 tests/wpt/metadata/bluetooth/server/getPrimaryServices/gen-get-same-object.https.html.ini
  169. +4 −0 tests/wpt/metadata/bluetooth/server/getPrimaryServices/gen-invalid-service-name.https.html.ini
  170. +4 −0 ...ata/bluetooth/server/getPrimaryServices/gen-no-permission-absent-service-with-uuid.https.html.ini
  171. +4 −0 ...ta/bluetooth/server/getPrimaryServices/gen-no-permission-for-any-service-with-uuid.https.html.ini
  172. +4 −0 ...wpt/metadata/bluetooth/server/getPrimaryServices/gen-no-permission-for-any-service.https.html.ini
  173. +4 −0 ...ta/bluetooth/server/getPrimaryServices/gen-no-permission-present-service-with-uuid.https.html.ini
  174. +4 −0 ...s/wpt/metadata/bluetooth/server/getPrimaryServices/gen-service-not-found-with-uuid.https.html.ini
  175. +4 −0 tests/wpt/metadata/bluetooth/server/getPrimaryServices/services-found-with-uuid.https.html.ini
  176. +4 −0 tests/wpt/metadata/bluetooth/server/getPrimaryServices/services-found.https.html.ini
  177. +4 −0 tests/wpt/metadata/bluetooth/server/getPrimaryServices/services-not-found.https.html.ini
  178. +4 −0 tests/wpt/metadata/bluetooth/service/device-same-from-2-services.https.html.ini
  179. +4 −0 tests/wpt/metadata/bluetooth/service/device-same-object.https.html.ini
  180. +4 −0 tests/wpt/metadata/bluetooth/service/getCharacteristic/characteristic-found.https.html.ini
  181. +4 −0 tests/wpt/metadata/bluetooth/service/getCharacteristic/gen-blocklisted-characteristic.https.html.ini
  182. +4 −0 tests/wpt/metadata/bluetooth/service/getCharacteristic/gen-characteristic-not-found.https.html.ini
  183. +4 −0 ...tadata/bluetooth/service/getCharacteristic/gen-garbage-collection-ran-during-error.https.html.ini
  184. +4 −0 tests/wpt/metadata/bluetooth/service/getCharacteristic/gen-get-same-object.https.html.ini
  185. +4 −0 ...s/wpt/metadata/bluetooth/service/getCharacteristic/gen-invalid-characteristic-name.https.html.ini
  186. +4 −0 tests/wpt/metadata/bluetooth/service/getCharacteristic/gen-reconnect-during.https.html.ini
  187. +4 −0 tests/wpt/metadata/bluetooth/service/getCharacteristic/gen-service-is-removed.https.html.ini
  188. +4 −0 tests/wpt/metadata/bluetooth/service/getCharacteristics/blocklisted-characteristics.https.html.ini
  189. +4 −0 .../wpt/metadata/bluetooth/service/getCharacteristics/characteristics-found-with-uuid.https.html.ini
  190. +4 −0 tests/wpt/metadata/bluetooth/service/getCharacteristics/characteristics-found.https.html.ini
  191. +4 −0 tests/wpt/metadata/bluetooth/service/getCharacteristics/characteristics-not-found.https.html.ini
  192. +4 −0 ...data/bluetooth/service/getCharacteristics/gen-blocklisted-characteristic-with-uuid.https.html.ini
  193. +4 −0 ...tadata/bluetooth/service/getCharacteristics/gen-characteristic-not-found-with-uuid.https.html.ini
  194. +4 −0 ...tooth/service/getCharacteristics/gen-garbage-collection-ran-during-error-with-uuid.https.html.ini
  195. +4 −0 ...adata/bluetooth/service/getCharacteristics/gen-garbage-collection-ran-during-error.https.html.ini
  196. +4 −0 tests/wpt/metadata/bluetooth/service/getCharacteristics/gen-get-same-object-with-uuid.https.html.ini
  197. +4 −0 tests/wpt/metadata/bluetooth/service/getCharacteristics/gen-get-same-object.https.html.ini
  198. +4 −0 .../wpt/metadata/bluetooth/service/getCharacteristics/gen-invalid-characteristic-name.https.html.ini
  199. +4 −0 ...s/wpt/metadata/bluetooth/service/getCharacteristics/gen-reconnect-during-with-uuid.https.html.ini
  200. +4 −0 tests/wpt/metadata/bluetooth/service/getCharacteristics/gen-reconnect-during.https.html.ini
  201. +4 −0 ...wpt/metadata/bluetooth/service/getCharacteristics/gen-service-is-removed-with-uuid.https.html.ini
  202. +4 −0 tests/wpt/metadata/bluetooth/service/getCharacteristics/gen-service-is-removed.https.html.ini
  203. +0 −3 tests/wpt/metadata/css/css-fonts/variations/font-weight-matching.html.ini
  204. +1 −0 tests/wpt/metadata/css/cssom-view/elementsFromPoint-iframes.html.ini
  205. +0 −9 tests/wpt/metadata/css/cssom-view/matchMedia.xht.ini
  206. +6 −0 tests/wpt/metadata/css/cssom/getComputedStyle-detached-subtree.html.ini
  207. +0 −12 tests/wpt/metadata/dom/events/AddEventListenerOptions-once.html.ini
  208. +26 −479 tests/wpt/metadata/encoding/single-byte-decoder.html.ini
  209. +0 −3 ...etadata/html/browsers/history/the-location-interface/location-protocol-setter-non-broken.html.ini
  210. +1 −10 ...data/html/semantics/embedded-content/the-img-element/environment-changes/viewport-change.html.ini
  211. +10 −0 tests/wpt/metadata/html/semantics/embedded-content/the-img-element/non-active-document.html.ini
  212. +3 −0 tests/wpt/metadata/html/semantics/forms/the-button-element/button-validation.html.ini
  213. +7 −0 tests/wpt/metadata/html/semantics/interactive-elements/the-details-element/toggleEvent.html.ini
  214. +0 −4 ...ta/html/webappapis/dynamic-markup-insertion/opening-the-input-stream/aborted-parser.window.js.ini
  215. +1 −1 ...s/dynamic-markup-insertion/opening-the-input-stream/bailout-exception-vs-return-xml.window.js.ini
  216. +0 −283 tests/wpt/metadata/quirks/unitless-length/no-quirks.html.ini
  217. +0 −283 tests/wpt/metadata/quirks/unitless-length/quirks.html.ini
  218. +1 −1 tests/wpt/metadata/resource-timing/buffer-full-add-after-full-event.html.ini
  219. +1 −1 tests/wpt/metadata/resource-timing/buffer-full-set-to-current-buffer.html.ini
  220. +12 −0 tests/wpt/metadata/resource-timing/resource-timing.html.ini
  221. +47 −0 tests/wpt/metadata/workers/importscripts_mime.any.js.ini
  222. +0 −1 tests/wpt/metadata/workers/semantics/multiple-workers/005.html.ini
  223. +3 −0 tests/wpt/mozilla/meta/mozilla/animation-removed-node.html.ini
  224. +2 −0 tests/wpt/web-platform-tests/common/form-submission.py
  225. +2 −2 tests/wpt/web-platform-tests/css/css-align/default-alignment/shorthand-serialization-001.html
  226. +44 −0 tests/wpt/web-platform-tests/css/css-backgrounds/background-gradient-subpixel-fills-area.html
  227. +33 −0 ...web-platform-tests/css/css-backgrounds/reference/background-gradient-subpixel-fills-area-ref.html
  228. +64 −0 tests/wpt/web-platform-tests/css/css-contain/contain-layout-baseline-005.html
  229. +61 −0 tests/wpt/web-platform-tests/css/css-contain/reference/contain-layout-baseline-005-ref.html
  230. +1 −1 tests/wpt/web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-001.html
  231. +1 −1 tests/wpt/web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-002.html
  232. +0 −15 tests/wpt/web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-003-ref.html
  233. +0 −21 tests/wpt/web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-003.html
  234. +1 −1 tests/wpt/web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-004.html
  235. +0 −21 tests/wpt/web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-005.html
  236. +2 −2 ...s/wpt/web-platform-tests/css/css-text/overflow-wrap/overflow-wrap-break-word-fit-content-001.html
  237. +1 −1 tests/wpt/web-platform-tests/css/css-text/overflow-wrap/word-wrap-001.html
  238. +1 −1 tests/wpt/web-platform-tests/css/css-text/overflow-wrap/word-wrap-002.html
  239. +0 −21 tests/wpt/web-platform-tests/css/css-text/overflow-wrap/word-wrap-003.html
  240. +1 −1 tests/wpt/web-platform-tests/css/css-text/overflow-wrap/word-wrap-004.html
  241. +0 −21 tests/wpt/web-platform-tests/css/css-text/overflow-wrap/word-wrap-005.html
  242. +1 −1 tests/wpt/web-platform-tests/css/css-text/white-space/pre-wrap-015.html
  243. +0 −64 tests/wpt/web-platform-tests/css/css-text/word-break/reference/word-break-break-all-009-ref.xht
  244. +1 −1 tests/wpt/web-platform-tests/css/css-text/word-break/reference/word-break-break-all-014-ref.html
  245. +0 −63 tests/wpt/web-platform-tests/css/css-text/word-break/reference/word-break-keep-all-004-ref.xht
  246. +3 −3 tests/wpt/web-platform-tests/css/css-text/word-break/reference/word-break-keep-all-ref-003.html
  247. +0 −21 tests/wpt/web-platform-tests/css/css-text/word-break/word-break-001.html
  248. +0 −21 tests/wpt/web-platform-tests/css/css-text/word-break/word-break-002.html
  249. +0 −21 tests/wpt/web-platform-tests/css/css-text/word-break/word-break-003.html
  250. +0 −21 tests/wpt/web-platform-tests/css/css-text/word-break/word-break-004.html
  251. +10 −6 tests/wpt/web-platform-tests/css/css-text/word-break/word-break-break-all-008.html
  252. +0 −68 tests/wpt/web-platform-tests/css/css-text/word-break/word-break-break-all-009.xht
  253. +2 −2 tests/wpt/web-platform-tests/css/css-text/word-break/word-break-break-all-014.html
  254. +3 −3 tests/wpt/web-platform-tests/css/css-text/word-break/word-break-keep-all-003.html
  255. +0 −71 tests/wpt/web-platform-tests/css/css-text/word-break/word-break-keep-all-004.xht
  256. +14 −0 tests/wpt/web-platform-tests/encoding/textdecoder-fatal.any.js
  257. +1 −1 tests/wpt/web-platform-tests/html/semantics/forms/form-submission-0/submit-entity-body.html
  258. +1 −1 tests/wpt/web-platform-tests/html/semantics/forms/the-button-element/button-validation.html
  259. +0 −2 tests/wpt/web-platform-tests/interfaces/input-events.idl
  260. +23 −12 tests/wpt/web-platform-tests/interfaces/webxr.idl
  261. +12 −14 tests/wpt/web-platform-tests/mediacapture-fromelement/capture.html
  262. +5 −1 tests/wpt/web-platform-tests/resource-timing/SyntheticResponse.py
  263. +77 −0 tests/wpt/web-platform-tests/resource-timing/buffer-full-add-after-full-event.html
  264. +51 −0 tests/wpt/web-platform-tests/resource-timing/buffer-full-add-entries-during-callback-that-drop.html
  265. +50 −0 tests/wpt/web-platform-tests/resource-timing/buffer-full-add-entries-during-callback.html
  266. +49 −0 tests/wpt/web-platform-tests/resource-timing/buffer-full-add-then-clear.html
  267. +49 −0 tests/wpt/web-platform-tests/resource-timing/buffer-full-decrease-buffer-during-callback.html
  268. +49 −0 tests/wpt/web-platform-tests/resource-timing/buffer-full-increase-buffer-during-callback.html
  269. +56 −0 tests/wpt/web-platform-tests/resource-timing/buffer-full-inspect-buffer-during-callback.html
  270. +82 −0 tests/wpt/web-platform-tests/resource-timing/buffer-full-set-to-current-buffer.html
  271. +55 −0 tests/wpt/web-platform-tests/resource-timing/buffer-full-store-and-clear-during-callback.html
  272. +44 −0 tests/wpt/web-platform-tests/resource-timing/buffer-full-then-increased.html
  273. +46 −0 tests/wpt/web-platform-tests/resource-timing/buffer-full-when-populate-entries.html
  274. +49 −7 tests/wpt/web-platform-tests/resource-timing/resource-timing.js
  275. +0 −41 tests/wpt/web-platform-tests/resource-timing/resource_timing_buffer_full_when_populate_entries.html
  276. +0 −56 tests/wpt/web-platform-tests/resource-timing/resource_timing_store_and_clear_during_callback.html
  277. +58 −0 tests/wpt/web-platform-tests/resource-timing/resources/buffer-full-utilities.js
  278. +3 −9 tests/wpt/web-platform-tests/service-workers/service-worker/resources/performance-timeline-worker.js
  279. +1 −1 tests/wpt/web-platform-tests/tools/wpt/requirements.txt
  280. +5 −1 tests/wpt/web-platform-tests/tools/wpt/run.py
  281. +2 −0 tests/wpt/web-platform-tests/tools/wpt/testfiles.py
  282. +1 −5 tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/browsers/ie.py
  283. +1 −0 tests/wpt/web-platform-tests/tools/wptrunner/wptrunner/executors/executorservodriver.py
  284. +15 −16 tests/wpt/web-platform-tests/webrtc-quic/RTCQuicStream-helper.js
  285. +115 −79 tests/wpt/web-platform-tests/webrtc-quic/RTCQuicStream.https.html
  286. 0 .../wpt/web-platform-tests/workers/{importscripts_mime.tentative.any.js → importscripts_mime.any.js}
@@ -27,9 +27,14 @@ tasks:
scopes:
- "assume:repo:github.com/servo/servo:branch:${event.ref[11:]}"
routes:
# len("refs/heads/") == 11, so event.ref[11:] is the branch name
- "tc-treeherder.v2._/servo-${event.ref[11:]}.${event.after}"
- "tc-treeherder-staging.v2._/servo-${event.ref[11:]}.${event.after}"
$let:
treeherder_repo:
$if: "event.ref[:15] != 'refs/heads/try-'"
then: "servo-${event.ref[11:]}"
else: "servo-try"
in:
- "tc-treeherder.v2._/${treeherder_repo}.${event.after}"
- "tc-treeherder-staging.v2._/${treeherder_repo}.${event.after}"
extra:
treeherder:
machine: {platform: Linux}

Large diffs are not rendered by default.

@@ -72,6 +72,8 @@ impl BackgroundHangMonitorClone for HangMonitorRegister {
pub enum MonitoredComponentMsg {
/// Register component for monitoring,
Register(Box<Sampler>, Duration, Duration),
/// Unregister component for monitoring.
Unregister,
/// Notify start of new activity for a given component,
NotifyActivity(HangAnnotation),
/// Notify start of waiting for a new task to come-in for processing.
@@ -119,6 +121,10 @@ impl BackgroundHangMonitor for BackgroundHangMonitorChan {
let msg = MonitoredComponentMsg::NotifyWait;
self.send(msg);
}
fn unregister(&self) {
let msg = MonitoredComponentMsg::Unregister;
self.send(msg);
}
}

struct MonitoredComponent {
@@ -200,6 +206,12 @@ impl BackgroundHangMonitorWorker {
"This component was already registered for monitoring."
);
},
(component_id, MonitoredComponentMsg::Unregister) => {
let _ = self
.monitored_components
.remove_entry(&component_id)
.expect("Received Unregister for an unknown component");
},
(component_id, MonitoredComponentMsg::NotifyActivity(annotation)) => {
let component = self
.monitored_components
@@ -105,3 +105,30 @@ fn test_hang_monitoring() {
// Still no new alerts because the hang monitor has shut-down already.
assert!(background_hang_monitor_receiver.try_recv().is_err());
}

#[test]
fn test_hang_monitoring_unregister() {
let (background_hang_monitor_ipc_sender, background_hang_monitor_receiver) =
ipc::channel().expect("ipc channel failure");

let background_hang_monitor_register =
HangMonitorRegister::init(background_hang_monitor_ipc_sender.clone());
let background_hang_monitor = background_hang_monitor_register.register_component(
MonitoredComponentId(TEST_PIPELINE_ID, MonitoredComponentType::Script),
Duration::from_millis(10),
Duration::from_millis(1000),
);

// Start an activity.
let hang_annotation = HangAnnotation::Script(ScriptHangAnnotation::AttachLayout);
background_hang_monitor.notify_activity(hang_annotation);

// Unregister the component.
background_hang_monitor.unregister();

// Sleep until the "transient" timeout has been reached.
thread::sleep(Duration::from_millis(10));

// No new alert yet
assert!(background_hang_monitor_receiver.try_recv().is_err());
}
@@ -11,12 +11,10 @@ pub use crate::compositor::IOCompositor;
pub use crate::compositor::RenderNotifier;
pub use crate::compositor::ShutdownState;
pub use crate::compositor_thread::CompositorProxy;
use euclid::TypedSize2D;
use ipc_channel::ipc::IpcSender;
use msg::constellation_msg::PipelineId;
use msg::constellation_msg::TopLevelBrowsingContextId;
use script_traits::{ConstellationControlMsg, LayoutControlMsg};
use style_traits::CSSPixel;

mod compositor;
pub mod compositor_thread;
@@ -27,7 +25,6 @@ pub mod windowing;

pub struct SendableFrameTree {
pub pipeline: CompositionPipeline,
pub size: Option<TypedSize2D<f32, CSSPixel>>,
pub children: Vec<SendableFrameTree>,
}

@@ -45,5 +45,5 @@ servo_url = {path = "../url"}
webvr_traits = {path = "../webvr_traits"}
webrender_api = {git = "https://github.com/servo/webrender", features = ["ipc"]}

[target.'cfg(all(not(target_os = "windows"), not(target_os = "ios")))'.dependencies]
[target.'cfg(all(not(target_os = "windows"), not(target_os = "ios"), not(target_os="android"), not(target_arch="arm"), not(target_arch="aarch64")))'.dependencies]
gaol = {git = "https://github.com/servo/gaol"}
@@ -41,7 +41,7 @@ pub struct BrowsingContext {
pub top_level_id: TopLevelBrowsingContextId,

/// The size of the frame.
pub size: Option<TypedSize2D<f32, CSSPixel>>,
pub size: TypedSize2D<f32, CSSPixel>,

/// Whether this browsing context is in private browsing mode.
pub is_private: bool,
@@ -70,6 +70,7 @@ impl BrowsingContext {
top_level_id: TopLevelBrowsingContextId,
pipeline_id: PipelineId,
parent_pipeline_id: Option<PipelineId>,
size: TypedSize2D<f32, CSSPixel>,
is_private: bool,
is_visible: bool,
) -> BrowsingContext {
@@ -78,7 +79,7 @@ impl BrowsingContext {
BrowsingContext {
id: id,
top_level_id: top_level_id,
size: None,
size: size,
is_private: is_private,
is_visible: is_visible,
pipeline_id: pipeline_id,
@@ -734,7 +734,7 @@ where
top_level_browsing_context_id: TopLevelBrowsingContextId,
parent_pipeline_id: Option<PipelineId>,
opener: Option<BrowsingContextId>,
initial_window_size: Option<TypedSize2D<f32, CSSPixel>>,
initial_window_size: TypedSize2D<f32, CSSPixel>,
// TODO: we have to provide ownership of the LoadData
// here, because it will be send on an ipc channel,
// and ipc channels take onership of their data.
@@ -889,6 +889,7 @@ where
top_level_id: TopLevelBrowsingContextId,
pipeline_id: PipelineId,
parent_pipeline_id: Option<PipelineId>,
size: TypedSize2D<f32, CSSPixel>,
is_private: bool,
is_visible: bool,
) {
@@ -898,6 +899,7 @@ where
top_level_id,
pipeline_id,
parent_pipeline_id,
size,
is_private,
is_visible,
);
@@ -1599,14 +1601,20 @@ where
EmbedderMsg::Panic(reason, backtrace),
));

let browsing_context = self.browsing_contexts.get(&browsing_context_id);
let window_size = browsing_context.and_then(|ctx| ctx.size);
let pipeline_id = browsing_context.map(|ctx| ctx.pipeline_id);
let is_visible = browsing_context.map(|ctx| ctx.is_visible);
let browsing_context = match self.browsing_contexts.get(&browsing_context_id) {
Some(context) => context,
None => return warn!("failed browsing context is missing"),
};
let window_size = browsing_context.size;
let pipeline_id = browsing_context.pipeline_id;
let is_visible = browsing_context.is_visible;

let pipeline = pipeline_id.and_then(|id| self.pipelines.get(&id));
let pipeline_url = pipeline.map(|pipeline| pipeline.url.clone());
let opener = pipeline.and_then(|pipeline| pipeline.opener);
let pipeline = match self.pipelines.get(&pipeline_id) {
Some(p) => p,
None => return warn!("failed pipeline is missing"),
};
let pipeline_url = pipeline.url.clone();
let opener = pipeline.opener;

self.close_browsing_context_children(
browsing_context_id,
@@ -1616,10 +1624,8 @@ where

let failure_url = ServoUrl::parse("about:failure").expect("infallible");

if let Some(pipeline_url) = pipeline_url {
if pipeline_url == failure_url {
return error!("about:failure failed");
}
if pipeline_url == failure_url {
return error!("about:failure failed");
}

warn!("creating replacement pipeline for about:failure");
@@ -1638,7 +1644,7 @@ where
load_data,
sandbox,
is_private,
is_visible.unwrap_or(true),
is_visible,
);
self.add_pending_change(SessionHistoryChange {
top_level_browsing_context_id: top_level_browsing_context_id,
@@ -1737,7 +1743,7 @@ where
top_level_browsing_context_id,
None,
None,
Some(window_size),
window_size,
load_data,
sandbox,
is_private,
@@ -3275,6 +3281,7 @@ where
change.top_level_browsing_context_id,
change.new_pipeline_id,
new_context_info.parent_pipeline_id,
self.window_size.initial_viewport, //XXXjdm is this valid?
new_context_info.is_private,
new_context_info.is_visible,
);
@@ -3612,44 +3619,41 @@ where
}

// Check the visible rectangle for this pipeline. If the constellation has received a
// size for the pipeline, then its painting should be up to date. If the constellation
// *hasn't* received a size, it could be that the layer was hidden by script before the
// compositor discovered it, so we just don't check the layer.
if let Some(size) = browsing_context.size {
// If the rectangle for this pipeline is zero sized, it will
// never be painted. In this case, don't query the layout
// thread as it won't contribute to the final output image.
if size == TypedSize2D::zero() {
continue;
}
// size for the pipeline, then its painting should be up to date.
//
// If the rectangle for this pipeline is zero sized, it will
// never be painted. In this case, don't query the layout
// thread as it won't contribute to the final output image.
if browsing_context.size == TypedSize2D::zero() {
continue;
}

// Get the epoch that the compositor has drawn for this pipeline.
let compositor_epoch = pipeline_states.get(&browsing_context.pipeline_id);
match compositor_epoch {
Some(compositor_epoch) => {
// Synchronously query the layout thread to see if the current
// epoch matches what the compositor has drawn. If they match
// (and script is idle) then this pipeline won't change again
// and can be considered stable.
let message = LayoutControlMsg::GetCurrentEpoch(epoch_sender.clone());
if let Err(e) = pipeline.layout_chan.send(message) {
warn!("Failed to send GetCurrentEpoch ({}).", e);
}
match epoch_receiver.recv() {
Err(e) => warn!("Failed to receive current epoch ({}).", e),
Ok(layout_thread_epoch) => {
if layout_thread_epoch != *compositor_epoch {
return ReadyToSave::EpochMismatch;
}
},
}
},
None => {
// The compositor doesn't know about this pipeline yet.
// Assume it hasn't rendered yet.
return ReadyToSave::PipelineUnknown;
},
}
// Get the epoch that the compositor has drawn for this pipeline.
let compositor_epoch = pipeline_states.get(&browsing_context.pipeline_id);
match compositor_epoch {
Some(compositor_epoch) => {
// Synchronously query the layout thread to see if the current
// epoch matches what the compositor has drawn. If they match
// (and script is idle) then this pipeline won't change again
// and can be considered stable.
let message = LayoutControlMsg::GetCurrentEpoch(epoch_sender.clone());
if let Err(e) = pipeline.layout_chan.send(message) {
warn!("Failed to send GetCurrentEpoch ({}).", e);
}
match epoch_receiver.recv() {
Err(e) => warn!("Failed to receive current epoch ({}).", e),
Ok(layout_thread_epoch) => {
if layout_thread_epoch != *compositor_epoch {
return ReadyToSave::EpochMismatch;
}
},
}
},
None => {
// The compositor doesn't know about this pipeline yet.
// Assume it hasn't rendered yet.
return ReadyToSave::PipelineUnknown;
},
}
}

@@ -3715,7 +3719,7 @@ where
browsing_context_id: BrowsingContextId,
) {
if let Some(browsing_context) = self.browsing_contexts.get_mut(&browsing_context_id) {
browsing_context.size = Some(new_size.initial_viewport);
browsing_context.size = new_size.initial_viewport;
// Send Resize (or ResizeInactive) messages to each pipeline in the frame tree.
let pipeline_id = browsing_context.pipeline_id;
let pipeline = match self.pipelines.get(&pipeline_id) {
@@ -4001,7 +4005,6 @@ where
.map(|pipeline| {
let mut frame_tree = SendableFrameTree {
pipeline: pipeline.to_sendable(),
size: browsing_context.size,
children: vec![],
};

@@ -17,7 +17,13 @@ mod constellation;
mod event_loop;
mod network_listener;
mod pipeline;
#[cfg(all(not(target_os = "windows"), not(target_os = "ios")))]
#[cfg(all(
not(target_os = "windows"),
not(target_os = "ios"),
not(target_os = "android"),
not(target_arch = "arm"),
not(target_arch = "aarch64")
))]
mod sandboxing;
mod session_history;
mod timer_scheduler;
@@ -26,5 +32,11 @@ pub use crate::constellation::{
Constellation, FromCompositorLogger, FromScriptLogger, InitialConstellationState,
};
pub use crate::pipeline::UnprivilegedPipelineContent;
#[cfg(all(not(target_os = "windows"), not(target_os = "ios")))]
#[cfg(all(
not(target_os = "windows"),
not(target_os = "ios"),
not(target_os = "android"),
not(target_arch = "arm"),
not(target_arch = "aarch64")
))]
pub use crate::sandboxing::content_process_sandbox_profile;

0 comments on commit b3c7c2a

Please sign in to comment.
You can’t perform that action at this time.