Electron: рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рд╣реЗрдбрд▓реЗрд╕ рд╕рдВрд╕реНрдХрд░рдг

рдХреЛ рдирд┐рд░реНрдорд┐рдд 9 рдЕрдкреНрд░реИрд▓ 2014  ┬╖  82рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: electron/electron

@zcbenz рдЖрдкрдХреЛ рдХрд┐рддрдирд╛ рдХрд╛рдо рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкрд░рдорд╛рдгреБ-рдЦреЛрд▓ рдХрд╛ рдПрдХ рд╣реЗрдбрд▓реЗрд╕ рд╕рдВрд╕реНрдХрд░рдг рдмрдирд╛рдирд╛ рд╣реЛрдЧрд╛ рдЬрд┐рд╕реЗ рдкреНрд░реЗрдд рдХреЗ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?

рдлреИрдВрдЯрдордЬ рдЖрдЬ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡реЗрдм рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рдкрд┐рдЫрдбрд╝ рд░рд╣рд╛ рд╣реИ рдФрд░ рд╣реЗрдбрд▓реЗрд╕ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдФрд░ рдЕрджреНрдпрддрд┐рдд рд╣реЛрдирд╛ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ред

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рджреБрдГрд╕реНрд╡рдкреНрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ: рд╣рдо рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╣реЗрдбрд▓реЗрд╕ рдХреНрд░реЛрдо рдкрд░ рдирд┐рд░реНрдорд┐рдд рджреБрдГрд╕реНрд╡рдкреНрди рдХреЗ рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЬреЛ рд╕рд░реНрд╡рд░ рд░рд╣рд┐рдд рд╡рд╛рддрд╛рд╡рд░рдг рдЬреИрд╕реЗ рдПрдбрдмреНрд▓реНрдпреВрдПрд╕ рд▓реИрдореНрдмреНрдбрд╛ рдореЗрдВ рднреА рдЪрд▓рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИред рд╣рдо рдЬрд▓реНрдж рд╣реА рдЗрд╕рдХрд╛ рд╕реНрд░реЛрдд @graphcool рдЦреЛрд▓реЗрдВрдЧреЗред рдореИрдВ

рд╕рднреА 82 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдЫрд┐рдкреА рд╣реБрдИ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╡рд┐рдВрдбреЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкрд░рдорд╛рдгреБ-рдЦреЛрд▓ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╡рд╣реА рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдкреНрд░реЗрдд рдХрд░рддрд╛ рд╣реИ, рдлреИрдВрдЯрдордЬ рдХреЗ рд╣реЛрдордкреЗрдЬ рдореЗрдВ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЕрдиреБрд╡рд╛рдж рдкрд░рдорд╛рдгреБ-рдЦреЛрд▓ рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

BrowserWindow = require('browser-window');

console.log('Loading a web page');
var page = new BrowserWindow({show: false});
var url = 'http://www.phantomjs.org/';
page.on('loading-state-changed', (event, isLoading) {
  if (!isLoading)
    //Page is loaded!
    require('app').exit();
});
page.loadUrl(url);

рдмреЗрд╢рдХ рд╣рдореЗрдВ рд╕реНрд╡рдЪрд╛рд▓рди рдкрд░реАрдХреНрд╖рдг рдЙрджреНрджреЗрд╢реНрдп рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдФрд░ рдПрдкреАрдЖрдИ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред

рд╡рд░реНрдЪреБрдЕрд▓ рдмрдлрд░ рдореЗрдВ рдбреНрд░рд╛рдЗрдВрдЧ рдХреЗ рдмрдЬрд╛рдп рдПрдХрдорд╛рддреНрд░ рд╕рдорд╕реНрдпрд╛ рд╣реИ, рдкрд░рдорд╛рдгреБ-рдЦреЛрд▓ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкреГрд╖реНрда рдХреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╡рд┐рдВрдбреЛ рдореЗрдВ рдЦреАрдВрдЪрддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рд▓рд┐рдП рдЧреНрд░рд╛рдлрд┐рдХ рд╡рд╛рддрд╛рд╡рд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рд╡рд┐рдВрдбреЛ рдФрд░ рдУрдПрд╕ рдПрдХреНрд╕ рдкрд░ рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛, рд╣рд╛рд▓рд╛рдВрдХрд┐ рд▓рд┐рдирдХреНрд╕ рдкрд░ рд╣рдореЗрдВ xvfb рдХрд╛ рдЙрдкрдпреЛрдЧ

рдореБрдЭреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЗрд╕рдХреЗ рд╕рд╛рде рд╕рдлрд▓рддрд╛ рдорд┐рд▓реА рд╣реИ (рдЙрдмрдВрдЯреВ рд╕рд░реНрд╡рд░ рдкрд░ рдПрдХреНрд╕рд╡реАрдПрдлрдмреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ)ред рдореЗрд░рд╛ рдЙрдкрдпреЛрдЧ-рдорд╛рдорд▓рд╛ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХрд┐рдП рдЧрдП рдкреГрд╖реНрдареЛрдВ рдХреЗ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдХреЛ рдХреИрдкреНрдЪрд░ рдХрд░ рд░рд╣рд╛ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рд╣реИ рдХрд┐ рд╕рд░реНрд╡рд░ рдкрд░ Xvfb рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд░рдорд╛рдгреБ-рдЦреЛрд▓ (рдПрдХ рдПрдо 3-рдмрдбрд╝рд╛) рдореЗрд░реЗ рд╕реНрдерд╛рдиреАрдп рдореИрдХрдмреБрдХ рдкреНрд░реЛ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмреЗрд╣рддрд░ рдкреНрд░рджрд░реНрд╢рди рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдиреЗ рдореБрдЭреЗ рдПрдХреНрд╕рд╡реАрдПрдлрдмреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдУрдПрд╕рдПрдХреНрд╕ рдореЗрдВ рднреА рдкрд░рдорд╛рдгреБ-рдЦреЛрд▓ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд╛ред

рдЪреВрдВрдХрд┐ рдПрдХреНрд╕рд╡реАрдПрдлрдмреА рдХреЗ рд╕рд╛рде рдУрдПрд╕рдПрдХреНрд╕ рдЬрд╣рд╛рдЬреЛрдВ, рд╡рд╣ рд╣рд┐рд╕реНрд╕рд╛ рдЖрд╕рд╛рди рд╣реИред рдХреНрдпрд╛ рдореБрдЭреЗ рдУрдПрд╕рдПрдХреНрд╕ рдореЗрдВ рдПрдХреНрд╕рд╡реАрдПрдлрдмреА рдбрд┐рд╕реНрдкреНрд▓реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░рдорд╛рдгреБ-рдЦреЛрд▓ рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИ? рдорд╛рдирдХ DISPLAY env рд╡реИрд░рд┐рдПрдмрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЬреИрд╕реЗ рдореИрдВ рд▓рд┐рдирдХреНрд╕ рдореЗрдВ рдХрд░рддрд╛ рд╣реВрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред рд╢рд╛рдпрдж libchromiumcontent рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рдХрд┐ рдбрд╛рд░реНрд╡рд┐рди рдореЗрдВ рдЪрд▓рддреЗ рд╕рдордп X11 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ?

Xvfb рдХреЗрд╡рд▓ рдЙрди рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬреЛ X11 рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рд▓рд┐рдП рд▓рд┐рдЦреЗ рдЧрдП рд╣реИрдВ, OS X рдкрд░ рдкрд░рдорд╛рдгреБ-рдЦреЛрд▓ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд▓рд┐рдП рдХреЛрдХреЛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ Xvfb рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рд╣рд╛рдБ рдереЛрдбрд╝реЗ рдЗрд╕реЗ рдПрдХ рд╕рд╛рде рд░рдЦреЛред рд╢рд╛рдпрдж рдЗрд╕рдХреЗ рдмрдЬрд╛рдп X11 рдХреЗ рд╕реНрд░реЛрдд рд╕реЗ рд╕рдВрдХрд▓рди рдХрд░рдиреЗ рдХрд╛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ?

@zcbenz рд╡рд░реНрддрдорд╛рди рдореЗрдВ BrowserWindow рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рдирд╣реАрдВ рд╣реИ рдЬреЛ OS X рдкрд░ рд╡рд░реНрддрдорд╛рди рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рд╕реЗ рдмрдбрд╝рд╛ рд╣реИ, рднрд▓реЗ рд╣реА рдЖрдк new BrowserWindow({show: false});

@FWeinb рдХреНрдпрд╛ рдЖрдк рдЙрдкрд░реЛрдХреНрдд рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд▓рдЧ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЯрд┐рдХрдЯ рдЦреЛрд▓ рд╕рдХрддреЗ рд╣реИрдВ?

#475 . рдмрдирд╛рдпрд╛ рдЧрдпрд╛

рдореИрдВ рдЗрд╕реЗ рдмрдВрдж рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдХреНрд░реЛрдорд┐рдпрдо рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рджреЗрд╢реА рд╡рд┐рдЬреЗрдЯ рдмрдирд╛рдП рдмрд┐рдирд╛ рдкреГрд╖реНрда рдЦреАрдВрдЪрдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рд╡реЗ рдХрднреА рдЗрд╕рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВрдЧреЗред

рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд▓рд┐рдП, рд╣рдо рд╕реЗрд▓реЗрдирд┐рдпрдо рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВред

рд╕реАрдИрдПрдл рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдСрдл-рд╕реНрдХреНрд░реАрди рдкреНрд░рддрд┐рдкрд╛рджрди рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рд╣реИ, рддрд╛рдХрд┐ рдЖрдк рд╕реНрдХреНрд░реАрди рдХреЛ рд╡рд┐рдВрдбреЛ рдХреЗ рдмрдЬрд╛рдп рдмрдлрд░ рдореЗрдВ рдЦреАрдВрдЪ рд╕рдХреЗрдВред рд▓рд┐рдирдХреНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХреНрд╕ рд╕рд░реНрд╡рд░ рдХреЗ рд╕рдВрдмрдВрдз рдореЗрдВ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдУрдЬреЛрди рдирд╛рдордХ рд▓рдХреНрд╖реНрдп рдЬреЛрдбрд╝рдХрд░ рдЗрд╕рдХреЗ рдмрд┐рдирд╛ рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рд╣реИ ( рдпрд╣рд╛рдВ рдЪрд░реНрдЪрд╛ рджреЗрдЦреЗрдВ)ред

@etiktin рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж! рдореИрдВ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдЦреЛрд▓ рд░рд╣рд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕реЗ рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИ рдЗрд╕ рдкрд░ рдореМрдЬреВрджрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИред

рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдордиреЗ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рджреБрдГрд╕реНрд╡рдкреНрди рдореЗрдВ рдлреИрдВрдЯрдо рдХреЛ рдЗрд▓реЗрдХреНрдЯреНрд░реЙрди рдХреЗ рд╕рд╛рде рдмрджрд▓ рджрд┐рдпрд╛ рд╣реИ рдФрд░ рдЕрдм рддрдХ рдЗрд╕реЗ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рд▓рд┐рдирдХреНрд╕ рдкрд░ рдмреЙрдХреНрд╕ рд╕реЗ рдмрд╛рд╣рд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдЗрд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдЕрднреА рдХреНрдпрд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ: https://github.com/segmentio/nightmare/issues/224#issuecomment -141575361

рдореБрдЭреЗ рд╣рдорд╛рд░реЗ рд╡реЗрдм рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░реНрдп рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬреЛ рдПрдХ рд╕реНрдЯреИрдВрдб рдЕрд▓реЛрди рдбреЗрд╕реНрдХрдЯреЙрдк рдЗрд▓реЗрдХреНрдЯреНрд░реЙрди рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рд╣рдорд╛рд░реА рдХрдВрдкрдиреА рдиреЗ рдпрд╣ рдХрджрдо рдЙрдард╛рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рд╣рдордиреЗ рдХреНрд░реЛрдо рд╡реЗрдм рдбреНрд░рд╛рдЗрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреЗрдЬ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдП рдФрд░ рд╕реАрдПрд╕рдПрд╕ рдЪрдпрдирдХрд░реНрддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдЯрди/рдбреНрд░реЙрдкрдбрд╛рдЙрди/рдЯреЗрдХреНрд╕реНрдЯрдмреЙрдХреНрд╕ рдХреЛ рдЖрдордВрддреНрд░рд┐рдд рдХрд░рдХреЗ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХреАред рдХреНрдпрд╛ рдЗрд▓реЗрдХреНрдЯреНрд░реЙрди рд╢реЗрд▓ рдХреЗ рд╕рд╛рде рд▓рд┐рдкрдЯреЗ рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рд╛рде рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ? рдХрдВрдкрдиреА рдХреБрдЫ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛рдУрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореЗрдиреВ рдмрд╛рд░ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛ рд░рд╣реА рд╣реИ рдФрд░ рдореИрдВрдиреЗ рдмрд┐рдирд╛ рдХрд┐рд╕реА рд╕рдлрд▓рддрд╛ рдХреЗ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдбреНрд░рд╛рдЗрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдлрд╝рд╛рдЗрд▓/рд╕рдВрдкрд╛рджрд┐рдд/рд╕рд╣рд╛рдпрддрд╛ рдЬреИрд╕реЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдореЗрдиреВ рдмрд╛рд░ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ред рдХреНрдпрд╛ рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдкрд░ рдХреЛрдИ рдЙрджрд╛рд╣рд░рдг рд╣реИрдВ?

https://github.com/segmentio/nightmare/issues/224#issuecomment -+резрек,резрел,ренрел,рейремрез рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ @matthewmueller рдХреЗ рд▓рд┐рдирдХреНрд╕ рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЭрд▓рдХреА: +1:

рдХреНрдпрд╛ рдХрд┐рд╕реА рдиреЗ SuSE рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рдмрд┐рдирд╛ рд╕рд┐рд░ рдХреЗ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рд╣реИ? рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдПрд╕рдПрд▓рдПрд╕?

@fritx рд╡рд╣реА рд╕реНрд▓рд┐рдорд░рдЬреЗрдПрд╕ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╣реЗрдбрд▓реЗрд╕ рдореЛрдб рдирд╣реАрдВ рд╣реИред

@fritx рд╡рд╣реА рд╣реИ рдЬреЛ @zcbenz рдХрд╣ рд░рд╣рд╛ рдерд╛, рдЖрдкрдХреЛ Xvfb рдЪрд▓рд╛рдирд╛ рд╣реЛрдЧрд╛ред CEF3 рдФрд░ рдХреНрд░реЛрдорд┐рдпрдо рдХрдВрдЯреЗрдВрдЯ рд╢реЗрд▓ рджреЛрдиреЛрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ Xlib рдкрд░ рдирд┐рд░реНрднрд░ рд╣реИрдВред рд▓реЗрдХрд┐рди рдУрдЬреЛрди рдХреЗ рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреЗ рд╕рд╛рде: https://www.chromium.org/developers/design-documents/ozone
рдЖрдк рдХреЛрдИ рднреА рдирд┐рдореНрди рд╕реНрддрд░ рдХрд╛ I/O рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдВрдЧреЗред

рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдХреНрд░реЛрдорд┐рдпрдо рдореЗрдВ рд╣реА рдПрдХ рдорд╛рд╕реНрдЯрд░ рдмрдЧ рд╣реИ: https://code.google.com/p/chromium/issues/detail?id=546953

рдпрд╣ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ:

рджрд┐рдирд╛рдВрдХ: рдмреБрдз рджрд┐рд╕рдВрдмрд░ 02 15:35:21 2015

[рд╕рд┐рд░ рд░рд╣рд┐рдд] рд╕рд┐рд░рд╡рд┐рд╣реАрди/рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ/

рднрд╡рд┐рд╖реНрдп рдХреЗ рд╣реЗрдбрд▓реЗрд╕ рдПрдкреАрдЖрдИ рдХреА рд░реВрдкрд░реЗрдЦрд╛ рддреИрдпрд╛рд░ рдХрд░реЗрдВред

рдХреНрдпрд╛ рдХреНрд░реЛрдордбреНрд░рд╛рдЗрд╡рд░ рдЗрд▓реЗрдХреНрдЯреНрд░реЙрди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?

рдПрдХ рд╣реЗрдбрд▓реЗрд╕ рдмрд╛рдЗрдирд░реА рдЬрд┐рд╕рдореЗрдВ xvfb рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рд╡рд╣ AWS рд▓реИрдореНрдмреНрдбрд╛ рдЬреИрд╕реЗ рдирдП рд╡рд╛рддрд╛рд╡рд░рдг рдЦреЛрд▓реЗрдЧрд╛ - рдореБрдЭреЗ рд╕рд╛рдЗрди рдЕрдк рдХрд░реЗрдВ!

@ рд╡рд╛рдиреБрдЖрди рдХреНрдпрд╛ рдЖрдкрдиреЗ рджреБрдГрд╕реНрд╡рдкреНрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реБрдирд╛ рд╣реИ? рдпрджрд┐ рдХреНрд░реЛрдордбреНрд░рд╛рдЗрд╡рд░ рд╕реЗ рдЖрдкрдХреЛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдХреБрдЫ рднреА рдирд╣реАрдВ рдЪрд╛рд╣рд┐рдП рддреЛ рдпрд╣ рдЖрдкрдХреА рдорджрдж рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдХреНрдпрд╛ рдЗрд╕рдореЗрдВ Capybara/Selenium рдбреНрд░рд╛рдЗрд╡рд░ рд╣реИ?

+1

рдореИрдВ рдереЛрдбрд╝рд╛ рдЙрд▓рдЭрди рдореЗрдВ рд╣реВрдБред рдХреНрдпрд╛ рдХреЛрдИ рд╣реЗрдбрд▓реЗрд╕ рдореЛрдб рд╣реИ? рдХреНрдпрд╛ рд╣рдо рдЗрд╕реЗ BrowserWindow({show: false}) рдХреЗ рд╕рд╛рде рдкреНрд░рднрд╛рд╡реА рдврдВрдЧ рд╕реЗ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛, рдореИрдВ рдЗрд╕реЗ рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рддрд╛рдХрд┐ рд╣рдо рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рд╡реЗрдм рдШрдЯрдХ рдмрдирд╛ рд╕рдХреЗрдВ: https://github.com/scramjs/scram-markup-engine

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВрдиреЗ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдкреНрд░рд╢реНрди рдХрд╛ рдЙрддреНрддрд░ рджрд┐рдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдЪрд╛рд░реЛрдВ рдУрд░ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВред рдЗрд▓реЗрдХреНрдЯреНрд░реЙрди рдореВрд▓ рд░реВрдк рд╕реЗ рдПрдХ рдкрд░рд┐рд╖реНрдХреГрдд рд╣реЗрдбрд▓реЗрд╕ рдореЛрдб рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рджреБрдГрд╕реНрд╡рдкреНрди рдРрд╕рд╛ рдХреБрдЫ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдЕрднреА рднреА рдХреБрдЫ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдХреБрдЫ рдЧреНрд░рд╛рдлрд┐рдХрд▓ рд╡рд╛рддрд╛рд╡рд░рдг рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдпрджрд┐ рдЖрдк рдмреНрд░рд╛рдЙрдЬрд╝рд░рд╡рд┐рдВрдбреЛ ({рд╢реЛ: рдЕрд╕рддреНрдп}) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЗрд▓реЗрдХреНрдЯреНрд░реЙрди рднреА рдРрд╕рд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рд╣реЗрдбрд▓реЗрд╕ рд▓рд┐рдирдХреНрд╕ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдЧреНрд░рд╛рдлрд┐рдХрд▓ рд╡рд╛рддрд╛рд╡рд░рдг рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП xvfb рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП (рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрд╣реБрдд рдмреБрд░рд╛ рдирд╣реАрдВ рд▓рдЧрддрд╛)ред рдЕрдЧрд░ рдореИрдВ рдЧрд▓рдд рд╣реВрдВ рддреЛ рдореБрдЭреЗ рд╕реБрдзрд╛рд░реЗрдВ рдФрд░ рдЗрд╕ рд╕реБрд╡рд┐рдзрд╛ рдХреЛ +1 рдХрд░реЗрдВред

рдирдП рдХреНрд░реЛрдорд┐рдпрдо рд╣реЗрдбрд▓реЗрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд╕рд╛рде [1] рдХреНрдпрд╛ xvfb рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдмрд┐рдирд╛ рдЗрд▓реЗрдХреНрдЯреНрд░реЙрди рдХреЛ рд╣реЗрдбрд▓реЗрд╕ рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛?

рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рд╡рд░реНрддрдорд╛рди рд╕реАрдорд╛ libchromium рдХреЗ рд╕рд╛рде рдереА? рдХреНрдпрд╛ рдХреНрд░реЛрдо рд▓реЛрдЧреЛрдВ рдиреЗ рдЗрд╕реЗ рдареАрдХ рдХрд░ рджрд┐рдпрд╛ рд╣реИ?

1: https://chromium.googlesource.com/chromium/src/+/master/headless/README.md

рдПрдХ рд╕рдВрдмрдВрдзрд┐рдд рдордВрдЪ рд╣реИ: https://groups.google.com/a/chromium.org/forum/#!forum/headless -dev

рдЗрд╕ рдкрд░ рдХреЛрдИ рдкреНрд░рдЧрддрд┐? рдпрд╣ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛

рд╕реЗрдЧрдореЗрдВрдЯрд┐рдпреЛ / рджреБрдГрд╕реНрд╡рдкреНрди рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХрджрдо рд╕рд╣реА рд╣реИред рдмрд╕:

const nightmare = Nightmare({
  show: true
});

@amilajack рд╕рд╛рдзрд╛рд░рдг рдореЛрдЪрд╛ рдпреВрдирд┐рдЯ рдкрд░реАрдХреНрд╖рдг рдмрд┐рдирд╛ рд╕рд┐рд░ рдХреЗ рдЪрд▓рд╛рдиреЗ рдЬреИрд╕реЗ рд╕рд╛рдзрд╛рд░рдг рдорд╛рдорд▓реЛрдВ рдХреЗ рд▓рд┐рдП, рджреБрдГрд╕реНрд╡рдкреНрди рдПрдХ рдЫреЛрдЯреЗ рдирд╛рдЦреВрди рдореЗрдВ рдбреНрд░рд╛рдЗрд╡ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 20-рдкрд╛рдЙрдВрдб рд╕реНрд▓реЗрдЬрд╣реИрдорд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдЬреИрд╕рд╛ рд╣реЛрдЧрд╛ (рдкрдврд╝реЗрдВ: рдмрдбрд╝реЗ рдкреИрдорд╛рдиреЗ рдкрд░ рдУрд╡рд░рдХрд┐рд▓)ред рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рд╣реИ, рдмреИрдЯрд░реА рдореЗрдВ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдСрдЯреЛрдореЗрд╢рди рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╢рд╛рдорд┐рд▓ рд╣реИ рдЬреЛ рди рдХреЗрд╡рд▓ рдмреБрдирд┐рдпрд╛рджреА рдиреЗрд╡рд┐рдЧреЗрд╢рди рдФрд░ рдЗрдирдкреБрдЯ рдХрд░ рд╕рдХрддреА рд╣реИ, рдмрд▓реНрдХрд┐ рдПрдЪрдЯреАрдПрдордПрд▓ рдФрд░ рдкреАрдбреАрдПрдл рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдбрд┐рд╕реНрдХ рдкрд░ рд╕рд╣реЗрдЬ рд╕рдХрддреА рд╣реИ рдпрд╛ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рд▓реЗ рд╕рдХрддреА рд╣реИред рд╕рд╛рдзрд╛рд░рдг рдЗрдХрд╛рдИ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдареАрдХ 0% рдЖрд╡рд╢реНрдпрдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

@isiahmeadows @mcolyer рдиреЗ рдХрд╣рд╛ рдХрд┐ рд╡рд╣ рдкрд░рдорд╛рдгреБ-рдЦреЛрд▓ рдХрд╛ рдПрдХ рд╣реЗрдбрд▓реЗрд╕ рд╕рдВрд╕реНрдХрд░рдг рдЪрд╛рд╣рддреЗ рдереЗ рдЬрд┐рд╕реЗ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХреЗред рдЗрд▓реЗрдХреНрдЯреНрд░реЙрди рдмрд┐рд▓реНрдХреБрд▓ рдареАрдХ рд╡реИрд╕рд╛ рд╣реА рд╣реИ рдЬреИрд╕реЗ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд╕рд╛рдеред

рд╣рд╛рдБ, рд▓реЗрдХрд┐рди рдЬреЛ рдЖрдк рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддреЗ рдЙрд╕рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдЪреАрдиреА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реЛрдЧреА? (рдореИрдВ рд╕рднреА рдЪреАрдиреА рдХрд╛ рдЬрд┐рдХреНрд░ рдХрд░ рд░рд╣рд╛ рдерд╛ - рдЖрдк рд╕реИрджреНрдзрд╛рдВрддрд┐рдХ рд░реВрдк рд╕реЗ рдХреЗрд╡рд▓ рд╡реЗрдирд┐рд▓рд╛ рдиреЛрдб + рдУрдкрдирдЬреАрдПрд▓ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдЗрд▓реЗрдХреНрдЯреНрд░реЙрди рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдлрд┐рд░ рд╕реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ)ред

рд╣реЗрдбрд▓реЗрд╕ рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЖрдо рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдРрд╕реА рдЪреАрдЬреЗрдВ рд╣реИрдВ рдЬреИрд╕реЗ рдореЛрдЪрд╛-рдлреИрдВрдЯрдордЬ рдФрд░ рдХрд░реНрдо рдкрд╣рд▓реЗ рд╕реЗ рдореМрдЬреВрдж рд╣реИрдВ - рд╕реАрдПрд▓рдЖрдИ рд╕реЗ рдЪрд▓ рд░рд╣реЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдпреВрдирд┐рдЯ рдкрд░реАрдХреНрд╖рдгред рдЕрдзрд┐рдХрд╛рдВрд╢ рд▓реЛрдЧ рдЯреНрд░реИрд╡рд┐рд╕ рдкрд░ xvfb, рдПрдХ рд╣реЗрдбрд▓реЗрд╕ рдПрдХреНрд╕ рд╕рд░реНрд╡рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдпрджрд┐ рдЙрдиреНрд╣реЗрдВ рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕/рдХреНрд░реЛрдо рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЙрд╕рдХреЗ рдкрд╛рд╕ рдПрдХ рд░рдирд┐рдВрдЧ рдПрдХреНрд╕ рд╕рд░реНрд╡рд░ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдЖрдк рдЙрд╕рдХреЗ рд╕рд╛рде рдЗрд▓реЗрдХреНрдЯреНрд░реЙрди рднреА рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдлрд╝реИрдВрдЯреЙрдордЬреЗрдПрд╕ рдФрд░ рд╕реНрд▓рд┐рдорд░рдЬреЗрдПрд╕ рдЬреИрд╕реЗ рд╣реЗрдбрд▓реЗрд╕ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдбреЙрди ' t рдХреЛ рдПрдХ X рд╕рд░реНрд╡рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрд▓реЗрдХреНрдЯреНрд░реЙрди + рджреБрдГрд╕реНрд╡рдкреНрди рдХреЛ рдЕрднреА рднреА рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреЗ рдПрдХреНрд╕ рд╕рд░реНрд╡рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рднрд▓реЗ рд╣реА рдпрд╣ xvfb рд╣реИ), рдФрд░ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдЙрд╕ рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣ рд░рд╣реА рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рддрдм рддрдХ рдирд╣реАрдВ рд╣реЛрдЧрд╛ рдЬрдм рддрдХ рдХреНрд░реЛрдорд┐рдпрдо рд╕реНрд╡рдпрдВ рдмрд┐рдирд╛ рд╕рд┐рд░ рдХреЗ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рд╡реЗ рдкрд░рд┐рд╡рд░реНрддрди рдкреНрд░рдЪрд╛рд░рд┐рдд рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ libchromium рд╕рд╛рдордЧреНрд░реА рдХреЗ рд▓рд┐рдП ред

рд╣реЗрдбрд▓реЗрд╕ рдЕрдм рдХреНрд░реЛрдо 59 рдореЗрдВ рд╣реИ: https://www.chromestatus.com/features/5678767817097216

@sindresorhus @zcbenz рдХреНрдпрд╛ рдХреНрд░реЛрдорд┐рдпрдо рдореЗрдВ рдЗрд╕ рдмрджрд▓рд╛рд╡ рд╕реЗ рдпрд╣рд╛рдВ рдХреЛрдИ рдлрд░реНрдХ рдкрдбрд╝реЗрдЧрд╛?

рдЗрд▓реЗрдХреНрдЯреНрд░реЙрди рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрджреНрднреБрдд рд╣реИ, рдФрд░ рдПрдХ рд╣реЗрдбрд▓реЗрд╕ рдореЛрдб рдЗрд╕реЗ рдФрд░ рднреА рдмреЗрд╣рддрд░ рдмрдирд╛ рджреЗрдЧрд╛!

(рдпрд╣ рджреБрдГрд╕реНрд╡рдкреНрди рдХреЗ рд▓рд┐рдП рднреА

рдореИрдВ рд▓реИрдореНрдмреНрдбрд╛ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ Xvfb рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдерд╛ рдЬреЛ рд▓реИрдореНрдмреНрдбрд╛-рдЖрдзрд╛рд░рд┐рдд рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рд╕рд╣рд╛рдпрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ ... https://github.com/nisaacson/aws-lambda-xvfb

рдЗрд▓реЗрдХреНрдЯреНрд░реЙрди рдХрдм рд╕рдЪреНрдЪреЗ рд╣реЗрдбрд▓реЗрд╕ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░реЗрдЧрд╛, рдЗрд╕ рдкрд░ рдХреЛрдИ рд╢рдмреНрдж? рдХреНрдпрд╛ рд╣рдо рдРрд╕рд╛ рд╣реЛрдиреЗ рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдореИрдВ xvfb рдЫреЛрдбрд╝рдиреЗ рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред

@lastmjs рдХреНрдпрд╛ рдЖрдкрдиреЗ xvfb рдкрд░ рдЖрдзрд╛рд░рд┐рдд AWS рд▓реИрдореНрдмреНрдбрд╛ рдкрд░ рдЪрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд▓реЗрдХреНрдЯреНрд░реЙрди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдХрд┐рдпрд╛?

@schickling рджреЗрдЦреЗрдВ https://github.com/nisaacson/aws-lambda-xvfb

рдЖрдкрдХреА рдЯрд┐рдкреНрдкрдгреА рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж @MrSaintsред рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕ рд░реЗрдкреЛ рдХреЛ рдХрдИ рдШрдВрдЯреЛрдВ рдХреЗ рд▓рд┐рдП рдбрд┐рдмрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП nightmare рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ред рдХреНрдпрд╛ рдпрд╣ рдЖрдкрдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?

@zcbenz FYI chrome 59 рдХреЛ рд╣реЗрдбрд▓реЗрд╕ рдореЛрдб рд╕рдкреЛрд░реНрдЯ рдорд┐рд▓реЗрдЧрд╛ https://www.chromestatus.com/features/5678767817097216

@schickling рджреЗрдЦреЗрдВ https://github.com/JohannesHoppe/nightmare-html2pdf - рдбреЙрдХрдЯрд░ рдореЗрдВ рджреБрдГрд╕реНрд╡рдкреНрди, Xvfb рдХреЗ рд╕рд╛рде

рдзрдиреНрдпрд╡рд╛рдж @JohannesHoppe , рдореБрдЭреЗ Xvfb рдХреЗ рд╕рд╛рде рдбреЙрдХрд░ рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рджреБрдГрд╕реНрд╡рдкреНрди рдорд┐рд▓рд╛, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдЗрд╕реЗ AWS рд▓реИрдореНрдмреНрдбрд╛ рдкрд░ рдЪрд▓рд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рдореИрдВрдиреЗ рджреБрдГрд╕реНрд╡рдкреНрди рдореЗрдВ рдЗрд▓реЗрдХреНрдЯреНрд░реЙрди рдХреЛ рд╣реЗрдбрд▓реЗрд╕ рдХреНрд░реЛрдо рд╕реЗ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдореБрджреНрджрд╛ рдЦреЛрд▓рд╛ рд╣реИ: https://github.com/segmentio/nightmare/issues/1092

@schickling рдЗрд╕реЗ рдЖрдЬрд╝рдорд╛рдПрдВ: https://github.com/dimkir/nightmare-lambda-tutorial

рдХреНрд╖рдорд╛ рдХрд░реЗрдВ рдЕрдЧрд░ рдЗрд╕рдХрд╛ рдЙрддреНрддрд░ рдХрд╣реАрдВ рдФрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдХреЛрдИ рдареЛрд╕ рдЬрд╡рд╛рдм рдирд╣реАрдВ рдорд┐рд▓ рд░рд╣рд╛ рд╣реИред рдКрдкрд░ рдЕрдкрдиреА рдЕрддреНрдпрдзрд┐рдХ +1 рдЯрд┐рдкреНрдкрдгреА рдореЗрдВ , @sandstrom рдиреЗ рдмрддрд╛рдпрд╛ рдХрд┐ рд╣реЗрдбрд▓реЗрд╕ рдЕрдм рдХреНрд░реЛрдо 59 рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИред

рдХреНрдпрд╛ рдЗрд▓реЗрдХреНрдЯреНрд░реЙрди рдХреЗ рд╡рд┐рдХрд╛рд╕ рд░реЛрдбрдореИрдк рдкрд░ рдХреНрд░реЛрдо рдХреЗ рд╣реЗрдбрд▓реЗрд╕ рдлреНрд▓реИрдЧ рдХрд╛ рд╕рдорд░реНрдерди рд╣реИ? рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЗрд▓реЗрдХреНрдЯреНрд░реЙрди рдХреЗ рд▓рд┐рдП рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рдмрд╣реБрдд рдмрдбрд╝реА "рдЬреАрдд" рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕рд╣реА рд╣реЗрдбрд▓реЗрд╕ рдЙрдкрдпреЛрдЧ рдХреЛ рд╕рдВрднрд╡ рдмрдирд╛рддрд╛ рд╣реИред

рдореИрдВ @rinogo рд╕реЗ рд╕рд╣рдордд рд╣реВрдВред рдЗрд▓реЗрдХреНрдЯреНрд░рд╛рди рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реЗрдбрд▓реЗрд╕ рд╡рд┐рдХрд▓реНрдк рд╣реЛрдиреЗ рд╕реЗ рд╕реАрдЖрдИ рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рд╡рд░реНрдЪреБрдЕрд▓ рдбрд┐рд╕реНрдкреНрд▓реЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдмрд┐рдирд╛ рдФрд░ рдорд╢реАрди рдХреЛ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рджреЗрд╡ рдмреЙрдХреНрд╕ рдкрд░ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред рдореБрдЭреЗ рдЗрд▓реЗрдХреНрдЯреНрд░реЙрди рдХреЗ рд▓рд┐рдП рд░реЛрдбрдореИрдк рдЬрд╛рдирдиреЗ рдФрд░ рд╕рдВрднрд╡рддрдГ рдпреЛрдЧрджрд╛рди рдХрд░рдиреЗ рдореЗрдВ рднреА рджрд┐рд▓рдЪрд╕реНрдкреА рд╣реИред

Xvfb рдХрд╖реНрдЯрдкреНрд░рдж рд╣реИ, рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдЗрд▓реЗрдХреНрдЯреНрд░реЙрди рд╕рдЪреНрдЪреЗ рд╕рд┐рд░ рдХреЗ рдмрд┐рдирд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ!

xvfb-рд╢рд╛рдпрдж рдЗрд╕ рдмреАрдЪ

Google рдХреА рдУрд░ рд╕реЗ рдПрдХ рдирдпрд╛ рд▓реЗрдЦ рдЖрдпрд╛ рд╣реИ: https://developers.google.com/web/updates/2017/04/headless-chrome

рдЬрд▓реНрджреА рдЖ рд░рд╣рд╛ рд╣реИред

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ Chrome 59 рдЕрднреА рд╕реНрдерд┐рд░ рдЪреИрдирд▓ рдкрд░ рд╣реИред рдЗрд▓реЗрдХреНрдЯреНрд░реЙрди рдореЗрдВ рд╣реЗрдбрд▓реЗрд╕ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдЧрд▓реЗ рдЪрд░рдг рдХреНрдпрд╛ рд╣реИрдВ?

рдХреГрдкрдпрд╛, рдХреГрдкрдпрд╛ рдЗрд╕реЗ рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХрддрд╛ рдмрдирд╛рдПрдВ - рдРрд╕рд╛ рдХрд░рдиреЗ рд╕реЗ рдФрд░ рджреБрдГрд╕реНрд╡рдкреНрди рдЬреЗрдПрд╕ рдХреЛ рд╣реЗрдбрд▓реЗрд╕ рдЗрд▓реЗрдХреНрдЯреНрд░реЙрди рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдХреНрд╖рдо рдХрд░рдХреЗ, рдЖрдк рдЕрдВрддрддрдГ рд╕рднреА рд╕реЗрд▓реЗрдирд┐рдпрдо рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓реЛрдВ рдХреЗ рдПрдХ рддрд┐рд╣рд╛рдИ рдХреА рддрд░рд╣ рдЦрддреНрдо рдХрд░ рджреЗрдВрдЧреЗред *

* рдЕрддрд┐рд╢рдпреЛрдХреНрддрд┐рдкреВрд░реНрдг рд╣реЛрдирд╛ рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рднреА рдирд╣реАрдВ

@aendrew рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рджреБрдГрд╕реНрд╡рдкреНрди _rewrite_ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдПрдХ рд╕реАрдбреАрдкреА рдмреИрдХрдПрдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ/рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд▓реЗрдХреНрдЯреНрд░реЙрди рдмрдирд╛рдиреЗ рдкрд░ рдХреЗрд░рдлрдлрд▓ рдХреЗ рдмрдЬрд╛рдп (рдПрдХ рджрд░реНрд╢рди рдХреЗ рд╕рд╛рде: _рдмрд┐рд▓реНрдб рдХреНрд░реЙрд╕ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдбреЗрд╕реНрдХрдЯреЙрдк рдРрдкреНрд╕ _) рд╣реЗрдбрд▓реЗрд╕ред рджреЗрдЦреЗрдВ: https://github.com/cyrus-and/chrome-remote-interface

@MrSaints рдореИрдВ

рднрд▓реЗ рд╣реА, рдЗрд▓реЗрдХреНрдЯреНрд░реЙрди рдХреЗ рдбреЗрд╕реНрдХрдЯреЙрдк-рдЙрдиреНрдореБрдЦ рд╣реЛрдиреЗ рдХреА рдмрд╛рдд рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд▓реА рдЧрдИ рд╣реИред

@aendrew @MrSaints рдореЗрд░реА рдЕрдЬреНрдЮрд╛рдирддрд╛ рдХреЛ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рдЬреЛрдЦрд┐рдо рдкрд░ ... рдЗрд╕ рдкрд░рд┐рд╡рд░реНрддрди ( headless рдзреНрд╡рдЬ рдХрд╛ рд╕рдорд░реНрдерди) рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдХрд┐рддрдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ? рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд▓реЗрдХреНрдЯреНрд░реЙрди рдХреНрд░реЛрдорд┐рдпрдо рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдЗрдВрдЯрд░рдлреЗрд╕ рдХрд░рддрд╛ рд╣реИ/рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрджрдо рд╣реИрдВ:

  1. рдЗрд▓реЗрдХреНрдЯреНрд░реЙрди рдХреЗ рдХреНрд░реЛрдорд┐рдпрдо рдХреЛ рд╕рдВрд╕реНрдХрд░рдг 59+ рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░реЗрдВред
  2. headless рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рдлреНрд▓реИрдЧ/рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреИрд░рд╛рдореАрдЯрд░ рдХреА рдЖрдкреВрд░реНрддрд┐ рдХрд░реЗрдВред
  3. рдЕрдиреНрдп рд╕рд╛рдорд╛рди рдореИрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд▓реЗрдЦрд╛рдВрдХрди рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред :)

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ рдЬреЛ рдХрд╣ рд░рд╣рд╛ рд╣реВрдВ рд╡рд╣ рдпрд╣ рд╣реИ рдХрд┐ headless рдЕрдм рдХреНрд░реЛрдорд┐рдпрдо рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИ, рдПрдХ рд╣реЗрдбрд▓реЗрд╕ рдореЛрдб (рдЬреИрд╕реЗ рджреБрдГрд╕реНрд╡рдкреНрдирдЬреЗрдПрд╕ рдХреЗ рд▓рд┐рдП) рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рд╕рд░рд▓ рд▓рдЧрддрд╛ рд╣реИред рджреА, рдЗрд▓реЗрдХреНрдЯреНрд░реЙрди рдХреЗ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп-рдЙрджреНрджреЗрд╢реНрдп рд╡рд╛рд▓реЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдХреБрдЫ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЛрдВ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдореЗрдВ рдХреБрдЫ рд╕рдордп рд▓рдЧ рд╕рдХрддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рджреБрдГрд╕реНрд╡рдкреНрдирдЬреЗрдПрд╕ рдЬреИрд╕реА рдХрд┐рд╕реА рдЪреАрдЬрд╝ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдирд┐рд░реНрдорд╛рдг рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдмрд╣реБрдд рд╕реАрдзрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд╣реИ рдирд╛?

рдЕрдЧрд░ рдореБрдЭреЗ рдЧрддрд┐ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХреА рддрддреНрдХрд╛рд▓ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА, рддреЛ рдореИрдВ рдЗрд╕рдореЗрдВ рдХреВрдж рдкрдбрд╝рддрд╛ рдФрд░ рдЙрд╕ рдкрд░ рдПрдХ рд╢реЙрдЯ рд▓реЗрддрд╛ред рд╣рд╛рд▓рд╛рдВрдХрд┐, рд╣рдо рдЕрднреА рднреА рджреБрдГрд╕реНрд╡рдкреНрдирдЬреЗрдПрд╕ рдХреЗ рд╕рд╛рде рдорд┐рд▓ рд░рд╣реЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП рдареАрдХ рд╣реИрдВред

рднрд▓реЗ рд╣реА, рдЗрди рд╕рднреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рдЕрдиреБрд░рдХреНрд╖рдХреЛрдВ рдХреЛ рдЙрдирдХреЗ рдпреЛрдЧрджрд╛рди рдФрд░ рдХрдбрд╝реА рдореЗрд╣рдирдд рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж! :)

рджреБрдГрд╕реНрд╡рдкреНрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ: рд╣рдо рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╣реЗрдбрд▓реЗрд╕ рдХреНрд░реЛрдо рдкрд░ рдирд┐рд░реНрдорд┐рдд рджреБрдГрд╕реНрд╡рдкреНрди рдХреЗ рдПрдХ рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЬреЛ рд╕рд░реНрд╡рд░ рд░рд╣рд┐рдд рд╡рд╛рддрд╛рд╡рд░рдг рдЬреИрд╕реЗ рдПрдбрдмреНрд▓реНрдпреВрдПрд╕ рд▓реИрдореНрдмреНрдбрд╛ рдореЗрдВ рднреА рдЪрд▓рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИред рд╣рдо рдЬрд▓реНрдж рд╣реА рдЗрд╕рдХрд╛ рд╕реНрд░реЛрдд @graphcool рдЦреЛрд▓реЗрдВрдЧреЗред рдореИрдВ

@schickling рдпрд╣ рдХрдорд╛рд▓ рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рд╣реИ!

рдХреНрд░реЛрдо рдореЗрдВ --headless рд╕рд╛рде рдзреНрдпрд╛рди рд░рдЦрдиреЗ рд╡рд╛рд▓реА рдПрдХ рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рд╕рднреА рдкреНрд▓рдЧрдЗрдиреНрд╕ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рддрд╛ рд╣реИред рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рдЖрдкрдХреЛ рдлреНрд▓реИрд╢ (рдЬреЛ рдЗрд▓реЗрдХреНрдЯреНрд░реЙрди/рджреБрдГрд╕реНрд╡рдкреНрди рдХреЗ рд╕рд╛рде рд╕рдВрднрд╡ рд╣реИ) рдпрд╛ рдкреАрдбреАрдПрдл рд╡реНрдпреВрдЕрд░ рдЖрджрд┐ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ --headless рдЖрдкрдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рд╣реИ рдФрд░ рдЖрдк xvfb рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗред

рдореИрдВ рдПрдбрдмреНрд▓реНрдпреВрдПрд╕ рд▓реИрдореНрдмреНрдбрд╛ рдореЗрдВ рдЗрд▓реЗрдХреНрдЯреНрд░реЙрди рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрдВрддрдЬрд╛рд░ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛...рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ

рдЖрдореАрди @lastmjs рдЖрдореАрди

рдЗрд╕ рд╕рдорд╛рдзрд╛рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛?
https://github.com/dimkir/nightmare-lambda-tutorial

рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЕрднреА рддрдХ рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХреА рд╣реИ

@xplodedthemes xvfb рдХреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╕рдВрдХрд▓рд┐рдд рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ

рдмреЗрд╢рд░реНрдо рдкреНрд▓рдЧ: https://github.com/joelgriffith/navaliaред рдпрд╣ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдФрд░ рдЕрдзрд┐рдХ рдХреЗ рд▓рд┐рдП рд╣реЗрдбрд▓реЗрд╕ рдХреНрд░реЛрдо рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдХрдИ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╕рдорд╛рдирд╛рдВрддрд░ рдХрд░рдирд╛, рдПрдХ рдЧреНрд░рд╛рдлрд╝рдХреНрдпреВрдПрд▓ рдлреНрд░рдВрдЯ-рдПрдВрдб, рдФрд░ рдмрд╣реБрдд рдХреБрдЫ рдЬреИрд╕реА рдХреБрдЫ рдЕрдЪреНрдЫреА рд╕реБрд╡рд┐рдзрд╛рдПрдБ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред

рдореИрдВ рдХрд┐рд╕реА рднреА рдЬрдирд╕рдВрдкрд░реНрдХ/рдореБрджреНрджреЗ/рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХрд╛ рд╕реНрд╡рд╛рдЧрдд рдХрд░рддрд╛ рд╣реВрдВ!

рдЬрд╝рд░рд╛ рд╕реБрдирд┐рдП рд╕рднреА! рдЖрдк рд╕рднреА рдХреЛ рдкреНрд░рддреАрдХреНрд╖рд╛ рдореЗрдВ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд╖рдорд╛ рдХрд░реЗрдВ...

рд╣рдордиреЗ рдЕрднреА-рдЕрднреА Chromeless рдХреЛ рдУрдкрди-рд╕реЛрд░реНрд╕ рдХрд┐рдпрд╛ рд╣реИред рдпрд╣ рд╣реЗрдбрд▓реЗрд╕ рдХреНрд░реЛрдо рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ рдФрд░ рд╕реНрдерд╛рдиреАрдп рдФрд░ рдПрдбрдмреНрд▓реНрдпреВрдПрд╕ рд▓реИрдореНрдмреНрдбрд╛ рджреЛрдиреЛрдВ рдкрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдПрдкреАрдЖрдИ рдХрд╛рдлреА рд╣рдж рддрдХ рджреБрдГрд╕реНрд╡рдкреНрдирдЬреЗрдПрд╕ рдХреЗ рд╕рдорд╛рди рд╣реИред

рдЖрдк рдЗрд╕реЗ рдпрд╣рд╛рдВ рдЖрдЬрдорд╛ рд╕рдХрддреЗ рд╣реИрдВ: https://chromeless.netlify.com

рдХреНрдпрд╛ рдХреНрд░реЛрдорд▓реЗрд╕ рдиреЗ рд╕рд┐рд░реНрдл рджреБрдГрд╕реНрд╡рдкреНрди рдХреА рдЬрдЧрд╣ рд▓реЗ рд▓реА рд╣реИ? рджреБрдГрд╕реНрд╡рдкреНрди рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдХреНрд░реЛрдорд▓реЗрд╕ рдХреЛ

рд╣рдо рдЗрд╕реЗ рджреБрдГрд╕реНрд╡рдкреНрди рдХреЗ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рд╣рдореЗрдВ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдХрдИ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред

рдкреНрд░рд╢реНрди (рд╢рд╛рдпрдж рдЗрд╕ рдзрд╛рдЧреЗ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рд╣реИ): рдХреНрдпрд╛ рдЖрдк рдкреАрдбреАрдПрдл рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдХрд╛рдо рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВ? рдпрджрд┐ рдРрд╕рд╛ рд╣реИ, рддреЛ рдпрд╣ рд╣рдореЗрдВ рд╕рд┐рд░рджрд░реНрдж (рдФрд░ рд▓рд╛рдЧрдд) рдХрд╛ рдПрдХ рдЯрди рдмрдЪрд╛ рд╕рдХрддрд╛ рд╣реИред

рд╡рд╛рд╣, рдпрд╣ рдЕрд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╣реИред рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рджреЛрд╕реНрддреЛрдВ!

@zcbenz рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП рд╕рдорд╛рдзрд╛рди рд╕рд╛рдордиреЗ рдЖрдП рд╣реИрдВ: рдХреНрдпрд╛ рдЗрд╕реЗ рдмрдВрдж рдХрд░рдирд╛ рдареАрдХ рд╣реИ?

рдЙрдореНрдо рдпрд╣ рдореБрджреНрджрд╛ рдЕрднреА рднреА рдмреЗрд╣рдж рдорд╛рдиреНрдп рд╣реИред "рд╕рдорд╛рдзрд╛рди" рд╕рднреА рдореЗрдВ рджреБрдГрд╕реНрд╡рдкреНрди рдХреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рджреВрд░ рдХрд░рдирд╛ рд╢рд╛рдорд┐рд▓ рд╣реИред

@keithkml рдХреЗ рд╕рд╛рде рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рд╣рдордд - рд╕рдорд╛рдзрд╛рди, рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╕реБрд╡рд┐рдЪрд╛рд░рд┐рдд (рдзрдиреНрдпрд╡рд╛рдж!), рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдорд╛рдзрд╛рди рдкреНрд░рджрд╛рди рдХрд┐рдП рдЬрд╛рдиреЗ рддрдХ "рд╡рд┐рдХрд▓реНрдк" рдХреА рддрд░реНрдЬ рдкрд░ рдЕрдзрд┐рдХ рд░рд╣реЗ рд╣реИрдВред рдЙрди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде, рдХреНрдпрд╛ рдпрд╣рд╛рдВ рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ рдореЗрд░реА рдкрд┐рдЫрд▓реА рдЯрд┐рдкреНрдкрдгреА рдореЗрдВ рдкреВрдЫреЗ рдЧрдП рдкреНрд░рд╢реНрдиреЛрдВ рдХрд╛ рдЙрддреНрддрд░ рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╡рд┐рд╢реЗрд╖рдЬреНрдЮрддрд╛ рд╣реИ? (рдФрд░ рдлрд┐рд░, рдХреГрдкрдпрд╛ рдореЗрд░реА рдЕрдЬреНрдЮрд╛рдирддрд╛ рдХреЛ рдХреНрд╖рдорд╛ рдХрд░реЗрдВ! :))

рдореБрдЭреЗ рдЕрднреА рднреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдУрдВ рдореЗрдВ рдмрд╛рдд рдирд╣реАрдВ рдорд┐рд▓реА рд╣реИред рдХреНрдпрд╛ рдХреЛрдИ рдореБрдЭреЗ рд╕реНрдкрд╖реНрдЯ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ CI рдореЗрдВ рдЪрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд▓реЗрдХреНрдЯреНрд░реЙрди рдРрдк рдХреЗ рд▓рд┐рдП NATIVE рд╣реЗрдбрд▓реЗрд╕ рдореЛрдб рд╣реИ рдпрд╛ рдирд╣реАрдВ?

@hitliubo рдХреНрд░реЛрдо рдореЗрдВ --headless рдзреНрд╡рдЬ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХреЗрд╡рд▓ рддрднреА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬрдм рдЖрдк рдлреНрд▓реИрд╢ рдпрд╛ рдкреАрдбреАрдПрдл рд░реАрдбрд░ рдЬреИрд╕реЗ рдкреНрд▓рдЧрдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк рд╣реИрдВ , рддреЛ рдЗрд╕ рд╕рдордп рдЙрддреНрддрд░ рдПрдХ рд╕рдХрд╛рд░рд╛рддреНрдордХ рдирд╣реАрдВ рд╣реИред рдпрджрд┐ рдЖрдк рдирд╣реАрдВ рд╣реИрдВ , рддреЛ рдЖрдк рдЙрд╕ рдзреНрд╡рдЬ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ( --disable-gpu рдпрджрд┐ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ - рдЙрдиреНрд╣реЛрдВрдиреЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕рдВрджрд░реНрдн рдмрдирд╛рддреЗ рд╕рдордп рдирдП рдХреНрд░реЛрдо рд╕рдВрд╕реНрдХрд░рдг IIRC рдореЗрдВ рдЗрд╕ рд▓рд╛рдкрддрд╛ рдирд┐рд╣рд┐рддрд╛рд░реНрде рдХреЛ рдареАрдХ рдХрд┐рдпрд╛) рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред (рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрджрд┐ рдЖрдк рджреБрдГрд╕реНрд╡рдкреНрди рдЬреИрд╕реА рдХрд┐рд╕реА рдЪреАрдЬрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдЖрдк рджреВрд╕рд░реА рд╢реНрд░реЗрдгреА рдореЗрдВ рдЖрддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЙрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд╕рдВрдмрдВрдзрд┐рдд рд░реЗрдкреЛ рдореЗрдВ рдПрдХ рд╕рдорд╕реНрдпрд╛ рджрд░реНрдЬ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП рдпрджрд┐ рдкрд╣рд▓реЗ рд╕реЗ рдХреЛрдИ рдирд╣реАрдВ рд╣реИред)

рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рдЕрдЧрд░ рдЖрдк --headless (рдпрд╛ рдЕрдЧрд░ рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ) рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рддреЛ рднреА рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ:

  • рд╡рд┐рдВрдбреЛрдЬрд╝: рдЬрдм рддрдХ рдЖрдк рдХреБрдЫ рдЕрд╕реНрдкрд╖реНрдЯ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЖрдкрдХреЗ рдкрд╛рд╕ рд╣рдореЗрд╢рд╛ рдПрдХ рд╡рд┐рдВрдбреЛ рд╕рдВрджрд░реНрдн рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рд╡рд┐рдВрдбреЛрдЬ рд╕рд░реНрд╡рд░ 2016 рдиреЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЬреАрдпреВрдЖрдИ рд╕рдорд░реНрдерди рдЫреЛрдбрд╝ рджрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдЕрднреА рднреА рдЬреАрдпреВрдЖрдИ рд╡рд┐рдВрдбреЛрдЬрд╝ рдмрдирд╛рдиреЗ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рдФрд░ AFAICT рдХреЛ рд╕реЗрд▓реЗрдирд┐рдпрдо рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдиреНрдпреВрдирддрдо рд╕рдорд░реНрдерди
  • macOS: рдпрд╣рд╛рдБ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╣рдореЗрд╢рд╛ рдПрдХ GUI рд╣реЛрдЧрд╛ (рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд░реЗрдВрдбрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рдВрдбреЛ рд╕рдВрджрд░реНрдн рд╣реЛрдЧрд╛)ред Apple рдРрд╕рд╛ рд╕рдВрд╕реНрдХрд░рдг рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
  • рд▓рд┐рдирдХреНрд╕: xvfb рдПрдХ рд╣реЗрдбрд▓реЗрд╕ рдПрдХреНрд╕ рд╕рд░реНрд╡рд░ рд╣реИ рдЬреЛ рд▓рдЧрднрдЧ рд╣рд░ рд╕рд╛рдорд╛рдиреНрдп рд▓рд┐рдирдХреНрд╕ рдбрд┐рд╕реНрдЯреНрд░реЛ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИ (рдФрд░ рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ "рдЖрдо" рдпрд╣рд╛рдВ рдмрд╣реБрдд рдХрдо рд╣реИ)ред рдпрджрд┐ рдЖрдк рдЯреНрд░реИрд╡рд┐рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЙрдирдХреЗ рдкрд╛рд╕ рдЗрд╕реЗ рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдирд┐рд░реНрджреЗрд╢ рд╣реИрдВ ред

@isiahmeadows рдЖрдкрдХреА рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдореЗрд░реЗ рдкрд╛рд╕ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдПрдХ рд╡реЗрдм рдРрдк рдЪрд▓ рд░рд╣рд╛ рд╣реИ рдФрд░ рдХреНрд░реЛрдо/рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдХреЗ рд╕рд╛рде рдореИрдВ рд╣рдореЗрд╢рд╛ рд╣реЗрдбрд▓реЗрд╕ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП - рд╣реЗрдбрд▓реЗрд╕ рдЬреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реВрдВред рд╣рд╛рд▓ рд╣реА рдореЗрдВ рд╣рдо рдЗрд╕реЗ рдЗрд▓реЗрдХреНрдЯреНрд░реЙрди рдРрдк рдореЗрдВ рдмрджрд▓рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдФрд░ рдореИрдВрдиреЗ --headless рдХреЗ рд╕рд╛рде рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рдЬреЛ рдореЗрд░реЗ macOS рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЕрдм рдореИрдВ рдЖрдкрдХреЛ рдХрд╛рд░рдг рдЬрд╛рдирддрд╛ рд╣реВрдВред рдзрдиреНрдпрд╡рд╛рдж!

рдЕрд╕рд▓ рдореЗрдВ рдореБрдЭреЗ xvfb рджреНрд╡рд╛рд░рд╛ рд╕рдорд╛рдзрд╛рди рдкрд╕рдВрдж рдирд╣реАрдВ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдореВрд▓ рдирд╣реАрдВ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рд╣рдо рджреЗрд╢реА рд╣реЗрдбрд▓реЗрд╕ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдЗрд╕реЗ рдЖрдЬрд╝рдорд╛рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рд╣реИред

FYI рдХрд░реЗрдВ - рдЕрдм рдореИрдВ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП capybara рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдБред

рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ (рд╡рд╛рдИ)

рдХреНрдпрд╛ рдЗрд╕ рдкрд░ рдХреЛрдИ рдЕрдкрдбреЗрдЯ рд╣реИ?

рдореБрдЭреЗ рд╕реАрдзреЗ рдПрдХ рд▓рд┐рдирдХреНрд╕ рдлреНрд░реЗрдо рдмрдлрд░ рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдкреЛрд╕реНрдЯ рд╕реЗ рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╣реЗрдбрд▓реЗрд╕ рдкрд░реАрдХреНрд╖рдг рдкрд░ рдХреЗрдВрджреНрд░рд┐рдд рд╣реИред рдХреНрдпрд╛ рдХрд┐рд╕реА _real_ рдлрд╝реНрд░реЗрдо рдмрдлрд╝рд░ рдХреЛ рд╕реАрдзреЗ рд░реЗрдВрдбрд░ рдХрд░рдиреЗ рдореЗрдВ рдХреЛрдИ рдкреНрд░рдЧрддрд┐ рд╣реБрдИ рд╣реИ?

@quinn рдореБрдЭреЗ рдкреВрд░рд╛ рдпрдХреАрди рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдПрдХ X рд╕рд░реНрд╡рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА, рд╣рд╛рд▓рд╛рдБрдХрд┐ рдпрджрд┐ рдЖрдк рдЪрд╛рд╣реЗрдВ рддреЛ X11 (Xorg) рдХреЛ рдлреНрд░реЗрдо-рдмрдлрд░ рдкрд░ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ (рджреЗрдЦреЗрдВ: https://www.x.org/releases/current/ doc/man/man4/fbdev.4.xhtml)ред

_рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ:_

рджрд░рдЕрд╕рд▓ рдЗрд╕ рдкрд░ рдереЛрдбрд╝рд╛ рдФрд░ рдЧреМрд░ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдУрдЬреЛрди рдХреЗ рдЗрд╕реНрддреЗрдорд╛рд▓ рд╕реЗ рднреА рдЗрд╕реЗ рд╣рд╛рд╕рд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред ( https://github.com/jakwu/ozone-fb )

рдУрдЬреЛрди рдХреЛ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рд╡реЗрд▓реИрдВрдб рд╕рдкреЛрд░реНрдЯ рдХреА рднреА рдЕрдиреБрдорддрд┐ рдорд┐рд▓реЗрдЧреА, рдПрдХ рдФрд░ рд╡рд┐рд╢реЗрд╖рддрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рд▓рд┐рдирдХреНрд╕ рд╡рд┐рддрд░рдгреЛрдВ рдХреЛ рджреЗрдЦрдХрд░ рдЗрд▓реЗрдХреНрдЯреНрд░реЙрди рдЧрд╛рдпрдм рд╣реИ, рдЗрд╕рдХреЗ рдмрд╛рдж рд╕реЗ рдорд╛рдЗрдЧреНрд░реЗрдЯ рд╣реЛ рдЧрдпрд╛ рд╣реИред

рдУрдЬреЛрди-рдПрдлрдмреА рдФрд░ @isiahmeadows рдЯрд┐рдкреНрдкрдгреА рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдлреНрд░реЗрдо рдмрдлрд░ рдХреЛ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдкрд░ GPU рддреНрд╡рд░рдг рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

@trusktr рдпрд╣ 2 рд╕рд╛рд▓ рдкреБрд░рд╛рдиреА рдЯрд┐рдкреНрдкрдгреА рд╣реИред рдореИрдВ рдЕрдкрдиреА рдЯрд┐рдкреНрдкрдгреА рдХреЛ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдХреЗ рд░реВрдк рдореЗрдВ рдирд╣реАрдВ рд▓реЗрдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреВрдВрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдмрджрд▓ рд╕рдХрддрд╛ рдерд╛ (рдореИрдВрдиреЗ рддрдм рд╕реЗ рдЬрд╛рдБрдЪ рдирд╣реАрдВ рдХреА рд╣реИ)ред

рдореИрдВ рдЗрд▓реЗрдХреНрдЯреНрд░реЙрди рдореЗрдВ рд╣реЗрдбрд▓реЗрд╕ рд▓рд┐рдм рдЬреЛрдбрд╝рддрд╛ рд╣реВрдВ рдФрд░ рд╣реЗрдбрд▓реЗрд╕рд╢реЗрд▓рдореЗрди рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реВрдВуАВ
Daud:

e run  --headless --enable-logging --v=2 --disable-gpu --screenshot  http://192.168.50.206

рддреЛ рдпрд╣ рджрд┐рдЦрд╛рддрд╛ рд╣реИ:

Running "/home/a/dev0/e9.2.1/src/out/ReleaseSym0/electron --headless --enable-logging --v=2 --disable-gpu --screenshot http://192.168.50.206:8889"
[1028/172650.483932:INFO:cpu_info.cc(53)] Available number of cores: 4
[1028/172650.484061:VERBOSE1:zygote_main_linux.cc(217)] ZygoteMain: initializing 0 fork delegates
[1028/172650.484400:INFO:cpu_info.cc(53)] Available number of cores: 4
[1028/172650.484465:VERBOSE1:zygote_main_linux.cc(217)] ZygoteMain: initializing 0 fork delegates
[1028/172650.493514:VERBOSE1:webrtc_internals.cc(119)] Could not get the download directory.
[1028/172650.494623:VERBOSE1:proxy_config_service_linux.cc(500)] All gsettings tests OK. Will get proxy config from gsettings.
[1028/172650.494764:VERBOSE1:proxy_config_service_linux.cc(1261)] Obtained proxy settings from annotation hash code 11258689
[1028/172650.494873:VERBOSE1:proxy_config_service_linux.cc(500)] All gsettings tests OK. Will get proxy config from gsettings.
[1028/172650.494919:VERBOSE1:proxy_config_service_linux.cc(1261)] Obtained proxy settings from annotation hash code 11258689
[1028/172650.504033:VERBOSE1:sandbox_linux.cc(69)] Activated seccomp-bpf sandbox for process type: renderer.
[1028/172650.505596:VERBOSE2:thread_state.cc(470)] [state:0x556bd75583a0] ScheduleGCIfNeeded
[1028/172650.511468:VERBOSE2:thread_state.cc(470)] [state:0x556bd75583a0] ScheduleGCIfNeeded
[1028/172650.524408:VERBOSE2:thread_state.cc(470)] [state:0x556bd75583a0] ScheduleGCIfNeeded
[1028/172650.524916:VERBOSE2:thread_state.cc(470)] [state:0x556bd75583a0] ScheduleGCIfNeeded
[1028/172650.525173:VERBOSE2:thread_state.cc(470)] [state:0x556bd75583a0] ScheduleGCIfNeeded
[1028/172650.525963:VERBOSE1:sandbox_linux.cc(69)] Activated seccomp-bpf sandbox for process type: gpu-process.
[1028/172650.526373:VERBOSE2:thread_state.cc(470)] [state:0x556bd75583a0] ScheduleGCIfNeeded
[1028/172650.528735:VERBOSE2:thread_state.cc(470)] [state:0x556bd75583a0] ScheduleGCIfNeeded
[1028/172650.531839:VERBOSE2:thread_state.cc(470)] [state:0x556bd75583a0] ScheduleGCIfNeeded
[1028/172650.535051:ERROR:paint_controller.cc(646)] PaintController::FinishCycle() completed
[1028/172650.550076:VERBOSE1:configured_proxy_resolution_service.cc(873)] PAC support disabled because there is no system implementation
[1028/172650.550312:VERBOSE1:configured_proxy_resolution_service.cc(873)] PAC support disabled because there is no system implementation
[1028/172650.550923:VERBOSE1:network_delegate.cc(32)] NetworkDelegate::NotifyBeforeURLRequest: http://192.168.50.206:8889/
[1028/172650.575829:VERBOSE1:url_loader.cc(418)] To buffer: http://192.168.50.206:8889/
[1028/172650.580122:VERBOSE1:v8_context_snapshot.cc(153)] A context is created from snapshot for main world
[1028/172650.587399:VERBOSE1:v8_context_snapshot.cc(153)] A context is created from snapshot for main world
[1028/172650.595294:ERROR:paint_controller.cc(646)] PaintController::FinishCycle() completed
[1028/172650.612295:ERROR:paint_controller.cc(646)] PaintController::FinishCycle() completed
[1028/172650.676553:INFO:headless_shell.cc(620)] Written to file screenshot.png.

рдХреНрдпрд╛ рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╣реЗрдбрд▓реЗрд╕ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ?

@ bigben0123 рджрд┐рд▓рдЪрд╕реНрдк рдФрд░ рдмрд╣реБрдд рд░реЛрдорд╛рдВрдЪрдХ рд╣реИ! рддреЛ рдЖрдкрдиреЗ рдХреНрд░реЛрдорд┐рдпрдо рд╕реЗ рд╣реЗрдбрд▓реЗрд╕ рд╢реЗрд▓ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рддреЗ рд╣реБрдП рдЗрд▓реЗрдХреНрдЯреНрд░реЙрди рдХрд╛ рдЕрдкрдирд╛ рд╕рдВрд╕реНрдХрд░рдг рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рд╣реИ?

рдХреНрдпрд╛ рдЖрдкрдиреЗ рд▓рд┐рдирдХреНрд╕ рдкрд░ рдПрдХреНрд╕ рдХреЗ рдмрд┐рдирд╛ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рд╣реИ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?

рдЬрдм рдХреНрд░реЛрдорд┐рдпрдо рдХреЛ рд╣реЗрдбрд▓реЗрд╕ рдореЛрдб рдореЗрдВ рдЪрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рд░реЗрдВрдбрд░ рдЙрдк-рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдкрд╛рд╕-рдереНрд░реВ-рд╣реЗрдбрд▓реЗрд╕ рдлреНрд▓реИрдЧ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдЖрдк рдореЗрдореЛрд░реА рд╕реЗ 'ps args' рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ)ред рдХреНрдпрд╛ рдпрд╣ рдЖрдкрдХреЗ рд▓рд┐рдП рд╣реЛ рд░рд╣рд╛ рд╣реИ?

(рдЕрдЬреАрдм рддрд░рд╣ рд╕реЗ рдЗрд▓реЗрдХреНрдЯреНрд░реЙрди рдХреЗ рд╕рд╛рде рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ - рдмрд┐рдирд╛ рд╕рд┐рд░ рдХреЗ рдзреНрд╡рдЬ рдХреЛ рд░реЗрдВрдбрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдкрд╛рд░рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди GPU рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рд╣реИред)

@ bigben0123 рджрд┐рд▓рдЪрд╕реНрдк рдФрд░ рдмрд╣реБрдд рд░реЛрдорд╛рдВрдЪрдХ рд╣реИ! рддреЛ рдЖрдкрдиреЗ рдХреНрд░реЛрдорд┐рдпрдо рд╕реЗ рд╣реЗрдбрд▓реЗрд╕ рд╢реЗрд▓ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рддреЗ рд╣реБрдП рдЗрд▓реЗрдХреНрдЯреНрд░реЙрди рдХрд╛ рдЕрдкрдирд╛ рд╕рдВрд╕реНрдХрд░рдг рд╕рдВрдХрд▓рд┐рдд рдХрд┐рдпрд╛ рд╣реИ?

рдХреНрдпрд╛ рдЖрдкрдиреЗ рд▓рд┐рдирдХреНрд╕ рдкрд░ рдПрдХреНрд╕ рдХреЗ рдмрд┐рдирд╛ рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рд╣реИ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?

рдЬрдм рдХреНрд░реЛрдорд┐рдпрдо рдХреЛ рд╣реЗрдбрд▓реЗрд╕ рдореЛрдб рдореЗрдВ рдЪрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ рд░реЗрдВрдбрд░ рдЙрдк-рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдкрд╛рд╕-рдереНрд░реВ-рд╣реЗрдбрд▓реЗрд╕ рдлреНрд▓реИрдЧ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдЖрдк рдореЗрдореЛрд░реА рд╕реЗ 'ps args' рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ)ред рдХреНрдпрд╛ рдпрд╣ рдЖрдкрдХреЗ рд▓рд┐рдП рд╣реЛ рд░рд╣рд╛ рд╣реИ?

(рдЕрдЬреАрдм рддрд░рд╣ рд╕реЗ рдЗрд▓реЗрдХреНрдЯреНрд░реЙрди рдХреЗ рд╕рд╛рде рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ - рдмрд┐рдирд╛ рд╕рд┐рд░ рдХреЗ рдзреНрд╡рдЬ рдХреЛ рд░реЗрдВрдбрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдкрд╛рд░рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди GPU рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рд╣реИред)

рд╣рд╛рдВ, рдореИрдВ рдЗрд╕реЗ рдЙрдмрдВрдЯреВ рдкрд░ рдЪрд▓рд╛рддрд╛ рд╣реВрдВ рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрдорд╛рдВрдб рдореЛрдб рдореЗрдВ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИред
рд╣реЗрдбрд▓реЗрд╕ рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:

electron --headless --enable-logging --v=2 --disable-gpu -print-to-pdf http://www.google.com
electron --type=zygote --no-zygote-sandbox --enable-logging --headless --v=2 --headless
electron --type=zygote --enable-logging --headless --v=2 --headless
electron --type=zygote --enable-logging --headless --v=2 --headless
electron --type=gpu-process --field-trial-handle=15536072708541054845,15522400966085077738,131072 --enable-logging --headless --v=2 --headless --gpu-preferences=MAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAABgAAAAAAAQAAAAAAAAAAAAAAAAAAAACAAAAAAAAAA= --use-gl=swiftshader-webgl --override-use-software-gl-for-tests --enable-logging --v=2 --shared-files
electron --type=utility --field-trial-handle=15536072708541054845,15522400966085077738,131072 --lang=en-US --service-sandbox-type=network --enable-logging --use-gl=swiftshader-webgl --v=2 --headless --enable-logging --v=2 --shared-files=v8_snapshot_data:100
electron --type=renderer --allow-pre-commit-input --enable-logging --v=2 --field-trial-handle=15536072708541054845,15522400966085077738,131072 --disable-databases --disable-gpu-compositing --lang=en-US --headless --lang=en-US --num-raster-threads=2 --enable-main-frame-before-activation --renderer-client-id=4 --shared-files=v8_snapshot_data:100
electron --type=broker

@ bigben0123 рдХреНрдпрд╛ рдЖрдкрдиреЗ рдХрд╣реАрдВ рдЕрдкрдиреЗ рдкрд░рд┐рд╡рд░реНрддрди рдХрд┐рдП рд╣реИрдВ? рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рдЕрдЧрд░ рдпрд╣ рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдЗрд╕реЗ рдЗрд▓реЗрдХреНрдЯреНрд░реЙрди рдХреЛрд░ рдореЗрдВ рдирд╣реАрдВ рдмрдирд╛рддрд╛ рд╣реИ, рддреЛ рдореБрдЭреЗ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЕрдЪреНрдЫрд╛ рд▓рдЧреЗрдЧрд╛ред

рдпрд╣ рдХрдорд┐рдЯ рдХреЗрд╡рд▓ рдХреНрд░реЛрдо рд╣реЗрдбрд▓реЗрд╕ рд▓рд┐рдм рдХреЛ рдЗрд▓реЗрдХреНрдЯреНрд░реЙрди рдореЗрдВ рдорд░реНрдЬ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЖрдк рдЗрд╕реЗ рдЙрд╕реА рддрд░рд╣ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреИрд╕реЗ рдХреНрд░реЛрдо рдХрд░рддрд╛ рд╣реИред
https://github.com/bigben0123/electron/commit/b6cad8993d68d39f1732aa6ed5ece0135b9ae0c8

рдЬрд╣рд╛рдВ рддрдХ тАЛтАЛрдореЗрд░рд╛ рд╕рдВрдмрдВрдз рд╣реИ, рдХреНрд░реЛрдо рдФрд░ рд╣реЗрдбрд▓реЗрд╕ рдореЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рд╛рдордЧреНрд░реА рдкрд░рдд рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╣реИред рджреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╢реЗрд▓ рдХреА рддрд░рд╣, рдпрджрд┐ рдЖрдк рд╣реЗрдбрд▓реЗрд╕ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЗрд╕рдХрд╛ рдХреНрд░реЛрдо рд╕реЗ рдХреЛрдИ рд▓реЗрдирд╛-рджреЗрдирд╛ рдирд╣реАрдВ рд╣реИ, рд╕рд┐рд╡рд╛рдп рдЗрд╕рдХреЗ рдХрд┐ рдЖрдк "рдХреНрд░реЛрдо --рд╣реЗрдбрд▓реЗрд╕" рд╕реЗ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред

рд╣реЗрдбрд▓реЗрд╕ рд▓рдХреНрд╖реНрдп рдореЗрдВ рд╕реЗ рдПрдХ рдпрд╣ рд╣реИ рдХрд┐ "рдХреНрд░реЛрдорд┐рдпрдо рдХреЗ рдХреЛрдб рдмреЗрд╕ рдореЗрдВ рдЗрдирд╡реЗрд╕рд┐рд╡ рдпрд╛ рд╣реЗрдбрд▓реЗрд╕-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ (рдЬреИрд╕реЗ, #ifdefs) рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдХрдо рдХрд░реЗрдВ"ред

рдЗрд╕рд▓рд┐рдП, рдпрд╣ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИ рдХрд┐ xvfb рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд▓реЗрдХреНрдЯреНрд░реЙрди рд╣реЗрдбрд▓реЗрд╕ рд╣реИред рд╣рдо рдХреЗрд╡рд▓ рдЗрд▓реЗрдХреНрдЯреНрд░рд╛рди рдХреЛ рдмрд┐рдирд╛ рд╕рд┐рд░ рдХреЗ рд╕рдорд░реНрдерди рджреЗ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрдк рдЗрд▓реЗрдХреНрдЯреНрд░реЙрди рдРрдкреНрд╕ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред

рд╣рдо рдПрдХ рдирдИ рд╣реЗрдбрд▓реЗрд╕ рд╢рд╛рдЦрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд▓реЗрдХреНрдЯреНрд░реЙрди рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реЗрдбрд▓реЗрд╕ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдЗрд▓реЗрдХреНрдЯреНрд░реЙрди/BUILD.gn рд╕реЗ рдирд┐рд░реНрднрд░рддрд╛ рдХреЛ рджреВрд░ рдХрд░реЗрдВ:

      "//ui/events/devices/x11",
      "//ui/events/platform/x11",
      "//ui/gtk"  #all of gkt related

    if (use_x11) {
      deps += [
        "//ui/gfx/x",
        "//ui/gtk:x",
      ]
    }
    configs += [ ":gio_unix" ]
    configs += [ "//build/config/linux:x11" ]

рдХреЗ рд╕рд╛рде рдмрджрд▓реЗрдВ:
"//рдпреВрдЖрдИ/рдбрд┐рд╕реНрдкреНрд▓реЗ",
"//ui/рдИрд╡реЗрдВрдЯ/рдбрд┐рд╡рд╛рдЗрд╕",

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

wsangtoki picture wsangtoki  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

christiangenco picture christiangenco  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ThorstenHans picture ThorstenHans  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

reggi picture reggi  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

PhilAndrew picture PhilAndrew  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ