{"push_id":2182693567,"size":6,"distinct_size":1,"ref":"refs/heads/master","head":"154e967d8b577f0e3f46532a074977ab47534321","before":"df58ab5964f71dc78c836b55967392c8b2fbf364","commits":[{"sha":"ae37bd586808f58a38084dfbed39a3799b101493","author":{"name":"Peter Waller","email":"3abf83eacf76e056b23b89ceb0629fc1319d2ef1@pwaller.net"},"message":"Process events synchronously (#75)\n\nProof of concept for processing events synchronously.\n\nTwo changes:\n\n* Do not run updates and event handlers each in their own goroutine, but\n  instead run them in one goroutine in the order they came in. This\n  avoids the race described in #75.\n* Split the process queues into their own goroutines. This is necessary\n  so that event handling can run commands. If all the queues are\n  processed from the same goroutine, then when for exapmle when\n  `documentUpdated()` runs,  it tries to run a `dom.GetDocument()`,\n  which would deadlock because documentUpdated() is occupying the\n  handler goroutine.\n\nThis patch does not represent a complete fix, because I believe it may\nmake a lot of locking and other concurrent machinary unnecessary. I\ndon't have time to explore that right now, but I don't think it's\nharmful as far as I can tell.\n\nIgnore EventFrame* state changes\n--------------------------------\n\nThese state changes are intended to be written to a `*cdp.Frame` which\nonly arrives when `EventFrameNavigated` is received. This latter event\nmay never occur, or happen after the state change is written.\n\nI'm not convinced they are very useful, but their precense causes a\ndeadlock if handling events synchronously, because it waits for a frame\nthat never comes.\n\nPlease see discussion in #75 and comments in the code to understand the detail here.\n\nUse a large buffer size for qevents\n-----------------------------------\n\nSee comment within the code, and discussion in #75.","distinct":false,"url":"https://api.github.com/repos/jcrussell/chromedp/commits/ae37bd586808f58a38084dfbed39a3799b101493"},{"sha":"fe3a661d4d0a7166d5fc6cc6e3d9ebb8460932bd","author":{"name":"Jon Crussell","email":"be682b5a7d7b701454d4b30cdf14beccb023fe3e@gmail.com"},"message":"Merge remote-tracking branch 'origin/master' into process-events-synchronously","distinct":false,"url":"https://api.github.com/repos/jcrussell/chromedp/commits/fe3a661d4d0a7166d5fc6cc6e3d9ebb8460932bd"},{"sha":"cf34da2947650178ca6d1550c3c02de9b6750b60","author":{"name":"Jon Crussell","email":"be682b5a7d7b701454d4b30cdf14beccb023fe3e@gmail.com"},"message":"Cleanup synchronous event processing.\n\nRemove unnecessary waitgroups, range over channels and rely on closing\nchannels to cleanup Goroutines rather than using context.","distinct":false,"url":"https://api.github.com/repos/jcrussell/chromedp/commits/cf34da2947650178ca6d1550c3c02de9b6750b60"},{"sha":"1fb9bb9e034f447f403ff774c11f0fa4408c489c","author":{"name":"Jon Crussell","email":"be682b5a7d7b701454d4b30cdf14beccb023fe3e@gmail.com"},"message":"Ignore Lifecycle events.\n\nFilling up the logs with unhandled event messages.","distinct":false,"url":"https://api.github.com/repos/jcrussell/chromedp/commits/1fb9bb9e034f447f403ff774c11f0fa4408c489c"},{"sha":"ff9da44a31c3b7646d66a613f0082260845fc215","author":{"name":"Jon Crussell","email":"be682b5a7d7b701454d4b30cdf14beccb023fe3e@gmail.com"},"message":"add CloseTarget to close targets\n\nBit hacky -- creates a client and calls CloseTarget on that client. We\ncan get the list of targets with ListTargets and close any of those.\nSince we only identify targets by ID outside the client, we have to\ncreate a dummy target to pass to the client.\n\nNeed to figure out if we leak too many TargetHandlers when running this\nfor a while.","distinct":false,"url":"https://api.github.com/repos/jcrussell/chromedp/commits/ff9da44a31c3b7646d66a613f0082260845fc215"},{"sha":"154e967d8b577f0e3f46532a074977ab47534321","author":{"name":"Jon Crussell","email":"be682b5a7d7b701454d4b30cdf14beccb023fe3e@gmail.com"},"message":"Merge branch 'close-target'","distinct":true,"url":"https://api.github.com/repos/jcrussell/chromedp/commits/154e967d8b577f0e3f46532a074977ab47534321"}]}
{"actor":{"display_login":"jcrussell"}}