- Revision
- 186604
- Author
- timothy_hor...@apple.com
- Date
- 2015-07-09 12:31:09 -0700 (Thu, 09 Jul 2015)
Log Message
Add a way to set the default URL from Minibrowser UI
https://bugs.webkit.org/show_bug.cgi?id=146780
Reviewed by Simon Fraser.
* MiniBrowser/mac/AppDelegate.m:
(-[BrowserAppDelegate didChangeSettings]):
* MiniBrowser/mac/BrowserWindowController.h:
* MiniBrowser/mac/BrowserWindowController.m:
(-[BrowserWindowController fetch:]):
(-[BrowserWindowController reload:]):
(-[BrowserWindowController forceRepaint:]):
(-[BrowserWindowController goBack:]):
(-[BrowserWindowController goForward:]):
(-[BrowserWindowController showHideWebView:]):
(-[BrowserWindowController removeReinsertWebView:]):
(-[BrowserWindowController zoomIn:]):
(-[BrowserWindowController zoomOut:]):
(-[BrowserWindowController resetZoom:]):
(-[BrowserWindowController canZoomIn]):
(-[BrowserWindowController canZoomOut]):
(-[BrowserWindowController canResetZoom]):
(-[BrowserWindowController toggleZoomMode:]):
(-[BrowserWindowController setScale:]):
(-[BrowserWindowController toggleShrinkToFit:]):
(-[BrowserWindowController dumpSourceToConsole:]):
(-[BrowserWindowController find:]):
(-[BrowserWindowController didChangeSettings]):
(-[BrowserWindowController currentURL]):
Get rid of the BrowserController protocol. It was a bad idea and confused
Interface Builder more than I thought possible.
* MiniBrowser/mac/SettingsController.m:
(-[SettingsController _populateMenu]):
(-[SettingsController setDefaultURLToCurrentURL:]):
If we have a BrowserWindowController, grab its URL and set the relevant default.
* MiniBrowser/mac/WK1BrowserWindowController.h:
* MiniBrowser/mac/WK1BrowserWindowController.m:
(-[WK1BrowserWindowController currentURL]):
* MiniBrowser/mac/WK2BrowserWindowController.h:
* MiniBrowser/mac/WK2BrowserWindowController.m:
(-[WK2BrowserWindowController currentURL]):
Retrieve the current URL from the WKView/WebView.
Modified Paths
Diff
Modified: trunk/Tools/ChangeLog (186603 => 186604)
--- trunk/Tools/ChangeLog 2015-07-09 19:30:25 UTC (rev 186603)
+++ trunk/Tools/ChangeLog 2015-07-09 19:31:09 UTC (rev 186604)
@@ -1,5 +1,52 @@
2015-07-09 Timothy Horton <timothy_hor...@apple.com>
+ Add a way to set the default URL from Minibrowser UI
+ https://bugs.webkit.org/show_bug.cgi?id=146780
+
+ Reviewed by Simon Fraser.
+
+ * MiniBrowser/mac/AppDelegate.m:
+ (-[BrowserAppDelegate didChangeSettings]):
+ * MiniBrowser/mac/BrowserWindowController.h:
+ * MiniBrowser/mac/BrowserWindowController.m:
+ (-[BrowserWindowController fetch:]):
+ (-[BrowserWindowController reload:]):
+ (-[BrowserWindowController forceRepaint:]):
+ (-[BrowserWindowController goBack:]):
+ (-[BrowserWindowController goForward:]):
+ (-[BrowserWindowController showHideWebView:]):
+ (-[BrowserWindowController removeReinsertWebView:]):
+ (-[BrowserWindowController zoomIn:]):
+ (-[BrowserWindowController zoomOut:]):
+ (-[BrowserWindowController resetZoom:]):
+ (-[BrowserWindowController canZoomIn]):
+ (-[BrowserWindowController canZoomOut]):
+ (-[BrowserWindowController canResetZoom]):
+ (-[BrowserWindowController toggleZoomMode:]):
+ (-[BrowserWindowController setScale:]):
+ (-[BrowserWindowController toggleShrinkToFit:]):
+ (-[BrowserWindowController dumpSourceToConsole:]):
+ (-[BrowserWindowController find:]):
+ (-[BrowserWindowController didChangeSettings]):
+ (-[BrowserWindowController currentURL]):
+ Get rid of the BrowserController protocol. It was a bad idea and confused
+ Interface Builder more than I thought possible.
+
+ * MiniBrowser/mac/SettingsController.m:
+ (-[SettingsController _populateMenu]):
+ (-[SettingsController setDefaultURLToCurrentURL:]):
+ If we have a BrowserWindowController, grab its URL and set the relevant default.
+
+ * MiniBrowser/mac/WK1BrowserWindowController.h:
+ * MiniBrowser/mac/WK1BrowserWindowController.m:
+ (-[WK1BrowserWindowController currentURL]):
+ * MiniBrowser/mac/WK2BrowserWindowController.h:
+ * MiniBrowser/mac/WK2BrowserWindowController.m:
+ (-[WK2BrowserWindowController currentURL]):
+ Retrieve the current URL from the WKView/WebView.
+
+2015-07-09 Timothy Horton <timothy_hor...@apple.com>
+
Increase MiniBrowser location bar maximum width
https://bugs.webkit.org/show_bug.cgi?id=146779
Modified: trunk/Tools/MiniBrowser/mac/AppDelegate.m (186603 => 186604)
--- trunk/Tools/MiniBrowser/mac/AppDelegate.m 2015-07-09 19:30:25 UTC (rev 186603)
+++ trunk/Tools/MiniBrowser/mac/AppDelegate.m 2015-07-09 19:31:09 UTC (rev 186604)
@@ -202,7 +202,7 @@
[self _updateNewWindowKeyEquivalents];
// Let all of the BrowserWindowControllers know that a setting changed, so they can attempt to dynamically update.
- for (BrowserWindowController<BrowserController> *browserWindowController in _browserWindowControllers)
+ for (BrowserWindowController *browserWindowController in _browserWindowControllers)
[browserWindowController didChangeSettings];
}
Modified: trunk/Tools/MiniBrowser/mac/BrowserWindowController.h (186603 => 186604)
--- trunk/Tools/MiniBrowser/mac/BrowserWindowController.h 2015-07-09 19:30:25 UTC (rev 186603)
+++ trunk/Tools/MiniBrowser/mac/BrowserWindowController.h 2015-07-09 19:31:09 UTC (rev 186604)
@@ -25,8 +25,28 @@
#import <Cocoa/Cocoa.h>
-@protocol BrowserController
+@interface BrowserWindowController : NSWindowController {
+ IBOutlet NSProgressIndicator *progressIndicator;
+ IBOutlet NSButton *reloadButton;
+ IBOutlet NSButton *backButton;
+ IBOutlet NSButton *forwardButton;
+ IBOutlet NSToolbar *toolbar;
+ IBOutlet NSTextField *urlText;
+ IBOutlet NSView *containerView;
+ IBOutlet NSButton *toggleUseShrinkToFitButton;
+
+ IBOutlet NSWindow *findPanelWindow;
+ BOOL _zoomTextOnly;
+}
+
+- (void)loadURLString:(NSString *)urlString;
+- (NSString *)addProtocolIfNecessary:(NSString *)address;
+
+- (void)applicationTerminating;
+
+- (IBAction)openLocation:(id)sender;
+
- (IBAction)fetch:(id)sender;
- (IBAction)reload:(id)sender;
- (IBAction)forceRepaint:(id)sender;
@@ -54,29 +74,7 @@
- (void)didChangeSettings;
-@end
+- (NSURL *)currentURL;
-@interface BrowserWindowController : NSWindowController {
- IBOutlet NSProgressIndicator *progressIndicator;
- IBOutlet NSButton *reloadButton;
- IBOutlet NSButton *backButton;
- IBOutlet NSButton *forwardButton;
- IBOutlet NSToolbar *toolbar;
- IBOutlet NSTextField *urlText;
- IBOutlet NSView *containerView;
- IBOutlet NSButton *toggleUseShrinkToFitButton;
-
- IBOutlet NSWindow *findPanelWindow;
-
- BOOL _zoomTextOnly;
-}
-
-- (void)loadURLString:(NSString *)urlString;
-- (NSString *)addProtocolIfNecessary:(NSString *)address;
-
-- (void)applicationTerminating;
-
-- (IBAction)openLocation:(id)sender;
-
@end
Modified: trunk/Tools/MiniBrowser/mac/BrowserWindowController.m (186603 => 186604)
--- trunk/Tools/MiniBrowser/mac/BrowserWindowController.m 2015-07-09 19:30:25 UTC (rev 186603)
+++ trunk/Tools/MiniBrowser/mac/BrowserWindowController.m 2015-07-09 19:31:09 UTC (rev 186604)
@@ -70,4 +70,108 @@
return [@"http://" stringByAppendingString:address];
}
+- (IBAction)fetch:(id)sender
+{
+ [self doesNotRecognizeSelector:_cmd];
+}
+
+- (IBAction)reload:(id)sender
+{
+ [self doesNotRecognizeSelector:_cmd];
+}
+
+- (IBAction)forceRepaint:(id)sender
+{
+ [self doesNotRecognizeSelector:_cmd];
+}
+
+- (IBAction)goBack:(id)sender
+{
+ [self doesNotRecognizeSelector:_cmd];
+}
+
+- (IBAction)goForward:(id)sender
+{
+ [self doesNotRecognizeSelector:_cmd];
+}
+
+- (IBAction)showHideWebView:(id)sender
+{
+ [self doesNotRecognizeSelector:_cmd];
+}
+
+- (IBAction)removeReinsertWebView:(id)sender
+{
+ [self doesNotRecognizeSelector:_cmd];
+}
+
+- (IBAction)zoomIn:(id)sender
+{
+ [self doesNotRecognizeSelector:_cmd];
+}
+
+- (IBAction)zoomOut:(id)sender
+{
+ [self doesNotRecognizeSelector:_cmd];
+}
+
+- (IBAction)resetZoom:(id)sender
+{
+ [self doesNotRecognizeSelector:_cmd];
+}
+
+- (BOOL)canZoomIn
+{
+ [self doesNotRecognizeSelector:_cmd];
+ return NO;
+}
+
+- (BOOL)canZoomOut
+{
+ [self doesNotRecognizeSelector:_cmd];
+ return NO;
+}
+
+- (BOOL)canResetZoom
+{
+ [self doesNotRecognizeSelector:_cmd];
+ return NO;
+}
+
+- (IBAction)toggleZoomMode:(id)sender
+{
+ [self doesNotRecognizeSelector:_cmd];
+}
+
+- (IBAction)setScale:(id)sender
+{
+ [self doesNotRecognizeSelector:_cmd];
+}
+
+- (IBAction)toggleShrinkToFit:(id)sender
+{
+ [self doesNotRecognizeSelector:_cmd];
+}
+
+- (IBAction)dumpSourceToConsole:(id)sender
+{
+ [self doesNotRecognizeSelector:_cmd];
+}
+
+- (IBAction)find:(id)sender
+{
+ [self doesNotRecognizeSelector:_cmd];
+}
+
+- (void)didChangeSettings
+{
+ [self doesNotRecognizeSelector:_cmd];
+}
+
+- (NSURL *)currentURL
+{
+ [self doesNotRecognizeSelector:_cmd];
+ return nil;
+}
+
@end
Modified: trunk/Tools/MiniBrowser/mac/SettingsController.m (186603 => 186604)
--- trunk/Tools/MiniBrowser/mac/SettingsController.m 2015-07-09 19:30:25 UTC (rev 186603)
+++ trunk/Tools/MiniBrowser/mac/SettingsController.m 2015-07-09 19:31:09 UTC (rev 186604)
@@ -98,6 +98,7 @@
_menu = [[NSMenu alloc] initWithTitle:@"Settings"];
[self _addItemWithTitle:@"Use WebKit2 By Default" action:@selector(toggleUseWebKit2ByDefault:) indented:NO];
+ [self _addItemWithTitle:@"Set Default URL to Current URL" action:@selector(setDefaultURLToCurrentURL:) indented:NO];
[_menu addItem:[NSMenuItem separatorItem]];
@@ -329,4 +330,16 @@
return defaultURL;
}
+- (void)setDefaultURLToCurrentURL:(id)sender
+{
+ NSWindowController *windowController = [[NSApp keyWindow] windowController];
+ NSString *customDefaultURL = nil;
+
+ if ([windowController isKindOfClass:[BrowserWindowController class]])
+ customDefaultURL = [[(BrowserWindowController *)windowController currentURL] absoluteString];
+
+ if (customDefaultURL)
+ [[NSUserDefaults standardUserDefaults] setObject:customDefaultURL forKey:DefaultURLPreferenceKey];
+}
+
@end
Modified: trunk/Tools/MiniBrowser/mac/WK1BrowserWindowController.h (186603 => 186604)
--- trunk/Tools/MiniBrowser/mac/WK1BrowserWindowController.h 2015-07-09 19:30:25 UTC (rev 186603)
+++ trunk/Tools/MiniBrowser/mac/WK1BrowserWindowController.h 2015-07-09 19:31:09 UTC (rev 186604)
@@ -27,7 +27,7 @@
@class WebView;
-@interface WK1BrowserWindowController : BrowserWindowController<BrowserController> {
+@interface WK1BrowserWindowController : BrowserWindowController {
WebView *_webView;
}
Modified: trunk/Tools/MiniBrowser/mac/WK1BrowserWindowController.m (186603 => 186604)
--- trunk/Tools/MiniBrowser/mac/WK1BrowserWindowController.m 2015-07-09 19:30:25 UTC (rev 186603)
+++ trunk/Tools/MiniBrowser/mac/WK1BrowserWindowController.m 2015-07-09 19:31:09 UTC (rev 186604)
@@ -244,6 +244,11 @@
{
}
+- (NSURL *)currentURL
+{
+ return _webView.mainFrame.dataSource.request.URL;
+}
+
- (void)didChangeSettings
{
SettingsController *settings = [SettingsController shared];
Modified: trunk/Tools/MiniBrowser/mac/WK2BrowserWindowController.h (186603 => 186604)
--- trunk/Tools/MiniBrowser/mac/WK2BrowserWindowController.h 2015-07-09 19:30:25 UTC (rev 186603)
+++ trunk/Tools/MiniBrowser/mac/WK2BrowserWindowController.h 2015-07-09 19:31:09 UTC (rev 186604)
@@ -27,7 +27,7 @@
#if WK_API_ENABLED
-@interface WK2BrowserWindowController : BrowserWindowController <BrowserController>
+@interface WK2BrowserWindowController : BrowserWindowController
- (instancetype)initWithConfiguration:(WKWebViewConfiguration *)configuration;
Modified: trunk/Tools/MiniBrowser/mac/WK2BrowserWindowController.m (186603 => 186604)
--- trunk/Tools/MiniBrowser/mac/WK2BrowserWindowController.m 2015-07-09 19:30:25 UTC (rev 186603)
+++ trunk/Tools/MiniBrowser/mac/WK2BrowserWindowController.m 2015-07-09 19:31:09 UTC (rev 186604)
@@ -254,6 +254,11 @@
{
}
+- (NSURL *)currentURL
+{
+ return _webView.URL;
+}
+
- (BOOL)validateUserInterfaceItem:(id <NSValidatedUserInterfaceItem>)item
{
SEL action = ""