| OLD | NEW |
| (Empty) |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | |
| 2 // Use of this source code is governed by a BSD-style license that can be | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 goog.require('image.collections.extension.domextractor.DocumentImageExtractor'); | |
| 6 | |
| 7 /* | |
| 8 * Examines the DOM to find the image that is the most representative of the | |
| 9 * webpage. | |
| 10 */ | |
| 11 var GetSalientImageUrl = function() { | |
| 12 // Extract the referrer policy from the page. | |
| 13 var referrerPolicy = 'default'; | |
| 14 var metaTags = document.getElementsByTagName('meta'); | |
| 15 for (var i = 0; i < metaTags.length; i++) { | |
| 16 if (metaTags[i].name.toLowerCase() == 'referrer') { | |
| 17 referrerPolicy = metaTags[i].content.toLowerCase(); | |
| 18 break; | |
| 19 } | |
| 20 } | |
| 21 | |
| 22 // Determine which JSON method (stringify or encode) to use for encoding. | |
| 23 // Some pages use a library that overrides JSON, so JSON['stringify'] is not | |
| 24 // always available. | |
| 25 var jsonEncoder = JSON['stringify']; | |
| 26 if (!jsonEncoder) | |
| 27 jsonEncoder = JSON['encode']; | |
| 28 | |
| 29 var context = new | |
| 30 image.collections.extension.domextractor.DocumentImageExtractor.Context(); | |
| 31 var documentImageExtractor = | |
| 32 new image.collections.extension.domextractor.DocumentImageExtractor(); | |
| 33 var images = documentImageExtractor.extractFromNodeList( | |
| 34 document.querySelectorAll('img,link,meta'), context); | |
| 35 | |
| 36 var maxImage = null; | |
| 37 var maxRelevance = 0; | |
| 38 for (var i = 0; i < images.length; i++) { | |
| 39 var currentImage = images[i]; | |
| 40 var imageSize = currentImage.getSize(); | |
| 41 if (!imageSize) | |
| 42 continue; | |
| 43 | |
| 44 if (currentImage.getRelevance() > maxRelevance) { | |
| 45 maxImage = currentImage; | |
| 46 maxRelevance = currentImage.getRelevance(); | |
| 47 } | |
| 48 } | |
| 49 | |
| 50 if (maxImage === null) | |
| 51 return ''; | |
| 52 | |
| 53 var result = jsonEncoder({ | |
| 54 'imageUrl': maxImage.getUrl(), | |
| 55 'referrerPolicy': referrerPolicy | |
| 56 }); | |
| 57 | |
| 58 return result; | |
| 59 }; | |
| OLD | NEW |