Title: [182476] trunk/Tools
Revision
182476
Author
achristen...@apple.com
Date
2015-04-07 10:07:22 -0700 (Tue, 07 Apr 2015)

Log Message

Use content extensions in MiniBrowser.
https://bugs.webkit.org/show_bug.cgi?id=143446

Patch by Sam Weinig <s...@webkit.org> on 2015-04-06
Reviewed by Alex Christensen.

* MiniBrowser/MiniBrowser.xcodeproj/project.pbxproj:
* MiniBrowser/mac/AppDelegate.h:
* MiniBrowser/mac/AppDelegate.m:
(-[BrowserAppDelegate init]):
(-[BrowserAppDelegate showExtensionsManager:]):
(-[BrowserAppDelegate userContentContoller]):
* MiniBrowser/mac/ExtensionManagerWindowController.h: Added.
* MiniBrowser/mac/ExtensionManagerWindowController.m: Added.
(-[ExtensionManagerWindowController init]):
(-[ExtensionManagerWindowController windowDidLoad]):
(-[ExtensionManagerWindowController add:]):
(-[ExtensionManagerWindowController remove:]):
* MiniBrowser/mac/ExtensionManagerWindowController.xib: Added.
* MiniBrowser/mac/MainMenu.xib:

Modified Paths

Added Paths

Diff

Modified: trunk/Tools/ChangeLog (182475 => 182476)


--- trunk/Tools/ChangeLog	2015-04-07 16:32:23 UTC (rev 182475)
+++ trunk/Tools/ChangeLog	2015-04-07 17:07:22 UTC (rev 182476)
@@ -1,3 +1,25 @@
+2015-04-06  Sam Weinig  <s...@webkit.org>
+
+        Use content extensions in MiniBrowser.
+        https://bugs.webkit.org/show_bug.cgi?id=143446
+
+        Reviewed by Alex Christensen.
+
+        * MiniBrowser/MiniBrowser.xcodeproj/project.pbxproj:
+        * MiniBrowser/mac/AppDelegate.h:
+        * MiniBrowser/mac/AppDelegate.m:
+        (-[BrowserAppDelegate init]):
+        (-[BrowserAppDelegate showExtensionsManager:]):
+        (-[BrowserAppDelegate userContentContoller]):
+        * MiniBrowser/mac/ExtensionManagerWindowController.h: Added.
+        * MiniBrowser/mac/ExtensionManagerWindowController.m: Added.
+        (-[ExtensionManagerWindowController init]):
+        (-[ExtensionManagerWindowController windowDidLoad]):
+        (-[ExtensionManagerWindowController add:]):
+        (-[ExtensionManagerWindowController remove:]):
+        * MiniBrowser/mac/ExtensionManagerWindowController.xib: Added.
+        * MiniBrowser/mac/MainMenu.xib:
+
 2015-04-07  Youenn Fablet  <youenn.fab...@crf.canon.fr>
 
         web-platform-tests server should retrieve the modules file relatively to its docroot path

Modified: trunk/Tools/MiniBrowser/MiniBrowser.xcodeproj/project.pbxproj (182475 => 182476)


--- trunk/Tools/MiniBrowser/MiniBrowser.xcodeproj/project.pbxproj	2015-04-07 16:32:23 UTC (rev 182475)
+++ trunk/Tools/MiniBrowser/MiniBrowser.xcodeproj/project.pbxproj	2015-04-07 17:07:22 UTC (rev 182476)
@@ -16,6 +16,8 @@
 		256AC3DA0F4B6AC300CF3369 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 256AC3D90F4B6AC300CF3369 /* AppDelegate.m */; };
 		2DC37343198B62D300EC33E9 /* SettingsController.m in Sources */ = {isa = PBXBuildFile; fileRef = 2DC37342198B62D300EC33E9 /* SettingsController.m */; };
 		51E244FA11EFCE07008228D1 /* MBToolbarItem.m in Sources */ = {isa = PBXBuildFile; fileRef = 51E244F911EFCE07008228D1 /* MBToolbarItem.m */; };
+		7CA379421AC381C10079DC37 /* ExtensionManagerWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = 7CA379401AC381C10079DC37 /* ExtensionManagerWindowController.m */; };
+		7CA379431AC381C10079DC37 /* ExtensionManagerWindowController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 7CA379411AC381C10079DC37 /* ExtensionManagerWindowController.xib */; };
 		8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; };
 		BC329487116A92E2008635D0 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = BC329486116A92E2008635D0 /* main.m */; };
 		BC329498116A941B008635D0 /* WK2BrowserWindowController.m in Sources */ = {isa = PBXBuildFile; fileRef = BC329497116A941B008635D0 /* WK2BrowserWindowController.m */; };
@@ -73,6 +75,9 @@
 		2DC37342198B62D300EC33E9 /* SettingsController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SettingsController.m; path = mac/SettingsController.m; sourceTree = "<group>"; };
 		51E244F811EFCE07008228D1 /* MBToolbarItem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MBToolbarItem.h; sourceTree = "<group>"; };
 		51E244F911EFCE07008228D1 /* MBToolbarItem.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MBToolbarItem.m; sourceTree = "<group>"; };
+		7CA3793F1AC381C10079DC37 /* ExtensionManagerWindowController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ExtensionManagerWindowController.h; path = mac/ExtensionManagerWindowController.h; sourceTree = "<group>"; };
+		7CA379401AC381C10079DC37 /* ExtensionManagerWindowController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ExtensionManagerWindowController.m; path = mac/ExtensionManagerWindowController.m; sourceTree = "<group>"; };
+		7CA379411AC381C10079DC37 /* ExtensionManagerWindowController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = ExtensionManagerWindowController.xib; path = mac/ExtensionManagerWindowController.xib; sourceTree = "<group>"; };
 		8D1107320486CEB800E47090 /* MiniBrowser.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = MiniBrowser.app; sourceTree = BUILT_PRODUCTS_DIR; };
 		BC329486116A92E2008635D0 /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = mac/main.m; sourceTree = "<group>"; };
 		BC329496116A941B008635D0 /* WK2BrowserWindowController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WK2BrowserWindowController.h; path = mac/WK2BrowserWindowController.h; sourceTree = "<group>"; };
@@ -114,16 +119,18 @@
 				256AC3D90F4B6AC300CF3369 /* AppDelegate.m */,
 				0FE6439F161FA8940059E3FF /* BrowserWindowController.h */,
 				0FE643A0161FA8940059E3FF /* BrowserWindowController.m */,
+				7CA3793F1AC381C10079DC37 /* ExtensionManagerWindowController.h */,
+				7CA379401AC381C10079DC37 /* ExtensionManagerWindowController.m */,
 				BC72B89A11E57E8A001EB4EA /* Info.plist */,
 				BC329486116A92E2008635D0 /* main.m */,
 				51E244F811EFCE07008228D1 /* MBToolbarItem.h */,
 				51E244F911EFCE07008228D1 /* MBToolbarItem.m */,
+				2DC37341198B62D300EC33E9 /* SettingsController.h */,
+				2DC37342198B62D300EC33E9 /* SettingsController.m */,
 				0FE643A2161FAC660059E3FF /* WK1BrowserWindowController.h */,
 				0FE643A3161FAC660059E3FF /* WK1BrowserWindowController.m */,
 				BC329496116A941B008635D0 /* WK2BrowserWindowController.h */,
 				BC329497116A941B008635D0 /* WK2BrowserWindowController.m */,
-				2DC37341198B62D300EC33E9 /* SettingsController.h */,
-				2DC37342198B62D300EC33E9 /* SettingsController.m */,
 			);
 			name = MiniBrowser;
 			sourceTree = "<group>";
@@ -187,6 +194,7 @@
 			children = (
 				BC3294A2116A9852008635D0 /* BrowserWindow.xib */,
 				1DDD58150DA1D0A300B32029 /* MainMenu.xib */,
+				7CA379411AC381C10079DC37 /* ExtensionManagerWindowController.xib */,
 			);
 			name = Resources;
 			sourceTree = "<group>";
@@ -303,6 +311,7 @@
 			buildActionMask = 2147483647;
 			files = (
 				BC72B89611E57E0F001EB4EA /* BrowserWindow.xib in Resources */,
+				7CA379431AC381C10079DC37 /* ExtensionManagerWindowController.xib in Resources */,
 				BC72B89511E57E07001EB4EA /* MainMenu.xib in Resources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
@@ -325,6 +334,7 @@
 				256AC3DA0F4B6AC300CF3369 /* AppDelegate.m in Sources */,
 				0FE643A1161FA8940059E3FF /* BrowserWindowController.m in Sources */,
 				2DC37343198B62D300EC33E9 /* SettingsController.m in Sources */,
+				7CA379421AC381C10079DC37 /* ExtensionManagerWindowController.m in Sources */,
 				BC329487116A92E2008635D0 /* main.m in Sources */,
 				51E244FA11EFCE07008228D1 /* MBToolbarItem.m in Sources */,
 				0FE643A4161FAC660059E3FF /* WK1BrowserWindowController.m in Sources */,

Modified: trunk/Tools/MiniBrowser/mac/AppDelegate.h (182475 => 182476)


--- trunk/Tools/MiniBrowser/mac/AppDelegate.h	2015-04-07 16:32:23 UTC (rev 182475)
+++ trunk/Tools/MiniBrowser/mac/AppDelegate.h	2015-04-07 17:07:22 UTC (rev 182476)
@@ -23,8 +23,13 @@
  * THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+@class ExtensionManagerWindowController;
+
 @interface BrowserAppDelegate : NSObject <NSApplicationDelegate> {
     NSMutableSet *_browserWindowControllers;
+#if WK_API_ENABLED
+    ExtensionManagerWindowController *_extensionManagerWindowController;
+#endif
 
     IBOutlet NSMenuItem *_newWebKit1WindowItem;
     IBOutlet NSMenuItem *_newWebKit2WindowItem;
@@ -34,4 +39,8 @@
 
 - (void)didChangeSettings;
 
+#if WK_API_ENABLED
+@property (readonly) WKUserContentController *userContentContoller;
+#endif
+
 @end

Modified: trunk/Tools/MiniBrowser/mac/AppDelegate.m (182475 => 182476)


--- trunk/Tools/MiniBrowser/mac/AppDelegate.m	2015-04-07 16:32:23 UTC (rev 182475)
+++ trunk/Tools/MiniBrowser/mac/AppDelegate.m	2015-04-07 17:07:22 UTC (rev 182476)
@@ -25,14 +25,17 @@
 
 #import "AppDelegate.h"
 
+#import "ExtensionManagerWindowController.h"
 #import "SettingsController.h"
 #import "WK1BrowserWindowController.h"
 #import "WK2BrowserWindowController.h"
 #import <WebKit/WKPreferencesPrivate.h>
 #import <WebKit/WKProcessPoolPrivate.h>
+#import <WebKit/WKUserContentControllerPrivate.h>
 #import <WebKit/WKWebViewConfigurationPrivate.h>
 #import <WebKit/WebKit.h>
 #import <WebKit/_WKProcessPoolConfiguration.h>
+#import <WebKit/_WKUserContentExtensionStore.h>
 #import <WebKit/_WKWebsiteDataStore.h>
 
 enum {
@@ -47,6 +50,9 @@
     self = [super init];
     if (self) {
         _browserWindowControllers = [[NSMutableSet alloc] init];
+#if WK_API_ENABLED
+        _extensionManagerWindowController = [[ExtensionManagerWindowController alloc] init];
+#endif
     }
 
     return self;
@@ -211,4 +217,18 @@
     }
 }
 
+- (IBAction)showExtensionsManager:(id)sender
+{
+#if WK_API_ENABLED
+    [_extensionManagerWindowController showWindow:sender];
+#endif
+}
+
+#if WK_API_ENABLED
+- (WKUserContentController *)userContentContoller
+{
+    return defaultConfiguration().userContentController;
+}
+#endif
+
 @end

Added: trunk/Tools/MiniBrowser/mac/ExtensionManagerWindowController.h (0 => 182476)


--- trunk/Tools/MiniBrowser/mac/ExtensionManagerWindowController.h	                        (rev 0)
+++ trunk/Tools/MiniBrowser/mac/ExtensionManagerWindowController.h	2015-04-07 17:07:22 UTC (rev 182476)
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2015 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#import <Cocoa/Cocoa.h>
+
+#if WK_API_ENABLED
+
+@interface ExtensionManagerWindowController : NSWindowController {
+    IBOutlet NSArrayController *arrayController;
+}
+
+@end
+
+#endif

Added: trunk/Tools/MiniBrowser/mac/ExtensionManagerWindowController.m (0 => 182476)


--- trunk/Tools/MiniBrowser/mac/ExtensionManagerWindowController.m	                        (rev 0)
+++ trunk/Tools/MiniBrowser/mac/ExtensionManagerWindowController.m	2015-04-07 17:07:22 UTC (rev 182476)
@@ -0,0 +1,143 @@
+/*
+ * Copyright (C) 2015 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#import "ExtensionManagerWindowController.h"
+
+#if WK_API_ENABLED
+
+#import "AppDelegate.h"
+#import <WebKit/WKUserContentControllerPrivate.h>
+#import <WebKit/_WKUserContentExtensionStore.h>
+
+@implementation ExtensionManagerWindowController
+
+- (instancetype)init
+{
+    self = [self initWithWindowNibName:@"ExtensionManagerWindowController"];
+    if (self) {
+        NSArray* installedContentExtensions = [[NSUserDefaults standardUserDefaults] arrayForKey:@"InstalledContentExtensions"];
+        if (installedContentExtensions) {
+            for (NSString *identifier in installedContentExtensions) {
+                [[_WKUserContentExtensionStore defaultStore] lookupContentExtensionForIdentifier:identifier completionHandler:^(_WKUserContentFilter *extension, NSError *error)
+                {
+                    if (error) {
+                        NSLog(@"Extension store got out of sync with system defaults.");
+                        return;
+                    }
+
+                    BrowserAppDelegate* appDelegate = (BrowserAppDelegate *)[[NSApplication sharedApplication] delegate];
+                    [appDelegate.userContentContoller _addUserContentFilter:extension];
+                }];
+            }
+                
+        }
+    }
+    return self;
+}
+
+- (void)windowDidLoad
+{
+    [super windowDidLoad];
+
+    NSArray* installedContentExtensions = [[NSUserDefaults standardUserDefaults] arrayForKey:@"InstalledContentExtensions"];
+    if (installedContentExtensions) {
+        for (NSString *extension in installedContentExtensions)
+            [arrayController addObject:extension];
+    }
+}
+
+- (IBAction)add:(id)sender
+{
+    NSOpenPanel *openPanel = [[NSOpenPanel openPanel] retain];
+    openPanel.allowedFileTypes = @[ @"public.json" ];
+    
+    [openPanel beginSheetModalForWindow:self.window completionHandler:^(NSInteger result)
+    {
+        if (result != NSFileHandlingPanelOKButton)
+            return;
+
+        NSURL *url = "" objectAtIndex:0];
+        NSString *identifier = url.lastPathComponent;
+        NSString *jsonString = [[NSString alloc] initWithContentsOfURL:url encoding:NSUTF8StringEncoding error:nil];
+
+        [[_WKUserContentExtensionStore defaultStore] compileContentExtensionForIdentifier:identifier encodedContentExtension:jsonString completionHandler:^(_WKUserContentFilter *extension, NSError *error)
+        {
+            
+            if (error) {
+                NSAlert *alert = [NSAlert alertWithError:error];
+                [alert runModal];
+                return;
+            }
+
+            NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
+
+            NSArray* installedContentExtensions = [defaults arrayForKey:@"InstalledContentExtensions"];
+            NSMutableArray *mutableInstalledContentExtensions;
+            if (installedContentExtensions)
+                mutableInstalledContentExtensions = [installedContentExtensions mutableCopy];
+            else
+                mutableInstalledContentExtensions = [[NSMutableArray alloc] init];
+
+            [mutableInstalledContentExtensions addObject:identifier];
+            [defaults setObject:mutableInstalledContentExtensions forKey:@"InstalledContentExtensions"];
+
+            [arrayController addObject:identifier];
+
+            BrowserAppDelegate* appDelegate = (BrowserAppDelegate *)[[NSApplication sharedApplication] delegate];
+            [appDelegate.userContentContoller _addUserContentFilter:extension];
+        }];
+    }];
+
+}
+
+- (IBAction)remove:(id)sender
+{
+    NSUInteger index = [arrayController selectionIndex];
+
+    NSString *identifierToRemove = arrayController.arrangedObjects[index];
+
+    [[_WKUserContentExtensionStore defaultStore] removeContentExtensionForIdentifier:identifierToRemove completionHandler:^(NSError *error)
+    {
+        if (error) {
+            NSAlert *alert = [NSAlert alertWithError:error];
+            [alert runModal];
+            return;
+        }
+
+        NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
+
+        NSMutableArray *installedContentExtensions = [[defaults arrayForKey:@"InstalledContentExtensions"] mutableCopy];
+        [installedContentExtensions removeObject:identifierToRemove];
+        [defaults setObject:installedContentExtensions forKey:@"InstalledContentExtensions"];
+
+        [arrayController removeObjectAtArrangedObjectIndex:index];
+        BrowserAppDelegate* appDelegate = (BrowserAppDelegate *)[[NSApplication sharedApplication] delegate];
+        [appDelegate.userContentContoller _removeUserContentFilter:identifierToRemove];
+    }];
+}
+
+@end
+
+#endif

Added: trunk/Tools/MiniBrowser/mac/ExtensionManagerWindowController.xib (0 => 182476)


--- trunk/Tools/MiniBrowser/mac/ExtensionManagerWindowController.xib	                        (rev 0)
+++ trunk/Tools/MiniBrowser/mac/ExtensionManagerWindowController.xib	2015-04-07 17:07:22 UTC (rev 182476)
@@ -0,0 +1,147 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="4514" systemVersion="13F1076" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
+    <dependencies>
+        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="4514"/>
+    </dependencies>
+    <objects>
+        <customObject id="-2" userLabel="File's Owner" customClass="ExtensionManagerWindowController">
+            <connections>
+                <outlet property="arrayController" destination="xeI-l9-8Xv" id="O8f-gY-5FH"/>
+                <outlet property="window" destination="F0z-JX-Cv5" id="gIp-Ho-8D9"/>
+            </connections>
+        </customObject>
+        <customObject id="-1" userLabel="First Responder" customClass="FirstResponder"/>
+        <customObject id="-3" userLabel="Application" customClass="NSObject"/>
+        <window title="Extensions Manager" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" _oneShot_="NO" releasedWhenClosed="NO" animationBehavior="default" id="F0z-JX-Cv5">
+            <windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES" resizable="YES" unifiedTitleAndToolbar="YES"/>
+            <windowPositionMask key="initialPositionMask" leftStrut="YES" rightStrut="YES" topStrut="YES" bottomStrut="YES"/>
+            <rect key="contentRect" x="196" y="240" width="480" height="270"/>
+            <rect key="screenRect" x="0.0" y="0.0" width="1440" height="878"/>
+            <view key="contentView" id="se5-gp-TjO">
+                <rect key="frame" x="0.0" y="0.0" width="480" height="270"/>
+                <autoresizingMask key="autoresizingMask"/>
+                <subviews>
+                    <scrollView autohidesScrollers="YES" horizontalLineScroll="19" horizontalPageScroll="10" verticalLineScroll="19" verticalPageScroll="10" usesPredominantAxisScrolling="NO" translatesAutoresizingMaskIntoConstraints="NO" id="3Ps-vx-3Rj">
+                        <rect key="frame" x="20" y="58" width="440" height="192"/>
+                        <clipView key="contentView" id="228-qF-Rc1">
+                            <rect key="frame" x="1" y="1" width="438" height="190"/>
+                            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                            <subviews>
+                                <tableView verticalHuggingPriority="750" allowsExpansionToolTips="YES" columnAutoresizingStyle="lastColumnOnly" columnReordering="NO" columnSelection="YES" columnResizing="NO" multipleSelection="NO" autosaveColumns="NO" rowSizeStyle="automatic" viewBased="YES" id="mmd-0v-4hR">
+                                    <rect key="frame" x="0.0" y="0.0" width="438" height="190"/>
+                                    <autoresizingMask key="autoresizingMask"/>
+                                    <size key="intercellSpacing" width="3" height="2"/>
+                                    <color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
+                                    <color key="gridColor" name="gridColor" catalog="System" colorSpace="catalog"/>
+                                    <tableColumns>
+                                        <tableColumn width="435" minWidth="40" maxWidth="1000" id="6PD-e9-GfD">
+                                            <tableHeaderCell key="headerCell" lineBreakMode="truncatingTail" borderStyle="border" alignment="left">
+                                                <font key="font" metaFont="smallSystem"/>
+                                                <color key="textColor" name="headerTextColor" catalog="System" colorSpace="catalog"/>
+                                                <color key="backgroundColor" name="headerColor" catalog="System" colorSpace="catalog"/>
+                                            </tableHeaderCell>
+                                            <textFieldCell key="dataCell" lineBreakMode="truncatingTail" selectable="YES" editable="YES" alignment="left" title="Text Cell" id="Sq0-um-maR">
+                                                <font key="font" metaFont="system"/>
+                                                <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
+                                                <color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
+                                            </textFieldCell>
+                                            <tableColumnResizingMask key="resizingMask" resizeWithTable="YES" userResizable="YES"/>
+                                            <prototypeCellViews>
+                                                <tableCellView id="R3S-7i-hkn">
+                                                    <rect key="frame" x="1" y="1" width="435" height="17"/>
+                                                    <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+                                                    <subviews>
+                                                        <textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" misplaced="YES" translatesAutoresizingMaskIntoConstraints="NO" id="DqA-Ee-O6f">
+                                                            <rect key="frame" x="0.0" y="0.0" width="434" height="17"/>
+                                                            <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Table View Cell" id="syf-BT-XBf">
+                                                                <font key="font" metaFont="system"/>
+                                                                <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
+                                                                <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
+                                                            </textFieldCell>
+                                                            <connections>
+                                                                <binding destination="R3S-7i-hkn" name="value" keyPath="objectValue" id="uwA-wN-TwE"/>
+                                                            </connections>
+                                                        </textField>
+                                                    </subviews>
+                                                    <constraints>
+                                                        <constraint firstAttribute="bottom" secondItem="DqA-Ee-O6f" secondAttribute="bottom" id="Eob-Am-Ity"/>
+                                                        <constraint firstItem="DqA-Ee-O6f" firstAttribute="leading" secondItem="R3S-7i-hkn" secondAttribute="leading" constant="2" id="acg-V8-jUr"/>
+                                                        <constraint firstAttribute="trailing" secondItem="DqA-Ee-O6f" secondAttribute="trailing" constant="2" id="gTj-qL-A7r"/>
+                                                        <constraint firstItem="DqA-Ee-O6f" firstAttribute="top" secondItem="R3S-7i-hkn" secondAttribute="top" id="lKF-M8-hn7"/>
+                                                    </constraints>
+                                                    <connections>
+                                                        <outlet property="textField" destination="DqA-Ee-O6f" id="cpI-Wh-atT"/>
+                                                    </connections>
+                                                </tableCellView>
+                                            </prototypeCellViews>
+                                        </tableColumn>
+                                    </tableColumns>
+                                    <connections>
+                                        <binding destination="xeI-l9-8Xv" name="content" keyPath="arrangedObjects" id="paH-6b-cxM"/>
+                                        <binding destination="xeI-l9-8Xv" name="selectionIndexes" keyPath="selectionIndexes" previousBinding="paH-6b-cxM" id="NDp-MB-3u8"/>
+                                    </connections>
+                                </tableView>
+                            </subviews>
+                            <color key="backgroundColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>
+                        </clipView>
+                        <scroller key="horizontalScroller" hidden="YES" verticalHuggingPriority="750" horizontal="YES" id="iTc-lE-Pk6">
+                            <rect key="frame" x="1" y="119" width="223" height="15"/>
+                            <autoresizingMask key="autoresizingMask"/>
+                        </scroller>
+                        <scroller key="verticalScroller" hidden="YES" verticalHuggingPriority="750" horizontal="NO" id="ak3-QY-AvJ">
+                            <rect key="frame" x="224" y="17" width="15" height="102"/>
+                            <autoresizingMask key="autoresizingMask"/>
+                        </scroller>
+                    </scrollView>
+                    <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="27H-8l-ZRr">
+                        <rect key="frame" x="20" y="21" width="21" height="21"/>
+                        <constraints>
+                            <constraint firstAttribute="width" constant="21" id="Kv9-Ra-5xj"/>
+                            <constraint firstAttribute="height" constant="19" id="Nmn-14-1ea"/>
+                        </constraints>
+                        <buttonCell key="cell" type="smallSquare" bezelStyle="smallSquare" image="NSAddTemplate" imagePosition="overlaps" alignment="center" lineBreakMode="truncatingTail" state="on" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="6T3-fu-laO">
+                            <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+                            <font key="font" metaFont="system"/>
+                        </buttonCell>
+                        <connections>
+                            <action selector="add:" target="-2" id="nIg-iE-xaG"/>
+                        </connections>
+                    </button>
+                    <button verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="i46-AU-g9W">
+                        <rect key="frame" x="40" y="21" width="21" height="21"/>
+                        <constraints>
+                            <constraint firstAttribute="width" constant="21" id="ECG-hI-EML"/>
+                            <constraint firstAttribute="height" constant="19" id="b3A-2I-fDc"/>
+                        </constraints>
+                        <buttonCell key="cell" type="smallSquare" bezelStyle="smallSquare" image="NSRemoveTemplate" imagePosition="overlaps" alignment="center" lineBreakMode="truncatingTail" state="on" borderStyle="border" imageScaling="proportionallyDown" inset="2" id="gfs-sY-cBN">
+                            <behavior key="behavior" pushIn="YES" lightByBackground="YES" lightByGray="YES"/>
+                            <font key="font" metaFont="system"/>
+                        </buttonCell>
+                        <connections>
+                            <action selector="remove:" target="-2" id="BOW-Fc-AGp"/>
+                            <binding destination="xeI-l9-8Xv" name="enabled" keyPath="canRemove" id="pp1-d7-6Gd"/>
+                        </connections>
+                    </button>
+                </subviews>
+                <constraints>
+                    <constraint firstAttribute="bottom" secondItem="3Ps-vx-3Rj" secondAttribute="bottom" constant="58" id="Nej-YX-BMe"/>
+                    <constraint firstItem="i46-AU-g9W" firstAttribute="leading" secondItem="se5-gp-TjO" secondAttribute="leading" constant="40" id="SQS-4J-NJE"/>
+                    <constraint firstAttribute="bottom" secondItem="i46-AU-g9W" secondAttribute="bottom" constant="22" id="Tri-yU-fA4"/>
+                    <constraint firstItem="27H-8l-ZRr" firstAttribute="leading" secondItem="se5-gp-TjO" secondAttribute="leading" constant="20" id="URC-fD-No6"/>
+                    <constraint firstItem="3Ps-vx-3Rj" firstAttribute="leading" secondItem="se5-gp-TjO" secondAttribute="leading" constant="20" id="Udm-Eg-Fmx"/>
+                    <constraint firstAttribute="bottom" secondItem="27H-8l-ZRr" secondAttribute="bottom" constant="22" id="gVG-YX-oeX"/>
+                    <constraint firstAttribute="trailing" secondItem="3Ps-vx-3Rj" secondAttribute="trailing" constant="20" id="ggD-nm-PDi"/>
+                    <constraint firstItem="3Ps-vx-3Rj" firstAttribute="top" secondItem="se5-gp-TjO" secondAttribute="top" constant="20" id="qiw-wC-igh"/>
+                </constraints>
+            </view>
+            <connections>
+                <outlet property="delegate" destination="-2" id="0bl-1N-AYu"/>
+            </connections>
+        </window>
+        <arrayController id="xeI-l9-8Xv"/>
+    </objects>
+    <resources>
+        <image name="NSAddTemplate" width="8" height="8"/>
+        <image name="NSRemoveTemplate" width="8" height="8"/>
+    </resources>
+</document>
\ No newline at end of file

Modified: trunk/Tools/MiniBrowser/mac/MainMenu.xib (182475 => 182476)


--- trunk/Tools/MiniBrowser/mac/MainMenu.xib	2015-04-07 16:32:23 UTC (rev 182475)
+++ trunk/Tools/MiniBrowser/mac/MainMenu.xib	2015-04-07 17:07:22 UTC (rev 182476)
@@ -475,6 +475,13 @@
                                     <action selector="fetchAndClearWebsiteData:" target="-1" id="R06-l2-tP0"/>
                                 </connections>
                             </menuItem>
+                            <menuItem isSeparatorItem="YES" id="uef-kb-r9n"/>
+                            <menuItem title="Show Extensions Manager" keyEquivalent="m" id="2f0-pH-KRx">
+                                <modifierMask key="keyEquivalentModifierMask" option="YES" command="YES"/>
+                                <connections>
+                                    <action selector="showExtensionsManager:" target="-1" id="iyL-17-sLo"/>
+                                </connections>
+                            </menuItem>
                         </items>
                     </menu>
                 </menuItem>
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to