domains/remove_print_css.js
[app.webkitpdf] / webkitpdf.vala
index 2f38ce3..e9ececc 100644 (file)
@@ -2,6 +2,11 @@
 /*
  sudo valac   --vapidir=. --thread  webkitpdf.vala  BrowserWindow.vala  --vapidir=./vapi \
     --pkg glib-2.0 --pkg webkit-1.0 --pkg gtk+-2.0 -o /usr/bin/webkitpdf --target-glib=2.32 
+  
+ sudo valac -D GTK3  --vapidir=. --thread  webkitpdf.vala  BrowserWindow.vala  --vapidir=./vapi \
+    --pkg glib-2.0 --pkg webkit2gtk-4.0 --pkg gtk+-3.0 --pkg gio-2.0 -o /usr/bin/webkitpdf2 --target-glib=2.32 
+  
+  
     
 */
 public class webkitpdf {
@@ -14,6 +19,8 @@ public class webkitpdf {
        public static string? opt_target_pdf = null;    
        [CCode (array_length = false, array_null_terminated = true)]
        public static string[] opt_inject_js;
+       public static string? opt_cookies = null;
+       
        const OptionEntry[] options = {
                
                        { "width", 0, 0, OptionArg.INT, ref opt_width, "Width (default 1200)", null },                  
@@ -23,40 +30,30 @@ public class webkitpdf {
                        { "png", 0, 0, OptionArg.STRING, ref opt_target_png, "File to write (PNG)", null },
                        { "inject", 0, 0, OptionArg.STRING_ARRAY, ref opt_inject_js, "Inject Javascript file(s)", null },
                        { "pdf", 0, 0, OptionArg.STRING, ref opt_target_pdf, "File to write (PDF)", null },
+                       { "cookies", 0, 0, OptionArg.STRING, ref opt_cookies, "Inject Cookie string", null },
                        { null }
        }; 
     public static int main(string[] args) 
     {
         Gtk.init(ref args);
-                
+               
+               
+#if GTK3               
+       // this is a horrific hack from https://bugs.webkit.org/show_bug.cgi?id=128674
+               Environment.unset_variable("GNOME_DESKTOP_SESSION_ID");
+               Environment.unset_variable("DESKTOP_SESSION");          
+               // it should now fallb ack to http prox!?
+               
+               
+#else
                unowned string proxy = Environment.get_variable ("http_proxy");
                if (proxy != null && proxy.length > 0) {
                        var sess = WebKit.get_default_session();
                        sess.proxy_uri = new Soup.URI(proxy);
                }
-               
+#endif         
         var opt_context = new OptionContext ("webkitpdf");
        
-        """
-        Width: %d
-        Height: %d
-        URL: %s
-        Delay: %d
-        png: %s
-        inject: %s
-        PDF: %s
-        
-        """.printf(
-          opt_width,
-          opt_height,
-          opt_url,
-          opt_delay,
-          opt_png == null ? '--empty--' : '',
-          opt_inject == null ? '--empty--' : '',
-          opt_pdf == null ? '--empty--' : ''
-        
-        );
-       
                
                try {
                        opt_context.set_help_enabled (true);
@@ -70,6 +67,28 @@ public class webkitpdf {
                 throw new OptionError.BAD_VALUE("missing pdf or png filename");
             }
             
+        
+            stdout.printf ( """Width: %d
+            Height: %d
+            URL: %s
+            Delay: %d
+            png: %s
+            inject: %s
+            PDF: %s
+            Cookie: %s
+            """,
+              opt_width,
+              opt_height,
+              opt_url,
+              (int) opt_delay,
+              opt_target_png == null ? "--empty--" : opt_target_png,
+              opt_inject_js.length < 1? "--empty--" : string.joinv(", ", opt_inject_js),
+              opt_target_pdf == null ? "--empty--" : opt_target_pdf,
+              opt_cookies == null ? "--empty--" : opt_cookies              
+              
+            
+            );
+            
 
                } catch (OptionError e) {
                        stdout.printf ("error: %s\n", e.message);