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

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

Issue 995343002: Integrate iOS specific changes in the core domdistiller.js (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
« no previous file with comments | « no previous file | components/dom_distiller/ios/javascript/domdistiller.js » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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() {
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 var context = Object.create(window); 17 <if expr="is_ios">
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>
18 context.setTimeout = function() {}; 27 context.setTimeout = function() {};
19 context.clearTimeout = function() {}; 28 context.clearTimeout = function() {};
20 initialize(context); 29 initialize(context);
21 30
22 // The OPTIONS placeholder will be replaced with the DomDistillerOptions at 31 // The OPTIONS placeholder will be replaced with the DomDistillerOptions at
23 // runtime. 32 // runtime.
24 var distiller = context.org.chromium.distiller.DomDistiller; 33 var distiller = context.org.chromium.distiller.DomDistiller;
25 var res = distiller.applyWithOptions($$OPTIONS); 34 var res = distiller.applyWithOptions($$OPTIONS);
35 <if expr="is_ios">
36 // UIWebView requires javascript to return a single string value.
37 return JSON.stringify(res);
38 </if>
39 <if expr="not is_ios">
26 return res; 40 return res;
41 </if>
27 } catch (e) { 42 } catch (e) {
28 window.console.error("Error during distillation: " + e); 43 window.console.error("Error during distillation: " + e);
29 if (e.stack != undefined) window.console.error(e.stack); 44 if (e.stack != undefined) window.console.error(e.stack);
30 } 45 }
31 return undefined; 46 return undefined;
32 })() 47 })()
OLDNEW
« no previous file with comments | « no previous file | components/dom_distiller/ios/javascript/domdistiller.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698