Changeset 160602 in webkit
- Timestamp:
- Dec 14, 2013 3:24:47 PM (10 years ago)
- Location:
- trunk/Source/WebKit2
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit2/ChangeLog
r160601 r160602 1 2013-12-14 Dan Bernstein <mitz@apple.com> 2 3 [Cocoa] Expose some layout milestones 4 https://bugs.webkit.org/show_bug.cgi?id=125721 5 6 Reviewed by Sam Weinig. 7 8 * UIProcess/API/Cocoa/WKBrowsingContextController.h: 9 (WKRenderingProgressEvents): Declared new enum. 10 (@interface WKBrowsingContextController): Declared new observedRenderingProgressEvents 11 property. 12 * UIProcess/API/Cocoa/WKBrowsingContextController.mm: 13 (layoutMilestones): Added helper to translate rendering progress events into layout 14 milestones. 15 (-[WKBrowsingContextController setObservedRenderingProgressEvents:]): Added this setter. 16 Sets the ivar and calls WebPageProxy::listenForLayoutMilestones. 17 (renderingProgressEvents): Added helper to translate layout milestones into rendering 18 progress events. 19 (didLayout): Implemented this WKPageLoaderClient callback by calling the load delegate. 20 (setUpPageLoaderClient): Set the above callback in the client structure. 21 * UIProcess/API/Cocoa/WKBrowsingContextLoadDelegate.h: Declared new delegate method. 22 1 23 2013-12-14 Dan Bernstein <mitz@apple.com> 2 24 -
trunk/Source/WebKit2/UIProcess/API/Cocoa/WKBrowsingContextController.h
r160191 r160602 36 36 @protocol WKBrowsingContextLoadDelegate; 37 37 @protocol WKBrowsingContextPolicyDelegate; 38 39 typedef NS_OPTIONS(NSUInteger, WKRenderingProgressEvents) { 40 WKRenderingProgressEventFirstLayout = 1 << 0, 41 WKRenderingProgressEventFirstPaintWithSignificantArea = 1 << 2, 42 }; 38 43 39 44 WK_API_CLASS … … 122 127 @property(readonly) double estimatedProgress; 123 128 129 @property WKRenderingProgressEvents observedRenderingProgressEvents; 130 124 131 #pragma mark Active Document Introspection 125 132 -
trunk/Source/WebKit2/UIProcess/API/Cocoa/WKBrowsingContextController.mm
r160512 r160602 334 334 } 335 335 336 static inline LayoutMilestones layoutMilestones(WKRenderingProgressEvents events) 337 { 338 LayoutMilestones milestones = 0; 339 340 if (events & WKRenderingProgressEventFirstLayout) 341 milestones |= DidFirstLayout; 342 343 if (events & WKRenderingProgressEventFirstPaintWithSignificantArea) 344 milestones |= DidHitRelevantRepaintedObjectsAreaThreshold; 345 346 return milestones; 347 } 348 349 - (void)setObservedRenderingProgressEvents:(WKRenderingProgressEvents)events 350 { 351 _observedRenderingProgressEvents = events; 352 _page->listenForLayoutMilestones(layoutMilestones(events)); 353 } 354 336 355 #pragma mark Active Document Introspection 337 356 … … 520 539 if ([loadDelegate respondsToSelector:@selector(browsingContextControllerWebProcessDidCrash:)]) 521 540 [(id <WKBrowsingContextLoadDelegatePrivate>)loadDelegate browsingContextControllerWebProcessDidCrash:browsingContext]; 541 } 542 543 static inline WKRenderingProgressEvents renderingProgressEvents(WKLayoutMilestones milestones) 544 { 545 WKRenderingProgressEvents events = 0; 546 547 if (milestones & kWKDidFirstLayout) 548 events |= WKRenderingProgressEventFirstLayout; 549 550 if (milestones & kWKDidHitRelevantRepaintedObjectsAreaThreshold) 551 events |= WKRenderingProgressEventFirstPaintWithSignificantArea; 552 553 return events; 554 } 555 556 static void didLayout(WKPageRef page, WKLayoutMilestones milestones, WKTypeRef userData, const void* clientInfo) 557 { 558 WKBrowsingContextController *browsingContext = (WKBrowsingContextController *)clientInfo; 559 auto loadDelegate = browsingContext->_loadDelegate.get(); 560 561 if ([loadDelegate respondsToSelector:@selector(browsingContextController:renderingProgressDidChange:)]) 562 [loadDelegate browsingContextController:browsingContext renderingProgressDidChange:renderingProgressEvents(milestones)]; 522 563 } 523 564 … … 545 586 546 587 loaderClient.processDidCrash = processDidCrash; 588 589 loaderClient.didLayout = didLayout; 547 590 548 591 page.initializeLoaderClient(&loaderClient.base); -
trunk/Source/WebKit2/UIProcess/API/Cocoa/WKBrowsingContextLoadDelegate.h
r160040 r160602 26 26 #import <Foundation/Foundation.h> 27 27 28 @class WKBrowsingContextController; 28 #import <WebKit2/WKBrowsingContextController.h> 29 29 30 @class WKBackForwardListItem; 30 31 … … 56 57 - (void)browsingContextControllerDidChangeBackForwardList:(WKBrowsingContextController *)sender addedItem:(WKBackForwardListItem *)addedItem removedItems:(NSArray *)removedItems; 57 58 59 - (void)browsingContextController:(WKBrowsingContextController *)sender renderingProgressDidChange:(WKRenderingProgressEvents)progressEvent; 60 58 61 @end
Note: See TracChangeset
for help on using the changeset viewer.