diff options
Diffstat (limited to 'Source/WebKit/mac/Panels')
| -rw-r--r-- | Source/WebKit/mac/Panels/English.lproj/WebAuthenticationPanel.nib/designable.nib | 1726 | ||||
| -rw-r--r-- | Source/WebKit/mac/Panels/English.lproj/WebAuthenticationPanel.nib/keyedobjects.nib | bin | 0 -> 10192 bytes | |||
| -rw-r--r-- | Source/WebKit/mac/Panels/WebAuthenticationPanel.h | 69 | ||||
| -rw-r--r-- | Source/WebKit/mac/Panels/WebAuthenticationPanel.m | 289 | ||||
| -rw-r--r-- | Source/WebKit/mac/Panels/WebPanelAuthenticationHandler.h | 45 | ||||
| -rw-r--r-- | Source/WebKit/mac/Panels/WebPanelAuthenticationHandler.m | 164 |
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"><-- do not localize; will contain realm name --></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 Binary files differnew file mode 100644 index 0000000..42a4b1d --- /dev/null +++ b/Source/WebKit/mac/Panels/English.lproj/WebAuthenticationPanel.nib/keyedobjects.nib 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 |
