{"action":"opened","number":381,"pull_request":{"url":"https://api.github.com/repos/mozilla/localForage/pulls/381","id":36111451,"html_url":"https://github.com/mozilla/localForage/pull/381","diff_url":"https://github.com/mozilla/localForage/pull/381.diff","patch_url":"https://github.com/mozilla/localForage/pull/381.patch","issue_url":"https://api.github.com/repos/mozilla/localForage/issues/381","number":381,"state":"open","locked":false,"title":"use WebKitBlobBuilder if present","user":{"login":"sheppard","id":1863675,"avatar_url":"https://avatars.githubusercontent.com/u/1863675?v=3","gravatar_id":"","url":"https://api.github.com/users/sheppard","html_url":"https://github.com/sheppard","followers_url":"https://api.github.com/users/sheppard/followers","following_url":"https://api.github.com/users/sheppard/following{/other_user}","gists_url":"https://api.github.com/users/sheppard/gists{/gist_id}","starred_url":"https://api.github.com/users/sheppard/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sheppard/subscriptions","organizations_url":"https://api.github.com/users/sheppard/orgs","repos_url":"https://api.github.com/users/sheppard/repos","events_url":"https://api.github.com/users/sheppard/events{/privacy}","received_events_url":"https://api.github.com/users/sheppard/received_events","type":"User","site_admin":false},"body":"Based on http://caniuse.com/#feat=blobbuilder and my (limited) personal testing, it seems the Android 4.x browsers (non-Chrome) support creating blobs only via the deprecated `BlobBuilder` API.  Using the non-IDB drivers on these browsers results in an `illegal constructor` error when reading the serialized data.\r\n\r\nHere's a simple patch that checks for `WebKitBlobBuilder` and uses it if present instead of the `Blob()` constructor.  Unlike [this example](http://stackoverflow.com/questions/15293694/blob-constructor-browser-compatibility), I didn't include checks for all of the other prefixed versions as it seems most of the other browsers either support the `Blob()` constructor or don't support blobs at all.\r\n\r\n(The Android browsers also have trouble actually *uploading* blobs but that's a separate issue).","created_at":"2015-05-25T01:05:41Z","updated_at":"2015-05-25T01:05:41Z","closed_at":null,"merged_at":null,"merge_commit_sha":null,"assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/mozilla/localForage/pulls/381/commits","review_comments_url":"https://api.github.com/repos/mozilla/localForage/pulls/381/comments","review_comment_url":"https://api.github.com/repos/mozilla/localForage/pulls/comments{/number}","comments_url":"https://api.github.com/repos/mozilla/localForage/issues/381/comments","statuses_url":"https://api.github.com/repos/mozilla/localForage/statuses/31828c4a050a3a0fef0f3a86e2ae0e5bef5bb305","head":{"label":"sheppard:builder","ref":"builder","sha":"31828c4a050a3a0fef0f3a86e2ae0e5bef5bb305","user":{"login":"sheppard","id":1863675,"avatar_url":"https://avatars.githubusercontent.com/u/1863675?v=3","gravatar_id":"","url":"https://api.github.com/users/sheppard","html_url":"https://github.com/sheppard","followers_url":"https://api.github.com/users/sheppard/followers","following_url":"https://api.github.com/users/sheppard/following{/other_user}","gists_url":"https://api.github.com/users/sheppard/gists{/gist_id}","starred_url":"https://api.github.com/users/sheppard/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sheppard/subscriptions","organizations_url":"https://api.github.com/users/sheppard/orgs","repos_url":"https://api.github.com/users/sheppard/repos","events_url":"https://api.github.com/users/sheppard/events{/privacy}","received_events_url":"https://api.github.com/users/sheppard/received_events","type":"User","site_admin":false},"repo":{"id":36196692,"name":"localForage","full_name":"sheppard/localForage","owner":{"login":"sheppard","id":1863675,"avatar_url":"https://avatars.githubusercontent.com/u/1863675?v=3","gravatar_id":"","url":"https://api.github.com/users/sheppard","html_url":"https://github.com/sheppard","followers_url":"https://api.github.com/users/sheppard/followers","following_url":"https://api.github.com/users/sheppard/following{/other_user}","gists_url":"https://api.github.com/users/sheppard/gists{/gist_id}","starred_url":"https://api.github.com/users/sheppard/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sheppard/subscriptions","organizations_url":"https://api.github.com/users/sheppard/orgs","repos_url":"https://api.github.com/users/sheppard/repos","events_url":"https://api.github.com/users/sheppard/events{/privacy}","received_events_url":"https://api.github.com/users/sheppard/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/sheppard/localForage","description":"Offline storage, improved. Wraps IndexedDB, WebSQL, or localStorage using a simple but powerful API.","fork":true,"url":"https://api.github.com/repos/sheppard/localForage","forks_url":"https://api.github.com/repos/sheppard/localForage/forks","keys_url":"https://api.github.com/repos/sheppard/localForage/keys{/key_id}","collaborators_url":"https://api.github.com/repos/sheppard/localForage/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/sheppard/localForage/teams","hooks_url":"https://api.github.com/repos/sheppard/localForage/hooks","issue_events_url":"https://api.github.com/repos/sheppard/localForage/issues/events{/number}","events_url":"https://api.github.com/repos/sheppard/localForage/events","assignees_url":"https://api.github.com/repos/sheppard/localForage/assignees{/user}","branches_url":"https://api.github.com/repos/sheppard/localForage/branches{/branch}","tags_url":"https://api.github.com/repos/sheppard/localForage/tags","blobs_url":"https://api.github.com/repos/sheppard/localForage/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/sheppard/localForage/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/sheppard/localForage/git/refs{/sha}","trees_url":"https://api.github.com/repos/sheppard/localForage/git/trees{/sha}","statuses_url":"https://api.github.com/repos/sheppard/localForage/statuses/{sha}","languages_url":"https://api.github.com/repos/sheppard/localForage/languages","stargazers_url":"https://api.github.com/repos/sheppard/localForage/stargazers","contributors_url":"https://api.github.com/repos/sheppard/localForage/contributors","subscribers_url":"https://api.github.com/repos/sheppard/localForage/subscribers","subscription_url":"https://api.github.com/repos/sheppard/localForage/subscription","commits_url":"https://api.github.com/repos/sheppard/localForage/commits{/sha}","git_commits_url":"https://api.github.com/repos/sheppard/localForage/git/commits{/sha}","comments_url":"https://api.github.com/repos/sheppard/localForage/comments{/number}","issue_comment_url":"https://api.github.com/repos/sheppard/localForage/issues/comments{/number}","contents_url":"https://api.github.com/repos/sheppard/localForage/contents/{+path}","compare_url":"https://api.github.com/repos/sheppard/localForage/compare/{base}...{head}","merges_url":"https://api.github.com/repos/sheppard/localForage/merges","archive_url":"https://api.github.com/repos/sheppard/localForage/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/sheppard/localForage/downloads","issues_url":"https://api.github.com/repos/sheppard/localForage/issues{/number}","pulls_url":"https://api.github.com/repos/sheppard/localForage/pulls{/number}","milestones_url":"https://api.github.com/repos/sheppard/localForage/milestones{/number}","notifications_url":"https://api.github.com/repos/sheppard/localForage/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/sheppard/localForage/labels{/name}","releases_url":"https://api.github.com/repos/sheppard/localForage/releases{/id}","created_at":"2015-05-24T22:22:02Z","updated_at":"2015-05-24T22:22:03Z","pushed_at":"2015-05-25T00:51:01Z","git_url":"git://github.com/sheppard/localForage.git","ssh_url":"git@github.com:sheppard/localForage.git","clone_url":"https://github.com/sheppard/localForage.git","svn_url":"https://github.com/sheppard/localForage","homepage":"https://mozilla.github.io/localForage","size":5255,"stargazers_count":0,"watchers_count":0,"language":"JavaScript","has_issues":false,"has_downloads":true,"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":"mozilla:master","ref":"master","sha":"72defe62ced255e9436facbde65eaddcdd335a49","user":{"login":"mozilla","id":131524,"avatar_url":"https://avatars.githubusercontent.com/u/131524?v=3","gravatar_id":"","url":"https://api.github.com/users/mozilla","html_url":"https://github.com/mozilla","followers_url":"https://api.github.com/users/mozilla/followers","following_url":"https://api.github.com/users/mozilla/following{/other_user}","gists_url":"https://api.github.com/users/mozilla/gists{/gist_id}","starred_url":"https://api.github.com/users/mozilla/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mozilla/subscriptions","organizations_url":"https://api.github.com/users/mozilla/orgs","repos_url":"https://api.github.com/users/mozilla/repos","events_url":"https://api.github.com/users/mozilla/events{/privacy}","received_events_url":"https://api.github.com/users/mozilla/received_events","type":"Organization","site_admin":false},"repo":{"id":14003349,"name":"localForage","full_name":"mozilla/localForage","owner":{"login":"mozilla","id":131524,"avatar_url":"https://avatars.githubusercontent.com/u/131524?v=3","gravatar_id":"","url":"https://api.github.com/users/mozilla","html_url":"https://github.com/mozilla","followers_url":"https://api.github.com/users/mozilla/followers","following_url":"https://api.github.com/users/mozilla/following{/other_user}","gists_url":"https://api.github.com/users/mozilla/gists{/gist_id}","starred_url":"https://api.github.com/users/mozilla/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mozilla/subscriptions","organizations_url":"https://api.github.com/users/mozilla/orgs","repos_url":"https://api.github.com/users/mozilla/repos","events_url":"https://api.github.com/users/mozilla/events{/privacy}","received_events_url":"https://api.github.com/users/mozilla/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/mozilla/localForage","description":"Offline storage, improved. Wraps IndexedDB, WebSQL, or localStorage using a simple but powerful API.","fork":false,"url":"https://api.github.com/repos/mozilla/localForage","forks_url":"https://api.github.com/repos/mozilla/localForage/forks","keys_url":"https://api.github.com/repos/mozilla/localForage/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mozilla/localForage/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mozilla/localForage/teams","hooks_url":"https://api.github.com/repos/mozilla/localForage/hooks","issue_events_url":"https://api.github.com/repos/mozilla/localForage/issues/events{/number}","events_url":"https://api.github.com/repos/mozilla/localForage/events","assignees_url":"https://api.github.com/repos/mozilla/localForage/assignees{/user}","branches_url":"https://api.github.com/repos/mozilla/localForage/branches{/branch}","tags_url":"https://api.github.com/repos/mozilla/localForage/tags","blobs_url":"https://api.github.com/repos/mozilla/localForage/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mozilla/localForage/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mozilla/localForage/git/refs{/sha}","trees_url":"https://api.github.com/repos/mozilla/localForage/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mozilla/localForage/statuses/{sha}","languages_url":"https://api.github.com/repos/mozilla/localForage/languages","stargazers_url":"https://api.github.com/repos/mozilla/localForage/stargazers","contributors_url":"https://api.github.com/repos/mozilla/localForage/contributors","subscribers_url":"https://api.github.com/repos/mozilla/localForage/subscribers","subscription_url":"https://api.github.com/repos/mozilla/localForage/subscription","commits_url":"https://api.github.com/repos/mozilla/localForage/commits{/sha}","git_commits_url":"https://api.github.com/repos/mozilla/localForage/git/commits{/sha}","comments_url":"https://api.github.com/repos/mozilla/localForage/comments{/number}","issue_comment_url":"https://api.github.com/repos/mozilla/localForage/issues/comments{/number}","contents_url":"https://api.github.com/repos/mozilla/localForage/contents/{+path}","compare_url":"https://api.github.com/repos/mozilla/localForage/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mozilla/localForage/merges","archive_url":"https://api.github.com/repos/mozilla/localForage/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mozilla/localForage/downloads","issues_url":"https://api.github.com/repos/mozilla/localForage/issues{/number}","pulls_url":"https://api.github.com/repos/mozilla/localForage/pulls{/number}","milestones_url":"https://api.github.com/repos/mozilla/localForage/milestones{/number}","notifications_url":"https://api.github.com/repos/mozilla/localForage/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mozilla/localForage/labels{/name}","releases_url":"https://api.github.com/repos/mozilla/localForage/releases{/id}","created_at":"2013-10-31T00:10:06Z","updated_at":"2015-05-24T22:45:40Z","pushed_at":"2015-05-14T21:49:56Z","git_url":"git://github.com/mozilla/localForage.git","ssh_url":"git@github.com:mozilla/localForage.git","clone_url":"https://github.com/mozilla/localForage.git","svn_url":"https://github.com/mozilla/localForage","homepage":"https://mozilla.github.io/localForage","size":5255,"stargazers_count":4319,"watchers_count":4319,"language":"JavaScript","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":273,"mirror_url":null,"open_issues_count":70,"forks":273,"open_issues":70,"watchers":4319,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/mozilla/localForage/pulls/381"},"html":{"href":"https://github.com/mozilla/localForage/pull/381"},"issue":{"href":"https://api.github.com/repos/mozilla/localForage/issues/381"},"comments":{"href":"https://api.github.com/repos/mozilla/localForage/issues/381/comments"},"review_comments":{"href":"https://api.github.com/repos/mozilla/localForage/pulls/381/comments"},"review_comment":{"href":"https://api.github.com/repos/mozilla/localForage/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/mozilla/localForage/pulls/381/commits"},"statuses":{"href":"https://api.github.com/repos/mozilla/localForage/statuses/31828c4a050a3a0fef0f3a86e2ae0e5bef5bb305"}},"merged":false,"mergeable":null,"mergeable_state":"unknown","merged_by":null,"comments":0,"review_comments":0,"commits":1,"additions":45,"deletions":6,"changed_files":6}}