browser(webkit): trim down mac embedder (#1130)

This commit is contained in:
Pavel Feldman 2020-02-26 12:57:23 -08:00 коммит произвёл GitHub
Родитель 672f3f9960
Коммит b8c6069853
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23
2 изменённых файлов: 27 добавлений и 157 удалений

Просмотреть файл

@ -1 +1 @@
1159
1160

Просмотреть файл

@ -13661,10 +13661,10 @@ index 0000000000000000000000000000000000000000..00fb6b0006c743091a8bbf8edb18b211
+</Scheme>
diff --git a/Tools/Playwright/mac/AppDelegate.h b/Tools/Playwright/mac/AppDelegate.h
new file mode 100644
index 0000000000000000000000000000000000000000..d98c51764861371a35e78a8888bb6e81522951f4
index 0000000000000000000000000000000000000000..86e7b0c64df5fccdd66b87eecd995e0a10d57b83
--- /dev/null
+++ b/Tools/Playwright/mac/AppDelegate.h
@@ -0,0 +1,56 @@
@@ -0,0 +1,53 @@
+/*
+ * Copyright (C) 2010 Apple Inc. All rights reserved.
+ *
@ -13711,9 +13711,6 @@ index 0000000000000000000000000000000000000000..d98c51764861371a35e78a8888bb6e81
+
+- (void)browserWindowWillClose:(NSWindow *)window;
+
+@property (readonly, nonatomic) WKUserContentController *userContentContoller;
+@property (readonly, nonatomic) WKPreferences *defaultPreferences;
+
+@end
+
+@interface NSApplication (PlaywrightApplicationExtensions)
@ -13723,10 +13720,10 @@ index 0000000000000000000000000000000000000000..d98c51764861371a35e78a8888bb6e81
+@end
diff --git a/Tools/Playwright/mac/AppDelegate.m b/Tools/Playwright/mac/AppDelegate.m
new file mode 100644
index 0000000000000000000000000000000000000000..6d6c3a8c8e56e740ed37149e61f9daf58854a6c2
index 0000000000000000000000000000000000000000..f6157600282944225a1e18b4aaa3b6d34ade5be9
--- /dev/null
+++ b/Tools/Playwright/mac/AppDelegate.m
@@ -0,0 +1,492 @@
@@ -0,0 +1,398 @@
+/*
+ * Copyright (C) 2010-2016 Apple Inc. All rights reserved.
+ *
@ -13768,13 +13765,6 @@ index 0000000000000000000000000000000000000000..6d6c3a8c8e56e740ed37149e61f9daf5
+#import <WebKit/_WKProcessPoolConfiguration.h>
+#import <WebKit/_WKWebsiteDataStoreConfiguration.h>
+
+enum {
+ WebKit1NewWindowTag = 1,
+ WebKit2NewWindowTag = 2,
+ WebKit1NewEditorTag = 3,
+ WebKit2NewEditorTag = 4
+};
+
+@implementation NSApplication (PlaywrightApplicationExtensions)
+
+- (BrowserAppDelegate *)browserAppDelegate
@ -13922,11 +13912,6 @@ index 0000000000000000000000000000000000000000..6d6c3a8c8e56e740ed37149e61f9daf5
+ return configuration;
+}
+
+- (WKPreferences *)defaultPreferences
+{
+ return self.defaultConfiguration.preferences;
+}
+
+- (BrowserWindowController *)createBrowserWindowController:(id)sender
+{
+ if (_headless)
@ -13939,33 +13924,6 @@ index 0000000000000000000000000000000000000000..6d6c3a8c8e56e740ed37149e61f9daf5
+ return controller;
+}
+
+- (IBAction)newWindow:(id)sender
+{
+ BrowserWindowController *controller = [self createBrowserWindowController:sender];
+ if (!controller)
+ return;
+
+ [[controller window] makeKeyAndOrderFront:sender];
+ [controller loadURLString:@"about:blank"];
+}
+
+- (IBAction)newPrivateWindow:(id)sender
+{
+ if (_headless)
+ return;
+
+ WKWebViewConfiguration *privateConfiguraton = [self.defaultConfiguration copy];
+ privateConfiguraton.websiteDataStore = [WKWebsiteDataStore nonPersistentDataStore];
+
+ BrowserWindowController *controller = [[BrowserWindowController alloc] initWithConfiguration:privateConfiguraton];
+ [privateConfiguraton release];
+
+ [[controller window] makeKeyAndOrderFront:sender];
+ [_browserWindowControllers addObject:controller];
+
+ [controller loadURLString:@"about:blank"];
+}
+
+- (void)browserWindowWillClose:(NSWindow *)window
+{
+ [_browserWindowControllers removeObject:window.windowController];
@ -13973,19 +13931,13 @@ index 0000000000000000000000000000000000000000..6d6c3a8c8e56e740ed37149e61f9daf5
+
+- (void)applicationDidFinishLaunching:(NSNotification *)aNotification
+{
+ if (_noStartupWindow) {
+ _initialURL = nil;
+ return;
+ }
+ if (!_headless)
+ [self _updateNewWindowKeyEquivalents];
+
+ if (_headless) {
+ [self createNewPage:0];
+ if (_noStartupWindow)
+ return;
+ }
+
+ [self _updateNewWindowKeyEquivalents];
+ if (!_initialURL)
+ [self newWindow:self];
+ [self createNewPage:0];
+ _initialURL = nil;
+}
+
@ -14005,49 +13957,6 @@ index 0000000000000000000000000000000000000000..6d6c3a8c8e56e740ed37149e61f9daf5
+ return nil;
+}
+
+- (BOOL)application:(NSApplication *)theApplication openFile:(NSString *)filename
+{
+ BrowserWindowController *controller = [self createBrowserWindowController:nil];
+ if (!controller)
+ return NO;
+
+ [controller.window makeKeyAndOrderFront:self];
+ [controller loadURLString:_initialURL ? _initialURL : [NSURL fileURLWithPath:filename].absoluteString];
+ return YES;
+}
+
+- (IBAction)openDocument:(id)sender
+{
+ if (_headless)
+ return;
+
+ BrowserWindowController *browserWindowController = [self frontmostBrowserWindowController];
+
+ if (browserWindowController) {
+ NSOpenPanel *openPanel = [[NSOpenPanel openPanel] retain];
+ [openPanel beginSheetModalForWindow:browserWindowController.window completionHandler:^(NSInteger result) {
+ if (result != NSModalResponseOK)
+ return;
+
+ NSURL *url = [openPanel.URLs objectAtIndex:0];
+ [browserWindowController loadURLString:[url absoluteString]];
+ }];
+ return;
+ }
+
+ NSOpenPanel *openPanel = [NSOpenPanel openPanel];
+ [openPanel beginWithCompletionHandler:^(NSInteger result) {
+ if (result != NSModalResponseOK)
+ return;
+
+ BrowserWindowController *controller = [self createBrowserWindowController:nil];
+ [controller.window makeKeyAndOrderFront:self];
+
+ NSURL *url = [openPanel.URLs objectAtIndex:0];
+ [controller loadURLString:[url absoluteString]];
+ }];
+}
+
+- (void)_updateNewWindowKeyEquivalents
+{
+ NSString *normalWindowEquivalent = @"n";
@ -14055,11 +13964,6 @@ index 0000000000000000000000000000000000000000..6d6c3a8c8e56e740ed37149e61f9daf5
+ _newWebKit2WindowItem.keyEquivalent = normalWindowEquivalent;
+}
+
+- (WKUserContentController *)userContentContoller
+{
+ return self.defaultConfiguration.userContentController;
+}
+
+#pragma mark WKBrowserInspectorDelegate
+
+- (WKWebViewConfiguration *) sessionConfiguration:(uint64_t)sessionID
@ -14077,20 +13981,26 @@ index 0000000000000000000000000000000000000000..6d6c3a8c8e56e740ed37149e61f9daf5
+
+- (WKWebView *)createNewPage:(uint64_t)sessionID
+{
+ if (_headless)
+ return [self createHeadlessPage:sessionID];
+
+ NSString* urlString = _initialURL ? _initialURL : @"about:blank";
+ WKWebViewConfiguration *configuration = [self sessionConfiguration:sessionID];
+ if (_headless)
+ return [self createHeadlessPage:configuration withURL:urlString];
+ return [self createHeadfulPage:configuration withURL:urlString];
+}
+
+- (WKWebView *)createHeadfulPage:(WKWebViewConfiguration *)configuration withURL:(NSString*)urlString
+{
+
+ BrowserWindowController *controller = [[[BrowserWindowController alloc] initWithConfiguration:configuration] autorelease];
+ if (!controller)
+ return nil;
+ [[controller window] makeKeyAndOrderFront:nil];
+ [_browserWindowControllers addObject:controller];
+ [controller loadURLString:@"about:blank"];
+ [controller loadURLString:urlString];
+ return [controller webView];
+}
+
+- (WKWebView *)createHeadlessWebView:(WKWebViewConfiguration *)configuration forPopup:(BOOL)popup
+- (WKWebView *)createHeadlessPage:(WKWebViewConfiguration *)configuration withURL:(NSString*)urlString
+{
+ NSRect rect = NSMakeRect(0, 0, 1024, 768);
+ NSScreen *firstScreen = [[NSScreen screens] objectAtIndex:0];
@ -14104,22 +14014,15 @@ index 0000000000000000000000000000000000000000..6d6c3a8c8e56e740ed37149e61f9daf5
+
+ webView.autoresizingMask = NSViewWidthSizable | NSViewHeightSizable;
+ [window.contentView addSubview:webView];
+ if (!popup) {
+ NSURL *url = [NSURL _webkit_URLWithUserTypedString:_initialURL ? _initialURL : @"about:blank"];
+ _initialURL = nil;
+ [webView loadRequest:[NSURLRequest requestWithURL:url]];
+ if (urlString) {
+ NSURL *url = [NSURL _webkit_URLWithUserTypedString:urlString];
+ [webView loadRequest:[NSURLRequest requestWithURL:url]];
+ }
+ [_headlessWindows addObject:window];
+ webView.UIDelegate = self;
+ return [webView autorelease];
+}
+
+- (WKWebView *)createHeadlessPage:(uint64_t)sessionID
+{
+ WKWebViewConfiguration *configuration = [self sessionConfiguration:sessionID];
+ return [self createHeadlessWebView:configuration forPopup:NO];
+}
+
+- (_WKBrowserContext *)createBrowserContext
+{
+ _WKBrowserContext *browserContext = [[_WKBrowserContext alloc] init];
@ -14215,7 +14118,7 @@ index 0000000000000000000000000000000000000000..6d6c3a8c8e56e740ed37149e61f9daf5
+
+- (nullable WKWebView *)webView:(WKWebView *)webView createWebViewWithConfiguration:(WKWebViewConfiguration *)configuration forNavigationAction:(WKNavigationAction *)navigationAction windowFeatures:(WKWindowFeatures *)windowFeatures
+{
+ return [self createHeadlessWebView:configuration forPopup:YES];
+ return [self createHeadlessPage:configuration withURL:nil];
+}
+
+@end
@ -15377,10 +15280,10 @@ index 0000000000000000000000000000000000000000..4ed50c40f2f0dfd0ddf7c546b3451ab4
+</plist>
diff --git a/Tools/Playwright/mac/MainMenu.xib b/Tools/Playwright/mac/MainMenu.xib
new file mode 100644
index 0000000000000000000000000000000000000000..a291f32251271200132b8eb08d513f6936e5a0a5
index 0000000000000000000000000000000000000000..b16d639a1ad18354e058c613987d846acd70b361
--- /dev/null
+++ b/Tools/Playwright/mac/MainMenu.xib
@@ -0,0 +1,366 @@
@@ -0,0 +1,333 @@
+<?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">
+ <dependencies>
@ -15453,34 +15356,6 @@ index 0000000000000000000000000000000000000000..a291f32251271200132b8eb08d513f69
+ <action selector="openLocation:" target="-1" id="575"/>
+ </connections>
+ </menuItem>
+ <menuItem title="New Window" tag="2" keyEquivalent="n" id="571">
+ <modifierMask key="keyEquivalentModifierMask" option="YES" command="YES"/>
+ <connections>
+ <action selector="newWindow:" target="-1" id="572"/>
+ </connections>
+ </menuItem>
+ <menuItem title="New Private Window" tag="2" id="Zqs-AO-XAX">
+ <modifierMask key="keyEquivalentModifierMask"/>
+ <connections>
+ <action selector="newPrivateWindow:" target="-1" id="mf5-zi-a5R"/>
+ </connections>
+ </menuItem>
+ <menuItem title="Open…" keyEquivalent="o" id="72">
+ <connections>
+ <action selector="openDocument:" target="-1" id="374"/>
+ </connections>
+ </menuItem>
+ <menuItem title="Open Recent" id="124">
+ <menu key="submenu" title="Open Recent" systemMenu="recentDocuments" id="125">
+ <items>
+ <menuItem title="Clear Menu" id="126">
+ <connections>
+ <action selector="clearRecentDocuments:" target="-1" id="127"/>
+ </connections>
+ </menuItem>
+ </items>
+ </menu>
+ </menuItem>
+ <menuItem isSeparatorItem="YES" id="79">
+ <modifierMask key="keyEquivalentModifierMask" command="YES"/>
+ </menuItem>
@ -15739,12 +15614,7 @@ index 0000000000000000000000000000000000000000..a291f32251271200132b8eb08d513f69
+ </items>
+ <point key="canvasLocation" x="139" y="-50"/>
+ </menu>
+ <customObject id="494" customClass="BrowserAppDelegate">
+ <connections>
+ <outlet property="_newWebKit2WindowItem" destination="571" id="1Gv-mK-aul"/>
+ </connections>
+ </customObject>
+ <customObject id="420" customClass="NSFontManager"/>
+ <customObject id="494" customClass="BrowserAppDelegate"/>
+ </objects>
+</document>
diff --git a/Tools/Playwright/mac/Playwright_Prefix.pch b/Tools/Playwright/mac/Playwright_Prefix.pch