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

Side by Side Diff: components/resources/enhanced_bookmarks/get_salient_image_url.js

Issue 1153283005: Revert "Revert of Refactor get_salient_image_url.js to use DocumentImageExtractor" (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add closure_out_dir var to components/resources/enhanced_bookmarks/BUILD.gn Created 5 years, 6 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 unified diff | Download patch
OLDNEW
(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 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698