{"action":"created","comment":{"url":"https://api.github.com/repos/uProxy/uproxy/pulls/comments/79001010","id":79001010,"diff_hunk":"@@ -24,7 +24,9 @@\n     }\n     </style>\n \n-    <uproxy-dialog backdrop opened='{{ model.reconnecting }}'\n+    <!-- Open this dialog when reconnecting to the social network but not the peer.\n+         If we are reconnecting to the peer, that dialog will show progress instead. -->\n+    <uproxy-dialog backdrop opened='{{ model.reconnecting && !core.disconnectedWhileProxying}}'","path":"src/generic_ui/polymer/reconnect.html","position":7,"original_position":7,"commit_id":"731b3b4630dac04ab418af1456888ea4a4e58650","original_commit_id":"731b3b4630dac04ab418af1456888ea4a4e58650","user":{"login":"trevj","id":5142116,"avatar_url":"https://avatars.githubusercontent.com/u/5142116?v=3","gravatar_id":"","url":"https://api.github.com/users/trevj","html_url":"https://github.com/trevj","followers_url":"https://api.github.com/users/trevj/followers","following_url":"https://api.github.com/users/trevj/following{/other_user}","gists_url":"https://api.github.com/users/trevj/gists{/gist_id}","starred_url":"https://api.github.com/users/trevj/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/trevj/subscriptions","organizations_url":"https://api.github.com/users/trevj/orgs","repos_url":"https://api.github.com/users/trevj/repos","events_url":"https://api.github.com/users/trevj/events{/privacy}","received_events_url":"https://api.github.com/users/trevj/received_events","type":"User","site_admin":false},"body":"I believe these complex conditions are disallowed in Polymer 1.0.","created_at":"2016-09-15T16:05:15Z","updated_at":"2016-09-15T16:15:46Z","html_url":"https://github.com/uProxy/uproxy/pull/2748#discussion_r79001010","pull_request_url":"https://api.github.com/repos/uProxy/uproxy/pulls/2748","_links":{"self":{"href":"https://api.github.com/repos/uProxy/uproxy/pulls/comments/79001010"},"html":{"href":"https://github.com/uProxy/uproxy/pull/2748#discussion_r79001010"},"pull_request":{"href":"https://api.github.com/repos/uProxy/uproxy/pulls/2748"}}},"pull_request":{"url":"https://api.github.com/repos/uProxy/uproxy/pulls/2748","id":83860887,"html_url":"https://github.com/uProxy/uproxy/pull/2748","diff_url":"https://github.com/uProxy/uproxy/pull/2748.diff","patch_url":"https://github.com/uProxy/uproxy/pull/2748.patch","issue_url":"https://api.github.com/repos/uProxy/uproxy/issues/2748","number":2748,"state":"open","locked":false,"title":"Be much more aggressive about restart and reconnect","user":{"login":"bemasc","id":191945,"avatar_url":"https://avatars.githubusercontent.com/u/191945?v=3","gravatar_id":"","url":"https://api.github.com/users/bemasc","html_url":"https://github.com/bemasc","followers_url":"https://api.github.com/users/bemasc/followers","following_url":"https://api.github.com/users/bemasc/following{/other_user}","gists_url":"https://api.github.com/users/bemasc/gists{/gist_id}","starred_url":"https://api.github.com/users/bemasc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bemasc/subscriptions","organizations_url":"https://api.github.com/users/bemasc/orgs","repos_url":"https://api.github.com/users/bemasc/repos","events_url":"https://api.github.com/users/bemasc/events{/privacy}","received_events_url":"https://api.github.com/users/bemasc/received_events","type":"User","site_admin":false},"body":"This is a preliminary PR for aggressive reconnection.  With these changes, in principle, uProxy should automatically recover from network disconnections (#2662).\r\n\r\nI've only tested this on Android.  Note that Android is distinct from desktop in part because the UI can never be closed (without shutting down the whole app).\r\n\r\nIn my testing, this works well for Cloud connections.  For Quiver, the results are mixed.  During short disconnections, it seems that Quiver drops messages, which is a serious problem.  For long disconnections (long enough for Quiver to detect the failure and log out, which takes several minutes), this logic sometimes works, but often seems to run into WebRTC-related issues (e.g. no UDP candidates, or candidates only on the defunct VPN interface).\r\n\r\nI've added extensive comments to explain the logic.  As noted in the comments, there are several codepaths that could likely be removed, pending more testing and discussion.\r\n\r\n<!-- Reviewable:start -->\r\n---\r\nThis change is [<img src=\"https://reviewable.io/review_button.svg\" height=\"34\" align=\"absmiddle\" alt=\"Reviewable\"/>](https://reviewable.io/reviews/uproxy/uproxy/2748)\r\n<!-- Reviewable:end -->\r\n","created_at":"2016-09-02T20:34:56Z","updated_at":"2016-09-15T16:15:46Z","closed_at":null,"merged_at":null,"merge_commit_sha":"3f18d5ba5f6741e252f06e114f146be82b866868","assignee":{"login":"albertolalama","id":2132122,"avatar_url":"https://avatars.githubusercontent.com/u/2132122?v=3","gravatar_id":"","url":"https://api.github.com/users/albertolalama","html_url":"https://github.com/albertolalama","followers_url":"https://api.github.com/users/albertolalama/followers","following_url":"https://api.github.com/users/albertolalama/following{/other_user}","gists_url":"https://api.github.com/users/albertolalama/gists{/gist_id}","starred_url":"https://api.github.com/users/albertolalama/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/albertolalama/subscriptions","organizations_url":"https://api.github.com/users/albertolalama/orgs","repos_url":"https://api.github.com/users/albertolalama/repos","events_url":"https://api.github.com/users/albertolalama/events{/privacy}","received_events_url":"https://api.github.com/users/albertolalama/received_events","type":"User","site_admin":false},"assignees":[{"login":"albertolalama","id":2132122,"avatar_url":"https://avatars.githubusercontent.com/u/2132122?v=3","gravatar_id":"","url":"https://api.github.com/users/albertolalama","html_url":"https://github.com/albertolalama","followers_url":"https://api.github.com/users/albertolalama/followers","following_url":"https://api.github.com/users/albertolalama/following{/other_user}","gists_url":"https://api.github.com/users/albertolalama/gists{/gist_id}","starred_url":"https://api.github.com/users/albertolalama/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/albertolalama/subscriptions","organizations_url":"https://api.github.com/users/albertolalama/orgs","repos_url":"https://api.github.com/users/albertolalama/repos","events_url":"https://api.github.com/users/albertolalama/events{/privacy}","received_events_url":"https://api.github.com/users/albertolalama/received_events","type":"User","site_admin":false},{"login":"dborkan","id":6494307,"avatar_url":"https://avatars.githubusercontent.com/u/6494307?v=3","gravatar_id":"","url":"https://api.github.com/users/dborkan","html_url":"https://github.com/dborkan","followers_url":"https://api.github.com/users/dborkan/followers","following_url":"https://api.github.com/users/dborkan/following{/other_user}","gists_url":"https://api.github.com/users/dborkan/gists{/gist_id}","starred_url":"https://api.github.com/users/dborkan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dborkan/subscriptions","organizations_url":"https://api.github.com/users/dborkan/orgs","repos_url":"https://api.github.com/users/dborkan/repos","events_url":"https://api.github.com/users/dborkan/events{/privacy}","received_events_url":"https://api.github.com/users/dborkan/received_events","type":"User","site_admin":false},{"login":"lucyhe","id":8723127,"avatar_url":"https://avatars.githubusercontent.com/u/8723127?v=3","gravatar_id":"","url":"https://api.github.com/users/lucyhe","html_url":"https://github.com/lucyhe","followers_url":"https://api.github.com/users/lucyhe/followers","following_url":"https://api.github.com/users/lucyhe/following{/other_user}","gists_url":"https://api.github.com/users/lucyhe/gists{/gist_id}","starred_url":"https://api.github.com/users/lucyhe/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lucyhe/subscriptions","organizations_url":"https://api.github.com/users/lucyhe/orgs","repos_url":"https://api.github.com/users/lucyhe/repos","events_url":"https://api.github.com/users/lucyhe/events{/privacy}","received_events_url":"https://api.github.com/users/lucyhe/received_events","type":"User","site_admin":false}],"milestone":null,"commits_url":"https://api.github.com/repos/uProxy/uproxy/pulls/2748/commits","review_comments_url":"https://api.github.com/repos/uProxy/uproxy/pulls/2748/comments","review_comment_url":"https://api.github.com/repos/uProxy/uproxy/pulls/comments{/number}","comments_url":"https://api.github.com/repos/uProxy/uproxy/issues/2748/comments","statuses_url":"https://api.github.com/repos/uProxy/uproxy/statuses/731b3b4630dac04ab418af1456888ea4a4e58650","head":{"label":"uProxy:bemasc-retry","ref":"bemasc-retry","sha":"731b3b4630dac04ab418af1456888ea4a4e58650","user":{"login":"uProxy","id":6548286,"avatar_url":"https://avatars.githubusercontent.com/u/6548286?v=3","gravatar_id":"","url":"https://api.github.com/users/uProxy","html_url":"https://github.com/uProxy","followers_url":"https://api.github.com/users/uProxy/followers","following_url":"https://api.github.com/users/uProxy/following{/other_user}","gists_url":"https://api.github.com/users/uProxy/gists{/gist_id}","starred_url":"https://api.github.com/users/uProxy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/uProxy/subscriptions","organizations_url":"https://api.github.com/users/uProxy/orgs","repos_url":"https://api.github.com/users/uProxy/repos","events_url":"https://api.github.com/users/uProxy/events{/privacy}","received_events_url":"https://api.github.com/users/uProxy/received_events","type":"Organization","site_admin":false},"repo":{"id":18533350,"name":"uproxy","full_name":"uProxy/uproxy","owner":{"login":"uProxy","id":6548286,"avatar_url":"https://avatars.githubusercontent.com/u/6548286?v=3","gravatar_id":"","url":"https://api.github.com/users/uProxy","html_url":"https://github.com/uProxy","followers_url":"https://api.github.com/users/uProxy/followers","following_url":"https://api.github.com/users/uProxy/following{/other_user}","gists_url":"https://api.github.com/users/uProxy/gists{/gist_id}","starred_url":"https://api.github.com/users/uProxy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/uProxy/subscriptions","organizations_url":"https://api.github.com/users/uProxy/orgs","repos_url":"https://api.github.com/users/uProxy/repos","events_url":"https://api.github.com/users/uProxy/events{/privacy}","received_events_url":"https://api.github.com/users/uProxy/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/uProxy/uproxy","description":"Internet without borders","fork":false,"url":"https://api.github.com/repos/uProxy/uproxy","forks_url":"https://api.github.com/repos/uProxy/uproxy/forks","keys_url":"https://api.github.com/repos/uProxy/uproxy/keys{/key_id}","collaborators_url":"https://api.github.com/repos/uProxy/uproxy/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/uProxy/uproxy/teams","hooks_url":"https://api.github.com/repos/uProxy/uproxy/hooks","issue_events_url":"https://api.github.com/repos/uProxy/uproxy/issues/events{/number}","events_url":"https://api.github.com/repos/uProxy/uproxy/events","assignees_url":"https://api.github.com/repos/uProxy/uproxy/assignees{/user}","branches_url":"https://api.github.com/repos/uProxy/uproxy/branches{/branch}","tags_url":"https://api.github.com/repos/uProxy/uproxy/tags","blobs_url":"https://api.github.com/repos/uProxy/uproxy/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/uProxy/uproxy/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/uProxy/uproxy/git/refs{/sha}","trees_url":"https://api.github.com/repos/uProxy/uproxy/git/trees{/sha}","statuses_url":"https://api.github.com/repos/uProxy/uproxy/statuses/{sha}","languages_url":"https://api.github.com/repos/uProxy/uproxy/languages","stargazers_url":"https://api.github.com/repos/uProxy/uproxy/stargazers","contributors_url":"https://api.github.com/repos/uProxy/uproxy/contributors","subscribers_url":"https://api.github.com/repos/uProxy/uproxy/subscribers","subscription_url":"https://api.github.com/repos/uProxy/uproxy/subscription","commits_url":"https://api.github.com/repos/uProxy/uproxy/commits{/sha}","git_commits_url":"https://api.github.com/repos/uProxy/uproxy/git/commits{/sha}","comments_url":"https://api.github.com/repos/uProxy/uproxy/comments{/number}","issue_comment_url":"https://api.github.com/repos/uProxy/uproxy/issues/comments{/number}","contents_url":"https://api.github.com/repos/uProxy/uproxy/contents/{+path}","compare_url":"https://api.github.com/repos/uProxy/uproxy/compare/{base}...{head}","merges_url":"https://api.github.com/repos/uProxy/uproxy/merges","archive_url":"https://api.github.com/repos/uProxy/uproxy/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/uProxy/uproxy/downloads","issues_url":"https://api.github.com/repos/uProxy/uproxy/issues{/number}","pulls_url":"https://api.github.com/repos/uProxy/uproxy/pulls{/number}","milestones_url":"https://api.github.com/repos/uProxy/uproxy/milestones{/number}","notifications_url":"https://api.github.com/repos/uProxy/uproxy/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/uProxy/uproxy/labels{/name}","releases_url":"https://api.github.com/repos/uProxy/uproxy/releases{/id}","deployments_url":"https://api.github.com/repos/uProxy/uproxy/deployments","created_at":"2014-04-07T20:34:40Z","updated_at":"2016-09-13T19:12:35Z","pushed_at":"2016-09-13T17:10:34Z","git_url":"git://github.com/uProxy/uproxy.git","ssh_url":"git@github.com:uProxy/uproxy.git","clone_url":"https://github.com/uProxy/uproxy.git","svn_url":"https://github.com/uProxy/uproxy","homepage":"https://www.uproxy.org/","size":28541,"stargazers_count":412,"watchers_count":412,"language":"TypeScript","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":106,"mirror_url":null,"open_issues_count":564,"forks":106,"open_issues":564,"watchers":412,"default_branch":"master"}},"base":{"label":"uProxy:master","ref":"master","sha":"2c774bbd5790e7daa533ac6b6450e5f1a53e22d8","user":{"login":"uProxy","id":6548286,"avatar_url":"https://avatars.githubusercontent.com/u/6548286?v=3","gravatar_id":"","url":"https://api.github.com/users/uProxy","html_url":"https://github.com/uProxy","followers_url":"https://api.github.com/users/uProxy/followers","following_url":"https://api.github.com/users/uProxy/following{/other_user}","gists_url":"https://api.github.com/users/uProxy/gists{/gist_id}","starred_url":"https://api.github.com/users/uProxy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/uProxy/subscriptions","organizations_url":"https://api.github.com/users/uProxy/orgs","repos_url":"https://api.github.com/users/uProxy/repos","events_url":"https://api.github.com/users/uProxy/events{/privacy}","received_events_url":"https://api.github.com/users/uProxy/received_events","type":"Organization","site_admin":false},"repo":{"id":18533350,"name":"uproxy","full_name":"uProxy/uproxy","owner":{"login":"uProxy","id":6548286,"avatar_url":"https://avatars.githubusercontent.com/u/6548286?v=3","gravatar_id":"","url":"https://api.github.com/users/uProxy","html_url":"https://github.com/uProxy","followers_url":"https://api.github.com/users/uProxy/followers","following_url":"https://api.github.com/users/uProxy/following{/other_user}","gists_url":"https://api.github.com/users/uProxy/gists{/gist_id}","starred_url":"https://api.github.com/users/uProxy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/uProxy/subscriptions","organizations_url":"https://api.github.com/users/uProxy/orgs","repos_url":"https://api.github.com/users/uProxy/repos","events_url":"https://api.github.com/users/uProxy/events{/privacy}","received_events_url":"https://api.github.com/users/uProxy/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/uProxy/uproxy","description":"Internet without borders","fork":false,"url":"https://api.github.com/repos/uProxy/uproxy","forks_url":"https://api.github.com/repos/uProxy/uproxy/forks","keys_url":"https://api.github.com/repos/uProxy/uproxy/keys{/key_id}","collaborators_url":"https://api.github.com/repos/uProxy/uproxy/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/uProxy/uproxy/teams","hooks_url":"https://api.github.com/repos/uProxy/uproxy/hooks","issue_events_url":"https://api.github.com/repos/uProxy/uproxy/issues/events{/number}","events_url":"https://api.github.com/repos/uProxy/uproxy/events","assignees_url":"https://api.github.com/repos/uProxy/uproxy/assignees{/user}","branches_url":"https://api.github.com/repos/uProxy/uproxy/branches{/branch}","tags_url":"https://api.github.com/repos/uProxy/uproxy/tags","blobs_url":"https://api.github.com/repos/uProxy/uproxy/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/uProxy/uproxy/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/uProxy/uproxy/git/refs{/sha}","trees_url":"https://api.github.com/repos/uProxy/uproxy/git/trees{/sha}","statuses_url":"https://api.github.com/repos/uProxy/uproxy/statuses/{sha}","languages_url":"https://api.github.com/repos/uProxy/uproxy/languages","stargazers_url":"https://api.github.com/repos/uProxy/uproxy/stargazers","contributors_url":"https://api.github.com/repos/uProxy/uproxy/contributors","subscribers_url":"https://api.github.com/repos/uProxy/uproxy/subscribers","subscription_url":"https://api.github.com/repos/uProxy/uproxy/subscription","commits_url":"https://api.github.com/repos/uProxy/uproxy/commits{/sha}","git_commits_url":"https://api.github.com/repos/uProxy/uproxy/git/commits{/sha}","comments_url":"https://api.github.com/repos/uProxy/uproxy/comments{/number}","issue_comment_url":"https://api.github.com/repos/uProxy/uproxy/issues/comments{/number}","contents_url":"https://api.github.com/repos/uProxy/uproxy/contents/{+path}","compare_url":"https://api.github.com/repos/uProxy/uproxy/compare/{base}...{head}","merges_url":"https://api.github.com/repos/uProxy/uproxy/merges","archive_url":"https://api.github.com/repos/uProxy/uproxy/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/uProxy/uproxy/downloads","issues_url":"https://api.github.com/repos/uProxy/uproxy/issues{/number}","pulls_url":"https://api.github.com/repos/uProxy/uproxy/pulls{/number}","milestones_url":"https://api.github.com/repos/uProxy/uproxy/milestones{/number}","notifications_url":"https://api.github.com/repos/uProxy/uproxy/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/uProxy/uproxy/labels{/name}","releases_url":"https://api.github.com/repos/uProxy/uproxy/releases{/id}","deployments_url":"https://api.github.com/repos/uProxy/uproxy/deployments","created_at":"2014-04-07T20:34:40Z","updated_at":"2016-09-13T19:12:35Z","pushed_at":"2016-09-13T17:10:34Z","git_url":"git://github.com/uProxy/uproxy.git","ssh_url":"git@github.com:uProxy/uproxy.git","clone_url":"https://github.com/uProxy/uproxy.git","svn_url":"https://github.com/uProxy/uproxy","homepage":"https://www.uproxy.org/","size":28541,"stargazers_count":412,"watchers_count":412,"language":"TypeScript","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":106,"mirror_url":null,"open_issues_count":564,"forks":106,"open_issues":564,"watchers":412,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/uProxy/uproxy/pulls/2748"},"html":{"href":"https://github.com/uProxy/uproxy/pull/2748"},"issue":{"href":"https://api.github.com/repos/uProxy/uproxy/issues/2748"},"comments":{"href":"https://api.github.com/repos/uProxy/uproxy/issues/2748/comments"},"review_comments":{"href":"https://api.github.com/repos/uProxy/uproxy/pulls/2748/comments"},"review_comment":{"href":"https://api.github.com/repos/uProxy/uproxy/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/uProxy/uproxy/pulls/2748/commits"},"statuses":{"href":"https://api.github.com/repos/uProxy/uproxy/statuses/731b3b4630dac04ab418af1456888ea4a4e58650"}}}}
{"actor":{"display_login":"trevj"}}