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

Side by Side Diff: components/dom_distiller/core/javascript/domdistiller.js

Issue 1004223002: Pass more information by argument to the dom_distiller script. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 9 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
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // Applies DomDistillerJs to the content of the page and returns a 5 // Applies DomDistillerJs to the content of the page and returns a
6 // DomDistillerResults (as a javascript object/dict). 6 // DomDistillerResults (as a javascript object/dict).
7 (function() { 7 (function(options, stringify_output, use_new_context) {
8 try { 8 try {
9 // The generated domdistiller.js accesses the window object only explicitly 9 // The generated domdistiller.js accesses the window object only explicitly
10 // via the window name. So, we create a new object with the normal window 10 // via the window name. So, we create a new object with the normal window
11 // object as its prototype and initialize the domdistiller.js with that new 11 // object as its prototype and initialize the domdistiller.js with that new
12 // context so that it doesn't change the real window object. 12 // context so that it doesn't change the real window object.
13 function initialize(window) { 13 function initialize(window) {
14 // This include will be processed at build time by grit. 14 // This include will be processed at build time by grit.
15 <include src="../../../../third_party/dom_distiller_js/package/js/domdisti ller.js"/> 15 <include src="../../../../third_party/dom_distiller_js/package/js/domdisti ller.js"/>
16 } 16 }
17 <if expr="is_ios"> 17 var context = use_new_context ? Object.create(window) : window
18 // UIWebView's JavaScript engine has a bug that causes crashes when
19 // creating a separate window object, so allow the script to run directly
20 // in the window until a better solution is created.
21 // TODO(kkhorimoto): investigate whether this is necessary for WKWebView.
22 var context = window;
23 </if>
24 <if expr="not is_ios">
25 var context = Object.create(window);
26 </if>
27 context.setTimeout = function() {}; 18 context.setTimeout = function() {};
28 context.clearTimeout = function() {}; 19 context.clearTimeout = function() {};
29 initialize(context); 20 initialize(context);
30 21
31 // The OPTIONS placeholder will be replaced with the DomDistillerOptions at 22 // The OPTIONS placeholder will be replaced with the DomDistillerOptions at
32 // runtime. 23 // runtime.
33 var distiller = context.org.chromium.distiller.DomDistiller; 24 var distiller = context.org.chromium.distiller.DomDistiller;
34 var res = distiller.applyWithOptions($$OPTIONS); 25 var res = distiller.applyWithOptions(options);
35 <if expr="is_ios"> 26
36 // UIWebView requires javascript to return a single string value. 27 if (stringify_output) {
37 return JSON.stringify(res); 28 return JSON.stringify(res);
38 </if> 29 }
39 <if expr="not is_ios">
40 return res; 30 return res;
41 </if>
42 } catch (e) { 31 } catch (e) {
43 window.console.error("Error during distillation: " + e); 32 window.console.error("Error during distillation: " + e);
44 if (e.stack != undefined) window.console.error(e.stack); 33 if (e.stack != undefined) window.console.error(e.stack);
45 } 34 }
46 return undefined; 35 return undefined;
47 })() 36 })(options = $$OPTIONS,
37 stringify_output = $$STRINGIFY,
38 use_new_context = $$NEW_CONTEXT)
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698