{"push_id":999667379,"size":28,"distinct_size":27,"ref":"refs/heads/master","head":"2a64b48028be12fbb3cc00d9792d1360770965c5","before":"080607141762b89552382b289c0312c5ae693d07","commits":[{"sha":"d37f9c31c1cc4cac6c19e072098327f97c346407","author":{"email":"1e572897f262d541316fd3c08108f1c373030c04@gmail.com","name":"Raul Ochoa"},"message":"Don't unbind onload/onerror callbacks after invoking them\n\nFrom \"[WHATWG HTML Living Standard]\n(https://html.spec.whatwg.org/multipage/indices.html#event-load)\", the definition of 'onload':\n> Fired at the Window when the document has finished loading; fired at an\nelement containing a resource (e.g. img, embed) when its resource has finished\nloading\n\nTo adhere to that specification both handlers should be called as many times as Image loads.\n\nFrom Google Chrome's Developer Tools:\n\n```js\n> function handler(evt) { console.log('img handler: %s', evt.type); }\n< undefined\n> var img = document.createElement('img')\n< undefined\n> img.onload = handler\n< handler(evt)\n> img.onerror = handler\n< handler(evt)\n> img.src = 'https://www.google.com/images/errors/logo_sm_2.png'; true\n< true\n< img handler: load\n> img.src = 'https://www.google.com/images/errors/logo_sm_2.png'; true\n< true\n< img handler: load\n> img.src = 'https://example.com/404.png'; true\n< true\n< img handler: error\n> img.src = 'https://example.com/404.png'; true\n< true\n< img handler: error\n```","distinct":true,"url":"https://api.github.com/repos/zbjornson/node-canvas/commits/d37f9c31c1cc4cac6c19e072098327f97c346407"},{"sha":"d877be393e29bf2b8d5a0d2f7e37825aeceb720b","author":{"email":"b365abd1b0cfcfb4c2df0aba7148042a50a59262@gmail.com","name":"Filip Bonnevier"},"message":"remove old and not working install script","distinct":true,"url":"https://api.github.com/repos/zbjornson/node-canvas/commits/d877be393e29bf2b8d5a0d2f7e37825aeceb720b"},{"sha":"e54183d8d4ed592289d1997404174af9fa349a65","author":{"email":"f8761338c8be37e3449160fbbd87fd25fbb6d77a@stanford.edu","name":"Zach Bjornson"},"message":"Make toDataURL more spec-compliant:\n* Use default arguments when undefined arguments are passed.\n* Throw TypeError on first invalid argument\n* Accept a number 'encoderOptions' as the quality\n* Fall through to image/png if an unsupported encoding is requested\n* Return \"data:,\" if the canvas has no pixels\n* Lower-case the format before testing for support","distinct":false,"url":"https://api.github.com/repos/zbjornson/node-canvas/commits/e54183d8d4ed592289d1997404174af9fa349a65"},{"sha":"b908f39845570ae361f89b03c3bae932ea0439f4","author":{"email":"40840f60975de4010e490a8c0f97c3082d32e60c@folkdatorn.se","name":"Linus Unnebäck"},"message":"Merge pull request #696 from zbjornson/compliance\n\nMake toDataURL more spec-compliant","distinct":true,"url":"https://api.github.com/repos/zbjornson/node-canvas/commits/b908f39845570ae361f89b03c3bae932ea0439f4"},{"sha":"5dd9747c1dd9a799a1f7127a7fded83c6b330b14","author":{"email":"40840f60975de4010e490a8c0f97c3082d32e60c@folkdatorn.se","name":"Linus Unnebäck"},"message":"history: 1.3.6","distinct":true,"url":"https://api.github.com/repos/zbjornson/node-canvas/commits/5dd9747c1dd9a799a1f7127a7fded83c6b330b14"},{"sha":"973ba5c3466d8472e136d0da9913e6be74ab7882","author":{"email":"40840f60975de4010e490a8c0f97c3082d32e60c@folkdatorn.se","name":"Linus Unnebäck"},"message":"version: 1.3.6","distinct":true,"url":"https://api.github.com/repos/zbjornson/node-canvas/commits/973ba5c3466d8472e136d0da9913e6be74ab7882"},{"sha":"0dbb4723c07fc257f34465a7fa7703c8487a2980","author":{"email":"40840f60975de4010e490a8c0f97c3082d32e60c@folkdatorn.se","name":"Linus Unnebäck"},"message":"Merge pull request #698 from alum/feature/fbonnevier/remove-broken-install-script\n\nremove old and not working install script","distinct":true,"url":"https://api.github.com/repos/zbjornson/node-canvas/commits/0dbb4723c07fc257f34465a7fa7703c8487a2980"},{"sha":"6a90ed5c1516038845889e8fc8be123ec97510a5","author":{"email":"1e572897f262d541316fd3c08108f1c373030c04@gmail.com","name":"Raul Ochoa"},"message":"Merge branch 'master' into dont-remove-callbacks-after-call\n\nConflicts:\n\ttest/image.test.js","distinct":true,"url":"https://api.github.com/repos/zbjornson/node-canvas/commits/6a90ed5c1516038845889e8fc8be123ec97510a5"},{"sha":"15977bfe04fe237d7beba9f5b807f5953b62a3de","author":{"email":"1e572897f262d541316fd3c08108f1c373030c04@gmail.com","name":"Raul Ochoa"},"message":"Rename existing variable for better context","distinct":true,"url":"https://api.github.com/repos/zbjornson/node-canvas/commits/15977bfe04fe237d7beba9f5b807f5953b62a3de"},{"sha":"e7621672f949240434bda026e4bbce295f2b890d","author":{"email":"1e572897f262d541316fd3c08108f1c373030c04@gmail.com","name":"Raul Ochoa"},"message":"Better naming for callback invocation counter","distinct":true,"url":"https://api.github.com/repos/zbjornson/node-canvas/commits/e7621672f949240434bda026e4bbce295f2b890d"},{"sha":"b7d3c4c3447049bacfbe520d4fdb2b61bbce4f3b","author":{"email":"1e572897f262d541316fd3c08108f1c373030c04@gmail.com","name":"Raul Ochoa"},"message":"More clear incrementing for callback counters","distinct":true,"url":"https://api.github.com/repos/zbjornson/node-canvas/commits/b7d3c4c3447049bacfbe520d4fdb2b61bbce4f3b"},{"sha":"700d8e16438116204a6c5a6ec25c8e30412878f9","author":{"email":"40840f60975de4010e490a8c0f97c3082d32e60c@folkdatorn.se","name":"Linus Unnebäck"},"message":"Merge pull request #615 from CartoDB/dont-remove-callbacks-after-call\n\nDon't unbind onload/onerror callbacks after invoking them","distinct":true,"url":"https://api.github.com/repos/zbjornson/node-canvas/commits/700d8e16438116204a6c5a6ec25c8e30412878f9"},{"sha":"3df28acd58649376f537219fb85f334a3a39c99e","author":{"email":"40840f60975de4010e490a8c0f97c3082d32e60c@folkdatorn.se","name":"Linus Unnebäck"},"message":"history: 1.3.7","distinct":true,"url":"https://api.github.com/repos/zbjornson/node-canvas/commits/3df28acd58649376f537219fb85f334a3a39c99e"},{"sha":"32c7944dde8eab7930bb31e7dab07a83b8438caa","author":{"email":"40840f60975de4010e490a8c0f97c3082d32e60c@folkdatorn.se","name":"Linus Unnebäck"},"message":"version: 1.3.7","distinct":true,"url":"https://api.github.com/repos/zbjornson/node-canvas/commits/32c7944dde8eab7930bb31e7dab07a83b8438caa"},{"sha":"283f51561e9903e1817ecbb01ab34de21b67428c","author":{"email":"40840f60975de4010e490a8c0f97c3082d32e60c@folkdatorn.se","name":"Linus Unnebäck"},"message":"cleanup build scripts","distinct":true,"url":"https://api.github.com/repos/zbjornson/node-canvas/commits/283f51561e9903e1817ecbb01ab34de21b67428c"},{"sha":"febc2d18153c5f026d48616fc9c6dca7e95a3ffd","author":{"email":"40840f60975de4010e490a8c0f97c3082d32e60c@folkdatorn.se","name":"Linus Unnebäck"},"message":"Merge pull request #701 from LinusU/build-cleanup\n\ncleanup build scripts","distinct":true,"url":"https://api.github.com/repos/zbjornson/node-canvas/commits/febc2d18153c5f026d48616fc9c6dca7e95a3ffd"},{"sha":"f659951051ab03004856d31a1f93d492400663dc","author":{"email":"40840f60975de4010e490a8c0f97c3082d32e60c@folkdatorn.se","name":"Linus Unnebäck"},"message":"history: 1.3.8","distinct":true,"url":"https://api.github.com/repos/zbjornson/node-canvas/commits/f659951051ab03004856d31a1f93d492400663dc"},{"sha":"db0844e6b0cab3e57a5bd29f2df6b0f7396d252f","author":{"email":"40840f60975de4010e490a8c0f97c3082d32e60c@folkdatorn.se","name":"Linus Unnebäck"},"message":"version: 1.3.8","distinct":true,"url":"https://api.github.com/repos/zbjornson/node-canvas/commits/db0844e6b0cab3e57a5bd29f2df6b0f7396d252f"},{"sha":"c651227202a48d061feb32687584ff3cd6c5cbed","author":{"email":"1e572897f262d541316fd3c08108f1c373030c04@gmail.com","name":"Raul Ochoa"},"message":"Allow to unbind onload/onerror callback handlers\n\nAssigning `null` to handlers removes them, this mimic the behaviour from Google Chrome.\n\nFrom Chrome's Developer Tools:\n\n```js\n> function handler(evt) { console.log('img handler: %s', evt.type); }\n< undefined\n> var img = document.createElement('img')\n< undefined\n> img.onload = handler\n< handler(evt)\n> img.onerror = handler\n< handler(evt)\n> img.src = 'https://www.google.com/images/errors/logo_sm_2.png'; true\n< true\n< img handler: load\n> img.src = 'https://www.google.com/images/errors/logo_sm_2.png'; true\n< true\n< img handler: load\n> img.src = 'https://example.com/404.png'; true\n< true\n< img handler: error\n> img.src = 'https://example.com/404.png'; true\n< true\n< img handler: error\n> img.onload = null\n< null\n> img.onerror = null\n< null\n> img.src = 'https://www.google.com/images/errors/logo_sm_2.png'; true\n< true\n> img.src = 'https://example.com/404.png'; true\n< true\n```","distinct":true,"url":"https://api.github.com/repos/zbjornson/node-canvas/commits/c651227202a48d061feb32687584ff3cd6c5cbed"},{"sha":"e1033557af02fd59ff577bc26604ae95280a41c2","author":{"email":"40840f60975de4010e490a8c0f97c3082d32e60c@folkdatorn.se","name":"Linus Unnebäck"},"message":"Merge pull request #706 from LinusU/allow-to-unbind-callback-handlers\n\nAllow to unbind onload/onerror callback handlers","distinct":true,"url":"https://api.github.com/repos/zbjornson/node-canvas/commits/e1033557af02fd59ff577bc26604ae95280a41c2"}]}