Bug 1467858 - Add site thumbnail, router html and bug fixes to Activity Stream. r=k88hudson

MozReview-Commit-ID: FCL0cGMubbY
This commit is contained in:
Ed Lee
2018-06-08 11:51:53 -07:00
parent e9ab686714
commit c8b8e142b1
44 changed files with 4709 additions and 1839 deletions

View File

@@ -0,0 +1,50 @@
/**
* List of helper functions for screenshot-based images.
*
* There are two kinds of images:
* 1. Remote Image: This is the image from the main process and it refers to
* the image in the React props. This can either be an object with the `data`
* and `path` properties, if it is a blob, or a string, if it is a normal image.
* 2. Local Image: This is the image object in the content process and it refers
* to the image *object* in the React component's state. All local image
* objects have the `url` property, and an additional property `path`, if they
* are blobs.
*/
export const ScreenshotUtils = {
isBlob(isLocal, image) {
return !!(image && image.path && ((!isLocal && image.data) || (isLocal && image.url)));
},
// This should always be called with a remote image and not a local image.
createLocalImageObject(remoteImage) {
if (!remoteImage) {
return null;
}
if (this.isBlob(false, remoteImage)) {
return {url: global.URL.createObjectURL(remoteImage.data), path: remoteImage.path};
}
return {url: remoteImage};
},
// Revokes the object URL of the image if the local image is a blob.
// This should always be called with a local image and not a remote image.
maybeRevokeBlobObjectURL(localImage) {
if (this.isBlob(true, localImage)) {
global.URL.revokeObjectURL(localImage.url);
}
},
// Checks if remoteImage and localImage are the same.
isRemoteImageLocal(localImage, remoteImage) {
// Both remoteImage and localImage are present.
if (remoteImage && localImage) {
return this.isBlob(false, remoteImage) ?
localImage.path === remoteImage.path :
localImage.url === remoteImage;
}
// This will only handle the remaining three possible outcomes.
// (i.e. everything except when both image and localImage are present)
return !remoteImage && !localImage;
}
};