Browse Source

Merge pull request #7130 from electron/windows-stdin-renderer

Add EOF process.stdin in  render process
Cheng Zhao 8 years ago
parent
commit
a0eccdfe1e
3 changed files with 37 additions and 19 deletions
  1. 0 8
      lib/browser/init.js
  2. 17 7
      lib/common/init.js
  3. 20 4
      spec/node-spec.js

+ 0 - 8
lib/browser/init.js

@@ -39,14 +39,6 @@ if (process.platform === 'win32') {
   }
   console.log = console.error = console.warn = consoleLog
   process.stdout.write = process.stderr.write = streamWrite
-
-  // Always returns EOF for stdin stream.
-  var Readable = require('stream').Readable
-  var stdin = new Readable()
-  stdin.push(null)
-  process.__defineGetter__('stdin', function () {
-    return stdin
-  })
 }
 
 // Don't quit on fatal error.

+ 17 - 7
lib/common/init.js

@@ -38,11 +38,21 @@ if (process.type === 'browser') {
   global.setInterval = wrapWithActivateUvLoop(timers.setInterval)
 }
 
-// If we're running as a Windows Store app, __dirname will be set
-// to C:/Program Files/WindowsApps.
-//
-// Nobody else get's to install there, changing the path is forbidden
-// We can therefore say that we're running as appx
-if (process.platform === 'win32' && __dirname.indexOf('\\Program Files\\WindowsApps\\') === 2) {
-  process.windowsStore = true
+if (process.platform === 'win32') {
+  // Always returns EOF for stdin stream.
+  const {Readable} = require('stream')
+  const stdin = new Readable()
+  stdin.push(null)
+  process.__defineGetter__('stdin', function () {
+    return stdin
+  })
+
+  // If we're running as a Windows Store app, __dirname will be set
+  // to C:/Program Files/WindowsApps.
+  //
+  // Nobody else get's to install there, changing the path is forbidden
+  // We can therefore say that we're running as appx
+  if (__dirname.indexOf('\\Program Files\\WindowsApps\\') === 2) {
+    process.windowsStore = true
+  }
 }

+ 20 - 4
spec/node-spec.js

@@ -221,12 +221,16 @@ describe('node feature', function () {
   })
 
   describe('process.stdout', function () {
-    it('should not throw exception', function () {
-      process.stdout
+    it('does not throw an exception when accessed', function () {
+      assert.doesNotThrow(function () {
+        process.stdout
+      })
     })
 
-    it('should not throw exception when calling write()', function () {
-      process.stdout.write('test')
+    it('does not throw an exception when calling write()', function () {
+      assert.doesNotThrow(function () {
+        process.stdout.write('test')
+      })
     })
 
     it('should have isTTY defined', function () {
@@ -236,6 +240,18 @@ describe('node feature', function () {
     })
   })
 
+  describe('process.stdin', function () {
+    it('does not throw an exception when accessed', function () {
+      assert.doesNotThrow(function () {
+        process.stdin
+      })
+    })
+
+    it('returns null when read from', function () {
+      assert.equal(process.stdin.read(), null)
+    })
+  })
+
   describe('process.version', function () {
     it('should not have -pre', function () {
       assert(!process.version.endsWith('-pre'))