diff --git a/src/services/status_poster/status_poster.service.js b/src/services/status_poster/status_poster.service.js index 850993f7e7..bc1fd37d26 100644 --- a/src/services/status_poster/status_poster.service.js +++ b/src/services/status_poster/status_poster.service.js @@ -20,12 +20,23 @@ const uploadMedia = ({ store, formData }) => { const credentials = store.state.users.currentUser.credentials return apiService.uploadMedia({ credentials, formData }).then((xml) => { - return { + // Firefox and Chrome treat method differently... + let link = xml.getElementsByTagName('link') + + if (link.length === 0) { + link = xml.getElementsByTagName('atom:link') + } + + link = link[0] + + const mediaData = { id: xml.getElementsByTagName('media_id')[0].textContent, url: xml.getElementsByTagName('media_url')[0].textContent, - image: xml.getElementsByTagName('atom:link')[0].getAttribute('href'), - mimetype: xml.getElementsByTagName('atom:link')[0].getAttribute('type') + image: link.getAttribute('href'), + mimetype: link.getAttribute('type') } + + return mediaData }) }