Commit graph

247 commits

Author SHA1 Message Date
Jeremy Apthorp
de581ca0b4 PathService -> base::PathService 2018-10-04 00:12:54 +02: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
7065093869
feat: add will-redirect (#13866)
* feat: add will-redirect to allow people to prevent 30X redirects

* spec: add tests for the will-redirect event

* refactor: implement will-redirect using NavigationThrottle instead of PostTask

This avoids a potential race condition and immediately cancels the
navigation

* docs: add docs for did-redirect-navigation

* refactor: move AtomNavigationThrottle out of net folder

* refactor: update header guard for atom_navigation_throttle.h

* refactor: fix chromium style errors in the GN build

* refactor: update throttle impl to NOTREACHED and std::make_unqique
2018-09-16 01:42:43 +10:00
Charles Kerr
d663b4eaee
fix: fix gn cpplint warnings (#14583)
* chore: fix cpplint 'include_what_you_use' warnings

Typically by including <memory>, <utility> etc.

* chore: fix 'static/global string constant' warning

Use C style strings instead of std::string.

Style guide forbids non-trivial static / global variables. https://google.github.io/styleguide/cppguide.html#Static_and_Global_Variables

/home/charles/electron/electron-gn/src/electron/script/cpplint.js

* refactor: remove global string variables.

Fix 'global string variables are not permitted' linter warnings
by using the base::NoDestructor<> wrapper to make it explicit that
these variables are never destroyed.

The style guide's take on globals with nontrivial destructors:
https://google.github.io/styleguide/cppguide.html#Static_and_Global_Variables

* fix: initializer error introduced in last commit

* fix: remove WIP file that was included by accident

* fix: include order

* fix: include order

* fix: include order

* fix: include order, again
2018-09-12 19:25:56 -05:00
Jeremy Apthorp
5b25c2db5d Need new #include for base::UTF8ToUTF16 2018-09-11 20:24:03 +02:00
Samuel Attard
aa6d769229 Handle external protocols with the network service.
https://chromium-review.googlesource.com/c/chromium/src/+/956091
2018-09-11 20:24:03 +02: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
Robo
c8f506a8aa fix: add method and referrer properties to app login event (#14231)
* refactor: remove brightray/network_delegate.{cc|h}

* refactor: respond to http requests through network delegate
2018-08-23 18:55:13 +09:00
Shelley Vohr
9f328abe19 refactor: remove instances of createDeepCopy (#13703)
* add new native_mate converters for base::Value

* fix converter swapping

* remove createDeepCopy from browser/api

* replace missing ListValue converter

* convert bulk of remaining createDeepCopy instances

* convert last remaining instances of createDeepCopy

* incremental progress and helper methods for value conversion

* convert Get and add template function for GetString

* final DictionaryValue method conversions

* remove usage of base::DictionaryValue in web_contents_preferences

* use IsEnabled helper where possible

* Update atom_api_web_view_manager.cc
2018-08-04 07:23:07 +10:00
Cheng Zhao
305e3aad40
refactor: remove private webContents.getId() API (#13674) 2018-07-23 18:08:36 +09:00
deepak1556
5e2406081e build: move pepper flash behind feature flag 2018-06-21 17:02:12 +05:30
Milan Burda
d5d5386017 use std::make_unique<T> 2018-06-19 10:20:39 +02:00
deepak1556
77f427acc8 Check for key system support using new mojo service KeySystemSupport
https://chromium-review.googlesource.com/c/chromium/src/+/834764
2018-06-19 11:49:42 +10:00
deepak1556
0cbffb15cc NetworkService: Implement URLLoader::OnAuthRequired
https://chromium-review.googlesource.com/c/chromium/src/+/938960
2018-06-19 11:49:42 +10:00
deepak1556
27cb84eee0 NetworkService: Implement URLLoader::OnCertificateRequested
https://chromium-review.googlesource.com/c/chromium/src/+/848303
2018-06-19 11:49:42 +10:00
deepak1556
b7bc3ec20d Update AtomBrowserClient::RenderProcessWillLaunch api
https://chromium-review.googlesource.com/c/chromium/src/+/742344
2018-06-19 11:49:41 +10:00
Aleksei Kuzmin
37168c0a95 Move ResourceRequestBody to services/network in preparation of moving content/network.
https://chromium-review.googlesource.com/864422
2018-06-19 11:49:41 +10:00
Milan Burda
45e78728bd chore: move more constants to options_switches.h/cc (#13093)
* Add options::kNativeWindowOpen

* Add options::kSandbox

* Add options::kPlugins

* Add options::kWebSecurity

* Add options::kAllowRunningInsecureContent

* Add options::kOffscreen
2018-05-29 03:09:51 -05:00
Milan Burda
2337237d58 Refactoring: use C++11 class member variable initialization 2018-05-22 00:18:38 +02:00
Jeremy Apthorp
dd7e0f80fe Turn off visual zoom by default (#12679) 2018-04-26 10:27:35 -05:00
Jeremy Apthorp
1a64b9f0c2 Disable navigating on drag/drop (#12655)
* Disable navigating on drag/drop

* Add a WebPreferences option to re-enable navigate on drag/drop
2018-04-26 10:23:27 -05:00
Jeremy Apthorp
a635f078c6 [chromium-style] auto variable type must not deduce to a raw pointer type 2018-04-19 11:10:52 -07:00
Shelley Vohr
c6f4bbd143
also format missing .cc files 2018-04-18 20:48:45 -04:00
Robo
65e8199a93 Enable plznavigate aka browser side navigation (#12535)
* enable plznavigate code path

* AtomBrowserClient::GetGeolocationApiKey returns the right default

* use IsLoadingToDifferentDocument to identify top level navigation in mainFrame

* use candidate site instance when available

* spec: don't test httpReferrer option for file origin

* update libcc ref

* affinity: only group same site in this mode

* plznavigate: don't emit did-get-response-details event for blob scheme
2018-04-06 16:22:52 +09:00
Cheng Zhao
0abbedcdae Fix error caused by refactor 2018-03-22 15:21:56 +09:00
Cheng Zhao
6df2326a30 Cleanup the static methods of WebContentsPreferences
The static methods are totally unnecessary, and it makes code harder to
understand since we are using different ways to do the same things.
2018-03-22 15:21:56 +09:00
Cheng Zhao
3d47a8a2fd Remove the static getter methods from WebContentsPreferences 2018-03-22 15:20:03 +09:00
Cheng Zhao
887bc12350 Add WebContentsPreferences::From that checks parameter 2018-03-22 15:16:26 +09:00
Cheng Zhao
9772777919 web_prefrences() => dict()
Having property name being the same with class name is making code
harder to understand, and dict is much shorter.
2018-03-22 15:15:30 +09:00
deepak1556
c1908147a9 Fix windows build 2018-03-20 10:13:17 +03:00
deepak1556
c3f8f6bc42 re-use request context from IOThread 2018-03-20 10:13:17 +03:00
deepak1556
97eb7f2c98 REVIEW: ContentBrowserClient now provides geolocation api key and request context 2018-03-20 10:13:16 +03:00
Samuel Attard
1158d35021 experimental_webgl_enabled is not supported, now use webgl1/2_enabled 2018-03-20 10:08:58 +03:00
Samuel Attard
fb55db665c AllowCertificateError no longer sends overridable 2018-03-20 10:08:57 +03:00
Samuel Attard
0ac883c6d4
Remove the race condition between new process creation and context release (#12342)
* Remove the race condition between new process creation and old process releasing remote context

Previously there was a race condition where the getId() method would return the new context ID even
though the release was for the old context.  This changes it to send the "initial" context ID with
the release message to ensure there is no race.

* fetch context ID from remote in sandbox mode
2018-03-20 15:54:47 +11:00
Robo
06bf72da67 remove process preference lock from AtomBrowserClient (#12194) 2018-03-09 12:37:26 -05:00
Cheng Zhao
83f01096c0 When a render process is crashed, it might be reused 2018-03-09 16:13:51 +09:00
Cheng Zhao
9c7854aef6 NativeWindow is no longer WebContentsObserver 2018-03-06 16:21:18 +09:00
Cheng Zhao
affa21600c Remove unnecessary methods on WebContentsPreferences 2018-02-13 15:57:54 +09:00
Emmanuel Kimmerlin
9c1b47361f Add an "affinity" option to webPreferences 2018-02-13 15:18:55 +09:00
Aleš Pergl
39554566cc Allow IO while constructing an absolute path (prevents DCHECK failure) (#11697) 2018-01-23 10:25:01 -05:00
Aleš Pergl
c49cb29ddf Disallow launching unknown apps via browser client.
CVE-2018-1000006
2018-01-22 16:49:30 -06:00
deepak1556
a1592446da REVIEW: access GetApplicationLocale on sequence that allows IO 2018-01-02 16:37:08 +09:00
deepak1556
69bd44edbb REVIEW: add render process lifecycle observer only once 2018-01-02 16:37:08 +09:00
deepak1556
19de41b764 BrowserClient::CanCreateWindow is no longer called on the IO thread
https://codereview.chromium.org/2821473002
2017-12-07 09:47:32 +05:30
Cheng Zhao
cb3a9c69ab Add a SessionPreferences to manage session related data
By design the BrowserClient should not be aware of the api:: classes.
2017-12-05 15:59:15 +09:00
Ales Pergl
7613afe6d7 Disabled DCHECKs that fail when running tests 2017-12-01 17:55:22 +01:00
Aleksei Kuzmin
fe662ccbdc Remove obsolete Blink popup blocker.
https://chromium-review.googlesource.com/c/chromium/src/+/512347
2017-11-24 10:58:17 +09:00
Aleksei Kuzmin
5831a5ffa1 Refactor client cert private key handling.
https://codereview.chromium.org/2898573002
2017-11-24 10:58:16 +09:00
Aleksei Kuzmin
ee9a547985 Service CreateNewWindow on the UI thread with a new mojo interface
https://codereview.chromium.org/2821473002
2017-11-24 10:58:16 +09:00
Aleksei Kuzmin
ba6e8b4dff Merge ResourceRequestBodyImpl and ResourceRequestBody.
https://codereview.chromium.org/2954343005
2017-11-24 10:58:15 +09:00
Aleksei Kuzmin
b77b67bfbe Remove client_certs from SSLCertRequestInfo.
https://codereview.chromium.org/2838243002
2017-11-24 10:58:15 +09:00
Cheng Zhao
eeca6fcb55 Revert "Fix window.opener being null when nativeWindowOpen is used" 2017-08-07 19:50:23 +09:00
Samuel Attard
bd99bcbf64 Fix typo in comment 2017-07-31 11:00:00 +10:00
Samuel Attard
32327b77a5 Remove unneeded check but document why it is not there now 2017-07-31 10:47:25 +10:00
Samuel Attard
3ac2f674bc
Fix nativeWindowOpen's opener being null 2017-07-29 19:21:28 +10:00
Kevin Sawicki
06e60e5d4d Map pending process id to webContents for frame host initiating navigation 2017-07-17 11:55:15 -07:00
Kevin Sawicki
25e1ed97b5 Use constants from content_switches.h 2017-07-17 11:55:15 -07:00
Kevin Sawicki
dbd240a7cb Return null from native window.open when allowpopups is unset 2017-05-26 10:10:36 -07:00
Kevin Sawicki
d6e626c7e3 Remove crashed render processes from metrics 2017-05-26 08:32:08 -07:00
Kevin Sawicki
b5879b7399 🎨 Minor formatting/doc changes 2017-05-26 07:51:17 -07:00
Hari Juturu
939747945e Adding CPU & Memory metrics for App 2017-05-24 21:07:35 -07:00
Ryohei Ikegami
7ac93045b7 Merge branch 'master' into native-window-open 2017-05-11 13:51:43 +09:00
Cheng Zhao
fc2d62d5cb Fix API changes of Chrome58 2017-04-27 16:34:52 +09:00
Ryohei Ikegami
1d73e84a29 Merge branch 'master' into native-window-open 2017-04-27 12:03:55 +09:00
Kevin Sawicki
a004cada7c Merge pull request #9095 from seanchas116/better-path-resolve
Search for module from app path when URL is not file protocol
2017-04-20 10:49:53 -07:00
Birunthan Mohanathas
3bcf5e0e9f Fix OverrideSiteInstanceForNavigation() signature 2017-04-18 11:51:38 +03:00
Ryohei Ikegami
9d62b196d3 Use base::FilePath 2017-04-13 10:59:12 +09:00
Ryohei Ikegami
b19c5154ca Fix cpplint errors 2017-04-12 12:25:56 +09:00
Ryohei Ikegami
34ed1a9ef8 Track child web contents 2017-04-06 12:15:27 +09:00
Ryohei Ikegami
526086d900 Improve RootWebContentsTracker 2017-04-06 11:37:21 +09:00
Ryohei Ikegami
b683584859 Add better comments to ShouldCreateNewSiteInstance 2017-04-05 18:16:10 +09:00
Ryohei Ikegami
cbdd52e43b Always create new SiteInstance on root WebContents 2017-04-05 17:51:17 +09:00
Ryohei Ikegami
90852c665d Pass RenderFrameHost to ShouldCreateNewSiteInstance 2017-04-05 13:47:02 +09:00
Ryohei Ikegami
e7b9b4b1a5 Always create new site instance 2017-04-04 20:54:10 +09:00
Ryohei Ikegami
3eab5df4a4 Revert "Reuse site instance only on window.open"
This reverts commit 4d61d071b2.
2017-04-04 13:48:17 +09:00
Ryohei Ikegami
24fedb2e20 No extra linebreak 2017-04-04 09:40:38 +09:00
Ryohei Ikegami
4a7eec8f2d Pass app path as command line argument 2017-04-04 09:36:01 +09:00
Ryohei Ikegami
4d61d071b2 Reuse site instance only on window.open 2017-03-21 10:41:49 +09:00
Ryohei Ikegami
f3ce93f1bb Fix C++ style 2017-03-19 18:24:05 +09:00
Ryohei Ikegami
2c7343293a Allow window.open on native-window-open enabled 2017-03-19 17:47:26 +09:00
Ryohei Ikegami
a1f9a45276 Use native window.open implementation 2017-03-19 17:41:20 +09:00
Ryohei Ikegami
054ba7a964 Add AtomBrowserClient::IsRendererUsesNativeWindowOpen 2017-03-19 17:25:45 +09:00
Cheng Zhao
2e0780308c allowDisplayingInsecureContent is removed by Chrome 2017-02-06 10:34:29 -08:00
Cheng Zhao
c10eb73166 Signature of OnCreateWindow has changed 2017-02-06 10:34:28 -08:00
Cheng Zhao
497f5a1199 Update files for Chrome 54 API changes 2017-01-19 09:05:59 +02:00
Paul Frazee
99ea50649a finish implementation of {secure:true} opt on protocol.registerStandardScehesm, and add working test 2016-12-12 12:49:57 -08:00
deepak1556
0410a184ce webContents: handle POST navigation for new windows 2016-11-11 10:53:00 -08:00
Kevin Sawicki
709dd0bf18 Upgrade to Chrome 53.0.2785.143 2016-11-09 11:03:44 -08:00
Michael Vasseur
c811188e22 Updated required code to handle missing additional features for popup windows 2016-10-04 14:38:32 +09:00
deepak1556
1323542373 browser: allow filesystem access for devtools scheme 2016-09-29 22:54:39 +05:30
Thiago de Arruda
1d228446db Expose --enable-sandbox command-line switch.
When `--enable-sandbox` is passed, electron will use chromium sandbox to spawn
all renderers, and every new BrowserWindow will automatically have "sandboxed"
passed as a web preference(since the renderer would not work properly
otherwise).
2016-09-27 06:01:46 -03:00
Thiago de Arruda
c783ec72bc Add "sandboxed" option to "webPreferences".
When "sandboxed" is passed as a web preference for `BrowserWindow`, the newly
created renderer won't run any node.js code/integration, only communicating with
the system via the IPC API of the content module. This is a requirement for
running the renderer under chrome OS-level sandbox.

Beyond that, certain behaviors of AtomBrowserClient are modified when dealing
with sandboxed renderers:

- `OverrideSiteInstanceNavigation` no longer create a new `SiteInstance` for
  every navigation. Instead, it reuses the source `SiteInstance` when not
  navigating to a different site.
- `CanCreateWindow` will return true and allow javascript access.
2016-09-27 06:01:46 -03:00
Cheng Zhao
f28e8d7168 Fix API changes of Chrome 53 2016-09-14 16:22:43 +09:00
deepak1556
62cb8428fb use schemes from global instead of commandline 2016-08-24 20:22:35 +05:30
deepak1556
ad0c86db7a register custom schemes to access files through filesystem api 2016-08-24 05:46:54 +05:30
Cheng Zhao
1ba3907038 Update to API changes of Chrome 52 2016-07-04 15:32:43 +09:00
Cheng Zhao
14c4be50c1 Avoid calling GetWebContentsFromProcessID for twice 2016-07-02 16:54:12 +09:00
Samuel Attard
4f660f3e6f Implement WebContenstAudioMuted in AtomBrowserClient 2016-07-02 13:28:28 +12:00
Cheng Zhao
920ebee333 Make sure standard schemes are also set in child process 2016-06-08 15:46:50 +09:00