Changeset 164049 in webkit
- Timestamp:
- Feb 13, 2014 1:14:05 PM (10 years ago)
- Location:
- trunk/Source/WebKit2
- Files:
-
- 6 edited
- 1 copied
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit2/ChangeLog
r164031 r164049 1 2014-02-13 Anders Carlsson <andersca@apple.com> 2 3 Add rendering progress events SPI 4 https://bugs.webkit.org/show_bug.cgi?id=128752 5 6 Reviewed by Dan Bernstein. 7 8 * UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h: Copied from Source/WebKit2/UIProcess/API/Cocoa/WKWebViewPrivate.h. 9 * UIProcess/API/Cocoa/WKWebView.mm: 10 (-[WKWebView _observedRenderingProgressEvents]): 11 (layoutMilestones): 12 (-[WKWebView _setObservedRenderingProgressEvents:]): 13 * UIProcess/API/Cocoa/WKWebViewPrivate.h: 14 (NS_OPTIONS): 15 * UIProcess/Cocoa/NavigationState.h: 16 * UIProcess/Cocoa/NavigationState.mm: 17 (WebKit::NavigationState::setNavigationDelegate): 18 (WebKit::renderingProgressEvents): 19 (WebKit::NavigationState::LoaderClient::didLayout): 20 * WebKit2.xcodeproj/project.pbxproj: 21 1 22 2014-02-13 Anders Carlsson <andersca@apple.com> 2 23 -
trunk/Source/WebKit2/UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h
r164035 r164049 24 24 */ 25 25 26 #import <WebKit2/WKWebView.h> 26 #import <WebKit2/WKNavigationDelegate.h> 27 #import <WebKit2/WKWebViewPrivate.h> 27 28 28 29 #if WK_API_ENABLED 29 30 30 @ class WKRemoteObjectRegistry;31 @protocol WKNavigationDelegatePrivate <WKNavigationDelegate> 31 32 32 @ interface WKWebView (WKPrivate)33 @optional 33 34 34 @property (nonatomic, readonly) WKRemoteObjectRegistry *_remoteObjectRegistry; 35 36 #if TARGET_OS_IPHONE 37 @property (nonatomic, setter=_setMinimumLayoutSizeOverride:) CGSize _minimumLayoutSizeOverride; 38 39 // Define the inset of the scrollview unusable by the web page. 40 @property (nonatomic, setter=_setObscuredInsets:) UIEdgeInsets _obscuredInsets; 41 42 - (void)_beginInteractiveObscuredInsetsChange; 43 - (void)_endInteractiveObscuredInsetsChange; 44 #endif 35 - (void)_webView:(WKWebView *)webView renderingProgressDidChange:(_WKRenderingProgressEvents)progressEvents; 45 36 46 37 @end -
trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm
r164010 r164049 59 59 60 60 RetainPtr<WKRemoteObjectRegistry> _remoteObjectRegistry; 61 _WKRenderingProgressEvents _observedRenderingProgressEvents; 61 62 62 63 #if PLATFORM(IOS) … … 373 374 } 374 375 376 - (_WKRenderingProgressEvents)_observedRenderingProgressEvents 377 { 378 return _observedRenderingProgressEvents; 379 } 380 381 static inline WebCore::LayoutMilestones layoutMilestones(_WKRenderingProgressEvents events) 382 { 383 WebCore::LayoutMilestones milestones = 0; 384 385 if (events & _WKRenderingProgressEventFirstLayout) 386 milestones |= WebCore::DidFirstLayout; 387 388 if (events & WKRenderingProgressEventFirstPaintWithSignificantArea) 389 milestones |= WebCore::DidHitRelevantRepaintedObjectsAreaThreshold; 390 391 return milestones; 392 } 393 394 - (void)_setObservedRenderingProgressEvents:(_WKRenderingProgressEvents)observedRenderingProgressEvents 395 { 396 _observedRenderingProgressEvents = observedRenderingProgressEvents; 397 _page->listenForLayoutMilestones(layoutMilestones(observedRenderingProgressEvents)); 398 } 399 375 400 #pragma mark iOS-specific methods 376 401 -
trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebViewPrivate.h
r163814 r164049 28 28 #if WK_API_ENABLED 29 29 30 typedef NS_OPTIONS(NSUInteger, _WKRenderingProgressEvents) { 31 _WKRenderingProgressEventFirstLayout = 1 << 0, 32 _WKRenderingProgressEventFirstPaintWithSignificantArea = 1 << 2, 33 }; 34 30 35 @class WKRemoteObjectRegistry; 31 36 … … 33 38 34 39 @property (nonatomic, readonly) WKRemoteObjectRegistry *_remoteObjectRegistry; 40 @property (nonatomic, setter=_setObservedRenderingProgressEvents:) _WKRenderingProgressEvents _observedRenderingProgressEvents; 35 41 36 42 #if TARGET_OS_IPHONE -
trunk/Source/WebKit2/UIProcess/Cocoa/NavigationState.h
r163332 r164049 83 83 virtual void didCommitLoadForFrame(WebPageProxy*, WebFrameProxy*, uint64_t navigationID, API::Object*) override; 84 84 virtual void didFinishLoadForFrame(WebPageProxy*, WebFrameProxy*, uint64_t navigationID, API::Object*) override; 85 virtual void didFailLoadWithErrorForFrame(WebPageProxy*, WebFrameProxy*, uint64_t navigationID, const WebCore::ResourceError&, API::Object* userData) override; 85 virtual void didFailLoadWithErrorForFrame(WebPageProxy*, WebFrameProxy*, uint64_t navigationID, const WebCore::ResourceError&, API::Object*) override; 86 virtual void didLayout(WebKit::WebPageProxy*, WebCore::LayoutMilestones, API::Object*) override; 86 87 87 88 NavigationState& m_navigationState; … … 113 114 bool webViewDidFinishLoadingNavigation : 1; 114 115 bool webViewDidFailNavigationWithError : 1; 116 117 bool webViewRenderingProgressDidChange : 1; 115 118 } m_navigationDelegateMethods; 116 119 -
trunk/Source/WebKit2/UIProcess/Cocoa/NavigationState.mm
r163997 r164049 33 33 #import "WKFrameInfoInternal.h" 34 34 #import "WKNavigationActionInternal.h" 35 #import "WKNavigationDelegate .h"35 #import "WKNavigationDelegatePrivate.h" 36 36 #import "WKNavigationInternal.h" 37 37 #import "WKNavigationResponseInternal.h" … … 84 84 m_navigationDelegateMethods.webViewDidFinishLoadingNavigation = [delegate respondsToSelector:@selector(webView:didFinishLoadingNavigation:)]; 85 85 m_navigationDelegateMethods.webViewDidFailNavigationWithError = [delegate respondsToSelector:@selector(webView:didFailNavigation:withError:)]; 86 87 m_navigationDelegateMethods.webViewRenderingProgressDidChange = [delegate respondsToSelector:@selector(_webView:renderingProgressDidChange:)]; 86 88 } 87 89 … … 346 348 } 347 349 350 static _WKRenderingProgressEvents renderingProgressEvents(WebCore::LayoutMilestones milestones) 351 { 352 _WKRenderingProgressEvents events = 0; 353 354 if (milestones & WebCore::DidFirstLayout) 355 events |= _WKRenderingProgressEventFirstLayout; 356 357 if (milestones & WebCore::DidHitRelevantRepaintedObjectsAreaThreshold) 358 events |= _WKRenderingProgressEventFirstPaintWithSignificantArea; 359 360 return events; 361 } 362 363 void NavigationState::LoaderClient::didLayout(WebKit::WebPageProxy*, WebCore::LayoutMilestones layoutMilestones, API::Object*) 364 { 365 if (!m_navigationState.m_navigationDelegateMethods.webViewRenderingProgressDidChange) 366 return; 367 368 auto navigationDelegate = m_navigationState.m_navigationDelegate.get(); 369 if (!navigationDelegate) 370 return; 371 372 [static_cast<id <WKNavigationDelegatePrivate>>(navigationDelegate.get()) _webView:m_navigationState.m_webView renderingProgressDidChange:renderingProgressEvents(layoutMilestones)]; 373 } 374 348 375 void NavigationState::willChangeIsLoading() 349 376 { -
trunk/Source/WebKit2/WebKit2.xcodeproj/project.pbxproj
r164004 r164049 244 244 1A9E32A11823018900F5D04C /* WKRemoteObjectRegistryInternal.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A9E32A01823018900F5D04C /* WKRemoteObjectRegistryInternal.h */; }; 245 245 1A9FBA8D13FF04E600DEED67 /* PluginComplexTextInputState.h in Headers */ = {isa = PBXBuildFile; fileRef = 1A9FBA8C13FF04E600DEED67 /* PluginComplexTextInputState.h */; }; 246 1AA20D5118AD50E0005D1ED4 /* WKNavigationDelegatePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 1AA20D5018AD50E0005D1ED4 /* WKNavigationDelegatePrivate.h */; settings = {ATTRIBUTES = (Private, ); }; }; 246 247 1AA2E51D12E4C05E00BC4966 /* CGUtilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 1AA2E51B12E4C05E00BC4966 /* CGUtilities.h */; }; 247 248 1AA2E51E12E4C05E00BC4966 /* CGUtilities.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1AA2E51C12E4C05E00BC4966 /* CGUtilities.cpp */; }; … … 1921 1922 1AA1CC5C100FA1A10078DEBC /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = /System/Library/Frameworks/QuartzCore.framework; sourceTree = "<absolute>"; }; 1922 1923 1AA1CD06100FA1BA0078DEBC /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = /System/Library/Frameworks/Carbon.framework; sourceTree = "<absolute>"; }; 1924 1AA20D5018AD50E0005D1ED4 /* WKNavigationDelegatePrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WKNavigationDelegatePrivate.h; sourceTree = "<group>"; }; 1923 1925 1AA2E51B12E4C05E00BC4966 /* CGUtilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CGUtilities.h; sourceTree = "<group>"; }; 1924 1926 1AA2E51C12E4C05E00BC4966 /* CGUtilities.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CGUtilities.cpp; sourceTree = "<group>"; }; … … 4374 4376 1A256E3918A1A7DF006FB922 /* WKNavigationActionInternal.h */, 4375 4377 1ABC3DFB1899F51C004F0626 /* WKNavigationDelegate.h */, 4378 1AA20D5018AD50E0005D1ED4 /* WKNavigationDelegatePrivate.h */, 4376 4379 1ABC3DF01899C6B6004F0626 /* WKNavigationInternal.h */, 4377 4380 1A1B0EB418A424950038481A /* WKNavigationResponse.h */, … … 6512 6515 33152976130D0CB200ED2483 /* SecurityOriginData.h in Headers */, 6513 6516 518D2CCB12D51DFB003BB93B /* SessionState.h in Headers */, 6517 1AA20D5118AD50E0005D1ED4 /* WKNavigationDelegatePrivate.h in Headers */, 6514 6518 1A6420E512DCE2FF00CAAE2C /* ShareableBitmap.h in Headers */, 6515 6519 51217461164C20E30037A5C1 /* ShareableResource.h in Headers */,
Note: See TracChangeset
for help on using the changeset viewer.