Commit graph

230 commits

Author SHA1 Message Date
Samuel Attard
bc527f6b51
refactor: bundle the browser and renderer process electron code (#18553)
* refactor: bundle the browser and renderer process electron code

* Bundles browser/init and renderer/init
  * Improves load performance of main process by ~40%
  * Improves load performance of renderer process by ~30%
* Prevents users from importing our "requiring" our internal logic such
as ipc-main-internal.  This makes those message buses safer as they are
less accessible, there is still some more work to be done though to lock
down those buses completely.
* The electron.asar file now only contains 2 files, as a future
improvement maybe we can use atom_natives to ship these two files
embedded in the binary
* This also removes our dependency on browserify which had some strange
edge cases that caused us to have to hack around require-order and
stopped us using certain ES6/7 features we should have been able to use
(async / await in some files in the sandboxed renderer init script)

TLDR: Things are faster and better :)

* fix: I really do not want to talk about it

* chore: add performance improvements from debugging

* fix: resolve the provided path so webpack thinks it is absolute

* chore: fixup per PR review

* fix: use webpacks ProvidePlugin to keep global, process and Buffer alive after deletion from global scope for use in internal code

* fix: bundle worker/init as well to make node-in-workers work

* chore: update wording as per feedback

* chore: make the timers hack work when yarn is not used
2019-06-02 13:03:03 -07:00
Jeremy Apthorp
7d212b17f8 v8/snapshot_toolchain.gni moved
https://chromium-review.googlesource.com/c/v8/v8/+/1612903
2019-05-22 11:45:48 -07:00
Jeremy Apthorp
1fa5bf0140 //ui/views_bridge_mac => //components/remote_cocoa/app_shim
https://chromium-review.googlesource.com/c/chromium/src/+/1590958
2019-05-16 18:47:42 -07:00
Electron Bot
2616911f7a chore: bump chromium to 7dff37844cb3 (master) (#18059) 2019-04-30 17:18:22 -07:00
Samuel Attard
98c51dd660
build: ensure consistent lock files across multiple machines (#17955)
* build: ensure consistent package-lock across multiple machines

* build: fix linting errors and use npm ci instead of npm install

* build: use a yarn.lock and yarn instead of package-lock and npm

* chore: replace package-lock.json files with yarn.lock

* chore: replace last instance of `npm install`
2019-04-30 13:59:47 -07:00
Milan Burda
fcf0af15de feat: support ELECTRON_DEFAULT_ERROR_MODE in the GPU process (#17728) 2019-04-30 12:45:48 -04:00
Electron Bot
716cb28430 chore: bump chromium to 1e9f9a24aa12 (master) (#17880)
* chore: bump chromium in DEPS to 1e9f9a24aa12bea9cf194a82a7e249bd1242ec4f

* chore: update patches

* Make WebContents' theme color a base::Optional<SkColor>

https://chromium-review.googlesource.com/c/chromium/src/+/1540022

* update autofill patch for incorrect header includes

* Move Shell messages to web_test and rename to BlinkTest.

https://chromium-review.googlesource.com/c/chromium/src/+/1525181

* Make PlatformNotificationServiceImpl a KeyedService.

https://chromium-review.googlesource.com/c/chromium/src/+/1336150

* Move MediaPlayerId to its own file.

https://chromium-review.googlesource.com/c/chromium/src/+/1547057

* Remove net/base/completion_callback.h, which is no longer used

https://chromium-review.googlesource.com/c/chromium/src/+/1552821

* AW NS: support file scheme cookies

https://chromium-review.googlesource.com/c/chromium/src/+/1533486

* Remove SecurityInfo and adapt remaining consumers

https://chromium-review.googlesource.com/c/chromium/src/+/1509455

* Remove deprecated type-specific number to string conversion functions

https://chromium-review.googlesource.com/c/chromium/src/+/1545881

* DevTools: Adding new performance histograms for launch of top 4 tools

https://chromium-review.googlesource.com/c/chromium/src/+/1506388

* Update include paths for //base/hash/hash.h

https://chromium-review.googlesource.com/c/chromium/src/+/1544630

* build: Disable ensure_gn_version gclient hook for mac CI checkout

* update patches

* use maybe version of v8::String::NewFromTwoByte

* bump appveyor image version

* fix mac ci hopefully

* Convert enum to enum class for MenuAnchorPosition

https://chromium-review.googlesource.com/c/chromium/src/+/1530508

* use maybe version of ToObject

* RenderViewHost::GetProcess is no longer const

* Unrefcount AuthChallengeInfo

https://chromium-review.googlesource.com/c/chromium/src/+/1550631

* MenuButtonController takes Button rather than MenuButton

https://chromium-review.googlesource.com/c/chromium/src/+/1500935

* add //ui/views_bridge_mac to deps to fix link error

* forward declare views::Button in atom::MenuDelegate

* more v8 patches

* base/{=> hash}/md5.h

https://chromium-review.googlesource.com/c/chromium/src/+/1535124

* gfx::{PlatformFontWin => win}::*

https://chromium-review.googlesource.com/c/chromium/src/+/1534178

* fix v8 patches

* [base] Rename TaskScheduler to ThreadPool

https://chromium-review.googlesource.com/c/chromium/src/+/1561552

* use internal_config_base for bytecode_builtins_list_generator

avoids windows link errors

* FIXME: temporarily disable v8/breakpad integration

* FIXME: temporarily disable prevent-will-redirect test

* FIXME: disable neon on aarch64 pending crbug.com/953815

* update to account for WebCursor refactor

https://chromium-review.googlesource.com/c/chromium/src/+/1562755

* enable stack dumping on appveyor

* Revert "FIXME: disable neon on aarch64 pending crbug.com/953815"

This reverts commit 57f082026be3d83069f2a2814684abf4dc9e7b53.

* fix: remove const qualifiers to match upstream

* fix: remove const qualifiers to match upstream in cc files as well

* don't throw an error when testing if an object is an object

* use non-deprecated Buffer constructor

* Remove net::CookieSameSite::DEFAULT_MODE enum value

https://chromium-review.googlesource.com/c/chromium/src/+/1567955

* depend on modded dbus-native to work around buffer deprecation

https://github.com/sidorares/dbus-native/pull/262

* revert clang roll to fix arm build on linux

* fixup! depend on modded dbus-native to work around buffer deprecation

need more coffee

* update coffee-script

* robustify verify-mksnapshot w.r.t. command-line parameters

* Revert "robustify verify-mksnapshot w.r.t. command-line parameters"

This reverts commit a49af01411f684f6025528d604895c3696e0bc57.

* fix mksnapshot by matching args

* update patches

* TMP: enable rdp on appveyor

* Changed ContentBrowserClient::CreateQuotaPermissionContext() to return scoped_refptr.

https://chromium-review.googlesource.com/c/chromium/src/+/1569376

* Make content::ResourceType an enum class.

https://chromium-review.googlesource.com/c/chromium/src/+/1569345

* fixup! Make content::ResourceType an enum class.

* turn off rdp

* use net::CompletionRepeatingCallback instead of base::Callback<void(int)>

* remove disable_ensure_gn_version_gclient_hook.patch

* copy repeating callback instead of std::move

* fix lint

* add completion_repeating_callback.h include
2019-04-20 10:20:37 -07:00
Samuel Attard
829050daab
build: rename sandbox bundle (#17831) 2019-04-17 17:18:03 -04:00
Heilig Benedek
81bf15877f fix: port OSR code to new viz compositor codepath (#17538)
* fix: make OSR work with viz compositor

* fix: update OSR patch

* fix: update patch again

* fix: update viz_osr.patch for macOS

* fix: gn check warnings

* chore: no need to change SoftwareOutputDeviceWinProxy

* chore: add check in case we missed something

* fix: consider scale factor when compare size

* fix: make GPU OSR work

* fix: autofill popups with OSR

* chore: use UNIX line ending for osr_video_consumer

* chore: code is already in defined(OS_MACOSX)

* fix: share same OSR implementation on macOS

This should also fix the crash when there is navigation on macOS.

* test: osr window should not crash after navigation

* fix: make osr work on Mac properly

* fix: software osr on windows

* fix: software osr on Linux

* fix: compilation error introduced with rebase

* fix: split local surface id allocation into two

* Update osr_host_display_client_mac.mm

* chore: update copyright year

* fix: update patch
2019-04-17 14:10:04 -07:00
Samuel Attard
be6fb7cb12 fix: ensure the sandboxed preloads globals do not leak (#17712) 2019-04-16 10:57:02 -07:00
Samuel Attard
5d45b59f7f
Merge pull request #17507 from electron/chromium-upgrade/75
chore: update to chromium 75.0.3740.3
2019-04-03 13:17:37 -07:00
Samuel Attard
dc4fe537ee
build: auto-generate the browserify step GN inputs (#17626) 2019-04-02 17:12:10 -07:00
Jeremy Apthorp
53f6cbccbf
refactor: use mojo for electron internal IPC (#17406)
* refactor: use mojo for electron internal IPC

* add sender_id, drop MessageSync

* remove usages of AtomFrameMsg_Message

* iwyu

* first draft of renderer->browser direction

* refactor to reuse a single ipc interface

* implement TakeHeapSnapshot through mojo

* the rest of the owl^WtakeHeapSnapshot mojofication

* remove no-op overrides in AtomRendererClient

* delete renderer-side ElectronApiServiceImpl when its pipe is destroyed

* looks like we don't need to overlay the renderer manifest after all

* don't try to send 2 replies to a sync rpc

* undo changes to manifests.cc

* unify sandboxed + unsandboxed ipc events

* lint

* register ElectronBrowser mojo service on devtools WebContents

* fix takeHeapSnapshopt failure paths

* {electron_api => atom}::mojom

* add send_to_all to ElectronRenderer::Message

* keep interface alive until callback is called

* review comments

* use GetContext from RendererClientBase

* robustify a test that uses window.open

* MessageSync posts a task to put sync messages in the same queue as async ones

* add v8::MicrotasksScope and node::CallbackScope

* iwyu

* use weakptr to api::WebContents instead of Unretained

* make MessageSync an asynchronous message & use non-associated interface

* iwyu + comments

* remove unused WeakPtrFactory

* inline OnRendererMessage[Sync]

* cleanups & comments

* use helper methods instead of inline lambdas

* remove unneeded async in test

* add mojo to manifests deps

* add gn check for //electron/manifests and mojo

* don't register renderer side service until preload has been run

* update gn check targets list

* move interface registration back to RenderFrameCreated
2019-04-02 15:38:16 -07:00
Jeremy Apthorp
47d5f9f901 add //ui/base/idle dep 2019-04-02 14:43:03 -07:00
Jeremy Apthorp
eb27e9b055
refactor: move //electron/manifests:manifests target into main BUILD.gn (#17611) 2019-04-01 18:25:19 -07:00
Samuel Maddock
f943db7ad5 feat: Add content script world isolation (#17032)
* Execute content script in isolated world

* Inject script into newly created extension worlds

* Create new content_script_bundle for extension scripts

* Initialize chrome API in content script bundle

* Define Chrome extension isolated world ID range

1 << 20 was chosen as it provides a sufficiently large range of IDs for extensions, but also provides a large enough buffer for any user worlds in [1000, 1 << 20).

Ultimately this range can be changed if any user application raises it as an issue.

* Insert content script CSS into document

This now avoids a script wrapper to inject the style sheet. This closely matches the code used by chromium in `ScriptInjection::InjectCss`.

* Pass extension ID to isolated world via v8 private
2019-03-11 16:27:57 -07:00
Jeremy Apthorp
652e232813
feat: enable setuid sandbox on linux (#17269) 2019-03-08 13:10:26 -08:00
Robo
bb88a07a94 fix: gn check errors in release build (#17274) 2019-03-07 14:48:22 -08:00
Robo
7936237677
build: enable gn check for //electron:electron_lib (#17100)
* build: enable gn check for //electron:electron_lib

* ci: add gn check step

* ci: set depot_tools path

* chrome_key_systems_provider.h nogncheck

* chore: fix gn check errors on windows

* chore: gn check //electron:electron_app
2019-03-05 10:38:55 +05:30
Heilig Benedek
d7557cb66a chore: use c++ manifests instead of json 2019-02-14 23:59:26 +05:30
Milan Burda
e769b867f0 fix: disable Chromium v2 sandbox in MAS builds (#16920) 2019-02-14 09:48:17 -08:00
Shelley Vohr
46a24c82ff
feat: add Touch ID authentication support for macOS (#16707)
This PR adds Touch ID authentication support for macOS with two new `SystemPreferences` methods.

1. `systemPreferences.promptForTouchID()` returns a Promise that resolves with `true` if successful and rejects with an error message if authentication could not be completed.
2. `systemPreferences.isTouchIDAvailable()` returns a Boolean that's `true` if this device is a Mac running a supported OS that has the necessary hardware for Touch ID and `false` otherwise.
2019-02-13 18:36:28 -08:00
Samuel Attard
01c442de64 refactor: convert more files to typescript (#16820) 2019-02-12 04:22:33 -10:00
Heilig Benedek
ccc60a1f33 fix: enable autofill popups on mac (#16308)
* feat: enable autofill popups on mac

* fix: make popup positioning better

* fix: don't try to show popup when widget is closing or not visible

* fix: unify conditions

* refactor: use PopupViewCommon from chrome directly

* lint: mark constructor explicit

* fix: use a patch instead of dummy functions to make things compile on Windows

* chore: address review suggestions

* Update atom/browser/ui/cocoa/views_delegate_mac.mm

Co-Authored-By: brenca <benecene@gmail.com>
2019-02-11 09:38:58 -10:00
Shelley Vohr
84eef16755
chore: depend on mojo audio and video in BUILD.gn (#16785) 2019-02-06 11:03:39 -08:00
Samuel Attard
26df9992cf
build: use typescript for internal Electron JS code (#16441) 2019-02-06 10:27:20 -08:00
Samuel Attard
b202ad1e24
refactor: remove js2asar.py and port logic to JS in more readable / GN-style way (#16718)
* refactor: remove js2asar.py and port logic to JS in more readable / GN-style way

* refactor: further clean up ASAR impl, add new node_action GN template
2019-02-05 12:10:15 -08:00
Cheng Zhao
03d499bf34 fix: detach webview instead of destroying it
Chromium no longer cleans up everything when a guest webcontents is
destroyed, we have to force detaching it and let Chromium destroy everything.
2019-01-22 10:32:06 -08:00
deepak1556
1de0152b6b chore: fix gn format error 2019-01-22 10:32:05 -08:00
Robo
52fe92d02e feat: Upgrade to Chromium 71.0.3578.98 (#15966) 2019-01-11 17:00:43 -08:00
Milan Burda
7a6fe00f49 chore: simplify code for modules internally using remote.require in sandbox (#16104) 2018-12-17 22:47:41 +03:00
Cheng Zhao
8584c2f14b
fix: register webview in main world when using contextIsolation (#16067) 2018-12-14 15:38:35 +09:00
Jeremy Apthorp
4250f84272
chore: enable v2 sandbox on mac (#15647) 2018-12-12 16:01:10 -08:00
Shelley Vohr
c31629ad98
feat: add media access APIs for macOS Mojave (#15624) 2018-12-04 07:54:13 -08:00
deepak1556
3dfc0098ec chore: move node specific build config out of //electron 2018-12-03 20:07:44 +05:30
Heilig Benedek
6deb7afb82 fix: reimplement FrameSubscriber with mojo, re-enable tests 2018-12-03 20:07:43 +05:30
Samuel Attard
c1b9ca14e7 build: disable microsoft include warning
this error is being thrown on windows due a #include inside node
2018-12-03 20:07:42 +05:30
Samuel Attard
32a957c455 build: explicitly depend on //dbus for the linux build
refs: https://chromium-review.googlesource.com/c/chromium/src/+/1273525
2018-12-03 20:07:42 +05:30
Milan Burda
81e00d8e56 chore: fix V8 deprecation warnings (#15842) 2018-11-27 16:42:02 -05:00
Cheng Zhao
47bf8e1bb3
view: add ResizeArea class (#15752) 2018-11-21 22:39:59 +09:00
Jeremy Apthorp
c8860d006b
fix: restore missing .lproj directories (#15721)
the empty lproj directories help macOS to understand what locales the app supports
2018-11-15 09:30:45 -08:00
Samuel Attard
1cf28e8b75 build: auto-gen libnotify_loader.cc (#15648) 2018-11-10 14:21:40 -05:00
Robo
82322968a3 refactor: printing implementation (#15143)
* refactor: basic printing

* move build files to chromium_src/BUILD.gn
* remove dependency on chrome prerender sources

* spec: move printing specs behind feature flag

* build: register pdf compositor service
2018-11-09 14:42:34 +11:00
Jeremy Apthorp
7e0e12b8a3 fix: match Chrome's font fallback behavior (#15486)
* fix: match Chrome's font fallback behavior

Fixes #15481

* add a cache

* add test

* another test

* fix tests

* arial -> dejavu sans on linux apparently?
2018-11-08 10:51:51 -04:00
Jeremy Apthorp
bf3edf8f87 fix: correctly package Login Helper in mas builds (#15610) 2018-11-06 20:15:01 -08:00
John Kleinschmidt
c52cf01a3c
build: add v8_context_snapshot_generator to mksnapshot zip (#15606)
v8_context_snapshot_generator is needed when creating custom snapshots with mksnapshot
2018-11-06 18:57:52 -04:00
Milan Burda
f921df7ad1 chore: move spellcheck out of chromium_src (#15407) 2018-10-26 10:34:57 -07:00
Milan Burda
8ba271efba refactor: eliminate brightray (#15240) 2018-10-24 12:49:10 +02:00
Jeremy Apthorp
1d8ab03146 refactor: use public WakeLock interface (#15351)
* refactor: use public WakeLock interface

* remove power_save_blocker visibility patch
2018-10-23 22:12:58 -07:00
Jeremy Apthorp
9474fc0082
chore: electron alias should be defined with public_deps (#15349) 2018-10-23 17:22:41 -07:00
Cheng Zhao
260778e0fb feat: add MdTextButton to View APIs (#15328)
* view: make button focusable by default

* view: add MdTextButton

* view: add common methods to LabelButton
2018-10-23 10:57:13 -04:00
Alexey Kuzmin
5e199152e2 ci: run unittests on clean Chromium (#15125)
* ci: run unittests on clean Chromium

* test: add '--run-only-disabled-tests' flag to "script/native-tests.py"

* ci: add a job to run only disabled unittests

* test: use a different GN config for the native tests

* test: enable blink_common_unittests

* test: disable WeakPtrDeathTest*
2018-10-22 16:12:19 -04:00
Jeremy Apthorp
30ccb6aea5
fix: allow renaming electron.exe (#15173) 2018-10-15 17:26:34 -07:00
Heilig Benedek
a82bcc7e3c refactor: move printing out of chromium_src (#15023)
* remove printing related things from chromium_src

* chore: add printing build flag and patch

* fix: include PrintingService on other platforms too

* fix: printing_handler is only needed on Windows

* fix: format BUILD.gn properly

* fix: rename printing build flag to avoid conflict with chromium

* fix: place previously missed printing calls behind build flag

* fix: accidentally renamed flag in patch file

* fix: don't include all printing strings

* fix: allow ShowItemInFolder and OpenItem to block, fixing a DCHECK crash

* fix: make things compile, some changes got lost while rebasing

* fix: remove rogue line from BUILD.gn

* chore: update patch description

* style: lint fix

* chore: use chromium printing buildflag, move node related stuff out of patch

* revert: remove ScopedAllowBlockingForTesting call

* fix: fix my rebase blooper

* fix: re-add header lost during rebase, update patch

* fix: add <map> include, tweak the patch a bit

* revert: remove rogue diff from patch

* fix: clean up after rebase
2018-10-13 12:57:04 +11:00
Heilig Benedek
95696c9456 refactor: move text-to-speech out of chromium_src (#15024)
* chore: add tts patch and buildflag, makes tts work again

* chore: add tts patch and buildflag, makes tts work again

* fix: make things compile

* build: add relevant tts files for linux

* fix: update patch and patch description, should now compile on mac

* build: move chrome specific sources under chromium_src:chrome target

* build: enable_extensions again

We are depending on them, check `//electron/chromium_src:chrome` target
for more info.

* fix: update tts.patch to receive notifications about browser context destruction

* fix: extend browser process from chrome layer

The global state g_browser_process is shared between //chrome
and //electron.

* spec: add basic speech synthesis test

* spec: skip speech tests on ci

* build: fix compilation on windows
2018-10-11 08:52:12 -05:00
deepak1556
55d3720a95 chore: gn format 2018-10-09 14:38:00 -07:00
Samuel Attard
9190245628 fix: exe_and_shlib_deps does not exist anymore
ce772faa73
2018-10-09 14:38:00 -07:00
Jeremy Apthorp
eef375a428 Port //services/device/geolocation to network::SimpleURLLoader
https://chromium-review.googlesource.com/c/chromium/src/+/1119398
2018-10-09 14:38:00 -07:00
Jeremy Apthorp
7861f75a3e media: Refactor KeySystemSupport
https://chromium-review.googlesource.com/c/chromium/src/+/1102836
2018-10-09 14:38:00 -07:00
Jeremy Apthorp
ea98fb37e6 //tools/gn was removed 2018-10-09 14:38:00 -07:00
Robo
2700eaca1e build: remove //chrome/browser/icon_loader source copies (#14955)
* build: remove //chrome/browser/icon_loader source copies

* chore: add DCHECK to ensure IconManager is accessed from UI thread
2018-10-05 14:12:53 -05:00
Robo
434a6e3561 refactor: create request context from network context (#14656)
* [ci skip] refactor: create request context from network context

* [ci skip] refactor: subscribe to mojo cookiemanager for cookie changes

* [ci skip] refactor: manage the lifetime of custom URLRequestJobFactory

* refactor: use OOP mojo proxy resolver

* revert: add support for kIgnoreCertificateErrorsSPKIList

* build: provide service manifest overlays for content services

* chore: gn format

* fix: log-net-log switch not working as expected

* spec: verify proxy settings are respected from pac script with session.setProxy

* chore: use chrome constants where possible

* fix: initialize request context for global cert fetcher

* refactor: fix destruction of request context getters

* spec: use custom session for proxy tests

* fix: queue up additional stop callbacks while net log is being stopped

* fix: Add CHECK for cookie manager retrieval

* chore: add helper to retrieve logging state for net log module

* fix: ui::ResourceBundle::GetRawDataResourceForScale => GetRawDataResource

* style: comment unused parameters

* build: move //components/certificate_transparency deps from //brightray

* chore: update gritsettings_resource_ids patch

* chore: update api for chromium 68

* fix: net log instance is now a property of session
2018-10-04 13:08:56 -05:00
Samuel Attard
3805c5f538 chore: enable -pie for linux builds (#14962)
Closes #14961
2018-10-04 10:10:48 -04:00
Jeremy Apthorp
aafe83338c chromium removed *_posix.cc from the source filters 2018-10-04 00:14:59 +02:00
Jeremy Apthorp
e6da87b864 test: remove no longer existing Chromium test deps
cc_blink_unittests has been removed in
https://chromium-review.googlesource.com/1053765

mojo_common_unittests has been removed in
https://chromium-review.googlesource.com/1028000
2018-10-04 00:12:55 +02:00
Robo
7a43c8732c build: remove //chrome/common source copies (#14950)
* Removes
  * //chrome/common/chrome_constants.*
  * //chrome/common/chrome_paths*.*
  * //chrome/common/pref_names.*
2018-10-03 11:44:22 -07:00
Robo
91a965e24d build: remove //extensions source copies (#14949)
* build: remove //extensions source copies

* chore: gn format
2018-10-03 11:44:50 -05:00
Robo
a24ad6bc14 build: define compile time features with buildflag header (#14840)
* build: define compile time features with buildflag header

* refactor: switch to BUILDFLAG(ENABLE_DESKTOP_CAPTURER)

* refactor: switch to BUILDFLAG(ENABLE_RUN_AS_NODE)

* refactor: switch to BUILDFLAG(ENABLE_OSR)

* refactor: switch to BUILDFLAG(ENABLE_VIEW_API)

* refactor: switch to BUILDFLAG(ENABLE_PEPPER_FLASH)

* refactor: switch to BUILDFLAG(OVERRIDE_LOCATION_PROVIDER)

* refactor: switch to BUILDFLAG(ENABLE_PDF_VIEWER)
2018-10-01 16:00:53 -04:00
Samuel Attard
a524c5ec12
chore: move the view APIs to their own directory (#14722)
* chore: move the view APIs to their own directory

* move view api cpp files
2018-09-28 12:47:09 +10:00
Jeremy Apthorp
77fb9cf416 chore: stop using electron.gyp for branding and version (#14559)
* chore: stop using electron.gyp for version info

* chore: remove branding info from electron.gyp

* Use get_electron_branding instead of gn read

* Flip project_name/product_name
2018-09-27 14:53:08 -04:00
Alexey Kuzmin
8963529238 ci: run unittests and browsertests separately (#14826) 2018-09-27 11:29:27 -04:00
Alexey Kuzmin
638311b6b3 build: turn on OSR for GN builds (#14352)
* build: turn on OSR for GN builds

* remove mac-only speech functions in osr

They were removed as a part of https://chromium-review.googlesource.com/c/chromium/src/+/923548

* implement WasResized in MacHelper

* add missing screen include

* fix: use proper bitmap operations to construct frame to avoid failing checks

* switch to SkCanvas for drawing
2018-09-27 09:32:31 -04:00
Shelley Vohr
2617f50b7d chore: update mksnapshot and ffmpeg for GN (#14738)
* chore: update mksnapshot and ffmpeg for GN

* fix typo

* add non-native builds to CI

* split mksnapshot build and store steps

* Fix config order

* Use different targets for mksnapshot and native_mksnapshot

mksnapshot gets built in electron_app as part of the v8 build, so copy it from there

* Revert "Use different targets for mksnapshot and native_mksnapshot"

This reverts commit 6a1a50aa690124626b4357751949397298aeac95.

* Try specifying v8_snapshot_toolchain

* Fix v8_snapshot_toolchain reference

* Fix artifact locations

* Test native mksnapshot
2018-09-24 21:48:49 -04:00
John Kleinschmidt
70fb89e201 No longer need to filter out resources dir
Also remove not needed change
2018-09-21 21:29:55 -04:00
John Kleinschmidt
96ec3e9162 Split build and test into separate jobs
Also clean from review
2018-09-21 13:14:01 -04:00
John Kleinschmidt
62172dee6c Add electron_chromedriver_zip target 2018-09-21 13:13:52 -04:00
John Kleinschmidt
e78d84165a Add chromedriver to build
Make sure certain paths/files don't make it into the dist zip
Don't build the content shell test_runner
Make sure libffmpeg.dylib gets put in the right place
Run verify-ffmpeg on Mac builds
Add ffmpeg build to VSTS
2018-09-21 13:12:26 -04:00
Shelley Vohr
7b8daaab67
chore: add ffmpeg dist zip (#14681) 2018-09-20 11:10:10 -07:00
Samuel Attard
54ef906832
[RFC] perf: use an internal module resolver to improve require performance (#14633)
* perf: use an internal module resolver instead of relative requires

* perf: memoize the results of getting exported Electron properties

* perf: make internal module changes consistent across sandboxed / bundled files
2018-09-20 13:43:26 +10:00
Jeremy Apthorp
961147151f fix: re-enable high-dpi support on windows (#14596)
fixes #14568
2018-09-13 10:40:29 -05:00
Robo
2cd03bf360 build: remove duplicate devtools sources (#14522)
* build: remove duplicate devtools sources

* build: create separate target for chrome sources

* Move sources that are always depended on by electron,
  starting with security_state_tab_helper.{cc|h}
* Add //component/strings to pak for devtools security tab

* fix: allow specifying type of the added filesystem.

https://chromium-review.googlesource.com/c/chromium/src/+/729250

* fix: do not index excluded folders

https://chromium-review.googlesource.com/c/chromium/src/+/972579
2018-09-12 08:45:08 -05:00
Robo
f76a8c7b24 build: [m67] enable widevine support (#14519)
* build: [m67] enable widevine support

* fix: remove plugin cache reset hack

It was added in (#8907) to make widevine cdm shows up in
navigator.plugins, since widevine support is no longer
enabled by a plugin it can be removed safely.
2018-09-11 20:24:04 +02:00
deepak1556
11349ebf2e build: //service/viz mojo interfaces for osr
(cherry picked from commit da2b2e7e4eb1fd8424c849d023d365619345735b)
2018-09-11 20:24:03 +02:00
Aleksei Kuzmin
186f8d14b5 gpu: Merge gpu_ipc_service_unittests into gpu_unittests
https://chromium-review.googlesource.com/976983
2018-09-11 20:24:03 +02:00
Aleksei Kuzmin
f6080b04ea Update test targets paths for Blink 2018-09-11 20:24:03 +02:00
Aleksei Kuzmin
0afebdc531 The Great Blink mv for source files, part 2.
https://chromium-review.googlesource.com/1001153
2018-09-11 20:21:32 +02:00
Jeremy Apthorp
72526927d9 build: remove gyp build files (#14097)
* build: remove gyp build files

* docs: update build instructions

* build: temporary restore electron.gyp

* build: do not update Electron version in the electron.gyp

* chore: remove unused submodules

* ci: remove obsolete CI scripts and configs

* chore: remove obsolete scripts

* chore: remove obsolete functions from lib/util.py

* ci: send Slack notification for nightly build results
2018-09-09 10:15:32 +09:00
Jeremy Apthorp
58e8c025eb docs: expand on TODOs in BUILD.gn 2018-09-07 12:26:03 -07:00
Robo
c7c95fab2f build: [gn] widevine cdm support behind flag (#14423)
* build: [gn] widevine cdm support behind flag

* build: [gyp] link cdm_support in the component build
2018-09-05 16:00:37 -05:00
Jacob Groundwater
d9a7fee79a feat: Add electron version to framework (#14296)
* Add electron version to framework

* Update Info.plist
2018-08-29 10:31:45 -07:00
Alexey Kuzmin
ccd63b5ed0 build: add enable_pepper_flash flag to GN build (#14349)
* chore: reformat BUILD.gn

* build: add enable_pepper_flash flag to GN build

Fixes #14339.

* build: move pepper flash under components/

* [ci skip] build: add electron.icns to mac app resources

* build: [gyp] update config to use component pepper flash

* build: [gyp] copy pepper shared libraries into executable folder in component build
2018-08-29 20:39:47 +12:00
Alexey Kuzmin
7edd37bca1 build: add missing enable_view_api flag (#14351)
* build: add missing enable_view_api flag

Fixes #14340.

* fix: properly pass a pointer to a SetLayoutManager() call
2018-08-28 10:55:31 -07:00
Alexey Kuzmin
c8705625c9 build: windows gn linker fix (#14281)
* Fix to gn build linking

* chore: update node ref

* build: [gn win] add dependency on desktop_capture source_set in component build

* build: [gn] update definitions for node shared mode

* chore: update node ref

* chore: update node ref
2018-08-27 11:17:23 -04:00
Robo
bce5bd87a8 fix: opt into location services once device service has been started (#14253)
* fix: opt into location services once device service has been started

* refactor: provide fake location provider to mock geolocation reponses

* chore: add spec for navigator.geolocation api using fake location provider
2018-08-23 08:51:46 -07:00
Jeremy Apthorp
f82f89b2a3 build: [gn] add distributable zip target (#14093)
* build: [gn] add distributable zip target

* build: update the CircleCI config

- enable debug and testing builds on Mac
- run Mac release builds nightly
- run test for Mac release builds
- use shared build machines configs

* Add resources dir to zip on non mac platforms.
2018-08-21 13:06:28 -04:00
Robo
fc730cc705 build: [gn mac] copy ffmpeg lib to framework bundle (#14225)
* build: [gn mac] copy ffmpeg lib to framework bundle

* Pull build config from enviroment variable

* build: use component ffmpeg in testing mode
2018-08-20 17:02:52 -04:00
Alexey Kuzmin
2f352d2517 build: add Chromium tests targets (#14172)
* chore: properly format BUILD.gn

* build: gn: add targets for Chromium tests

Those should only include test targets Electron cares about.
2018-08-17 15:28:00 -07:00
Jeremy Apthorp
6d277ec784 [wip] build: try building node with GN 2018-08-10 10:06:27 -07:00
Jeremy Apthorp
e22a80b210 chore: [gn] run 'gn format' over BUILD.gn 2018-07-31 09:55:27 -07:00
Jeremy Apthorp
28b6f2f46d
build: [gn] fix rpath when building with component ffmpeg (#13874) 2018-07-30 15:46:04 -07:00
Jeremy Apthorp
38ca2b342b build: [gn] fix resource path conflict on mac (#13824) 2018-07-27 08:04:03 -07:00
Jeremy Apthorp
7ed9a88277 build: [gn] fix linking against base_static (#13810)
* build: [gn] fix linking against base_static

* chore: run 'gn format' over brightray/BUILD.gn
2018-07-26 08:30:37 -07:00
Jeremy Apthorp
9f26dfc23e build: [gn] win and linux depend on :packed_resources
Also, roll libcc to include
9b66eb4f04
2018-07-25 15:49:42 -07:00
Jeremy Apthorp
d1cb8b7d67 build: [gn win] fix webrtc link error in component build 2018-07-25 11:45:40 -07:00
Jeremy Apthorp
a01b4d78a4 build: [gn] link dwmapi in component build (#13773) 2018-07-25 11:21:36 +10:00
Jeremy Apthorp
76a62b44dc build: [gn] simplify resource pak build 2018-07-24 10:18:27 -07:00
Jeremy Apthorp
4918e279e2
build: stop defining is_mas_build (#13742)
is_mas_build is now defined in libcc.
2018-07-20 14:34:12 -07:00
Jeremy Apthorp
1aa16d0ac0 build: [gn win] fix webrtc link error
Fixes link errors of the form

```
init_webrtc.lib(init_webrtc.obj) : error LNK2005: "class webrtc::metrics::Histogram * __cdecl webrtc::metrics::HistogramFactoryGetCounts(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,int,int,int)" (?HistogramFactoryGetCounts@metrics@webrtc@@YAPAVHistogram@12@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@HHH@Z) already defined in metrics_default.obj
```
2018-07-20 14:30:14 -07:00
Jeremy Apthorp
803f84d7ec build: [gn] reorganize :electron_lib target 2018-07-19 16:30:23 -07:00
Jeremy Apthorp
9fff635453 build: stop defining is_mas_build 2018-07-19 16:10:16 -07:00
Jeremy Apthorp
91172d6387 build: [gn] move native_mate build config to native_mate dir (#13706) 2018-07-18 11:45:13 +10:00
Jeremy Apthorp
5b81fde8a7 build: [gn win] link comctl32.lib to fix component build 2018-07-13 17:21:49 -07:00
Jeremy Apthorp
98f944c807 build: [gn] link child as well as browser in electron_lib 2018-07-11 11:32:17 -07:00
Jeremy Apthorp
c44cf88a6e build: [gn] fix include_dirs ordering error 2018-07-11 10:49:17 -07:00
Jeremy Apthorp
af7800bab1 build: [gn mac] only link libnode.dylib in component build 2018-07-11 10:46:48 -07:00
Jeremy Apthorp
7bec61bac5 build: [gn] fix dllimport warnings 2018-07-11 10:45:21 -07:00
Jeremy Apthorp
6fbec9d5a9 chore: [gn] support MAS build 2018-07-11 10:25:07 -07:00
Jeremy Apthorp
9241645a4b build: [gn] depend on /gtk instead of /gtk3
(We still depend on gtk3, just via one extra layer of abstraction. The
/gtk target itself depends on /gtk3.)
2018-07-10 13:42:41 -07:00
Jeremy Apthorp
62f62264da build: [gn] move crashpad to mac-only 2018-07-10 13:42:40 -07:00
Jeremy Apthorp
180b41ab73 chore: [gn] use merged-in native_mate 2018-06-29 12:01:09 -07:00
Jeremy Apthorp
3d4487ccfd
Merge pull request #13463 from electron/remove_wtl
refactor: Using win32 file open api instead of WTL
2018-06-29 10:00:50 -07:00
Jeremy Apthorp
9525c94b5e
chore: [gn] remove now-meaningless skia-related #defines (#13496)
`SK_SUPPORT_LEGACY_GETTOPDEVICE` was removed in [Jan 2017](https://chromium.googlesource.com/skia/+/76467a11a0aa4ba15f0f2e3ee078ba9b6ecbaa91)

`SK_SUPPORT_LEGACY_SAFESIZE64` was removed in [Oct 2017](https://chromium.googlesource.com/skia/+/3bd0fece5fadd522c2e8c1b0ca9934d7455d9ccd)
2018-06-29 08:36:20 -07:00
Jeremy Apthorp
8ad3a2cc42
chore: [gn] add electron_app target for windows (#13491)
This allows building electron.exe on windows 🎉
2018-06-28 14:58:43 -07:00
Zac Walker
f122c44b07 Using win32 file open dialogs instead of WTL 2018-06-27 13:09:18 +02:00
Jeremy Apthorp
39e6943f1e
chore: [gn] changes to BUILD.gn for windows (#13434)
Grab basket of changes needed to get the `electron_lib` target building on Windows with GN.
2018-06-26 22:58:20 +02:00
Jeremy Apthorp
aa4ca406c8 chore: update GN build for chrome 66 2018-06-21 11:30:43 -07:00
Jeremy Apthorp
e177117fa5 chore: [gn] add desktop capturer sources to GN build (#13286) 2018-06-19 10:29:36 -05:00
Alexey Kuzmin
dee9aef975 Add "enable_desktop_capturer" build flag (#13133)
* Make it possible to disable a module for a renderer

* Put DesktopCapturer API under a build flag

The name is "enable_desktop_capturer".
Enabled by default.
2018-06-13 11:15:34 -05:00
Jeremy Apthorp
b160093b91
refactor: GN builds on linux (#12957) 2018-05-16 12:51:11 -07:00
Jeremy Apthorp
f2b1b3f6b8 Add GN build 2018-05-10 14:03:02 -07:00