Changeset 209975 in webkit
- Timestamp:
- Dec 18, 2016 1:09:34 PM (7 years ago)
- Location:
- trunk
- Files:
-
- 12 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit2/ChangeLog
r209969 r209975 1 2016-12-18 Simon Fraser <simon.fraser@apple.com> 2 3 Expose a way for MiniBrowser to simulate header and footer banners 4 https://bugs.webkit.org/show_bug.cgi?id=166005 5 6 Reviewed by Wenson Hsieh. 7 8 Expose testing SPI that allows a client to simulate the presence of header 9 and footer banners. These are simply plumbed through to set FrameView's 10 m_headerHeight and m_footerHeight. 11 12 * UIProcess/API/Cocoa/WKWebView.mm: 13 (-[WKWebView _setHeaderBannerHeightForTesting:]): 14 (-[WKWebView _setFooterBannerHeightForTesting:]): 15 * UIProcess/API/Cocoa/WKWebViewPrivate.h: 16 * UIProcess/WebPageProxy.cpp: 17 (WebKit::WebPageProxy::setHeaderBannerHeightForTesting): 18 (WebKit::WebPageProxy::setFooterBannerHeightForTesting): 19 * UIProcess/WebPageProxy.h: 20 * WebProcess/WebPage/WebPage.cpp: 21 (WebKit::WebPage::setHeaderBannerHeightForTesting): 22 (WebKit::WebPage::setFooterBannerHeightForTesting): 23 * WebProcess/WebPage/WebPage.h: 24 * WebProcess/WebPage/WebPage.messages.in: 25 1 26 2016-12-16 Dave Hyatt <hyatt@apple.com> 2 27 -
trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm
r209967 r209975 4864 4864 [self insertText:string replacementRange:replacementRange]; 4865 4865 } 4866 4867 - (void)_setHeaderBannerHeight:(int)height 4868 { 4869 _page->setHeaderBannerHeightForTesting(height); 4870 } 4871 4872 - (void)_setFooterBannerHeight:(int)height 4873 { 4874 _page->setFooterBannerHeightForTesting(height); 4875 } 4876 4866 4877 #endif // PLATFORM(MAC) 4867 4878 -
trunk/Source/WebKit2/UIProcess/API/Cocoa/WKWebViewPrivate.h
r209967 r209975 313 313 314 314 - (void)_insertText:(id)string replacementRange:(NSRange)replacementRange WK_API_AVAILABLE(macosx(WK_MAC_TBA)); 315 316 - (void)_setHeaderBannerHeight:(int)height WK_API_AVAILABLE(macosx(WK_MAC_TBA)); 317 - (void)_setFooterBannerHeight:(int)height WK_API_AVAILABLE(macosx(WK_MAC_TBA)); 315 318 #endif 316 319 -
trunk/Source/WebKit2/UIProcess/WebPageProxy.cpp
r209941 r209975 6575 6575 m_pageClient.didHandleAcceptedCandidate(); 6576 6576 } 6577 6578 void WebPageProxy::setHeaderBannerHeightForTesting(int height) 6579 { 6580 m_process->send(Messages::WebPage::SetHeaderBannerHeightForTesting(height), m_pageID); 6581 } 6582 6583 void WebPageProxy::setFooterBannerHeightForTesting(int height) 6584 { 6585 m_process->send(Messages::WebPage::SetFooterBannerHeightForTesting(height), m_pageID); 6586 } 6587 6577 6588 #endif 6578 6589 -
trunk/Source/WebKit2/UIProcess/WebPageProxy.h
r209967 r209975 1089 1089 void handleAcceptedCandidate(WebCore::TextCheckingResult); 1090 1090 void didHandleAcceptedCandidate(); 1091 1092 void setHeaderBannerHeightForTesting(int); 1093 void setFooterBannerHeightForTesting(int); 1091 1094 #endif 1092 1095 -
trunk/Source/WebKit2/WebProcess/WebPage/WebPage.cpp
r209943 r209975 1834 1834 m_footerBanner->showIfHidden(); 1835 1835 } 1836 1837 void WebPage::setHeaderBannerHeightForTesting(int height) 1838 { 1839 #if ENABLE(RUBBER_BANDING) 1840 corePage()->addHeaderWithHeight(height); 1841 #endif 1842 } 1843 1844 void WebPage::setFooterBannerHeightForTesting(int height) 1845 { 1846 #if ENABLE(RUBBER_BANDING) 1847 corePage()->addFooterWithHeight(height); 1848 #endif 1849 } 1850 1836 1851 #endif // !PLATFORM(IOS) 1837 1852 -
trunk/Source/WebKit2/WebProcess/WebPage/WebPage.h
r209839 r209975 476 476 void showPageBanners(); 477 477 478 void setHeaderBannerHeightForTesting(int); 479 void setFooterBannerHeightForTesting(int); 478 480 #endif // !PLATFORM(IOS) 479 481 -
trunk/Source/WebKit2/WebProcess/WebPage/WebPage.messages.in
r209839 r209975 417 417 ImmediateActionDidCancel() 418 418 ImmediateActionDidComplete() 419 419 420 DataDetectorsDidPresentUI(WebCore::PageOverlay::PageOverlayID pageOverlay) 420 421 DataDetectorsDidChangeUI(WebCore::PageOverlay::PageOverlayID pageOverlay) 421 422 DataDetectorsDidHideUI(WebCore::PageOverlay::PageOverlayID pageOverlay) 423 422 424 HandleAcceptedCandidate(struct WebCore::TextCheckingResult acceptedCandidate) 423 425 RequestActiveNowPlayingSessionInfo() 426 427 SetHeaderBannerHeightForTesting(int height); 428 SetFooterBannerHeightForTesting(int height); 424 429 #endif 425 430 -
trunk/Tools/ChangeLog
r209972 r209975 1 2016-12-18 Simon Fraser <simon.fraser@apple.com> 2 3 Expose a way for MiniBrowser to simulate header and footer banners 4 https://bugs.webkit.org/show_bug.cgi?id=166005 5 6 Reviewed by Wenson Hsieh. 7 8 Add a MiniBrowser menu item and setting to toggle adding space for header and footer 9 banners. This only works in WebKit2. 10 11 We need to reset these on each navigation, since newly created FrameViews 12 don't re-fetch the header and footer height stored on Page. 13 14 Also fix the signature of webView:didFinishNavigation: to follow API changes, 15 as well as fixing webViewWebContentProcessDidTerminate: 16 17 * MiniBrowser/mac/SettingsController.h: 18 * MiniBrowser/mac/SettingsController.m: 19 (-[SettingsController _populateMenu]): 20 (-[SettingsController validateMenuItem:]): 21 (-[SettingsController toggleReserveSpaceForBanners:]): 22 (-[SettingsController isSpaceReservedForBanners]): 23 * MiniBrowser/mac/WK2BrowserWindowController.m: 24 (-[WK2BrowserWindowController didChangeSettings]): 25 (-[WK2BrowserWindowController webView:didFinishNavigation:]): 26 (-[WK2BrowserWindowController webViewWebContentProcessDidTerminate:]): 27 (-[WK2BrowserWindowController webView:didFinishLoadingNavigation:]): Deleted. 28 (-[WK2BrowserWindowController _webViewWebProcessDidCrash:]): Deleted. 29 1 30 2016-12-17 Simon Fraser <simon.fraser@apple.com> 2 31 -
trunk/Tools/MiniBrowser/mac/SettingsController.h
r209717 r209975 41 41 @property (nonatomic, readonly) BOOL incrementalRenderingSuppressed; 42 42 @property (nonatomic, readonly) BOOL tiledScrollingIndicatorVisible; 43 @property (nonatomic, readonly, getter=isSpaceReservedForBanners) BOOL spaceReservedForBanners; 43 44 @property (nonatomic, readonly) BOOL resourceUsageOverlayVisible; 44 45 @property (nonatomic, readonly) BOOL nonFastScrollableRegionOverlayVisible; -
trunk/Tools/MiniBrowser/mac/SettingsController.m
r209717 r209975 41 41 static NSString * const SimpleLineLayoutDebugBordersEnabledPreferenceKey = @"SimpleLineLayoutDebugBordersEnabled"; 42 42 static NSString * const TiledScrollingIndicatorVisiblePreferenceKey = @"TiledScrollingIndicatorVisible"; 43 static NSString * const ReserveSpaceForBannersPreferenceKey = @"ReserveSpaceForBanners"; 44 43 45 static NSString * const ResourceUsageOverlayVisiblePreferenceKey = @"ResourceUsageOverlayVisible"; 44 46 static NSString * const LoadsAllSiteIconsKey = @"LoadsAllSiteIcons"; … … 136 138 [self _addHeaderWithTitle:@"WebKit2-only Settings"]; 137 139 140 [self _addItemWithTitle:@"Reserve Space For Banners" action:@selector(toggleReserveSpaceForBanners:) indented:YES]; 138 141 [self _addItemWithTitle:@"Show Tiled Scrolling Indicator" action:@selector(toggleShowTiledScrollingIndicator:) indented:YES]; 139 142 [self _addItemWithTitle:@"Use UI-Side Compositing" action:@selector(toggleUseUISideCompositing:) indented:YES]; … … 214 217 else if (action == @selector(toggleVisualViewportEnabled:)) 215 218 [menuItem setState:[self visualViewportEnabled] ? NSOnState : NSOffState]; 219 else if (action == @selector(toggleReserveSpaceForBanners:)) 220 [menuItem setState:[self isSpaceReservedForBanners] ? NSOnState : NSOffState]; 216 221 else if (action == @selector(toggleShowTiledScrollingIndicator:)) 217 222 [menuItem setState:[self tiledScrollingIndicatorVisible] ? NSOnState : NSOffState]; … … 361 366 } 362 367 368 - (void)toggleReserveSpaceForBanners:(id)sender 369 { 370 [self _toggleBooleanDefault:ReserveSpaceForBannersPreferenceKey]; 371 } 372 363 373 - (void)toggleShowTiledScrollingIndicator:(id)sender 364 374 { … … 399 409 { 400 410 [self _toggleBooleanDefault:NetworkCacheSpeculativeRevalidationDisabledKey]; 411 } 412 413 - (BOOL)isSpaceReservedForBanners 414 { 415 return [[NSUserDefaults standardUserDefaults] boolForKey:ReserveSpaceForBannersPreferenceKey]; 401 416 } 402 417 -
trunk/Tools/MiniBrowser/mac/WK2BrowserWindowController.m
r209640 r209975 44 44 45 45 static void* keyValueObservingContext = &keyValueObservingContext; 46 static const int testHeaderBannerHeight = 42; 47 static const int testFooterBannerHeight = 58; 46 48 47 49 @interface WK2BrowserWindowController () <WKNavigationDelegate, WKUIDelegate, _WKIconLoadingDelegate> … … 409 411 410 412 preferences._visibleDebugOverlayRegions = visibleOverlayRegions; 413 414 [_webView _setHeaderBannerHeight:[settings isSpaceReservedForBanners] ? testHeaderBannerHeight : 0]; 415 [_webView _setFooterBannerHeight:[settings isSpaceReservedForBanners] ? testFooterBannerHeight : 0]; 411 416 } 412 417 … … 618 623 } 619 624 620 - (void)webView:(WKWebView *)webView didFinishLoadingNavigation:(WKNavigation *)navigation 621 { 622 LOG(@"didFinishLoadingNavigation: %@", navigation); 625 - (void)webView:(WKWebView *)webView didFinishNavigation:(WKNavigation *)navigation 626 { 627 LOG(@"didFinishNavigation: %@", navigation); 628 629 // Banner heights don't persist across page loads (oddly, since Page stores them), so reset on every page load. 630 if ([[SettingsController shared] isSpaceReservedForBanners]) { 631 [_webView _setHeaderBannerHeight:testHeaderBannerHeight]; 632 [_webView _setFooterBannerHeight:testFooterBannerHeight]; 633 } 623 634 } 624 635 … … 634 645 } 635 646 636 - (void) _webViewWebProcessDidCrash:(WKWebView *)webView647 - (void)webViewWebContentProcessDidTerminate:(WKWebView *)webView 637 648 { 638 649 NSLog(@"WebContent process crashed; reloading");
Note: See TracChangeset
for help on using the changeset viewer.