summaryrefslogtreecommitdiffstats
path: root/Source/WebKit/mac/Panels
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebKit/mac/Panels')
-rw-r--r--Source/WebKit/mac/Panels/English.lproj/WebAuthenticationPanel.nib/designable.nib1726
-rw-r--r--Source/WebKit/mac/Panels/English.lproj/WebAuthenticationPanel.nib/keyedobjects.nibbin0 -> 10192 bytes
-rw-r--r--Source/WebKit/mac/Panels/WebAuthenticationPanel.h69
-rw-r--r--Source/WebKit/mac/Panels/WebAuthenticationPanel.m289
-rw-r--r--Source/WebKit/mac/Panels/WebPanelAuthenticationHandler.h45
-rw-r--r--Source/WebKit/mac/Panels/WebPanelAuthenticationHandler.m164
6 files changed, 2293 insertions, 0 deletions
diff --git a/Source/WebKit/mac/Panels/English.lproj/WebAuthenticationPanel.nib/designable.nib b/Source/WebKit/mac/Panels/English.lproj/WebAuthenticationPanel.nib/designable.nib
new file mode 100644
index 0000000..d102a89
--- /dev/null
+++ b/Source/WebKit/mac/Panels/English.lproj/WebAuthenticationPanel.nib/designable.nib
@@ -0,0 +1,1726 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<archive type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="7.10">
+ <data>
+ <int key="IBDocument.SystemTarget">1050</int>
+ <string key="IBDocument.SystemVersion">10J567</string>
+ <string key="IBDocument.InterfaceBuilderVersion">823</string>
+ <string key="IBDocument.AppKitVersion">1038.35</string>
+ <string key="IBDocument.HIToolboxVersion">462.00</string>
+ <object class="NSMutableDictionary" key="IBDocument.PluginVersions">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string key="NS.object.0">823</string>
+ </object>
+ <object class="NSMutableArray" key="IBDocument.EditedObjectIDs">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <integer value="6"/>
+ </object>
+ <object class="NSArray" key="IBDocument.PluginDependencies">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ </object>
+ <object class="NSMutableDictionary" key="IBDocument.Metadata">
+ <string key="NS.key.0">PluginDependencyRecalculationVersion</string>
+ <integer value="1" key="NS.object.0"/>
+ </object>
+ <object class="NSMutableArray" key="IBDocument.RootObjects" id="563121920">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSCustomObject" id="238662661">
+ <string key="NSClassName">WebAuthenticationPanel</string>
+ </object>
+ <object class="NSCustomObject" id="729335755">
+ <string key="NSClassName">FirstResponder</string>
+ </object>
+ <object class="NSCustomObject" id="239643893">
+ <string key="NSClassName">NSApplication</string>
+ </object>
+ <object class="NSWindowTemplate" id="118512579">
+ <int key="NSWindowStyleMask">1</int>
+ <int key="NSWindowBacking">2</int>
+ <string key="NSWindowRect">{{93, 97}, {424, 254}}</string>
+ <int key="NSWTFlags">1886912512</int>
+ <string key="NSWindowTitle">Log In</string>
+ <string key="NSWindowClass">NonBlockingPanel</string>
+ <object class="NSMutableString" key="NSViewClass">
+ <characters key="NS.bytes">View</characters>
+ </object>
+ <string key="NSWindowContentMaxSize">{1.79769e+308, 1.79769e+308}</string>
+ <object class="NSView" key="NSWindowView" id="327235052">
+ <reference key="NSNextResponder"/>
+ <int key="NSvFlags">256</int>
+ <object class="NSMutableArray" key="NSSubviews">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSTextField" id="705333610">
+ <reference key="NSNextResponder" ref="327235052"/>
+ <int key="NSvFlags">266</int>
+ <string key="NSFrame">{{101, 200}, {306, 34}}</string>
+ <reference key="NSSuperview" ref="327235052"/>
+ <int key="NSTag">1</int>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSTextFieldCell" key="NSCell" id="240004773">
+ <int key="NSCellFlags">69336577</int>
+ <int key="NSCellFlags2">4194304</int>
+ <string key="NSContents">To view this page, you must log in to this area on www.server.com:</string>
+ <object class="NSFont" key="NSSupport" id="897649771">
+ <string key="NSName">LucidaGrande</string>
+ <double key="NSSize">13</double>
+ <int key="NSfFlags">1044</int>
+ </object>
+ <reference key="NSControlView" ref="705333610"/>
+ <int key="NSTag">1</int>
+ <object class="NSColor" key="NSBackgroundColor" id="475108766">
+ <int key="NSColorSpace">6</int>
+ <string key="NSCatalogName">System</string>
+ <string key="NSColorName">controlColor</string>
+ <object class="NSColor" key="NSColor">
+ <int key="NSColorSpace">3</int>
+ <bytes key="NSWhite">MC42NjY2NjY2NjY3AA</bytes>
+ </object>
+ </object>
+ <object class="NSColor" key="NSTextColor" id="644083014">
+ <int key="NSColorSpace">6</int>
+ <string key="NSCatalogName">System</string>
+ <string key="NSColorName">controlTextColor</string>
+ <object class="NSColor" key="NSColor" id="170747205">
+ <int key="NSColorSpace">3</int>
+ <bytes key="NSWhite">MAA</bytes>
+ </object>
+ </object>
+ </object>
+ </object>
+ <object class="NSTextField" id="199018347">
+ <reference key="NSNextResponder" ref="327235052"/>
+ <int key="NSvFlags">290</int>
+ <string key="NSFrame">{{101, 147}, {306, 20}}</string>
+ <reference key="NSSuperview" ref="327235052"/>
+ <int key="NSTag">2</int>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSTextFieldCell" key="NSCell" id="213641065">
+ <int key="NSCellFlags">69336577</int>
+ <int key="NSCellFlags2">4194304</int>
+ <string key="NSContents">Your password will be sent unencrypted.</string>
+ <object class="NSFont" key="NSSupport">
+ <string key="NSName">LucidaGrande</string>
+ <double key="NSSize">11</double>
+ <int key="NSfFlags">3100</int>
+ </object>
+ <reference key="NSControlView" ref="199018347"/>
+ <int key="NSTag">2</int>
+ <reference key="NSBackgroundColor" ref="475108766"/>
+ <reference key="NSTextColor" ref="644083014"/>
+ </object>
+ </object>
+ <object class="NSButton" id="305175176">
+ <reference key="NSNextResponder" ref="327235052"/>
+ <int key="NSvFlags">289</int>
+ <string key="NSFrame">{{326, 12}, {84, 32}}</string>
+ <reference key="NSSuperview" ref="327235052"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSButtonCell" key="NSCell" id="568224179">
+ <int key="NSCellFlags">67239424</int>
+ <int key="NSCellFlags2">137887744</int>
+ <string key="NSContents">Log In</string>
+ <reference key="NSSupport" ref="897649771"/>
+ <reference key="NSControlView" ref="305175176"/>
+ <int key="NSButtonFlags">-2038284033</int>
+ <int key="NSButtonFlags2">1</int>
+ <object class="NSFont" key="NSAlternateImage" id="784044296">
+ <string key="NSName">Helvetica</string>
+ <double key="NSSize">13</double>
+ <int key="NSfFlags">16</int>
+ </object>
+ <string key="NSAlternateContents"/>
+ <string type="base64-UTF8" key="NSKeyEquivalent">DQ</string>
+ <int key="NSPeriodicDelay">200</int>
+ <int key="NSPeriodicInterval">25</int>
+ </object>
+ </object>
+ <object class="NSButton" id="494193237">
+ <reference key="NSNextResponder" ref="327235052"/>
+ <int key="NSvFlags">289</int>
+ <string key="NSFrame">{{242, 12}, {84, 32}}</string>
+ <reference key="NSSuperview" ref="327235052"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSButtonCell" key="NSCell" id="55525334">
+ <int key="NSCellFlags">67239424</int>
+ <int key="NSCellFlags2">137887744</int>
+ <string key="NSContents">Cancel</string>
+ <reference key="NSSupport" ref="897649771"/>
+ <reference key="NSControlView" ref="494193237"/>
+ <int key="NSButtonFlags">-2038284033</int>
+ <int key="NSButtonFlags2">1</int>
+ <reference key="NSAlternateImage" ref="784044296"/>
+ <string key="NSAlternateContents"/>
+ <string type="base64-UTF8" key="NSKeyEquivalent">Gw</string>
+ <int key="NSPeriodicDelay">200</int>
+ <int key="NSPeriodicInterval">25</int>
+ </object>
+ </object>
+ <object class="NSTextField" id="71972597">
+ <reference key="NSNextResponder" ref="327235052"/>
+ <int key="NSvFlags">290</int>
+ <string key="NSFrame">{{174, 117}, {230, 22}}</string>
+ <reference key="NSSuperview" ref="327235052"/>
+ <int key="NSTag">3</int>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSTextFieldCell" key="NSCell" id="439646453">
+ <int key="NSCellFlags">-1804468671</int>
+ <int key="NSCellFlags2">4195328</int>
+ <string key="NSContents"/>
+ <reference key="NSSupport" ref="897649771"/>
+ <reference key="NSControlView" ref="71972597"/>
+ <int key="NSTag">3</int>
+ <bool key="NSDrawsBackground">YES</bool>
+ <object class="NSColor" key="NSBackgroundColor" id="301231121">
+ <int key="NSColorSpace">6</int>
+ <string key="NSCatalogName">System</string>
+ <string key="NSColorName">textBackgroundColor</string>
+ <object class="NSColor" key="NSColor">
+ <int key="NSColorSpace">3</int>
+ <bytes key="NSWhite">MQA</bytes>
+ </object>
+ </object>
+ <object class="NSColor" key="NSTextColor" id="577315227">
+ <int key="NSColorSpace">6</int>
+ <string key="NSCatalogName">System</string>
+ <string key="NSColorName">textColor</string>
+ <reference key="NSColor" ref="170747205"/>
+ </object>
+ </object>
+ </object>
+ <object class="NSTextField" id="368270689">
+ <reference key="NSNextResponder" ref="327235052"/>
+ <int key="NSvFlags">290</int>
+ <string key="NSFrame">{{174, 87}, {230, 22}}</string>
+ <reference key="NSSuperview" ref="327235052"/>
+ <int key="NSTag">4</int>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSTextFieldCell" key="NSCell" id="743913118">
+ <int key="NSCellFlags">-1804468671</int>
+ <int key="NSCellFlags2">4195328</int>
+ <string key="NSContents"/>
+ <reference key="NSSupport" ref="897649771"/>
+ <reference key="NSControlView" ref="368270689"/>
+ <int key="NSTag">4</int>
+ <bool key="NSDrawsBackground">YES</bool>
+ <reference key="NSBackgroundColor" ref="301231121"/>
+ <reference key="NSTextColor" ref="577315227"/>
+ </object>
+ </object>
+ <object class="NSTextField" id="477300420">
+ <reference key="NSNextResponder" ref="327235052"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{101, 119}, {68, 17}}</string>
+ <reference key="NSSuperview" ref="327235052"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSTextFieldCell" key="NSCell" id="159596654">
+ <int key="NSCellFlags">67239424</int>
+ <int key="NSCellFlags2">4194304</int>
+ <string key="NSContents">Name:</string>
+ <reference key="NSSupport" ref="897649771"/>
+ <reference key="NSControlView" ref="477300420"/>
+ <reference key="NSBackgroundColor" ref="475108766"/>
+ <reference key="NSTextColor" ref="644083014"/>
+ </object>
+ </object>
+ <object class="NSTextField" id="833115728">
+ <reference key="NSNextResponder" ref="327235052"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{101, 89}, {68, 17}}</string>
+ <reference key="NSSuperview" ref="327235052"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSTextFieldCell" key="NSCell" id="766878508">
+ <int key="NSCellFlags">67239424</int>
+ <int key="NSCellFlags2">4194304</int>
+ <string key="NSContents">Password:</string>
+ <reference key="NSSupport" ref="897649771"/>
+ <reference key="NSControlView" ref="833115728"/>
+ <reference key="NSBackgroundColor" ref="475108766"/>
+ <reference key="NSTextColor" ref="644083014"/>
+ </object>
+ </object>
+ <object class="NSImageView" id="285173040">
+ <reference key="NSNextResponder" ref="327235052"/>
+ <int key="NSvFlags">268</int>
+ <object class="NSMutableSet" key="NSDragTypes">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="set.sortedObjects">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>Apple PDF pasteboard type</string>
+ <string>Apple PICT pasteboard type</string>
+ <string>Apple PNG pasteboard type</string>
+ <string>NSFilenamesPboardType</string>
+ <string>NeXT Encapsulated PostScript v1.2 pasteboard type</string>
+ <string>NeXT TIFF v4.0 pasteboard type</string>
+ </object>
+ </object>
+ <string key="NSFrame">{{20, 170}, {64, 64}}</string>
+ <reference key="NSSuperview" ref="327235052"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSImageCell" key="NSCell" id="375502905">
+ <int key="NSCellFlags">130560</int>
+ <int key="NSCellFlags2">33554432</int>
+ <int key="NSAlign">0</int>
+ <int key="NSScale">0</int>
+ <int key="NSStyle">0</int>
+ <bool key="NSAnimates">NO</bool>
+ </object>
+ <bool key="NSEditable">YES</bool>
+ </object>
+ <object class="NSButton" id="657854151">
+ <reference key="NSNextResponder" ref="327235052"/>
+ <int key="NSvFlags">292</int>
+ <string key="NSFrame">{{102, 58}, {280, 18}}</string>
+ <reference key="NSSuperview" ref="327235052"/>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSButtonCell" key="NSCell" id="358614001">
+ <int key="NSCellFlags">67239424</int>
+ <int key="NSCellFlags2">0</int>
+ <string key="NSContents">Remember this password in my keychain</string>
+ <reference key="NSSupport" ref="897649771"/>
+ <reference key="NSControlView" ref="657854151"/>
+ <int key="NSButtonFlags">1211912703</int>
+ <int key="NSButtonFlags2">2</int>
+ <object class="NSButtonImageSource" key="NSAlternateImage">
+ <string key="NSImageName">NSSwitch</string>
+ </object>
+ <string key="NSAlternateContents"/>
+ <string key="NSKeyEquivalent"/>
+ <int key="NSPeriodicDelay">200</int>
+ <int key="NSPeriodicInterval">25</int>
+ </object>
+ </object>
+ <object class="NSTextField" id="1000280557">
+ <reference key="NSNextResponder" ref="327235052"/>
+ <int key="NSvFlags">290</int>
+ <string key="NSFrame">{{113, 175}, {282, 17}}</string>
+ <reference key="NSSuperview" ref="327235052"/>
+ <int key="NSTag">3</int>
+ <bool key="NSEnabled">YES</bool>
+ <object class="NSTextFieldCell" key="NSCell" id="96725843">
+ <int key="NSCellFlags">-2078147071</int>
+ <int key="NSCellFlags2">4194560</int>
+ <string key="NSContents">&lt;-- do not localize; will contain realm name --&gt;</string>
+ <object class="NSFont" key="NSSupport">
+ <string key="NSName">LucidaGrande</string>
+ <double key="NSSize">11</double>
+ <int key="NSfFlags">16</int>
+ </object>
+ <reference key="NSControlView" ref="1000280557"/>
+ <int key="NSTag">3</int>
+ <reference key="NSBackgroundColor" ref="301231121"/>
+ <reference key="NSTextColor" ref="577315227"/>
+ </object>
+ </object>
+ </object>
+ <string key="NSFrameSize">{424, 254}</string>
+ <reference key="NSSuperview"/>
+ </object>
+ <string key="NSScreenRect">{{0, 0}, {2560, 1578}}</string>
+ <string key="NSMaxSize">{1.79769e+308, 1.79769e+308}</string>
+ <string key="NSFrameAutosaveName">Authentication Panel</string>
+ </object>
+ </object>
+ <object class="IBObjectContainer" key="IBDocument.Objects">
+ <object class="NSMutableArray" key="connectionRecords">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBConnectionRecord">
+ <object class="IBOutletConnection" key="connection">
+ <string key="label">initialFirstResponder</string>
+ <reference key="source" ref="118512579"/>
+ <reference key="destination" ref="71972597"/>
+ </object>
+ <int key="connectionID">26</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBOutletConnection" key="connection">
+ <string key="label">panel</string>
+ <reference key="source" ref="238662661"/>
+ <reference key="destination" ref="118512579"/>
+ </object>
+ <int key="connectionID">27</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBOutletConnection" key="connection">
+ <string key="label">username</string>
+ <reference key="source" ref="238662661"/>
+ <reference key="destination" ref="71972597"/>
+ </object>
+ <int key="connectionID">28</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBOutletConnection" key="connection">
+ <string key="label">password</string>
+ <reference key="source" ref="238662661"/>
+ <reference key="destination" ref="368270689"/>
+ </object>
+ <int key="connectionID">29</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBActionConnection" key="connection">
+ <string key="label">logIn:</string>
+ <reference key="source" ref="238662661"/>
+ <reference key="destination" ref="305175176"/>
+ </object>
+ <int key="connectionID">30</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBActionConnection" key="connection">
+ <string key="label">cancel:</string>
+ <reference key="source" ref="238662661"/>
+ <reference key="destination" ref="494193237"/>
+ </object>
+ <int key="connectionID">31</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBOutletConnection" key="connection">
+ <string key="label">mainLabel</string>
+ <reference key="source" ref="238662661"/>
+ <reference key="destination" ref="705333610"/>
+ </object>
+ <int key="connectionID">34</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBOutletConnection" key="connection">
+ <string key="label">smallLabel</string>
+ <reference key="source" ref="238662661"/>
+ <reference key="destination" ref="199018347"/>
+ </object>
+ <int key="connectionID">35</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBOutletConnection" key="connection">
+ <string key="label">imageView</string>
+ <reference key="source" ref="238662661"/>
+ <reference key="destination" ref="285173040"/>
+ </object>
+ <int key="connectionID">38</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBOutletConnection" key="connection">
+ <string key="label">remember</string>
+ <reference key="source" ref="238662661"/>
+ <reference key="destination" ref="657854151"/>
+ </object>
+ <int key="connectionID">40</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBOutletConnection" key="connection">
+ <string key="label">separateRealmLabel</string>
+ <reference key="source" ref="238662661"/>
+ <reference key="destination" ref="1000280557"/>
+ </object>
+ <int key="connectionID">100057</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBOutletConnection" key="connection">
+ <string key="label">nextKeyView</string>
+ <reference key="source" ref="705333610"/>
+ <reference key="destination" ref="1000280557"/>
+ </object>
+ <int key="connectionID">100058</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBOutletConnection" key="connection">
+ <string key="label">nextKeyView</string>
+ <reference key="source" ref="1000280557"/>
+ <reference key="destination" ref="199018347"/>
+ </object>
+ <int key="connectionID">100059</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBOutletConnection" key="connection">
+ <string key="label">nextKeyView</string>
+ <reference key="source" ref="199018347"/>
+ <reference key="destination" ref="477300420"/>
+ </object>
+ <int key="connectionID">100060</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBOutletConnection" key="connection">
+ <string key="label">nextKeyView</string>
+ <reference key="source" ref="477300420"/>
+ <reference key="destination" ref="71972597"/>
+ </object>
+ <int key="connectionID">100061</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBOutletConnection" key="connection">
+ <string key="label">nextKeyView</string>
+ <reference key="source" ref="71972597"/>
+ <reference key="destination" ref="833115728"/>
+ </object>
+ <int key="connectionID">100062</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBOutletConnection" key="connection">
+ <string key="label">nextKeyView</string>
+ <reference key="source" ref="833115728"/>
+ <reference key="destination" ref="368270689"/>
+ </object>
+ <int key="connectionID">100063</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBOutletConnection" key="connection">
+ <string key="label">nextKeyView</string>
+ <reference key="source" ref="368270689"/>
+ <reference key="destination" ref="657854151"/>
+ </object>
+ <int key="connectionID">100064</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBOutletConnection" key="connection">
+ <string key="label">nextKeyView</string>
+ <reference key="source" ref="657854151"/>
+ <reference key="destination" ref="494193237"/>
+ </object>
+ <int key="connectionID">100065</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBOutletConnection" key="connection">
+ <string key="label">nextKeyView</string>
+ <reference key="source" ref="494193237"/>
+ <reference key="destination" ref="305175176"/>
+ </object>
+ <int key="connectionID">100066</int>
+ </object>
+ <object class="IBConnectionRecord">
+ <object class="IBOutletConnection" key="connection">
+ <string key="label">nextKeyView</string>
+ <reference key="source" ref="305175176"/>
+ <reference key="destination" ref="705333610"/>
+ </object>
+ <int key="connectionID">100067</int>
+ </object>
+ </object>
+ <object class="IBMutableOrderedSet" key="objectRecords">
+ <object class="NSArray" key="orderedObjects">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBObjectRecord">
+ <int key="objectID">0</int>
+ <object class="NSArray" key="object" id="498544300">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ <reference key="children" ref="563121920"/>
+ <nil key="parent"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">-2</int>
+ <reference key="object" ref="238662661"/>
+ <reference key="parent" ref="498544300"/>
+ <string key="objectName">File's Owner</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">-1</int>
+ <reference key="object" ref="729335755"/>
+ <reference key="parent" ref="498544300"/>
+ <string key="objectName">First Responder</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">-3</int>
+ <reference key="object" ref="239643893"/>
+ <reference key="parent" ref="498544300"/>
+ <string key="objectName">Application</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">5</int>
+ <reference key="object" ref="118512579"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="327235052"/>
+ </object>
+ <reference key="parent" ref="498544300"/>
+ <string key="objectName">Panel</string>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">6</int>
+ <reference key="object" ref="327235052"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="305175176"/>
+ <reference ref="494193237"/>
+ <reference ref="71972597"/>
+ <reference ref="368270689"/>
+ <reference ref="477300420"/>
+ <reference ref="833115728"/>
+ <reference ref="285173040"/>
+ <reference ref="657854151"/>
+ <reference ref="705333610"/>
+ <reference ref="199018347"/>
+ <reference ref="1000280557"/>
+ </object>
+ <reference key="parent" ref="118512579"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">10</int>
+ <reference key="object" ref="705333610"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="240004773"/>
+ </object>
+ <reference key="parent" ref="327235052"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">11</int>
+ <reference key="object" ref="199018347"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="213641065"/>
+ </object>
+ <reference key="parent" ref="327235052"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">12</int>
+ <reference key="object" ref="305175176"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="568224179"/>
+ </object>
+ <reference key="parent" ref="327235052"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">13</int>
+ <reference key="object" ref="494193237"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="55525334"/>
+ </object>
+ <reference key="parent" ref="327235052"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">14</int>
+ <reference key="object" ref="71972597"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="439646453"/>
+ </object>
+ <reference key="parent" ref="327235052"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">15</int>
+ <reference key="object" ref="368270689"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="743913118"/>
+ </object>
+ <reference key="parent" ref="327235052"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">16</int>
+ <reference key="object" ref="477300420"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="159596654"/>
+ </object>
+ <reference key="parent" ref="327235052"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">17</int>
+ <reference key="object" ref="833115728"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="766878508"/>
+ </object>
+ <reference key="parent" ref="327235052"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">19</int>
+ <reference key="object" ref="285173040"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="375502905"/>
+ </object>
+ <reference key="parent" ref="327235052"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">39</int>
+ <reference key="object" ref="657854151"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="358614001"/>
+ </object>
+ <reference key="parent" ref="327235052"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">100010</int>
+ <reference key="object" ref="240004773"/>
+ <reference key="parent" ref="705333610"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">100011</int>
+ <reference key="object" ref="213641065"/>
+ <reference key="parent" ref="199018347"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">100012</int>
+ <reference key="object" ref="568224179"/>
+ <reference key="parent" ref="305175176"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">100013</int>
+ <reference key="object" ref="55525334"/>
+ <reference key="parent" ref="494193237"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">100014</int>
+ <reference key="object" ref="439646453"/>
+ <reference key="parent" ref="71972597"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">100015</int>
+ <reference key="object" ref="743913118"/>
+ <reference key="parent" ref="368270689"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">100016</int>
+ <reference key="object" ref="159596654"/>
+ <reference key="parent" ref="477300420"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">100017</int>
+ <reference key="object" ref="766878508"/>
+ <reference key="parent" ref="833115728"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">100019</int>
+ <reference key="object" ref="375502905"/>
+ <reference key="parent" ref="285173040"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">100039</int>
+ <reference key="object" ref="358614001"/>
+ <reference key="parent" ref="657854151"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">100047</int>
+ <reference key="object" ref="1000280557"/>
+ <object class="NSMutableArray" key="children">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference ref="96725843"/>
+ </object>
+ <reference key="parent" ref="327235052"/>
+ </object>
+ <object class="IBObjectRecord">
+ <int key="objectID">100050</int>
+ <reference key="object" ref="96725843"/>
+ <reference key="parent" ref="1000280557"/>
+ </object>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="flattenedProperties">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>-3.IBPluginDependency</string>
+ <string>-3.ImportedFromIB2</string>
+ <string>10.IBPluginDependency</string>
+ <string>10.ImportedFromIB2</string>
+ <string>100010.IBPluginDependency</string>
+ <string>100011.IBPluginDependency</string>
+ <string>100012.IBPluginDependency</string>
+ <string>100013.IBPluginDependency</string>
+ <string>100014.IBPluginDependency</string>
+ <string>100015.IBPluginDependency</string>
+ <string>100016.IBPluginDependency</string>
+ <string>100017.IBPluginDependency</string>
+ <string>100019.IBPluginDependency</string>
+ <string>100039.IBPluginDependency</string>
+ <string>100047.IBPluginDependency</string>
+ <string>100047.ImportedFromIB2</string>
+ <string>100050.IBPluginDependency</string>
+ <string>11.IBPluginDependency</string>
+ <string>11.ImportedFromIB2</string>
+ <string>12.IBPluginDependency</string>
+ <string>12.ImportedFromIB2</string>
+ <string>13.IBPluginDependency</string>
+ <string>13.ImportedFromIB2</string>
+ <string>14.IBPluginDependency</string>
+ <string>14.ImportedFromIB2</string>
+ <string>15.CustomClassName</string>
+ <string>15.IBPluginDependency</string>
+ <string>15.ImportedFromIB2</string>
+ <string>16.IBPluginDependency</string>
+ <string>16.ImportedFromIB2</string>
+ <string>17.IBPluginDependency</string>
+ <string>17.ImportedFromIB2</string>
+ <string>19.IBPluginDependency</string>
+ <string>19.ImportedFromIB2</string>
+ <string>39.IBPluginDependency</string>
+ <string>39.ImportedFromIB2</string>
+ <string>5.IBEditorWindowLastContentRect</string>
+ <string>5.IBPluginDependency</string>
+ <string>5.IBViewEditorWindowController.showingLayoutRectangles</string>
+ <string>5.IBWindowTemplateEditedContentRect</string>
+ <string>5.ImportedFromIB2</string>
+ <string>5.windowTemplate.hasMaxSize</string>
+ <string>5.windowTemplate.hasMinSize</string>
+ <string>5.windowTemplate.maxSize</string>
+ <string>5.windowTemplate.minSize</string>
+ <string>6.IBPluginDependency</string>
+ <string>6.ImportedFromIB2</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <integer value="1"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <integer value="1"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <integer value="1"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <integer value="1"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <integer value="1"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <integer value="1"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <integer value="1"/>
+ <string>NSSecureTextField</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <integer value="1"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <integer value="1"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <integer value="1"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <integer value="1"/>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <integer value="1"/>
+ <string>{{288, 843}, {424, 254}}</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <integer value="1"/>
+ <string>{{288, 843}, {424, 254}}</string>
+ <integer value="1"/>
+ <integer value="0"/>
+ <integer value="0"/>
+ <string>{424, 282}</string>
+ <string>{424, 282}</string>
+ <string>com.apple.InterfaceBuilder.CocoaPlugin</string>
+ <integer value="1"/>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="unlocalizedProperties">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference key="dict.sortedKeys" ref="498544300"/>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <nil key="activeLocalization"/>
+ <object class="NSMutableDictionary" key="localizations">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <reference key="dict.sortedKeys" ref="498544300"/>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ </object>
+ </object>
+ <nil key="sourceID"/>
+ <int key="maxID">100067</int>
+ </object>
+ <object class="IBClassDescriber" key="IBDocument.Classes">
+ <object class="NSMutableArray" key="referencedPartialClassDescriptions">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBPartialClassDescription">
+ <string key="className">FirstResponder</string>
+ <string key="superclassName">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBUserSource</string>
+ <string key="minorKey"/>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSControl</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">mac/Misc/WebNSControlExtras.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSControl</string>
+ <string key="superclassName">NSView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBUserSource</string>
+ <string key="minorKey"/>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">mac/Misc/WebDownload.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">mac/Misc/WebIconDatabaseDelegate.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">mac/Misc/WebNSObjectExtras.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">mac/Plugins/WebJavaPlugIn.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">mac/Plugins/WebPlugin.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">mac/Plugins/WebPluginContainer.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">mac/Plugins/WebPluginContainerPrivate.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">mac/Plugins/WebPluginDatabase.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">mac/Plugins/WebPluginPrivate.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">mac/WebInspector/WebNodeHighlight.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">mac/WebView/WebEditingDelegate.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">mac/WebView/WebEditingDelegatePrivate.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">mac/WebView/WebFrameInternal.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">mac/WebView/WebFrameLoadDelegate.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">mac/WebView/WebFrameLoadDelegatePrivate.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">mac/WebView/WebHistoryDelegate.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">mac/WebView/WebPolicyDelegate.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">mac/WebView/WebPolicyDelegatePrivate.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">mac/WebView/WebResourceLoadDelegate.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">mac/WebView/WebResourceLoadDelegatePrivate.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">mac/WebView/WebScriptDebugDelegate.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="NSMutableDictionary" key="actions">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>webViewClose:</string>
+ <string>webViewFocus:</string>
+ <string>webViewRunModal:</string>
+ <string>webViewShow:</string>
+ <string>webViewUnfocus:</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>WebView</string>
+ <string>WebView</string>
+ <string>WebView</string>
+ <string>WebView</string>
+ <string>WebView</string>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="actionInfosByName">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>webViewClose:</string>
+ <string>webViewFocus:</string>
+ <string>webViewRunModal:</string>
+ <string>webViewShow:</string>
+ <string>webViewUnfocus:</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBActionInfo">
+ <string key="name">webViewClose:</string>
+ <string key="candidateClassName">WebView</string>
+ </object>
+ <object class="IBActionInfo">
+ <string key="name">webViewFocus:</string>
+ <string key="candidateClassName">WebView</string>
+ </object>
+ <object class="IBActionInfo">
+ <string key="name">webViewRunModal:</string>
+ <string key="candidateClassName">WebView</string>
+ </object>
+ <object class="IBActionInfo">
+ <string key="name">webViewShow:</string>
+ <string key="candidateClassName">WebView</string>
+ </object>
+ <object class="IBActionInfo">
+ <string key="name">webViewUnfocus:</string>
+ <string key="candidateClassName">WebView</string>
+ </object>
+ </object>
+ </object>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">mac/WebView/WebUIDelegate.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">mac/WebView/WebUIDelegatePrivate.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier" id="153972132">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">mac/WebView/WebViewPrivate.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBUserSource</string>
+ <string key="minorKey"/>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">mac/Misc/WebNSViewExtras.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">mac/Plugins/WebBaseNetscapePluginView.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSView</string>
+ <string key="superclassName">NSResponder</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBUserSource</string>
+ <string key="minorKey"/>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSWindow</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">mac/Misc/WebNSWindowExtras.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSWindow</string>
+ <string key="superclassName">NSResponder</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBUserSource</string>
+ <string key="minorKey"/>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NonBlockingPanel</string>
+ <string key="superclassName">NSPanel</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier" id="1064703436">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">mac/Panels/WebAuthenticationPanel.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NonBlockingPanel</string>
+ <string key="superclassName">NSPanel</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBUserSource</string>
+ <string key="minorKey"/>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">WebAuthenticationPanel</string>
+ <string key="superclassName">NSObject</string>
+ <object class="NSMutableDictionary" key="actions">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>cancel:</string>
+ <string>logIn:</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>id</string>
+ <string>id</string>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="actionInfosByName">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>cancel:</string>
+ <string>logIn:</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBActionInfo">
+ <string key="name">cancel:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBActionInfo">
+ <string key="name">logIn:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="outlets">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>callback</string>
+ <string>imageView</string>
+ <string>mainLabel</string>
+ <string>panel</string>
+ <string>password</string>
+ <string>remember</string>
+ <string>separateRealmLabel</string>
+ <string>smallLabel</string>
+ <string>username</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>NSTextField</string>
+ <string>id</string>
+ <string>id</string>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="toOneOutletInfosByName">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>callback</string>
+ <string>imageView</string>
+ <string>mainLabel</string>
+ <string>panel</string>
+ <string>password</string>
+ <string>remember</string>
+ <string>separateRealmLabel</string>
+ <string>smallLabel</string>
+ <string>username</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBToOneOutletInfo">
+ <string key="name">callback</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">imageView</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">mainLabel</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">panel</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">password</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">remember</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">separateRealmLabel</string>
+ <string key="candidateClassName">NSTextField</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">smallLabel</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBToOneOutletInfo">
+ <string key="name">username</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ </object>
+ </object>
+ <reference key="sourceIdentifier" ref="1064703436"/>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">WebView</string>
+ <string key="superclassName">NSView</string>
+ <object class="NSMutableDictionary" key="actions">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>alignCenter:</string>
+ <string>alignJustified:</string>
+ <string>alignLeft:</string>
+ <string>alignRight:</string>
+ <string>changeAttributes:</string>
+ <string>changeColor:</string>
+ <string>changeDocumentBackgroundColor:</string>
+ <string>changeFont:</string>
+ <string>checkSpelling:</string>
+ <string>copy:</string>
+ <string>copyFont:</string>
+ <string>cut:</string>
+ <string>delete:</string>
+ <string>goBack:</string>
+ <string>goForward:</string>
+ <string>makeTextLarger:</string>
+ <string>makeTextSmaller:</string>
+ <string>makeTextStandardSize:</string>
+ <string>moveToBeginningOfSentence:</string>
+ <string>moveToBeginningOfSentenceAndModifySelection:</string>
+ <string>moveToEndOfSentence:</string>
+ <string>moveToEndOfSentenceAndModifySelection:</string>
+ <string>paste:</string>
+ <string>pasteAsPlainText:</string>
+ <string>pasteAsRichText:</string>
+ <string>pasteFont:</string>
+ <string>performFindPanelAction:</string>
+ <string>reload:</string>
+ <string>reloadFromOrigin:</string>
+ <string>selectSentence:</string>
+ <string>showGuessPanel:</string>
+ <string>startSpeaking:</string>
+ <string>stopLoading:</string>
+ <string>stopSpeaking:</string>
+ <string>takeStringURLFrom:</string>
+ <string>toggleContinuousSpellChecking:</string>
+ <string>toggleSmartInsertDelete:</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="actionInfosByName">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>alignCenter:</string>
+ <string>alignJustified:</string>
+ <string>alignLeft:</string>
+ <string>alignRight:</string>
+ <string>changeAttributes:</string>
+ <string>changeColor:</string>
+ <string>changeDocumentBackgroundColor:</string>
+ <string>changeFont:</string>
+ <string>checkSpelling:</string>
+ <string>copy:</string>
+ <string>copyFont:</string>
+ <string>cut:</string>
+ <string>delete:</string>
+ <string>goBack:</string>
+ <string>goForward:</string>
+ <string>makeTextLarger:</string>
+ <string>makeTextSmaller:</string>
+ <string>makeTextStandardSize:</string>
+ <string>moveToBeginningOfSentence:</string>
+ <string>moveToBeginningOfSentenceAndModifySelection:</string>
+ <string>moveToEndOfSentence:</string>
+ <string>moveToEndOfSentenceAndModifySelection:</string>
+ <string>paste:</string>
+ <string>pasteAsPlainText:</string>
+ <string>pasteAsRichText:</string>
+ <string>pasteFont:</string>
+ <string>performFindPanelAction:</string>
+ <string>reload:</string>
+ <string>reloadFromOrigin:</string>
+ <string>selectSentence:</string>
+ <string>showGuessPanel:</string>
+ <string>startSpeaking:</string>
+ <string>stopLoading:</string>
+ <string>stopSpeaking:</string>
+ <string>takeStringURLFrom:</string>
+ <string>toggleContinuousSpellChecking:</string>
+ <string>toggleSmartInsertDelete:</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBActionInfo">
+ <string key="name">alignCenter:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBActionInfo">
+ <string key="name">alignJustified:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBActionInfo">
+ <string key="name">alignLeft:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBActionInfo">
+ <string key="name">alignRight:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBActionInfo">
+ <string key="name">changeAttributes:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBActionInfo">
+ <string key="name">changeColor:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBActionInfo">
+ <string key="name">changeDocumentBackgroundColor:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBActionInfo">
+ <string key="name">changeFont:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBActionInfo">
+ <string key="name">checkSpelling:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBActionInfo">
+ <string key="name">copy:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBActionInfo">
+ <string key="name">copyFont:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBActionInfo">
+ <string key="name">cut:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBActionInfo">
+ <string key="name">delete:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBActionInfo">
+ <string key="name">goBack:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBActionInfo">
+ <string key="name">goForward:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBActionInfo">
+ <string key="name">makeTextLarger:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBActionInfo">
+ <string key="name">makeTextSmaller:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBActionInfo">
+ <string key="name">makeTextStandardSize:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBActionInfo">
+ <string key="name">moveToBeginningOfSentence:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBActionInfo">
+ <string key="name">moveToBeginningOfSentenceAndModifySelection:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBActionInfo">
+ <string key="name">moveToEndOfSentence:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBActionInfo">
+ <string key="name">moveToEndOfSentenceAndModifySelection:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBActionInfo">
+ <string key="name">paste:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBActionInfo">
+ <string key="name">pasteAsPlainText:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBActionInfo">
+ <string key="name">pasteAsRichText:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBActionInfo">
+ <string key="name">pasteFont:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBActionInfo">
+ <string key="name">performFindPanelAction:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBActionInfo">
+ <string key="name">reload:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBActionInfo">
+ <string key="name">reloadFromOrigin:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBActionInfo">
+ <string key="name">selectSentence:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBActionInfo">
+ <string key="name">showGuessPanel:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBActionInfo">
+ <string key="name">startSpeaking:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBActionInfo">
+ <string key="name">stopLoading:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBActionInfo">
+ <string key="name">stopSpeaking:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBActionInfo">
+ <string key="name">takeStringURLFrom:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBActionInfo">
+ <string key="name">toggleContinuousSpellChecking:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBActionInfo">
+ <string key="name">toggleSmartInsertDelete:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ </object>
+ </object>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">mac/WebView/WebView.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">WebView</string>
+ <object class="NSMutableDictionary" key="actions">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>_openFrameInNewWindowFromMenu:</string>
+ <string>_searchWithGoogleFromMenu:</string>
+ <string>_searchWithSpotlightFromMenu:</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>NSMenuItem</string>
+ <string>id</string>
+ <string>id</string>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="actionInfosByName">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>_openFrameInNewWindowFromMenu:</string>
+ <string>_searchWithGoogleFromMenu:</string>
+ <string>_searchWithSpotlightFromMenu:</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBActionInfo">
+ <string key="name">_openFrameInNewWindowFromMenu:</string>
+ <string key="candidateClassName">NSMenuItem</string>
+ </object>
+ <object class="IBActionInfo">
+ <string key="name">_searchWithGoogleFromMenu:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBActionInfo">
+ <string key="name">_searchWithSpotlightFromMenu:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ </object>
+ </object>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBProjectSource</string>
+ <string key="minorKey">mac/WebView/WebViewInternal.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">WebView</string>
+ <object class="NSMutableDictionary" key="actions">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>outdent:</string>
+ <string>resetPageZoom:</string>
+ <string>toggleAutomaticDashSubstitution:</string>
+ <string>toggleAutomaticLinkDetection:</string>
+ <string>toggleAutomaticQuoteSubstitution:</string>
+ <string>toggleAutomaticSpellingCorrection:</string>
+ <string>toggleAutomaticTextReplacement:</string>
+ <string>toggleGrammarChecking:</string>
+ <string>zoomPageIn:</string>
+ <string>zoomPageOut:</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ <string>id</string>
+ </object>
+ </object>
+ <object class="NSMutableDictionary" key="actionInfosByName">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="NSArray" key="dict.sortedKeys">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <string>outdent:</string>
+ <string>resetPageZoom:</string>
+ <string>toggleAutomaticDashSubstitution:</string>
+ <string>toggleAutomaticLinkDetection:</string>
+ <string>toggleAutomaticQuoteSubstitution:</string>
+ <string>toggleAutomaticSpellingCorrection:</string>
+ <string>toggleAutomaticTextReplacement:</string>
+ <string>toggleGrammarChecking:</string>
+ <string>zoomPageIn:</string>
+ <string>zoomPageOut:</string>
+ </object>
+ <object class="NSMutableArray" key="dict.values">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBActionInfo">
+ <string key="name">outdent:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBActionInfo">
+ <string key="name">resetPageZoom:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBActionInfo">
+ <string key="name">toggleAutomaticDashSubstitution:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBActionInfo">
+ <string key="name">toggleAutomaticLinkDetection:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBActionInfo">
+ <string key="name">toggleAutomaticQuoteSubstitution:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBActionInfo">
+ <string key="name">toggleAutomaticSpellingCorrection:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBActionInfo">
+ <string key="name">toggleAutomaticTextReplacement:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBActionInfo">
+ <string key="name">toggleGrammarChecking:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBActionInfo">
+ <string key="name">zoomPageIn:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ <object class="IBActionInfo">
+ <string key="name">zoomPageOut:</string>
+ <string key="candidateClassName">id</string>
+ </object>
+ </object>
+ </object>
+ <reference key="sourceIdentifier" ref="153972132"/>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">WebView</string>
+ <string key="superclassName">NSView</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBUserSource</string>
+ <string key="minorKey"/>
+ </object>
+ </object>
+ </object>
+ <object class="NSMutableArray" key="referencedPartialClassDescriptionsV3.2+">
+ <bool key="EncodedWithXMLCoder">YES</bool>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">QuartzCore.framework/Headers/CAAnimation.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">QuartzCore.framework/Headers/CALayer.h</string>
+ </object>
+ </object>
+ <object class="IBPartialClassDescription">
+ <string key="className">NSObject</string>
+ <object class="IBClassDescriptionSource" key="sourceIdentifier">
+ <string key="majorKey">IBFrameworkSource</string>
+ <string key="minorKey">QuartzCore.framework/Headers/CIImageProvider.h</string>
+ </object>
+ </object>
+ </object>
+ </object>
+ <int key="IBDocument.localizationMode">0</int>
+ <string key="IBDocument.TargetRuntimeIdentifier">IBCocoaFramework</string>
+ <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDependencies">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.macosx</string>
+ <integer value="1050" key="NS.object.0"/>
+ </object>
+ <object class="NSMutableDictionary" key="IBDocument.PluginDeclaredDevelopmentDependencies">
+ <string key="NS.key.0">com.apple.InterfaceBuilder.CocoaPlugin.InterfaceBuilder3</string>
+ <integer value="3000" key="NS.object.0"/>
+ </object>
+ <bool key="IBDocument.PluginDeclaredDependenciesTrackSystemTargetVersion">YES</bool>
+ <string key="IBDocument.LastKnownRelativeProjectPath">../../../WebKit.xcodeproj</string>
+ <int key="IBDocument.defaultPropertyAccessControl">3</int>
+ </data>
+</archive>
diff --git a/Source/WebKit/mac/Panels/English.lproj/WebAuthenticationPanel.nib/keyedobjects.nib b/Source/WebKit/mac/Panels/English.lproj/WebAuthenticationPanel.nib/keyedobjects.nib
new file mode 100644
index 0000000..42a4b1d
--- /dev/null
+++ b/Source/WebKit/mac/Panels/English.lproj/WebAuthenticationPanel.nib/keyedobjects.nib
Binary files differ
diff --git a/Source/WebKit/mac/Panels/WebAuthenticationPanel.h b/Source/WebKit/mac/Panels/WebAuthenticationPanel.h
new file mode 100644
index 0000000..bb22dd4
--- /dev/null
+++ b/Source/WebKit/mac/Panels/WebAuthenticationPanel.h
@@ -0,0 +1,69 @@
+/*
+ * Copyright (C) 2005 Apple Computer, 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.
+ * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE 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 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>
+#import <Foundation/NSURLCredentialStorage.h>
+
+@class NSURLAuthenticationChallenge;
+
+@interface WebAuthenticationPanel : NSObject
+{
+ IBOutlet id mainLabel;
+ IBOutlet id panel;
+ IBOutlet id password;
+ IBOutlet id smallLabel;
+ IBOutlet id username;
+ IBOutlet id imageView;
+ IBOutlet id remember;
+ IBOutlet NSTextField *separateRealmLabel;
+ BOOL nibLoaded;
+ BOOL usingSheet;
+ id callback;
+ SEL selector;
+ NSURLAuthenticationChallenge *challenge;
+}
+
+-(id)initWithCallback:(id)cb selector:(SEL)sel;
+
+// Interface-related methods
+- (IBAction)cancel:(id)sender;
+- (IBAction)logIn:(id)sender;
+
+- (BOOL)loadNib;
+
+- (void)runAsModalDialogWithChallenge:(NSURLAuthenticationChallenge *)chall;
+- (void)runAsSheetOnWindow:(NSWindow *)window withChallenge:(NSURLAuthenticationChallenge *)chall;
+
+- (void)sheetDidEnd:(NSWindow *)sheet returnCode:(int)returnCode contextInfo:(void *)contextInfo;
+
+@end
+
+// This is in the header so it can be used from the nib file
+@interface NonBlockingPanel : NSPanel
+@end
+
diff --git a/Source/WebKit/mac/Panels/WebAuthenticationPanel.m b/Source/WebKit/mac/Panels/WebAuthenticationPanel.m
new file mode 100644
index 0000000..6bdbfd2
--- /dev/null
+++ b/Source/WebKit/mac/Panels/WebAuthenticationPanel.m
@@ -0,0 +1,289 @@
+/*
+ * Copyright (C) 2005 Apple Computer, 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.
+ * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE 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 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 <WebKit/WebAuthenticationPanel.h>
+
+#import "WebLocalizableStringsInternal.h"
+#import <Foundation/NSURLAuthenticationChallenge.h>
+#import <Foundation/NSURLProtectionSpace.h>
+#import <Foundation/NSURLCredential.h>
+#import <WebKit/WebKitNSStringExtras.h>
+#import <WebKit/WebNSURLExtras.h>
+#import <wtf/Assertions.h>
+
+#import <WebKit/WebNSControlExtras.h>
+
+#define WebAuthenticationPanelNibName @"WebAuthenticationPanel"
+
+@implementation WebAuthenticationPanel
+
+-(id)initWithCallback:(id)cb selector:(SEL)sel
+{
+ self = [self init];
+ if (self != nil) {
+ callback = [cb retain];
+ selector = sel;
+ }
+ return self;
+}
+
+
+- (void)dealloc
+{
+ [panel release];
+
+ [callback release];
+
+ [super dealloc];
+}
+
+// IB actions
+
+- (IBAction)cancel:(id)sender
+{
+ // This is required because the body of this method is going to
+ // remove all of the panel's remaining refs, which can cause a
+ // crash later when finishing button hit tracking. So we make
+ // sure it lives on a bit longer.
+ [[panel retain] autorelease];
+
+ // This is required as a workaround for AppKit issue 4118422
+ [[self retain] autorelease];
+
+ [panel close];
+ if (usingSheet) {
+ [[NSApplication sharedApplication] endSheet:panel returnCode:1];
+ } else {
+ [[NSApplication sharedApplication] stopModalWithCode:1];
+ }
+}
+
+- (IBAction)logIn:(id)sender
+{
+ // This is required because the body of this method is going to
+ // remove all of the panel's remaining refs, which can cause a
+ // crash later when finishing button hit tracking. So we make
+ // sure it lives on a bit longer.
+ [[panel retain] autorelease];
+
+ [panel close];
+ if (usingSheet) {
+ [[NSApplication sharedApplication] endSheet:panel returnCode:0];
+ } else {
+ [[NSApplication sharedApplication] stopModalWithCode:0];
+ }
+}
+
+- (BOOL)loadNib
+{
+ if (!nibLoaded) {
+ if ([NSBundle loadNibNamed:WebAuthenticationPanelNibName owner:self]) {
+ nibLoaded = YES;
+ [imageView setImage:[NSImage imageNamed:@"NSApplicationIcon"]];
+ } else {
+ LOG_ERROR("couldn't load nib named '%@'", WebAuthenticationPanelNibName);
+ return FALSE;
+ }
+ }
+ return TRUE;
+}
+
+// Methods related to displaying the panel
+
+-(void)setUpForChallenge:(NSURLAuthenticationChallenge *)chall
+{
+ [self loadNib];
+
+ NSURLProtectionSpace *space = [chall protectionSpace];
+
+ NSString *host;
+ if ([space port] == 0) {
+ host = [[space host] _web_decodeHostName];
+ } else {
+ host = [NSString stringWithFormat:@"%@:%u", [[space host] _web_decodeHostName], [space port]];
+ }
+
+ NSString *realm = [space realm];
+ if (!realm)
+ realm = @"";
+ NSString *message;
+
+ // Consider the realm name to be "simple" if it does not contain any whitespace or newline characters.
+ // If the realm name is determined to be complex, we will use a slightly different sheet layout, designed
+ // to keep a malicious realm name from spoofing the wording in the sheet text.
+ BOOL realmNameIsSimple = [realm rangeOfCharacterFromSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]].location == NSNotFound;
+
+ if ([chall previousFailureCount] == 0) {
+ if ([space isProxy]) {
+ message = [NSString stringWithFormat:UI_STRING_INTERNAL("To view this page, you must log in to the %@ proxy server %@.",
+ "prompt string in authentication panel"),
+ [space proxyType], host];
+ } else {
+ if (realmNameIsSimple)
+ message = [NSString stringWithFormat:UI_STRING_INTERNAL("To view this page, you must log in to area “%@” on %@.",
+ "prompt string in authentication panel"), realm, host];
+ else
+ message = [NSString stringWithFormat:UI_STRING_INTERNAL("To view this page, you must log in to this area on %@:",
+ "prompt string in authentication panel"), host];
+ }
+ } else {
+ if ([space isProxy]) {
+ message = [NSString stringWithFormat:UI_STRING_INTERNAL("The user name or password you entered for the %@ proxy server %@ was incorrect. Make sure you’re entering them correctly, and then try again.",
+ "prompt string in authentication panel"),
+ [space proxyType], host];
+ } else {
+ if (realmNameIsSimple)
+ message = [NSString stringWithFormat:UI_STRING_INTERNAL("The user name or password you entered for area “%@” on %@ was incorrect. Make sure you’re entering them correctly, and then try again.",
+ "prompt string in authentication panel"), realm, host];
+ else
+ message = [NSString stringWithFormat:UI_STRING_INTERNAL("The user name or password you entered for this area on %@ was incorrect. Make sure you’re entering them correctly, and then try again.",
+ "prompt string in authentication panel"), host];
+ }
+ }
+
+ if (![space isProxy] && !realmNameIsSimple) {
+ [separateRealmLabel setHidden:NO];
+ [separateRealmLabel setStringValue:realm];
+ [separateRealmLabel setAutoresizingMask:NSViewMinYMargin];
+ [separateRealmLabel sizeToFitAndAdjustWindowHeight];
+ [separateRealmLabel setAutoresizingMask:NSViewMaxYMargin];
+ } else {
+ // In the proxy or "simple" realm name case, we need to hide the 'separateRealmLabel'
+ // and move the rest of the contents up appropriately to fill the space.
+ NSRect mainLabelFrame = [mainLabel frame];
+ NSRect realmFrame = [separateRealmLabel frame];
+ NSRect smallLabelFrame = [smallLabel frame];
+
+ // Find the distance between the 'smallLabel' and the label above it, initially the 'separateRealmLabel'.
+ // Then, find the current distance between 'smallLabel' and 'mainLabel'. The difference between
+ // these two is how much shorter the panel needs to be after hiding the 'separateRealmLabel'.
+ CGFloat smallLabelMargin = NSMinY(realmFrame) - NSMaxY(smallLabelFrame);
+ CGFloat smallLabelToMainLabel = NSMinY(mainLabelFrame) - NSMaxY(smallLabelFrame);
+ CGFloat deltaMargin = smallLabelToMainLabel - smallLabelMargin;
+
+ [separateRealmLabel setHidden:YES];
+ NSRect windowFrame = [panel frame];
+ windowFrame.size.height -= deltaMargin;
+ [panel setFrame:windowFrame display:NO];
+ }
+
+ [mainLabel setStringValue:message];
+ [mainLabel sizeToFitAndAdjustWindowHeight];
+
+ if ([space receivesCredentialSecurely] || [[space protocol] _webkit_isCaseInsensitiveEqualToString:@"https"]) {
+ [smallLabel setStringValue:
+ UI_STRING_INTERNAL("Your login information will be sent securely.",
+ "message in authentication panel")];
+ } else {
+ // Use this scary-sounding phrase only when using basic auth with non-https servers. In this case the password
+ // could be sniffed by intercepting the network traffic.
+ [smallLabel setStringValue:
+ UI_STRING_INTERNAL("Your password will be sent unencrypted.",
+ "message in authentication panel")];
+ }
+
+ if ([[chall proposedCredential] user] != nil) {
+ [username setStringValue:[[chall proposedCredential] user]];
+ [panel setInitialFirstResponder:password];
+ } else {
+ [username setStringValue:@""];
+ [password setStringValue:@""];
+ [panel setInitialFirstResponder:username];
+ }
+}
+
+- (void)runAsModalDialogWithChallenge:(NSURLAuthenticationChallenge *)chall
+{
+ [self setUpForChallenge:chall];
+
+ usingSheet = FALSE;
+ [chall retain];
+ NSURLCredential *credential = nil;
+
+ if ([[NSApplication sharedApplication] runModalForWindow:panel] == 0) {
+ credential = [[NSURLCredential alloc] initWithUser:[username stringValue] password:[password stringValue] persistence:([remember state] == NSOnState) ? NSURLCredentialPersistencePermanent : NSURLCredentialPersistenceForSession];
+ }
+
+ [callback performSelector:selector withObject:chall withObject:credential];
+ [credential release];
+ [chall release];
+}
+
+- (void)runAsSheetOnWindow:(NSWindow *)window withChallenge:(NSURLAuthenticationChallenge *)chall
+{
+ ASSERT(!usingSheet);
+
+ [self setUpForChallenge:chall];
+
+ usingSheet = TRUE;
+ challenge = [chall retain];
+
+ [[NSApplication sharedApplication] beginSheet:panel modalForWindow:window modalDelegate:self didEndSelector:@selector(sheetDidEnd:returnCode:contextInfo:) contextInfo:NULL];
+}
+
+- (void)sheetDidEnd:(NSWindow *)sheet returnCode:(int)returnCode contextInfo:(void *)contextInfo
+{
+ NSURLCredential *credential = nil;
+ NSURLAuthenticationChallenge *chall;
+
+ ASSERT(usingSheet);
+ ASSERT(challenge != nil);
+
+ if (returnCode == 0) {
+ credential = [[NSURLCredential alloc] initWithUser:[username stringValue] password:[password stringValue] persistence:([remember state] == NSOnState) ? NSURLCredentialPersistencePermanent : NSURLCredentialPersistenceForSession];
+ }
+
+ // We take this tricky approach to nilling out and releasing the challenge
+ // because the callback below might remove our last ref.
+ chall = challenge;
+ challenge = nil;
+ [callback performSelector:selector withObject:chall withObject:credential];
+ [credential release];
+ [chall release];
+}
+
+@end
+
+@implementation NonBlockingPanel
+
+- (BOOL)_blocksActionWhenModal:(SEL)theAction
+{
+ // This override of a private AppKit method allows the user to quit when a login dialog
+ // is onscreen, which is nice in general but in particular prevents pathological cases
+ // like 3744583 from requiring a Force Quit.
+ //
+ // It would be nice to allow closing the individual window as well as quitting the app when
+ // a login sheet is up, but this _blocksActionWhenModal: mechanism doesn't support that.
+ // This override matches those in NSOpenPanel and NSToolbarConfigPanel.
+ if (theAction == @selector(terminate:)) {
+ return NO;
+ }
+ return YES;
+}
+
+@end
diff --git a/Source/WebKit/mac/Panels/WebPanelAuthenticationHandler.h b/Source/WebKit/mac/Panels/WebPanelAuthenticationHandler.h
new file mode 100644
index 0000000..ac5f449
--- /dev/null
+++ b/Source/WebKit/mac/Panels/WebPanelAuthenticationHandler.h
@@ -0,0 +1,45 @@
+/*
+ * Copyright (C) 2005 Apple Computer, 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.
+ * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE 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 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 <Foundation/Foundation.h>
+#import <Foundation/NSURLCredentialStorage.h>
+
+@class NSURLAuthenticationChallenge;
+
+@interface WebPanelAuthenticationHandler : NSObject
+{
+ NSMutableDictionary *windowToPanel;
+ NSMutableDictionary *challengeToWindow;
+ NSMutableDictionary *windowToChallengeQueue;
+}
+
++ (id)sharedHandler;
+- (void)startAuthentication:(NSURLAuthenticationChallenge *)challenge window:(NSWindow *)w;
+- (void)cancelAuthentication:(NSURLAuthenticationChallenge *)challenge;
+
+@end
diff --git a/Source/WebKit/mac/Panels/WebPanelAuthenticationHandler.m b/Source/WebKit/mac/Panels/WebPanelAuthenticationHandler.m
new file mode 100644
index 0000000..694bba5
--- /dev/null
+++ b/Source/WebKit/mac/Panels/WebPanelAuthenticationHandler.m
@@ -0,0 +1,164 @@
+/*
+ * Copyright (C) 2005 Apple Computer, 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.
+ * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of
+ * its contributors may be used to endorse or promote products derived
+ * from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE 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 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 <WebKit/WebPanelAuthenticationHandler.h>
+
+#import <Foundation/NSURLAuthenticationChallenge.h>
+#import <WebKit/WebAuthenticationPanel.h>
+#import <WebKit/WebNSDictionaryExtras.h>
+#import <wtf/Assertions.h>
+
+static NSString *WebModalDialogPretendWindow = @"WebModalDialogPretendWindow";
+
+@implementation WebPanelAuthenticationHandler
+
+WebPanelAuthenticationHandler *sharedHandler;
+
++ (id)sharedHandler
+{
+ if (sharedHandler == nil)
+ sharedHandler = [[self alloc] init];
+ return sharedHandler;
+}
+
+-(id)init
+{
+ self = [super init];
+ if (self != nil) {
+ windowToPanel = [[NSMutableDictionary alloc] init];
+ challengeToWindow = [[NSMutableDictionary alloc] init];
+ windowToChallengeQueue = [[NSMutableDictionary alloc] init];
+ }
+ return self;
+}
+
+-(void)dealloc
+{
+ [windowToPanel release];
+ [challengeToWindow release];
+ [windowToChallengeQueue release];
+ [super dealloc];
+}
+
+-(void)enqueueChallenge:(NSURLAuthenticationChallenge *)challenge forWindow:(id)window
+{
+ NSMutableArray *queue = [windowToChallengeQueue objectForKey:window];
+ if (queue == nil) {
+ queue = [[NSMutableArray alloc] init];
+ [windowToChallengeQueue _webkit_setObject:queue forUncopiedKey:window];
+ [queue release];
+ }
+ [queue addObject:challenge];
+}
+
+-(void)tryNextChallengeForWindow:(id)window
+{
+ NSMutableArray *queue = [windowToChallengeQueue objectForKey:window];
+ if (queue == nil) {
+ return;
+ }
+
+ NSURLAuthenticationChallenge *challenge = [[queue objectAtIndex:0] retain];
+ [queue removeObjectAtIndex:0];
+ if ([queue count] == 0) {
+ [windowToChallengeQueue removeObjectForKey:window];
+ }
+
+ NSURLCredential *latestCredential = [[NSURLCredentialStorage sharedCredentialStorage] defaultCredentialForProtectionSpace:[challenge protectionSpace]];
+
+ if ([latestCredential hasPassword]) {
+ [[challenge sender] useCredential:latestCredential forAuthenticationChallenge:challenge];
+ [challenge release];
+ return;
+ }
+
+ [self startAuthentication:challenge window:(window == WebModalDialogPretendWindow ? nil : window)];
+ [challenge release];
+}
+
+
+-(void)startAuthentication:(NSURLAuthenticationChallenge *)challenge window:(NSWindow *)w
+{
+ id window = w ? (id)w : (id)WebModalDialogPretendWindow;
+
+ if ([windowToPanel objectForKey:window] != nil) {
+ [self enqueueChallenge:challenge forWindow:window];
+ return;
+ }
+
+ // In this case, we have an attached sheet that's not one of our
+ // authentication panels, so enqueing is not an option. Just
+ // cancel loading instead, since this case is fairly
+ // unlikely (how would you be loading a page if you had an error
+ // sheet up?)
+ if ([w attachedSheet] != nil) {
+ [[challenge sender] cancelAuthenticationChallenge:challenge];
+ return;
+ }
+
+ WebAuthenticationPanel *panel = [[WebAuthenticationPanel alloc] initWithCallback:self selector:@selector(_authenticationDoneWithChallenge:result:)];
+ [challengeToWindow _webkit_setObject:window forUncopiedKey:challenge];
+ [windowToPanel _webkit_setObject:panel forUncopiedKey:window];
+ [panel release];
+
+ if (window == WebModalDialogPretendWindow) {
+ [panel runAsModalDialogWithChallenge:challenge];
+ } else {
+ [panel runAsSheetOnWindow:window withChallenge:challenge];
+ }
+}
+
+-(void)cancelAuthentication:(NSURLAuthenticationChallenge *)challenge
+{
+ id window = [challengeToWindow objectForKey:challenge];
+ if (window != nil) {
+ WebAuthenticationPanel *panel = [windowToPanel objectForKey:window];
+ [panel cancel:self];
+ }
+}
+
+-(void)_authenticationDoneWithChallenge:(NSURLAuthenticationChallenge *)challenge result:(NSURLCredential *)credential
+{
+ id window = [challengeToWindow objectForKey:challenge];
+ [window retain];
+ if (window != nil) {
+ [windowToPanel removeObjectForKey:window];
+ [challengeToWindow removeObjectForKey:challenge];
+ }
+
+ if (credential == nil) {
+ [[challenge sender] continueWithoutCredentialForAuthenticationChallenge:challenge];
+ } else {
+ [[challenge sender] useCredential:credential forAuthenticationChallenge:challenge];
+ }
+
+ [self tryNextChallengeForWindow:window];
+ [window release];
+}
+
+@end