{"action":"created","comment":{"url":"https://api.github.com/repos/videojs/video.js/pulls/comments/29022789","id":29022789,"diff_hunk":"@@ -276,6 +258,44 @@ class Player extends Component {\n     let techComponent = Component.getComponent(techName);\n     this.tech = new techComponent(this, techOptions);\n \n+    // Listen to every HTML5 events and trigger them back on the player for the plugins\n+    this.on(this.tech, 'loadstart', this.onTechLoadStart);\n+    this.on(this.tech, 'waiting', this.onTechWaiting);\n+    this.on(this.tech, 'canplay', this.onTechCanPlay);\n+    this.on(this.tech, 'canplaythrough', this.onTechCanPlayThrough);\n+    this.on(this.tech, 'playing', this.onTechPlaying);\n+    this.on(this.tech, 'ended', this.onTechEnded);\n+    this.on(this.tech, 'seeking', this.onTechSeeking);\n+    this.on(this.tech, 'seeked', this.onTechSeeked);\n+    this.on(this.tech, 'ended', this.onTechEnded);\n+    this.on(this.tech, 'play', this.onTechPlay);\n+    this.on(this.tech, 'firstplay', this.onTechFirstPlay);\n+    this.on(this.tech, 'pause', this.onTechPause);\n+    this.on(this.tech, 'progress', this.onTechProgress);\n+    this.on(this.tech, 'durationchange', this.onTechDurationChange);\n+    this.on(this.tech, 'fullscreenchange', this.onTechFullscreenChange);\n+    this.on(this.tech, 'error', this.onTechError);\n+    this.on(this.tech, 'suspend', this.onTechSuspend);\n+    this.on(this.tech, 'abort', this.onTechAbort);\n+    this.on(this.tech, 'emptied', this.onTechEmptied);\n+    this.on(this.tech, 'stalled', this.onTechStalled);\n+    this.on(this.tech, 'loadedmetadata', this.onTechLoadedMetaData);\n+    this.on(this.tech, 'loadeddata', this.onTechLoadedData);\n+    this.on(this.tech, 'timeupdate', this.onTechTimeUpdate);\n+    this.on(this.tech, 'ratechange', this.onTechRateChange);\n+    this.on(this.tech, 'volumechange', this.onTechVolumeChange);\n+    this.on(this.tech, 'texttrackchange', this.onTextTrackChange)\n+\n+    // Private events between the player and the tech\n+    this.on(this.tech, 'useractive', this.onTechUserActive);\n+    this.on(this.tech, 'userinactive', this.onTechUserInactive);\n+\n+    // Add the tech element in the DOM if it was not already there\n+    // Make sure to not insert the original video element if using Html5\n+    if (this.tech.el().parentNode != this.el() && (techName !== 'Html5' || !this.tag)) {","path":"src/js/player.js","position":64,"original_position":64,"commit_id":"358880ba696b3bb9ae80d9325645f5612444031f","original_commit_id":"358880ba696b3bb9ae80d9325645f5612444031f","user":{"login":"heff","id":166,"avatar_url":"https://avatars.githubusercontent.com/u/166?v=3","gravatar_id":"","url":"https://api.github.com/users/heff","html_url":"https://github.com/heff","followers_url":"https://api.github.com/users/heff/followers","following_url":"https://api.github.com/users/heff/following{/other_user}","gists_url":"https://api.github.com/users/heff/gists{/gist_id}","starred_url":"https://api.github.com/users/heff/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/heff/subscriptions","organizations_url":"https://api.github.com/users/heff/orgs","repos_url":"https://api.github.com/users/heff/repos","events_url":"https://api.github.com/users/heff/events{/privacy}","received_events_url":"https://api.github.com/users/heff/received_events","type":"User","site_admin":false},"body":"Need another `=` here. `parentNode !== this.el`","created_at":"2015-04-24T04:16:40Z","updated_at":"2015-04-24T04:16:40Z","html_url":"https://github.com/videojs/video.js/pull/2057#discussion_r29022789","pull_request_url":"https://api.github.com/repos/videojs/video.js/pulls/2057","_links":{"self":{"href":"https://api.github.com/repos/videojs/video.js/pulls/comments/29022789"},"html":{"href":"https://github.com/videojs/video.js/pull/2057#discussion_r29022789"},"pull_request":{"href":"https://api.github.com/repos/videojs/video.js/pulls/2057"}}},"pull_request":{"url":"https://api.github.com/repos/videojs/video.js/pulls/2057","id":33849162,"html_url":"https://github.com/videojs/video.js/pull/2057","diff_url":"https://github.com/videojs/video.js/pull/2057.diff","patch_url":"https://github.com/videojs/video.js/pull/2057.patch","issue_url":"https://api.github.com/repos/videojs/video.js/issues/2057","number":2057,"state":"open","locked":false,"title":"Tech 2.0","user":{"login":"eXon","id":280982,"avatar_url":"https://avatars.githubusercontent.com/u/280982?v=3","gravatar_id":"","url":"https://api.github.com/users/eXon","html_url":"https://github.com/eXon","followers_url":"https://api.github.com/users/eXon/followers","following_url":"https://api.github.com/users/eXon/following{/other_user}","gists_url":"https://api.github.com/users/eXon/gists{/gist_id}","starred_url":"https://api.github.com/users/eXon/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/eXon/subscriptions","organizations_url":"https://api.github.com/users/eXon/orgs","repos_url":"https://api.github.com/users/eXon/repos","events_url":"https://api.github.com/users/eXon/events{/privacy}","received_events_url":"https://api.github.com/users/eXon/received_events","type":"User","site_admin":false},"body":"I'm starting a pull request to make sure I'm working in the right direction and that everyone agrees with that. (https://github.com/videojs/video.js/issues/2008)\r\n\r\nBy the way I couldn't test Flash because `videojs.options` doesn't exists anymore so I can't set the swf path.\r\n\r\nLet me know what you guys think.\r\n\r\n## Roadmap\r\n- [x] Trigger events on the tech instead of the player (https://github.com/videojs/video.js/issues/1485)\r\n- [x] Player should be responsible for adding the DOM element of the tech on himself (using tech.el_)\r\n- [ ] Remove every dependencies of the player on\r\n    - [x] tech\r\n    - [ ] html5\r\n    - [ ] flash\r\n- [ ] Remove the player from the tech constructor signature\r\n- [ ] Fix unit tests\r\n- [ ] Add tech unit tests they all must pass to standardize (https://github.com/videojs/video.js/issues/2004)","created_at":"2015-04-22T11:29:45Z","updated_at":"2015-04-24T04:16:40Z","closed_at":null,"merged_at":null,"merge_commit_sha":"dd196f5ceb9a7a36891aa6a54e13929f0aa3b28d","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/videojs/video.js/pulls/2057/commits","review_comments_url":"https://api.github.com/repos/videojs/video.js/pulls/2057/comments","review_comment_url":"https://api.github.com/repos/videojs/video.js/pulls/comments{/number}","comments_url":"https://api.github.com/repos/videojs/video.js/issues/2057/comments","statuses_url":"https://api.github.com/repos/videojs/video.js/statuses/358880ba696b3bb9ae80d9325645f5612444031f","head":{"label":"eXon:feature/tech-2.0","ref":"feature/tech-2.0","sha":"358880ba696b3bb9ae80d9325645f5612444031f","user":{"login":"eXon","id":280982,"avatar_url":"https://avatars.githubusercontent.com/u/280982?v=3","gravatar_id":"","url":"https://api.github.com/users/eXon","html_url":"https://github.com/eXon","followers_url":"https://api.github.com/users/eXon/followers","following_url":"https://api.github.com/users/eXon/following{/other_user}","gists_url":"https://api.github.com/users/eXon/gists{/gist_id}","starred_url":"https://api.github.com/users/eXon/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/eXon/subscriptions","organizations_url":"https://api.github.com/users/eXon/orgs","repos_url":"https://api.github.com/users/eXon/repos","events_url":"https://api.github.com/users/eXon/events{/privacy}","received_events_url":"https://api.github.com/users/eXon/received_events","type":"User","site_admin":false},"repo":{"id":34380352,"name":"video.js","full_name":"eXon/video.js","owner":{"login":"eXon","id":280982,"avatar_url":"https://avatars.githubusercontent.com/u/280982?v=3","gravatar_id":"","url":"https://api.github.com/users/eXon","html_url":"https://github.com/eXon","followers_url":"https://api.github.com/users/eXon/followers","following_url":"https://api.github.com/users/eXon/following{/other_user}","gists_url":"https://api.github.com/users/eXon/gists{/gist_id}","starred_url":"https://api.github.com/users/eXon/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/eXon/subscriptions","organizations_url":"https://api.github.com/users/eXon/orgs","repos_url":"https://api.github.com/users/eXon/repos","events_url":"https://api.github.com/users/eXon/events{/privacy}","received_events_url":"https://api.github.com/users/eXon/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/eXon/video.js","description":"Video.js - open source HTML5 & Flash video player","fork":true,"url":"https://api.github.com/repos/eXon/video.js","forks_url":"https://api.github.com/repos/eXon/video.js/forks","keys_url":"https://api.github.com/repos/eXon/video.js/keys{/key_id}","collaborators_url":"https://api.github.com/repos/eXon/video.js/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/eXon/video.js/teams","hooks_url":"https://api.github.com/repos/eXon/video.js/hooks","issue_events_url":"https://api.github.com/repos/eXon/video.js/issues/events{/number}","events_url":"https://api.github.com/repos/eXon/video.js/events","assignees_url":"https://api.github.com/repos/eXon/video.js/assignees{/user}","branches_url":"https://api.github.com/repos/eXon/video.js/branches{/branch}","tags_url":"https://api.github.com/repos/eXon/video.js/tags","blobs_url":"https://api.github.com/repos/eXon/video.js/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/eXon/video.js/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/eXon/video.js/git/refs{/sha}","trees_url":"https://api.github.com/repos/eXon/video.js/git/trees{/sha}","statuses_url":"https://api.github.com/repos/eXon/video.js/statuses/{sha}","languages_url":"https://api.github.com/repos/eXon/video.js/languages","stargazers_url":"https://api.github.com/repos/eXon/video.js/stargazers","contributors_url":"https://api.github.com/repos/eXon/video.js/contributors","subscribers_url":"https://api.github.com/repos/eXon/video.js/subscribers","subscription_url":"https://api.github.com/repos/eXon/video.js/subscription","commits_url":"https://api.github.com/repos/eXon/video.js/commits{/sha}","git_commits_url":"https://api.github.com/repos/eXon/video.js/git/commits{/sha}","comments_url":"https://api.github.com/repos/eXon/video.js/comments{/number}","issue_comment_url":"https://api.github.com/repos/eXon/video.js/issues/comments{/number}","contents_url":"https://api.github.com/repos/eXon/video.js/contents/{+path}","compare_url":"https://api.github.com/repos/eXon/video.js/compare/{base}...{head}","merges_url":"https://api.github.com/repos/eXon/video.js/merges","archive_url":"https://api.github.com/repos/eXon/video.js/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/eXon/video.js/downloads","issues_url":"https://api.github.com/repos/eXon/video.js/issues{/number}","pulls_url":"https://api.github.com/repos/eXon/video.js/pulls{/number}","milestones_url":"https://api.github.com/repos/eXon/video.js/milestones{/number}","notifications_url":"https://api.github.com/repos/eXon/video.js/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/eXon/video.js/labels{/name}","releases_url":"https://api.github.com/repos/eXon/video.js/releases{/id}","created_at":"2015-04-22T09:05:20Z","updated_at":"2015-04-22T09:05:22Z","pushed_at":"2015-04-24T02:33:31Z","git_url":"git://github.com/eXon/video.js.git","ssh_url":"git@github.com:eXon/video.js.git","clone_url":"https://github.com/eXon/video.js.git","svn_url":"https://github.com/eXon/video.js","homepage":"www.videojs.com","size":11914,"stargazers_count":0,"watchers_count":0,"language":"JavaScript","has_issues":false,"has_downloads":false,"has_wiki":true,"has_pages":true,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"videojs:master","ref":"master","sha":"a02ee27802b6ca527fd5c85d69d8596d5d6d81dd","user":{"login":"videojs","id":3287189,"avatar_url":"https://avatars.githubusercontent.com/u/3287189?v=3","gravatar_id":"","url":"https://api.github.com/users/videojs","html_url":"https://github.com/videojs","followers_url":"https://api.github.com/users/videojs/followers","following_url":"https://api.github.com/users/videojs/following{/other_user}","gists_url":"https://api.github.com/users/videojs/gists{/gist_id}","starred_url":"https://api.github.com/users/videojs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/videojs/subscriptions","organizations_url":"https://api.github.com/users/videojs/orgs","repos_url":"https://api.github.com/users/videojs/repos","events_url":"https://api.github.com/users/videojs/events{/privacy}","received_events_url":"https://api.github.com/users/videojs/received_events","type":"Organization","site_admin":false},"repo":{"id":667006,"name":"video.js","full_name":"videojs/video.js","owner":{"login":"videojs","id":3287189,"avatar_url":"https://avatars.githubusercontent.com/u/3287189?v=3","gravatar_id":"","url":"https://api.github.com/users/videojs","html_url":"https://github.com/videojs","followers_url":"https://api.github.com/users/videojs/followers","following_url":"https://api.github.com/users/videojs/following{/other_user}","gists_url":"https://api.github.com/users/videojs/gists{/gist_id}","starred_url":"https://api.github.com/users/videojs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/videojs/subscriptions","organizations_url":"https://api.github.com/users/videojs/orgs","repos_url":"https://api.github.com/users/videojs/repos","events_url":"https://api.github.com/users/videojs/events{/privacy}","received_events_url":"https://api.github.com/users/videojs/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/videojs/video.js","description":"Video.js - open source HTML5 & Flash video player","fork":false,"url":"https://api.github.com/repos/videojs/video.js","forks_url":"https://api.github.com/repos/videojs/video.js/forks","keys_url":"https://api.github.com/repos/videojs/video.js/keys{/key_id}","collaborators_url":"https://api.github.com/repos/videojs/video.js/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/videojs/video.js/teams","hooks_url":"https://api.github.com/repos/videojs/video.js/hooks","issue_events_url":"https://api.github.com/repos/videojs/video.js/issues/events{/number}","events_url":"https://api.github.com/repos/videojs/video.js/events","assignees_url":"https://api.github.com/repos/videojs/video.js/assignees{/user}","branches_url":"https://api.github.com/repos/videojs/video.js/branches{/branch}","tags_url":"https://api.github.com/repos/videojs/video.js/tags","blobs_url":"https://api.github.com/repos/videojs/video.js/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/videojs/video.js/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/videojs/video.js/git/refs{/sha}","trees_url":"https://api.github.com/repos/videojs/video.js/git/trees{/sha}","statuses_url":"https://api.github.com/repos/videojs/video.js/statuses/{sha}","languages_url":"https://api.github.com/repos/videojs/video.js/languages","stargazers_url":"https://api.github.com/repos/videojs/video.js/stargazers","contributors_url":"https://api.github.com/repos/videojs/video.js/contributors","subscribers_url":"https://api.github.com/repos/videojs/video.js/subscribers","subscription_url":"https://api.github.com/repos/videojs/video.js/subscription","commits_url":"https://api.github.com/repos/videojs/video.js/commits{/sha}","git_commits_url":"https://api.github.com/repos/videojs/video.js/git/commits{/sha}","comments_url":"https://api.github.com/repos/videojs/video.js/comments{/number}","issue_comment_url":"https://api.github.com/repos/videojs/video.js/issues/comments{/number}","contents_url":"https://api.github.com/repos/videojs/video.js/contents/{+path}","compare_url":"https://api.github.com/repos/videojs/video.js/compare/{base}...{head}","merges_url":"https://api.github.com/repos/videojs/video.js/merges","archive_url":"https://api.github.com/repos/videojs/video.js/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/videojs/video.js/downloads","issues_url":"https://api.github.com/repos/videojs/video.js/issues{/number}","pulls_url":"https://api.github.com/repos/videojs/video.js/pulls{/number}","milestones_url":"https://api.github.com/repos/videojs/video.js/milestones{/number}","notifications_url":"https://api.github.com/repos/videojs/video.js/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/videojs/video.js/labels{/name}","releases_url":"https://api.github.com/repos/videojs/video.js/releases{/id}","created_at":"2010-05-14T18:45:10Z","updated_at":"2015-04-24T03:47:34Z","pushed_at":"2015-04-24T02:33:32Z","git_url":"git://github.com/videojs/video.js.git","ssh_url":"git@github.com:videojs/video.js.git","clone_url":"https://github.com/videojs/video.js.git","svn_url":"https://github.com/videojs/video.js","homepage":"www.videojs.com","size":24050,"stargazers_count":8672,"watchers_count":8672,"language":"JavaScript","has_issues":true,"has_downloads":false,"has_wiki":true,"has_pages":true,"forks_count":2387,"mirror_url":null,"open_issues_count":196,"forks":2387,"open_issues":196,"watchers":8672,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/videojs/video.js/pulls/2057"},"html":{"href":"https://github.com/videojs/video.js/pull/2057"},"issue":{"href":"https://api.github.com/repos/videojs/video.js/issues/2057"},"comments":{"href":"https://api.github.com/repos/videojs/video.js/issues/2057/comments"},"review_comments":{"href":"https://api.github.com/repos/videojs/video.js/pulls/2057/comments"},"review_comment":{"href":"https://api.github.com/repos/videojs/video.js/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/videojs/video.js/pulls/2057/commits"},"statuses":{"href":"https://api.github.com/repos/videojs/video.js/statuses/358880ba696b3bb9ae80d9325645f5612444031f"}}}}