{"action":"created","comment":{"url":"https://api.github.com/repos/servo/servo/pulls/comments/93045898","pull_request_review_id":13559780,"id":93045898,"diff_hunk":"@@ -0,0 +1,132 @@\n+/* This Source Code Form is subject to the terms of the Mozilla Public\n+ * License, v. 2.0. If a copy of the MPL was not distributed with this\n+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n+\n+use core::nonzero::NonZero;\n+use dom::bindings::cell::DOMRefCell;\n+use dom::bindings::codegen::Bindings::VRPoseBinding;\n+use dom::bindings::codegen::Bindings::VRPoseBinding::VRPoseMethods;\n+use dom::bindings::conversions::{slice_to_array_buffer_view, update_array_buffer_view};\n+use dom::bindings::js::Root;\n+use dom::bindings::reflector::{DomObject, Reflector, reflect_dom_object};\n+use dom::globalscope::GlobalScope;\n+use js::jsapi::{Heap, JSContext, JSObject};\n+use std::ptr;\n+use vr_traits::webvr;\n+\n+#[dom_struct]\n+pub struct VRPose {\n+    reflector_: Reflector,\n+    position: DOMRefCell<Heap<*mut JSObject>>,\n+    orientation: DOMRefCell<Heap<*mut JSObject>>,\n+    linear_vel: DOMRefCell<Heap<*mut JSObject>>,\n+    angular_vel: DOMRefCell<Heap<*mut JSObject>>,\n+    linear_acc: DOMRefCell<Heap<*mut JSObject>>,\n+    angular_acc: DOMRefCell<Heap<*mut JSObject>>\n+}\n+\n+#[allow(unsafe_code)]\n+fn update_typed_array(cx: *mut JSContext,","path":"components/script/dom/vrpose.rs","position":29,"original_position":29,"commit_id":"5e9a162c8b7cf68bae8718926c47acff0c736781","original_commit_id":"5e9a162c8b7cf68bae8718926c47acff0c736781","user":{"login":"emilio","id":1323194,"avatar_url":"https://avatars.githubusercontent.com/u/1323194?v=3","gravatar_id":"","url":"https://api.github.com/users/emilio","html_url":"https://github.com/emilio","followers_url":"https://api.github.com/users/emilio/followers","following_url":"https://api.github.com/users/emilio/following{/other_user}","gists_url":"https://api.github.com/users/emilio/gists{/gist_id}","starred_url":"https://api.github.com/users/emilio/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/emilio/subscriptions","organizations_url":"https://api.github.com/users/emilio/orgs","repos_url":"https://api.github.com/users/emilio/repos","events_url":"https://api.github.com/users/emilio/events{/privacy}","received_events_url":"https://api.github.com/users/emilio/received_events","type":"User","site_admin":false},"body":"probably should be called `update_or_create_typed_array`.","created_at":"2016-12-19T14:54:22Z","updated_at":"2016-12-19T14:54:22Z","html_url":"https://github.com/servo/servo/pull/14618#discussion_r93045898","pull_request_url":"https://api.github.com/repos/servo/servo/pulls/14618","_links":{"self":{"href":"https://api.github.com/repos/servo/servo/pulls/comments/93045898"},"html":{"href":"https://github.com/servo/servo/pull/14618#discussion_r93045898"},"pull_request":{"href":"https://api.github.com/repos/servo/servo/pulls/14618"}}},"pull_request":{"url":"https://api.github.com/repos/servo/servo/pulls/14618","id":98377403,"html_url":"https://github.com/servo/servo/pull/14618","diff_url":"https://github.com/servo/servo/pull/14618.diff","patch_url":"https://github.com/servo/servo/pull/14618.patch","issue_url":"https://api.github.com/repos/servo/servo/issues/14618","number":14618,"state":"open","locked":false,"title":"WebVR API Implementation","user":{"login":"MortimerGoro","id":1070794,"avatar_url":"https://avatars.githubusercontent.com/u/1070794?v=3","gravatar_id":"","url":"https://api.github.com/users/MortimerGoro","html_url":"https://github.com/MortimerGoro","followers_url":"https://api.github.com/users/MortimerGoro/followers","following_url":"https://api.github.com/users/MortimerGoro/following{/other_user}","gists_url":"https://api.github.com/users/MortimerGoro/gists{/gist_id}","starred_url":"https://api.github.com/users/MortimerGoro/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MortimerGoro/subscriptions","organizations_url":"https://api.github.com/users/MortimerGoro/orgs","repos_url":"https://api.github.com/users/MortimerGoro/repos","events_url":"https://api.github.com/users/MortimerGoro/events{/privacy}","received_events_url":"https://api.github.com/users/MortimerGoro/received_events","type":"User","site_admin":false},"body":"<!-- Please describe your changes on the following line: -->\r\n\r\nWebVR API Implementation with HTC Vive support on Windows. The current implementations only enables the WebVR support on Windows. In other platforms the API is available on JavaScript but navigator.vr.getDisplays() returns an empty array. This will change when we add support for more VR providers and platforms ;) \r\n\r\nInfo about the architecture: \r\nhttps://blog.mozvr.com/webvr-servo-architecture-and-latency-optimizations/\r\n---\r\n<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->\r\n- [X] `./mach build -d` does not report any errors\r\n- [X] `./mach test-tidy` does not report any errors\r\n- [ ] These changes fix #__ (github issue number if applicable).\r\n\r\n<!-- Either: -->\r\n- [X] There are tests for these changes OR\r\n- [ ] These changes do not require tests because _____\r\n\r\nProprietary openvr.dll must be copied next to servo.exe in order to test on HTC Vive (https://github.com/ValveSoftware/openvr/tree/master/bin/win64) I have added some of the official WebVR samples for testing. Switch on your headset and run:\r\n\r\nmach run tests/html/webvr/room-scale.html\n\n<!-- Reviewable:start -->\n---\nThis change is [<img src=\"https://reviewable.io/review_button.svg\" height=\"34\" align=\"absmiddle\" alt=\"Reviewable\"/>](https://reviewable.io/reviews/servo/servo/14618)\n<!-- Reviewable:end -->\n","created_at":"2016-12-16T17:59:33Z","updated_at":"2016-12-19T15:02:35Z","closed_at":null,"merged_at":null,"merge_commit_sha":"23d2c7f7efabe6e9c0d3a85c9efc57d4a6cbca47","assignee":{"login":"larsbergstrom","id":475847,"avatar_url":"https://avatars.githubusercontent.com/u/475847?v=3","gravatar_id":"","url":"https://api.github.com/users/larsbergstrom","html_url":"https://github.com/larsbergstrom","followers_url":"https://api.github.com/users/larsbergstrom/followers","following_url":"https://api.github.com/users/larsbergstrom/following{/other_user}","gists_url":"https://api.github.com/users/larsbergstrom/gists{/gist_id}","starred_url":"https://api.github.com/users/larsbergstrom/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/larsbergstrom/subscriptions","organizations_url":"https://api.github.com/users/larsbergstrom/orgs","repos_url":"https://api.github.com/users/larsbergstrom/repos","events_url":"https://api.github.com/users/larsbergstrom/events{/privacy}","received_events_url":"https://api.github.com/users/larsbergstrom/received_events","type":"User","site_admin":false},"assignees":[{"login":"larsbergstrom","id":475847,"avatar_url":"https://avatars.githubusercontent.com/u/475847?v=3","gravatar_id":"","url":"https://api.github.com/users/larsbergstrom","html_url":"https://github.com/larsbergstrom","followers_url":"https://api.github.com/users/larsbergstrom/followers","following_url":"https://api.github.com/users/larsbergstrom/following{/other_user}","gists_url":"https://api.github.com/users/larsbergstrom/gists{/gist_id}","starred_url":"https://api.github.com/users/larsbergstrom/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/larsbergstrom/subscriptions","organizations_url":"https://api.github.com/users/larsbergstrom/orgs","repos_url":"https://api.github.com/users/larsbergstrom/repos","events_url":"https://api.github.com/users/larsbergstrom/events{/privacy}","received_events_url":"https://api.github.com/users/larsbergstrom/received_events","type":"User","site_admin":false}],"milestone":null,"commits_url":"https://api.github.com/repos/servo/servo/pulls/14618/commits","review_comments_url":"https://api.github.com/repos/servo/servo/pulls/14618/comments","review_comment_url":"https://api.github.com/repos/servo/servo/pulls/comments{/number}","comments_url":"https://api.github.com/repos/servo/servo/issues/14618/comments","statuses_url":"https://api.github.com/repos/servo/servo/statuses/5e9a162c8b7cf68bae8718926c47acff0c736781","head":{"label":"MortimerGoro:webvr_api","ref":"webvr_api","sha":"5e9a162c8b7cf68bae8718926c47acff0c736781","user":{"login":"MortimerGoro","id":1070794,"avatar_url":"https://avatars.githubusercontent.com/u/1070794?v=3","gravatar_id":"","url":"https://api.github.com/users/MortimerGoro","html_url":"https://github.com/MortimerGoro","followers_url":"https://api.github.com/users/MortimerGoro/followers","following_url":"https://api.github.com/users/MortimerGoro/following{/other_user}","gists_url":"https://api.github.com/users/MortimerGoro/gists{/gist_id}","starred_url":"https://api.github.com/users/MortimerGoro/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MortimerGoro/subscriptions","organizations_url":"https://api.github.com/users/MortimerGoro/orgs","repos_url":"https://api.github.com/users/MortimerGoro/repos","events_url":"https://api.github.com/users/MortimerGoro/events{/privacy}","received_events_url":"https://api.github.com/users/MortimerGoro/received_events","type":"User","site_admin":false},"repo":{"id":67632694,"name":"servo","full_name":"MortimerGoro/servo","owner":{"login":"MortimerGoro","id":1070794,"avatar_url":"https://avatars.githubusercontent.com/u/1070794?v=3","gravatar_id":"","url":"https://api.github.com/users/MortimerGoro","html_url":"https://github.com/MortimerGoro","followers_url":"https://api.github.com/users/MortimerGoro/followers","following_url":"https://api.github.com/users/MortimerGoro/following{/other_user}","gists_url":"https://api.github.com/users/MortimerGoro/gists{/gist_id}","starred_url":"https://api.github.com/users/MortimerGoro/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/MortimerGoro/subscriptions","organizations_url":"https://api.github.com/users/MortimerGoro/orgs","repos_url":"https://api.github.com/users/MortimerGoro/repos","events_url":"https://api.github.com/users/MortimerGoro/events{/privacy}","received_events_url":"https://api.github.com/users/MortimerGoro/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/MortimerGoro/servo","description":"The Servo Browser Engine","fork":true,"url":"https://api.github.com/repos/MortimerGoro/servo","forks_url":"https://api.github.com/repos/MortimerGoro/servo/forks","keys_url":"https://api.github.com/repos/MortimerGoro/servo/keys{/key_id}","collaborators_url":"https://api.github.com/repos/MortimerGoro/servo/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/MortimerGoro/servo/teams","hooks_url":"https://api.github.com/repos/MortimerGoro/servo/hooks","issue_events_url":"https://api.github.com/repos/MortimerGoro/servo/issues/events{/number}","events_url":"https://api.github.com/repos/MortimerGoro/servo/events","assignees_url":"https://api.github.com/repos/MortimerGoro/servo/assignees{/user}","branches_url":"https://api.github.com/repos/MortimerGoro/servo/branches{/branch}","tags_url":"https://api.github.com/repos/MortimerGoro/servo/tags","blobs_url":"https://api.github.com/repos/MortimerGoro/servo/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/MortimerGoro/servo/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/MortimerGoro/servo/git/refs{/sha}","trees_url":"https://api.github.com/repos/MortimerGoro/servo/git/trees{/sha}","statuses_url":"https://api.github.com/repos/MortimerGoro/servo/statuses/{sha}","languages_url":"https://api.github.com/repos/MortimerGoro/servo/languages","stargazers_url":"https://api.github.com/repos/MortimerGoro/servo/stargazers","contributors_url":"https://api.github.com/repos/MortimerGoro/servo/contributors","subscribers_url":"https://api.github.com/repos/MortimerGoro/servo/subscribers","subscription_url":"https://api.github.com/repos/MortimerGoro/servo/subscription","commits_url":"https://api.github.com/repos/MortimerGoro/servo/commits{/sha}","git_commits_url":"https://api.github.com/repos/MortimerGoro/servo/git/commits{/sha}","comments_url":"https://api.github.com/repos/MortimerGoro/servo/comments{/number}","issue_comment_url":"https://api.github.com/repos/MortimerGoro/servo/issues/comments{/number}","contents_url":"https://api.github.com/repos/MortimerGoro/servo/contents/{+path}","compare_url":"https://api.github.com/repos/MortimerGoro/servo/compare/{base}...{head}","merges_url":"https://api.github.com/repos/MortimerGoro/servo/merges","archive_url":"https://api.github.com/repos/MortimerGoro/servo/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/MortimerGoro/servo/downloads","issues_url":"https://api.github.com/repos/MortimerGoro/servo/issues{/number}","pulls_url":"https://api.github.com/repos/MortimerGoro/servo/pulls{/number}","milestones_url":"https://api.github.com/repos/MortimerGoro/servo/milestones{/number}","notifications_url":"https://api.github.com/repos/MortimerGoro/servo/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/MortimerGoro/servo/labels{/name}","releases_url":"https://api.github.com/repos/MortimerGoro/servo/releases{/id}","deployments_url":"https://api.github.com/repos/MortimerGoro/servo/deployments","created_at":"2016-09-07T18:24:01Z","updated_at":"2016-11-30T10:47:55Z","pushed_at":"2016-12-16T22:33:33Z","git_url":"git://github.com/MortimerGoro/servo.git","ssh_url":"git@github.com:MortimerGoro/servo.git","clone_url":"https://github.com/MortimerGoro/servo.git","svn_url":"https://github.com/MortimerGoro/servo","homepage":"https://servo.org/","size":231539,"stargazers_count":1,"watchers_count":1,"language":null,"has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":1,"default_branch":"master"}},"base":{"label":"servo:master","ref":"master","sha":"6efea399ed0e44fe6bd151f346ca2c3371e2f66c","user":{"login":"servo","id":2566135,"avatar_url":"https://avatars.githubusercontent.com/u/2566135?v=3","gravatar_id":"","url":"https://api.github.com/users/servo","html_url":"https://github.com/servo","followers_url":"https://api.github.com/users/servo/followers","following_url":"https://api.github.com/users/servo/following{/other_user}","gists_url":"https://api.github.com/users/servo/gists{/gist_id}","starred_url":"https://api.github.com/users/servo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/servo/subscriptions","organizations_url":"https://api.github.com/users/servo/orgs","repos_url":"https://api.github.com/users/servo/repos","events_url":"https://api.github.com/users/servo/events{/privacy}","received_events_url":"https://api.github.com/users/servo/received_events","type":"Organization","site_admin":false},"repo":{"id":3390243,"name":"servo","full_name":"servo/servo","owner":{"login":"servo","id":2566135,"avatar_url":"https://avatars.githubusercontent.com/u/2566135?v=3","gravatar_id":"","url":"https://api.github.com/users/servo","html_url":"https://github.com/servo","followers_url":"https://api.github.com/users/servo/followers","following_url":"https://api.github.com/users/servo/following{/other_user}","gists_url":"https://api.github.com/users/servo/gists{/gist_id}","starred_url":"https://api.github.com/users/servo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/servo/subscriptions","organizations_url":"https://api.github.com/users/servo/orgs","repos_url":"https://api.github.com/users/servo/repos","events_url":"https://api.github.com/users/servo/events{/privacy}","received_events_url":"https://api.github.com/users/servo/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/servo/servo","description":"The Servo Browser Engine","fork":false,"url":"https://api.github.com/repos/servo/servo","forks_url":"https://api.github.com/repos/servo/servo/forks","keys_url":"https://api.github.com/repos/servo/servo/keys{/key_id}","collaborators_url":"https://api.github.com/repos/servo/servo/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/servo/servo/teams","hooks_url":"https://api.github.com/repos/servo/servo/hooks","issue_events_url":"https://api.github.com/repos/servo/servo/issues/events{/number}","events_url":"https://api.github.com/repos/servo/servo/events","assignees_url":"https://api.github.com/repos/servo/servo/assignees{/user}","branches_url":"https://api.github.com/repos/servo/servo/branches{/branch}","tags_url":"https://api.github.com/repos/servo/servo/tags","blobs_url":"https://api.github.com/repos/servo/servo/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/servo/servo/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/servo/servo/git/refs{/sha}","trees_url":"https://api.github.com/repos/servo/servo/git/trees{/sha}","statuses_url":"https://api.github.com/repos/servo/servo/statuses/{sha}","languages_url":"https://api.github.com/repos/servo/servo/languages","stargazers_url":"https://api.github.com/repos/servo/servo/stargazers","contributors_url":"https://api.github.com/repos/servo/servo/contributors","subscribers_url":"https://api.github.com/repos/servo/servo/subscribers","subscription_url":"https://api.github.com/repos/servo/servo/subscription","commits_url":"https://api.github.com/repos/servo/servo/commits{/sha}","git_commits_url":"https://api.github.com/repos/servo/servo/git/commits{/sha}","comments_url":"https://api.github.com/repos/servo/servo/comments{/number}","issue_comment_url":"https://api.github.com/repos/servo/servo/issues/comments{/number}","contents_url":"https://api.github.com/repos/servo/servo/contents/{+path}","compare_url":"https://api.github.com/repos/servo/servo/compare/{base}...{head}","merges_url":"https://api.github.com/repos/servo/servo/merges","archive_url":"https://api.github.com/repos/servo/servo/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/servo/servo/downloads","issues_url":"https://api.github.com/repos/servo/servo/issues{/number}","pulls_url":"https://api.github.com/repos/servo/servo/pulls{/number}","milestones_url":"https://api.github.com/repos/servo/servo/milestones{/number}","notifications_url":"https://api.github.com/repos/servo/servo/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/servo/servo/labels{/name}","releases_url":"https://api.github.com/repos/servo/servo/releases{/id}","deployments_url":"https://api.github.com/repos/servo/servo/deployments","created_at":"2012-02-08T19:07:25Z","updated_at":"2016-12-19T15:01:23Z","pushed_at":"2016-12-19T14:42:22Z","git_url":"git://github.com/servo/servo.git","ssh_url":"git@github.com:servo/servo.git","clone_url":"https://github.com/servo/servo.git","svn_url":"https://github.com/servo/servo","homepage":"https://servo.org/","size":276052,"stargazers_count":8435,"watchers_count":8435,"language":null,"has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":1391,"mirror_url":null,"open_issues_count":1924,"forks":1391,"open_issues":1924,"watchers":8435,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/servo/servo/pulls/14618"},"html":{"href":"https://github.com/servo/servo/pull/14618"},"issue":{"href":"https://api.github.com/repos/servo/servo/issues/14618"},"comments":{"href":"https://api.github.com/repos/servo/servo/issues/14618/comments"},"review_comments":{"href":"https://api.github.com/repos/servo/servo/pulls/14618/comments"},"review_comment":{"href":"https://api.github.com/repos/servo/servo/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/servo/servo/pulls/14618/commits"},"statuses":{"href":"https://api.github.com/repos/servo/servo/statuses/5e9a162c8b7cf68bae8718926c47acff0c736781"}}}}
{"actor":{"display_login":"emilio"}}