diff --git a/LICENSE b/LICENSE index 4d231b4563bb..4e47b02a28a9 100644 --- a/LICENSE +++ b/LICENSE @@ -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 a copy of this software and associated documentation files (the diff --git a/README.md b/README.md index 3fee15b5c0e5..c6588acb4841 100644 --- a/README.md +++ b/README.md @@ -79,3 +79,7 @@ forums Check out [awesome-electron](https://github.com/sindresorhus/awesome-electron) for a community maintained list of useful example apps, tools and resources. + +## License + +MIT © 2016 Github diff --git a/atom/browser/atom_blob_reader.cc b/atom/browser/atom_blob_reader.cc index 360024a0743f..676386bc6af7 100644 --- a/atom/browser/atom_blob_reader.cc +++ b/atom/browser/atom_blob_reader.cc @@ -21,6 +21,10 @@ namespace atom { namespace { +void FreeNodeBufferData(char* data, void* hint) { + delete[] data; +} + void RunCallbackInUI( const AtomBlobReader::CompletionCallback& callback, char* blob_data, @@ -32,7 +36,8 @@ void RunCallbackInUI( v8::HandleScope handle_scope(isolate); if (blob_data) { v8::Local buffer = node::Buffer::New(isolate, - blob_data, static_cast(size)).ToLocalChecked(); + blob_data, static_cast(size), &FreeNodeBufferData, nullptr) + .ToLocalChecked(); callback.Run(buffer); } else { callback.Run(v8::Null(isolate)); diff --git a/atom/browser/window_list.cc b/atom/browser/window_list.cc index 83bf615aad25..b8e5a8256530 100644 --- a/atom/browser/window_list.cc +++ b/atom/browser/window_list.cc @@ -71,7 +71,8 @@ void WindowList::RemoveObserver(WindowListObserver* observer) { void WindowList::CloseAllWindows() { WindowVector windows = GetInstance()->windows_; for (const auto& window : windows) - window->Close(); + if (!window->IsClosed()) + window->Close(); } WindowList::WindowList() { diff --git a/atom/common/node_bindings.cc b/atom/common/node_bindings.cc index 1e3fac3874f3..a049be23a67e 100644 --- a/atom/common/node_bindings.cc +++ b/atom/common/node_bindings.cc @@ -144,7 +144,7 @@ void NodeBindings::Initialize() { // uv_init overrides error mode to suppress the default crash dialog, bring // it back if user wants to show it. std::unique_ptr env(base::Environment::Create()); - if (env->HasVar("ELECTRON_DEFAULT_ERROR_MODE")) + if (is_browser_ || env->HasVar("ELECTRON_DEFAULT_ERROR_MODE")) SetErrorMode(GetErrorMode() & ~SEM_NOGPFAULTERRORBOX); #endif } diff --git a/chromium_src/chrome/browser/printing/print_preview_message_handler.cc b/chromium_src/chrome/browser/printing/print_preview_message_handler.cc index d1f3660f8d2d..91a6c5167c4c 100644 --- a/chromium_src/chrome/browser/printing/print_preview_message_handler.cc +++ b/chromium_src/chrome/browser/printing/print_preview_message_handler.cc @@ -47,12 +47,15 @@ char* CopyPDFDataOnIOThread( new base::SharedMemory(params.metafile_data_handle, true)); if (!shared_buf->Map(params.data_size)) return nullptr; - char* memory_pdf_data = static_cast(shared_buf->memory()); 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; } +void FreeNodeBufferData(char* data, void* hint) { + delete[] data; +} + } // namespace namespace printing { @@ -126,11 +129,12 @@ void PrintPreviewMessageHandler::RunPrintToPDFCallback( v8::HandleScope handle_scope(isolate); if (data) { v8::Local buffer = node::Buffer::New(isolate, - data, static_cast(data_size)).ToLocalChecked(); + data, static_cast(data_size), &FreeNodeBufferData, nullptr) + .ToLocalChecked(); print_to_pdf_callback_map_[request_id].Run(v8::Null(isolate), buffer); } else { v8::Local error_message = v8::String::NewFromUtf8(isolate, - "Fail to generate PDF"); + "Failed to generate PDF"); print_to_pdf_callback_map_[request_id].Run( v8::Exception::Error(error_message), v8::Null(isolate)); } diff --git a/docs-translations/ko-KR/api/web-contents.md b/docs-translations/ko-KR/api/web-contents.md index ed2b75fe69bb..8fbf8907ae0d 100644 --- a/docs-translations/ko-KR/api/web-contents.md +++ b/docs-translations/ko-KR/api/web-contents.md @@ -309,7 +309,7 @@ Returns: * `matches` Integer (optional) - 일치하는 개수. * `selectionArea` Object (optional) - 첫 일치 부위의 좌표. -[`webContents.findInPage`](web-contents.md#webcontentsfindinpage) 요청의 결과를 +[`webContents.findInPage`] 요청의 결과를 사용할 수 있을 때 발생하는 이벤트입니다. #### Event: 'media-started-playing' @@ -755,7 +755,7 @@ CSS 코드를 현재 웹 페이지에 삽입합니다. #### `contents.stopFindInPage(action)` -* `action` String - [`webContents.findInPage`](web-contents.md#webcontentfindinpage) +* `action` String - [`webContents.findInPage`] 요청이 종료되었을 때 일어날 수 있는 작업을 지정합니다. * `clearSelection` - 선택을 취소합니다. * `keepSelection` - 선택을 일반 선택으로 변경합니다. @@ -1235,3 +1235,4 @@ win.webContents.debugger.sendCommand('Network.enable') 디버깅 타겟이 관련 이벤트를 발생시킬 때 마다 발생하는 이벤트입니다. [rdp]: https://developer.chrome.com/devtools/docs/debugger-protocol +[`webContents.findInPage`]: web-contents.md#contentsfindinpagetext-options diff --git a/docs-translations/pt-BR/project/CODE_OF_CONDUCT.md b/docs-translations/pt-BR/project/CODE_OF_CONDUCT.md new file mode 100644 index 000000000000..c76493026743 --- /dev/null +++ b/docs-translations/pt-BR/project/CODE_OF_CONDUCT.md @@ -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/ diff --git a/docs-translations/pt-BR/project/CONTRIBUTING.md b/docs-translations/pt-BR/project/CONTRIBUTING.md index b0496cdfdaa4..2c188d1a8527 100644 --- a/docs-translations/pt-BR/project/CONTRIBUTING.md +++ b/docs-translations/pt-BR/project/CONTRIBUTING.md @@ -5,27 +5,27 @@ :+1::tada: Primeiramente, obrigado por utilizar seu tempo contribuindo! :tada::+1: 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. -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. +O texto a seguir é um conjunto de diretrizes para a contribuir com o Electron. +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), -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 * 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: - * 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 * 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 -## 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. * Escreva a documentação em [Markdown](https://daringfireball.net/projects/markdown). 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 -### 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: * Módulos embutidos do Node (como o `path`) * Módulos embutidos do Electron (como `ipc`, `app`) * Módulos locais (usando caminhos relativos) * Defina as propriedades da classe na seguinte ordem: - * Métodos da classe e propriedades (métodos iniciam com `@`) - * Métodos de instância e propriedades + * Métodos e propriedades da classe (métodos iniciam com `@`) + * Métodos e propriedades de instância * Evite o uso de códigos dependentes da plataforma: * Use `path.join()` para concatenar nomes de arquivos. * 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 * :racehorse: `:racehorse:` quando aperfeiçoar a performance * :non-potable_water: `:non-potable_water:` quando previnir vazamento de memória - * :memo: `:memo:` quando escrever documentos - * :penguin: `:penguin:` quando consertar algo no Linux - * :apple: `:apple:` quando consertar algo no macOS - * :checkered_flag: `:checkered_flag:` quando consertar algo no Windows + * :memo: `:memo:` quando escrever documentação + * :penguin: `:penguin:` quando corrigir algo no Linux + * :apple: `:apple:` quando corrigir algo no OSX + * :checkered_flag: `:checkered_flag:` quando corrigir algo no Windows * :bug: `:bug:` quando corrigir um bug * :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 * :lock: `:lock:` quando estiver lidando com segurança * :arrow_up: `:arrow_up:` quando atualizar dependências diff --git a/docs-translations/pt-BR/project/README.md b/docs-translations/pt-BR/project/README.md new file mode 100644 index 000000000000..6c435edaa5c4 --- /dev/null +++ b/docs-translations/pt-BR/project/README.md @@ -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. diff --git a/docs-translations/pt-BR/tutorial/accessibility.md b/docs-translations/pt-BR/tutorial/accessibility.md new file mode 100644 index 000000000000..21570ff405ec --- /dev/null +++ b/docs-translations/pt-BR/tutorial/accessibility.md @@ -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 `` 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. diff --git a/docs-translations/zh-CN/api/web-contents.md b/docs-translations/zh-CN/api/web-contents.md index 3b27e2376f5c..658e7e5cd9d0 100644 --- a/docs-translations/zh-CN/api/web-contents.md +++ b/docs-translations/zh-CN/api/web-contents.md @@ -248,7 +248,7 @@ var webContents = win.webContents; * `matches` Integer (可选) - 匹配数量. * `selectionArea` Object (可选) - 协调首个匹配位置. -当使用 [`webContents.findInPage`](web-contents.md#webcontentsfindinpage) 进行页内查找并且找到可用值得时候发出事件. +当使用 [`webContents.findInPage`] 进行页内查找并且找到可用值得时候发出事件. ### Event: 'media-started-playing' @@ -499,7 +499,7 @@ var currentURL = win.webContents.getURL(); ### `webContents.stopFindInPage(action)` * `action` String - 指定一个行为来接替停止 - [`webContents.findInPage`](web-contents.md#webcontentfindinpage) 请求. + [`webContents.findInPage`] 请求. * `clearSelection` - 转变为一个普通的 selection. * `keepSelection` - 清除 selection. * `activateSelection` - 获取焦点并点击 selection node. @@ -862,3 +862,4 @@ win.webContents.debugger.sendCommand("Network.enable"); 每当调试目标发出事件时发出. [rdp]: https://developer.chrome.com/devtools/docs/debugger-protocol +[`webContents.findInPage`]: web-contents.md#webcontentsfindinpagetext-options diff --git a/docs-translations/zh-CN/development/build-instructions-linux.md b/docs-translations/zh-CN/development/build-instructions-linux.md index 9815aeb03e5f..7ee9dff3892c 100644 --- a/docs-translations/zh-CN/development/build-instructions-linux.md +++ b/docs-translations/zh-CN/development/build-instructions-linux.md @@ -120,4 +120,70 @@ $ ./script/cpplint.py ```bash $ ./script/test.py -``` \ No newline at end of file +``` + +## 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=` 参数给 +`bootstrap.py` 以指定 `clang` 安装路径. 上面参数告诉编译脚本, 在目录 `/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` 的时候再设置将无效. diff --git a/docs/api/web-contents.md b/docs/api/web-contents.md index 2fdc499b2bbc..2a9664f747c1 100644 --- a/docs/api/web-contents.md +++ b/docs/api/web-contents.md @@ -312,7 +312,7 @@ Returns: * `selectionArea` Object - Coordinates of first match region. Emitted when a result is available for -[`webContents.findInPage`](web-contents.md#webcontentsfindinpage) request. +[`webContents.findInPage`] request. #### Event: 'media-started-playing' @@ -775,7 +775,7 @@ the request can be obtained by subscribing to #### `contents.stopFindInPage(action)` * `action` String - Specifies the action to take place when ending - [`webContents.findInPage`](web-contents.md#webcontentfindinpage) request. + [`webContents.findInPage`] request. * `clearSelection` - Clear the selection. * `keepSelection` - Translate the selection into a normal selection. * `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. [rdp]: https://developer.chrome.com/devtools/docs/debugger-protocol +[`webContents.findInPage`]: web-contents.md#contentsfindinpagetext-options diff --git a/docs/tutorial/accessibility.md b/docs/tutorial/accessibility.md index 60d48a99edee..22b9704bdb47 100644 --- a/docs/tutorial/accessibility.md +++ b/docs/tutorial/accessibility.md @@ -24,7 +24,7 @@ You can read more about this feature in [Spectron's documentation](https://githu ### 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)