X-Git-Url: http://git.roojs.org/?p=app.webkitpdf;a=blobdiff_plain;f=BrowserView.js;h=97b656a4e588e6e3d0812439504bd0bc491c0f69;hp=60b9f1fcadbb9895fad43f3676ac76d99c22c9dc;hb=674d7c0892acbf9e8ccf30744537f59014ce59d4;hpb=261f710faeba2e19defe09ba88e9137e8cbd6421 diff --git a/BrowserView.js b/BrowserView.js index 60b9f1f..97b656a 100644 --- a/BrowserView.js +++ b/BrowserView.js @@ -1,6 +1,7 @@ Gtk = imports.gi.Gtk; GLib = imports.gi.GLib; WebKit = imports.gi.WebKit; +Soup = imports.gi.Soup; TabbedBrowser = imports.TabbedBrowser; BrowserSettings = imports.BrowserSettings; @@ -17,7 +18,8 @@ BrowserView = new GType({ { // Private - + var sess = WebKit.get_default_session(); + sess.proxy_uri = new Soup.URI.c_new('http://localhost:3128'); var _t = this; var tab = BrowserTab; @@ -42,7 +44,7 @@ BrowserView = new GType({ var traversedom = function(doc, fn, sub ) { - //print("TRAVERSE DOM?"); + print("TRAVERSE DOM?"); sub = sub || 0; var ret = ''; @@ -264,86 +266,126 @@ BrowserView = new GType({ var load_finished_called = false; + var done_print = false; + var queue_print = -1; + + + var load_started = function(fr) + { + print("load started"); + queue_print++; + } + var do_print = function(web_frame) { - + + var realprint = function() { + print("realprint called - queue is " + queue_print); + if (queue_print > 0) { + print("ignore print - queue is " + queue_print); + queue_print--; + return; + } + + try { + + if (current_url.match(/theindependent\.sg\//) ) { + TabbedBrowser.browser.current_tab().get_web_view().execute_script( + File.read( __script_path__ + "/domains/theindependent.sg.js") + ); + + } + print("FETCHING"); + //print(web_frame); + if (web_frame && BrowserSettings.export_filename_html ) { + var html = traversedom(web_frame.get_dom_document(), BrowserSettings.export_filename_html); + //File.write(BrowserSettings.export_filename_html, html); + + } + + if (!BrowserSettings.export_filename) { + if (!BrowserSettings.export_filename_html) { + print("no export filename / and html filename"); + return; + } + + Seed.quit(); + } + var mf = _t.get_main_frame(); + + print("Creating paper"); + var ar = Gtk.PaperSize.get_paper_sizes(); + var psetup = new Gtk.PageSetup(); + for(var i = 0; i < ar.length; i++) { + if (ar[i].get_name() =='iso_a2') { + psetup.set_paper_size(ar[i]); + } + } + print("doing print operation"); + var p = new Gtk.PrintOperation({ export_filename : BrowserSettings.export_filename }); + print("doing print operation - set page"); + + p.set_default_page_setup(psetup); + + print("doing print operation - print_full"); + mf.print_full(p, Gtk.PrintOperationAction.EXPORT); + print("made image - exiting"); + + Seed.quit(); + return true; + } catch(e) { + print("error occured"); + print(JSON.stringify(e)); + } + }; + - var scr_a = " var r = document.getElementsByTagName('link');" + - "for (var i=0;i < r.length;i++) { " + - "var a = r[i]; " + - "if ( a.getAttribute('media') == '') { continue; } " + - "if ( a.getAttribute('media') == 'screen') { "+ - "a.removeAttribute('media'); continue;" + - "} " + - //"a.parentNode.removeChild(a);" + - "}"; - var scr_b = "var a = document.body.querySelectorAll('*'); "+ - "var dnodes=[]; "+ - "for(var i =i;i