Merge pull request #3826 from atom/remote-crash-reporting-defaults

Require submitURL and companyName options to crashReporter.start
This commit is contained in:
Cheng Zhao 2015-12-16 12:02:28 +08:00
commit 2b4e6080a8
14 changed files with 27 additions and 38 deletions

View file

@ -19,8 +19,6 @@ class CrashReporter
{app} = if process.type is 'browser' then electron else electron.remote
@productName ?= app.getName()
companyName ?= 'GitHub, Inc'
submitURL ?= 'http://54.249.141.255:1127/post'
autoSubmit ?= true
ignoreSystemCrashHandler ?= false
extra ?= {}
@ -29,6 +27,14 @@ class CrashReporter
extra._companyName ?= companyName
extra._version ?= app.getVersion()
unless companyName?
deprecate.log('companyName is now a required option to crashReporter.start')
return
unless submitURL?
deprecate.log('submitURL is now a required option to crashReporter.start')
return
start = => binding.start @productName, companyName, submitURL, autoSubmit, ignoreSystemCrashHandler, extra
if process.platform is 'win32'
@ -40,9 +46,7 @@ class CrashReporter
env = ATOM_SHELL_INTERNAL_CRASH_SERVICE: 1
spawn process.execPath, args, {env, detached: true}
start()
else
start()
start()
getLastCrashReport: ->
reports = this.getUploadedReports()
@ -61,6 +65,5 @@ class CrashReporter
path.join tmpdir, "#{@productName} Crashes", 'uploads.log'
binding._getUploadedReports log
crashRepoter = new CrashReporter
module.exports = crashRepoter

View file

@ -52,9 +52,12 @@ deprecate.event = (emitter, oldName, newName, fn) ->
else
@emit oldName, args...
# Print deprecate warning.
# Print deprecation warning.
deprecate.warn = (oldName, newName) ->
message = "#{oldName} is deprecated. Use #{newName} instead."
deprecate.log "#{oldName} is deprecated. Use #{newName} instead."
# Print deprecation message.
deprecate.log = (message) ->
if process.throwDeprecation
throw new Error(message)
else if process.traceDeprecation

View file

@ -70,9 +70,6 @@ El `main.js` debería crear las ventanas y gestionar los eventos del sistema, un
var app = require('app'); // Módulo para controlar el ciclo de vida de la aplicación.
var BrowserWindow = require('browser-window'); // Módulo para crear uan ventana de navegador.
// Reportar crashes a nuestro servidor.
require('crash-reporter').start();
// Mantener una referencia global al objeto window, si no lo haces, esta ventana
// se cerrará automáticamente cuando el objeto JavaScript sea recolectado (garbage collected):
var mainWindow = null;

View file

@ -15,9 +15,6 @@ También puedes agregar la opción `plugins` de `browser-window`. Por ejemplo,
var app = require('app');
var BrowserWindow = require('browser-window');
// Report crashes to our server.
require('crash-reporter').start();
// Keep a global reference of the window object, if you don't, the window will
// be closed automatically when the javascript object is GCed.
var mainWindow = null;

View file

@ -53,9 +53,6 @@ your-app/
var app = require('app'); // Module to control application life.
var BrowserWindow = require('browser-window'); // Module to create native browser window.
// Report crashes to our server.
require('crash-reporter').start();
// Keep a global reference of the window object, if you don't, the window will
// be closed automatically when the javascript object is GCed.
var mainWindow = null;

View file

@ -78,9 +78,6 @@ const electron = require('electron');
const app = electron.app; // 어플리케이션 기반을 조작 하는 모듈.
const BrowserWindow = electron.BrowserWindow; // 네이티브 브라우저 창을 만드는 모듈.
// Electron 개발자에게 crash-report를 보냄.
electron.crashReporter.start();
// 윈도우 객체를 전역에 유지합니다. 만약 이렇게 하지 않으면
// 자바스크립트 GC가 일어날 때 창이 멋대로 닫혀버립니다.
var mainWindow = null;

View file

@ -81,9 +81,6 @@ exemplo:
var app = require('app'); // Módulo para controlar o ciclo de vida do app.
var BrowserWindow = require('browser-window'); // Módulo para criar uma janela nativa do browser.
// Relate falhas para nossos servidores.
require('crash-reporter').start();
// Mantenha uma referência global para o objeto window, se você não o fizer,
// a janela será fechada automaticamente quando o objeto JavaScript for
// coletado pelo garbage collector.

View file

@ -23,9 +23,6 @@ Por exemplo:
var app = require('app');
var BrowserWindow = require('browser-window');
// Informa os erros ao ao servidor.
require('crash-reporter').start();
// Mantém uma referência global da janela, se não manter, a janela irá fechar
// automaticamente quando o objeto javascript for GCed.
var mainWindow = null;

View file

@ -45,9 +45,6 @@ your-app/
var app = require('app'); // 控制应用生命周期的模块。
var BrowserWindow = require('browser-window'); // 创建原生浏览器窗口的模块
// 给我们的服务器发送异常报告。
require('crash-reporter').start();
// 保持一个对于 window 对象的全局引用,不然,当 JavaScript 被 GC
// window 会被自动地关闭
var mainWindow = null;

View file

@ -62,9 +62,6 @@ __注意__如果 `main` 沒有在 `package.json` 裏, Electron會嘗試載
var app = require('app'); // 控制應用程式生命週期的模組。
var BrowserWindow = require('browser-window'); // 創造原生瀏覽器窗口的模組
// 對我們的伺服器傳送異常報告。
require('crash-reporter').start();
// 保持一個對於 window 物件的全域的引用,不然,當 JavaScript 被GC
// window 會被自動地關閉
var mainWindow = null;

View file

@ -25,8 +25,8 @@ The `crash-reporter` module has the following methods:
`options` Object, properties:
* `productName` String, default: Electron.
* `companyName` String, default: GitHub, Inc.
* `submitURL` String, default: http://54.249.141.255:1127/post.
* `companyName` String (**required**)
* `submitURL` String, (**required**)
* URL that crash reports will be sent to as POST.
* `autoSubmit` Boolean, default: `true`.
* Send the crash report without user interaction.

View file

@ -84,9 +84,6 @@ const electron = require('electron');
const app = electron.app; // Module to control application life.
const BrowserWindow = electron.BrowserWindow; // Module to create native browser window.
// Report crashes to our server.
electron.crashReporter.start();
// Keep a global reference of the window object, if you don't, the window will
// be closed automatically when the JavaScript object is garbage collected.
var mainWindow = null;

View file

@ -55,5 +55,12 @@ describe 'crash-reporter module', ->
pathname: path.join fixtures, 'api', 'crash.html'
search: "?port=#{port}"
if process.platform is 'darwin'
crashReporter.start {'submitURL': 'http://127.0.0.1:' + port}
crashReporter.start
companyName: 'Umbrella Corporation'
submitURL: "http://127.0.0.1:#{port}"
w.loadURL url
describe ".start(options)", ->
it 'requires that the companyName and submitURL options be specified', ->
assert.throws(-> crashReporter.start({companyName: 'Missing submitURL'}))
assert.throws(-> crashReporter.start({submitURL: 'Missing companyName'}))

View file

@ -1,3 +1,6 @@
// Disable use of deprecated functions.
process.throwDeprecation = true;
const electron = require('electron');
const app = electron.app;
const ipcMain = electron.ipcMain;