Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1157)

Unified Diff: Source/modules/geolocation/Geolocation.cpp

Issue 319863003: Enable Oilpan for modules/geolocation by default. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: Source/modules/geolocation/Geolocation.cpp
diff --git a/Source/modules/geolocation/Geolocation.cpp b/Source/modules/geolocation/Geolocation.cpp
index eaacf5ebe8976f034d40071826cdb2c60d804b3b..fd6675f6b52d5f2107bb2d242190f0789e710336 100644
--- a/Source/modules/geolocation/Geolocation.cpp
+++ b/Source/modules/geolocation/Geolocation.cpp
@@ -29,12 +29,11 @@
#include "modules/geolocation/Geolocation.h"
#include "core/dom/Document.h"
-#include "wtf/CurrentTime.h"
-
#include "modules/geolocation/Coordinates.h"
#include "modules/geolocation/GeolocationController.h"
#include "modules/geolocation/GeolocationError.h"
#include "modules/geolocation/GeolocationPosition.h"
+#include "wtf/CurrentTime.h"
namespace WebCore {
@@ -42,12 +41,12 @@ static const char permissionDeniedErrorMessage[] = "User denied Geolocation";
static const char failedToStartServiceErrorMessage[] = "Failed to start Geolocation service";
static const char framelessDocumentErrorMessage[] = "Geolocation cannot be used in frameless documents";
-static PassRefPtrWillBeRawPtr<Geoposition> createGeoposition(GeolocationPosition* position)
+static Geoposition* createGeoposition(GeolocationPosition* position)
{
if (!position)
return nullptr;
- RefPtrWillBeRawPtr<Coordinates> coordinates = Coordinates::create(
+ Coordinates* coordinates = Coordinates::create(
position->latitude(),
position->longitude(),
position->canProvideAltitude(),
@@ -59,10 +58,10 @@ static PassRefPtrWillBeRawPtr<Geoposition> createGeoposition(GeolocationPosition
position->heading(),
position->canProvideSpeed(),
position->speed());
- return Geoposition::create(coordinates.release(), convertSecondsToDOMTimeStamp(position->timestamp()));
+ return Geoposition::create(coordinates, convertSecondsToDOMTimeStamp(position->timestamp()));
}
-static PassRefPtrWillBeRawPtr<PositionError> createPositionError(GeolocationError* error)
+static PositionError* createPositionError(GeolocationError* error)
{
PositionError::ErrorCode code = PositionError::POSITION_UNAVAILABLE;
switch (error->code()) {
@@ -77,7 +76,7 @@ static PassRefPtrWillBeRawPtr<PositionError> createPositionError(GeolocationErro
return PositionError::create(code, error->message());
}
-Geolocation::GeoNotifier::GeoNotifier(Geolocation* geolocation, PassOwnPtr<PositionCallback> successCallback, PassOwnPtr<PositionErrorCallback> errorCallback, PassRefPtrWillBeRawPtr<PositionOptions> options)
+Geolocation::GeoNotifier::GeoNotifier(Geolocation* geolocation, PassOwnPtr<PositionCallback> successCallback, PassOwnPtr<PositionErrorCallback> errorCallback, PositionOptions* options)
: m_geolocation(geolocation)
, m_successCallback(successCallback)
, m_errorCallback(errorCallback)
@@ -99,7 +98,7 @@ void Geolocation::GeoNotifier::trace(Visitor* visitor)
visitor->trace(m_fatalError);
}
-void Geolocation::GeoNotifier::setFatalError(PassRefPtrWillBeRawPtr<PositionError> error)
+void Geolocation::GeoNotifier::setFatalError(PositionError* error)
{
// If a fatal error has already been set, stick with it. This makes sure that
// when permission is denied, this is the error reported, as required by the
@@ -149,10 +148,6 @@ void Geolocation::GeoNotifier::timerFired(Timer<GeoNotifier>*)
{
m_timer.stop();
- // Protect this GeoNotifier object, since it
- // could be deleted by a call to clearWatch in a callback.
- RefPtrWillBeRawPtr<GeoNotifier> protect(this);
-
// Test for fatal error first. This is required for the case where the LocalFrame is
// disconnected and requests are cancelled.
if (m_fatalError) {
@@ -170,10 +165,8 @@ void Geolocation::GeoNotifier::timerFired(Timer<GeoNotifier>*)
return;
}
- if (m_errorCallback) {
- RefPtrWillBeRawPtr<PositionError> error = PositionError::create(PositionError::TIMEOUT, "Timeout expired");
- m_errorCallback->handleEvent(error.get());
- }
+ if (m_errorCallback)
+ m_errorCallback->handleEvent(PositionError::create(PositionError::TIMEOUT, "Timeout expired"));
m_geolocation->requestTimedOut(this);
}
@@ -183,14 +176,12 @@ void Geolocation::Watchers::trace(Visitor* visitor)
visitor->trace(m_notifierToIdMap);
}
-bool Geolocation::Watchers::add(int id, PassRefPtrWillBeRawPtr<GeoNotifier> prpNotifier)
+bool Geolocation::Watchers::add(int id, GeoNotifier* notifier)
{
ASSERT(id > 0);
- RefPtrWillBeRawPtr<GeoNotifier> notifier = prpNotifier;
-
- if (!m_idToNotifierMap.add(id, notifier.get()).isNewEntry)
+ if (!m_idToNotifierMap.add(id, notifier).isNewEntry)
return false;
- m_notifierToIdMap.set(notifier.release(), id);
+ m_notifierToIdMap.set(notifier, id);
return true;
}
@@ -243,11 +234,11 @@ void Geolocation::Watchers::getNotifiersVector(GeoNotifierVector& copy) const
copyValuesToVector(m_idToNotifierMap, copy);
}
-PassRefPtrWillBeRawPtr<Geolocation> Geolocation::create(ExecutionContext* context)
+Geolocation* Geolocation::create(ExecutionContext* context)
{
- RefPtrWillBeRawPtr<Geolocation> geolocation = adoptRefWillBeNoop(new Geolocation(context));
+ Geolocation* geolocation = new Geolocation(context);
geolocation->suspendIfNeeded();
- return geolocation.release();
+ return geolocation;
}
Geolocation::Geolocation(ExecutionContext* context)
@@ -304,24 +295,24 @@ Geoposition* Geolocation::lastPosition()
return m_lastPosition.get();
}
-void Geolocation::getCurrentPosition(PassOwnPtr<PositionCallback> successCallback, PassOwnPtr<PositionErrorCallback> errorCallback, PassRefPtrWillBeRawPtr<PositionOptions> options)
+void Geolocation::getCurrentPosition(PassOwnPtr<PositionCallback> successCallback, PassOwnPtr<PositionErrorCallback> errorCallback, PositionOptions* options)
{
if (!frame())
return;
- RefPtrWillBeRawPtr<GeoNotifier> notifier = GeoNotifier::create(this, successCallback, errorCallback, options);
- startRequest(notifier.get());
+ GeoNotifier* notifier = GeoNotifier::create(this, successCallback, errorCallback, options);
+ startRequest(notifier);
m_oneShots.add(notifier);
}
-int Geolocation::watchPosition(PassOwnPtr<PositionCallback> successCallback, PassOwnPtr<PositionErrorCallback> errorCallback, PassRefPtrWillBeRawPtr<PositionOptions> options)
+int Geolocation::watchPosition(PassOwnPtr<PositionCallback> successCallback, PassOwnPtr<PositionErrorCallback> errorCallback, PositionOptions* options)
{
if (!frame())
return 0;
- RefPtrWillBeRawPtr<GeoNotifier> notifier = GeoNotifier::create(this, successCallback, errorCallback, options);
- startRequest(notifier.get());
+ GeoNotifier* notifier = GeoNotifier::create(this, successCallback, errorCallback, options);
+ startRequest(notifier);
int watchID;
// Keep asking for the next id until we're given one that we don't already have.
@@ -445,9 +436,6 @@ void Geolocation::clearWatch(int watchID)
void Geolocation::setIsAllowed(bool allowed)
{
- // Protect the Geolocation object from garbage collection during a callback.
- RefPtrWillBeRawPtr<Geolocation> protect(this);
-
// This may be due to either a new position from the service, or a cached
// position.
m_allowGeolocation = allowed ? Yes : No;
@@ -460,9 +448,9 @@ void Geolocation::setIsAllowed(bool allowed)
}
if (!isAllowed()) {
- RefPtrWillBeRawPtr<PositionError> error = PositionError::create(PositionError::PERMISSION_DENIED, permissionDeniedErrorMessage);
+ PositionError* error = PositionError::create(PositionError::PERMISSION_DENIED, permissionDeniedErrorMessage);
error->setIsFatal(true);
- handleError(error.get());
+ handleError(error);
m_requestsAwaitingCachedPosition.clear();
return;
}
@@ -650,8 +638,7 @@ void Geolocation::positionChanged()
void Geolocation::setError(GeolocationError* error)
{
- RefPtrWillBeRawPtr<PositionError> positionError = createPositionError(error);
- handleError(positionError.get());
+ handleError(createPositionError(error));
}
bool Geolocation::startUpdating(GeoNotifier* notifier)

Powered by Google App Engine
This is Rietveld 408576698