Skip to content
This repository was archived by the owner on Dec 15, 2022. It is now read-only.

Commit 2ba093f

Browse files
author
Winston Liu
authored
Merge pull request #1087 from maralv/master
🐛 Fix base64 encoded image viewing in package README files.
2 parents ce1c958 + fec6b30 commit 2ba093f

3 files changed

Lines changed: 7 additions & 0 deletions

File tree

lib/package-readme-view.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,11 @@ function sanitize (html, readmeSrc) {
2323
changeImageSrc = false
2424
}
2525

26+
// If src contains a base64 encoded image it must be left unchanged
27+
if (/^data:image\/.*;base64/i.test(imageSrc)) {
28+
changeImageSrc = false;
29+
}
30+
2631
// If path is absolute on file system it must be a local file, e.g. emoji
2732
if (path.isAbsolute(imageSrc)) {
2833
changeImageSrc = false

spec/fixtures/package-with-readme/README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ I am a Readme!
66

77
![AbsoluteImage](https://example.com/static/image.jpg)
88
![RelativeImage](static/image.jpg)
9+
![Base64Image](data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==)
910

1011
<script>alert('oh, hai');</script>
1112
<iframe src="https://atom.io"></iframe>

spec/package-detail-view-spec.coffee

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,7 @@ describe "PackageDetailView", ->
9393
expect(view.element.querySelectorAll('.package-readme input[type="checkbox"][disabled]').length).toBe(2)
9494
expect(view.element.querySelector('img[alt="AbsoluteImage"]').getAttribute('src')).toBe('https://example.com/static/image.jpg')
9595
expect(view.element.querySelector('img[alt="RelativeImage"]').getAttribute('src')).toBe('https://github.com/example/package-with-readme/blob/master/static/image.jpg')
96+
expect(view.element.querySelector('img[alt="Base64Image"]').getAttribute('src')).toBe('data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==')
9697

9798
it "renders the README when the package path is undefined", ->
9899
atom.packages.loadPackage(path.join(__dirname, 'fixtures', 'package-with-readme'))

0 commit comments

Comments
 (0)