Merge CONTRIBUTING.md

This commit is contained in:
Lucas Pugliesi 2016-10-03 15:18:03 -03:00
commit 8d35576a36
15 changed files with 263 additions and 34 deletions

View file

@ -1,4 +1,4 @@
Copyright (c) 2014 GitHub Inc. Copyright (c) 2016 GitHub Inc.
Permission is hereby granted, free of charge, to any person obtaining Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the a copy of this software and associated documentation files (the

View file

@ -79,3 +79,7 @@ forums
Check out [awesome-electron](https://github.com/sindresorhus/awesome-electron) Check out [awesome-electron](https://github.com/sindresorhus/awesome-electron)
for a community maintained list of useful example apps, tools and resources. for a community maintained list of useful example apps, tools and resources.
## License
MIT © 2016 Github

View file

@ -21,6 +21,10 @@ namespace atom {
namespace { namespace {
void FreeNodeBufferData(char* data, void* hint) {
delete[] data;
}
void RunCallbackInUI( void RunCallbackInUI(
const AtomBlobReader::CompletionCallback& callback, const AtomBlobReader::CompletionCallback& callback,
char* blob_data, char* blob_data,
@ -32,7 +36,8 @@ void RunCallbackInUI(
v8::HandleScope handle_scope(isolate); v8::HandleScope handle_scope(isolate);
if (blob_data) { if (blob_data) {
v8::Local<v8::Value> buffer = node::Buffer::New(isolate, v8::Local<v8::Value> buffer = node::Buffer::New(isolate,
blob_data, static_cast<size_t>(size)).ToLocalChecked(); blob_data, static_cast<size_t>(size), &FreeNodeBufferData, nullptr)
.ToLocalChecked();
callback.Run(buffer); callback.Run(buffer);
} else { } else {
callback.Run(v8::Null(isolate)); callback.Run(v8::Null(isolate));

View file

@ -71,7 +71,8 @@ void WindowList::RemoveObserver(WindowListObserver* observer) {
void WindowList::CloseAllWindows() { void WindowList::CloseAllWindows() {
WindowVector windows = GetInstance()->windows_; WindowVector windows = GetInstance()->windows_;
for (const auto& window : windows) for (const auto& window : windows)
window->Close(); if (!window->IsClosed())
window->Close();
} }
WindowList::WindowList() { WindowList::WindowList() {

View file

@ -144,7 +144,7 @@ void NodeBindings::Initialize() {
// uv_init overrides error mode to suppress the default crash dialog, bring // uv_init overrides error mode to suppress the default crash dialog, bring
// it back if user wants to show it. // it back if user wants to show it.
std::unique_ptr<base::Environment> env(base::Environment::Create()); std::unique_ptr<base::Environment> env(base::Environment::Create());
if (env->HasVar("ELECTRON_DEFAULT_ERROR_MODE")) if (is_browser_ || env->HasVar("ELECTRON_DEFAULT_ERROR_MODE"))
SetErrorMode(GetErrorMode() & ~SEM_NOGPFAULTERRORBOX); SetErrorMode(GetErrorMode() & ~SEM_NOGPFAULTERRORBOX);
#endif #endif
} }

View file

@ -47,12 +47,15 @@ char* CopyPDFDataOnIOThread(
new base::SharedMemory(params.metafile_data_handle, true)); new base::SharedMemory(params.metafile_data_handle, true));
if (!shared_buf->Map(params.data_size)) if (!shared_buf->Map(params.data_size))
return nullptr; return nullptr;
char* memory_pdf_data = static_cast<char*>(shared_buf->memory());
char* pdf_data = new char[params.data_size]; char* pdf_data = new char[params.data_size];
memcpy(pdf_data, memory_pdf_data, params.data_size); memcpy(pdf_data, shared_buf->memory(), params.data_size);
return pdf_data; return pdf_data;
} }
void FreeNodeBufferData(char* data, void* hint) {
delete[] data;
}
} // namespace } // namespace
namespace printing { namespace printing {
@ -126,11 +129,12 @@ void PrintPreviewMessageHandler::RunPrintToPDFCallback(
v8::HandleScope handle_scope(isolate); v8::HandleScope handle_scope(isolate);
if (data) { if (data) {
v8::Local<v8::Value> buffer = node::Buffer::New(isolate, v8::Local<v8::Value> buffer = node::Buffer::New(isolate,
data, static_cast<size_t>(data_size)).ToLocalChecked(); data, static_cast<size_t>(data_size), &FreeNodeBufferData, nullptr)
.ToLocalChecked();
print_to_pdf_callback_map_[request_id].Run(v8::Null(isolate), buffer); print_to_pdf_callback_map_[request_id].Run(v8::Null(isolate), buffer);
} else { } else {
v8::Local<v8::String> error_message = v8::String::NewFromUtf8(isolate, v8::Local<v8::String> error_message = v8::String::NewFromUtf8(isolate,
"Fail to generate PDF"); "Failed to generate PDF");
print_to_pdf_callback_map_[request_id].Run( print_to_pdf_callback_map_[request_id].Run(
v8::Exception::Error(error_message), v8::Null(isolate)); v8::Exception::Error(error_message), v8::Null(isolate));
} }

View file

@ -309,7 +309,7 @@ Returns:
* `matches` Integer (optional) - 일치하는 개수. * `matches` Integer (optional) - 일치하는 개수.
* `selectionArea` Object (optional) - 첫 일치 부위의 좌표. * `selectionArea` Object (optional) - 첫 일치 부위의 좌표.
[`webContents.findInPage`](web-contents.md#webcontentsfindinpage) 요청의 결과를 [`webContents.findInPage`] 요청의 결과를
사용할 수 있을 때 발생하는 이벤트입니다. 사용할 수 있을 때 발생하는 이벤트입니다.
#### Event: 'media-started-playing' #### Event: 'media-started-playing'
@ -755,7 +755,7 @@ CSS 코드를 현재 웹 페이지에 삽입합니다.
#### `contents.stopFindInPage(action)` #### `contents.stopFindInPage(action)`
* `action` String - [`webContents.findInPage`](web-contents.md#webcontentfindinpage) * `action` String - [`webContents.findInPage`]
요청이 종료되었을 때 일어날 수 있는 작업을 지정합니다. 요청이 종료되었을 때 일어날 수 있는 작업을 지정합니다.
* `clearSelection` - 선택을 취소합니다. * `clearSelection` - 선택을 취소합니다.
* `keepSelection` - 선택을 일반 선택으로 변경합니다. * `keepSelection` - 선택을 일반 선택으로 변경합니다.
@ -1235,3 +1235,4 @@ win.webContents.debugger.sendCommand('Network.enable')
디버깅 타겟이 관련 이벤트를 발생시킬 때 마다 발생하는 이벤트입니다. 디버깅 타겟이 관련 이벤트를 발생시킬 때 마다 발생하는 이벤트입니다.
[rdp]: https://developer.chrome.com/devtools/docs/debugger-protocol [rdp]: https://developer.chrome.com/devtools/docs/debugger-protocol
[`webContents.findInPage`]: web-contents.md#contentsfindinpagetext-options

View file

@ -0,0 +1,46 @@
# Pacto de Conduta do Colaborador de Código
## Nosso Compromisso
No interesse de promover um ambiente aberto e acolhedor, nos como colaboradores e mantenedores comprometidos a fazer participação em nosso projeto e nossa comunidade uma experiência livre de assédio para todos, independentemente da idade, estatura, deficiência, etnia, identidade de gênero e expressão, nivel de experiência, nacionalidade, aparência pessoal, raça, religião ou identidade sexual e orientação.
## Nossos Padrões
Exemplos de comportamento que contribui para criar um ambiente positivo incluem:
* Usar uma linguagem de boas-vindas e incluisiva
* Ser respeitoso com diferentes pontos de vista e experiências
* Graciosamente aceitar críticas construtivas
* Incidindo sobre o que é melhor para a comunidade
* Mostrando empatia para com outros membros da comunidade
Exemplos de comportamento inaceitável pelos participantes incluem:
* O uso de linguagem sexualizada ou imagens e atenção sexual indesejada ou avanços
* Trolando, comentários depreciativos, e ataques insultantes/pessoais ou politicos
* Assédio público ou privado
* A publicação de outras informações privadas, tais como um endereço físico ou eletrônico, sem permissão explícita
* Outra conduta que possa ser razoavelmente considerada inadequada em um ambiente profissional
## Nossas Responsabilidades
Mantenedores do projeto são responsáveis por esclarecer as normas do comportamento aceitável e espera-se que as medidas corretivas adequadas e justas em resposta a todas as instâncias do comportamento inaceitável.
Mantenedores do projeto têm o direito e a responsabilidade de remover, editar, ou rejeitar comentários, commits, código, edição de wiki, issues e outras contribuições que não estão alinhadas a este Código de Conduta, ou proibir temporária ou permamentemente qualquer colaborador por outros comportamentos que considerem inapropriado, ameaçador, ofensivo ou prejudicial.
## Escopo
Este Código de Conduta aplica-se tanto dentro dos espaços do projeto e em espaços públicos quando um indivíduo está representando o projeto ou sua comunidade. Exemplos de que representa um projeto ou comunidade incluem o uso de um endereço de e-mail do projeto oficial, postado através de uma conta oficial de mídia social, ou agindo como um representante nomeado em um evento on-line ou off-line. Representação de um projeto pode ser ainda definidos e esclarecidos pelos mantenedores do projeto.
## Aplicação
Instânicas de assédio ou comportamento abusivo, de outro modo inaceitáveis podem ser relatados em contato com a equipe do projeto em [electron@github.com](mailto:electron@github.com). Todas as reclamações serão analisadas e investigadas e irá resultar em uma resposta que for considerada necessária e adequada ás circunstâncias. A equipe do projeto é obrigada a manter a confidencialidade no que diz respeito ao relato de um incidente. Mais detalhes das políticas de aplicação específicas podem ser publicadas separadamente.
Mantenedores de projetos que não seguem ou fazem comprir o Código de Conduta de boa-fé podem enfrentar repercussões temporárias ou permanentes, conforme determinado por outros membros da liderança do projeto.
## Atribuição
Este Código de Conduta é uma adaptação do [Pacto do Colaborador][homepage], versão 1.4, disponível em [http://contributor-covenant.org/version/1/4][version]
[homepage]: http://contributor-covenant.org
[version]: http://contributor-covenant.org/version/1/4/

View file

@ -5,27 +5,27 @@
:+1::tada: Primeiramente, obrigado por utilizar seu tempo contribuindo! :tada::+1: :+1::tada: Primeiramente, obrigado por utilizar seu tempo contribuindo! :tada::+1:
Esse projeto segue um [código de conduta](CODE_OF_CONDUCT.md). Esse projeto segue um [código de conduta](CODE_OF_CONDUCT.md).
Participando, é esperado que o código seja seguido. Favor reportar comportamentos inaceitáveis para atom@github.com. Ao participar, é esperado que o código seja seguido. Favor reportar comportamentos inaceitáveis para atom@github.com.
O texto a seguir é um conjunto de diretrizes para a contribuição com o Electron. O texto a seguir é um conjunto de diretrizes para a contribuir com o Electron.
São apenas diretrizes, e não regras, use o seu bom senso e sinta-se livre para sugerir modificações nesse documento em um pull request. Estas são apenas diretrizes e não regras, use o seu bom senso e sinta-se livre para propor alterações nesse documento em um pull request.
## Enviando Issues ## Reportando Issues
* Você pode criar uma issue [aqui](https://github.com/electron/electron/issues/new), * Você pode criar uma issue [aqui](https://github.com/electron/electron/issues/new),
porém, antes disso, por favor, leia as notas abaixo e inclua o máximo de detalhes possível em seu relato. Se puder, favor informar: mas antes disso, por favor, leia as notas abaixo e inclua o máximo de detalhes possíveis em seu relato. Se puder, favor informar:
* A versão do Electron utilizada * A versão do Electron utilizada
* O sistema operacional utilizado * O sistema operacional utilizado
* Se possível, o que estava fazendo para que esse problema surgisse e o que era esperado que acontecesse * Se possível, o que estava fazendo quando o problema ocorreu e o que era esperado que acontecesse
* Alguns outros meios que irão ajudar a resolver a issue: * Alguns outros meios que irão ajudar a resolver a issue:
* Imagens da tela e GIFs animados * Capturas de tela e GIFs animados
* Saída de erro que aparece no terminal, dev tools ou algum em algum alerta * Saída de erro que aparece no terminal, dev tools ou algum em algum alerta
* Faça uma [pesquisa rápida](https://github.com/electron/electron/issues?utf8=✓&q=is%3Aissue+) * Faça uma [pesquisa rápida](https://github.com/electron/electron/issues?utf8=✓&q=is%3Aissue+)
para verificar se já não existe uma issue similar já aberta para verificar se já não existe uma issue similar já aberta
## Enviando Pull Requests ## Submetendo Pull Requests
* Inclua imagens da tela e GIFs animados em seu pull request sempre que possível. * Inclua capturas de tela e GIFs animados em seu pull request sempre que possível.
* Siga os [padrões de código definidos nos documentos](/docs/development/coding-style.md) para JavaScript, C++, e Python. * Siga os [padrões de código definidos nos documentos](/docs/development/coding-style.md) para JavaScript, C++, e Python.
* Escreva a documentação em [Markdown](https://daringfireball.net/projects/markdown). * Escreva a documentação em [Markdown](https://daringfireball.net/projects/markdown).
Veja o [Guia de estilo de documentação](/docs/styleguide.md). Veja o [Guia de estilo de documentação](/docs/styleguide.md).
@ -33,16 +33,16 @@ porém, antes disso, por favor, leia as notas abaixo e inclua o máximo de detal
## Guias de estilo ## Guias de estilo
### General Code ### Código Geral
* Arquivos terminam com uma nova linha. * Terminar arquivos com uma nova linha.
* A organização deve estar na seguinte ordem: * A organização deve estar na seguinte ordem:
* Módulos embutidos do Node (como o `path`) * Módulos embutidos do Node (como o `path`)
* Módulos embutidos do Electron (como `ipc`, `app`) * Módulos embutidos do Electron (como `ipc`, `app`)
* Módulos locais (usando caminhos relativos) * Módulos locais (usando caminhos relativos)
* Defina as propriedades da classe na seguinte ordem: * Defina as propriedades da classe na seguinte ordem:
* Métodos da classe e propriedades (métodos iniciam com `@`) * Métodos e propriedades da classe (métodos iniciam com `@`)
* Métodos de instância e propriedades * Métodos e propriedades de instância
* Evite o uso de códigos dependentes da plataforma: * Evite o uso de códigos dependentes da plataforma:
* Use `path.join()` para concatenar nomes de arquivos. * Use `path.join()` para concatenar nomes de arquivos.
* Use `os.tmpdir()` ao invés de `/tmp` quando precisar referenciar o diretório temporário. * Use `os.tmpdir()` ao invés de `/tmp` quando precisar referenciar o diretório temporário.
@ -60,13 +60,13 @@ porém, antes disso, por favor, leia as notas abaixo e inclua o máximo de detal
* :art: `:art:` quando aperfeiçoar o formato/estrutura do código * :art: `:art:` quando aperfeiçoar o formato/estrutura do código
* :racehorse: `:racehorse:` quando aperfeiçoar a performance * :racehorse: `:racehorse:` quando aperfeiçoar a performance
* :non-potable_water: `:non-potable_water:` quando previnir vazamento de memória * :non-potable_water: `:non-potable_water:` quando previnir vazamento de memória
* :memo: `:memo:` quando escrever documentos * :memo: `:memo:` quando escrever documentação
* :penguin: `:penguin:` quando consertar algo no Linux * :penguin: `:penguin:` quando corrigir algo no Linux
* :apple: `:apple:` quando consertar algo no macOS * :apple: `:apple:` quando corrigir algo no OSX
* :checkered_flag: `:checkered_flag:` quando consertar algo no Windows * :checkered_flag: `:checkered_flag:` quando corrigir algo no Windows
* :bug: `:bug:` quando corrigir um bug * :bug: `:bug:` quando corrigir um bug
* :fire: `:fire:` quando remover código ou arquivos * :fire: `:fire:` quando remover código ou arquivos
* :green_heart: `:green_heart:` quando consertar o build do CI * :green_heart: `:green_heart:` quando corrigir o build do CI
* :white_check_mark: `:white_check_mark:` quando adicionar testes * :white_check_mark: `:white_check_mark:` quando adicionar testes
* :lock: `:lock:` quando estiver lidando com segurança * :lock: `:lock:` quando estiver lidando com segurança
* :arrow_up: `:arrow_up:` quando atualizar dependências * :arrow_up: `:arrow_up:` quando atualizar dependências

View file

@ -0,0 +1,67 @@
[![Electron Logo](http://electron.atom.io/images/electron-logo.svg)](http://electron.atom.io/)
[![Travis Build Status](https://travis-ci.org/electron/electron.svg?branch=master)](https://travis-ci.org/electron/electron)
[![AppVeyor Build Status](https://ci.appveyor.com/api/projects/status/kvxe4byi7jcxbe26/branch/master?svg=true)](https://ci.appveyor.com/project/Atom/electron)
[![devDependency Status](https://david-dm.org/electron/electron/dev-status.svg)](https://david-dm.org/electron/electron#info=devDependencies)
[![Join the Electron Community on Slack](http://atom-slack.herokuapp.com/badge.svg)](http://atom-slack.herokuapp.com/)
:memo: Available Translations: [Korean](https://github.com/electron/electron/tree/master/docs-translations/ko-KR/project/README.md) | [Simplified Chinese](https://github.com/electron/electron/tree/master/docs-translations/zh-CN/project/README.md) | [Brazilian Portuguese](https://github.com/electron/electron/tree/master/docs-translations/pt-BR/project/README.md)
O framework Electron permite escrever aplicações desktop multi-plataforma usando JavaScript, HTML e CSS. Baseia-se em [Node.js](https://nodejs.org/) e [Chromium](http://www.chromium.org) e é usado pelo [editor Atom](https://github.com/atom/atom) e muitas outras [aplicações](http://electron.atom.io/apps).
Siga [@ElectronJS](https://twitter.com/electronjs) no Twitter para anúncios importantes.
Este projeto adere ao código do Pacto do Colaborador [código de conduta](CODE_OF_CONDUCT.md). Ao participar, espera-se que você siga esse código. Por favor, reporte o comportamento inaceitável para electron@github.com.
## Downloads
Binários pré-construídos e símbolos de depuração do Electron para Linux, Windows e macOS podem ser encontrados na página de [releases](https://github.com/electron/electron/releases).
Você também pode usar [`npm`](https://docs.npmjs.com/) para instalar os binários do electron:
```sh
# Install the `electron` command globally in your $PATH
npm install electron -g
# Install as a development dependency
npm install electron --save-dev
```
### Mirrors
- [China](https://npm.taobao.org/mirrors/electron)
## Documentação
Guias de referência da API estão localizados no diretório [docs](https://github.com/electron/electron/tree/master/docs). Ele também contém documentos que descrevem como construir e contribuir para o Electron.
## Documentos Traduzidos
- [Brazilian Portuguese](https://github.com/electron/electron/tree/master/docs-translations/pt-BR)
- [Korean](https://github.com/electron/electron/tree/master/docs-translations/ko-KR)
- [Japanese](https://github.com/electron/electron/tree/master/docs-translations/jp)
- [Spanish](https://github.com/electron/electron/tree/master/docs-translations/es)
- [Simplified Chinese](https://github.com/electron/electron/tree/master/docs-translations/zh-CN)
- [Traditional Chinese](https://github.com/electron/electron/tree/master/docs-translations/zh-TW)
- [Turkish](https://github.com/electron/electron/tree/master/docs-translations/tr-TR)
- [Ukrainian](https://github.com/electron/electron/tree/master/docs-translations/uk-UA)
- [Russian](https://github.com/electron/electron/tree/master/docs-translations/ru-RU)
- [French](https://github.com/electron/electron/tree/master/docs-translations/fr-FR)
## Começo Rápido
Clone o repositório e execute o [`electron/electron-quick-start`](https://github.com/electron/electron-quick-start) para ver um pequeno aplicativo Electron em ação.
## Comunidade
Você pode fazer perguntas e interagir com a comunidade nos seguintes locais:
- [`electron`](http://discuss.atom.io/c/electron) categoria nos fóruns Atom
- `#atom-shell` canal na Freenode
- [`Atom`](http://atom-slack.herokuapp.com/) canal no Slack
- [`electron-br`](https://electron-br.slack.com) *(Brazilian Portuguese)*
- [`electron-kr`](http://www.meetup.com/electron-kr/) *(Korean)*
- [`electron-jp`](https://electron-jp-slackin.herokuapp.com/) *(Japanese)*
- [`electron-tr`](http://www.meetup.com/Electron-JS-Istanbul/) *(Turkish)*
- [`electron-id`](https://electron-id.slack.com) *(Indonesia)*
Confira [awesome-electron](https://github.com/sindresorhus/awesome-electron) para uma lista mantida pela comunidade de exemplos de aplicativos úteis, ferramentas e recursos.

View file

@ -0,0 +1,33 @@
# Acessibilidade
Fazendo aplicações acessíveis é importante e nós estamos felizes em apresentar uma nova funcionalidade para [Devtron](http://electron.atom.io/devtron) e [Spectron](http://electron.atom.io/spectron) que dá aos desenvolvedores a oportunidade de fazer as suas aplicações melhor para todos.
---
Preocupações de acessibilidade em aplicações Electron são semelhantes aos de websites, porque eles são ambos em última análise HTML. Com aplicativos Electron, no entanto, você não pode usar recursos on-line para auditorias de acessibilidade porque a sua aplicação não tem uma URL para apontar para o auditor.
Esses novos recursos trazem essas ferramentas de auditoria para a sua aplicação Electron. Você pode optar por adicionar auditorias aos seus testes com Spectron ou usá-los dentro do DevTools com Devtron. Leia a seguir para obter um resumo das ferramentas ou verifique nossa [documentação de acessibilidade](http://electron.atom.io/docs/tutorial/accessibility) para obter mais informações.
### Spectron
No framework de testes Spectron, agora você pode auditar cada janela e tag `<webview>` em seu aplicativo. Por exemplo:
```javascript
app.client.auditAccessibility().then(function (audit) {
if (audit.failed) {
console.error(audit.message)
}
})
```
Você pode ler mais sobre este recurso na [documentação do Spectron](https://github.com/electron/spectron#accessibility-testing).
### Devtron
Em Devtron há uma nova guia de acessibilidade que permitirá auditar uma página no seu aplicativo, classificar e filtrar os resultados.
![devtron screenshot](https://cloud.githubusercontent.com/assets/1305617/17156618/9f9bcd72-533f-11e6-880d-389115f40a2a.png)
Ambas as ferramentas estão usando a biblioteca [Accessibility Developer Tools](https://github.com/GoogleChrome/accessibility-developer-tools) construída pela Google for Chrome. Você pode aprender mais sobre as regras de auditoria da biblioteca de acessibilidade no [wiki do repositório](https://github.com/GoogleChrome/accessibility-developer-tools/wiki/Audit-Rules).
Se você souber de outras ferramentas de acessibilidade para o Electron, adicione-as à [documentação de acessibilidade](http://electron.atom.io/docs/tutorial/accessibility) através de um pull request.

View file

@ -248,7 +248,7 @@ var webContents = win.webContents;
* `matches` Integer (可选) - 匹配数量. * `matches` Integer (可选) - 匹配数量.
* `selectionArea` Object (可选) - 协调首个匹配位置. * `selectionArea` Object (可选) - 协调首个匹配位置.
当使用 [`webContents.findInPage`](web-contents.md#webcontentsfindinpage) 进行页内查找并且找到可用值得时候发出事件. 当使用 [`webContents.findInPage`] 进行页内查找并且找到可用值得时候发出事件.
### Event: 'media-started-playing' ### Event: 'media-started-playing'
@ -499,7 +499,7 @@ var currentURL = win.webContents.getURL();
### `webContents.stopFindInPage(action)` ### `webContents.stopFindInPage(action)`
* `action` String - 指定一个行为来接替停止 * `action` String - 指定一个行为来接替停止
[`webContents.findInPage`](web-contents.md#webcontentfindinpage) 请求. [`webContents.findInPage`] 请求.
* `clearSelection` - 转变为一个普通的 selection. * `clearSelection` - 转变为一个普通的 selection.
* `keepSelection` - 清除 selection. * `keepSelection` - 清除 selection.
* `activateSelection` - 获取焦点并点击 selection node. * `activateSelection` - 获取焦点并点击 selection node.
@ -862,3 +862,4 @@ win.webContents.debugger.sendCommand("Network.enable");
每当调试目标发出事件时发出. 每当调试目标发出事件时发出.
[rdp]: https://developer.chrome.com/devtools/docs/debugger-protocol [rdp]: https://developer.chrome.com/devtools/docs/debugger-protocol
[`webContents.findInPage`]: web-contents.md#webcontentsfindinpagetext-options

View file

@ -121,3 +121,69 @@ $ ./script/cpplint.py
```bash ```bash
$ ./script/test.py $ ./script/test.py
``` ```
## Advanced topics
默认编译配置是针对主流 Linux 桌面发行版而言, 对于其他特定发行版或平台, 以下信息可能会帮到你.
### 本地编译 `libchromiumcontent`
可以添加参数 `--build_libchromiumcontent``bootstrap.py` 脚本以避免使用预编译的
`libchromiumcontent` 二进制文件:
```bash
$ ./script/bootstrap.py -v --build_libchromiumcontent
```
默认情况下不会以 `shared_library` 方式编译, 所以你如果使用以下模式的话, 只能编译 Electron
`Release` 版本:
```bash
$ ./script/build.py -c R
```
### 使用系统提供的 `clang`
默认情况下 Electron 使用 Chromium 项目提供的预编译的 `clang` 进行编译. 如果基于某些原因
你想要使用已经安装到系统的 `clang` 进行编译, 可以添加 `--clang_dir=<path>` 参数给
`bootstrap.py` 以指定 `clang` 安装路径. 上面参数告诉编译脚本, 在目录 `<path>/bin/` 下有
`clang` 程序.
假设你的 `clang` 安装路径为 `/user/local/bin/clang`:
```bash
$ ./script/bootstrap.py -v --build_libchromiumcontent --clang_dir /usr/local
$ ./script/build.py -c R
```
### 使用 `clang` 之外的编译器
要使用其他编译器 (如: `g++`) 编译 Electron, 首先需要使用参数 `--disable_clang` 禁用 `clang`,
然后设置 `CC``CXX` 环境变量.
假设使用 GCC 工具链:
```bash
$ env CC=gcc CXX=g++ ./script/bootstrap.py -v --build_libchromiumcontent --disable_clang
$ ./script/build.py -c R
```
### 环境变量
除了 `CC``CXX`, 你还可以设置以下环境变量来自定以编译配置:
* `CPPFLAGS`
* `CPPFLAGS_host`
* `CFLAGS`
* `CFLAGS_host`
* `CXXFLAGS`
* `CXXFLAGS_host`
* `AR`
* `AR_host`
* `CC`
* `CC_host`
* `CXX`
* `CXX_host`
* `LDFLAGS`
以上环境变量需要在执行 `bootstrap.py` 前设置, 在执行 `build.py` 的时候再设置将无效.

View file

@ -312,7 +312,7 @@ Returns:
* `selectionArea` Object - Coordinates of first match region. * `selectionArea` Object - Coordinates of first match region.
Emitted when a result is available for Emitted when a result is available for
[`webContents.findInPage`](web-contents.md#webcontentsfindinpage) request. [`webContents.findInPage`] request.
#### Event: 'media-started-playing' #### Event: 'media-started-playing'
@ -775,7 +775,7 @@ the request can be obtained by subscribing to
#### `contents.stopFindInPage(action)` #### `contents.stopFindInPage(action)`
* `action` String - Specifies the action to take place when ending * `action` String - Specifies the action to take place when ending
[`webContents.findInPage`](web-contents.md#webcontentfindinpage) request. [`webContents.findInPage`] request.
* `clearSelection` - Clear the selection. * `clearSelection` - Clear the selection.
* `keepSelection` - Translate the selection into a normal selection. * `keepSelection` - Translate the selection into a normal selection.
* `activateSelection` - Focus and click the selection node. * `activateSelection` - Focus and click the selection node.
@ -1261,3 +1261,4 @@ Emitted when debugging session is terminated. This happens either when
Emitted whenever debugging target issues instrumentation event. Emitted whenever debugging target issues instrumentation event.
[rdp]: https://developer.chrome.com/devtools/docs/debugger-protocol [rdp]: https://developer.chrome.com/devtools/docs/debugger-protocol
[`webContents.findInPage`]: web-contents.md#contentsfindinpagetext-options

View file

@ -24,7 +24,7 @@ You can read more about this feature in [Spectron's documentation](https://githu
### Devtron ### Devtron
In Devtron there is a new accessibility tab which will allow you to audit a page in your app, sort and filter the results. In Devtron, there is a new accessibility tab which will allow you to audit a page in your app, sort and filter the results.
![devtron screenshot](https://cloud.githubusercontent.com/assets/1305617/17156618/9f9bcd72-533f-11e6-880d-389115f40a2a.png) ![devtron screenshot](https://cloud.githubusercontent.com/assets/1305617/17156618/9f9bcd72-533f-11e6-880d-389115f40a2a.png)