Skip to content
This repository has been archived by the owner on Sep 29, 2023. It is now read-only.

On macOS, main window cannot be activate if closed without --fast-quit option #1415

Closed
4 tasks done
spywhere opened this issue May 25, 2022 · 0 comments · Fixed by #1417
Closed
4 tasks done

On macOS, main window cannot be activate if closed without --fast-quit option #1415

spywhere opened this issue May 25, 2022 · 0 comments · Fixed by #1417

Comments

@spywhere
Copy link
Contributor

Homework

Bug description

On macOS, main window cannot be activate if closed without `--fast-quit`` option. This was due to undefined mainWindow variable.

Steps to reproduce

nativefier --verbose 'https://mail.proton.me' -n 'ProtonMail' --background-color '#1C1B23' --counter --title-bar-style hidden --disable-context-menu --darwin-dark-mode-support
Running in verbose mode! This will produce a mountain of logs and is recommended only for troubleshooting or if you like Shakespeare.


    Hi! Nativefier is minimally maintained these days, and needs more hands.
    If you have the time & motivation, help with bugfixes and maintenance is VERY welcome.
    Please go to https://github.com/nativefier/nativefier and help how you can. Thanks.



Processing options...
rawOptions {
  _: [ 'https://mail.proton.me' ],
  verbose: true,
  n: 'ProtonMail',
  name: 'ProtonMail',
  'background-color': '#1C1B23',
  backgroundColor: '#1C1B23',
  counter: true,
  'title-bar-style': 'hidden',
  titleBarStyle: 'hidden',
  'disable-context-menu': true,
  disableContextMenu: true,
  'darwin-dark-mode-support': true,
  darwinDarkModeSupport: true,
  c: false,
  conceal: false,
  'no-overwrite': false,
  noOverwrite: false,
  overwrite: true,
  portable: false,
  widevine: false,
  'always-on-top': false,
  alwaysOnTop: false,
  'disable-dev-tools': false,
  disableDevTools: false,
  'full-screen': false,
  fullScreen: false,
  'hide-window-frame': false,
  hideWindowFrame: false,
  m: false,
  'show-menu-bar': false,
  showMenuBar: false,
  maximize: false,
  'single-instance': false,
  singleInstance: false,
  tray: 'false',
  zoom: 1,
  'user-agent-honest': false,
  honest: false,
  userAgentHonest: false,
  'clear-cache': false,
  clearCache: false,
  'block-external-urls': false,
  blockExternalUrls: false,
  'strict-internal-urls': false,
  strictInternalUrls: false,
  'disable-gpu': false,
  disableGpu: false,
  'enable-es3-apis': false,
  enableEs3Apis: false,
  'ignore-gpu-blacklist': false,
  ignoreGpuBlacklist: false,
  'disable-old-build-warning-yesiknowitisinsecure': false,
  disableOldBuildWarningYesiknowitisinsecure: false,
  'ignore-certificate': false,
  ignoreCertificate: false,
  insecure: false,
  flash: false,
  bounce: false,
  f: false,
  'fast-quit': false,
  fastQuit: false,
  quiet: false,
  '$0': 'nativefier',
  targetUrl: 'https://mail.proton.me',
  out: undefined
}
Inferred arch arm64
Normalized URL https://mail.proton.me to: https://mail.proton.me/
Running in verbose mode! This will produce a mountain of logs and is recommended only for troubleshooting or if you like Shakespeare.
Inferred platform darwin

Performing async options post-processing.
Inferring icon for https://mail.proton.me/ on darwin
Inferring icon from store for https://mail.proton.me/ on darwin
Allowed icon formats when building for darwin: [ '.icns' ]
Sanitized filename for ProtonMail : ProtonMail
Got 246 icons from gitcloud
Max icon match score: 0
No relevant icon in store.
Trying to extract a .png icon from the page.
Got an icon from the page.
Writing 47.1 kb icon to /var/folders/7r/8p8cqwhd3q577d3x51t1yzm40000gn/T/nativefier-2-25-1-iconinfer--46510-92mkN4kHhMHS/icon.png
options {
  packager: {
    appCopyright: undefined,
    appVersion: undefined,
    arch: 'arm64',
    asar: false,
    buildVersion: undefined,
    darwinDarkModeSupport: true,
    dir: '/opt/homebrew/Cellar/nativefier/47.1.3/libexec/lib/node_modules/nativefier/app',
    electronVersion: '18.2.0',
    icon: '/var/folders/7r/8p8cqwhd3q577d3x51t1yzm40000gn/T/nativefier-2-25-1-iconinfer--46510-92mkN4kHhMHS/icon.png',
    name: 'ProtonMail',
    out: '/Users/spywhere',
    overwrite: true,
    quiet: false,
    platform: 'darwin',
    portable: false,
    targetUrl: 'https://mail.proton.me/',
    tmpdir: false,
    upgrade: false,
    upgradeFrom: undefined,
    win32metadata: {
      ProductName: 'ProtonMail',
      InternalName: 'ProtonMail',
      FileDescription: 'ProtonMail'
    }
  },
  nativefier: {
    accessibilityPrompt: true,
    alwaysOnTop: false,
    backgroundColor: '#1C1B23',
    basicAuthPassword: undefined,
    basicAuthUsername: undefined,
    blockExternalUrls: false,
    bookmarksMenu: undefined,
    bounce: false,
    browserwindowOptions: undefined,
    clearCache: false,
    counter: true,
    crashReporter: undefined,
    disableContextMenu: true,
    disableDevTools: false,
    disableGpu: false,
    diskCacheSize: undefined,
    disableOldBuildWarning: false,
    enableEs3Apis: false,
    fastQuit: false,
    fileDownloadOptions: undefined,
    flashPluginDir: undefined,
    fullScreen: false,
    globalShortcuts: undefined,
    hideWindowFrame: false,
    ignoreCertificate: false,
    ignoreGpuBlacklist: false,
    inject: [],
    insecure: false,
    internalUrls: undefined,
    lang: undefined,
    maximize: false,
    nativefierVersion: '47.1.3',
    quiet: false,
    processEnvs: undefined,
    proxyRules: undefined,
    showMenuBar: false,
    singleInstance: false,
    strictInternalUrls: false,
    titleBarStyle: 'hidden',
    tray: 'false',
    userAgent: undefined,
    userAgentHonest: false,
    verbose: true,
    versionString: undefined,
    width: 1280,
    height: 800,
    minWidth: undefined,
    minHeight: undefined,
    maxWidth: undefined,
    maxHeight: undefined,
    widevine: false,
    x: undefined,
    y: undefined,
    zoom: 1
  }
}

Preparing Electron app...
Copying electron app from /opt/homebrew/Cellar/nativefier/47.1.3/libexec/lib/node_modules/nativefier/app to /var/folders/7r/8p8cqwhd3q577d3x51t1yzm40000gn/T/nativefier-2-25-1-app--46510-M9XVJJPwD3jW
Writing app config to /var/folders/7r/8p8cqwhd3q577d3x51t1yzm40000gn/T/nativefier-2-25-1-app--46510-M9XVJJPwD3jW/nativefier.json {
  accessibilityPrompt: true,
  alwaysOnTop: false,
  appBundleId: undefined,
  appCategoryType: undefined,
  appCopyright: undefined,
  appVersion: undefined,
  arch: 'arm64',
  asar: false,
  backgroundColor: '#1C1B23',
  basicAuthPassword: undefined,
  basicAuthUsername: undefined,
  blockExternalUrls: false,
  bounce: false,
  browserwindowOptions: undefined,
  buildDate: 1653506707635,
  buildVersion: undefined,
  clearCache: false,
  counter: true,
  crashReporter: undefined,
  darwinDarkModeSupport: true,
  derefSymlinks: undefined,
  disableContextMenu: true,
  disableDevTools: false,
  disableGpu: false,
  disableOldBuildWarning: false,
  diskCacheSize: undefined,
  download: undefined,
  electronVersionUsed: '18.2.0',
  enableEs3Apis: false,
  executableName: undefined,
  fastQuit: false,
  fileDownloadOptions: undefined,
  flashPluginDir: undefined,
  fullScreen: false,
  globalShortcuts: undefined,
  height: 800,
  helperBundleId: undefined,
  hideWindowFrame: false,
  ignoreCertificate: false,
  ignoreGpuBlacklist: false,
  insecure: false,
  internalUrls: undefined,
  isUpgrade: false,
  junk: undefined,
  lang: undefined,
  maximize: false,
  maxHeight: undefined,
  maxWidth: undefined,
  minHeight: undefined,
  minWidth: undefined,
  name: 'ProtonMail',
  nativefierVersion: '47.1.3',
  osxNotarize: undefined,
  osxSign: undefined,
  portable: false,
  processEnvs: undefined,
  protocols: undefined,
  proxyRules: undefined,
  prune: undefined,
  quiet: false,
  showMenuBar: false,
  singleInstance: false,
  strictInternalUrls: false,
  targetUrl: 'https://mail.proton.me/',
  titleBarStyle: 'hidden',
  tray: 'false',
  usageDescription: undefined,
  userAgent: undefined,
  userAgentHonest: false,
  versionString: undefined,
  width: 1280,
  widevine: false,
  win32metadata: {
    ProductName: 'ProtonMail',
    InternalName: 'ProtonMail',
    FileDescription: 'ProtonMail'
  },
  x: undefined,
  y: undefined,
  zoom: 1,
  oldBuildWarningText: ''
}
No files to inject, skipping copy.
Updating /var/folders/7r/8p8cqwhd3q577d3x51t1yzm40000gn/T/nativefier-2-25-1-app--46510-M9XVJJPwD3jW/package.json 'name' field to protonmail-nativefier-2572fe

Converting icons...
Converting icon /var/folders/7r/8p8cqwhd3q577d3x51t1yzm40000gn/T/nativefier-2-25-1-iconinfer--46510-92mkN4kHhMHS/icon.png to /var/folders/7r/8p8cqwhd3q577d3x51t1yzm40000gn/T/nativefier-2-25-1-iconconv--46510-RhdP9M1Lz4ln/icon.icns. Calling shell command: "/opt/homebrew/Cellar/nativefier/47.1.3/libexec/lib/node_modules/nativefier/icon-scripts/convertToIcns" "/var/folders/7r/8p8cqwhd3q577d3x51t1yzm40000gn/T/nativefier-2-25-1-iconinfer--46510-92mkN4kHhMHS/icon.png" "/var/folders/7r/8p8cqwhd3q577d3x51t1yzm40000gn/T/nativefier-2-25-1-iconconv--46510-RhdP9M1Lz4ln/icon.icns"
Conversion succeeded and produced icon at /var/folders/7r/8p8cqwhd3q577d3x51t1yzm40000gn/T/nativefier-2-25-1-iconconv--46510-RhdP9M1Lz4ln/icon.icns
Copying icons if necessary
No copying necessary on macOS; aborting

Packaging... This will take a few seconds, maybe minutes if the requested Electron isn't cached yet...
  electron-packager Electron Packager 15.5.1
  electron-packager Node v17.5.0
  electron-packager Host Operating system: darwin 21.6.0 (arm64) +0ms
  electron-packager Packager Options: {"arch":"arm64","asar":false,"darwinDarkModeSupport":true,"dir":"/var/folders/7r/8p8cqwhd3q577d3x51t1yzm40000gn/T/nativefier-2-25-1-app--46510-M9XVJJPwD3jW","electronVersion":"18.2.0","icon":"/var/folders/7r/8p8cqwhd3q577d3x51t1yzm40000gn/T/nativefier-2-25-1-iconconv--46510-RhdP9M1Lz4ln/icon.icns","name":"ProtonMail","out":"/Users/spywhere","overwrite":true,"quiet":false,"platform":"darwin","portable":false,"targetUrl":"https://mail.proton.me/","tmpdir":false,"upgrade":false,"win32metadata":{"ProductName":"ProtonMail","InternalName":"ProtonMail","FileDescription":"ProtonMail"},"appBundleId":"com.electron.nativefier.protonmail-nativefier-2572fe"} +0ms
  electron-packager Target Platforms: darwin +0ms
  electron-packager Target Architectures: arm64 +0ms
  electron-packager Inferring appVersion from version in /var/folders/7r/8p8cqwhd3q577d3x51t1yzm40000gn/T/nativefier-2-25-1-app--46510-M9XVJJPwD3jW/package.json +0ms
  electron-packager Application name: ProtonMail +2ms
  electron-packager Target Electron version: 18.2.0 +0ms
  electron-packager Ignored path regular expressions: [
  '/package-lock\\.json$',
  '/yarn\\.lock$',
  '/\\.git($|/)',
  '/node_modules/\\.bin($|/)',
  '\\.o(bj)?$'
] +0ms
  electron-packager Downloading Electron with options {"platform":"darwin","arch":"arm64","version":"18.2.0","artifactName":"electron"} +0ms
Packaging app for platform darwin arm64 using electron v18.2.0
  electron-packager Creating /Users/spywhere/darwin-arm64-template +2ms
  electron-packager Extracting /Users/spywhere/Library/Caches/electron/829051a119b150bf50202e505694cd024fd10dd5107d116d66dc07e15324a278/electron-v18.2.0-darwin-arm64.zip to /Users/spywhere/darwin-arm64-template +1ms
  electron-packager Initializing app in /Users/spywhere/ProtonMail-darwin-arm64 from /Users/spywhere/darwin-arm64-template template +0ms
  electron-packager Ignored paths based on the out param: [
  '/Users/spywhere/ProtonMail-darwin-x64',
  '/Users/spywhere/ProtonMail-darwin-arm64',
  '/Users/spywhere/ProtonMail-darwin-universal',
  '/Users/spywhere/ProtonMail-linux-ia32',
  '/Users/spywhere/ProtonMail-linux-x64',
  '/Users/spywhere/ProtonMail-linux-armv7l',
  '/Users/spywhere/ProtonMail-linux-arm64',
  '/Users/spywhere/ProtonMail-linux-mips64el',
  '/Users/spywhere/ProtonMail-mas-x64',
  '/Users/spywhere/ProtonMail-mas-arm64',
  '/Users/spywhere/ProtonMail-mas-universal',
  '/Users/spywhere/ProtonMail-win32-ia32',
  '/Users/spywhere/ProtonMail-win32-x64',
  '/Users/spywhere/ProtonMail-win32-arm64'
] +1s
  electron-packager Validating bundled Electron app +0ms
  electron-packager Checking for a package.json file +0ms
  electron-packager Checking for the main entry point file +0ms
  electron-packager Validation complete +0ms
  electron-packager Copying icon "/var/folders/7r/8p8cqwhd3q577d3x51t1yzm40000gn/T/nativefier-2-25-1-iconconv--46510-RhdP9M1Lz4ln/icon.icns" to app's Resources as "electron.icns" +0ms
  electron-packager Renaming Electron to ProtonMail in /Users/spywhere/ProtonMail-darwin-arm64/Electron.app/Contents/MacOS +15ms
  electron-packager Renaming Electron Helper to ProtonMail Helper in /Users/spywhere/ProtonMail-darwin-arm64/Electron.app/Contents/Frameworks/Electron Helper.app/Contents/MacOS +1ms
  electron-packager Renaming Electron Helper (Renderer) to ProtonMail Helper (Renderer) in /Users/spywhere/ProtonMail-darwin-arm64/Electron.app/Contents/Frameworks/Electron Helper (Renderer).app/Contents/MacOS +0ms
  electron-packager Renaming Electron Helper (Plugin) to ProtonMail Helper (Plugin) in /Users/spywhere/ProtonMail-darwin-arm64/Electron.app/Contents/Frameworks/Electron Helper (Plugin).app/Contents/MacOS +0ms
  electron-packager Renaming Electron Helper (GPU) to ProtonMail Helper (GPU) in /Users/spywhere/ProtonMail-darwin-arm64/Electron.app/Contents/Frameworks/Electron Helper (GPU).app/Contents/MacOS +0ms
  electron-packager Renaming Electron Helper.app to ProtonMail Helper.app in /Users/spywhere/ProtonMail-darwin-arm64/Electron.app/Contents/Frameworks +0ms
  electron-packager Renaming Electron Helper (Renderer).app to ProtonMail Helper (Renderer).app in /Users/spywhere/ProtonMail-darwin-arm64/Electron.app/Contents/Frameworks +0ms
  electron-packager Renaming Electron Helper (Plugin).app to ProtonMail Helper (Plugin).app in /Users/spywhere/ProtonMail-darwin-arm64/Electron.app/Contents/Frameworks +0ms
  electron-packager Renaming Electron Helper (GPU).app to ProtonMail Helper (GPU).app in /Users/spywhere/ProtonMail-darwin-arm64/Electron.app/Contents/Frameworks +0ms

Finalizing build...
App built to /Users/spywhere/ProtonMail-darwin-arm64, move to wherever it makes sense for you and run the app bundle.

Then run the app, close the window, try clicking on the dock to restore window.

Expected behavior

Main window is showing properly when click on the dock after closing it earlier

Actual behavior

An error dialog is show up

Debug info

Error popup when click on the dock

Screen Shot 2565-05-26 at 02 20 36

Logs during runtime

objc[78030]: Class WebSwapCGLLayer is implemented in both /System/Library/Frameworks/WebKit.framework/Versions/A/Frameworks/WebCore.framework/Versions/A/Frameworks/libANGLE-shared.dylib (0x21ef07840) and /Applications/ProtonMail.app/Contents/Frameworks/Electron Framework.framework/Libraries/libGLESv2.dylib (0x1078713c8). One of the two will be used. Which one is undefined.
onReady ERROR Error: ERR_ABORTED (-3) loading 'https://account.proton.me/authorize?app=proton-mail&state=<redacted>'
    at rejectAndCleanup (node:electron/js2c/browser_init:161:7647)
    at EventEmitter.navigationListener (node:electron/js2c/browser_init:161:7953)
    at EventEmitter.emit (node:events:390:28) {
  errno: -3,
  code: 'ERR_ABORTED',
  url: 'https://account.proton.me/authorize?app=proton-mail&state=<redacted>'
}

Traces

From electron/electron#17526, the error seem to be from a redirection by the host.

By wrapping the call with try/catch, the issue seem to be gone. I can make a PR but I'm not sure if wrapping it directly would affecting anything else or not, so input is highly appreciated.

Context

  • Nativefier: 47.1.3
  • Node.js: 17.5.0
  • Npm: 8.8.0
  • OS: macOS Monterey 12.5 (21G5027d)
  • Is it a regression?: No
  • Additional context: Nativefier was installed through Homebrew
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants