| Differences between
and this patch
- a/WebKit/chromium/ChangeLog +58 lines
Lines 1-3 a/WebKit/chromium/ChangeLog_sec1
1
2010-12-06  John Knottenbelt  <jknotten@chromium.org>
2
3
        Reviewed by NOBODY (OOPS!).
4
5
        [chromium] Implement client based geolocation bindings
6
        https://bugs.webkit.org/show_bug.cgi?id=45752
7
8
        Implements the necessary plumbing to expose client-based geolocation in Chromium
9
        webkit. The plan is to remove the non-client-based geolocation code (GeolocationService*)
10
        in the future.
11
12
        * WebKit.gyp:
13
        * public/WebGeolocationClient.h: Added.
14
        (WebKit::WebGeolocationClient::~WebGeolocationClient):
15
        * public/WebGeolocationController.h: Added.
16
        (WebKit::WebGeolocationController::WebGeolocationController):
17
        (WebKit::WebGeolocationController::reset):
18
        * public/WebGeolocationError.h:
19
        * public/WebGeolocationPermissionRequest.h: Added.
20
        (WebKit::WebGeolocationPermissionRequest::WebGeolocationPermissionRequest):
21
        (WebKit::WebGeolocationPermissionRequest::geolocation):
22
        * public/WebGeolocationPermissionRequestManager.h: Added.
23
        (WebKit::WebGeolocationPermissionRequestManager::WebGeolocationPermissionRequestManager):
24
        (WebKit::WebGeolocationPermissionRequestManager::~WebGeolocationPermissionRequestManager):
25
        * public/WebGeolocationPosition.h:
26
        * public/WebViewClient.h:
27
        (WebKit::WebViewClient::geolocationClient):
28
        * src/ChromeClientImpl.cpp:
29
        (WebKit::ChromeClientImpl::requestGeolocationPermissionForFrame):
30
        (WebKit::ChromeClientImpl::cancelGeolocationPermissionRequestForFrame):
31
        * src/GeolocationClientProxy.cpp: Added.
32
        (WebKit::GeolocationClientProxy::GeolocationClientProxy):
33
        (WebKit::GeolocationClientProxy::~GeolocationClientProxy):
34
        (WebKit::GeolocationClientProxy::setController):
35
        (WebKit::GeolocationClientProxy::geolocationDestroyed):
36
        (WebKit::GeolocationClientProxy::startUpdating):
37
        (WebKit::GeolocationClientProxy::stopUpdating):
38
        (WebKit::GeolocationClientProxy::setEnableHighAccuracy):
39
        (WebKit::GeolocationClientProxy::lastPosition):
40
        (WebKit::GeolocationClientProxy::requestPermission):
41
        (WebKit::GeolocationClientProxy::cancelPermissionRequest):
42
        * src/GeolocationClientProxy.h: Added.
43
        * src/WebGeolocationController.cpp: Added.
44
        (WebKit::WebGeolocationController::positionChanged):
45
        (WebKit::WebGeolocationController::errorOccurred):
46
        (WebKit::WebGeolocationController::controller):
47
        * src/WebGeolocationPermissionRequest.cpp: Added.
48
        (WebKit::WebGeolocationPermissionRequest::securityOrigin):
49
        (WebKit::WebGeolocationPermissionRequest::setIsAllowed):
50
        * src/WebGeolocationPermissionRequestManager.cpp: Added.
51
        (WebGeolocationPermissionRequestManager::add):
52
        (WebGeolocationPermissionRequestManager::remove):
53
        (WebGeolocationPermissionRequestManager::init):
54
        (WebGeolocationPermissionRequestManager::reset):
55
        * src/WebViewImpl.cpp:
56
        (WebKit::WebViewImpl::WebViewImpl):
57
        * src/WebViewImpl.h:
58
1
2010-12-06  Darin Adler  <darin@apple.com>
59
2010-12-06  Darin Adler  <darin@apple.com>
2
60
3
        Reviewed by Sam Weinig.
61
        Reviewed by Sam Weinig.
- a/WebKit/chromium/WebKit.gyp +13 lines
Lines 173-179 a/WebKit/chromium/WebKit.gyp_sec1
173
                'public/WebFontCache.h',
173
                'public/WebFontCache.h',
174
                'public/WebFormControlElement.h',
174
                'public/WebFormControlElement.h',
175
                'public/WebFormElement.h',
175
                'public/WebFormElement.h',
176
                'public/WebGeolocationClient.h',
177
                'public/WebGeolocationController.h',
176
                'public/WebGeolocationError.h',
178
                'public/WebGeolocationError.h',
179
                'public/WebGeolocationPermissionRequest.h',
180
                'public/WebGeolocationPermissionRequestManager.h',
177
                'public/WebGeolocationPosition.h',
181
                'public/WebGeolocationPosition.h',
178
                'public/WebGeolocationService.h',
182
                'public/WebGeolocationService.h',
179
                'public/WebGeolocationServiceBridge.h',
183
                'public/WebGeolocationServiceBridge.h',
Lines 339-344 a/WebKit/chromium/WebKit.gyp_sec2
339
                'src/FrameLoaderClientImpl.cpp',
343
                'src/FrameLoaderClientImpl.cpp',
340
                'src/FrameLoaderClientImpl.h',
344
                'src/FrameLoaderClientImpl.h',
341
                'src/FrameNetworkingContextImpl.h',
345
                'src/FrameNetworkingContextImpl.h',
346
                'src/GeolocationClientProxy.cpp',
347
                'src/GeolocationClientProxy.h',
342
                'src/GraphicsContext3DChromium.cpp',
348
                'src/GraphicsContext3DChromium.cpp',
343
                'src/GraphicsContext3DInternal.h',
349
                'src/GraphicsContext3DInternal.h',
344
                'src/gtk/WebFontInfo.cpp',
350
                'src/gtk/WebFontInfo.cpp',
Lines 444-450 a/WebKit/chromium/WebKit.gyp_sec3
444
                'src/WebFormElement.cpp',
450
                'src/WebFormElement.cpp',
445
                'src/WebFrameImpl.cpp',
451
                'src/WebFrameImpl.cpp',
446
                'src/WebFrameImpl.h',
452
                'src/WebFrameImpl.h',
453
                'src/WebGeolocationController.cpp',
447
                'src/WebGeolocationError.cpp',
454
                'src/WebGeolocationError.cpp',
455
                'src/WebGeolocationPermissionRequest.cpp',
456
                'src/WebGeolocationPermissionRequestManager.cpp',
448
                'src/WebGeolocationPosition.cpp',
457
                'src/WebGeolocationPosition.cpp',
449
                'src/WebGeolocationServiceBridgeImpl.cpp',
458
                'src/WebGeolocationServiceBridgeImpl.cpp',
450
                'src/WebGeolocationServiceBridgeImpl.h',
459
                'src/WebGeolocationServiceBridgeImpl.h',
Lines 671-677 a/WebKit/chromium/WebKit.gyp_sec4
671
                    ],
680
                    ],
672
                }, {
681
                }, {
673
                   'sources/': [
682
                   'sources/': [
683
                        ['exclude', 'GeolocationClientProxy.*'],
684
                        ['exclude', 'WebGeolocationClient.*'],
685
                        ['exclude', 'WebGeolocationController.*'],
674
                        ['exclude', 'WebGeolocationError.*'],
686
                        ['exclude', 'WebGeolocationError.*'],
687
                        ['exclude', 'WebGeolocationPermissionRequest.*'],
675
                        ['exclude', 'WebGeolocationPosition.*'],
688
                        ['exclude', 'WebGeolocationPosition.*'],
676
                   ],
689
                   ],
677
                }]
690
                }]
- a/WebKit/chromium/public/WebGeolocationClient.h +54 lines
Line 0 a/WebKit/chromium/public/WebGeolocationClient.h_sec1
1
/*
2
 * Copyright (C) 2010 Google Inc. All rights reserved.
3
 *
4
 * Redistribution and use in source and binary forms, with or without
5
 * modification, are permitted provided that the following conditions
6
 * are met:
7
 *
8
 * 1.  Redistributions of source code must retain the above copyright
9
 *     notice, this list of conditions and the following disclaimer.
10
 * 2.  Redistributions in binary form must reproduce the above copyright
11
 *     notice, this list of conditions and the following disclaimer in the
12
 *     documentation and/or other materials provided with the distribution.
13
 *
14
 * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
15
 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
16
 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
17
 * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
18
 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
19
 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
20
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
21
 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
23
 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24
 */
25
26
#ifndef WebGeolocationClient_h
27
#define WebGeolocationClient_h
28
29
namespace WebKit {
30
class WebGeolocationController;
31
class WebGeolocationPermissionRequest;
32
class WebGeolocationPosition;
33
34
class WebGeolocationClient {
35
public:
36
    virtual ~WebGeolocationClient() {}
37
38
    virtual void startUpdating() = 0;
39
    virtual void stopUpdating() = 0;
40
    virtual void setEnableHighAccuracy(bool) = 0;
41
    virtual void geolocationDestroyed() = 0;
42
    virtual bool lastPosition(WebGeolocationPosition&) = 0;
43
44
    virtual void requestPermission(const WebGeolocationPermissionRequest&) = 0;
45
    virtual void cancelPermissionRequest(const WebGeolocationPermissionRequest&) = 0;
46
47
    // The controller is valid until geolocationDestroyed() is invoked.
48
    // Ownership of the WebGeolocationController is transferred to the client.
49
    virtual void setController(WebGeolocationController*) = 0;
50
};
51
52
} // namespace WebKit
53
54
#endif // WebGeolocationClient_h
- a/WebKit/chromium/public/WebGeolocationController.h +65 lines
Line 0 a/WebKit/chromium/public/WebGeolocationController.h_sec1
1
/*
2
 * Copyright (C) 2010 Google Inc. All rights reserved.
3
 *
4
 * Redistribution and use in source and binary forms, with or without
5
 * modification, are permitted provided that the following conditions
6
 * are met:
7
 *
8
 * 1.  Redistributions of source code must retain the above copyright
9
 *     notice, this list of conditions and the following disclaimer.
10
 * 2.  Redistributions in binary form must reproduce the above copyright
11
 *     notice, this list of conditions and the following disclaimer in the
12
 *     documentation and/or other materials provided with the distribution.
13
 *
14
 * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
15
 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
16
 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
17
 * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
18
 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
19
 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
20
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
21
 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
23
 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24
 */
25
26
#ifndef WebGeolocationController_h
27
#define WebGeolocationController_h
28
29
#include "WebCommon.h"
30
#include "WebNonCopyable.h"
31
32
namespace WebCore { class GeolocationController; }
33
34
namespace WebKit {
35
36
class WebGeolocationPosition;
37
class WebGeolocationError;
38
39
// Note that the WebGeolocationController is invalid after the
40
// WebGeolocationClient::geolocationDestroyed() has been received.
41
class WebGeolocationController : public WebNonCopyable {
42
public:
43
    WEBKIT_API void positionChanged(const WebGeolocationPosition&);
44
    WEBKIT_API void errorOccurred(const WebGeolocationError&);
45
46
#if WEBKIT_IMPLEMENTATION
47
    WebGeolocationController(WebCore::GeolocationController* c)
48
        : m_private(c)
49
    {
50
    }
51
52
    WebCore::GeolocationController* controller() const { return m_private; }
53
#endif
54
55
private:
56
    // No implementation for the default constructor. Declared private to ensure that no instances
57
    // can be created by the consumers of Chromium WebKit.
58
    WebGeolocationController();
59
60
    WebCore::GeolocationController* m_private;
61
};
62
63
} // namespace WebKit
64
65
#endif // WebGeolocationController_h
- a/WebKit/chromium/public/WebGeolocationError.h -1 / +2 lines
Lines 31-39 a/WebKit/chromium/public/WebGeolocationError.h_sec1
31
31
32
#if WEBKIT_IMPLEMENTATION
32
#if WEBKIT_IMPLEMENTATION
33
#include <wtf/PassRefPtr.h>
33
#include <wtf/PassRefPtr.h>
34
namespace WebCore { class GeolocationError; }
35
#endif
34
#endif
36
35
36
namespace WebCore { class GeolocationError; }
37
37
namespace WebKit {
38
namespace WebKit {
38
39
39
class WebString;
40
class WebString;
- a/WebKit/chromium/public/WebGeolocationPermissionRequest.h +63 lines
Line 0 a/WebKit/chromium/public/WebGeolocationPermissionRequest.h_sec1
1
/*
2
 * Copyright (C) 2010 Google Inc. All rights reserved.
3
 *
4
 * Redistribution and use in source and binary forms, with or without
5
 * modification, are permitted provided that the following conditions
6
 * are met:
7
 *
8
 * 1.  Redistributions of source code must retain the above copyright
9
 *     notice, this list of conditions and the following disclaimer.
10
 * 2.  Redistributions in binary form must reproduce the above copyright
11
 *     notice, this list of conditions and the following disclaimer in the
12
 *     documentation and/or other materials provided with the distribution.
13
 *
14
 * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
15
 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
16
 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
17
 * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
18
 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
19
 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
20
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
21
 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
23
 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24
 */
25
26
#ifndef WebGeolocationPermissionRequest_h
27
#define WebGeolocationPermissionRequest_h
28
29
#include "WebCommon.h"
30
#include "WebPrivatePtr.h"
31
32
namespace WebCore {
33
class Geolocation;
34
}
35
36
namespace WebKit {
37
class WebSecurityOrigin;
38
39
// WebGeolocationPermissionRequest encapsulates a WebCore Geolocation object and represents
40
// a request from WebCore for permission to be determined for that Geolocation object.
41
// The underlying Geolocation object is guaranteed to be valid until the invocation of
42
// either  WebGeolocationPermissionRequest::setIsAllowed (request complete) or
43
// WebGeolocationClient::cancelPermissionRequest (request cancelled).
44
class WebGeolocationPermissionRequest {
45
public:
46
    WEBKIT_API WebSecurityOrigin securityOrigin() const;
47
    WEBKIT_API void setIsAllowed(bool);
48
49
#if WEBKIT_IMPLEMENTATION
50
    WebGeolocationPermissionRequest(WebCore::Geolocation* geolocation)
51
        : m_private(geolocation)
52
    {
53
    }
54
55
    WebCore::Geolocation* geolocation() const { return m_private; }
56
#endif
57
58
private:
59
    WebCore::Geolocation* m_private;
60
};
61
}
62
63
#endif // WebGeolocationPermissionRequest_h
- a/WebKit/chromium/public/WebGeolocationPermissionRequestManager.h +63 lines
Line 0 a/WebKit/chromium/public/WebGeolocationPermissionRequestManager.h_sec1
1
/*
2
 * Copyright (C) 2010 Google Inc. All rights reserved.
3
 *
4
 * Redistribution and use in source and binary forms, with or without
5
 * modification, are permitted provided that the following conditions
6
 * are met:
7
 *
8
 * 1.  Redistributions of source code must retain the above copyright
9
 *     notice, this list of conditions and the following disclaimer.
10
 * 2.  Redistributions in binary form must reproduce the above copyright
11
 *     notice, this list of conditions and the following disclaimer in the
12
 *     documentation and/or other materials provided with the distribution.
13
 *
14
 * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
15
 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
16
 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
17
 * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
18
 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
19
 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
20
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
21
 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
23
 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24
 */
25
26
#ifndef WebGeolocationPermissionRequestManager_h
27
#define WebGeolocationPermissionRequestManager_h
28
29
#include "WebNonCopyable.h"
30
#include "WebPrivateOwnPtr.h"
31
32
namespace WebKit {
33
34
class WebGeolocationPermissionRequest;
35
class WebGeolocationPermissionRequestManagerPrivate;
36
37
// This class is used to map between integer identifiers and WebGeolocationPermissionRequest
38
// instances. The intended usage is that on WebGeolocationClient::requestPermission(),
39
// the implementer can call add() to associate an id with the WebGeolocationPermissionRequest object.
40
// Once the permission request has been decided, the second remove() method can be used to
41
// find the request. On WebGeolocationClient::cancelPermissionRequest, the first remove() method will
42
// remove the association with the id.
43
class WebGeolocationPermissionRequestManager : public WebNonCopyable {
44
public:
45
    WebGeolocationPermissionRequestManager() { init(); }
46
    ~WebGeolocationPermissionRequestManager() { reset(); }
47
48
    WEBKIT_API int add(const WebKit::WebGeolocationPermissionRequest&);
49
    WEBKIT_API bool remove(const WebKit::WebGeolocationPermissionRequest&, int&);
50
    WEBKIT_API bool remove(int, WebKit::WebGeolocationPermissionRequest&);
51
52
private:
53
    WEBKIT_API void init();
54
    WEBKIT_API void reset();
55
56
    WebPrivateOwnPtr<WebGeolocationPermissionRequestManagerPrivate> m_private;
57
    int m_lastId;
58
};
59
60
}
61
62
#endif // WebGeolocationPermissionRequestManager_h
63
- a/WebKit/chromium/public/WebGeolocationPosition.h -1 / +2 lines
Lines 31-39 a/WebKit/chromium/public/WebGeolocationPosition.h_sec1
31
31
32
#if WEBKIT_IMPLEMENTATION
32
#if WEBKIT_IMPLEMENTATION
33
#include <wtf/PassRefPtr.h>
33
#include <wtf/PassRefPtr.h>
34
namespace WebCore { class GeolocationPosition; }
35
#endif
34
#endif
36
35
36
namespace WebCore { class GeolocationPosition; }
37
37
namespace WebKit {
38
namespace WebKit {
38
39
39
class WebGeolocationPosition {
40
class WebGeolocationPosition {
- a/WebKit/chromium/public/WebViewClient.h -1 / +4 lines
Lines 52-57 class WebExternalPopupMenu; a/WebKit/chromium/public/WebViewClient.h_sec1
52
class WebExternalPopupMenuClient;
52
class WebExternalPopupMenuClient;
53
class WebFileChooserCompletion;
53
class WebFileChooserCompletion;
54
class WebFrame;
54
class WebFrame;
55
class WebGeolocationClient;
55
class WebGeolocationService;
56
class WebGeolocationService;
56
class WebImage;
57
class WebImage;
57
class WebInputElement;
58
class WebInputElement;
Lines 340-346 public: a/WebKit/chromium/public/WebViewClient.h_sec2
340
341
341
    // Geolocation ---------------------------------------------------------
342
    // Geolocation ---------------------------------------------------------
342
343
343
    // Access the embedder API for geolocation services.
344
    // Access the embedder API for (client-based) geolocation client .
345
    virtual WebGeolocationClient* geolocationClient() { return 0; }
346
    // Access the embedder API for (non-client-based) geolocation services.
344
    virtual WebGeolocationService* geolocationService() { return 0; }
347
    virtual WebGeolocationService* geolocationService() { return 0; }
345
348
346
    // Speech --------------------------------------------------------------
349
    // Speech --------------------------------------------------------------
- a/WebKit/chromium/src/ChromeClientImpl.cpp -6 / +6 lines
Lines 776-786 NotificationPresenter* ChromeClientImpl::notificationPresenter() const a/WebKit/chromium/src/ChromeClientImpl.cpp_sec1
776
}
776
}
777
#endif
777
#endif
778
778
779
// FIXME: Remove ChromeClientImpl::requestGeolocationPermissionForFrame and ChromeClientImpl::cancelGeolocationPermissionRequestForFrame
780
// once all ports have moved to client-based geolocation (see https://bugs.webkit.org/show_bug.cgi?id=40373 ).
781
// For client-based geolocation, these methods are now implemented as WebGeolocationClient::requestPermission and WebGeolocationClient::cancelPermissionRequest.
782
// (see https://bugs.webkit.org/show_bug.cgi?id=50061 ).
779
void ChromeClientImpl::requestGeolocationPermissionForFrame(Frame* frame, Geolocation* geolocation)
783
void ChromeClientImpl::requestGeolocationPermissionForFrame(Frame* frame, Geolocation* geolocation)
780
{
784
{
781
#if ENABLE(CLIENT_BASED_GEOLOCATION)
785
#if !ENABLE(CLIENT_BASED_GEOLOCATION)
782
    // FIXME: Implement Client-based Geolocation Permissions
783
#else
784
    GeolocationServiceChromium* geolocationService = static_cast<GeolocationServiceChromium*>(geolocation->getGeolocationService());
786
    GeolocationServiceChromium* geolocationService = static_cast<GeolocationServiceChromium*>(geolocation->getGeolocationService());
785
    geolocationService->geolocationServiceBridge()->attachBridgeIfNeeded();
787
    geolocationService->geolocationServiceBridge()->attachBridgeIfNeeded();
786
    m_webView->client()->geolocationService()->requestPermissionForFrame(geolocationService->geolocationServiceBridge()->getBridgeId(), frame->document()->url());
788
    m_webView->client()->geolocationService()->requestPermissionForFrame(geolocationService->geolocationServiceBridge()->getBridgeId(), frame->document()->url());
Lines 789-797 void ChromeClientImpl::requestGeolocationPermissionForFrame(Frame* frame, Geoloc a/WebKit/chromium/src/ChromeClientImpl.cpp_sec2
789
791
790
void ChromeClientImpl::cancelGeolocationPermissionRequestForFrame(Frame* frame, Geolocation* geolocation)
792
void ChromeClientImpl::cancelGeolocationPermissionRequestForFrame(Frame* frame, Geolocation* geolocation)
791
{
793
{
792
#if ENABLE(CLIENT_BASED_GEOLOCATION)
794
#if !ENABLE(CLIENT_BASED_GEOLOCATION)
793
    // FIXME: Implement Client-based Geolocation Permissions
794
#else
795
    GeolocationServiceChromium* geolocationService = static_cast<GeolocationServiceChromium*>(geolocation->getGeolocationService());
795
    GeolocationServiceChromium* geolocationService = static_cast<GeolocationServiceChromium*>(geolocation->getGeolocationService());
796
    m_webView->client()->geolocationService()->cancelPermissionRequestForFrame(geolocationService->geolocationServiceBridge()->getBridgeId(), frame->document()->url());
796
    m_webView->client()->geolocationService()->cancelPermissionRequestForFrame(geolocationService->geolocationServiceBridge()->getBridgeId(), frame->document()->url());
797
#endif
797
#endif
- a/WebKit/chromium/src/GeolocationClientProxy.cpp +97 lines
Line 0 a/WebKit/chromium/src/GeolocationClientProxy.cpp_sec1
1
/*
2
 * Copyright (C) 2010 Google Inc. All rights reserved.
3
 *
4
 * Redistribution and use in source and binary forms, with or without
5
 * modification, are permitted provided that the following conditions
6
 * are met:
7
 *
8
 * 1.  Redistributions of source code must retain the above copyright
9
 *     notice, this list of conditions and the following disclaimer.
10
 * 2.  Redistributions in binary form must reproduce the above copyright
11
 *     notice, this list of conditions and the following disclaimer in the
12
 *     documentation and/or other materials provided with the distribution.
13
 *
14
 * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
15
 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
16
 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
17
 * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
18
 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
19
 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
20
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
21
 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
23
 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24
 */
25
26
#include "config.h"
27
#include "GeolocationClientProxy.h"
28
29
#include "Geolocation.h"
30
#include "GeolocationPosition.h"
31
#include "WebGeolocationClient.h"
32
#include "WebGeolocationController.h"
33
#include "WebGeolocationPermissionRequest.h"
34
#include "WebGeolocationPosition.h"
35
36
namespace WebKit {
37
38
GeolocationClientProxy::GeolocationClientProxy(WebGeolocationClient* client)
39
    : m_client(client)
40
{
41
}
42
43
GeolocationClientProxy::~GeolocationClientProxy()
44
{
45
}
46
47
void GeolocationClientProxy::setController(WebCore::GeolocationController* controller)
48
{
49
    // We support there not being a client, provided we don't do any Geolocation.
50
    if (m_client) {
51
        // Ownership of the WebGeolocationController is transferred to the client.
52
        m_client->setController(new WebGeolocationController(controller));
53
    }
54
}
55
56
void GeolocationClientProxy::geolocationDestroyed()
57
{
58
    m_client->geolocationDestroyed();
59
}
60
61
void GeolocationClientProxy::startUpdating()
62
{
63
    m_client->startUpdating();
64
}
65
66
void GeolocationClientProxy::stopUpdating()
67
{
68
    m_client->stopUpdating();
69
}
70
71
void GeolocationClientProxy::setEnableHighAccuracy(bool highAccuracy)
72
{
73
    m_client->setEnableHighAccuracy(highAccuracy);
74
}
75
76
WebCore::GeolocationPosition* GeolocationClientProxy::lastPosition()
77
{
78
    WebGeolocationPosition webPosition;
79
    if (m_client->lastPosition(webPosition))
80
        m_lastPosition = webPosition;
81
    else
82
        m_lastPosition.clear();
83
84
    return m_lastPosition.get();
85
}
86
87
void GeolocationClientProxy::requestPermission(WebCore::Geolocation* geolocation)
88
{
89
    m_client->requestPermission(WebGeolocationPermissionRequest(geolocation));
90
}
91
92
void GeolocationClientProxy::cancelPermissionRequest(WebCore::Geolocation* geolocation)
93
{
94
    m_client->cancelPermissionRequest(WebGeolocationPermissionRequest(geolocation));
95
}
96
97
}
- a/WebKit/chromium/src/GeolocationClientProxy.h +61 lines
Line 0 a/WebKit/chromium/src/GeolocationClientProxy.h_sec1
1
/*
2
 * Copyright (C) 2010 Google Inc. All rights reserved.
3
 *
4
 * Redistribution and use in source and binary forms, with or without
5
 * modification, are permitted provided that the following conditions
6
 * are met:
7
 *
8
 * 1.  Redistributions of source code must retain the above copyright
9
 *     notice, this list of conditions and the following disclaimer.
10
 * 2.  Redistributions in binary form must reproduce the above copyright
11
 *     notice, this list of conditions and the following disclaimer in the
12
 *     documentation and/or other materials provided with the distribution.
13
 *
14
 * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
15
 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
16
 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
17
 * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
18
 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
19
 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
20
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
21
 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
23
 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24
 */
25
26
#ifndef GeolocationClientProxy_h
27
#define GeolocationClientProxy_h
28
29
#include "GeolocationClient.h"
30
#include "WebGeolocationController.h"
31
#include <wtf/RefPtr.h>
32
33
namespace WebCore {
34
class GeolocationPosition;
35
}
36
37
namespace WebKit {
38
class WebGeolocationClient;
39
40
class GeolocationClientProxy : public WebCore::GeolocationClient {
41
public:
42
    GeolocationClientProxy(WebGeolocationClient* client);
43
    ~GeolocationClientProxy();
44
    void setController(WebCore::GeolocationController *controller);
45
    virtual void geolocationDestroyed();
46
    virtual void startUpdating();
47
    virtual void stopUpdating();
48
    virtual void setEnableHighAccuracy(bool);
49
    virtual WebCore::GeolocationPosition* lastPosition();
50
51
    virtual void requestPermission(WebCore::Geolocation*);
52
    virtual void cancelPermissionRequest(WebCore::Geolocation*);
53
54
private:
55
    WebGeolocationClient* m_client;
56
    RefPtr<WebCore::GeolocationPosition> m_lastPosition;
57
};
58
59
} // namespace WebKit
60
61
#endif // GeolocationClientProxy_h
- a/WebKit/chromium/src/WebGeolocationController.cpp +52 lines
Line 0 a/WebKit/chromium/src/WebGeolocationController.cpp_sec1
1
/*
2
 * Copyright (C) 2010 Google Inc. All rights reserved.
3
 *
4
 * Redistribution and use in source and binary forms, with or without
5
 * modification, are permitted provided that the following conditions
6
 * are met:
7
 *
8
 * 1.  Redistributions of source code must retain the above copyright
9
 *     notice, this list of conditions and the following disclaimer.
10
 * 2.  Redistributions in binary form must reproduce the above copyright
11
 *     notice, this list of conditions and the following disclaimer in the
12
 *     documentation and/or other materials provided with the distribution.
13
 *
14
 * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
15
 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
16
 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
17
 * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
18
 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
19
 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
20
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
21
 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
23
 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24
 */
25
26
#include "config.h"
27
#include "WebGeolocationController.h"
28
29
#include "GeolocationController.h"
30
#include "GeolocationError.h"
31
#include "GeolocationPosition.h"
32
#include "WebGeolocationError.h"
33
#include "WebGeolocationPosition.h"
34
35
#include <wtf/PassRefPtr.h>
36
#include <wtf/RefPtr.h>
37
38
using namespace WebCore;
39
40
namespace WebKit {
41
42
void WebGeolocationController::positionChanged(const WebGeolocationPosition& webPosition)
43
{
44
    m_private->positionChanged(PassRefPtr<GeolocationPosition>(webPosition).get());
45
}
46
47
void WebGeolocationController::errorOccurred(const WebGeolocationError& webError)
48
{
49
    m_private->errorOccurred(PassRefPtr<GeolocationError>(webError).get());
50
}
51
52
} // namespace WebKit
- a/WebKit/chromium/src/WebGeolocationPermissionRequest.cpp +49 lines
Line 0 a/WebKit/chromium/src/WebGeolocationPermissionRequest.cpp_sec1
1
/*
2
 * Copyright (C) 2010 Google Inc. All rights reserved.
3
 *
4
 * Redistribution and use in source and binary forms, with or without
5
 * modification, are permitted provided that the following conditions
6
 * are met:
7
 *
8
 * 1.  Redistributions of source code must retain the above copyright
9
 *     notice, this list of conditions and the following disclaimer.
10
 * 2.  Redistributions in binary form must reproduce the above copyright
11
 *     notice, this list of conditions and the following disclaimer in the
12
 *     documentation and/or other materials provided with the distribution.
13
 *
14
 * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
15
 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
16
 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
17
 * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
18
 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
19
 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
20
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
21
 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
23
 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24
 */
25
26
#include "config.h"
27
#include "WebGeolocationPermissionRequest.h"
28
29
#include "Document.h"
30
#include "Frame.h"
31
#include "Geolocation.h"
32
#include "WebSecurityOrigin.h"
33
#include "WebURL.h"
34
35
using namespace WebCore;
36
37
namespace WebKit {
38
39
WebSecurityOrigin WebGeolocationPermissionRequest::securityOrigin() const
40
{
41
    return WebSecurityOrigin::create(m_private->frame()->document()->url());
42
}
43
44
void WebGeolocationPermissionRequest::setIsAllowed(bool allowed)
45
{
46
    m_private->setIsAllowed(allowed);
47
}
48
49
}
- a/WebKit/chromium/src/WebGeolocationPermissionRequestManager.cpp +95 lines
Line 0 a/WebKit/chromium/src/WebGeolocationPermissionRequestManager.cpp_sec1
1
/*
2
 * Copyright (C) 2010 Google Inc. All rights reserved.
3
 *
4
 * Redistribution and use in source and binary forms, with or without
5
 * modification, are permitted provided that the following conditions
6
 * are met:
7
 *
8
 * 1.  Redistributions of source code must retain the above copyright
9
 *     notice, this list of conditions and the following disclaimer.
10
 * 2.  Redistributions in binary form must reproduce the above copyright
11
 *     notice, this list of conditions and the following disclaimer in the
12
 *     documentation and/or other materials provided with the distribution.
13
 *
14
 * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
15
 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
16
 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
17
 * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
18
 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
19
 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
20
 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
21
 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
23
 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24
 */
25
26
#include "config.h"
27
#include "WebGeolocationPermissionRequestManager.h"
28
29
#include "WebGeolocationPermissionRequest.h"
30
#include <wtf/HashMap.h>
31
32
namespace WebCore {
33
class Geolocation;
34
}
35
36
using namespace WebCore;
37
38
typedef HashMap<Geolocation*, int> GeolocationIdMap;
39
typedef HashMap<int, Geolocation*> IdGeolocationMap;
40
41
namespace WebKit {
42
class WebGeolocationPermissionRequestManagerPrivate {
43
public:
44
    GeolocationIdMap m_geolocationIdMap;
45
    IdGeolocationMap m_idGeolocationMap;
46
};
47
}
48
49
using namespace WebKit;
50
51
int WebGeolocationPermissionRequestManager::add(const WebKit::WebGeolocationPermissionRequest& permissionRequest)
52
{
53
    Geolocation* geolocation = permissionRequest.geolocation();
54
    ASSERT(!m_private->m_geolocationIdMap.contains(geolocation));
55
    int id = ++m_lastId;
56
    m_private->m_geolocationIdMap.add(geolocation, id);
57
    m_private->m_idGeolocationMap.add(id, geolocation);
58
    return id;
59
}
60
61
bool WebGeolocationPermissionRequestManager::remove(const WebKit::WebGeolocationPermissionRequest& permissionRequest, int& id)
62
{
63
    Geolocation* geolocation = permissionRequest.geolocation();
64
    GeolocationIdMap::iterator it = m_private->m_geolocationIdMap.find(geolocation);
65
    if (it == m_private->m_geolocationIdMap.end())
66
        return false;
67
    id = it->second;
68
    m_private->m_geolocationIdMap.remove(it);
69
    m_private->m_idGeolocationMap.remove(id);
70
    return true;
71
}
72
73
bool WebGeolocationPermissionRequestManager::remove(int id, WebKit::WebGeolocationPermissionRequest& permissionRequest)
74
{
75
    IdGeolocationMap::iterator it = m_private->m_idGeolocationMap.find(id);
76
    if (it == m_private->m_idGeolocationMap.end())
77
        return false;
78
    Geolocation* geolocation = it->second;
79
    permissionRequest = WebGeolocationPermissionRequest(geolocation);
80
    m_private->m_idGeolocationMap.remove(it);
81
    m_private->m_geolocationIdMap.remove(geolocation);
82
    return true;
83
}
84
85
void WebGeolocationPermissionRequestManager::init()
86
{
87
    m_lastId = 0;
88
    m_private.reset(new WebGeolocationPermissionRequestManagerPrivate);
89
}
90
91
void WebGeolocationPermissionRequestManager::reset()
92
{
93
    m_private.reset(0);
94
}
95
- a/WebKit/chromium/src/WebViewImpl.cpp +11 lines
Lines 59-64 a/WebKit/chromium/src/WebViewImpl.cpp_sec1
59
#include "FrameLoader.h"
59
#include "FrameLoader.h"
60
#include "FrameTree.h"
60
#include "FrameTree.h"
61
#include "FrameView.h"
61
#include "FrameView.h"
62
#include "GeolocationClientProxy.h"
62
#include "GraphicsContext.h"
63
#include "GraphicsContext.h"
63
#include "GraphicsContext3D.h"
64
#include "GraphicsContext3D.h"
64
#include "GraphicsContext3DInternal.h"
65
#include "GraphicsContext3DInternal.h"
Lines 310-315 WebViewImpl::WebViewImpl(WebViewClient* client, WebDevToolsAgentClient* devTools a/WebKit/chromium/src/WebViewImpl.cpp_sec2
310
    , m_speechInputClient(SpeechInputClientImpl::create(client))
311
    , m_speechInputClient(SpeechInputClientImpl::create(client))
311
#endif
312
#endif
312
    , m_deviceOrientationClientProxy(new DeviceOrientationClientProxy(client ? client->deviceOrientationClient() : 0))
313
    , m_deviceOrientationClientProxy(new DeviceOrientationClientProxy(client ? client->deviceOrientationClient() : 0))
314
#if ENABLE(CLIENT_BASED_GEOLOCATION)
315
    , m_geolocationClientProxy(new GeolocationClientProxy(client ? client->geolocationClient() : 0))
316
#endif
313
{
317
{
314
    // WebKit/win/WebView.cpp does the same thing, except they call the
318
    // WebKit/win/WebView.cpp does the same thing, except they call the
315
    // KJS specific wrapper around this method. We need to have threading
319
    // KJS specific wrapper around this method. We need to have threading
Lines 333-341 WebViewImpl::WebViewImpl(WebViewClient* client, WebDevToolsAgentClient* devTools a/WebKit/chromium/src/WebViewImpl.cpp_sec3
333
    pageClients.speechInputClient = m_speechInputClient.get();
337
    pageClients.speechInputClient = m_speechInputClient.get();
334
#endif
338
#endif
335
    pageClients.deviceOrientationClient = m_deviceOrientationClientProxy.get();
339
    pageClients.deviceOrientationClient = m_deviceOrientationClientProxy.get();
340
#if ENABLE(CLIENT_BASED_GEOLOCATION)
341
    pageClients.geolocationClient = m_geolocationClientProxy.get();
342
#endif
336
343
337
    m_page.set(new Page(pageClients));
344
    m_page.set(new Page(pageClients));
338
345
346
#if ENABLE(CLIENT_BASED_GEOLOCATION)
347
    m_geolocationClientProxy->setController(m_page->geolocationController());
348
#endif
349
339
    static_cast<BackForwardListImpl*>(m_page->backForwardList())->setClient(&m_backForwardListClientImpl);
350
    static_cast<BackForwardListImpl*>(m_page->backForwardList())->setClient(&m_backForwardListClientImpl);
340
    m_page->setGroupName(pageGroupName);
351
    m_page->setGroupName(pageGroupName);
341
352
- a/WebKit/chromium/src/WebViewImpl.h +5 lines
Lines 73-78 class AutoFillPopupMenuClient; a/WebKit/chromium/src/WebViewImpl.h_sec1
73
class ContextMenuClientImpl;
73
class ContextMenuClientImpl;
74
class DeviceOrientationClientProxy;
74
class DeviceOrientationClientProxy;
75
class DragScrollTimer;
75
class DragScrollTimer;
76
class GeolocationClientProxy;
76
class SpeechInputClientImpl;
77
class SpeechInputClientImpl;
77
class WebAccessibilityObject;
78
class WebAccessibilityObject;
78
class WebDevToolsAgentClient;
79
class WebDevToolsAgentClient;
Lines 555-560 private: a/WebKit/chromium/src/WebViewImpl.h_sec2
555
    // early. This member holds on to the GC3D in this case.
556
    // early. This member holds on to the GC3D in this case.
556
    RefPtr<WebCore::GraphicsContext3D> m_temporaryOnscreenGraphicsContext3D;
557
    RefPtr<WebCore::GraphicsContext3D> m_temporaryOnscreenGraphicsContext3D;
557
    OwnPtr<DeviceOrientationClientProxy> m_deviceOrientationClientProxy;
558
    OwnPtr<DeviceOrientationClientProxy> m_deviceOrientationClientProxy;
559
560
#if ENABLE(CLIENT_BASED_GEOLOCATION)
561
    OwnPtr<GeolocationClientProxy> m_geolocationClientProxy;
562
#endif
558
};
563
};
559
564
560
} // namespace WebKit
565
} // namespace WebKit

Return to Bug 45752