{"action":"closed","issue":{"url":"https://api.github.com/repos/DevExpress/testcafe/issues/131","labels_url":"https://api.github.com/repos/DevExpress/testcafe/issues/131/labels{/name}","comments_url":"https://api.github.com/repos/DevExpress/testcafe/issues/131/comments","events_url":"https://api.github.com/repos/DevExpress/testcafe/issues/131/events","html_url":"https://github.com/DevExpress/testcafe/issues/131","id":113801878,"number":131,"title":"Refactor browser connections monitoring","user":{"login":"AndreyBelym","id":4479386,"avatar_url":"https://avatars.githubusercontent.com/u/4479386?v=3","gravatar_id":"","url":"https://api.github.com/users/AndreyBelym","html_url":"https://github.com/AndreyBelym","followers_url":"https://api.github.com/users/AndreyBelym/followers","following_url":"https://api.github.com/users/AndreyBelym/following{/other_user}","gists_url":"https://api.github.com/users/AndreyBelym/gists{/gist_id}","starred_url":"https://api.github.com/users/AndreyBelym/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AndreyBelym/subscriptions","organizations_url":"https://api.github.com/users/AndreyBelym/orgs","repos_url":"https://api.github.com/users/AndreyBelym/repos","events_url":"https://api.github.com/users/AndreyBelym/events{/privacy}","received_events_url":"https://api.github.com/users/AndreyBelym/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/DevExpress/testcafe/labels/AREA:%20server","name":"AREA: server","color":"fef2c0"},{"url":"https://api.github.com/repos/DevExpress/testcafe/labels/SYSTEM:%20browser%20connection","name":"SYSTEM: browser connection","color":"bfe5bf"},{"url":"https://api.github.com/repos/DevExpress/testcafe/labels/SYSTEM:%20runner","name":"SYSTEM: runner","color":"bfe5bf"},{"url":"https://api.github.com/repos/DevExpress/testcafe/labels/TYPE:%20enhancement","name":"TYPE: enhancement","color":"f7c6c7"}],"state":"closed","locked":false,"assignee":{"login":"AndreyBelym","id":4479386,"avatar_url":"https://avatars.githubusercontent.com/u/4479386?v=3","gravatar_id":"","url":"https://api.github.com/users/AndreyBelym","html_url":"https://github.com/AndreyBelym","followers_url":"https://api.github.com/users/AndreyBelym/followers","following_url":"https://api.github.com/users/AndreyBelym/following{/other_user}","gists_url":"https://api.github.com/users/AndreyBelym/gists{/gist_id}","starred_url":"https://api.github.com/users/AndreyBelym/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AndreyBelym/subscriptions","organizations_url":"https://api.github.com/users/AndreyBelym/orgs","repos_url":"https://api.github.com/users/AndreyBelym/repos","events_url":"https://api.github.com/users/AndreyBelym/events{/privacy}","received_events_url":"https://api.github.com/users/AndreyBelym/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/DevExpress/testcafe/milestones/2","html_url":"https://github.com/DevExpress/testcafe/milestones/%CE%B1","labels_url":"https://api.github.com/repos/DevExpress/testcafe/milestones/2/labels","id":1323553,"number":2,"title":"α","description":"","creator":{"login":"AlexanderMoskovkin","id":12047804,"avatar_url":"https://avatars.githubusercontent.com/u/12047804?v=3","gravatar_id":"","url":"https://api.github.com/users/AlexanderMoskovkin","html_url":"https://github.com/AlexanderMoskovkin","followers_url":"https://api.github.com/users/AlexanderMoskovkin/followers","following_url":"https://api.github.com/users/AlexanderMoskovkin/following{/other_user}","gists_url":"https://api.github.com/users/AlexanderMoskovkin/gists{/gist_id}","starred_url":"https://api.github.com/users/AlexanderMoskovkin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AlexanderMoskovkin/subscriptions","organizations_url":"https://api.github.com/users/AlexanderMoskovkin/orgs","repos_url":"https://api.github.com/users/AlexanderMoskovkin/repos","events_url":"https://api.github.com/users/AlexanderMoskovkin/events{/privacy}","received_events_url":"https://api.github.com/users/AlexanderMoskovkin/received_events","type":"User","site_admin":false},"open_issues":1,"closed_issues":24,"state":"open","created_at":"2015-09-25T09:42:04Z","updated_at":"2015-12-03T14:37:01Z","due_on":"2015-10-04T21:00:00Z","closed_at":null},"comments":2,"created_at":"2015-10-28T11:45:40Z","updated_at":"2015-12-03T14:37:01Z","closed_at":"2015-12-03T14:37:01Z","body":"Create a separate module that allows to monitor multiple connections at the same time.\r\n\r\nProposal by @inikulin:\r\n>We should implement something like BrowserConnectionSet, which will server all this needs during browser connections life span. E.g.: bootsrapper adds all newly established and existend BC's to the set. Set has error event, so both bootstrapper and runner could subscribe to it and fail appropriately, without a need to subscribe/unsubscribe to each BC. Set also provides async method to close local connections. Moreover, we can make task accept Set as browser list, instead of array."}}