Changeset 159965 in webkit
- Timestamp:
- Dec 2, 2013 2:35:51 PM (10 years ago)
- Location:
- trunk/Source/WebKit2
- Files:
-
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit2/ChangeLog
r159960 r159965 1 2013-12-02 Anders Carlsson <andersca@apple.com> 2 3 WKPageLoaderClient should be versioned 4 https://bugs.webkit.org/show_bug.cgi?id=125104 5 6 Reviewed by Sam Weinig. 7 8 Add multiple versions of the WKPageLoaderClient struct. In a subsequent patch, 9 WKPageLoaderClient and kWKPageLoaderClientCurrentVersion will be deprecated. Instead, 10 users of the API are supposed to explicitly choose a version and a versioned struct. 11 12 * Shared/APIClient.h: 13 Add a new API::Client class with a new ClientTraits template that uses std::tuple for versions. 14 15 * Shared/APIClientTraits.cpp: 16 * Shared/APIClientTraits.h: 17 Remove WKPageLoaderClient interface sizes. 18 19 * UIProcess/API/C/WKPage.cpp: 20 (WKPageSetPageLoaderClient): 21 Add an explicit cast to WKPageLoaderClientBase. In an upcoming patch, WKPageSetPageLoaderClient 22 will be changed to take a WKPageLoaderClientBase instead. 23 24 * UIProcess/API/C/WKPageLoaderClient.h: 25 Add new versions. 26 27 * UIProcess/API/Cocoa/WKBrowsingContextController.mm: 28 (setUpPageLoaderClient): 29 Use an explicit version. 30 31 * UIProcess/WebLoaderClient.cpp: 32 (WebKit::WebLoaderClient::didStartProvisionalLoadForFrame): 33 (WebKit::WebLoaderClient::didReceiveServerRedirectForProvisionalLoadForFrame): 34 (WebKit::WebLoaderClient::didFailProvisionalLoadWithErrorForFrame): 35 (WebKit::WebLoaderClient::didCommitLoadForFrame): 36 (WebKit::WebLoaderClient::didFinishDocumentLoadForFrame): 37 (WebKit::WebLoaderClient::didFinishLoadForFrame): 38 (WebKit::WebLoaderClient::didFailLoadWithErrorForFrame): 39 (WebKit::WebLoaderClient::didSameDocumentNavigationForFrame): 40 (WebKit::WebLoaderClient::didReceiveTitleForFrame): 41 (WebKit::WebLoaderClient::didFirstLayoutForFrame): 42 (WebKit::WebLoaderClient::didFirstVisuallyNonEmptyLayoutForFrame): 43 (WebKit::WebLoaderClient::didLayout): 44 (WebKit::WebLoaderClient::didRemoveFrameFromHierarchy): 45 (WebKit::WebLoaderClient::didDisplayInsecureContentForFrame): 46 (WebKit::WebLoaderClient::didRunInsecureContentForFrame): 47 (WebKit::WebLoaderClient::didDetectXSSForFrame): 48 (WebKit::WebLoaderClient::canAuthenticateAgainstProtectionSpaceInFrame): 49 (WebKit::WebLoaderClient::didReceiveAuthenticationChallengeInFrame): 50 (WebKit::WebLoaderClient::didStartProgress): 51 (WebKit::WebLoaderClient::didChangeProgress): 52 (WebKit::WebLoaderClient::didFinishProgress): 53 (WebKit::WebLoaderClient::processDidBecomeUnresponsive): 54 (WebKit::WebLoaderClient::interactionOccurredWhileProcessUnresponsive): 55 (WebKit::WebLoaderClient::processDidBecomeResponsive): 56 (WebKit::WebLoaderClient::processDidCrash): 57 (WebKit::WebLoaderClient::didChangeBackForwardList): 58 (WebKit::WebLoaderClient::shouldGoToBackForwardListItem): 59 (WebKit::WebLoaderClient::willGoToBackForwardListItem): 60 (WebKit::WebLoaderClient::didFailToInitializePlugin): 61 (WebKit::WebLoaderClient::didBlockInsecurePluginVersion): 62 (WebKit::WebLoaderClient::pluginLoadPolicy): 63 Go through client.base everywhere. 64 65 * UIProcess/WebLoaderClient.h: 66 Add API::ClientTraits specialization. Change WebLoaderClient to derive from API::Client<WKPageLoaderClientBase>. 67 68 * UIProcess/WebPageProxy.cpp: 69 (WebKit::WebPageProxy::initializeLoaderClient): 70 This now takes a WKPageLoaderClientBase*. 71 1 72 2013-12-02 Beth Dakin <bdakin@apple.com> 2 73 -
trunk/Source/WebKit2/Shared/APIClient.h
r136095 r159965 28 28 29 29 #include "APIClientTraits.h" 30 #include <array> 31 32 // FIXME: Transition all clients from WebKit::APIClient to API::Client. 33 namespace API { 34 35 template<typename ClientInterface> struct ClientTraits; 36 37 template<typename ClientInterface> class Client { 38 typedef typename ClientTraits<ClientInterface>::Versions ClientVersions; 39 static const int latestClientVersion = std::tuple_size<ClientVersions>::value - 1; 40 typedef typename std::tuple_element<latestClientVersion, ClientVersions>::type LatestClientInterface; 41 42 // Helper class that can return an std::array of element sizes in a tuple. 43 template<typename> struct InterfaceSizes; 44 template<typename... Interfaces> struct InterfaceSizes<std::tuple<Interfaces...>> { 45 static std::array<size_t, sizeof...(Interfaces)> sizes() 46 { 47 #if COMPILER(CLANG) 48 // Workaround for http://llvm.org/bugs/show_bug.cgi?id=18117 49 #pragma clang diagnostic push 50 #pragma clang diagnostic ignored "-Wmissing-braces" 51 #endif 52 return { sizeof(Interfaces)... }; 53 #if COMPILER(CLANG) 54 #pragma clang diagnostic pop 55 #endif 56 } 57 }; 58 59 public: 60 Client() 61 { 62 #if !ASSERT_DISABLED 63 auto interfaceSizes = InterfaceSizes<ClientVersions>::sizes(); 64 ASSERT(std::is_sorted(interfaceSizes.begin(), interfaceSizes.end())); 65 #endif 66 67 initialize(nullptr); 68 } 69 70 void initialize(const ClientInterface* client) 71 { 72 if (client && client->version == latestClientVersion) { 73 m_client = *reinterpret_cast<const LatestClientInterface*>(client); 74 return; 75 } 76 77 memset(&m_client, 0, sizeof(m_client)); 78 79 if (client && client->version < latestClientVersion) { 80 auto interfaceSizes = InterfaceSizes<ClientVersions>::sizes(); 81 82 memcpy(&m_client, client, interfaceSizes[client->version]); 83 } 84 } 85 86 const LatestClientInterface& client() const { return m_client; } 87 88 protected: 89 LatestClientInterface m_client; 90 }; 91 92 } // namespace API 30 93 31 94 namespace WebKit { -
trunk/Source/WebKit2/Shared/APIClientTraits.cpp
r159358 r159965 65 65 }; 66 66 67 const size_t APIClientTraits<WKPageLoaderClient>::interfaceSizesByVersion[] = {68 offsetof(WKPageLoaderClient, didDetectXSSForFrame),69 offsetof(WKPageLoaderClient, didReceiveIntentForFrame_unavailable),70 offsetof(WKPageLoaderClient, pluginLoadPolicy),71 sizeof(WKPageLoaderClient)72 };73 74 67 const size_t APIClientTraits<WKPagePolicyClient>::interfaceSizesByVersion[] = { 75 68 offsetof(WKPagePolicyClient, decidePolicyForNavigationAction), -
trunk/Source/WebKit2/Shared/APIClientTraits.h
r159358 r159965 65 65 }; 66 66 67 template<> struct APIClientTraits<WKPageLoaderClient> {68 static const size_t interfaceSizesByVersion[4];69 };70 71 67 template<> struct APIClientTraits<WKPagePolicyClient> { 72 68 static const size_t interfaceSizesByVersion[2]; -
trunk/Source/WebKit2/UIProcess/API/C/WKPage.cpp
r159903 r159965 654 654 void WKPageSetPageLoaderClient(WKPageRef pageRef, const WKPageLoaderClient* wkClient) 655 655 { 656 toImpl(pageRef)->initializeLoaderClient( wkClient);656 toImpl(pageRef)->initializeLoaderClient(reinterpret_cast<const WKPageLoaderClientBase*>(wkClient)); 657 657 } 658 658 -
trunk/Source/WebKit2/UIProcess/API/C/WKPageLoaderClient.h
r159788 r159965 73 73 typedef WKPluginLoadPolicy (*WKPagePluginLoadPolicyCallback_deprecatedForUseWithV2)(WKPageRef page, WKPluginLoadPolicy currentPluginLoadPolicy, WKDictionaryRef pluginInfoDictionary, const void* clientInfo); 74 74 75 struct WKPageLoaderClient{75 typedef struct WKPageLoaderClientBase { 76 76 int version; 77 77 const void * clientInfo; 78 } WKPageLoaderClientBase; 79 80 typedef struct WKPageLoaderClientV0 { 81 WKPageLoaderClientBase base; 82 WKPageDidStartProvisionalLoadForFrameCallback didStartProvisionalLoadForFrame; 83 WKPageDidReceiveServerRedirectForProvisionalLoadForFrameCallback didReceiveServerRedirectForProvisionalLoadForFrame; 84 WKPageDidFailProvisionalLoadWithErrorForFrameCallback didFailProvisionalLoadWithErrorForFrame; 85 WKPageDidCommitLoadForFrameCallback didCommitLoadForFrame; 86 WKPageDidFinishDocumentLoadForFrameCallback didFinishDocumentLoadForFrame; 87 WKPageDidFinishLoadForFrameCallback didFinishLoadForFrame; 88 WKPageDidFailLoadWithErrorForFrameCallback didFailLoadWithErrorForFrame; 89 WKPageDidSameDocumentNavigationForFrameCallback didSameDocumentNavigationForFrame; 90 WKPageDidReceiveTitleForFrameCallback didReceiveTitleForFrame; 91 WKPageDidFirstLayoutForFrameCallback didFirstLayoutForFrame; 92 WKPageDidFirstVisuallyNonEmptyLayoutForFrameCallback didFirstVisuallyNonEmptyLayoutForFrame; 93 WKPageDidRemoveFrameFromHierarchyCallback didRemoveFrameFromHierarchy; 94 WKPageDidDisplayInsecureContentForFrameCallback didDisplayInsecureContentForFrame; 95 WKPageDidRunInsecureContentForFrameCallback didRunInsecureContentForFrame; 96 WKPageCanAuthenticateAgainstProtectionSpaceInFrameCallback canAuthenticateAgainstProtectionSpaceInFrame; 97 WKPageDidReceiveAuthenticationChallengeInFrameCallback didReceiveAuthenticationChallengeInFrame; 98 99 // FIXME: Move to progress client. 100 WKPageLoaderClientCallback didStartProgress; 101 WKPageLoaderClientCallback didChangeProgress; 102 WKPageLoaderClientCallback didFinishProgress; 103 104 // FIXME: These three functions should not be part of this client. 105 WKPageLoaderClientCallback processDidBecomeUnresponsive; 106 WKPageLoaderClientCallback processDidBecomeResponsive; 107 WKPageLoaderClientCallback processDidCrash; 108 WKPageDidChangeBackForwardListCallback didChangeBackForwardList; 109 WKPageShouldGoToBackForwardListItemCallback shouldGoToBackForwardListItem; 110 WKPageDidFailToInitializePluginCallback_deprecatedForUseWithV0 didFailToInitializePlugin_deprecatedForUseWithV0; 111 } WKPageLoaderClientV0; 112 113 typedef struct WKPageLoaderClientV1 { 114 WKPageLoaderClientBase base; 115 WKPageDidStartProvisionalLoadForFrameCallback didStartProvisionalLoadForFrame; 116 WKPageDidReceiveServerRedirectForProvisionalLoadForFrameCallback didReceiveServerRedirectForProvisionalLoadForFrame; 117 WKPageDidFailProvisionalLoadWithErrorForFrameCallback didFailProvisionalLoadWithErrorForFrame; 118 WKPageDidCommitLoadForFrameCallback didCommitLoadForFrame; 119 WKPageDidFinishDocumentLoadForFrameCallback didFinishDocumentLoadForFrame; 120 WKPageDidFinishLoadForFrameCallback didFinishLoadForFrame; 121 WKPageDidFailLoadWithErrorForFrameCallback didFailLoadWithErrorForFrame; 122 WKPageDidSameDocumentNavigationForFrameCallback didSameDocumentNavigationForFrame; 123 WKPageDidReceiveTitleForFrameCallback didReceiveTitleForFrame; 124 WKPageDidFirstLayoutForFrameCallback didFirstLayoutForFrame; 125 WKPageDidFirstVisuallyNonEmptyLayoutForFrameCallback didFirstVisuallyNonEmptyLayoutForFrame; 126 WKPageDidRemoveFrameFromHierarchyCallback didRemoveFrameFromHierarchy; 127 WKPageDidDisplayInsecureContentForFrameCallback didDisplayInsecureContentForFrame; 128 WKPageDidRunInsecureContentForFrameCallback didRunInsecureContentForFrame; 129 WKPageCanAuthenticateAgainstProtectionSpaceInFrameCallback canAuthenticateAgainstProtectionSpaceInFrame; 130 WKPageDidReceiveAuthenticationChallengeInFrameCallback didReceiveAuthenticationChallengeInFrame; 131 132 // FIXME: Move to progress client. 133 WKPageLoaderClientCallback didStartProgress; 134 WKPageLoaderClientCallback didChangeProgress; 135 WKPageLoaderClientCallback didFinishProgress; 136 137 // FIXME: These three functions should not be part of this client. 138 WKPageLoaderClientCallback processDidBecomeUnresponsive; 139 WKPageLoaderClientCallback processDidBecomeResponsive; 140 WKPageLoaderClientCallback processDidCrash; 141 WKPageDidChangeBackForwardListCallback didChangeBackForwardList; 142 WKPageShouldGoToBackForwardListItemCallback shouldGoToBackForwardListItem; 143 WKPageDidFailToInitializePluginCallback_deprecatedForUseWithV0 didFailToInitializePlugin_deprecatedForUseWithV0; 144 145 // Version 1 146 WKPageDidDetectXSSForFrameCallback didDetectXSSForFrame; 147 148 void* didNewFirstVisuallyNonEmptyLayout_unavailable; 149 150 WKPageWillGoToBackForwardListItemCallback willGoToBackForwardListItem; 151 152 WKPageLoaderClientCallback interactionOccurredWhileProcessUnresponsive; 153 WKPagePluginDidFailCallback_deprecatedForUseWithV1 pluginDidFail_deprecatedForUseWithV1; 154 } WKPageLoaderClientV1; 155 156 typedef struct WKPageLoaderClientV2 { 157 WKPageLoaderClientBase base; 78 158 WKPageDidStartProvisionalLoadForFrameCallback didStartProvisionalLoadForFrame; 79 159 WKPageDidReceiveServerRedirectForProvisionalLoadForFrameCallback didReceiveServerRedirectForProvisionalLoadForFrame; … … 123 203 WKPagePluginLoadPolicyCallback_deprecatedForUseWithV2 pluginLoadPolicy_deprecatedForUseWithV2; 124 204 WKPagePluginDidFailCallback pluginDidFail; 205 } WKPageLoaderClientV2; 206 207 typedef struct WKPageLoaderClientV3 { 208 WKPageLoaderClientBase base; 209 WKPageDidStartProvisionalLoadForFrameCallback didStartProvisionalLoadForFrame; 210 WKPageDidReceiveServerRedirectForProvisionalLoadForFrameCallback didReceiveServerRedirectForProvisionalLoadForFrame; 211 WKPageDidFailProvisionalLoadWithErrorForFrameCallback didFailProvisionalLoadWithErrorForFrame; 212 WKPageDidCommitLoadForFrameCallback didCommitLoadForFrame; 213 WKPageDidFinishDocumentLoadForFrameCallback didFinishDocumentLoadForFrame; 214 WKPageDidFinishLoadForFrameCallback didFinishLoadForFrame; 215 WKPageDidFailLoadWithErrorForFrameCallback didFailLoadWithErrorForFrame; 216 WKPageDidSameDocumentNavigationForFrameCallback didSameDocumentNavigationForFrame; 217 WKPageDidReceiveTitleForFrameCallback didReceiveTitleForFrame; 218 WKPageDidFirstLayoutForFrameCallback didFirstLayoutForFrame; 219 WKPageDidFirstVisuallyNonEmptyLayoutForFrameCallback didFirstVisuallyNonEmptyLayoutForFrame; 220 WKPageDidRemoveFrameFromHierarchyCallback didRemoveFrameFromHierarchy; 221 WKPageDidDisplayInsecureContentForFrameCallback didDisplayInsecureContentForFrame; 222 WKPageDidRunInsecureContentForFrameCallback didRunInsecureContentForFrame; 223 WKPageCanAuthenticateAgainstProtectionSpaceInFrameCallback canAuthenticateAgainstProtectionSpaceInFrame; 224 WKPageDidReceiveAuthenticationChallengeInFrameCallback didReceiveAuthenticationChallengeInFrame; 225 226 // FIXME: Move to progress client. 227 WKPageLoaderClientCallback didStartProgress; 228 WKPageLoaderClientCallback didChangeProgress; 229 WKPageLoaderClientCallback didFinishProgress; 230 231 // FIXME: These three functions should not be part of this client. 232 WKPageLoaderClientCallback processDidBecomeUnresponsive; 233 WKPageLoaderClientCallback processDidBecomeResponsive; 234 WKPageLoaderClientCallback processDidCrash; 235 WKPageDidChangeBackForwardListCallback didChangeBackForwardList; 236 WKPageShouldGoToBackForwardListItemCallback shouldGoToBackForwardListItem; 237 WKPageDidFailToInitializePluginCallback_deprecatedForUseWithV0 didFailToInitializePlugin_deprecatedForUseWithV0; 238 239 // Version 1 240 WKPageDidDetectXSSForFrameCallback didDetectXSSForFrame; 241 242 void* didNewFirstVisuallyNonEmptyLayout_unavailable; 243 244 WKPageWillGoToBackForwardListItemCallback willGoToBackForwardListItem; 245 246 WKPageLoaderClientCallback interactionOccurredWhileProcessUnresponsive; 247 WKPagePluginDidFailCallback_deprecatedForUseWithV1 pluginDidFail_deprecatedForUseWithV1; 248 249 // Version 2 250 void (*didReceiveIntentForFrame_unavailable)(void); 251 void (*registerIntentServiceForFrame_unavailable)(void); 252 253 WKPageDidLayoutCallback didLayout; 254 WKPagePluginLoadPolicyCallback_deprecatedForUseWithV2 pluginLoadPolicy_deprecatedForUseWithV2; 255 WKPagePluginDidFailCallback pluginDidFail; 125 256 126 257 // Version 3 127 258 WKPagePluginLoadPolicyCallback pluginLoadPolicy; 128 } ;129 typedef struct WKPageLoaderClient WKPageLoaderClient; 130 259 } WKPageLoaderClientV3; 260 261 // FIXME: These should be deprecated. 131 262 enum { kWKPageLoaderClientCurrentVersion = 3 }; 132 263 typedef struct WKPageLoaderClient { 264 int version; 265 const void * clientInfo; 266 WKPageDidStartProvisionalLoadForFrameCallback didStartProvisionalLoadForFrame; 267 WKPageDidReceiveServerRedirectForProvisionalLoadForFrameCallback didReceiveServerRedirectForProvisionalLoadForFrame; 268 WKPageDidFailProvisionalLoadWithErrorForFrameCallback didFailProvisionalLoadWithErrorForFrame; 269 WKPageDidCommitLoadForFrameCallback didCommitLoadForFrame; 270 WKPageDidFinishDocumentLoadForFrameCallback didFinishDocumentLoadForFrame; 271 WKPageDidFinishLoadForFrameCallback didFinishLoadForFrame; 272 WKPageDidFailLoadWithErrorForFrameCallback didFailLoadWithErrorForFrame; 273 WKPageDidSameDocumentNavigationForFrameCallback didSameDocumentNavigationForFrame; 274 WKPageDidReceiveTitleForFrameCallback didReceiveTitleForFrame; 275 WKPageDidFirstLayoutForFrameCallback didFirstLayoutForFrame; 276 WKPageDidFirstVisuallyNonEmptyLayoutForFrameCallback didFirstVisuallyNonEmptyLayoutForFrame; 277 WKPageDidRemoveFrameFromHierarchyCallback didRemoveFrameFromHierarchy; 278 WKPageDidDisplayInsecureContentForFrameCallback didDisplayInsecureContentForFrame; 279 WKPageDidRunInsecureContentForFrameCallback didRunInsecureContentForFrame; 280 WKPageCanAuthenticateAgainstProtectionSpaceInFrameCallback canAuthenticateAgainstProtectionSpaceInFrame; 281 WKPageDidReceiveAuthenticationChallengeInFrameCallback didReceiveAuthenticationChallengeInFrame; 282 283 // FIXME: Move to progress client. 284 WKPageLoaderClientCallback didStartProgress; 285 WKPageLoaderClientCallback didChangeProgress; 286 WKPageLoaderClientCallback didFinishProgress; 287 288 // FIXME: These three functions should not be part of this client. 289 WKPageLoaderClientCallback processDidBecomeUnresponsive; 290 WKPageLoaderClientCallback processDidBecomeResponsive; 291 WKPageLoaderClientCallback processDidCrash; 292 WKPageDidChangeBackForwardListCallback didChangeBackForwardList; 293 WKPageShouldGoToBackForwardListItemCallback shouldGoToBackForwardListItem; 294 WKPageDidFailToInitializePluginCallback_deprecatedForUseWithV0 didFailToInitializePlugin_deprecatedForUseWithV0; 295 296 // Version 1 297 WKPageDidDetectXSSForFrameCallback didDetectXSSForFrame; 298 299 void* didNewFirstVisuallyNonEmptyLayout_unavailable; 300 301 WKPageWillGoToBackForwardListItemCallback willGoToBackForwardListItem; 302 303 WKPageLoaderClientCallback interactionOccurredWhileProcessUnresponsive; 304 WKPagePluginDidFailCallback_deprecatedForUseWithV1 pluginDidFail_deprecatedForUseWithV1; 305 306 // Version 2 307 void (*didReceiveIntentForFrame_unavailable)(void); 308 void (*registerIntentServiceForFrame_unavailable)(void); 309 310 WKPageDidLayoutCallback didLayout; 311 WKPagePluginLoadPolicyCallback_deprecatedForUseWithV2 pluginLoadPolicy_deprecatedForUseWithV2; 312 WKPagePluginDidFailCallback pluginDidFail; 313 314 // Version 3 315 WKPagePluginLoadPolicyCallback pluginLoadPolicy; 316 } WKPageLoaderClient; 133 317 134 318 #ifdef __cplusplus -
trunk/Source/WebKit2/UIProcess/API/Cocoa/WKBrowsingContextController.mm
r159903 r159965 436 436 static void setUpPageLoaderClient(WKBrowsingContextController *browsingContext, WebPageProxy& page) 437 437 { 438 WKPageLoaderClient loaderClient;438 WKPageLoaderClientV3 loaderClient; 439 439 memset(&loaderClient, 0, sizeof(loaderClient)); 440 440 441 loaderClient. version = kWKPageLoaderClientCurrentVersion;442 loaderClient. clientInfo = browsingContext;441 loaderClient.base.version = 3; 442 loaderClient.base.clientInfo = browsingContext; 443 443 loaderClient.didStartProvisionalLoadForFrame = didStartProvisionalLoadForFrame; 444 444 loaderClient.didReceiveServerRedirectForProvisionalLoadForFrame = didReceiveServerRedirectForProvisionalLoadForFrame; … … 453 453 loaderClient.didChangeBackForwardList = didChangeBackForwardList; 454 454 455 page.initializeLoaderClient(&loaderClient );455 page.initializeLoaderClient(&loaderClient.base); 456 456 } 457 457 -
trunk/Source/WebKit2/UIProcess/WebLoaderClient.cpp
r159724 r159965 44 44 return; 45 45 46 m_client.didStartProvisionalLoadForFrame(toAPI(page), toAPI(frame), toAPI(userData), m_client. clientInfo);46 m_client.didStartProvisionalLoadForFrame(toAPI(page), toAPI(frame), toAPI(userData), m_client.base.clientInfo); 47 47 } 48 48 … … 52 52 return; 53 53 54 m_client.didReceiveServerRedirectForProvisionalLoadForFrame(toAPI(page), toAPI(frame), toAPI(userData), m_client. clientInfo);54 m_client.didReceiveServerRedirectForProvisionalLoadForFrame(toAPI(page), toAPI(frame), toAPI(userData), m_client.base.clientInfo); 55 55 } 56 56 … … 60 60 return; 61 61 62 m_client.didFailProvisionalLoadWithErrorForFrame(toAPI(page), toAPI(frame), toAPI(error), toAPI(userData), m_client. clientInfo);62 m_client.didFailProvisionalLoadWithErrorForFrame(toAPI(page), toAPI(frame), toAPI(error), toAPI(userData), m_client.base.clientInfo); 63 63 } 64 64 … … 68 68 return; 69 69 70 m_client.didCommitLoadForFrame(toAPI(page), toAPI(frame), toAPI(userData), m_client. clientInfo);70 m_client.didCommitLoadForFrame(toAPI(page), toAPI(frame), toAPI(userData), m_client.base.clientInfo); 71 71 } 72 72 … … 76 76 return; 77 77 78 m_client.didFinishDocumentLoadForFrame(toAPI(page), toAPI(frame), toAPI(userData), m_client. clientInfo);78 m_client.didFinishDocumentLoadForFrame(toAPI(page), toAPI(frame), toAPI(userData), m_client.base.clientInfo); 79 79 } 80 80 … … 84 84 return; 85 85 86 m_client.didFinishLoadForFrame(toAPI(page), toAPI(frame), toAPI(userData), m_client. clientInfo);86 m_client.didFinishLoadForFrame(toAPI(page), toAPI(frame), toAPI(userData), m_client.base.clientInfo); 87 87 } 88 88 … … 92 92 return; 93 93 94 m_client.didFailLoadWithErrorForFrame(toAPI(page), toAPI(frame), toAPI(error), toAPI(userData), m_client. clientInfo);94 m_client.didFailLoadWithErrorForFrame(toAPI(page), toAPI(frame), toAPI(error), toAPI(userData), m_client.base.clientInfo); 95 95 } 96 96 … … 100 100 return; 101 101 102 m_client.didSameDocumentNavigationForFrame(toAPI(page), toAPI(frame), toAPI(type), toAPI(userData), m_client. clientInfo);102 m_client.didSameDocumentNavigationForFrame(toAPI(page), toAPI(frame), toAPI(type), toAPI(userData), m_client.base.clientInfo); 103 103 } 104 104 … … 108 108 return; 109 109 110 m_client.didReceiveTitleForFrame(toAPI(page), toAPI(title.impl()), toAPI(frame), toAPI(userData), m_client. clientInfo);110 m_client.didReceiveTitleForFrame(toAPI(page), toAPI(title.impl()), toAPI(frame), toAPI(userData), m_client.base.clientInfo); 111 111 } 112 112 … … 116 116 return; 117 117 118 m_client.didFirstLayoutForFrame(toAPI(page), toAPI(frame), toAPI(userData), m_client. clientInfo);118 m_client.didFirstLayoutForFrame(toAPI(page), toAPI(frame), toAPI(userData), m_client.base.clientInfo); 119 119 } 120 120 … … 124 124 return; 125 125 126 m_client.didFirstVisuallyNonEmptyLayoutForFrame(toAPI(page), toAPI(frame), toAPI(userData), m_client. clientInfo);126 m_client.didFirstVisuallyNonEmptyLayoutForFrame(toAPI(page), toAPI(frame), toAPI(userData), m_client.base.clientInfo); 127 127 } 128 128 … … 132 132 return; 133 133 134 m_client.didLayout(toAPI(page), toWKLayoutMilestones(milestones), toAPI(userData), m_client. clientInfo);134 m_client.didLayout(toAPI(page), toWKLayoutMilestones(milestones), toAPI(userData), m_client.base.clientInfo); 135 135 } 136 136 … … 140 140 return; 141 141 142 m_client.didRemoveFrameFromHierarchy(toAPI(page), toAPI(frame), toAPI(userData), m_client. clientInfo);142 m_client.didRemoveFrameFromHierarchy(toAPI(page), toAPI(frame), toAPI(userData), m_client.base.clientInfo); 143 143 } 144 144 … … 148 148 return; 149 149 150 m_client.didDisplayInsecureContentForFrame(toAPI(page), toAPI(frame), toAPI(userData), m_client. clientInfo);150 m_client.didDisplayInsecureContentForFrame(toAPI(page), toAPI(frame), toAPI(userData), m_client.base.clientInfo); 151 151 } 152 152 … … 156 156 return; 157 157 158 m_client.didRunInsecureContentForFrame(toAPI(page), toAPI(frame), toAPI(userData), m_client. clientInfo);158 m_client.didRunInsecureContentForFrame(toAPI(page), toAPI(frame), toAPI(userData), m_client.base.clientInfo); 159 159 } 160 160 … … 164 164 return; 165 165 166 m_client.didDetectXSSForFrame(toAPI(page), toAPI(frame), toAPI(userData), m_client. clientInfo);166 m_client.didDetectXSSForFrame(toAPI(page), toAPI(frame), toAPI(userData), m_client.base.clientInfo); 167 167 } 168 168 … … 172 172 return false; 173 173 174 return m_client.canAuthenticateAgainstProtectionSpaceInFrame(toAPI(page), toAPI(frame), toAPI(protectionSpace), m_client. clientInfo);174 return m_client.canAuthenticateAgainstProtectionSpaceInFrame(toAPI(page), toAPI(frame), toAPI(protectionSpace), m_client.base.clientInfo); 175 175 } 176 176 … … 180 180 return; 181 181 182 m_client.didReceiveAuthenticationChallengeInFrame(toAPI(page), toAPI(frame), toAPI(authenticationChallenge), m_client. clientInfo);182 m_client.didReceiveAuthenticationChallengeInFrame(toAPI(page), toAPI(frame), toAPI(authenticationChallenge), m_client.base.clientInfo); 183 183 } 184 184 … … 188 188 return; 189 189 190 m_client.didStartProgress(toAPI(page), m_client. clientInfo);190 m_client.didStartProgress(toAPI(page), m_client.base.clientInfo); 191 191 } 192 192 … … 196 196 return; 197 197 198 m_client.didChangeProgress(toAPI(page), m_client. clientInfo);198 m_client.didChangeProgress(toAPI(page), m_client.base.clientInfo); 199 199 } 200 200 … … 204 204 return; 205 205 206 m_client.didFinishProgress(toAPI(page), m_client. clientInfo);206 m_client.didFinishProgress(toAPI(page), m_client.base.clientInfo); 207 207 } 208 208 … … 212 212 return; 213 213 214 m_client.processDidBecomeUnresponsive(toAPI(page), m_client. clientInfo);214 m_client.processDidBecomeUnresponsive(toAPI(page), m_client.base.clientInfo); 215 215 } 216 216 … … 220 220 return; 221 221 222 m_client.interactionOccurredWhileProcessUnresponsive(toAPI(page), m_client. clientInfo);222 m_client.interactionOccurredWhileProcessUnresponsive(toAPI(page), m_client.base.clientInfo); 223 223 } 224 224 … … 228 228 return; 229 229 230 m_client.processDidBecomeResponsive(toAPI(page), m_client. clientInfo);230 m_client.processDidBecomeResponsive(toAPI(page), m_client.base.clientInfo); 231 231 } 232 232 … … 236 236 return; 237 237 238 m_client.processDidCrash(toAPI(page), m_client. clientInfo);238 m_client.processDidCrash(toAPI(page), m_client.base.clientInfo); 239 239 } 240 240 … … 248 248 removedItemsArray = API::Array::create(std::move(*removedItems)); 249 249 250 m_client.didChangeBackForwardList(toAPI(page), toAPI(addedItem), toAPI(removedItemsArray.get()), m_client. clientInfo);250 m_client.didChangeBackForwardList(toAPI(page), toAPI(addedItem), toAPI(removedItemsArray.get()), m_client.base.clientInfo); 251 251 } 252 252 … … 256 256 // for version 0 clients. Later versioned clients should get willGoToBackForwardListItem() instead, 257 257 // but due to XPC race conditions this one might have been called instead. 258 if (m_client. version > 0 || !m_client.shouldGoToBackForwardListItem)258 if (m_client.base.version > 0 || !m_client.shouldGoToBackForwardListItem) 259 259 return true; 260 260 261 return m_client.shouldGoToBackForwardListItem(toAPI(page), toAPI(item), m_client. clientInfo);261 return m_client.shouldGoToBackForwardListItem(toAPI(page), toAPI(item), m_client.base.clientInfo); 262 262 } 263 263 … … 265 265 { 266 266 if (m_client.willGoToBackForwardListItem) 267 m_client.willGoToBackForwardListItem(toAPI(page), toAPI(item), toAPI(userData), m_client. clientInfo);267 m_client.willGoToBackForwardListItem(toAPI(page), toAPI(item), toAPI(userData), m_client.base.clientInfo); 268 268 } 269 269 … … 276 276 toAPI(page), 277 277 toAPI(pluginInformation->get<WebString>(pluginInformationMIMETypeKey())), 278 m_client. clientInfo);278 m_client.base.clientInfo); 279 279 280 280 if (m_client.pluginDidFail_deprecatedForUseWithV1) … … 285 285 0, 286 286 0, 287 m_client. clientInfo);287 m_client.base.clientInfo); 288 288 289 289 if (m_client.pluginDidFail) … … 292 292 kWKErrorCodeCannotLoadPlugIn, 293 293 toAPI(pluginInformation), 294 m_client. clientInfo);294 m_client.base.clientInfo); 295 295 } 296 296 … … 304 304 toAPI(pluginInformation->get<WebString>(pluginInformationBundleIdentifierKey())), 305 305 toAPI(pluginInformation->get<WebString>(pluginInformationBundleVersionKey())), 306 m_client. clientInfo);306 m_client.base.clientInfo); 307 307 308 308 if (m_client.pluginDidFail) … … 311 311 kWKErrorCodeInsecurePlugInVersion, 312 312 toAPI(pluginInformation), 313 m_client. clientInfo);313 m_client.base.clientInfo); 314 314 } 315 315 … … 320 320 321 321 if (m_client.pluginLoadPolicy_deprecatedForUseWithV2) 322 loadPolicy = toPluginModuleLoadPolicy(m_client.pluginLoadPolicy_deprecatedForUseWithV2(toAPI(page), toWKPluginLoadPolicy(currentPluginLoadPolicy), toAPI(pluginInformation), m_client. clientInfo));322 loadPolicy = toPluginModuleLoadPolicy(m_client.pluginLoadPolicy_deprecatedForUseWithV2(toAPI(page), toWKPluginLoadPolicy(currentPluginLoadPolicy), toAPI(pluginInformation), m_client.base.clientInfo)); 323 323 else if (m_client.pluginLoadPolicy) 324 loadPolicy = toPluginModuleLoadPolicy(m_client.pluginLoadPolicy(toAPI(page), toWKPluginLoadPolicy(currentPluginLoadPolicy), toAPI(pluginInformation), &unavailabilityDescriptionOut, m_client. clientInfo));324 loadPolicy = toPluginModuleLoadPolicy(m_client.pluginLoadPolicy(toAPI(page), toWKPluginLoadPolicy(currentPluginLoadPolicy), toAPI(pluginInformation), &unavailabilityDescriptionOut, m_client.base.clientInfo)); 325 325 326 326 if (unavailabilityDescriptionOut) { -
trunk/Source/WebKit2/UIProcess/WebLoaderClient.h
r159724 r159965 38 38 namespace API { 39 39 class Object; 40 41 template<> struct ClientTraits<WKPageLoaderClientBase> { 42 typedef std::tuple<WKPageLoaderClientV0, WKPageLoaderClientV1, WKPageLoaderClientV2, WKPageLoaderClientV3> Versions; 43 }; 44 40 45 } 41 46 … … 54 59 class WebProtectionSpace; 55 60 56 class WebLoaderClient : public API Client<WKPageLoaderClient, kWKPageLoaderClientCurrentVersion> {61 class WebLoaderClient : public API::Client<WKPageLoaderClientBase> { 57 62 public: 58 63 void didStartProvisionalLoadForFrame(WebPageProxy*, WebFrameProxy*, API::Object*); -
trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp
r159908 r159965 399 399 } 400 400 401 void WebPageProxy::initializeLoaderClient(const WKPageLoaderClient * loadClient)401 void WebPageProxy::initializeLoaderClient(const WKPageLoaderClientBase* loadClient) 402 402 { 403 403 m_loaderClient.initialize(loadClient); … … 410 410 // for backwards compatibility. 411 411 WebCore::LayoutMilestones milestones = 0; 412 if ( loadClient->didFirstLayoutForFrame)412 if (m_loaderClient.client().didFirstLayoutForFrame) 413 413 milestones |= WebCore::DidFirstLayout; 414 if ( loadClient->didFirstVisuallyNonEmptyLayoutForFrame)414 if (m_loaderClient.client().didFirstVisuallyNonEmptyLayoutForFrame) 415 415 milestones |= WebCore::DidFirstVisuallyNonEmptyLayout; 416 416 -
trunk/Source/WebKit2/UIProcess/WebPageProxy.h
r159903 r159965 354 354 void initializeFindMatchesClient(const WKPageFindMatchesClient*); 355 355 void initializeFormClient(const WKPageFormClient*); 356 void initializeLoaderClient(const WKPageLoaderClient *);356 void initializeLoaderClient(const WKPageLoaderClientBase*); 357 357 void initializePolicyClient(const WKPagePolicyClient*); 358 358 void initializeUIClient(const WKPageUIClient*);
Note: See TracChangeset
for help on using the changeset viewer.