Fixes WebKit Geolocation bug 27255.

We should not call the error callback if the success callback raises an exception.
This is currently being submitted to WebKit as bug 27255.
diff --git a/WebCore/bindings/js/JSCustomPositionCallback.cpp b/WebCore/bindings/js/JSCustomPositionCallback.cpp
index 6f9efd9..6d892f0 100644
--- a/WebCore/bindings/js/JSCustomPositionCallback.cpp
+++ b/WebCore/bindings/js/JSCustomPositionCallback.cpp
@@ -41,7 +41,7 @@
 {
 }
 
-void JSCustomPositionCallback::handleEvent(Geoposition* geoposition, bool& raisedException)
+void JSCustomPositionCallback::handleEvent(Geoposition* geoposition)
 {
     ASSERT(m_callback);
     ASSERT(m_frame);
@@ -77,7 +77,6 @@
     
     if (exec->hadException()) {
         reportCurrentException(exec);
-        raisedException = true;
     }
     
     Document::updateStyleForAllDocuments();
diff --git a/WebCore/bindings/js/JSCustomPositionCallback.h b/WebCore/bindings/js/JSCustomPositionCallback.h
index 6c0d306..9c8fe86 100644
--- a/WebCore/bindings/js/JSCustomPositionCallback.h
+++ b/WebCore/bindings/js/JSCustomPositionCallback.h
@@ -44,7 +44,7 @@
 public:
     static PassRefPtr<JSCustomPositionCallback> create(JSC::JSObject* callback, Frame* frame) { return adoptRef(new JSCustomPositionCallback(callback, frame)); }
     
-    virtual void handleEvent(Geoposition*, bool& raisedException);
+    virtual void handleEvent(Geoposition*);
 
 private:
     JSCustomPositionCallback(JSC::JSObject* callback, Frame*);
diff --git a/WebCore/page/Geolocation.cpp b/WebCore/page/Geolocation.cpp
index 8abe8a6..8df6990 100644
--- a/WebCore/page/Geolocation.cpp
+++ b/WebCore/page/Geolocation.cpp
@@ -182,12 +182,7 @@
         ASSERT(notifier->m_successCallback);
         
         notifier->m_timer.stop();
-        bool shouldCallErrorCallback = false;
-        notifier->m_successCallback->handleEvent(position, shouldCallErrorCallback);
-        if (shouldCallErrorCallback) {
-            RefPtr<PositionError> error = PositionError::create(PositionError::UNKNOWN_ERROR, "An exception was thrown");
-            handleError(error.get());
-        }
+        notifier->m_successCallback->handleEvent(position);
     }
 }
 
@@ -202,12 +197,7 @@
         ASSERT(notifier->m_successCallback);
         
         notifier->m_timer.stop();
-        bool shouldCallErrorCallback = false;
-        notifier->m_successCallback->handleEvent(position, shouldCallErrorCallback);
-        if (shouldCallErrorCallback) {
-            RefPtr<PositionError> error = PositionError::create(PositionError::UNKNOWN_ERROR, "An exception was thrown");
-            handleError(error.get());
-        }
+        notifier->m_successCallback->handleEvent(position);
     }
 }
 
diff --git a/WebCore/page/PositionCallback.h b/WebCore/page/PositionCallback.h
index 5f32c75..f6bf139 100644
--- a/WebCore/page/PositionCallback.h
+++ b/WebCore/page/PositionCallback.h
@@ -36,7 +36,7 @@
     class PositionCallback : public RefCounted<PositionCallback> {
     public:
         virtual ~PositionCallback() { }
-        virtual void handleEvent(Geoposition* position, bool& raisedException) = 0;
+        virtual void handleEvent(Geoposition* position) = 0;
     };
     
 } // namespace WebCore