Merge Chromium + Blink git repositories
[chromium-blink-merge.git] / components / dom_distiller / core / javascript / domdistiller.js
blob1d91f23cec1c71eafd8e9ff7d4c95fc64b8a242d
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
3 // found in the LICENSE file.
5 // Applies DomDistillerJs to the content of the page and returns a
6 // DomDistillerResults (as a javascript object/dict).
7 (function(options, stringify_output, use_new_context) {
8   try {
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
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.
13     function initialize(window) {
14       // This include will be processed at build time by grit.
15       <include src="../../../../third_party/dom_distiller_js/dist/js/domdistiller.js"/>
16     }
17     var context = use_new_context ? Object.create(window) : window
18     context.setTimeout = function() {};
19     context.clearTimeout = function() {};
20     initialize(context);
22     // The OPTIONS placeholder will be replaced with the DomDistillerOptions at
23     // runtime.
24     var distiller = context.org.chromium.distiller.DomDistiller;
25     var res = distiller.applyWithOptions(options);
27     if (stringify_output) {
28       return JSON.stringify(res);
29     }
30     return res;
31   } catch (e) {
32     window.console.error("Error during distillation: " + e);
33     if (e.stack != undefined) window.console.error(e.stack);
34   }
35   return undefined;
36 })(options = $$OPTIONS,
37    stringify_output = $$STRINGIFY,
38    use_new_context = $$NEW_CONTEXT)