Browse Source

fix: suppress insecure resource warning for more local hostnames (#31037)

trop[bot] 3 years ago
parent
commit
6297655df6
3 changed files with 8 additions and 3 deletions
  1. 6 2
      lib/renderer/security-warnings.ts
  2. 1 0
      spec-main/index.js
  3. 1 1
      spec-main/security-warnings-spec.ts

+ 6 - 2
lib/renderer/security-warnings.ts

@@ -103,10 +103,14 @@ const warnAboutInsecureResources = function () {
     return;
   }
 
+  const isLocal = (url: URL): boolean =>
+    ['localhost', '127.0.0.1', '[::1]', ''].includes(url.hostname);
+  const isInsecure = (url: URL): boolean =>
+    ['http:', 'ftp:'].includes(url.protocol) && !isLocal(url);
+
   const resources = window.performance
     .getEntriesByType('resource')
-    .filter(({ name }) => /^(http|ftp):/gi.test(name || ''))
-    .filter(({ name }) => new URL(name).hostname !== 'localhost')
+    .filter(({ name }) => isInsecure(new URL(name)))
     .map(({ name }) => `- ${name}`)
     .join('\n');
 

+ 1 - 0
spec-main/index.js

@@ -30,6 +30,7 @@ app.on('window-all-closed', () => null);
 
 // Use fake device for Media Stream to replace actual camera and microphone.
 app.commandLine.appendSwitch('use-fake-device-for-media-stream');
+app.commandLine.appendSwitch('host-rules', 'MAP localhost2 127.0.0.1');
 
 global.standardScheme = 'app';
 global.zoomScheme = 'zoom';

+ 1 - 1
spec-main/security-warnings-spec.ts

@@ -59,7 +59,7 @@ describe('security warnings', () => {
         });
       });
     }).listen(0, '127.0.0.1', () => {
-      serverUrl = `http://127.0.0.1:${(server.address() as AddressInfo).port}`;
+      serverUrl = `http://localhost2:${(server.address() as AddressInfo).port}`;
       done();
     });
   });