Commit Graph

105 Commits

Author SHA1 Message Date
Jonathan Watt
9c5b8de022 Bug 1279451 - Remove a lot of unnecessary includes of nsAutoPtr.h. rs=sparky 2016-06-07 21:10:18 +01:00
Michelangelo De Simone
644fa11092 Bug 1278410 - The Geolocation fuzzing implementation has been removed. r=dougt
MozReview-Commit-ID: 6x4Z4IayvCt
2016-06-06 15:50:12 -07:00
Kyle Huey
a9cf047227 Bug 1265927: Move nsRunnable to mozilla::Runnable, CancelableRunnable to mozilla::CancelableRunnable. r=froydnj 2016-04-25 17:23:21 -07:00
Andrew McCreight
cd5a65ec19 Bug 1263001 - Don't Notify() an unlinked nsGeolocationRequest. r=jdm
If an unlinked nsGeolocationRequest somehow stays alive, then calling
Notify() on it will likely cause a null-deref crash.
2016-04-22 14:15:36 -07:00
Michelangelo De Simone
d54d30bae7 Bug 1255198 - [Telemetry] Add geolocation Telemetry probes to record fulfilled requests according to document.isVisible. r=jdm, data-review=bsmedberg
MozReview-Commit-ID: 85bsEWEWa3w
2016-03-21 15:42:18 -07:00
Andrew McCreight
7ab1170ea0 Bug 1256061 - Hold a strong reference to a request when we call a method on it. r=jdm
I think it is possible for the TimerCallbackHolder to fire off a
Notify() while the geolocation object and the nsGeolocationRequest are
only holding each other alive, so they would be freed by the cycle
collector the next time it runs, but we haven't run the cycle
collector yet. If that happens, then Geolocation::RemoveRequest()
would break the cycle, causing stuff to unravel and bad things to
happen. To fix this, we just hold the request alive in
TimerCallbackHolder::Notify(), which will also ensure that the
geolocation object is alive, hopefully preventing crashes.

This will make the Notify() behavior similar to what it was before bug
1238427, when the nsITimer object would hold a strong reference to the
request when the Notify() was being run.
2016-03-23 12:59:14 -07:00
Andrew McCreight
e0df2739ec Bug 1256061 - Revert patch that didn't do anything. 2016-03-23 12:59:14 -07:00
Andrew McCreight
48b9d7161d Bug 1256061 - Actually check if the underlying referent still exists in nsGeolocationRequest::TimerCallbackHolder::Notify(). r=jdm 2016-03-16 11:48:00 +01:00
Doug Turner
01a2c60097 Bug 1253159 - Remove locationUpdatePending and restore request timeout. r=jdm 2016-03-02 21:48:00 -05:00
ywu
b034577946 Bug 1238873 - Handle the bug that if we take cached data, we might not get any update later. r=kchen. r=jdm. 2016-02-15 17:56:00 +01:00
Andrew McCreight
319b82ce4e Bug 1240906 - Shut down geolocation service at xpcom-shutdown instead of quit-application. r=dougt
Also, remove trailing spaces from network_geolocation.sjs.
2016-01-19 14:07:00 +01:00
ywu
8a151db46c Bug 1240664 - Only enable bug 1216148's behavior when there is a wakelock support. r=kanru 2016-02-01 16:40:21 +08:00
Kyle Huey
e95edb30a9 Bug 1241764: Replace nsPIDOMWindow with nsPIDOMWindowInner/Outer. r=mrbkap,smaug 2016-01-30 09:05:36 -08:00
ywu
a98cce442e Bug 1240666 - Follow-up to bug 1216148. r=kchen.
Add a comment to where we resume gps requests from invisible state.
2016-01-26 18:10:00 +01:00
Alphan Chen
b89acfa708 Bug 858827 - [Geolocation] Add a handling for getCurrentLocation when timeout is zero. r=jdm
Follow W3C spec, Error callback should be called when timeout is zero and
  there's no cached position for getCurrentLocation.
2016-01-26 17:11:54 +08:00
Andrew McCreight
cdd5847b59 Bug 1238427 - Avoid a strong reference from the timeout timer to nsGeolocationRequest. r=jdm
The timeout timer of a geolocation request holds a strong reference to
the request. This can cause the window to leak if the request is not
completed before the tab containing the window is closed.

To fix this, I made the timer instead hold a strong reference to a
wrapper class that has only a weak reference to the request. The
request destructor must now cancel the timeout timer.

I also outlined a call to StopTimeoutTimer() in
nsGeolocationRequest::Shutdown().
2016-01-21 09:57:30 -08:00
Phil Ringnalda
bf09024f1d Back out 0014798942e0 (bug 1238427) for its bad implicit conversion constructor for 'TimerCallbackHolder'
CLOSED TREE
2016-01-20 21:17:44 -08:00
Andrew McCreight
f4fb6ff030 Bug 1238427 - Avoid a strong reference from the timeout timer to nsGeolocationRequest. r=jdm
The timeout timer of a geolocation request holds a strong reference to
the request. This can cause the window to leak if the request is not
completed before the tab containing the window is closed.

To fix this, I made the timer instead hold a strong reference to a
wrapper class that has only a weak reference to the request. The
request destructor must now cancel the timeout timer.

I also outlined a call to StopTimeoutTimer() in
nsGeolocationRequest::Shutdown().
2016-01-19 14:09:00 -05:00
Tim Taubert
9b1ce9796d Bug 1240766 - Fix startup crash in Geolocation::Init() when principal URI is null r=jdm 2016-01-19 22:06:01 +01:00
Tim Taubert
151396ef23 Bug 1230209 - Add more telemetry for Geolocation usage f=bsmedberg r=tanvi,rbarnes,jdm 2015-12-03 19:12:11 +01:00
ywu
d8144a9303 Bug 1216148 - Handle how geolocation acts when the app's visibility changes. r=kchen.
Add the wake lock api to geolocation.
If your app holds a lock, you can continue use geolocation service when your app is invisible.
Otherwise, your invisible app can't get any updated location.
2016-01-12 00:33:00 +01:00
Bogdan Postelnicu
8917f7f9a9 Bug 1227119 - Set a default value for variable ret. r=dougt 2015-11-23 06:03:00 -05:00
Boris Zbarsky
b46dbee839 Bug 1228707. Add a away to call Web IDL callbacks while ignoring any errors from them, and use it in a few places. r=smaug 2015-11-30 22:04:09 -05:00
Boris Zbarsky
6bd7ed035f Bug 1228009. Geolocation code needs to handle failures on its ErrorResults. r=smaug 2015-11-25 15:48:04 -05:00
Birunthan Mohanathas
ac37dec517 Bug 1219392 - Capitalize mozilla::unused to avoid conflicts. r=froydnj 2015-11-02 07:53:26 +02:00
Kyle Huey
8f8794e1c7 Bug 1216401: Eviscerate nsIDOMWindow, move still needed methods to nsPIDOMWindow. r=bz 2015-10-26 14:37:32 -07:00
Nathan Froyd
4e6d8f6705 Bug 1207245 - part 6 - rename nsRefPtr<T> to RefPtr<T>; r=ehsan; a=Tomcat
The bulk of this commit was generated with a script, executed at the top
level of a typical source code checkout.  The only non-machine-generated
part was modifying MFBT's moz.build to reflect the new naming.

CLOSED TREE makes big refactorings like this a piece of cake.

 # The main substitution.
find . -name '*.cpp' -o -name '*.cc' -o -name '*.h' -o -name '*.mm' -o -name '*.idl'| \
    xargs perl -p -i -e '
 s/nsRefPtr\.h/RefPtr\.h/g; # handle includes
 s/nsRefPtr ?</RefPtr</g;   # handle declarations and variables
'

 # Handle a special friend declaration in gfx/layers/AtomicRefCountedWithFinalize.h.
perl -p -i -e 's/::nsRefPtr;/::RefPtr;/' gfx/layers/AtomicRefCountedWithFinalize.h

 # Handle nsRefPtr.h itself, a couple places that define constructors
 # from nsRefPtr, and code generators specially.  We do this here, rather
 # than indiscriminantly s/nsRefPtr/RefPtr/, because that would rename
 # things like nsRefPtrHashtable.
perl -p -i -e 's/nsRefPtr/RefPtr/g' \
     mfbt/nsRefPtr.h \
     xpcom/glue/nsCOMPtr.h \
     xpcom/base/OwningNonNull.h \
     ipc/ipdl/ipdl/lower.py \
     ipc/ipdl/ipdl/builtin.py \
     dom/bindings/Codegen.py \
     python/lldbutils/lldbutils/utils.py

 # In our indiscriminate substitution above, we renamed
 # nsRefPtrGetterAddRefs, the class behind getter_AddRefs.  Fix that up.
find . -name '*.cpp' -o -name '*.h' -o -name '*.idl' | \
    xargs perl -p -i -e 's/nsRefPtrGetterAddRefs/RefPtrGetterAddRefs/g'

if [ -d .git ]; then
    git mv mfbt/nsRefPtr.h mfbt/RefPtr.h
else
    hg mv mfbt/nsRefPtr.h mfbt/RefPtr.h
fi
2015-10-18 01:24:48 -04:00
Bobby Holley
53f8074964 Bug 1072150 - Use the opt-out for various sloppy consumers. r=bz 2015-09-24 14:02:41 -07: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
Garvan Keeley
e92c7d6050 Bug 1145111: ensure the pos. cache isn't reset when nsGeolocationService shuts down provider. r=jdm
After 6 seconds of idle, nsGeolocationService shuts down its provider, and was unintenionally
clearing the position cache.
2015-05-20 12:35:06 -04:00
Garvan Keeley
e84f60ffb3 Bug 1166556 - Don't start geolocation provider if the cached position is being used. r=jdm 2015-05-20 12:35:06 -04:00
Andrew McCreight
92010d3e4c Bug 1152551, part 2 - Fix mode lines in dom/. r=jst 2015-05-03 15:32:37 -04:00
Kershaw Chang
d516b6b845 Bug 1020179 - Let PContent manage PContentPermissionRequest. r=fabrice, r=khuey 2015-04-13 21:08:00 -04:00
Ehsan Akhgari
ea41d8de48 Bug 1145631 - Part 1: Replace MOZ_OVERRIDE and MOZ_FINAL with override and final in the tree; r=froydnj
This patch was automatically generated using the following script:

function convert() {
echo "Converting $1 to $2..."
find . \
       ! -wholename "*/.git*" \
       ! -wholename "obj-ff-dbg*" \
         -type f \
      \( -iname "*.cpp" \
         -o -iname "*.h" \
         -o -iname "*.c" \
         -o -iname "*.cc" \
         -o -iname "*.idl" \
         -o -iname "*.ipdl" \
         -o -iname "*.ipdlh" \
         -o -iname "*.mm" \) | \
    xargs -n 1 sed -i -e "s/\b$1\b/$2/g"
}

convert MOZ_OVERRIDE override
convert MOZ_FINAL final
2015-03-21 12:28:04 -04:00
Boris Zbarsky
3a822d99b4 Bug 1117172 part 3. Change the wrappercached WrapObject methods to allow passing in aGivenProto. r=peterv
The only manual changes here are to BindingUtils.h, BindingUtils.cpp,
Codegen.py, Element.cpp, IDBFileRequest.cpp, IDBObjectStore.cpp,
dom/workers/Navigator.cpp, WorkerPrivate.cpp, DeviceStorageRequestChild.cpp,
Notification.cpp, nsGlobalWindow.cpp, MessagePort.cpp, nsJSEnvironment.cpp,
Sandbox.cpp, XPCConvert.cpp, ExportHelpers.cpp, and DataStoreService.cpp.  The
rest of this diff was generated by running the following commands:

  find . -name "*.h" -o -name "*.cpp" | xargs perl -pi -e 'BEGIN { $/ = undef } s/(WrapObjectInternal\(JSContext *\* *(?:aCx|cx|aContext|aCtx|js))\)/\1, JS::Handle<JSObject*> aGivenProto)/g'

  find . -name "*.h" -o -name "*.cpp" | xargs perl -pi -e 'BEGIN { $/ = undef } s/(WrapObjectInternal\((?:aCx|cx|aContext|aCtx|js))\)/\1, aGivenProto)/g'

  find . -name "*.h" -o -name "*.cpp" | xargs perl -pi -e 'BEGIN { $/ = undef } s/(WrapNode\(JSContext *\* *(?:aCx|cx|aContext|aCtx|js))\)/\1, JS::Handle<JSObject*> aGivenProto)/g'

  find . -name "*.h" -o -name "*.cpp" | xargs perl -pi -e 'BEGIN { $/ = undef } s/(WrapNode\((?:aCx|cx|aContext|aCtx|js))\)/\1, aGivenProto)/g'

  find . -name "*.h" -o -name "*.cpp" | xargs perl -pi -e 'BEGIN { $/ = undef } s/(WrapObject\(JSContext *\* *(?:aCx|cx|aContext|aCtx|js))\)/\1, JS::Handle<JSObject*> aGivenProto)/g'

  find . -name "*.h" -o -name "*.cpp" | xargs perl -pi -e 'BEGIN { $/ = undef } s/(Binding(?:_workers)?::Wrap\((?:aCx|cx|aContext|aCtx|js), [^,)]+)\)/\1, aGivenProto)/g'
2015-03-19 10:13:33 -04:00
Garvan Keeley
7f2ab2893f Bug 1129633 - part1. Use win8 geolocation with a fallback to MLS - r=m_kato 2015-03-10 12:47:40 -04:00
Garvan Keeley
176e343beb Bug 1125411 - OSX: turn CoreLocation provider on, r=cpeterson
Also, expose this setting in about:config
2015-01-26 12:25:00 +01:00
Carsten "Tomcat" Book
691a3b45e8 Backed out changeset 32fe616d4950 (bug 1125411) 2015-01-27 09:16:40 +01:00
Garvan Keeley
2613435459 Bug 1125411 - OSX: turn CoreLocation provider on, r=cpeterson
Also, expose this setting in about:config
2015-01-26 12:25:00 +01:00
Makoto Kato
348cadf24f Bug 512407 - Support Windows Location API. r=jdm,jmathies 2015-01-23 18:43:46 +09:00
Garvan Keeley
5f929183fa Bug 1119513 - Change histogram from linear to exp. and buckets from 200 to 50. r=hannosch 2015-01-12 14:41:00 -05:00
Ehsan Akhgari
1fcde464ff Bug 1118803 - Mark virtual overridden functions as MOZ_OVERRIDE in misc DOM code; r=baku 2015-01-08 08:49:54 -05:00
Dave Huseby
f8c0a3485b Bug 1107681 - fix up the dom uses of WrapptedJSToDictionary to use the cx-less interface. r=bholley 2014-12-29 11:56:00 +01:00
Vinay G Shetty
52f0e0ffd8 Bug 886026 - Make ClearWatch work for pending request. r=jdm 2014-11-07 10:42:00 -05:00
Dave Huseby
b814b63d3c Bug 1073419 - [ALA] All gecko code needed to support adjustable location accuracy. r=jdm, r=mt 2014-10-30 16:39:00 -04:00
Carsten "Tomcat" Book
f65fac9fe4 Backed out changeset 9742b31c634a (bug 1073419) for bustage 2014-10-27 16:56:40 +01:00
Dave Huseby
5826ed32d0 Bug 1073419 - [ALA] Adjustable location accuracy. r=jdm, r=mt 2014-10-24 18:42:00 -04:00
Felipe César
002af79097 Bug 1080017 - Don't send Geolocation messages during shutdown. r=jdm 2014-10-13 17:28:00 -04:00