Commit Graph

134 Commits

Author SHA1 Message Date
Jim Chen
0911a44f43 Bug 1343075 - Use GeckoEditableSupport from PuppetWidget; r=masayuki r=rbarker r=snorp r=esawin
Bug 1343075 - 1a. Add TextEventDispatcherListener::GetIMEUpdatePreference; r=masayuki

Add a GetIMEUpdatePreference method to TextEventDispatcherListener to
optionally control which IME notifications are received by NotifyIME.
This patch also makes nsBaseWidget forward its GetIMEUpdatePreference
call to the widget's native TextEventDispatcherListener.

Bug 1343075 - 1b. Implement GetIMEUpdatePreference for all TextEventDispatcherListener; r=masayuki

This patch implements GetIMEUpdatePreference for all
TextEventDispatcherListener implementations, by moving previous
implementations of nsIWidget::GetIMEUpdatePreference.

Bug 1343075 - 2. Allow setting a PuppetWidget's native TextEventDispatcherListener; r=masayuki

In PuppetWidget, add getter and setter for the widget's native
TextEventDispatcherListener. This allows overriding of PuppetWidget's
default IME handling. For example, on Android, the PuppetWidget's native
TextEventDispatcherListener will communicate directly with Java IME code
in the main process.

Bug 1343075 - 3. Add AIDL interface for main process; r=rbarker

Add AIDL definition and implementation for an interface for the main
process that child processes can access.

Bug 1343075 - 4. Set Gecko thread JNIEnv for child process; r=snorp

Add a JNIEnv* parameter to XRE_SetAndroidChildFds, which is used to set
the Gecko thread JNIEnv for child processes. XRE_SetAndroidChildFds is
the only Android-specific entry point for child processes, so I think
it's the most logical place to initialize JNI.

Bug 1343075 - 5. Support multiple remote GeckoEditableChild; r=esawin

Support remote GeckoEditableChild instances that are created in the
content processes and connect to the parent process GeckoEditableParent
through binders.

Support having multiple GeckoEditableChild instances in GeckoEditable by
keeping track of which child is currently focused, and only allow
calls to/from the focused child by using access tokens.

Bug 1343075 - 6. Add method to get GeckoEditableParent instance; r=esawin

Add IProcessManager.getEditableParent, which a content process can call
to get the GeckoEditableParent instance that corresponds to a given
content process tab, from the main process.

Bug 1343075 - 7. Support GeckoEditableSupport in content processes; r=esawin

Support creating and running GeckoEditableSupport attached to a
PuppetWidget in content processes.

Because we don't know PuppetWidget's lifetime as well as nsWindow's,
when attached to PuppetWidget, we need to attach/detach our native
object on focus/blur, respectively.

Bug 1343075 - 8. Connect GeckoEditableSupport on PuppetWidget creation; r=esawin

Listen to the "tab-child-created" notification and attach our content
process GeckoEditableSupport to the new PuppetWidget.

Bug 1343075 - 9. Update auto-generated bindings; r=me
2017-03-07 22:34:39 -05:00
Mike Hommey
d7c9f0f24f Bug 1330533 - Remove XRE_LibFuzzerGetFuncs. r=decoder
Now that XRE_LibFuzzerGetFuncs is not used from outside libxul, it can
be inlined in LibFuzzerRunner::Run, simplifying things a little more.
2017-01-12 16:02:50 +09:00
Mike Hommey
e521d08008 Bug 1330533 - Use FuzzerDriver directly instead of wrapping it in a libfuzzer_main function. r=decoder
Going further from the previous changes, all libfuzzer_main really does
is call the init function, and then proceed to call the fuzzer driver
with the testing function.

So instead of calling that function for it to do all that, the
LibFuzzerRunner can just call the init function itself, and then
call the fuzzer driver with the testing function.
2017-01-12 14:44:18 +09:00
Mike Hommey
e55bae1e11 Bug 1330533 - Remove argc/argv arguments to XRE_LibFuzzerSetMain. r=decoder
The function given to XRE_LibFuzzerSetMain is called from somewhere that
does have access to argc/argv already, so we can avoid passing them
to XRE_LibFuzzerSetMain.

This actually might fix subtle issues with argc/argv not really matching
reality when calling the LibFuzzerMain function in the current code:
some arguments are handled before the call, and both argc and argv are
modified from within XRE_main, but the values stored for the
LibFuzzerMain call still are the original ones.

Argv being a pointer, and it not being reallocated, the value stored for
the LibFuzzerMain call points to the changed one, but argc, being an
integer, is not modified accordingly.

In fact, it's actually worse, because while the Gecko code doesn't
reallocate argv, gtk_main might. So if some GTK flag is passed on the
command line, there's also a possibility that the LibFuzzerMain function
will do a use-after-free.

So all in all, it's just better to use the set of modified argc/argv
from XRE_main instead of storing them from main().
2017-01-12 11:59:37 +09:00
Mike Hommey
3349e52d3c Bug 1306327 - Move reading application.ini to XRE_main. r=bsmedberg
Reading application.ini involves using nsCOMPtr<nsIFile>, and that can
only happen through the XPCOM glue, which we eventually want to get rid
of.

So, while keeping the command line argument/environment variable
handling in nsBrowserApp, we move the actually parsing of the file to
XRE_main, where things can be handled without the XPCOM glue.
2017-01-10 16:43:23 +09:00
Mike Hommey
f89620bd8c Bug 1306327 - Remove the flags argument to XRE_main. r=bsmedberg
This hasn't been used since the removal of the Metro code in bug
1039866, close to two years ago.
2017-01-10 14:15:50 +09:00
Benjamin Smedberg
16afdb2402 Bug 1321593 part A - Refactor nsXREAppData: 1) make nsXREAppData strongly own its members 2) rename it to mozilla::XREAppData 3) separate out the static compiled data into StaticXREAppData 4) Remove XRE_CreateAppData and XRE_FreeAppData 5) remove the struct size and related size-checking code which was only ever useful for cross-version compatibility, r=glandium
MozReview-Commit-ID: CQv1UrSaw4D
2016-12-02 09:07:24 -05:00
Sebastian Hengst
960f717144 Backed out changeset eae2252a519f (bug 1321593) for leaks, e.g. in clipboard and jetpack tests. r=backout 2016-12-12 22:10:17 +01:00
Benjamin Smedberg
3963121e97 Bug 1321593 part A - Refactor nsXREAppData: 1) make nsXREAppData strongly own its members 2) rename it to mozilla::XREAppData 3) separate out the static compiled data into StaticXREAppData 4) Remove XRE_CreateAppData and XRE_FreeAppData 5) remove the struct size and related size-checking code which was only ever useful for cross-version compatibility, r=glandium
MozReview-Commit-ID: CQv1UrSaw4D
2016-12-02 09:07:24 -05:00
Randall Barker
453a6a0da0 Bug 1314466 - part 5, Add service process manager r=snorp 2016-11-14 16:45:23 -08:00
David Anderson
b3d14bc7c6 Add XRE_IsGPUProcess. (bug 1301266 part 1, r=billm) 2016-09-21 22:38:40 -07:00
Christian Holler (:decoder)
0ee2e05a6f Bug 1289194 - Experimental LibFuzzer integration. r=glandium
MozReview-Commit-ID: 9njDcbltyow
2016-09-01 15:07:01 +02:00
Sebastian Hengst
cda67b5d84 Backed out changeset 95e68b473e91 (bug 1289194) for failure to process moz.build file. r=backout a=backout
MozReview-Commit-ID: GhfzNoiE808
2016-09-07 18:45:40 +02:00
Christian Holler (:decoder)
09deaa21d9 Bug 1289194 - Experimental LibFuzzer integration. r=glandium 2016-09-01 15:07:01 +02:00
Alexandre Lissy
b2834a3543 Bug 1284674 - Remove NUWA r=cyu
MozReview-Commit-ID: GyMRNzOBKw6
2016-08-02 14:54:00 +02:00
David Anderson
455883747f Add GeckoProcessType_GPU. (bug 1271180 part 3, r=billm) 2016-06-10 21:54:44 -04:00
Phil Ringnalda
fb45b46515 Back out 5 changesets (bug 1271180) for static analysis bustage
CLOSED TREE

Backed out changeset cfb53b780b18 (bug 1271180)
Backed out changeset 204b084385f8 (bug 1271180)
Backed out changeset 353da876be33 (bug 1271180)
Backed out changeset 4472dfbc1dc6 (bug 1271180)
Backed out changeset 81079e787b8a (bug 1271180)
2016-06-11 00:46:09 -07:00
David Anderson
d1083a3b9a Add GeckoProcessType_GPU. (bug 1271180 part 3, r=billm) 2016-06-10 21:54:44 -04:00
Andrew Swan
66950a7ba7 Bug 1270356 Part 1: Add native messaging paths to XRE directory provider r=kmag
MozReview-Commit-ID: 2tjR3r9YySy
2016-05-12 11:39:27 -07:00
Jed Davis
48dd26ae20 Bug 1114647 - Use firefox for child processes instead of plugin-container. r=ted
Disabled on Mac (content processes need to use plugin-container.app for
UI reasons) and on Linux unless --disable-sandboxing (build issues).

Based on work by George Wright <george@mozilla.com>.
2016-06-03 12:49:39 -07:00
Stephen Pohl
0dd106423c Bug 1027651: Fix comment for XRE_UPDATE_ROOT_DIR. r=rstrong 2016-05-24 22:26:09 -04:00
Bob Owen
a3e759646e Bug 1035125 Part 9: Link Chromium sandbox into firefox.exe instead of having a separate DLL. r=aklotz,glandium
MozReview-Commit-ID: 1vgDPjpcwz3
2016-05-15 16:41:40 +01:00
Bob Owen
f99b386a00 Bug 1035125 Part 8: Pass sandboxing pointers through XRE_InitChildProcess instead of linking to more functions in xul. r=aklotz,glandium
MozReview-Commit-ID: 5AiktOArpfU
2016-05-15 16:35:22 +01:00
Gijs Kruitbosch
83dd8938b3 Bug 1191468 - always load app dir add-ons irrespective of enabledScopes, r=Mossop,froydnj 2015-11-17 13:55:31 +00:00
Dave Townsend
f78e5e18e6 Bug 1207287: Move the app-shipped system add-ons somewhere where they will be included in up date MARs. r=froydnj r=rhelmer
This moves the app-shipped system add-ons into <appdir>/features. I've created
a new directory provider location for this since it allows us to override the
location without allowing external apps to do so as would be the case with
prefs.
2015-09-24 16:03:01 -07:00
Birunthan Mohanathas
a29151dc87 Bug 1182996 - Fix and add missing namespace comments. rs=ehsan
The bulk of this commit was generated by running:

  run-clang-tidy.py \
    -checks='-*,llvm-namespace-comment' \
    -header-filter=^/.../mozilla-central/.* \
    -fix
2015-07-13 08:25:42 -07:00
Mike Hommey
ca49d7244e Bug 833117 - Replace g_slice_set_config() with G_SLICE environment variable. r=nfroyd,r=karlt
Using g_slice_set_config() fails with newer glib because the slice allocator
now has a static constructor that runs when glib is loaded, consequently
emitting a noisy error message which confuses people into believing it's the
root of their problems.

The only way left to force the slice allocator to use "system" malloc (in
practice, jemalloc) is to set the G_SLICE environment variable to
always-malloc, and that needs to happen before glib is loaded.

Fortunately, the firefox and plugin-container executables don't depend on
glib. Unfortunately, webapprt does, so the problem remains for web apps
running through it. xpcshell and other executables that depend on libxul
directly (as opposed to loading it dynamically) are not covered either.
2015-07-10 09:56:05 +09:00
Gabriele Svelto
d9aa3cd009 Bug 858928 - Switch XRE_StartupTimelineRecord() from PRTime to TimeStamp. r=froydnj 2015-07-06 18:01:09 +02:00
Juan Gomez
89035d527e Bug 1171931 - Refactor duplicated code using XRE_IsParent/ContentProcess. r=froydnj 2015-07-03 18:29:00 -07:00
Ryan VanderMeulen
7aba9d7002 Backed out changeset 8b4e4083639e (bug 1171931) for B2G debug emulator bustage. 2015-06-25 19:48:42 -04:00
Juan Gomez
7323e89a40 Bug 1171931 - Refactor duplicated code using XRE_IsParent/ContentProcess. r=froydnj 2015-06-24 14:11:00 -04:00
Eric Rahm
ddc8ac650b Bug 1165518 - Part 2: Replace prlog.h with Logging.h. rs=froydnj 2015-05-19 11:15:34 -07:00
Benjamin Smedberg
e51ae6d5b8 Bug 1159737 Stop supporting binary XPCOM components except built into the application. r=froydnj sr=bz Some xpcshell tests of binary functionality need to register binary components. Expose a function "registerAppManifest" in the xpcshell environment to make this available to tests without exposing it to addons. r=bholley 2015-05-01 10:23:44 -04:00
Kartikaya Gupta
ebe4a3e37e Bug 1039866 - Rip out a bunch of metro-only code. r=jimm,gavin,rstrong 2015-04-23 15:10:30 -04:00
Andrew McCreight
00f75cda98 Bug 1151541, part 2 - Fix mode lines in xpcom/. r=froydnj 2015-04-09 10:25:05 -07:00
Mason Chang
f07c16f93e Bug 1108613. Create an XRE_IsParentProcess to detect if code is running in the parent process. r=roc 2014-12-09 11:21:47 -08:00
Chris Pearce
6a99bb1eb8 Bug 1088488 - Add GMPLoader interface to encapsulate loading GMPs, pass that to XRE_InitChildProcess. r=jesup,r=bsmedberg,r=glandium 2014-11-14 21:26:24 +13:00
Cervantes Yu
b662cccda6 Bug 1051633: Make sure magic file descriptors in the content process will not be taken for other uses. r=khuey 2014-09-30 00:00:00 +08:00
Carsten "Tomcat" Book
d3eb07ba53 Backed out changeset 1e25cd3e8219 (bug 1051633) for B2G ICS Emulator Opt m4 test failures 2014-09-24 11:28:37 +02:00
Cervantes Yu
5927c5ac47 Bug 1051633: Make sure magic file descriptors in the content process will not be taken for other uses. r=khuey 2014-08-15 17:19:05 +08:00
Birunthan Mohanathas
b241110f15 Bug 1046841 - Convert xpcom/build/ to Gecko style. r=froydnj 2014-08-13 11:45:37 -07:00
Bill McCloskey
2bb98a1ad0 Bug 1045847 - Initialize sProcessType really, really early (r=khuey) 2014-08-08 17:52:12 -07:00
Thinker K.F. Li
a123cd01f3 Bug 977026 - Part 3: Preload XPT before calling fork. r=bsmedberg 2014-07-25 20:52:00 -04:00
Thinker K.F. Li
addb2c1606 Bug 977026 - Part 2: B2G loader. r=khuey, r=cyu 2014-07-30 03:24:00 -04:00
Mike Hommey
e0dac91a96 Backout changesets 7ff3cd713466, f8ec5977a454 and c7c37390b46b (bug 977026) for b2g bustage on a CLOSED TREE. 2014-07-29 14:50:41 +09:00
Thinker K.F. Li
c0b21ef5dc Bug 977026 - part 3: preload XPT before calling fork. r=bsmedberg 2014-07-25 20:52:00 +02:00
Thinker K.F. Li
7da0837ec9 Bug 977026 - part 2: B2G loader. r=khuey,cyu 2014-07-25 20:52:00 +02:00
Josh Aas
ee4490b792 Bug 957928: Gecko Media Plugins implementation. No consumers in Gecko yet. r=bent 2014-05-17 22:05:46 -05:00
Phil Ringnalda
bca0fd4369 Back out a4b51aff4b3c (bug 957928) for build bustage
CLOSED TREE
2014-05-17 17:43:07 -07:00
Josh Aas
63bc459aba Bug 957928: Gecko Media Plugins implementation. No consumers in Gecko yet. r=bent 2014-05-17 18:53:03 -05:00