RESOLVED WONTFIX 27853
Make Chrome::requestGeolocationPermissionForFrame() into a synchronous call
https://bugs.webkit.org/show_bug.cgi?id=27853
Summary Make Chrome::requestGeolocationPermissionForFrame() into a synchronous call
Greg Bolsinga
Reported 2009-07-30 13:44:50 PDT
It is currently in WebKit as an asynchronous call, but that was bogus. To make iPhone's implementation, it should be synchronous.
Attachments
patch to implement bug fix (23.19 KB, patch)
2009-07-30 14:41 PDT, Greg Bolsinga
no flags
Greg Bolsinga
Comment 1 2009-07-30 14:41:42 PDT
Created attachment 33841 [details] patch to implement bug fix
Greg Bolsinga
Comment 2 2009-07-30 14:44:48 PDT
Make that "to match iPhone's implementation".
George Staikos
Comment 3 2009-07-30 14:45:59 PDT
Please also see 26993, waiting for quite some time for review.
Adam Barth
Comment 4 2009-07-30 14:48:13 PDT
What is the technical advantage of having synchronous call?
Greg Bolsinga
Comment 5 2009-07-30 14:49:23 PDT
Well, it simply doesn't make much sense to have it be asynchronous. WebCore is all on one thread, and the UI is the same thread.
Greg Bolsinga
Comment 6 2009-07-30 14:50:21 PDT
(In reply to comment #3) > Please also see 26993, waiting for quite some time for review. Bug 26993 will be obsolete if this change is taken.
Adam Barth
Comment 7 2009-07-30 14:53:23 PDT
(In reply to comment #5) > Well, it simply doesn't make much sense to have it be asynchronous. WebCore is > all on one thread, and the UI is the same thread. WebCore doesn't have any UI. The UI is handled by the WebKit port. Not all ports are single threaded. For example, the Chromium port is multiprocess.
Yong Li
Comment 8 2009-07-30 14:54:37 PDT
(In reply to comment #6) > (In reply to comment #3) > > Please also see 26993, waiting for quite some time for review. > > Bug 26993 will be obsolete if this change is taken. The patch for Bug 26993 simply makes it work for both async and sync cases. It's up to the implementation of m_client->requestGeolocationPermissionForFrame()
Greg Bolsinga
Comment 9 2009-07-30 14:55:26 PDT
(In reply to comment #7) > ports are single threaded. For example, the Chromium port is multiprocess. Nothing else in WebCore is asynchronous on this type of stuff. The ChomeClient object is UI.
Adam Barth
Comment 10 2009-07-30 14:56:52 PDT
> The patch for Bug 26993 simply makes it work for both async and sync cases. > It's up to the implementation of > m_client->requestGeolocationPermissionForFrame() That sounds like a better fix.
Adam Barth
Comment 11 2009-07-30 14:57:32 PDT
*** This bug has been marked as a duplicate of bug 26993 ***
Greg Bolsinga
Comment 12 2009-07-30 14:58:54 PDT
(In reply to comment #11) > > *** This bug has been marked as a duplicate of bug 26993 *** I disagree with this.
Adam Barth
Comment 13 2009-07-30 15:00:23 PDT
> I disagree with this. Why not make the API work for both synchronous and asynchronous use cases? For example, in Firefox, this UI is handled by a non-modal infobar.
Greg Bolsinga
Comment 14 2009-07-30 15:02:16 PDT
(In reply to comment #13) > > I disagree with this. > > Why not make the API work for both synchronous and asynchronous use cases? For > example, in Firefox, this UI is handled by a non-modal infobar. Is there another example in WebCore I can follow? If not, I'd prefer to keep it synchronous, like all other ChromeClient calls I can find.
Greg Bolsinga
Comment 15 2009-07-30 15:03:39 PDT
(In reply to comment #14) > (In reply to comment #13) > > > I disagree with this. > > > > Why not make the API work for both synchronous and asynchronous use cases? For > > example, in Firefox, this UI is handled by a non-modal infobar. > > Is there another example in WebCore I can follow? If not, I'd prefer to keep it > synchronous, like all other ChromeClient calls I can find. This way the ChromeClient can handle the asynchronousness itself if it needs it?
Adam Barth
Comment 16 2009-07-30 15:07:00 PDT
(In reply to comment #15) > This way the ChromeClient can handle the asynchronousness itself if it needs > it? Yes. I believe after the patch in Bug 26993, you can call just call Geolocation::setIsAllowed synchronously if you like.
Sam Weinig
Comment 17 2009-07-30 15:38:24 PDT
I think we should keep this asynchronous from WebCores prospective and fix any issues specific to the iPhone at a different level.
Greg Bolsinga
Comment 18 2009-07-30 15:39:23 PDT
OK. This will be the first. Thanks!
Eric Seidel (no email)
Comment 19 2009-07-31 15:13:04 PDT
Comment on attachment 33841 [details] patch to implement bug fix Clearing review flag.
Note You need to log in before you can comment on or make changes to this bug.