Browse Source

Fix printing with the sandbox enabled

Closes #7984
Geoff Lywood 8 years ago
parent
commit
5345b08d24
2 changed files with 22 additions and 0 deletions
  1. 2 0
      atom/renderer/atom_sandboxed_renderer_client.cc
  2. 20 0
      spec/api-browser-window-spec.js

+ 2 - 0
atom/renderer/atom_sandboxed_renderer_client.cc

@@ -15,6 +15,7 @@
 #include "atom/renderer/api/atom_api_renderer_ipc.h"
 #include "atom/renderer/atom_render_view_observer.h"
 #include "base/command_line.h"
+#include "chrome/renderer/printing/print_web_view_helper.h"
 #include "content/public/renderer/render_frame.h"
 #include "content/public/renderer/render_frame_observer.h"
 #include "content/public/renderer/render_view.h"
@@ -126,6 +127,7 @@ void AtomSandboxedRendererClient::RenderFrameCreated(
 
 void AtomSandboxedRendererClient::RenderViewCreated(
     content::RenderView* render_view) {
+  new printing::PrintWebViewHelper(render_view);
   new AtomSandboxedRenderViewObserver(render_view, this);
 }
 

+ 20 - 0
spec/api-browser-window-spec.js

@@ -943,6 +943,26 @@ describe('browser-window module', function () {
           w.loadURL('file://' + path.join(fixtures, 'api', 'sandbox.html?webcontents-events'))
         })
       })
+
+      it('can print to PDF', function (done) {
+        w.destroy()
+        w = new BrowserWindow({
+          show: false,
+          webPreferences: {
+            sandbox: true,
+            preload: preload
+          }
+        })
+        w.loadURL('data:text/html,%3Ch1%3EHello%2C%20World!%3C%2Fh1%3E')
+        w.webContents.once('did-finish-load', function () {
+          w.webContents.printToPDF({}, function (error, data) {
+            assert.equal(error, null)
+            assert.equal(data instanceof Buffer, true)
+            assert.notEqual(data.length, 0)
+            done()
+          })
+        })
+      })
     })
   })