Changeset 162639 in webkit


Ignore:
Timestamp:
Jan 23, 2014 2:01:23 PM (10 years ago)
Author:
andersca@apple.com
Message:

Add API::PolicyClient base class
https://bugs.webkit.org/show_bug.cgi?id=127509

Reviewed by Tim Horton.

  • UIProcess/API/APIPolicyClient.h: Copied from Source/WebKit2/UIProcess/WebPolicyClient.h.

(API::PolicyClient::~PolicyClient):

  • UIProcess/API/C/WKPage.cpp:

(WKPageSetPagePolicyClient):

  • UIProcess/API/Cocoa/WKBrowsingContextController.mm:

(setUpPagePolicyClient):
(-[WKBrowsingContextController setPolicyDelegate:]):

  • UIProcess/WebInspectorProxy.cpp:

(WebKit::WebInspectorProxy::createInspectorPage):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::setPolicyClient):
(WebKit::WebPageProxy::close):
(WebKit::WebPageProxy::decidePolicyForNavigationAction):
(WebKit::WebPageProxy::decidePolicyForNewWindowAction):
(WebKit::WebPageProxy::decidePolicyForResponse):
(WebKit::WebPageProxy::unableToImplementPolicy):

  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPolicyClient.cpp:

(WebKit::WebPolicyClient::WebPolicyClient):
(WebKit::WebPolicyClient::decidePolicyForNavigationAction):
(WebKit::WebPolicyClient::decidePolicyForNewWindowAction):
(WebKit::WebPolicyClient::decidePolicyForResponse):

  • UIProcess/WebPolicyClient.h:
  • WebKit2.xcodeproj/project.pbxproj:
Location:
trunk/Source/WebKit2
Files:
9 edited
1 copied

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebKit2/ChangeLog

    r162638 r162639  
     12014-01-23  Anders Carlsson  <andersca@apple.com>
     2
     3        Add API::PolicyClient base class
     4        https://bugs.webkit.org/show_bug.cgi?id=127509
     5
     6        Reviewed by Tim Horton.
     7
     8        * UIProcess/API/APIPolicyClient.h: Copied from Source/WebKit2/UIProcess/WebPolicyClient.h.
     9        (API::PolicyClient::~PolicyClient):
     10        * UIProcess/API/C/WKPage.cpp:
     11        (WKPageSetPagePolicyClient):
     12        * UIProcess/API/Cocoa/WKBrowsingContextController.mm:
     13        (setUpPagePolicyClient):
     14        (-[WKBrowsingContextController setPolicyDelegate:]):
     15        * UIProcess/WebInspectorProxy.cpp:
     16        (WebKit::WebInspectorProxy::createInspectorPage):
     17        * UIProcess/WebPageProxy.cpp:
     18        (WebKit::WebPageProxy::setPolicyClient):
     19        (WebKit::WebPageProxy::close):
     20        (WebKit::WebPageProxy::decidePolicyForNavigationAction):
     21        (WebKit::WebPageProxy::decidePolicyForNewWindowAction):
     22        (WebKit::WebPageProxy::decidePolicyForResponse):
     23        (WebKit::WebPageProxy::unableToImplementPolicy):
     24        * UIProcess/WebPageProxy.h:
     25        * UIProcess/WebPolicyClient.cpp:
     26        (WebKit::WebPolicyClient::WebPolicyClient):
     27        (WebKit::WebPolicyClient::decidePolicyForNavigationAction):
     28        (WebKit::WebPolicyClient::decidePolicyForNewWindowAction):
     29        (WebKit::WebPolicyClient::decidePolicyForResponse):
     30        * UIProcess/WebPolicyClient.h:
     31        * WebKit2.xcodeproj/project.pbxproj:
     32
    1332014-01-23  Anders Carlsson  <andersca@apple.com>
    234
  • trunk/Source/WebKit2/UIProcess/API/APIPolicyClient.h

    r162638 r162639  
    11/*
    2  * Copyright (C) 2010 Apple Inc. All rights reserved.
     2 * Copyright (C) 2014 Apple Inc. All rights reserved.
    33 *
    44 * Redistribution and use in source and binary forms, with or without
     
    2424 */
    2525
    26 #ifndef WebPolicyClient_h
    27 #define WebPolicyClient_h
     26#ifndef APIPolicyClient_h
     27#define APIPolicyClient_h
    2828
    29 #include "APIClient.h"
    30 #include "WKPage.h"
    31 #include "WKPagePolicyClientInternal.h"
    3229#include "WebEvent.h"
    3330#include <WebCore/FrameLoaderTypes.h>
    3431#include <wtf/Forward.h>
    35 
    36 namespace API {
    37 class Object;
    38 
    39 template<> struct ClientTraits<WKPagePolicyClientBase> {
    40     typedef std::tuple<WKPagePolicyClientV0, WKPagePolicyClientV1, WKPagePolicyClientInternal> Versions;
    41 };
    42 }
    4332
    4433namespace WebCore {
     
    4938
    5039namespace WebKit {
    51 
    5240class WebPageProxy;
    5341class WebFrameProxy;
    5442class WebFramePolicyListenerProxy;
     43}
    5544
    56 class WebPolicyClient : public API::Client<WKPagePolicyClientBase> {
     45namespace API {
     46class Object;
     47
     48class PolicyClient {
    5749public:
    58     bool decidePolicyForNavigationAction(WebPageProxy*, WebFrameProxy*, WebCore::NavigationType, WebEvent::Modifiers, WebMouseEvent::Button, WebFrameProxy* originatingFrame, const WebCore::ResourceRequest& originalRequest, const WebCore::ResourceRequest&, WebFramePolicyListenerProxy*, API::Object* userData);
    59     bool decidePolicyForNewWindowAction(WebPageProxy*, WebFrameProxy*, WebCore::NavigationType, WebEvent::Modifiers, WebMouseEvent::Button, const WebCore::ResourceRequest&, const String& frameName, WebFramePolicyListenerProxy*, API::Object* userData);
    60     bool decidePolicyForResponse(WebPageProxy*, WebFrameProxy*, const WebCore::ResourceResponse&, const WebCore::ResourceRequest&, bool canShowMIMEType, WebFramePolicyListenerProxy*, API::Object* userData);
    61     void unableToImplementPolicy(WebPageProxy*, WebFrameProxy*, const WebCore::ResourceError&, API::Object* userData);
     50    virtual ~PolicyClient() { }
     51
     52    virtual void decidePolicyForNavigationAction(WebKit::WebPageProxy*, WebKit::WebFrameProxy*, WebCore::NavigationType, WebKit::WebEvent::Modifiers, WebKit::WebMouseEvent::Button, WebKit::WebFrameProxy* originatingFrame, const WebCore::ResourceRequest& originalRequest, const WebCore::ResourceRequest&, WebKit::WebFramePolicyListenerProxy*, API::Object* userData) = 0;
     53    virtual void decidePolicyForNewWindowAction(WebKit::WebPageProxy*, WebKit::WebFrameProxy*, WebCore::NavigationType, WebKit::WebEvent::Modifiers, WebKit::WebMouseEvent::Button, const WebCore::ResourceRequest&, const WTF::String& frameName, WebKit::WebFramePolicyListenerProxy*, API::Object* userData) = 0;
     54    virtual void decidePolicyForResponse(WebKit::WebPageProxy*, WebKit::WebFrameProxy*, const WebCore::ResourceResponse&, const WebCore::ResourceRequest&, bool canShowMIMEType, WebKit::WebFramePolicyListenerProxy*, API::Object* userData) = 0;
     55    virtual void unableToImplementPolicy(WebKit::WebPageProxy*, WebKit::WebFrameProxy*, const WebCore::ResourceError&, API::Object* userData) = 0;
    6256};
    6357
    64 } // namespace WebKit
     58} // namespace API
    6559
    66 #endif // WebPolicyClient_h
     60#endif // APIPolicyClient_h
  • trunk/Source/WebKit2/UIProcess/API/C/WKPage.cpp

    r162568 r162639  
    3535#include "WebBackForwardList.h"
    3636#include "WebPageProxy.h"
     37#include "WebPolicyClient.h"
    3738#include "WebProcessProxy.h"
    3839#include <WebCore/Page.h>
     
    673674void WKPageSetPagePolicyClient(WKPageRef pageRef, const WKPagePolicyClientBase* wkClient)
    674675{
    675     toImpl(pageRef)->initializePolicyClient(wkClient);
     676    toImpl(pageRef)->setPolicyClient(std::make_unique<WebPolicyClient>(wkClient));
    676677}
    677678
  • trunk/Source/WebKit2/UIProcess/API/Cocoa/WKBrowsingContextController.mm

    r162580 r162639  
    5858#import "WebContext.h"
    5959#import "WebPageProxy.h"
     60#import "WebPolicyClient.h"
    6061
    6162using namespace WebCore;
     
    713714    };
    714715
    715     page.initializePolicyClient(&policyClient.base);
     716    page.setPolicyClient(std::make_unique<WebPolicyClient>(&policyClient.base));
    716717}
    717718
     
    743744        setUpPagePolicyClient(self, *_page);
    744745    else
    745         _page->initializePolicyClient(nullptr);
     746        _page->setPolicyClient(nullptr);
    746747}
    747748
  • trunk/Source/WebKit2/UIProcess/WebInspectorProxy.cpp

    r161045 r162639  
    3838#include "WebPageGroup.h"
    3939#include "WebPageProxy.h"
     40#include "WebPolicyClient.h"
    4041#include "WebPreferences.h"
    4142#include "WebProcessProxy.h"
     
    450451    };
    451452
    452     inspectorPage->initializePolicyClient(reinterpret_cast<const WKPagePolicyClientBase*>(&policyClient));
     453    inspectorPage->setPolicyClient(std::make_unique<WebPolicyClient>(&policyClient.base));
    453454
    454455    String url = inspectorPageURL();
  • trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp

    r162629 r162639  
    421421}
    422422
    423 void WebPageProxy::initializePolicyClient(const WKPagePolicyClientBase* policyClient)
    424 {
    425     m_policyClient.initialize(policyClient);
     423void WebPageProxy::setPolicyClient(std::unique_ptr<API::PolicyClient> policyClient)
     424{
     425    m_policyClient = std::move(policyClient);
    426426}
    427427
     
    561561
    562562    m_loaderClient.initialize(0);
    563     m_policyClient.initialize(0);
     563    m_policyClient = nullptr;
    564564    m_formClient.initialize(0);
    565565    m_uiClient.initialize(0);
     
    24592459    m_inDecidePolicyForNavigationAction = true;
    24602460    m_syncNavigationActionPolicyActionIsValid = false;
    2461    
    2462     if (!m_policyClient.decidePolicyForNavigationAction(this, frame, navigationType, modifiers, mouseButton, originatingFrame, originalRequest, request, listener.get(), userData.get()))
     2461
     2462    if (!m_policyClient)
    24632463        listener->use();
     2464    else
     2465        m_policyClient->decidePolicyForNavigationAction(this, frame, navigationType, modifiers, mouseButton, originatingFrame, originalRequest, request, listener.get(), userData.get());
    24642466
    24652467    m_inDecidePolicyForNavigationAction = false;
     
    24872489    WebEvent::Modifiers modifiers = static_cast<WebEvent::Modifiers>(opaqueModifiers);
    24882490    WebMouseEvent::Button mouseButton = static_cast<WebMouseEvent::Button>(opaqueMouseButton);
    2489 
    24902491    RefPtr<WebFramePolicyListenerProxy> listener = frame->setUpPolicyListenerProxy(listenerID);
    2491     if (!m_policyClient.decidePolicyForNewWindowAction(this, frame, navigationType, modifiers, mouseButton, request, frameName, listener.get(), userData.get()))
     2492
     2493    if (!m_policyClient)
    24922494        listener->use();
     2495    else
     2496        m_policyClient->decidePolicyForNewWindowAction(this, frame, navigationType, modifiers, mouseButton, request, frameName, listener.get(), userData.get());
    24932497}
    24942498
     
    25072511    RefPtr<WebFramePolicyListenerProxy> listener = frame->setUpPolicyListenerProxy(listenerID);
    25082512
    2509     if (!m_policyClient.decidePolicyForResponse(this, frame, response, request, canShowMIMEType, listener.get(), userData.get()))
     2513    if (!m_policyClient)
    25102514        listener->use();
     2515    else
     2516        m_policyClient->decidePolicyForResponse(this, frame, response, request, canShowMIMEType, listener.get(), userData.get());
    25112517}
    25122518
     
    25422548    MESSAGE_CHECK(frame);
    25432549
    2544     m_policyClient.unableToImplementPolicy(this, frame, error, userData.get());
     2550    if (m_policyClient)
     2551        m_policyClient->unableToImplementPolicy(this, frame, error, userData.get());
    25452552}
    25462553
  • trunk/Source/WebKit2/UIProcess/WebPageProxy.h

    r162629 r162639  
    2828
    2929#include "APIObject.h"
     30#include "APIPolicyClient.h"
    3031#include "APISession.h"
    3132#include "AutoCorrectionCallback.h"
     
    5859#include <WebCore/AlternativeTextClient.h> // FIXME: Needed by WebPageProxyMessages.h for DICTATION_ALTERNATIVES.
    5960#include "WebPageProxyMessages.h"
    60 #include "WebPolicyClient.h"
    6161#include "WebPopupMenuProxy.h"
    6262#include "WebUIClient.h"
     
    369369    void initializeFormClient(const WKPageFormClientBase*);
    370370    void initializeLoaderClient(const WKPageLoaderClientBase*);
    371     void initializePolicyClient(const WKPagePolicyClientBase*);
     371    void setPolicyClient(std::unique_ptr<API::PolicyClient>);
    372372    void initializeUIClient(const WKPageUIClientBase*);
    373373#if PLATFORM(EFL)
     
    11651165    PageClient& m_pageClient;
    11661166    WebLoaderClient m_loaderClient;
    1167     WebPolicyClient m_policyClient;
     1167    std::unique_ptr<API::PolicyClient> m_policyClient;
    11681168    WebFormClient m_formClient;
    11691169    WebUIClient m_uiClient;
  • trunk/Source/WebKit2/UIProcess/WebPolicyClient.cpp

    r160853 r162639  
    3030#include "APIURLRequest.h"
    3131#include "WKAPICast.h"
     32#include "WebFramePolicyListenerProxy.h"
    3233
    3334using namespace WebCore;
     
    3536namespace WebKit {
    3637
    37 bool WebPolicyClient::decidePolicyForNavigationAction(WebPageProxy* page, WebFrameProxy* frame, NavigationType type, WebEvent::Modifiers modifiers, WebMouseEvent::Button mouseButton, WebFrameProxy* originatingFrame, const ResourceRequest& originalResourceRequest, const ResourceRequest& resourceRequest, WebFramePolicyListenerProxy* listener, API::Object* userData)
     38WebPolicyClient::WebPolicyClient(const WKPagePolicyClientBase* client)
    3839{
    39     if (!m_client.decidePolicyForNavigationAction_deprecatedForUseWithV0 && !m_client.decidePolicyForNavigationAction_deprecatedForUseWithV1 && !m_client.decidePolicyForNavigationAction)
    40         return false;
     40    initialize(client);
     41}
     42
     43void WebPolicyClient::decidePolicyForNavigationAction(WebPageProxy* page, WebFrameProxy* frame, WebCore::NavigationType type, WebEvent::Modifiers modifiers, WebMouseEvent::Button mouseButton, WebFrameProxy* originatingFrame, const WebCore::ResourceRequest& originalResourceRequest, const WebCore::ResourceRequest& resourceRequest, WebFramePolicyListenerProxy* listener, API::Object* userData)
     44{
     45    if (!m_client.decidePolicyForNavigationAction_deprecatedForUseWithV0 && !m_client.decidePolicyForNavigationAction_deprecatedForUseWithV1 && !m_client.decidePolicyForNavigationAction) {
     46        listener->use();
     47        return;
     48    }
    4149
    4250    RefPtr<API::URLRequest> originalRequest = API::URLRequest::create(originalResourceRequest);
     
    4957    else
    5058        m_client.decidePolicyForNavigationAction(toAPI(page), toAPI(frame), toAPI(type), toAPI(modifiers), toAPI(mouseButton), toAPI(originatingFrame), toAPI(originalRequest.get()), toAPI(request.get()), toAPI(listener), toAPI(userData), m_client.base.clientInfo);
    51 
    52     return true;
    5359}
    5460
    55 bool WebPolicyClient::decidePolicyForNewWindowAction(WebPageProxy* page, WebFrameProxy* frame, NavigationType type, WebEvent::Modifiers modifiers, WebMouseEvent::Button mouseButton, const ResourceRequest& resourceRequest, const String& frameName, WebFramePolicyListenerProxy* listener, API::Object* userData)
     61void WebPolicyClient::decidePolicyForNewWindowAction(WebPageProxy* page, WebFrameProxy* frame, NavigationType type, WebEvent::Modifiers modifiers, WebMouseEvent::Button mouseButton, const ResourceRequest& resourceRequest, const String& frameName, WebFramePolicyListenerProxy* listener, API::Object* userData)
    5662{
    57     if (!m_client.decidePolicyForNewWindowAction)
    58         return false;
     63    if (!m_client.decidePolicyForNewWindowAction) {
     64        listener->use();
     65        return;
     66    }
    5967
    6068    RefPtr<API::URLRequest> request = API::URLRequest::create(resourceRequest);
    6169
    6270    m_client.decidePolicyForNewWindowAction(toAPI(page), toAPI(frame), toAPI(type), toAPI(modifiers), toAPI(mouseButton), toAPI(request.get()), toAPI(frameName.impl()), toAPI(listener), toAPI(userData), m_client.base.clientInfo);
    63     return true;
    6471}
    6572
    66 bool WebPolicyClient::decidePolicyForResponse(WebPageProxy* page, WebFrameProxy* frame, const ResourceResponse& resourceResponse, const ResourceRequest& resourceRequest, bool canShowMIMEType, WebFramePolicyListenerProxy* listener, API::Object* userData)
     73void WebPolicyClient::decidePolicyForResponse(WebPageProxy* page, WebFrameProxy* frame, const ResourceResponse& resourceResponse, const ResourceRequest& resourceRequest, bool canShowMIMEType, WebFramePolicyListenerProxy* listener, API::Object* userData)
    6774{
    68     if (!m_client.decidePolicyForResponse_deprecatedForUseWithV0 && !m_client.decidePolicyForResponse)
    69         return false;
     75    if (m_client.decidePolicyForResponse_deprecatedForUseWithV0 && !m_client.decidePolicyForResponse) {
     76        listener->use();
     77        return;
     78    }
    7079
    7180    RefPtr<API::URLResponse> response = API::URLResponse::create(resourceResponse);
     
    7685    else
    7786        m_client.decidePolicyForResponse(toAPI(page), toAPI(frame), toAPI(response.get()), toAPI(request.get()), canShowMIMEType, toAPI(listener), toAPI(userData), m_client.base.clientInfo);
    78 
    79     return true;
    8087}
    8188
  • trunk/Source/WebKit2/UIProcess/WebPolicyClient.h

    r160495 r162639  
    2828
    2929#include "APIClient.h"
     30#include "APIPolicyClient.h"
    3031#include "WKPage.h"
    3132#include "WKPagePolicyClientInternal.h"
     
    4243}
    4344
    44 namespace WebCore {
    45 class ResourceError;
    46 class ResourceRequest;
    47 class ResourceResponse;
    48 }
    49 
    5045namespace WebKit {
    5146
    52 class WebPageProxy;
    53 class WebFrameProxy;
    54 class WebFramePolicyListenerProxy;
     47class WebPolicyClient final : public API::Client<WKPagePolicyClientBase>, public API::PolicyClient {
     48public:
     49    explicit WebPolicyClient(const WKPagePolicyClientBase*);
    5550
    56 class WebPolicyClient : public API::Client<WKPagePolicyClientBase> {
    57 public:
    58     bool decidePolicyForNavigationAction(WebPageProxy*, WebFrameProxy*, WebCore::NavigationType, WebEvent::Modifiers, WebMouseEvent::Button, WebFrameProxy* originatingFrame, const WebCore::ResourceRequest& originalRequest, const WebCore::ResourceRequest&, WebFramePolicyListenerProxy*, API::Object* userData);
    59     bool decidePolicyForNewWindowAction(WebPageProxy*, WebFrameProxy*, WebCore::NavigationType, WebEvent::Modifiers, WebMouseEvent::Button, const WebCore::ResourceRequest&, const String& frameName, WebFramePolicyListenerProxy*, API::Object* userData);
    60     bool decidePolicyForResponse(WebPageProxy*, WebFrameProxy*, const WebCore::ResourceResponse&, const WebCore::ResourceRequest&, bool canShowMIMEType, WebFramePolicyListenerProxy*, API::Object* userData);
    61     void unableToImplementPolicy(WebPageProxy*, WebFrameProxy*, const WebCore::ResourceError&, API::Object* userData);
     51private:
     52    virtual void decidePolicyForNavigationAction(WebPageProxy*, WebFrameProxy*, WebCore::NavigationType, WebEvent::Modifiers, WebMouseEvent::Button, WebFrameProxy* originatingFrame, const WebCore::ResourceRequest& originalRequest, const WebCore::ResourceRequest&, WebFramePolicyListenerProxy*, API::Object* userData) override;
     53    virtual void decidePolicyForNewWindowAction(WebKit::WebPageProxy*, WebKit::WebFrameProxy*, WebCore::NavigationType, WebKit::WebEvent::Modifiers, WebKit::WebMouseEvent::Button, const WebCore::ResourceRequest&, const String& frameName, WebKit::WebFramePolicyListenerProxy*, API::Object* userData) override;
     54    virtual void decidePolicyForResponse(WebPageProxy*, WebFrameProxy*, const WebCore::ResourceResponse&, const WebCore::ResourceRequest&, bool canShowMIMEType, WebFramePolicyListenerProxy*, API::Object* userData) override;
     55    virtual void unableToImplementPolicy(WebPageProxy*, WebFrameProxy*, const WebCore::ResourceError&, API::Object* userData) override;
    6256};
    6357
  • trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj

    r162562 r162639  
    344344                1AF1AC6B1651759E00C17D7F /* RemoteLayerTreeTransaction.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1AF1AC691651759E00C17D7F /* RemoteLayerTreeTransaction.mm */; };
    345345                1AF1AC6C1651759E00C17D7F /* RemoteLayerTreeTransaction.h in Headers */ = {isa = PBXBuildFile; fileRef = 1AF1AC6A1651759E00C17D7F /* RemoteLayerTreeTransaction.h */; };
     346                1AFDD3151891B54000153970 /* APIPolicyClient.h in Headers */ = {isa = PBXBuildFile; fileRef = 1AFDD3141891B54000153970 /* APIPolicyClient.h */; };
    346347                1AFF49001833DE78009AB15A /* WKDeprecatedFunctions.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1AFF48FE1833DE78009AB15A /* WKDeprecatedFunctions.cpp */; };
    347348                1C8E25A81270E3BB00BC7BD0 /* WebInspectorFrontendClient.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1C8E256B1270DE3800BC7BD0 /* WebInspectorFrontendClient.cpp */; };
     
    19841985                1AF1AC691651759E00C17D7F /* RemoteLayerTreeTransaction.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = RemoteLayerTreeTransaction.mm; sourceTree = "<group>"; };
    19851986                1AF1AC6A1651759E00C17D7F /* RemoteLayerTreeTransaction.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RemoteLayerTreeTransaction.h; sourceTree = "<group>"; };
     1987                1AFDD3141891B54000153970 /* APIPolicyClient.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = APIPolicyClient.h; sourceTree = "<group>"; };
    19861988                1AFF48FE1833DE78009AB15A /* WKDeprecatedFunctions.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WKDeprecatedFunctions.cpp; sourceTree = "<group>"; };
    19871989                1BB417C912C00CCA002BE67B /* TextCheckerCompletion.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TextCheckerCompletion.cpp; sourceTree = "<group>"; };
     
    50065008                                BC8A501311765F4500757573 /* cpp */,
    50075009                                BC111B47112F616900337BAB /* mac */,
     5010                                1AFDD3141891B54000153970 /* APIPolicyClient.h */,
    50085011                        );
    50095012                        path = API;
     
    66246627                                BCE4695A1214EDF4000B98EB /* WKFormSubmissionListener.h in Headers */,
    66256628                                BCD0139B110FA420003B8A67 /* WKFrame.h in Headers */,
     6629                                1AFDD3151891B54000153970 /* APIPolicyClient.h in Headers */,
    66266630                                BCB9F6A51123DD0D00A137E0 /* WKFramePolicyListener.h in Headers */,
    66276631                                E1AEA22F14687BDB00804569 /* WKFullKeyboardAccessWatcher.h in Headers */,
Note: See TracChangeset for help on using the changeset viewer.