Title: [260934] trunk/Tools
Revision
260934
Author
[email protected]
Date
2020-04-29 21:16:04 -0700 (Wed, 29 Apr 2020)

Log Message

Add a MiniBrowser option to inset the web view so it doesn't fill the window
https://bugs.webkit.org/show_bug.cgi?id=211216

Reviewed by Tim Horton.

Add a menu item, Debug > Inset Web View to MiniBrowser which insets the view from
the edges of the window, making it possible to debug coordinate conversion issues.

The state is stored in Settings, but unlike other Settings this one doesn't
get populated into the Settings menu because it makes more logical sense grouped
with the options to Hide and Remove the web view.

* MiniBrowser/mac/BrowserWindowController.h:
* MiniBrowser/mac/BrowserWindowController.m:
(-[BrowserWindowController toggleFullWindowWebView:]):
(-[BrowserWindowController webViewFillsWindow]):
(-[BrowserWindowController setWebViewFillsWindow:]):
* MiniBrowser/mac/MainMenu.xib:
* MiniBrowser/mac/SettingsController.h:
* MiniBrowser/mac/SettingsController.m:
(-[SettingsController initWithMenu:]):
(-[SettingsController webViewFillsWindow]):
(-[SettingsController setWebViewFillsWindow:]):
* MiniBrowser/mac/WK1BrowserWindowController.m:
(-[WK1BrowserWindowController validateMenuItem:]):
(-[WK1BrowserWindowController didChangeSettings]):
* MiniBrowser/mac/WK2BrowserWindowController.m:
(-[WK2BrowserWindowController validateMenuItem:]):
(-[WK2BrowserWindowController didChangeSettings]):

Modified Paths

Diff

Modified: trunk/Tools/ChangeLog (260933 => 260934)


--- trunk/Tools/ChangeLog	2020-04-30 04:16:00 UTC (rev 260933)
+++ trunk/Tools/ChangeLog	2020-04-30 04:16:04 UTC (rev 260934)
@@ -1,3 +1,35 @@
+2020-04-29  Simon Fraser  <[email protected]>
+
+        Add a MiniBrowser option to inset the web view so it doesn't fill the window
+        https://bugs.webkit.org/show_bug.cgi?id=211216
+
+        Reviewed by Tim Horton.
+
+        Add a menu item, Debug > Inset Web View to MiniBrowser which insets the view from
+        the edges of the window, making it possible to debug coordinate conversion issues.
+
+        The state is stored in Settings, but unlike other Settings this one doesn't
+        get populated into the Settings menu because it makes more logical sense grouped
+        with the options to Hide and Remove the web view.
+
+        * MiniBrowser/mac/BrowserWindowController.h:
+        * MiniBrowser/mac/BrowserWindowController.m:
+        (-[BrowserWindowController toggleFullWindowWebView:]):
+        (-[BrowserWindowController webViewFillsWindow]):
+        (-[BrowserWindowController setWebViewFillsWindow:]):
+        * MiniBrowser/mac/MainMenu.xib:
+        * MiniBrowser/mac/SettingsController.h:
+        * MiniBrowser/mac/SettingsController.m:
+        (-[SettingsController initWithMenu:]):
+        (-[SettingsController webViewFillsWindow]):
+        (-[SettingsController setWebViewFillsWindow:]):
+        * MiniBrowser/mac/WK1BrowserWindowController.m:
+        (-[WK1BrowserWindowController validateMenuItem:]):
+        (-[WK1BrowserWindowController didChangeSettings]):
+        * MiniBrowser/mac/WK2BrowserWindowController.m:
+        (-[WK2BrowserWindowController validateMenuItem:]):
+        (-[WK2BrowserWindowController didChangeSettings]):
+
 2020-04-29  Chris Dumez  <[email protected]>
 
         REGRESSION(r260791) Network process fails to suspend promptly

Modified: trunk/Tools/MiniBrowser/mac/BrowserWindowController.h (260933 => 260934)


--- trunk/Tools/MiniBrowser/mac/BrowserWindowController.h	2020-04-30 04:16:00 UTC (rev 260933)
+++ trunk/Tools/MiniBrowser/mac/BrowserWindowController.h	2020-04-30 04:16:04 UTC (rev 260934)
@@ -58,6 +58,7 @@
 
 - (IBAction)showHideWebView:(id)sender;
 - (IBAction)removeReinsertWebView:(id)sender;
+- (IBAction)toggleFullWindowWebView:(id)sender;
 
 - (IBAction)zoomIn:(id)sender;
 - (IBAction)zoomOut:(id)sender;
@@ -78,6 +79,8 @@
 - (IBAction)showHideWebInspector:(id)sender;
 
 - (void)didChangeSettings;
+- (BOOL)webViewFillsWindow;
+- (void)setWebViewFillsWindow:(BOOL)fillWindow;
 
 - (NSURL *)currentURL;
 - (NSView *)mainContentView;

Modified: trunk/Tools/MiniBrowser/mac/BrowserWindowController.m (260933 => 260934)


--- trunk/Tools/MiniBrowser/mac/BrowserWindowController.m	2020-04-30 04:16:00 UTC (rev 260933)
+++ trunk/Tools/MiniBrowser/mac/BrowserWindowController.m	2020-04-30 04:16:04 UTC (rev 260934)
@@ -25,6 +25,9 @@
 
 #import "BrowserWindowController.h"
 
+#import "AppDelegate.h"
+#import "SettingsController.h"
+
 @interface BrowserWindowController () <NSSharingServicePickerDelegate, NSSharingServiceDelegate>
 @end
 
@@ -126,6 +129,33 @@
         [containerView addSubview:self.mainContentView];
 }
 
+- (IBAction)toggleFullWindowWebView:(id)sender
+{
+    BOOL newFillWindow = ![self webViewFillsWindow];
+    [self setWebViewFillsWindow:newFillWindow];
+
+    SettingsController *settings = [[NSApplication sharedApplication] browserAppDelegate].settingsController;
+    settings.webViewFillsWindow = newFillWindow;
+}
+
+- (BOOL)webViewFillsWindow
+{
+    return NSEqualRects(containerView.bounds, self.mainContentView.frame);
+}
+
+- (void)setWebViewFillsWindow:(BOOL)fillWindow
+{
+    if (fillWindow)
+        [self.mainContentView setFrame:containerView.bounds];
+    else {
+        const CGFloat viewInset = 100.0f;
+        NSRect viewRect = NSInsetRect(containerView.bounds, viewInset, viewInset);
+        // Make it not vertically centered, to reveal y-flipping bugs.
+        viewRect = NSOffsetRect(viewRect, 0, -25);
+        [self.mainContentView setFrame:viewRect];
+    }
+}
+
 - (IBAction)zoomIn:(id)sender
 {
     [self doesNotRecognizeSelector:_cmd];

Modified: trunk/Tools/MiniBrowser/mac/MainMenu.xib (260933 => 260934)


--- trunk/Tools/MiniBrowser/mac/MainMenu.xib	2020-04-30 04:16:00 UTC (rev 260933)
+++ trunk/Tools/MiniBrowser/mac/MainMenu.xib	2020-04-30 04:16:04 UTC (rev 260934)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="15505" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
+<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="16085" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
     <dependencies>
-        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="15505"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="16085"/>
     </dependencies>
     <objects>
         <customObject id="-2" userLabel="File's Owner" customClass="NSApplication">
@@ -799,6 +799,12 @@
                                     <action selector="removeReinsertWebView:" target="-1" id="551"/>
                                 </connections>
                             </menuItem>
+                            <menuItem title="Full Window Web View" id="UzK-hf-Ss0">
+                                <modifierMask key="keyEquivalentModifierMask"/>
+                                <connections>
+                                    <action selector="toggleFullWindowWebView:" target="-1" id="X6E-15-0lw"/>
+                                </connections>
+                            </menuItem>
                             <menuItem isSeparatorItem="YES" id="553"/>
                             <menuItem title="Dump Source To Console" id="566">
                                 <modifierMask key="keyEquivalentModifierMask"/>

Modified: trunk/Tools/MiniBrowser/mac/SettingsController.h (260933 => 260934)


--- trunk/Tools/MiniBrowser/mac/SettingsController.h	2020-04-30 04:16:00 UTC (rev 260933)
+++ trunk/Tools/MiniBrowser/mac/SettingsController.h	2020-04-30 04:16:04 UTC (rev 260934)
@@ -64,4 +64,6 @@
 @property (nonatomic, readonly) NSString *defaultURL;
 @property (nonatomic, readonly) NSString *customUserAgent;
 
+@property (nonatomic) BOOL webViewFillsWindow;
+
 @end

Modified: trunk/Tools/MiniBrowser/mac/SettingsController.m (260933 => 260934)


--- trunk/Tools/MiniBrowser/mac/SettingsController.m	2020-04-30 04:16:00 UTC (rev 260933)
+++ trunk/Tools/MiniBrowser/mac/SettingsController.m	2020-04-30 04:16:04 UTC (rev 260934)
@@ -45,6 +45,7 @@
 static NSString * const SimpleLineLayoutDebugBordersEnabledPreferenceKey = @"SimpleLineLayoutDebugBordersEnabled";
 static NSString * const TiledScrollingIndicatorVisiblePreferenceKey = @"TiledScrollingIndicatorVisible";
 static NSString * const ReserveSpaceForBannersPreferenceKey = @"ReserveSpaceForBanners";
+static NSString * const WebViewFillsWindowKey = @"WebViewFillsWindow";
 
 static NSString * const ResourceUsageOverlayVisiblePreferenceKey = @"ResourceUsageOverlayVisible";
 static NSString * const LoadsAllSiteIconsKey = @"LoadsAllSiteIcons";
@@ -103,6 +104,7 @@
         SubpixelAntialiasedLayerTextEnabledPreferenceKey,
         LargeImageAsyncDecodingEnabledPreferenceKey,
         AnimatedImageAsyncDecodingEnabledPreferenceKey,
+        WebViewFillsWindowKey,
     ];
     
     NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
@@ -625,6 +627,16 @@
     return [[NSUserDefaults standardUserDefaults] boolForKey:ReserveSpaceForBannersPreferenceKey];
 }
 
+- (BOOL)webViewFillsWindow
+{
+    return [[NSUserDefaults standardUserDefaults] boolForKey:WebViewFillsWindowKey];
+}
+
+- (void)setWebViewFillsWindow:(BOOL)fillsWindow
+{
+    return [[NSUserDefaults standardUserDefaults] setBool:fillsWindow forKey:WebViewFillsWindowKey];
+}
+
 - (BOOL)tiledScrollingIndicatorVisible
 {
     return [[NSUserDefaults standardUserDefaults] boolForKey:TiledScrollingIndicatorVisiblePreferenceKey];

Modified: trunk/Tools/MiniBrowser/mac/WK1BrowserWindowController.m (260933 => 260934)


--- trunk/Tools/MiniBrowser/mac/WK1BrowserWindowController.m	2020-04-30 04:16:00 UTC (rev 260933)
+++ trunk/Tools/MiniBrowser/mac/WK1BrowserWindowController.m	2020-04-30 04:16:04 UTC (rev 260934)
@@ -166,6 +166,8 @@
         [menuItem setTitle:[_webView isHidden] ? @"Show Web View" : @"Hide Web View"];
     else if (action == @selector(removeReinsertWebView:))
         [menuItem setTitle:[_webView window] ? @"Remove Web View" : @"Insert Web View"];
+    else if (action == @selector(toggleFullWindowWebView:))
+        [menuItem setTitle:[self webViewFillsWindow] ? @"Inset Web View" : @"Fit Web View to Window"];
     else if (action == @selector(toggleZoomMode:))
         [menuItem setState:_zoomTextOnly ? NSControlStateValueOn : NSControlStateValueOff];
     else if (action == @selector(toggleEditable:))
@@ -335,6 +337,8 @@
 
     _webView._useSystemAppearance = settings.useSystemAppearance;
 
+    [self setWebViewFillsWindow:settings.webViewFillsWindow];
+
     BOOL useTransparentWindows = settings.useTransparentWindows;
     if (useTransparentWindows != !self.window.isOpaque) {
         [self.window setOpaque:!useTransparentWindows];

Modified: trunk/Tools/MiniBrowser/mac/WK2BrowserWindowController.m (260933 => 260934)


--- trunk/Tools/MiniBrowser/mac/WK2BrowserWindowController.m	2020-04-30 04:16:00 UTC (rev 260933)
+++ trunk/Tools/MiniBrowser/mac/WK2BrowserWindowController.m	2020-04-30 04:16:04 UTC (rev 260934)
@@ -253,6 +253,8 @@
         [menuItem setTitle:[_webView isHidden] ? @"Show Web View" : @"Hide Web View"];
     else if (action == @selector(removeReinsertWebView:))
         [menuItem setTitle:[_webView window] ? @"Remove Web View" : @"Insert Web View"];
+    else if (action == @selector(toggleFullWindowWebView:))
+        [menuItem setTitle:[self webViewFillsWindow] ? @"Inset Web View" : @"Fit Web View to Window"];
     else if (action == @selector(toggleZoomMode:))
         [menuItem setState:_zoomTextOnly ? NSControlStateValueOn : NSControlStateValueOff];
     else if (action == @selector(toggleEditable:))
@@ -463,6 +465,8 @@
 
     _webView.configuration.websiteDataStore._resourceLoadStatisticsEnabled = settings.resourceLoadStatisticsEnabled;
 
+    [self setWebViewFillsWindow:settings.webViewFillsWindow];
+
     BOOL useTransparentWindows = settings.useTransparentWindows;
     if (useTransparentWindows != !_webView._drawsBackground) {
         [self.window setOpaque:!useTransparentWindows];
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to