Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(158)

Unified Diff: ui/file_manager/file_manager/foreground/elements/files_safe_media.js

Issue 2181953003: Improved security of Quick View by rendering videos and audios inside webview. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Nit Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: ui/file_manager/file_manager/foreground/elements/files_safe_media.js
diff --git a/ui/file_manager/file_manager/foreground/elements/files_safe_img.js b/ui/file_manager/file_manager/foreground/elements/files_safe_media.js
similarity index 62%
copy from ui/file_manager/file_manager/foreground/elements/files_safe_img.js
copy to ui/file_manager/file_manager/foreground/elements/files_safe_media.js
index cc476370f796805a1e66b55cc9cbe288cc0fe7e2..beaf05f693d9cced947ec9294942e6ffc0b4c44a 100644
--- a/ui/file_manager/file_manager/foreground/elements/files_safe_img.js
+++ b/ui/file_manager/file_manager/foreground/elements/files_safe_media.js
@@ -5,13 +5,13 @@
var FILES_APP_ORIGIN = 'chrome-extension://hhaomjibdihmijegdhdafkllkbggdgoj';
/**
- * Polymer element to render an image securely inside webview.
- * When tapped, files-safe-img-tap-inside or
- * files-safe-img-tap-outside events are fired depending on the position
+ * Polymer element to render a media securely inside webview.
+ * When tapped, files-safe-media-tap-inside or
+ * files-safe-media-tap-outside events are fired depending on the position
* of the tap.
*/
-var FilesSafeImg = Polymer({
- is: 'files-safe-img',
+var FilesSafeMedia = Polymer({
+ is: 'files-safe-media',
properties: {
// URL accessible from webview.
@@ -19,11 +19,32 @@ var FilesSafeImg = Polymer({
type: String,
observer: 'onSrcChange_',
reflectToAttribute: true
+ },
+ type: {
+ type: String,
+ readonly: true,
}
},
listeners: {'src-changed': 'onSrcChange_'},
+ /**
+ * @return {string}
+ */
+ sourceFile_: function() {
+ switch (this.type) {
+ case 'image':
+ return 'foreground/elements/files_safe_img_webview_content.html';
+ case 'audio':
+ return 'foreground/elements/files_safe_audio_webview_content.html';
+ case 'video':
+ return 'foreground/elements/files_safe_video_webview_content.html';
+ default:
+ console.error('Unsupported type: ' + this.type);
+ return '';
+ }
+ },
+
onSrcChange_: function() {
if (!this.src && this.webview_) {
// Remove webview to clean up unnecessary processes.
@@ -38,7 +59,7 @@ var FilesSafeImg = Polymer({
Polymer.dom(this.$.content).appendChild(webview);
webview.addEventListener(
'contentload', this.onSrcChange_.bind(this));
- webview.src = 'foreground/elements/files_safe_img_webview_content.html';
+ webview.src = this.sourceFile_();
} else if (this.src && this.webview_.contentWindow) {
this.webview_.contentWindow.postMessage(this.src, FILES_APP_ORIGIN);
}
@@ -54,13 +75,13 @@ var FilesSafeImg = Polymer({
ready: function() {
window.addEventListener('message', function(event) {
if (event.origin !== FILES_APP_ORIGIN) {
- console.error('Unknown origin.');
+ console.log('Unknown origin.');
return;
}
if (event.data === 'tap-inside') {
- this.fire('files-safe-img-tap-inside');
+ this.fire('files-safe-media-tap-inside');
} else if (event.data === 'tap-outside') {
- this.fire('files-safe-img-tap-outside');
+ this.fire('files-safe-media-tap-outside');
}
}.bind(this));
}

Powered by Google App Engine
This is Rietveld 408576698