Compare commits
3 Commits
CAMINO_1_0
...
Bugzilla_P
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b52a1dc48a | ||
|
|
48b5f960fd | ||
|
|
73bf11394f |
File diff suppressed because it is too large
Load Diff
@@ -1,32 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>English</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>Appearance</string>
|
||||
<key>CFBundleGetInfoString</key>
|
||||
<string></string>
|
||||
<key>CFBundleIconFile</key>
|
||||
<string>Appearance.tiff</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>org.mozilla.chimera.preference.appearance</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>Appearance</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>BNDL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string></string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>MOZC</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>0.0.1d1</string>
|
||||
<key>NSMainNibFile</key>
|
||||
<string>Appearance</string>
|
||||
<key>NSPrincipalClass</key>
|
||||
<string>OrgMozillaChimeraPreferenceAppearance</string>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -1,189 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>English</string>
|
||||
<key>CFBundleDocumentTypes</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>CFBundleTypeExtensions</key>
|
||||
<array>
|
||||
<string>html</string>
|
||||
<string>htm</string>
|
||||
<string>shtml</string>
|
||||
<string>xml</string>
|
||||
<string>xhtml</string>
|
||||
<string>shtm</string>
|
||||
<string>xhtm</string>
|
||||
</array>
|
||||
<key>CFBundleTypeIconFile</key>
|
||||
<string>fileHtml.icns</string>
|
||||
<key>CFBundleTypeName</key>
|
||||
<string>HTML Document</string>
|
||||
<key>CFBundleTypeOSTypes</key>
|
||||
<array>
|
||||
<string>HTML</string>
|
||||
</array>
|
||||
<key>CFBundleTypeRole</key>
|
||||
<string>Viewer</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CFBundleTypeExtensions</key>
|
||||
<array>
|
||||
<string>txt</string>
|
||||
<string>text</string>
|
||||
</array>
|
||||
<key>CFBundleTypeIconFile</key>
|
||||
<string>fileBookmark.icns</string>
|
||||
<key>CFBundleTypeName</key>
|
||||
<string>Text Document</string>
|
||||
<key>CFBundleTypeOSTypes</key>
|
||||
<array>
|
||||
<string>TEXT</string>
|
||||
<string>utxt</string>
|
||||
</array>
|
||||
<key>CFBundleTypeRole</key>
|
||||
<string>Viewer</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CFBundleTypeExtensions</key>
|
||||
<array>
|
||||
<string>jpeg</string>
|
||||
<string>jpg</string>
|
||||
<string>png</string>
|
||||
<string>gif</string>
|
||||
</array>
|
||||
<key>CFBundleTypeIconFile</key>
|
||||
<string>fileBookmark.icns</string>
|
||||
<key>CFBundleTypeName</key>
|
||||
<string>Image Document</string>
|
||||
<key>CFBundleTypeOSTypes</key>
|
||||
<array>
|
||||
<string>GIFf</string>
|
||||
<string>JPEG</string>
|
||||
<string>PNGf</string>
|
||||
</array>
|
||||
<key>CFBundleTypeRole</key>
|
||||
<string>Viewer</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CFBundleTypeExtensions</key>
|
||||
<array>
|
||||
<string>webloc</string>
|
||||
<string>url</string>
|
||||
</array>
|
||||
<key>CFBundleTypeIconFile</key>
|
||||
<string>fileBookmark.icns</string>
|
||||
<key>CFBundleTypeName</key>
|
||||
<string>Web Document</string>
|
||||
<key>CFBundleTypeOSTypes</key>
|
||||
<array>
|
||||
<string>ilht</string>
|
||||
</array>
|
||||
<key>CFBundleTypeRole</key>
|
||||
<string>Viewer</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>Camino</string>
|
||||
<key>CFBundleGetInfoString</key>
|
||||
<string>Camino 1.0a1, © 1998-2005 Contributors</string>
|
||||
<key>CFBundleIconFile</key>
|
||||
<string>appicon.icns</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>org.mozilla.camino</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>Camino</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.0a1</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>MOZC</string>
|
||||
<key>CFBundleURLTypes</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>CFBundleURLIconFile</key>
|
||||
<string>fileHtml.icns</string>
|
||||
<key>CFBundleURLName</key>
|
||||
<string>http URL</string>
|
||||
<key>CFBundleURLSchemes</key>
|
||||
<array>
|
||||
<string>http</string>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CFBundleURLIconFile</key>
|
||||
<string>fileHtml.icns</string>
|
||||
<key>CFBundleURLName</key>
|
||||
<string>https URL</string>
|
||||
<key>CFBundleURLSchemes</key>
|
||||
<array>
|
||||
<string>https</string>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CFBundleURLName</key>
|
||||
<string>ftp URL</string>
|
||||
<key>CFBundleURLSchemes</key>
|
||||
<array>
|
||||
<string>ftp</string>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CFBundleURLName</key>
|
||||
<string>gopher URL</string>
|
||||
<key>CFBundleURLSchemes</key>
|
||||
<array>
|
||||
<string>gopher</string>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CFBundleURLName</key>
|
||||
<string>file URL</string>
|
||||
<key>CFBundleURLSchemes</key>
|
||||
<array>
|
||||
<string>file</string>
|
||||
</array>
|
||||
</dict>
|
||||
</array>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1.0a1</string>
|
||||
<key>NSAppleScriptEnabled</key>
|
||||
<true/>
|
||||
<key>NSMainNibFile</key>
|
||||
<string>MainMenu</string>
|
||||
<key>NSPrincipalClass</key>
|
||||
<string>NSApplication</string>
|
||||
<key>NSServices</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>NSKeyEquivalent</key>
|
||||
<dict>
|
||||
<key>default</key>
|
||||
<string>U</string>
|
||||
</dict>
|
||||
<key>NSMenuItem</key>
|
||||
<dict>
|
||||
<key>default</key>
|
||||
<string>Open URL in Camino</string>
|
||||
</dict>
|
||||
<key>NSMessage</key>
|
||||
<string>openURL</string>
|
||||
<key>NSPortName</key>
|
||||
<string>Camino</string>
|
||||
<key>NSSendTypes</key>
|
||||
<array>
|
||||
<string>NSStringPboardType</string>
|
||||
</array>
|
||||
</dict>
|
||||
</array>
|
||||
<key>mozNewProfileDirName</key>
|
||||
<string>Camino</string>
|
||||
<key>mozOldProfileDirName</key>
|
||||
<string>Chimera</string>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -1,189 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>English</string>
|
||||
<key>CFBundleDocumentTypes</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>CFBundleTypeExtensions</key>
|
||||
<array>
|
||||
<string>html</string>
|
||||
<string>htm</string>
|
||||
<string>shtml</string>
|
||||
<string>xml</string>
|
||||
<string>xhtml</string>
|
||||
<string>shtm</string>
|
||||
<string>xhtm</string>
|
||||
</array>
|
||||
<key>CFBundleTypeIconFile</key>
|
||||
<string>fileHtml.icns</string>
|
||||
<key>CFBundleTypeName</key>
|
||||
<string>HTML Document</string>
|
||||
<key>CFBundleTypeOSTypes</key>
|
||||
<array>
|
||||
<string>HTML</string>
|
||||
</array>
|
||||
<key>CFBundleTypeRole</key>
|
||||
<string>Viewer</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CFBundleTypeExtensions</key>
|
||||
<array>
|
||||
<string>txt</string>
|
||||
<string>text</string>
|
||||
</array>
|
||||
<key>CFBundleTypeIconFile</key>
|
||||
<string>fileBookmark.icns</string>
|
||||
<key>CFBundleTypeName</key>
|
||||
<string>Text Document</string>
|
||||
<key>CFBundleTypeOSTypes</key>
|
||||
<array>
|
||||
<string>TEXT</string>
|
||||
<string>utxt</string>
|
||||
</array>
|
||||
<key>CFBundleTypeRole</key>
|
||||
<string>Viewer</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CFBundleTypeExtensions</key>
|
||||
<array>
|
||||
<string>jpeg</string>
|
||||
<string>jpg</string>
|
||||
<string>png</string>
|
||||
<string>gif</string>
|
||||
</array>
|
||||
<key>CFBundleTypeIconFile</key>
|
||||
<string>fileBookmark.icns</string>
|
||||
<key>CFBundleTypeName</key>
|
||||
<string>Image Document</string>
|
||||
<key>CFBundleTypeOSTypes</key>
|
||||
<array>
|
||||
<string>GIFf</string>
|
||||
<string>JPEG</string>
|
||||
<string>PNGf</string>
|
||||
</array>
|
||||
<key>CFBundleTypeRole</key>
|
||||
<string>Viewer</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CFBundleTypeExtensions</key>
|
||||
<array>
|
||||
<string>webloc</string>
|
||||
<string>url</string>
|
||||
</array>
|
||||
<key>CFBundleTypeIconFile</key>
|
||||
<string>fileBookmark.icns</string>
|
||||
<key>CFBundleTypeName</key>
|
||||
<string>Web Document</string>
|
||||
<key>CFBundleTypeOSTypes</key>
|
||||
<array>
|
||||
<string>ilht</string>
|
||||
</array>
|
||||
<key>CFBundleTypeRole</key>
|
||||
<string>Viewer</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>Camino</string>
|
||||
<key>CFBundleGetInfoString</key>
|
||||
<string>Camino 1.0a1, © 1998-2005 Contributors</string>
|
||||
<key>CFBundleIconFile</key>
|
||||
<string>appicon.icns</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>org.mozilla.camino</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>Camino</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>1.0a1</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>MOZC</string>
|
||||
<key>CFBundleURLTypes</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>CFBundleURLIconFile</key>
|
||||
<string>fileHtml.icns</string>
|
||||
<key>CFBundleURLName</key>
|
||||
<string>http URL</string>
|
||||
<key>CFBundleURLSchemes</key>
|
||||
<array>
|
||||
<string>http</string>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CFBundleURLIconFile</key>
|
||||
<string>fileHtml.icns</string>
|
||||
<key>CFBundleURLName</key>
|
||||
<string>https URL</string>
|
||||
<key>CFBundleURLSchemes</key>
|
||||
<array>
|
||||
<string>https</string>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CFBundleURLName</key>
|
||||
<string>ftp URL</string>
|
||||
<key>CFBundleURLSchemes</key>
|
||||
<array>
|
||||
<string>ftp</string>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CFBundleURLName</key>
|
||||
<string>gopher URL</string>
|
||||
<key>CFBundleURLSchemes</key>
|
||||
<array>
|
||||
<string>gopher</string>
|
||||
</array>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>CFBundleURLName</key>
|
||||
<string>file URL</string>
|
||||
<key>CFBundleURLSchemes</key>
|
||||
<array>
|
||||
<string>file</string>
|
||||
</array>
|
||||
</dict>
|
||||
</array>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1.0a1</string>
|
||||
<key>NSAppleScriptEnabled</key>
|
||||
<true/>
|
||||
<key>NSMainNibFile</key>
|
||||
<string>MainMenu</string>
|
||||
<key>NSPrincipalClass</key>
|
||||
<string>NSApplication</string>
|
||||
<key>NSServices</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>NSKeyEquivalent</key>
|
||||
<dict>
|
||||
<key>default</key>
|
||||
<string>U</string>
|
||||
</dict>
|
||||
<key>NSMenuItem</key>
|
||||
<dict>
|
||||
<key>default</key>
|
||||
<string>Open URL in Camino</string>
|
||||
</dict>
|
||||
<key>NSMessage</key>
|
||||
<string>openURL</string>
|
||||
<key>NSPortName</key>
|
||||
<string>Camino</string>
|
||||
<key>NSSendTypes</key>
|
||||
<array>
|
||||
<string>NSStringPboardType</string>
|
||||
</array>
|
||||
</dict>
|
||||
</array>
|
||||
<key>mozNewProfileDirName</key>
|
||||
<string>Camino</string>
|
||||
<key>mozOldProfileDirName</key>
|
||||
<string>Chimera</string>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -1,26 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>English</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>Downloads</string>
|
||||
<key>CFBundleIconFile</key>
|
||||
<string>Downloads.tiff</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>org.mozilla.camino.preference.downloads</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>BNDL</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>MOZC</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1.0</string>
|
||||
<key>NSMainNibFile</key>
|
||||
<string>Downloads</string>
|
||||
<key>NSPrincipalClass</key>
|
||||
<string>OrgMozillaChimeraPreferenceDownloads</string>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -1,26 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>English</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>History</string>
|
||||
<key>CFBundleIconFile</key>
|
||||
<string>History.tiff</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>org.mozilla.camino.preference.history</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>BNDL</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>MOZC</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1.0</string>
|
||||
<key>NSMainNibFile</key>
|
||||
<string>History</string>
|
||||
<key>NSPrincipalClass</key>
|
||||
<string>OrgMozillaChimeraPreferenceHistory</string>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -1,32 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>English</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>Navigation</string>
|
||||
<key>CFBundleGetInfoString</key>
|
||||
<string></string>
|
||||
<key>CFBundleIconFile</key>
|
||||
<string>Navigation.tiff</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>org.mozilla.chimera.preference.navigation</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>Navigation</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>BNDL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string></string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>MOZC</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>0.0.1d1</string>
|
||||
<key>NSMainNibFile</key>
|
||||
<string>Navigation</string>
|
||||
<key>NSPrincipalClass</key>
|
||||
<string>OrgMozillaNavigatorPreferenceNavigation</string>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -1,34 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>English</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>Personal</string>
|
||||
<key>CFBundleGetInfoString</key>
|
||||
<string></string>
|
||||
<key>CFBundleIconFile</key>
|
||||
<string>Personal.tiff</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>org.mozilla.chimera.preference.personal</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>Personal</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>BNDL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string></string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>0.0.1d1</string>
|
||||
<key>NSMainNibFile</key>
|
||||
<string>Personal</string>
|
||||
<key>NSPrefPaneIconFIle</key>
|
||||
<string>Personal.tiff</string>
|
||||
<key>NSPrincipalClass</key>
|
||||
<string>OrgMozillaChimeraPreferencePersonal</string>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -1,32 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>English</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>Privacy</string>
|
||||
<key>CFBundleGetInfoString</key>
|
||||
<string></string>
|
||||
<key>CFBundleIconFile</key>
|
||||
<string>Privacy.tiff</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>org.mozilla.chimera.preference.privacy</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>Privacy</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>BNDL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string></string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>MOZC</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>0.0.1d1</string>
|
||||
<key>NSMainNibFile</key>
|
||||
<string>Privacy</string>
|
||||
<key>NSPrincipalClass</key>
|
||||
<string>OrgMozillaChimeraPreferencePrivacy</string>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -1,32 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>English</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>Security</string>
|
||||
<key>CFBundleGetInfoString</key>
|
||||
<string></string>
|
||||
<key>CFBundleIconFile</key>
|
||||
<string>Security.tiff</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>org.mozilla.chimera.preference.security</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>Security</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>BNDL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string></string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>MOZC</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>0.0.1d1</string>
|
||||
<key>NSMainNibFile</key>
|
||||
<string>Security</string>
|
||||
<key>NSPrincipalClass</key>
|
||||
<string>OrgMozillaChimeraPreferenceSecurity</string>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -1,28 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>English</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>Tabs</string>
|
||||
<key>CFBundleIconFile</key>
|
||||
<string>Tabs.tiff</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>org.mozilla.camino.preference.tabs</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>Tabbed Browsing</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>BNDL</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>MOZC</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>1.0</string>
|
||||
<key>NSMainNibFile</key>
|
||||
<string>Tabs</string>
|
||||
<key>NSPrincipalClass</key>
|
||||
<string>OrgMozillaChimeraPreferenceTabs</string>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -1,32 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>English</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>WebFeatures</string>
|
||||
<key>CFBundleGetInfoString</key>
|
||||
<string></string>
|
||||
<key>CFBundleIconFile</key>
|
||||
<string>WebFeatures.tiff</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>org.mozilla.chimera.preference.webfeatures</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>Web Features</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>BNDL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string></string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>MOZC</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>0.0.1d1</string>
|
||||
<key>NSMainNibFile</key>
|
||||
<string>WebFeatures</string>
|
||||
<key>NSPrincipalClass</key>
|
||||
<string>OrgMozillaChimeraPreferenceWebFeatures</string>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -1,92 +0,0 @@
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla Public License Version
|
||||
# 1.1 (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
# http://www.mozilla.org/MPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS IS" basis,
|
||||
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
# for the specific language governing rights and limitations under the
|
||||
# License.
|
||||
#
|
||||
# The Original Code is mozilla.org code.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# Netscape Communications.
|
||||
# Portions created by the Initial Developer are Copyright (C) 2003
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
# Brian Ryner <bryner@brianryner.com>
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
DEPTH = ..
|
||||
topsrcdir = @top_srcdir@
|
||||
srcdir = @srcdir@
|
||||
VPATH = @srcdir@
|
||||
|
||||
include $(DEPTH)/config/autoconf.mk
|
||||
|
||||
APP_NAME = Camino
|
||||
|
||||
ifdef MOZ_DEBUG
|
||||
BUILDSTYLE = Development
|
||||
else
|
||||
ifdef CHIMERA_OPT_SYMBOLS
|
||||
BUILDSTYLE = DeploymentSymbols
|
||||
else
|
||||
BUILDSTYLE = Deployment
|
||||
endif
|
||||
endif
|
||||
|
||||
ifdef BUILD_STATIC_LIBS
|
||||
TARGET = CaminoStatic
|
||||
else
|
||||
TARGET = Camino
|
||||
endif
|
||||
|
||||
GARBAGE_DIRS += build
|
||||
|
||||
include $(topsrcdir)/config/rules.mk
|
||||
|
||||
unexport CC CXX
|
||||
|
||||
ABS_topsrcdir := $(shell cd $(topsrcdir); pwd)
|
||||
|
||||
export::
|
||||
mkdir -p ./wallet/tables && ln -sf $(ABS_topsrcdir)/extensions/wallet/src/*.tbl ./wallet/tables
|
||||
ifneq ($(ABS_topsrcdir),$(MOZ_BUILD_ROOT))
|
||||
rsync -a --exclude .DS_Store --exclude "CVS/" --exclude "*.mode1" --exclude "*.pbxuser" $(srcdir)/Camino.xcode .
|
||||
ln -fs $(srcdir)/src
|
||||
ln -fs $(srcdir)/resources
|
||||
ln -fs $(srcdir)/PreferencePanes
|
||||
ln -fs $(srcdir)/Info-*.plist .
|
||||
endif
|
||||
|
||||
clean clobber repackage::
|
||||
rm -rf $(DIST)/$(APP_NAME).app
|
||||
|
||||
libs::
|
||||
$(PBBUILD) -project Camino.xcode -target $(TARGET) -buildstyle $(BUILDSTYLE) $(PBBUILD_SETTINGS)
|
||||
|
||||
libs repackage::
|
||||
rsync -a --copy-unsafe-links $(XCODE_PRODUCT_DIR)/Camino.app/ $(DIST)/$(APP_NAME).app
|
||||
|
||||
# convenience target for PB script build phases
|
||||
echo_srcdir:
|
||||
@echo $(srcdir)
|
||||
@@ -1,107 +0,0 @@
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
/* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Netscape Communications Corporation.
|
||||
* Portions created by the Initial Developer are Copyright (C) 2002
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
* Simon Fraser <sfraser@netscape.com>
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
#import "PreferencePaneBase.h"
|
||||
|
||||
@interface OrgMozillaChimeraPreferenceAppearance : PreferencePaneBase
|
||||
{
|
||||
IBOutlet NSTabView* mTabView;
|
||||
|
||||
// colors tab
|
||||
IBOutlet NSColorWell* mTextColorWell;
|
||||
IBOutlet NSColorWell* mBackgroundColorWell;
|
||||
|
||||
IBOutlet NSColorWell* mVisitedLinksColorWell;
|
||||
IBOutlet NSColorWell* mUnvisitedLinksColorWell;
|
||||
|
||||
IBOutlet NSButton* mUnderlineLinksCheckbox;
|
||||
IBOutlet NSButton* mUseMyColorsCheckbox;
|
||||
|
||||
IBOutlet NSButton* mColorsResetButton;
|
||||
|
||||
// fonts tab
|
||||
IBOutlet NSButton* mChooseProportionalFontButton;
|
||||
IBOutlet NSButton* mChooseMonospaceFontButton;
|
||||
IBOutlet NSPopUpButton* mFontRegionPopup;
|
||||
|
||||
IBOutlet NSTextField* mFontSampleProportional;
|
||||
IBOutlet NSTextField* mFontSampleMonospace;
|
||||
|
||||
IBOutlet NSTextField* mProportionalSampleLabel;
|
||||
IBOutlet NSTextField* mProportionalSubLabel;
|
||||
|
||||
IBOutlet NSButton* mFontsResetButton;
|
||||
|
||||
// advanced panel stuff
|
||||
IBOutlet NSPanel* mAdvancedFontsDialog;
|
||||
IBOutlet NSPopUpButton* mSerifFontPopup;
|
||||
IBOutlet NSPopUpButton* mSansSerifFontPopup;
|
||||
IBOutlet NSPopUpButton* mCursiveFontPopup;
|
||||
IBOutlet NSPopUpButton* mFantasyFontPopup;
|
||||
|
||||
IBOutlet NSPopUpButton* mMinFontSizePopup;
|
||||
IBOutlet NSTextField* mAdvancedFontsLabel;
|
||||
|
||||
IBOutlet NSMatrix* mDefaultFontMatrix;
|
||||
|
||||
NSArray* mRegionMappingTable;
|
||||
|
||||
NSButton* mFontButtonForEditor;
|
||||
|
||||
NSTextView* mPropSampleFieldEditor;
|
||||
NSTextView* mMonoSampleFieldEditor;
|
||||
|
||||
BOOL mFontPanelWasVisible;
|
||||
}
|
||||
|
||||
- (void)mainViewDidLoad;
|
||||
|
||||
- (IBAction)buttonClicked:(id)sender;
|
||||
- (IBAction)colorChanged:(id)sender;
|
||||
|
||||
- (IBAction)proportionalFontChoiceButtonClicked:(id)sender;
|
||||
- (IBAction)monospaceFontChoiceButtonClicked:(id)sender;
|
||||
- (IBAction)fontRegionPopupClicked:(id)sender;
|
||||
|
||||
- (IBAction)showAdvancedFontsDialog:(id)sender;
|
||||
- (IBAction)advancedFontsDone:(id)sender;
|
||||
|
||||
- (IBAction)resetColorsToDefaults:(id)sender;
|
||||
- (IBAction)resetFontsToDefaults:(id)sender;
|
||||
|
||||
@end
|
||||
@@ -1,927 +0,0 @@
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
/* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Netscape Communications Corporation.
|
||||
* Portions created by the Initial Developer are Copyright (C) 2002
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
* Simon Fraser <sfraser@netscape.com>
|
||||
* Asaf Romano <mozilla.mano@sent.com>
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
#import "Appearance.h"
|
||||
|
||||
@interface OrgMozillaChimeraPreferenceAppearance(Private)
|
||||
|
||||
- (void)setupFontRegionPopup;
|
||||
- (void)updateFontPreviews;
|
||||
- (void)loadFontPrefs;
|
||||
- (void)saveFontPrefs;
|
||||
|
||||
- (NSMutableDictionary *)makeDictFromPrefsForFontType:(NSString*)fontType andRegion:(NSString*)regionCode;
|
||||
- (NSMutableDictionary *)makeDefaultFontTypeDictFromPrefsForRegion:(NSString*)regionCode;
|
||||
- (NSMutableDictionary *)makeFontSizesDictFromPrefsForRegion:(NSString*)regionCode;
|
||||
|
||||
- (NSMutableDictionary*)settingsForCurrentRegion;
|
||||
- (NSString*)defaultProportionalFontTypeForCurrentRegion;
|
||||
|
||||
- (void)saveFontNamePrefsForRegion:(NSDictionary*)regionDict forFontType:(NSString*)fontType;
|
||||
- (void)saveDefaultFontTypePrefForRegion:(NSDictionary*)entryDict;
|
||||
- (void)saveFontSizePrefsForRegion:(NSDictionary*)entryDict;
|
||||
|
||||
- (void)setupFontSamplesFromDict:(NSDictionary*)regionDict;
|
||||
- (void)setupFontSampleOfType:(NSString*)fontType fromDict:(NSDictionary*)regionDict;
|
||||
|
||||
- (NSFont*)getFontOfType:(NSString*)fontType fromDict:(NSDictionary*)regionDict;
|
||||
|
||||
- (void)setFontSampleOfType:(NSString *)fontType withFont:(NSFont*)font andDict:(NSMutableDictionary*)regionDict;
|
||||
- (void)saveFont:(NSFont*)font toDict:(NSMutableDictionary*)regionDict forType:(NSString*)fontType;
|
||||
|
||||
- (void)updateFontSampleOfType:(NSString *)fontType;
|
||||
- (NSTextField*)getFontSampleForType:(NSString *)fontType;
|
||||
- (NSString*)getFontSizeType:(NSString*)fontType;
|
||||
|
||||
- (void)buildFontPopup:(NSPopUpButton*)popupButton;
|
||||
|
||||
- (void)setupFontPopup:(NSPopUpButton*)popupButton forType:(NSString*)fontType fromDict:(NSDictionary*)regionDict;
|
||||
- (void)getFontFromPopup:(NSPopUpButton*)popupButton forType:(NSString*)fontType intoDict:(NSDictionary*)regionDict;
|
||||
|
||||
@end
|
||||
|
||||
#pragma mark -
|
||||
|
||||
// We use instances of this class as the field editor, to allow us to catch
|
||||
// |changeFont:| messages.
|
||||
|
||||
@interface SampleTextView : NSTextView
|
||||
{
|
||||
id mPrefPane;
|
||||
}
|
||||
- (void)setPrefPane:(id)inPrefPane;
|
||||
|
||||
@end
|
||||
|
||||
@implementation SampleTextView
|
||||
|
||||
- (void)setPrefPane:(id)inPrefPane
|
||||
{
|
||||
mPrefPane = inPrefPane;
|
||||
}
|
||||
|
||||
- (void)changeFont:(id)sender
|
||||
{
|
||||
[mPrefPane changeFont:sender];
|
||||
}
|
||||
|
||||
- (BOOL)fontManager:(id)theFontManager willIncludeFont:(NSString *)fontName
|
||||
{
|
||||
return [mPrefPane fontManager:theFontManager willIncludeFont:fontName];
|
||||
}
|
||||
|
||||
- (unsigned int)validModesForFontPanel:(NSFontPanel *)fontPanel
|
||||
{
|
||||
return [mPrefPane validModesForFontPanel:fontPanel];
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
#pragma mark -
|
||||
|
||||
@implementation OrgMozillaChimeraPreferenceAppearance
|
||||
|
||||
- (void)dealloc
|
||||
{
|
||||
[mRegionMappingTable release];
|
||||
[mPropSampleFieldEditor release];
|
||||
[mMonoSampleFieldEditor release];
|
||||
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
- (id)initWithBundle:(NSBundle *)bundle
|
||||
{
|
||||
self = [super initWithBundle:bundle];
|
||||
mFontButtonForEditor = nil;
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)mainViewDidLoad
|
||||
{
|
||||
BOOL gotPref;
|
||||
[mUnderlineLinksCheckbox setState:
|
||||
[self getBooleanPref:"browser.underline_anchors" withSuccess:&gotPref]];
|
||||
[mUseMyColorsCheckbox setState:
|
||||
![self getBooleanPref:"browser.display.use_document_colors" withSuccess:&gotPref]];
|
||||
|
||||
// should save and restore this
|
||||
[[NSColorPanel sharedColorPanel] setContinuous:NO];
|
||||
|
||||
[mBackgroundColorWell setColor:[self getColorPref:"browser.display.background_color" withSuccess:&gotPref]];
|
||||
[mTextColorWell setColor:[self getColorPref:"browser.display.foreground_color" withSuccess:&gotPref]];
|
||||
[mUnvisitedLinksColorWell setColor:[self getColorPref:"browser.anchor_color" withSuccess:&gotPref]];
|
||||
[mVisitedLinksColorWell setColor:[self getColorPref:"browser.visited_color" withSuccess:&gotPref]];
|
||||
|
||||
[self setupFontRegionPopup];
|
||||
[self updateFontPreviews];
|
||||
}
|
||||
|
||||
- (void)willUnselect
|
||||
{
|
||||
// time to save stuff
|
||||
[self saveFontPrefs];
|
||||
}
|
||||
|
||||
- (void)tabView:(NSTabView *)tabView didSelectTabViewItem:(NSTabViewItem *)tabViewItem
|
||||
{
|
||||
}
|
||||
|
||||
- (void)setupFontRegionPopup
|
||||
{
|
||||
NSBundle* prefBundle = [NSBundle bundleForClass:[self class]];
|
||||
NSString* resPath = [prefBundle pathForResource:@"RegionMapping" ofType:@"plist"];
|
||||
|
||||
// we use the dictionaries in this array as temporary storage of font
|
||||
// values until the pane is unloaded, at which time they are saved
|
||||
mRegionMappingTable = [[NSArray arrayWithContentsOfFile:resPath] retain];
|
||||
|
||||
[self loadFontPrefs];
|
||||
|
||||
[mFontRegionPopup removeAllItems];
|
||||
for (unsigned int i = 0; i < [mRegionMappingTable count]; i++) {
|
||||
NSDictionary* regionDict = [mRegionMappingTable objectAtIndex:i];
|
||||
[mFontRegionPopup addItemWithTitle:[regionDict objectForKey:@"region"]];
|
||||
}
|
||||
}
|
||||
|
||||
- (IBAction)buttonClicked:(id)sender
|
||||
{
|
||||
if (sender == mUnderlineLinksCheckbox)
|
||||
[self setPref:"browser.underline_anchors" toBoolean:[sender state]];
|
||||
else if (sender == mUseMyColorsCheckbox)
|
||||
[self setPref:"browser.display.use_document_colors" toBoolean:![sender state]];
|
||||
}
|
||||
|
||||
- (IBAction)colorChanged:(id)sender
|
||||
{
|
||||
const char* prefName = NULL;
|
||||
|
||||
if (sender == mBackgroundColorWell)
|
||||
prefName = "browser.display.background_color";
|
||||
else if (sender == mTextColorWell)
|
||||
prefName = "browser.display.foreground_color";
|
||||
else if (sender == mUnvisitedLinksColorWell)
|
||||
prefName = "browser.anchor_color";
|
||||
else if (sender == mVisitedLinksColorWell)
|
||||
prefName = "browser.visited_color";
|
||||
|
||||
if (prefName)
|
||||
[self setPref:prefName toColor:[sender color]];
|
||||
}
|
||||
|
||||
- (IBAction)proportionalFontChoiceButtonClicked:(id)sender
|
||||
{
|
||||
NSFontManager *fontManager = [NSFontManager sharedFontManager];
|
||||
|
||||
NSString* defaultFontType = [self defaultProportionalFontTypeForCurrentRegion];
|
||||
|
||||
NSFont *newFont = [[self getFontSampleForType:defaultFontType] font];
|
||||
mFontButtonForEditor = mChooseProportionalFontButton;
|
||||
[fontManager setSelectedFont:newFont isMultiple:NO];
|
||||
[[fontManager fontPanel:YES] makeKeyAndOrderFront:self];
|
||||
}
|
||||
|
||||
- (IBAction)monospaceFontChoiceButtonClicked:(id)sender
|
||||
{
|
||||
NSFontManager *fontManager = [NSFontManager sharedFontManager];
|
||||
NSFont *newFont = [[self getFontSampleForType:@"monospace"] font];
|
||||
mFontButtonForEditor = mChooseMonospaceFontButton;
|
||||
[fontManager setSelectedFont:newFont isMultiple:NO];
|
||||
[[fontManager fontPanel:YES] makeKeyAndOrderFront:self];
|
||||
}
|
||||
|
||||
- (IBAction)fontRegionPopupClicked:(id)sender
|
||||
{
|
||||
// save the old values
|
||||
[self updateFontPreviews];
|
||||
}
|
||||
|
||||
- (void)loadFontPrefs
|
||||
{
|
||||
for (unsigned int i = 0; i < [mRegionMappingTable count]; i++) {
|
||||
NSMutableDictionary *regionDict = [mRegionMappingTable objectAtIndex:i];
|
||||
NSString *regionCode = [regionDict objectForKey:@"code"];
|
||||
|
||||
/*
|
||||
For each region in the array, there is a dictionary of
|
||||
{
|
||||
code =
|
||||
region = (from localized strings file)
|
||||
|
||||
to which we add here a sub-dictionary per font type, thus:
|
||||
|
||||
serif = {
|
||||
fontfamily = Times-Regular
|
||||
}
|
||||
sans-serif = {
|
||||
fontfamily =
|
||||
missing = // set if a font is missing
|
||||
}
|
||||
cursive = {
|
||||
fontfamily =
|
||||
}
|
||||
monospace = {
|
||||
fontfamily =
|
||||
}
|
||||
|
||||
an entry that stores the default font type:
|
||||
|
||||
defaultFontType = {
|
||||
type =
|
||||
}
|
||||
|
||||
and an entry that stores font sizes:
|
||||
|
||||
fontsize = {
|
||||
variable =
|
||||
fixed =
|
||||
minimum = // optional
|
||||
}
|
||||
|
||||
}
|
||||
*/
|
||||
NSString *regionName = NSLocalizedStringFromTableInBundle(regionCode, @"RegionNames",
|
||||
[NSBundle bundleForClass:[OrgMozillaChimeraPreferenceAppearance class]], @"");
|
||||
[regionDict setObject:regionName forKey:@"region"];
|
||||
|
||||
NSMutableDictionary *serifDict = [self makeDictFromPrefsForFontType:@"serif" andRegion:regionCode];
|
||||
[regionDict setObject:serifDict forKey:@"serif"];
|
||||
|
||||
NSMutableDictionary *sanssDict = [self makeDictFromPrefsForFontType:@"sans-serif" andRegion:regionCode];
|
||||
[regionDict setObject:sanssDict forKey:@"sans-serif"];
|
||||
|
||||
NSMutableDictionary *monoDict = [self makeDictFromPrefsForFontType:@"monospace" andRegion:regionCode];
|
||||
[regionDict setObject:monoDict forKey:@"monospace"];
|
||||
|
||||
NSMutableDictionary *cursDict = [self makeDictFromPrefsForFontType:@"cursive" andRegion:regionCode];
|
||||
[regionDict setObject:cursDict forKey:@"cursive"];
|
||||
|
||||
NSMutableDictionary *fantasyDict = [self makeDictFromPrefsForFontType:@"fantasy" andRegion:regionCode];
|
||||
[regionDict setObject:fantasyDict forKey:@"fantasy"];
|
||||
|
||||
// font sizes dict
|
||||
NSMutableDictionary *sizesDict = [self makeFontSizesDictFromPrefsForRegion:regionCode];
|
||||
[regionDict setObject:sizesDict forKey:@"fontsize"];
|
||||
|
||||
// default font type dict
|
||||
NSMutableDictionary *defaultFontTypeDict = [self makeDefaultFontTypeDictFromPrefsForRegion:regionCode];
|
||||
[regionDict setObject:defaultFontTypeDict forKey:@"defaultFontType"];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)saveFontPrefs
|
||||
{
|
||||
if (!mRegionMappingTable)
|
||||
return;
|
||||
|
||||
for (unsigned int i = 0; i < [mRegionMappingTable count]; i++) {
|
||||
NSMutableDictionary *regionDict = [mRegionMappingTable objectAtIndex:i];
|
||||
|
||||
[self saveFontNamePrefsForRegion:regionDict forFontType:@"serif"];
|
||||
[self saveFontNamePrefsForRegion:regionDict forFontType:@"sans-serif"];
|
||||
[self saveFontNamePrefsForRegion:regionDict forFontType:@"monospace"];
|
||||
[self saveFontNamePrefsForRegion:regionDict forFontType:@"cursive"];
|
||||
[self saveFontNamePrefsForRegion:regionDict forFontType:@"fantasy"];
|
||||
|
||||
[self saveDefaultFontTypePrefForRegion:regionDict];
|
||||
[self saveFontSizePrefsForRegion:regionDict];
|
||||
}
|
||||
}
|
||||
|
||||
#pragma mark -
|
||||
|
||||
- (NSMutableDictionary *)makeDictFromPrefsForFontType:(NSString*)fontType andRegion:(NSString*)regionCode
|
||||
{
|
||||
NSMutableDictionary *fontDict = [NSMutableDictionary dictionaryWithCapacity:1];
|
||||
NSString *fontPrefName = [NSString stringWithFormat:@"font.name.%@.%@", fontType, regionCode];
|
||||
|
||||
BOOL gotPref;
|
||||
NSString *fontName = [self getStringPref:[fontPrefName cString] withSuccess:&gotPref];
|
||||
|
||||
if (gotPref)
|
||||
[fontDict setObject:fontName forKey:@"fontfamily"];
|
||||
|
||||
return fontDict;
|
||||
}
|
||||
|
||||
- (NSMutableDictionary *)makeDefaultFontTypeDictFromPrefsForRegion:(NSString*)regionCode
|
||||
{
|
||||
NSMutableDictionary *fontTypeDict = [NSMutableDictionary dictionaryWithCapacity:1];
|
||||
NSString *prefName = [NSString stringWithFormat:@"font.default.%@", regionCode];
|
||||
|
||||
BOOL gotPref;
|
||||
NSString *fontType = [self getStringPref:[prefName cString] withSuccess:&gotPref];
|
||||
|
||||
if (gotPref)
|
||||
[fontTypeDict setObject:fontType forKey:@"type"];
|
||||
|
||||
return fontTypeDict;
|
||||
}
|
||||
|
||||
- (NSMutableDictionary *)makeFontSizesDictFromPrefsForRegion:(NSString*)regionCode
|
||||
{
|
||||
NSMutableDictionary *fontDict = [NSMutableDictionary dictionaryWithCapacity:2];
|
||||
|
||||
NSString *variableSizePref = [NSString stringWithFormat:@"font.size.variable.%@", regionCode];
|
||||
NSString *fixedSizePref = [NSString stringWithFormat:@"font.size.fixed.%@", regionCode];
|
||||
NSString *minSizePref = [NSString stringWithFormat:@"font.minimum-size.%@", regionCode];
|
||||
|
||||
BOOL gotFixed, gotVariable, gotMinSize;
|
||||
int variableSize = [self getIntPref:[variableSizePref cString] withSuccess:&gotVariable];
|
||||
int fixedSize = [self getIntPref:[fixedSizePref cString] withSuccess:&gotFixed];
|
||||
int minSize = [self getIntPref:[minSizePref cString] withSuccess:&gotMinSize];
|
||||
|
||||
if (gotVariable)
|
||||
[fontDict setObject:[NSNumber numberWithInt:variableSize] forKey:@"variable"];
|
||||
|
||||
if (gotFixed)
|
||||
[fontDict setObject:[NSNumber numberWithInt:fixedSize] forKey:@"fixed"];
|
||||
|
||||
if (gotMinSize)
|
||||
[fontDict setObject:[NSNumber numberWithInt:minSize] forKey:@"minimum"];
|
||||
|
||||
return fontDict;
|
||||
}
|
||||
|
||||
- (NSMutableDictionary*)settingsForCurrentRegion
|
||||
{
|
||||
int selectedRegion = [mFontRegionPopup indexOfSelectedItem];
|
||||
if (selectedRegion == -1)
|
||||
return nil;
|
||||
|
||||
return [mRegionMappingTable objectAtIndex:selectedRegion];
|
||||
}
|
||||
|
||||
- (NSString*)defaultProportionalFontTypeForCurrentRegion
|
||||
{
|
||||
NSDictionary* regionDict = [self settingsForCurrentRegion];
|
||||
return [[regionDict objectForKey:@"defaultFontType"] objectForKey:@"type"];
|
||||
}
|
||||
|
||||
- (void)saveFontNamePrefsForRegion:(NSDictionary*)regionDict forFontType:(NSString*)fontType
|
||||
{
|
||||
NSString *regionCode = [regionDict objectForKey:@"code"];
|
||||
|
||||
if (!regionDict || !fontType || !regionCode) return;
|
||||
|
||||
NSDictionary* fontTypeDict = [regionDict objectForKey:fontType];
|
||||
|
||||
NSString *fontName = [fontTypeDict objectForKey:@"fontfamily"];
|
||||
NSString *fontPrefName = [NSString stringWithFormat:@"font.name.%@.%@", fontType, regionCode];
|
||||
|
||||
if (fontName)
|
||||
[self setPref:[fontPrefName cString] toString:fontName];
|
||||
else
|
||||
// If the preferences were reset to defaults, this key could be gone.
|
||||
[self clearPref:[fontPrefName cString]];
|
||||
}
|
||||
|
||||
- (void)saveFontSizePrefsForRegion:(NSDictionary*)regionDict
|
||||
{
|
||||
NSString *regionCode = [regionDict objectForKey:@"code"];
|
||||
|
||||
NSString *variableSizePref = [NSString stringWithFormat:@"font.size.variable.%@", regionCode];
|
||||
NSString *fixedSizePref = [NSString stringWithFormat:@"font.size.fixed.%@", regionCode];
|
||||
NSString *minSizePref = [NSString stringWithFormat:@"font.minimum-size.%@", regionCode];
|
||||
|
||||
NSDictionary* fontSizeDict = [regionDict objectForKey:@"fontsize"];
|
||||
|
||||
int variableSize = [[fontSizeDict objectForKey:@"variable"] intValue];
|
||||
int fixedSize = [[fontSizeDict objectForKey:@"fixed"] intValue];
|
||||
int minSize = [[fontSizeDict objectForKey:@"minimum"] intValue];
|
||||
|
||||
// If the preferences were reset to defaults, these keys could be gone.
|
||||
if (variableSize)
|
||||
[self setPref:[variableSizePref cString] toInt:variableSize];
|
||||
else
|
||||
[self clearPref:[variableSizePref cString]];
|
||||
|
||||
if (fixedSize)
|
||||
[self setPref:[fixedSizePref cString] toInt:fixedSize];
|
||||
else
|
||||
[self clearPref:[fixedSizePref cString]];
|
||||
|
||||
if (minSize)
|
||||
[self setPref:[minSizePref cString] toInt:minSize];
|
||||
else
|
||||
[self clearPref:[minSizePref cString]];
|
||||
}
|
||||
|
||||
- (void)saveDefaultFontTypePrefForRegion:(NSDictionary*)regionDict
|
||||
{
|
||||
NSString *regionCode = [regionDict objectForKey:@"code"];
|
||||
|
||||
NSString *prefName = [NSString stringWithFormat:@"font.default.%@", regionCode];
|
||||
NSString *value = [[regionDict objectForKey:@"defaultFontType"] objectForKey:@"type"];
|
||||
|
||||
// If the preferences were reset to defaults, this key could be gone.
|
||||
if (value)
|
||||
[self setPref:[prefName cString] toString:value];
|
||||
else
|
||||
[self clearPref:[prefName cString]];
|
||||
}
|
||||
|
||||
#pragma mark -
|
||||
|
||||
- (void)saveFont:(NSFont*)font toDict:(NSMutableDictionary*)regionDict forType:(NSString*)fontType
|
||||
{
|
||||
NSMutableDictionary *fontTypeDict = [regionDict objectForKey:fontType];
|
||||
NSMutableDictionary *fontSizeDict = [regionDict objectForKey:@"fontsize"];
|
||||
|
||||
if (font)
|
||||
{
|
||||
// clear any missing flag
|
||||
[fontTypeDict removeObjectForKey:@"missing"];
|
||||
|
||||
[fontTypeDict setObject:[font familyName] forKey:@"fontfamily"];
|
||||
[fontSizeDict setObject:[NSNumber numberWithInt:(int)[font pointSize]] forKey:[self getFontSizeType:fontType]];
|
||||
}
|
||||
}
|
||||
|
||||
- (NSFont*)getFontOfType:(NSString*)fontType fromDict:(NSDictionary*)regionDict
|
||||
{
|
||||
NSDictionary *fontTypeDict = [regionDict objectForKey:fontType];
|
||||
NSDictionary *fontSizeDict = [regionDict objectForKey:@"fontsize"];
|
||||
|
||||
NSString *fontName = [fontTypeDict objectForKey:@"fontfamily"];
|
||||
int fontSize = [[fontSizeDict objectForKey:[self getFontSizeType:fontType]] intValue];
|
||||
|
||||
NSFont *returnFont = nil;
|
||||
|
||||
if (fontName && fontSize > 0) {
|
||||
// we can't use [NSFont fontWithName] here, because we only store font
|
||||
// family names in the prefs file. So use the font manager instead
|
||||
// returnFont = [NSFont fontWithName:fontName size:fontSize];
|
||||
returnFont = [[NSFontManager sharedFontManager] fontWithFamily:fontName traits:0 weight:5 size:fontSize];
|
||||
} else if (fontName) {
|
||||
// no size
|
||||
returnFont = [[NSFontManager sharedFontManager] fontWithFamily:fontName traits:0 weight:5 size:16.0];
|
||||
}
|
||||
|
||||
// if still no font, get defaults
|
||||
if (fontName == nil && returnFont == nil)
|
||||
returnFont = ([fontType isEqualToString:@"monospace"]) ?
|
||||
[NSFont userFixedPitchFontOfSize:14.0] :
|
||||
[NSFont userFontOfSize:16.0];
|
||||
|
||||
// we return nil if the font was not found
|
||||
return returnFont;
|
||||
}
|
||||
|
||||
- (void)setupFontSamplesFromDict:(NSDictionary*)regionDict
|
||||
{
|
||||
// For proportional, show either serif or sans-serif font,
|
||||
// per region's default-font-type (font.default.%regionCode% pref)
|
||||
NSString *defaultFontType = [[regionDict objectForKey:@"defaultFontType"] objectForKey:@"type"];
|
||||
[self setupFontSampleOfType:defaultFontType fromDict:regionDict];
|
||||
[self setupFontSampleOfType:@"monospace" fromDict:regionDict];
|
||||
}
|
||||
|
||||
- (void)setupFontSampleOfType:(NSString*)fontType fromDict:(NSDictionary*)regionDict
|
||||
{
|
||||
NSFont *foundFont = [self getFontOfType:fontType fromDict:regionDict];
|
||||
[self setFontSampleOfType:fontType withFont:foundFont andDict:regionDict];
|
||||
}
|
||||
|
||||
- (void)setFontSampleOfType:(NSString *)fontType withFont:(NSFont*)font andDict:(NSMutableDictionary*)regionDict
|
||||
{
|
||||
// font may be nil here, in which case the font is missing, and we construct
|
||||
// a string to display from the dict.
|
||||
NSMutableDictionary *fontTypeDict = [regionDict objectForKey:fontType];
|
||||
|
||||
NSTextField *sampleCell = [self getFontSampleForType:fontType];
|
||||
NSString *displayString = nil;
|
||||
|
||||
if (font == nil)
|
||||
{
|
||||
if (regionDict)
|
||||
{
|
||||
NSDictionary *fontSizeDict = [regionDict objectForKey:@"fontsize"];
|
||||
NSString *fontName = [fontTypeDict objectForKey:@"fontfamily"];
|
||||
int fontSize = [[fontSizeDict objectForKey:[self getFontSizeType:fontType]] intValue];
|
||||
|
||||
displayString = [NSString stringWithFormat:@"%@, %dpt %@", fontName, fontSize, [self getLocalizedString:@"Missing"]];
|
||||
font = [NSFont userFontOfSize:14.0];
|
||||
|
||||
// set the missing flag in the dict
|
||||
if (![fontTypeDict objectForKey:@"missing"] || ![[fontTypeDict objectForKey:@"missing"] boolValue])
|
||||
[fontTypeDict setObject:[NSNumber numberWithBool:YES] forKey:@"missing"];
|
||||
}
|
||||
else
|
||||
{
|
||||
// should never happen
|
||||
// XXX localize
|
||||
displayString = @"Font missing";
|
||||
font = [NSFont userFontOfSize:16.0];
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
displayString = [NSString stringWithFormat:@"%@, %dpt", [font familyName], (int)[font pointSize]];
|
||||
|
||||
// make sure we don't have a missing entry
|
||||
[fontTypeDict removeObjectForKey:@"missing"];
|
||||
}
|
||||
|
||||
// Set the font of the sample to a font that is not bold, italic etc.
|
||||
NSFont* baseFont = [[NSFontManager sharedFontManager] fontWithFamily:[font familyName] traits:0 weight:5 /* normal weight */ size:[font pointSize]];
|
||||
|
||||
[sampleCell setFont:baseFont];
|
||||
[sampleCell setStringValue:displayString];
|
||||
}
|
||||
|
||||
- (void)updateFontSampleOfType:(NSString *)fontType
|
||||
{
|
||||
NSMutableDictionary* regionDict = [self settingsForCurrentRegion];
|
||||
if (!regionDict) return;
|
||||
|
||||
NSTextField *sampleCell = [self getFontSampleForType:fontType];
|
||||
NSFont *sampleFont = [[NSFontManager sharedFontManager] convertFont:[sampleCell font]];
|
||||
|
||||
// save the font in the dictionaries
|
||||
[self saveFont:sampleFont toDict:regionDict forType:fontType];
|
||||
// and update the sample
|
||||
[self setFontSampleOfType:fontType withFont:sampleFont andDict:regionDict];
|
||||
}
|
||||
|
||||
- (NSTextField*)getFontSampleForType:(NSString *)fontType
|
||||
{
|
||||
if ([fontType isEqualToString:@"serif"] || [fontType isEqualToString:@"sans-serif"])
|
||||
return mFontSampleProportional;
|
||||
|
||||
if ([fontType isEqualToString:@"monospace"])
|
||||
return mFontSampleMonospace;
|
||||
|
||||
return nil;
|
||||
}
|
||||
|
||||
- (NSString*)getFontSizeType:(NSString*)fontType
|
||||
{
|
||||
if ([fontType isEqualToString:@"monospace"])
|
||||
return @"fixed";
|
||||
|
||||
return @"variable";
|
||||
}
|
||||
|
||||
- (void)updateFontPreviews
|
||||
{
|
||||
NSDictionary* regionDict = [self settingsForCurrentRegion];
|
||||
if (!regionDict) return;
|
||||
|
||||
NSString* defaultFontType = [self defaultProportionalFontTypeForCurrentRegion];
|
||||
// make sure the 'proportional' label matches
|
||||
NSString* propLabelString = [NSString stringWithFormat:[self getLocalizedString:@"ProportionalLabelFormat"], [self getLocalizedString:defaultFontType]];
|
||||
[mProportionalSampleLabel setStringValue:propLabelString];
|
||||
|
||||
NSString* sublabelValue = [self getLocalizedString:[defaultFontType stringByAppendingString:@"_note"]];
|
||||
[mProportionalSubLabel setStringValue:sublabelValue];
|
||||
|
||||
[self setupFontSamplesFromDict:regionDict];
|
||||
}
|
||||
|
||||
#pragma mark -
|
||||
|
||||
const int kDefaultFontSerifTag = 0;
|
||||
const int kDefaultFontSansSerifTag = 1;
|
||||
|
||||
- (IBAction)showAdvancedFontsDialog:(id)sender
|
||||
{
|
||||
NSDictionary* regionDict = [self settingsForCurrentRegion];
|
||||
if (!regionDict) return;
|
||||
|
||||
NSString* advancedLabel = [NSString stringWithFormat:[self getLocalizedString:@"AdditionalFontsLabelFormat"], [regionDict objectForKey:@"region"]];
|
||||
[mAdvancedFontsLabel setStringValue:advancedLabel];
|
||||
|
||||
// set up the dialog for the current region
|
||||
[self setupFontPopup:mSerifFontPopup forType:@"serif" fromDict:regionDict];
|
||||
[self setupFontPopup:mSansSerifFontPopup forType:@"sans-serif" fromDict:regionDict];
|
||||
[self setupFontPopup:mCursiveFontPopup forType:@"cursive" fromDict:regionDict];
|
||||
[self setupFontPopup:mFantasyFontPopup forType:@"fantasy" fromDict:regionDict];
|
||||
|
||||
// setup min size popup
|
||||
int itemIndex = 0;
|
||||
NSMutableDictionary *fontSizeDict = [regionDict objectForKey:@"fontsize"];
|
||||
NSNumber* minSize = [fontSizeDict objectForKey:@"minimum"];
|
||||
if (minSize) {
|
||||
itemIndex = [mMinFontSizePopup indexOfItemWithTag:[minSize intValue]];
|
||||
if (itemIndex == -1)
|
||||
itemIndex = 0;
|
||||
}
|
||||
[mMinFontSizePopup selectItemAtIndex:itemIndex];
|
||||
|
||||
// set up default font radio buttons (default to serif)
|
||||
NSString* defaultFontType = [self defaultProportionalFontTypeForCurrentRegion];
|
||||
[mDefaultFontMatrix selectCellWithTag:([defaultFontType isEqualToString:@"sans-serif"] ? kDefaultFontSansSerifTag : kDefaultFontSerifTag)];
|
||||
|
||||
mFontPanelWasVisible = [[NSFontPanel sharedFontPanel] isVisible];
|
||||
[[NSFontPanel sharedFontPanel] orderOut:nil];
|
||||
|
||||
[NSApp beginSheet:mAdvancedFontsDialog
|
||||
modalForWindow:[mTabView window] // any old window accessor
|
||||
modalDelegate:self
|
||||
didEndSelector:@selector(advancedFontsSheetDidEnd:returnCode:contextInfo:)
|
||||
contextInfo:NULL];
|
||||
}
|
||||
|
||||
- (IBAction)advancedFontsDone:(id)sender
|
||||
{
|
||||
// save settings
|
||||
NSDictionary* regionDict = [self settingsForCurrentRegion];
|
||||
if (!regionDict) return;
|
||||
|
||||
[self getFontFromPopup:mSerifFontPopup forType:@"serif" intoDict:regionDict];
|
||||
[self getFontFromPopup:mSansSerifFontPopup forType:@"sans-serif" intoDict:regionDict];
|
||||
[self getFontFromPopup:mCursiveFontPopup forType:@"cursive" intoDict:regionDict];
|
||||
[self getFontFromPopup:mFantasyFontPopup forType:@"fantasy" intoDict:regionDict];
|
||||
|
||||
int minSize = [[mMinFontSizePopup selectedItem] tag];
|
||||
// a value of 0 indicates 'none'; we'll clear the pref on save
|
||||
NSMutableDictionary *fontSizeDict = [regionDict objectForKey:@"fontsize"];
|
||||
[fontSizeDict setObject:[NSNumber numberWithInt:(int)minSize] forKey:@"minimum"];
|
||||
|
||||
// save the default font type
|
||||
NSMutableDictionary* defaultFontTypeDict = [regionDict objectForKey:@"defaultFontType"];
|
||||
NSString* defaultFontType = ([[mDefaultFontMatrix selectedCell] tag] == kDefaultFontSerifTag) ? @"serif" : @"sans-serif";
|
||||
[defaultFontTypeDict setObject:defaultFontType forKey:@"type"];
|
||||
|
||||
[mAdvancedFontsDialog orderOut:self];
|
||||
[NSApp endSheet:mAdvancedFontsDialog];
|
||||
|
||||
[self updateFontPreviews];
|
||||
|
||||
if (mFontPanelWasVisible)
|
||||
[[NSFontPanel sharedFontPanel] makeKeyAndOrderFront:self];
|
||||
}
|
||||
|
||||
// Reset the "Colors and Links" tab to application factory defaults.
|
||||
- (IBAction)resetColorsToDefaults:(id)sender
|
||||
{
|
||||
[self clearPref:"browser.underline_anchors"];
|
||||
[self clearPref:"browser.display.use_document_colors"];
|
||||
[self clearPref:"browser.display.background_color"];
|
||||
[self clearPref:"browser.display.foreground_color"];
|
||||
[self clearPref:"browser.anchor_color"];
|
||||
[self clearPref:"browser.visited_color"];
|
||||
|
||||
// update the UI of the Appearance pane
|
||||
int state;
|
||||
state = [self getBooleanPref:"browser.underline_anchors" withSuccess:NULL] ? NSOnState : NSOffState;
|
||||
[mUnderlineLinksCheckbox setState:state];
|
||||
state = [self getBooleanPref:"browser.display.use_document_colors" withSuccess:NULL] ? NSOffState : NSOnState;
|
||||
[mUseMyColorsCheckbox setState:state];
|
||||
|
||||
[mBackgroundColorWell setColor:[self getColorPref:"browser.display.background_color" withSuccess:NULL]];
|
||||
[mTextColorWell setColor:[self getColorPref:"browser.display.foreground_color" withSuccess:NULL]];
|
||||
[mUnvisitedLinksColorWell setColor:[self getColorPref:"browser.anchor_color" withSuccess:NULL]];
|
||||
[mVisitedLinksColorWell setColor:[self getColorPref:"browser.visited_color" withSuccess:NULL]];
|
||||
}
|
||||
|
||||
// Reset the Fonts tab to application factory defaults.
|
||||
- (IBAction)resetFontsToDefaults:(id)sender
|
||||
{
|
||||
// clear all the preferences for the font regions
|
||||
for (unsigned int i = 0; i < [mRegionMappingTable count]; i++)
|
||||
{
|
||||
NSMutableDictionary* regionDict = [mRegionMappingTable objectAtIndex:i];
|
||||
// NSString* regionCode = [regionDict objectForKey:@"code"];
|
||||
|
||||
// for each region, we reset the dictionaries to be empty.
|
||||
[regionDict setObject:[NSMutableDictionary dictionary] forKey:@"serif"];
|
||||
[regionDict setObject:[NSMutableDictionary dictionary] forKey:@"sans-serif"];
|
||||
[regionDict setObject:[NSMutableDictionary dictionary] forKey:@"monospace"];
|
||||
[regionDict setObject:[NSMutableDictionary dictionary] forKey:@"cursive"];
|
||||
[regionDict setObject:[NSMutableDictionary dictionary] forKey:@"fantasy"];
|
||||
[regionDict setObject:[NSMutableDictionary dictionary] forKey:@"fontsize"];
|
||||
[regionDict setObject:[NSMutableDictionary dictionary] forKey:@"defaultFontType"];
|
||||
}
|
||||
|
||||
// commit the changes
|
||||
// first, we clear the preferences by saving them. This clears the values that are returned by
|
||||
// -[self getPref:].
|
||||
[self saveFontPrefs];
|
||||
// Since the rest of the Appearance code doesn't access the prefs by getPref directly,
|
||||
// we need to re-store the default preference values in the region dicts.
|
||||
[self loadFontPrefs];
|
||||
|
||||
// Update the UI of the Appearance pane
|
||||
// order is important here -- syncing the font panel depends on the font previews being correct.
|
||||
[self updateFontPreviews];
|
||||
}
|
||||
|
||||
- (void)advancedFontsSheetDidEnd:(NSWindow *)sheet returnCode:(int)returnCode contextInfo:(void *)contextInfo
|
||||
{
|
||||
}
|
||||
|
||||
const int kMissingFontPopupItemTag = 9999;
|
||||
|
||||
- (void)setupFontPopup:(NSPopUpButton*)popupButton forType:(NSString*)fontType fromDict:(NSDictionary*)regionDict
|
||||
{
|
||||
NSDictionary* fontTypeDict = [regionDict objectForKey:fontType];
|
||||
NSString* defaultValue = [fontTypeDict objectForKey:@"fontfamily"];
|
||||
|
||||
[self buildFontPopup:popupButton];
|
||||
|
||||
// check to see if the font exists
|
||||
NSFont *foundFont = nil;
|
||||
if (defaultValue)
|
||||
foundFont = [[NSFontManager sharedFontManager] fontWithFamily:defaultValue traits:0 weight:5 size:16.0];
|
||||
else {
|
||||
foundFont = [fontType isEqualToString:@"monospace"]
|
||||
? [NSFont userFixedPitchFontOfSize:16.0]
|
||||
: [NSFont userFontOfSize:16.0];
|
||||
defaultValue = [foundFont familyName];
|
||||
}
|
||||
|
||||
if (!foundFont) {
|
||||
NSMenuItem* missingFontItem = [[popupButton menu] itemWithTag:kMissingFontPopupItemTag];
|
||||
if (!missingFontItem) {
|
||||
missingFontItem = [[[NSMenuItem alloc] initWithTitle:@"temp" action:NULL keyEquivalent:@""] autorelease];
|
||||
[missingFontItem setTag:kMissingFontPopupItemTag];
|
||||
[[popupButton menu] addItem:missingFontItem];
|
||||
}
|
||||
|
||||
NSString* itemTitle = [NSString stringWithFormat:@"%@ %@", defaultValue, [self getLocalizedString:@"Missing"]];
|
||||
[missingFontItem setTitle:itemTitle];
|
||||
[popupButton selectItem:missingFontItem];
|
||||
} else {
|
||||
// remove the missing item if it exists
|
||||
NSMenuItem* missingFontItem = [[popupButton menu] itemWithTag:kMissingFontPopupItemTag];
|
||||
if (missingFontItem)
|
||||
[[popupButton menu] removeItem: missingFontItem];
|
||||
|
||||
[popupButton selectItemWithTitle:defaultValue];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)getFontFromPopup:(NSPopUpButton*)popupButton forType:(NSString*)fontType intoDict:(NSDictionary*)regionDict
|
||||
{
|
||||
NSMenuItem* selectedItem = [popupButton selectedItem];
|
||||
if ([selectedItem tag] != kMissingFontPopupItemTag)
|
||||
[[regionDict objectForKey:fontType] setObject:[selectedItem title] forKey:@"fontfamily"];
|
||||
}
|
||||
|
||||
- (void)buildFontPopup:(NSPopUpButton*)popupButton
|
||||
{
|
||||
NSMenu* menu = [popupButton menu];
|
||||
|
||||
[menu setAutoenablesItems:NO];
|
||||
|
||||
// remove existing items
|
||||
while ([menu numberOfItems] > 0)
|
||||
[menu removeItemAtIndex:0];
|
||||
|
||||
NSArray* fontList = [[NSFontManager sharedFontManager] availableFontFamilies];
|
||||
NSArray* sortedFontList = [fontList sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)];
|
||||
|
||||
for (unsigned int i = 0; i < [sortedFontList count]; i ++) {
|
||||
NSString* fontFamilyName = [sortedFontList objectAtIndex:i];
|
||||
unichar firstChar = [fontFamilyName characterAtIndex:0];
|
||||
|
||||
if (firstChar == unichar('.') || firstChar == unichar('#'))
|
||||
continue; // skip fonts with ugly names
|
||||
|
||||
NSString* uiFamilyName = [[NSFontManager sharedFontManager] localizedNameForFamily:fontFamilyName face:nil];
|
||||
NSMenuItem* newItem = [[NSMenuItem alloc] initWithTitle:uiFamilyName action:nil keyEquivalent:@""];
|
||||
|
||||
#if SUBMENUS_FOR_VARIANTS
|
||||
NSArray* fontFamilyMembers = [[NSFontManager sharedFontManager] availableMembersOfFontFamily:fontFamilyName];
|
||||
if ([fontFamilyMembers count] > 1) {
|
||||
NSMenu* familySubmenu = [[NSMenu alloc] initWithTitle:fontFamilyName];
|
||||
[familySubmenu setAutoenablesItems:NO];
|
||||
|
||||
for (unsigned int j = 0; j < [fontFamilyMembers count]; j ++) {
|
||||
NSArray* fontFamilyItems = [fontFamilyMembers objectAtIndex:j];
|
||||
NSString* fontItemName = [fontFamilyItems objectAtIndex:1];
|
||||
|
||||
NSMenuItem* newSubmenuItem = [[NSMenuItem alloc] initWithTitle:fontItemName action:nil keyEquivalent:@""];
|
||||
[familySubmenu addItem:newSubmenuItem];
|
||||
}
|
||||
|
||||
[newItem setSubmenu:familySubmenu];
|
||||
} else {
|
||||
// use the name from the font family info?
|
||||
}
|
||||
#endif
|
||||
|
||||
[menu addItem:newItem];
|
||||
}
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
@implementation OrgMozillaChimeraPreferenceAppearance (FontManagerDelegate)
|
||||
|
||||
- (id)fieldEditorForObject:(id)inObject
|
||||
{
|
||||
if (inObject == mFontSampleProportional)
|
||||
{
|
||||
if (!mPropSampleFieldEditor)
|
||||
{
|
||||
SampleTextView* propFieldEditor = [[SampleTextView alloc] initWithFrame:[inObject bounds]];
|
||||
[propFieldEditor setPrefPane:self];
|
||||
[propFieldEditor setFieldEditor:YES];
|
||||
[propFieldEditor setDelegate:inObject];
|
||||
mPropSampleFieldEditor = propFieldEditor;
|
||||
}
|
||||
|
||||
return mPropSampleFieldEditor;
|
||||
}
|
||||
else if (inObject == mFontSampleMonospace)
|
||||
{
|
||||
if (!mMonoSampleFieldEditor)
|
||||
{
|
||||
SampleTextView* monoFieldEditor = [[SampleTextView alloc] initWithFrame:[inObject bounds]];
|
||||
[monoFieldEditor setPrefPane:self];
|
||||
[monoFieldEditor setFieldEditor:YES];
|
||||
[monoFieldEditor setDelegate:inObject];
|
||||
mMonoSampleFieldEditor = monoFieldEditor;
|
||||
}
|
||||
|
||||
return mMonoSampleFieldEditor;
|
||||
}
|
||||
|
||||
return nil;
|
||||
}
|
||||
|
||||
- (void)changeFont:(id)sender
|
||||
{
|
||||
// ignore font panel changes if the advanced panel is up
|
||||
if ([mAdvancedFontsDialog isVisible])
|
||||
return;
|
||||
|
||||
if (mFontButtonForEditor == mChooseProportionalFontButton)
|
||||
{
|
||||
NSString* fontType = [self defaultProportionalFontTypeForCurrentRegion];
|
||||
[self updateFontSampleOfType:fontType];
|
||||
}
|
||||
else if (mFontButtonForEditor == mChooseMonospaceFontButton)
|
||||
{
|
||||
[self updateFontSampleOfType:@"monospace"];
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
- (BOOL)fontManager:(id)theFontManager willIncludeFont:(NSString *)fontName
|
||||
{
|
||||
// filter out fonts for the selected language
|
||||
//NSLog(@"willIncludeFont:%@", fontName);
|
||||
return YES;
|
||||
}
|
||||
|
||||
#if MAC_OS_X_VERSION_MAX_ALLOWED < MAC_OS_X_VERSION_10_3
|
||||
|
||||
enum {
|
||||
NSFontPanelFaceModeMask = 1 << 0,
|
||||
NSFontPanelSizeModeMask = 1 << 1,
|
||||
NSFontPanelCollectionModeMask = 1 << 2,
|
||||
NSFontPanelStandardModesMask = 0xFFFF,
|
||||
NSFontPanelAllModesMask = 0xFFFFFFFF
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
// this allows us to hide the font face panel
|
||||
- (unsigned int)validModesForFontPanel:(NSFontPanel *)fontPanel
|
||||
{
|
||||
// hide the face panel
|
||||
return (NSFontPanelStandardModesMask & ~NSFontPanelFaceModeMask);
|
||||
}
|
||||
|
||||
@end
|
||||
Binary file not shown.
@@ -1,67 +0,0 @@
|
||||
{
|
||||
IBClasses = (
|
||||
{CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; },
|
||||
{
|
||||
CLASS = FontReceiverView;
|
||||
LANGUAGE = ObjC;
|
||||
OUTLETS = {delegate = id; };
|
||||
SUPERCLASS = NSView;
|
||||
},
|
||||
{CLASS = NSObject; LANGUAGE = ObjC; },
|
||||
{
|
||||
CLASS = NSPreferencePane;
|
||||
LANGUAGE = ObjC;
|
||||
OUTLETS = {
|
||||
"_firstKeyView" = id;
|
||||
"_initialKeyView" = id;
|
||||
"_lastKeyView" = id;
|
||||
"_window" = id;
|
||||
};
|
||||
SUPERCLASS = NSObject;
|
||||
},
|
||||
{
|
||||
ACTIONS = {
|
||||
advancedFontsDone = id;
|
||||
buttonClicked = id;
|
||||
colorChanged = id;
|
||||
fontRegionPopupClicked = id;
|
||||
monospaceFontChoiceButtonClicked = id;
|
||||
proportionalFontChoiceButtonClicked = id;
|
||||
resetColorsToDefaults = id;
|
||||
resetFontsToDefaults = id;
|
||||
showAdvancedFontsDialog = id;
|
||||
};
|
||||
CLASS = OrgMozillaChimeraPreferenceAppearance;
|
||||
LANGUAGE = ObjC;
|
||||
OUTLETS = {
|
||||
mAdvancedFontsDialog = NSPanel;
|
||||
mAdvancedFontsLabel = NSTextField;
|
||||
mBackgroundColorWell = NSColorWell;
|
||||
mChooseMonospaceFontButton = NSButton;
|
||||
mChooseProportionalFontButton = NSButton;
|
||||
mColorsResetButton = NSButton;
|
||||
mCursiveFontPopup = NSPopUpButton;
|
||||
mDefaultFontMatrix = NSMatrix;
|
||||
mFantasyFontPopup = NSPopUpButton;
|
||||
mFontRegionPopup = NSPopUpButton;
|
||||
mFontSampleMonospace = NSTextField;
|
||||
mFontSampleProportional = NSTextField;
|
||||
mFontsResetButton = NSButton;
|
||||
mMinFontSizePopup = NSPopUpButton;
|
||||
mProportionalSampleLabel = NSTextField;
|
||||
mProportionalSubLabel = NSTextField;
|
||||
mSansSerifFontPopup = NSPopUpButton;
|
||||
mSerifFontPopup = NSPopUpButton;
|
||||
mTabView = NSTabView;
|
||||
mTextColorWell = NSColorWell;
|
||||
mUnderlineLinksCheckbox = NSButton;
|
||||
mUnvisitedLinksColorWell = NSColorWell;
|
||||
mUseMyColorsCheckbox = NSButton;
|
||||
mVisitedLinksColorWell = NSColorWell;
|
||||
};
|
||||
SUPERCLASS = PreferencePaneBase;
|
||||
},
|
||||
{CLASS = PreferencePaneBase; LANGUAGE = ObjC; SUPERCLASS = NSPreferencePane; }
|
||||
);
|
||||
IBVersion = 1;
|
||||
}
|
||||
@@ -1,17 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>IBDocumentLocation</key>
|
||||
<string>110 65 458 263 0 0 1600 1002 </string>
|
||||
<key>IBEditorPositions</key>
|
||||
<dict>
|
||||
<key>214</key>
|
||||
<string>70 395 152 96 0 0 1152 746 </string>
|
||||
</dict>
|
||||
<key>IBFramework Version</key>
|
||||
<string>364.0</string>
|
||||
<key>IBSystem Version</key>
|
||||
<string>7W98</string>
|
||||
</dict>
|
||||
</plist>
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -1,50 +0,0 @@
|
||||
(
|
||||
{
|
||||
code = "x-western";
|
||||
},
|
||||
{
|
||||
code = "x-central-euro";
|
||||
},
|
||||
{
|
||||
code = "x-cyrillic";
|
||||
},
|
||||
{
|
||||
code = "x-baltic";
|
||||
},
|
||||
{
|
||||
code = "el";
|
||||
},
|
||||
{
|
||||
code = "tr";
|
||||
},
|
||||
{
|
||||
code = "he";
|
||||
},
|
||||
{
|
||||
code = "ar";
|
||||
},
|
||||
{
|
||||
code = "ko";
|
||||
},
|
||||
{
|
||||
code = "th";
|
||||
},
|
||||
{
|
||||
code = "zh-CN";
|
||||
},
|
||||
{
|
||||
code = "zh-TW";
|
||||
},
|
||||
{
|
||||
code = "zh-HK";
|
||||
},
|
||||
{
|
||||
code = "ja";
|
||||
},
|
||||
{
|
||||
code = "x-unicode";
|
||||
},
|
||||
{
|
||||
code = "x-user-def";
|
||||
}
|
||||
)
|
||||
@@ -1,53 +0,0 @@
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is the Mozilla browser.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Netscape Communications Corporation.
|
||||
* Portions created by the Initial Developer are Copyright (C) 2002
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
* william@dell.wisner.name (William Dell Wisner)
|
||||
* joshmoz@gmail.com (Josh Aas)
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
#import <PreferencePaneBase.h>
|
||||
|
||||
@interface OrgMozillaChimeraPreferenceDownloads : PreferencePaneBase
|
||||
{
|
||||
IBOutlet NSPopUpButton* mDownloadFolder;
|
||||
IBOutlet NSButton* mAutoCloseDLManager;
|
||||
IBOutlet NSButton* mEnableHelperApps;
|
||||
}
|
||||
|
||||
- (IBAction)checkboxClicked:(id)sender;
|
||||
- (IBAction)chooseDownloadFolder:(id)sender;
|
||||
|
||||
@end
|
||||
@@ -1,263 +0,0 @@
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is the Mozilla browser.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Netscape Communications Corporation.
|
||||
* Portions created by the Initial Developer are Copyright (C) 2002
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
* william@dell.wisner.name (William Dell Wisner)
|
||||
* joshmoz@gmail.com (Josh Aas)
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
#import <Carbon/Carbon.h>
|
||||
#import <Cocoa/Cocoa.h>
|
||||
|
||||
#import "Downloads.h"
|
||||
#import "NSString+Utils.h"
|
||||
|
||||
#include "nsCOMPtr.h"
|
||||
#include "nsILocalFileMac.h"
|
||||
#include "nsDirectoryServiceDefs.h"
|
||||
|
||||
const int kDefaultExpireDays = 9;
|
||||
|
||||
// handly stack-based class to start and stop an Internet Config session
|
||||
class StInternetConfigSession
|
||||
{
|
||||
public:
|
||||
|
||||
StInternetConfigSession(OSType inSignature)
|
||||
: mICInstance(NULL)
|
||||
, mStartedOK(false)
|
||||
{
|
||||
mStartedOK = (::ICStart(&mICInstance, inSignature) == noErr);
|
||||
}
|
||||
|
||||
~StInternetConfigSession()
|
||||
{
|
||||
if (mStartedOK)
|
||||
::ICStop(mICInstance);
|
||||
}
|
||||
|
||||
bool Available() const { return mStartedOK; }
|
||||
ICInstance Instance() const { return mICInstance; }
|
||||
|
||||
private:
|
||||
|
||||
ICInstance mICInstance;
|
||||
bool mStartedOK;
|
||||
};
|
||||
|
||||
|
||||
|
||||
@interface OrgMozillaChimeraPreferenceDownloads(Private)
|
||||
|
||||
- (NSString*)getDownloadFolderDescription;
|
||||
- (void)setupDownloadMenuWithPath:(NSString*)inDLPath;
|
||||
- (void)setDownloadFolder:(NSString*)inNewFolder;
|
||||
|
||||
@end
|
||||
|
||||
// necessary because we're building against the 10.2 SDK and need to use some
|
||||
// private APIs to get at a feature that's hidden in on 10.2
|
||||
@interface NSOpenPanel(NewFolderExtensionsFor102SDK)
|
||||
-(void)setCanCreateDirectories:(BOOL)inInclude; // exists in 10.3 SDK
|
||||
-(void)_setIncludeNewFolderButton:(BOOL)inInclude; // exists on 10.2 as private api
|
||||
@end
|
||||
|
||||
@implementation OrgMozillaChimeraPreferenceDownloads
|
||||
|
||||
- (id)initWithBundle:(NSBundle *)bundle
|
||||
{
|
||||
self = [super initWithBundle:bundle];
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)dealloc
|
||||
{
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
- (void)mainViewDidLoad
|
||||
{
|
||||
if (!mPrefService)
|
||||
return;
|
||||
|
||||
BOOL gotPref;
|
||||
|
||||
[mAutoCloseDLManager setState:![self getBooleanPref:"browser.download.progressDnldDialog.keepAlive" withSuccess:&gotPref]];
|
||||
[mEnableHelperApps setState:[self getBooleanPref:"browser.download.autoDispatch" withSuccess:&gotPref]];
|
||||
|
||||
NSString* downloadFolderDesc = [self getDownloadFolderDescription];
|
||||
if ([downloadFolderDesc length] == 0)
|
||||
downloadFolderDesc = [self getLocalizedString:@"MissingDlFolder"];
|
||||
|
||||
[self setupDownloadMenuWithPath:downloadFolderDesc];
|
||||
|
||||
// [mDownloadFolder setStringValue:[self getDownloadFolderDescription]];
|
||||
}
|
||||
|
||||
- (IBAction)checkboxClicked:(id)sender
|
||||
{
|
||||
if (!mPrefService)
|
||||
return;
|
||||
|
||||
if (sender == mAutoCloseDLManager) {
|
||||
[self setPref:"browser.download.progressDnldDialog.keepAlive" toBoolean:![sender state]];
|
||||
}
|
||||
if (sender == mEnableHelperApps) {
|
||||
[self setPref:"browser.download.autoDispatch" toBoolean:[sender state]];
|
||||
}
|
||||
}
|
||||
|
||||
- (NSString*)getDownloadFolderDescription
|
||||
{
|
||||
NSString* downloadStr = @"";
|
||||
nsCOMPtr<nsIFile> downloadsDir;
|
||||
NS_GetSpecialDirectory(NS_MAC_DEFAULT_DOWNLOAD_DIR, getter_AddRefs(downloadsDir));
|
||||
if (!downloadsDir)
|
||||
return downloadStr;
|
||||
|
||||
nsCOMPtr<nsILocalFileMac> macDir = do_QueryInterface(downloadsDir);
|
||||
if (!macDir)
|
||||
return downloadStr;
|
||||
|
||||
FSRef folderRef;
|
||||
nsresult rv = macDir->GetFSRef(&folderRef);
|
||||
if (NS_FAILED(rv))
|
||||
return downloadStr;
|
||||
UInt8 utf8path[MAXPATHLEN+1];
|
||||
::FSRefMakePath(&folderRef, utf8path, MAXPATHLEN);
|
||||
return [NSString stringWithUTF8String:(const char*)utf8path];
|
||||
}
|
||||
|
||||
// Sets the IC download pref to the given path. We write to Internet Config
|
||||
// because Gecko reads from IC when getting NS_MAC_DEFAULT_DOWNLOAD_DIR.
|
||||
- (void)setDownloadFolder:(NSString*)inNewFolder
|
||||
{
|
||||
if (!inNewFolder)
|
||||
return;
|
||||
|
||||
// it would be nice to use PreferenceManager, but I don't want to drag
|
||||
// all that code into the plugin
|
||||
StInternetConfigSession icSession('MOZC');
|
||||
if (!icSession.Available())
|
||||
return;
|
||||
|
||||
// make a ICFileSpec out of our path and shove it into IC. This requires
|
||||
// creating an FSSpec and an alias.
|
||||
FSRef fsRef;
|
||||
Boolean isDir;
|
||||
OSStatus error = ::FSPathMakeRef((UInt8 *)[inNewFolder fileSystemRepresentation], &fsRef, &isDir);
|
||||
if (error != noErr)
|
||||
return;
|
||||
|
||||
FSSpec fsSpec;
|
||||
error = ::FSGetCatalogInfo(&fsRef, kFSCatInfoNone, nil, nil, &fsSpec, nil);
|
||||
if (error != noErr)
|
||||
return;
|
||||
|
||||
AliasHandle alias = nil;
|
||||
error = ::FSNewAlias(nil, &fsRef, &alias);
|
||||
|
||||
// copy the data out of our variables into the ICFileSpec and hand it to IC.
|
||||
if (error == noErr && alias)
|
||||
{
|
||||
long headerSize = offsetof(ICFileSpec, alias);
|
||||
long aliasSize = ::GetHandleSize((Handle)alias);
|
||||
ICFileSpec* realbuffer = (ICFileSpec*) calloc(headerSize + aliasSize, 1);
|
||||
realbuffer->fss = fsSpec;
|
||||
memcpy(&realbuffer->alias, *alias, aliasSize);
|
||||
::ICSetPref(icSession.Instance(), kICDownloadFolder, kICAttrNoChange, (const void*)realbuffer, headerSize + aliasSize);
|
||||
free(realbuffer);
|
||||
::DisposeHandle((Handle)alias);
|
||||
}
|
||||
}
|
||||
|
||||
// Given a full path to the d/l dir, display the leaf name and the finder icon associated
|
||||
// with that folder in the first item of the download folder popup.
|
||||
//
|
||||
- (void)setupDownloadMenuWithPath:(NSString*)inDLPath
|
||||
{
|
||||
NSMenuItem* placeholder = [mDownloadFolder itemAtIndex:0];
|
||||
if (!placeholder)
|
||||
return;
|
||||
|
||||
// get the finder icon and scale it down to 16x16
|
||||
NSImage* icon = [[NSWorkspace sharedWorkspace] iconForFile:inDLPath];
|
||||
[icon setScalesWhenResized:YES];
|
||||
[icon setSize:NSMakeSize(16.0, 16.0)];
|
||||
|
||||
// set the title to the leaf name and the icon to what we gathered above
|
||||
[placeholder setTitle:[[NSFileManager defaultManager] displayNameAtPath:inDLPath]];
|
||||
[placeholder setImage:icon];
|
||||
|
||||
// ensure first item is selected
|
||||
[mDownloadFolder selectItemAtIndex:0];
|
||||
}
|
||||
|
||||
// display a file picker sheet allowing the user to set their new download folder
|
||||
- (IBAction)chooseDownloadFolder:(id)sender
|
||||
{
|
||||
NSString* oldDLFolder = [self getDownloadFolderDescription];
|
||||
NSOpenPanel* panel = [NSOpenPanel openPanel];
|
||||
[panel setCanChooseFiles:NO];
|
||||
[panel setCanChooseDirectories:YES];
|
||||
[panel setAllowsMultipleSelection:NO];
|
||||
if ([panel respondsToSelector:@selector(setCanCreateDirectories:)])
|
||||
[panel setCanCreateDirectories:YES];
|
||||
else if ([panel respondsToSelector:@selector(_setIncludeNewFolderButton:)]) // try private API in 10.2
|
||||
[panel _setIncludeNewFolderButton:YES];
|
||||
[panel setPrompt:NSLocalizedString(@"ChooseDirectoryOKButton", @"")];
|
||||
|
||||
[panel beginSheetForDirectory:oldDLFolder file:nil types:nil modalForWindow:[mDownloadFolder window]
|
||||
modalDelegate:self didEndSelector:@selector(openPanelDidEnd:returnCode:contextInfo:)
|
||||
contextInfo:nil];
|
||||
}
|
||||
|
||||
// called when the user closes the open panel sheet for selecting a new d/l folder.
|
||||
// if they clicked ok, change the IC pref and re-display the new choice in the
|
||||
// popup menu
|
||||
- (void)openPanelDidEnd:(NSOpenPanel*)sheet returnCode:(int)returnCode contextInfo:(void*)contextInfo
|
||||
{
|
||||
if (returnCode == NSOKButton) {
|
||||
// stuff path into pref
|
||||
NSString* newPath = [[sheet filenames] objectAtIndex:0];
|
||||
[self setDownloadFolder:newPath];
|
||||
|
||||
// update the menu
|
||||
[self setupDownloadMenuWithPath:newPath];
|
||||
}
|
||||
else
|
||||
[mDownloadFolder selectItemAtIndex:0];
|
||||
}
|
||||
@end
|
||||
Binary file not shown.
@@ -1,29 +0,0 @@
|
||||
{
|
||||
IBClasses = (
|
||||
{CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; },
|
||||
{
|
||||
CLASS = NSPreferencePane;
|
||||
LANGUAGE = ObjC;
|
||||
OUTLETS = {
|
||||
"_firstKeyView" = NSView;
|
||||
"_initialKeyView" = NSView;
|
||||
"_lastKeyView" = NSView;
|
||||
"_window" = NSWindow;
|
||||
};
|
||||
SUPERCLASS = NSObject;
|
||||
},
|
||||
{
|
||||
ACTIONS = {checkboxClicked = id; chooseDownloadFolder = id; };
|
||||
CLASS = OrgMozillaChimeraPreferenceDownloads;
|
||||
LANGUAGE = ObjC;
|
||||
OUTLETS = {
|
||||
mAutoCloseDLManager = NSButton;
|
||||
mDownloadFolder = NSPopUpButton;
|
||||
mEnableHelperApps = NSButton;
|
||||
};
|
||||
SUPERCLASS = PreferencePaneBase;
|
||||
},
|
||||
{CLASS = PreferencePaneBase; LANGUAGE = ObjC; SUPERCLASS = NSPreferencePane; }
|
||||
);
|
||||
IBVersion = 1;
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>IBDocumentLocation</key>
|
||||
<string>130 52 522 320 0 0 1280 1002 </string>
|
||||
<key>IBFramework Version</key>
|
||||
<string>364.0</string>
|
||||
<key>IBSystem Version</key>
|
||||
<string>7W98</string>
|
||||
</dict>
|
||||
</plist>
|
||||
Binary file not shown.
Binary file not shown.
@@ -1,25 +0,0 @@
|
||||
{
|
||||
IBClasses = (
|
||||
{CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; },
|
||||
{
|
||||
CLASS = NSPreferencePane;
|
||||
LANGUAGE = ObjC;
|
||||
OUTLETS = {
|
||||
"_firstKeyView" = NSView;
|
||||
"_initialKeyView" = NSView;
|
||||
"_lastKeyView" = NSView;
|
||||
"_window" = NSWindow;
|
||||
};
|
||||
SUPERCLASS = NSObject;
|
||||
},
|
||||
{
|
||||
ACTIONS = {clearDiskCache = id; clearGlobalHistory = id; historyDaysModified = id; };
|
||||
CLASS = OrgMozillaChimeraPreferenceHistory;
|
||||
LANGUAGE = ObjC;
|
||||
OUTLETS = {textFieldHistoryDays = NSTextField; };
|
||||
SUPERCLASS = PreferencePaneBase;
|
||||
},
|
||||
{CLASS = PreferencePaneBase; LANGUAGE = ObjC; SUPERCLASS = NSPreferencePane; }
|
||||
);
|
||||
IBVersion = 1;
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>IBDocumentLocation</key>
|
||||
<string>111 35 522 320 0 0 1920 1178 </string>
|
||||
<key>IBFramework Version</key>
|
||||
<string>364.0</string>
|
||||
<key>IBSystem Version</key>
|
||||
<string>7W98</string>
|
||||
</dict>
|
||||
</plist>
|
||||
Binary file not shown.
Binary file not shown.
@@ -1,53 +0,0 @@
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is the Mozilla browser.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Netscape Communications Corporation.
|
||||
* Portions created by the Initial Developer are Copyright (C) 2002
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
* william@dell.wisner.name (William Dell Wisner)
|
||||
* joshmoz@gmail.com (Josh Aas)
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
#import <Cocoa/Cocoa.h>
|
||||
#import <PreferencePaneBase.h>
|
||||
|
||||
@interface OrgMozillaChimeraPreferenceHistory : PreferencePaneBase
|
||||
{
|
||||
IBOutlet NSTextField *textFieldHistoryDays;
|
||||
}
|
||||
|
||||
- (IBAction)historyDaysModified:(id)sender;
|
||||
- (IBAction)clearGlobalHistory:(id)sender;
|
||||
- (IBAction)clearDiskCache:(id)aSender;
|
||||
|
||||
@end
|
||||
@@ -1,113 +0,0 @@
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is the Mozilla browser.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Netscape Communications Corporation.
|
||||
* Portions created by the Initial Developer are Copyright (C) 2002
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
* william@dell.wisner.name (William Dell Wisner)
|
||||
* joshmoz@gmail.com (Josh Aas)
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
#import "History.h"
|
||||
|
||||
#include "nsCOMPtr.h"
|
||||
#include "nsIServiceManager.h"
|
||||
#include "nsIBrowserHistory.h"
|
||||
#include "nsICacheService.h"
|
||||
|
||||
const int kDefaultExpireDays = 9;
|
||||
|
||||
@implementation OrgMozillaChimeraPreferenceHistory
|
||||
|
||||
- (id)initWithBundle:(NSBundle *)bundle
|
||||
{
|
||||
self = [super initWithBundle:bundle];
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)dealloc
|
||||
{
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
- (void)mainViewDidLoad
|
||||
{
|
||||
if (!mPrefService)
|
||||
return;
|
||||
|
||||
BOOL gotPref;
|
||||
int expireDays = [self getIntPref:"browser.history_expire_days" withSuccess:&gotPref];
|
||||
if (!gotPref)
|
||||
expireDays = kDefaultExpireDays;
|
||||
|
||||
[textFieldHistoryDays setIntValue:expireDays];
|
||||
}
|
||||
|
||||
- (IBAction)historyDaysModified:(id)sender
|
||||
{
|
||||
if (!mPrefService)
|
||||
return;
|
||||
|
||||
if (sender == textFieldHistoryDays) {
|
||||
// If any non-numeric characters were entered make some noise and spit it out.
|
||||
if (([[textFieldHistoryDays stringValue] rangeOfCharacterFromSet:[[NSCharacterSet decimalDigitCharacterSet] invertedSet]]).length) {
|
||||
BOOL gotPref;
|
||||
int prefValue = [self getIntPref:"browser.history_expire_days" withSuccess:&gotPref];
|
||||
if (!gotPref)
|
||||
prefValue = kDefaultExpireDays;
|
||||
[textFieldHistoryDays setIntValue:prefValue];
|
||||
NSBeep ();
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
[self setPref:"browser.history_expire_days" toInt:[sender intValue]];
|
||||
}
|
||||
|
||||
// Clear the user's disk cache
|
||||
-(IBAction) clearDiskCache:(id)aSender
|
||||
{
|
||||
nsCOMPtr<nsICacheService> cacheServ ( do_GetService("@mozilla.org/network/cache-service;1") );
|
||||
if ( cacheServ )
|
||||
cacheServ->EvictEntries(nsICache::STORE_ANYWHERE);
|
||||
}
|
||||
|
||||
// use the browser history service to clear out the user's global history
|
||||
- (IBAction)clearGlobalHistory:(id)sender
|
||||
{
|
||||
nsCOMPtr<nsIBrowserHistory> hist ( do_GetService("@mozilla.org/browser/global-history;2") );
|
||||
if ( hist )
|
||||
hist->RemoveAllPages();
|
||||
}
|
||||
|
||||
@end
|
||||
Binary file not shown.
Binary file not shown.
@@ -1,31 +0,0 @@
|
||||
{
|
||||
IBClasses = (
|
||||
{CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; },
|
||||
{
|
||||
CLASS = NSPreferencePane;
|
||||
LANGUAGE = ObjC;
|
||||
OUTLETS = {
|
||||
"_firstKeyView" = NSView;
|
||||
"_initialKeyView" = NSView;
|
||||
"_lastKeyView" = NSView;
|
||||
"_window" = NSWindow;
|
||||
};
|
||||
SUPERCLASS = NSObject;
|
||||
},
|
||||
{
|
||||
ACTIONS = {checkboxStartPageClicked = id; defaultBrowserChange = id; };
|
||||
CLASS = OrgMozillaChimeraPreferenceNavigation;
|
||||
LANGUAGE = ObjC;
|
||||
OUTLETS = {
|
||||
checkboxCheckDefaultBrowserOnLaunch = NSButton;
|
||||
checkboxNewTabBlank = NSButton;
|
||||
checkboxNewWindowBlank = NSButton;
|
||||
defaultBrowserPopUp = NSPopUpButton;
|
||||
textFieldHomePage = NSTextField;
|
||||
};
|
||||
SUPERCLASS = PreferencePaneBase;
|
||||
},
|
||||
{CLASS = PreferencePaneBase; LANGUAGE = ObjC; SUPERCLASS = NSPreferencePane; }
|
||||
);
|
||||
IBVersion = 1;
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>IBDocumentLocation</key>
|
||||
<string>257 70 522 320 0 0 1920 1178 </string>
|
||||
<key>IBFramework Version</key>
|
||||
<string>437.0</string>
|
||||
<key>IBSystem Version</key>
|
||||
<string>8C46</string>
|
||||
</dict>
|
||||
</plist>
|
||||
Binary file not shown.
@@ -1,55 +0,0 @@
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is the Mozilla browser.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Netscape Communications Corporation.
|
||||
* Portions created by the Initial Developer are Copyright (C) 2002
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
* william@dell.wisner.name (William Dell Wisner)
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
#import <PreferencePaneBase.h>
|
||||
|
||||
@interface OrgMozillaChimeraPreferenceNavigation : PreferencePaneBase
|
||||
{
|
||||
IBOutlet NSTextField* textFieldHomePage;
|
||||
|
||||
IBOutlet NSButton* checkboxNewTabBlank;
|
||||
IBOutlet NSButton* checkboxNewWindowBlank;
|
||||
IBOutlet NSPopUpButton* defaultBrowserPopUp;
|
||||
IBOutlet NSButton* checkboxCheckDefaultBrowserOnLaunch;
|
||||
}
|
||||
|
||||
- (IBAction)checkboxStartPageClicked:(id)sender;
|
||||
- (IBAction)defaultBrowserChange:(id)sender;
|
||||
|
||||
@end
|
||||
@@ -1,289 +0,0 @@
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is the Mozilla browser.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Netscape Communications Corporation.
|
||||
* Portions created by the Initial Developer are Copyright (C) 2002
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
* william@dell.wisner.name (William Dell Wisner)
|
||||
* joshmoz@gmail.com (Josh Aas)
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
#import <Carbon/Carbon.h>
|
||||
#import <Cocoa/Cocoa.h>
|
||||
#import <ApplicationServices/ApplicationServices.h>
|
||||
|
||||
#import "NSString+Utils.h"
|
||||
#import "NSWorkspace+Utils.h"
|
||||
|
||||
#import "Navigation.h"
|
||||
|
||||
const int kDefaultExpireDays = 9;
|
||||
static NSString* const kUserChosenBrowserUserDefaultsKey = @"UserChosenBrowsers";
|
||||
|
||||
@interface OrgMozillaChimeraPreferenceNavigation(Private)
|
||||
|
||||
- (NSString*)getCurrentHomePage;
|
||||
-(void)updateDefaultBrowserMenu;
|
||||
|
||||
@end
|
||||
|
||||
// this is for sorting the web browser bundle ID list by display name
|
||||
static int CompareBundleIDAppDisplayNames(id a, id b, void *context)
|
||||
{
|
||||
NSURL* appURLa = nil;
|
||||
NSURL* appURLb = nil;
|
||||
|
||||
if ((LSFindApplicationForInfo(kLSUnknownCreator, (CFStringRef)a, NULL, NULL, (CFURLRef*)&appURLa) == noErr) &&
|
||||
(LSFindApplicationForInfo(kLSUnknownCreator, (CFStringRef)b, NULL, NULL, (CFURLRef*)&appURLb) == noErr))
|
||||
{
|
||||
NSString *aName = [[NSWorkspace sharedWorkspace] displayNameForFile:appURLa];
|
||||
NSString *bName = [[NSWorkspace sharedWorkspace] displayNameForFile:appURLb];
|
||||
return [aName compare:bName];
|
||||
}
|
||||
|
||||
// this shouldn't ever happen, and if it does we handle it correctly when building the menu.
|
||||
// there is no way to flag an error condition here and the sort fuctions return void
|
||||
return NSOrderedSame;
|
||||
}
|
||||
|
||||
@implementation OrgMozillaChimeraPreferenceNavigation
|
||||
|
||||
- (id)initWithBundle:(NSBundle *)bundle
|
||||
{
|
||||
if ((self = [super initWithBundle:bundle])) {
|
||||
[[NSUserDefaults standardUserDefaults] registerDefaults:[NSDictionary dictionaryWithObject:[NSArray array] forKey:kUserChosenBrowserUserDefaultsKey]];
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)dealloc
|
||||
{
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
- (void)mainViewDidLoad
|
||||
{
|
||||
if (!mPrefService)
|
||||
return;
|
||||
|
||||
BOOL gotPref;
|
||||
|
||||
// 0: blank page. 1: home page. 2: last page visited. Our behaviour here should
|
||||
// match what the browser does when the prefs don't exist.
|
||||
if (([self getIntPref:"browser.startup.page" withSuccess:&gotPref] == 1) || !gotPref)
|
||||
[checkboxNewWindowBlank setState:NSOnState];
|
||||
|
||||
if (([self getIntPref:"browser.tabs.startPage" withSuccess:&gotPref] == 1))
|
||||
[checkboxNewTabBlank setState:NSOnState];
|
||||
|
||||
if ([self getBooleanPref:"camino.check_default_browser" withSuccess:&gotPref] || !gotPref)
|
||||
[checkboxCheckDefaultBrowserOnLaunch setState:NSOnState];
|
||||
|
||||
[textFieldHomePage setStringValue:[self getCurrentHomePage]];
|
||||
|
||||
// set up default browser menu
|
||||
[self updateDefaultBrowserMenu];
|
||||
}
|
||||
|
||||
- (void) didUnselect
|
||||
{
|
||||
if (!mPrefService)
|
||||
return;
|
||||
|
||||
[self setPref:"browser.startup.homepage" toString:[textFieldHomePage stringValue]];
|
||||
|
||||
// ensure that the prefs exist
|
||||
[self setPref:"browser.startup.page" toInt:[checkboxNewWindowBlank state] ? 1 : 0];
|
||||
[self setPref:"browser.tabs.startPage" toInt:[checkboxNewTabBlank state] ? 1 : 0];
|
||||
|
||||
[self setPref:"camino.check_default_browser" toBoolean:([checkboxCheckDefaultBrowserOnLaunch state] == NSOnState)];
|
||||
}
|
||||
|
||||
- (IBAction)checkboxStartPageClicked:(id)sender
|
||||
{
|
||||
if (!mPrefService)
|
||||
return;
|
||||
|
||||
char *prefName = NULL;
|
||||
if (sender == checkboxNewTabBlank)
|
||||
prefName = "browser.tabs.startPage";
|
||||
else if (sender == checkboxNewWindowBlank)
|
||||
prefName = "browser.startup.page";
|
||||
|
||||
if (prefName)
|
||||
[self setPref:prefName toInt: [sender state] ? 1 : 0];
|
||||
}
|
||||
|
||||
- (NSString*)getCurrentHomePage
|
||||
{
|
||||
BOOL gotPref;
|
||||
return [self getStringPref:"browser.startup.homepage" withSuccess:&gotPref];
|
||||
}
|
||||
|
||||
// called when the users changes the selection in the default browser menu
|
||||
- (IBAction)defaultBrowserChange:(id)sender
|
||||
{
|
||||
id repObject = [sender representedObject];
|
||||
if (repObject) {
|
||||
// only change default if the app still exists
|
||||
NSURL *appURL = nil;
|
||||
if (LSFindApplicationForInfo(kLSUnknownCreator, (CFStringRef)repObject, NULL, NULL, (CFURLRef*)&appURL) == noErr) {
|
||||
if ([[NSFileManager defaultManager] isExecutableFileAtPath:[[appURL path] stringByStandardizingPath]]) {
|
||||
// set it as the default browser
|
||||
[[NSWorkspace sharedWorkspace] setDefaultBrowserWithIdentifier:repObject];
|
||||
return;
|
||||
}
|
||||
}
|
||||
NSRunAlertPanel(NSLocalizedString(@"Application does not exist", @"Application does not exist"),
|
||||
NSLocalizedString(@"BrowserDoesNotExistExplanation", @"BrowserDoesNotExistExplanation"),
|
||||
NSLocalizedString(@"OKButtonText", @"OK"), nil, nil);
|
||||
// update the popup list to reflect the fact that the chosen browser does not exist
|
||||
[self updateDefaultBrowserMenu];
|
||||
} else {
|
||||
// its not a browser that was selected, so the user must want to select a browser
|
||||
NSOpenPanel *op = [NSOpenPanel openPanel];
|
||||
[op setCanChooseDirectories:NO];
|
||||
[op setAllowsMultipleSelection:NO];
|
||||
[op beginSheetForDirectory:nil
|
||||
file:nil
|
||||
types:[NSArray arrayWithObject:@"app"]
|
||||
modalForWindow:[defaultBrowserPopUp window]
|
||||
modalDelegate:self
|
||||
didEndSelector:@selector(openPanelDidEnd:returnCode:contextInfo:)
|
||||
contextInfo:nil];
|
||||
}
|
||||
}
|
||||
|
||||
- (void)openPanelDidEnd:(NSOpenPanel *)sheet returnCode:(int)returnCode contextInfo:(void *)contextInfo
|
||||
{
|
||||
if (returnCode == NSOKButton) {
|
||||
NSString *chosenBundleID = [[NSWorkspace sharedWorkspace] identifierForBundle:[[sheet URLs] objectAtIndex:0]];
|
||||
if (chosenBundleID) {
|
||||
// add this browser to a list of apps we should always consider as browsers
|
||||
NSMutableArray *userChosenBundleIDs = [NSMutableArray arrayWithCapacity:2];
|
||||
[userChosenBundleIDs addObjectsFromArray:[[NSUserDefaults standardUserDefaults] objectForKey:kUserChosenBrowserUserDefaultsKey]];
|
||||
if (![userChosenBundleIDs containsObject:chosenBundleID]) {
|
||||
[userChosenBundleIDs addObject:chosenBundleID];
|
||||
[[NSUserDefaults standardUserDefaults] setObject:userChosenBundleIDs forKey:kUserChosenBrowserUserDefaultsKey];
|
||||
}
|
||||
// make it the default browser
|
||||
[[NSWorkspace sharedWorkspace] setDefaultBrowserWithIdentifier:chosenBundleID];
|
||||
}
|
||||
}
|
||||
[self updateDefaultBrowserMenu];
|
||||
}
|
||||
|
||||
// returns an array of web browser bundle IDs sorted by display name
|
||||
- (NSArray*)getWebBrowserList
|
||||
{
|
||||
NSArray* installedBrowsers = [[NSWorkspace sharedWorkspace] installedBrowserIdentifiers];
|
||||
|
||||
// use a set to avoid duplicates
|
||||
NSMutableSet* browsersSet = [NSMutableSet setWithArray:installedBrowsers];
|
||||
|
||||
// add user chosen browsers to list
|
||||
[browsersSet addObjectsFromArray:[[NSUserDefaults standardUserDefaults] objectForKey:kUserChosenBrowserUserDefaultsKey]];
|
||||
|
||||
// sort by display name
|
||||
NSMutableArray* browsers = [[browsersSet allObjects] mutableCopy];
|
||||
[browsers sortUsingFunction:&CompareBundleIDAppDisplayNames context:NULL];
|
||||
return [browsers autorelease];
|
||||
}
|
||||
|
||||
-(void)updateDefaultBrowserMenu
|
||||
{
|
||||
NSArray *browsers = [self getWebBrowserList];
|
||||
NSMenu *menu = [[[NSMenu alloc] initWithTitle:@"Browsers"] autorelease];
|
||||
NSString* caminoBundleID = [[NSBundle mainBundle] bundleIdentifier];
|
||||
|
||||
// get current default browser's bundle ID
|
||||
NSString* currentDefaultBrowserBundleID = [[NSWorkspace sharedWorkspace] defaultBrowserIdentifier];
|
||||
|
||||
// add separator first, current instance of Camino will be inserted before it
|
||||
[menu addItem:[NSMenuItem separatorItem]];
|
||||
|
||||
// Set up new menu
|
||||
NSMenuItem* selectedBrowserMenuItem = nil;
|
||||
NSEnumerator* browserEnumerator = [browsers objectEnumerator];
|
||||
NSString* bundleID;
|
||||
while ((bundleID = [browserEnumerator nextObject]))
|
||||
{
|
||||
NSURL* appURL = [[NSWorkspace sharedWorkspace] urlOfApplicationWithIdentifier:bundleID];
|
||||
if (!appURL) {
|
||||
// see if it was supposed to find Camino and use our own path in that case,
|
||||
// otherwise skip this bundle ID
|
||||
if ([bundleID isEqualToString:caminoBundleID])
|
||||
appURL = [NSURL fileURLWithPath:[[NSBundle mainBundle] bundlePath]];
|
||||
else
|
||||
continue;
|
||||
}
|
||||
|
||||
NSMenuItem* item = [[NSMenuItem alloc] initWithTitle:[[NSWorkspace sharedWorkspace] displayNameForFile:appURL]
|
||||
action:@selector(defaultBrowserChange:) keyEquivalent:@""];
|
||||
NSImage *icon = [[NSWorkspace sharedWorkspace] iconForFile:[[appURL path] stringByStandardizingPath]];
|
||||
[icon setSize:NSMakeSize(16.0, 16.0)];
|
||||
[item setImage:icon];
|
||||
[item setRepresentedObject:bundleID];
|
||||
[item setTarget:self];
|
||||
[item setEnabled:YES];
|
||||
|
||||
// if this item is Camino, insert it first in the list
|
||||
if ([bundleID isEqualToString:caminoBundleID])
|
||||
[menu insertItem:item atIndex:0];
|
||||
else
|
||||
[menu addItem:item];
|
||||
|
||||
// if this item has the same bundle ID as the current default browser, select it
|
||||
if ([bundleID isEqualToString:currentDefaultBrowserBundleID])
|
||||
selectedBrowserMenuItem = item;
|
||||
|
||||
[item release];
|
||||
}
|
||||
|
||||
// allow user to select a browser
|
||||
[menu addItem:[NSMenuItem separatorItem]];
|
||||
NSMenuItem* selectItem = [[NSMenuItem alloc] initWithTitle:NSLocalizedString(@"Select...", "Select...")
|
||||
action:@selector(defaultBrowserChange:) keyEquivalent:@""];
|
||||
[selectItem setRepresentedObject:nil];
|
||||
[selectItem setTarget:self];
|
||||
[selectItem setEnabled:YES];
|
||||
[menu addItem:selectItem];
|
||||
[selectItem release];
|
||||
|
||||
[defaultBrowserPopUp setMenu:menu];
|
||||
|
||||
// set the correct selection
|
||||
[defaultBrowserPopUp selectItem:selectedBrowserMenuItem];
|
||||
}
|
||||
|
||||
@end
|
||||
Binary file not shown.
@@ -1,17 +0,0 @@
|
||||
{
|
||||
IBClasses = (
|
||||
{CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; },
|
||||
{
|
||||
CLASS = NSPreferencePane;
|
||||
LANGUAGE = ObjC;
|
||||
OUTLETS = {_firstKeyView = id; _initialKeyView = id; _lastKeyView = id; _window = id; };
|
||||
SUPERCLASS = NSObject;
|
||||
},
|
||||
{
|
||||
CLASS = OrgMozillaChimeraPreferencePersonal;
|
||||
LANGUAGE = ObjC;
|
||||
SUPERCLASS = NSPreferencePane;
|
||||
}
|
||||
);
|
||||
IBVersion = 1;
|
||||
}
|
||||
@@ -1,22 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist SYSTEM "file://localhost/System/Library/DTDs/PropertyList.dtd">
|
||||
<plist version="0.9">
|
||||
<dict>
|
||||
<key>IBDocumentLocation</key>
|
||||
<string>185 70 356 240 0 0 1152 746 </string>
|
||||
<key>IBFramework Version</key>
|
||||
<string>248.0</string>
|
||||
<key>IBGroupedObjects</key>
|
||||
<dict>
|
||||
<key>3</key>
|
||||
<array>
|
||||
<string>153</string>
|
||||
<string>155</string>
|
||||
</array>
|
||||
</dict>
|
||||
<key>IBLastGroupID</key>
|
||||
<string>4</string>
|
||||
<key>IBSystem Version</key>
|
||||
<string>5S66</string>
|
||||
</dict>
|
||||
</plist>
|
||||
Binary file not shown.
Binary file not shown.
@@ -1,9 +0,0 @@
|
||||
#import <Cocoa/Cocoa.h>
|
||||
#import <PreferencePanes/NSPreferencePane.h>
|
||||
|
||||
@interface OrgMozillaChimeraPreferencePersonal : NSPreferencePane
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
@end
|
||||
@@ -1,19 +0,0 @@
|
||||
#import "PersonalPane.h"
|
||||
|
||||
@implementation OrgMozillaChimeraPreferencePersonal
|
||||
|
||||
|
||||
- (id) initWithBundle:(NSBundle *) bundle {
|
||||
self = [super initWithBundle:bundle] ;
|
||||
return self ;
|
||||
}
|
||||
|
||||
- (void)awakeFromNib
|
||||
{
|
||||
}
|
||||
|
||||
- (void)mainViewDidLoad
|
||||
{
|
||||
}
|
||||
|
||||
@end
|
||||
Binary file not shown.
@@ -1,62 +0,0 @@
|
||||
{
|
||||
IBClasses = (
|
||||
{CLASS = ExtendedTableView; LANGUAGE = ObjC; SUPERCLASS = NSTableView; },
|
||||
{CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; },
|
||||
{
|
||||
CLASS = NSPreferencePane;
|
||||
LANGUAGE = ObjC;
|
||||
OUTLETS = {
|
||||
"_firstKeyView" = id;
|
||||
"_initialKeyView" = id;
|
||||
"_lastKeyView" = id;
|
||||
"_window" = id;
|
||||
};
|
||||
SUPERCLASS = NSObject;
|
||||
},
|
||||
{CLASS = NSTableView; LANGUAGE = ObjC; SUPERCLASS = NSControl; },
|
||||
{
|
||||
ACTIONS = {
|
||||
clickAskAboutCookies = id;
|
||||
clickAutoFillPasswords = id;
|
||||
clickCookieBehavior = id;
|
||||
clickStorePasswords = id;
|
||||
editCookies = id;
|
||||
editCookiesDone = id;
|
||||
editPermissions = id;
|
||||
editPermissionsDone = id;
|
||||
launchKeychainAccess = id;
|
||||
removeAllCookiePermissions = id;
|
||||
removeAllCookies = id;
|
||||
removeCookiePermissions = id;
|
||||
removeCookies = id;
|
||||
};
|
||||
CLASS = OrgMozillaChimeraPreferencePrivacy;
|
||||
LANGUAGE = ObjC;
|
||||
OUTLETS = {
|
||||
mAskAboutCookies = NSButton;
|
||||
mAutoFillPasswords = NSButton;
|
||||
mCookieBehavior = NSMatrix;
|
||||
mCookiesFilterField = SearchTextField;
|
||||
mCookiesPanel = id;
|
||||
mCookiesTable = ExtendedTableView;
|
||||
mPermissionColumn = NSTableColumn;
|
||||
mPermissionFilterField = SearchTextField;
|
||||
mPermissionsPanel = id;
|
||||
mPermissionsTable = ExtendedTableView;
|
||||
mRemoveAllCookiesButton = NSButton;
|
||||
mRemoveAllPermissionsButton = NSButton;
|
||||
mRemoveCookiesButton = NSButton;
|
||||
mStorePasswords = NSButton;
|
||||
};
|
||||
SUPERCLASS = PreferencePaneBase;
|
||||
},
|
||||
{CLASS = PreferencePaneBase; LANGUAGE = ObjC; SUPERCLASS = NSPreferencePane; },
|
||||
{
|
||||
ACTIONS = {selectText = id; };
|
||||
CLASS = SearchTextField;
|
||||
LANGUAGE = ObjC;
|
||||
SUPERCLASS = NSTextField;
|
||||
}
|
||||
);
|
||||
IBVersion = 1;
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>IBDocumentLocation</key>
|
||||
<string>103 92 356 240 0 0 1280 832 </string>
|
||||
<key>IBFramework Version</key>
|
||||
<string>437.0</string>
|
||||
<key>IBSystem Version</key>
|
||||
<string>8C46</string>
|
||||
</dict>
|
||||
</plist>
|
||||
Binary file not shown.
@@ -1,41 +0,0 @@
|
||||
{
|
||||
IBClasses = (
|
||||
{CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; },
|
||||
{
|
||||
CLASS = NSPreferencePane;
|
||||
LANGUAGE = ObjC;
|
||||
OUTLETS = {
|
||||
"_firstKeyView" = id;
|
||||
"_initialKeyView" = id;
|
||||
"_lastKeyView" = id;
|
||||
"_window" = id;
|
||||
};
|
||||
SUPERCLASS = NSObject;
|
||||
},
|
||||
{
|
||||
ACTIONS = {
|
||||
clearCookies = id;
|
||||
clickEnableCookies = id;
|
||||
clickEnableJS = id;
|
||||
clickEnableJava = id;
|
||||
clickEnableLeaveEncrypted = id;
|
||||
clickEnableLoadLowGrade = id;
|
||||
clickEnableViewMixed = id;
|
||||
clickPromptForCookie = id;
|
||||
};
|
||||
CLASS = OrgMozillaChimeraPreferencePrivacy;
|
||||
LANGUAGE = ObjC;
|
||||
OUTLETS = {
|
||||
mCookies = id;
|
||||
mEnableJS = NSButton;
|
||||
mEnableJava = NSButton;
|
||||
mLeaveEncrypted = NSButton;
|
||||
mLoadLowGrade = NSButton;
|
||||
mPromptForCookie = NSButton;
|
||||
mViewMixed = NSButton;
|
||||
};
|
||||
SUPERCLASS = NSPreferencePane;
|
||||
}
|
||||
);
|
||||
IBVersion = 1;
|
||||
}
|
||||
@@ -1,16 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>IBDocumentLocation</key>
|
||||
<string>66 140 356 240 0 0 1280 832 </string>
|
||||
<key>IBFramework Version</key>
|
||||
<string>364.0</string>
|
||||
<key>IBOpenObjects</key>
|
||||
<array>
|
||||
<integer>5</integer>
|
||||
</array>
|
||||
<key>IBSystem Version</key>
|
||||
<string>7S215</string>
|
||||
</dict>
|
||||
</plist>
|
||||
Binary file not shown.
Binary file not shown.
@@ -1,125 +0,0 @@
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
/* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Netscape Communications Corporation.
|
||||
* Portions created by the Initial Developer are Copyright (C) 2002
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
#import <Cocoa/Cocoa.h>
|
||||
#import <PreferencePanes/NSPreferencePane.h>
|
||||
|
||||
#import "PreferencePaneBase.h"
|
||||
|
||||
#import "nsCOMArray.h"
|
||||
|
||||
#import "ExtendedTableView.h"
|
||||
#import "SearchTextField.h"
|
||||
|
||||
class nsIPref;
|
||||
class nsIPermissionManager;
|
||||
class nsIPermission;
|
||||
class nsICookieManager;
|
||||
class nsICookie;
|
||||
|
||||
@class ExtendedTableView;
|
||||
|
||||
@interface OrgMozillaChimeraPreferencePrivacy : PreferencePaneBase
|
||||
{
|
||||
// pane
|
||||
IBOutlet NSMatrix* mCookieBehavior;
|
||||
IBOutlet NSButton* mAskAboutCookies;
|
||||
|
||||
IBOutlet NSButton* mStorePasswords;
|
||||
IBOutlet NSButton* mAutoFillPasswords;
|
||||
|
||||
BOOL mSortedAscending; // sort direction for tables in sheets
|
||||
|
||||
// permission sheet
|
||||
IBOutlet id mPermissionsPanel;
|
||||
IBOutlet ExtendedTableView* mPermissionsTable;
|
||||
IBOutlet NSTableColumn* mPermissionColumn;
|
||||
IBOutlet SearchTextField* mPermissionFilterField;
|
||||
nsIPermissionManager* mPermissionManager; // STRONG (should be nsCOMPtr)
|
||||
nsCOMArray<nsIPermission>* mCachedPermissions; // parallel list for speed, STRONG
|
||||
IBOutlet NSButton* mRemoveAllPermissionsButton;
|
||||
|
||||
// cookie sheet
|
||||
IBOutlet id mCookiesPanel;
|
||||
IBOutlet ExtendedTableView* mCookiesTable;
|
||||
IBOutlet NSButton* mRemoveCookiesButton;
|
||||
IBOutlet NSButton* mRemoveAllCookiesButton;
|
||||
IBOutlet SearchTextField* mCookiesFilterField;
|
||||
nsICookieManager* mCookieManager;
|
||||
nsCOMArray<nsICookie>* mCachedCookies;
|
||||
}
|
||||
|
||||
// main panel button actions
|
||||
-(IBAction) clickCookieBehavior:(id)aSender;
|
||||
-(IBAction) clickAskAboutCookies:(id)sender;
|
||||
-(IBAction) clickStorePasswords:(id)sender;
|
||||
-(IBAction) clickAutoFillPasswords:(id)sender;
|
||||
-(IBAction) launchKeychainAccess:(id)sender;
|
||||
|
||||
// cookie editing functions
|
||||
-(void) populateCookieCache;
|
||||
-(IBAction) editCookies:(id)aSender;
|
||||
-(IBAction) editCookiesDone:(id)aSender;
|
||||
-(IBAction) removeCookies:(id)aSender;
|
||||
-(IBAction) removeAllCookies:(id)aSender;
|
||||
|
||||
// permission editing functions
|
||||
-(void) populatePermissionCache;
|
||||
-(IBAction) editPermissions:(id)aSender;
|
||||
-(IBAction) editPermissionsDone:(id)aSender;
|
||||
-(IBAction) removeCookiePermissions:(id)aSender;
|
||||
-(IBAction) removeAllCookiePermissions:(id)aSender;
|
||||
-(int) getRowForPermissionWithHost:(NSString *)aHost;
|
||||
|
||||
-(void) mapCookiePrefToGUI:(int)pref;
|
||||
|
||||
// data source informal protocol (NSTableDataSource)
|
||||
- (int)numberOfRowsInTableView:(NSTableView *)aTableView;
|
||||
- (id)tableView:(NSTableView *)aTableView objectValueForTableColumn:(NSTableColumn *)aTableColumn row:(int)rowIndex;
|
||||
- (void)tableView:(NSTableView *)aTableView setObjectValue:anObject forTableColumn:(NSTableColumn *)aTableColumn row:(int)rowIndex;
|
||||
|
||||
// NSTableView delegate methods
|
||||
- (void)tableView:(NSTableView *)aTableView didClickTableColumn:(NSTableColumn *)aTableColumn;
|
||||
|
||||
// sorting support methods
|
||||
- (void)sortCookiesByColumn:(NSTableColumn *)aTableColumn inAscendingOrder:(BOOL)ascending;
|
||||
- (void)sortPermissionsByColumn:(NSTableColumn *)aTableColumn inAscendingOrder:(BOOL)ascending;
|
||||
|
||||
//filtering methods
|
||||
- (void) filterCookiesPermissionsWithString: (NSString*) inFilterString;
|
||||
- (void) filterCookiesWithString: (NSString*) inFilterString;
|
||||
@end
|
||||
@@ -1,957 +0,0 @@
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
/* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Netscape Communications Corporation.
|
||||
* Portions created by the Initial Developer are Copyright (C) 2002
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
#import "PrivacyPane.h"
|
||||
#import "NSString+Utils.h"
|
||||
|
||||
#include "nsCOMPtr.h"
|
||||
#include "nsServiceManagerUtils.h"
|
||||
#include "nsIPref.h"
|
||||
#include "nsNetCID.h"
|
||||
#include "nsICookie.h"
|
||||
#include "nsICookieManager.h"
|
||||
#include "nsIPermissionManager.h"
|
||||
#include "nsISimpleEnumerator.h"
|
||||
#include "nsIPermission.h"
|
||||
#include "nsIURI.h"
|
||||
#include "nsNetUtil.h"
|
||||
#include "nsString.h"
|
||||
#include "STFPopUpButtonCell.h"
|
||||
|
||||
// we should really get this from "CHBrowserService.h",
|
||||
// but that requires linkage and extra search paths.
|
||||
static NSString* XPCOMShutDownNotificationName = @"XPCOMShutDown";
|
||||
|
||||
#import "ExtendedTableView.h"
|
||||
|
||||
// prefs for keychain password autofill
|
||||
static const char* const gUseKeychainPref = "chimera.store_passwords_with_keychain";
|
||||
static const char* const gAutoFillEnabledPref = "chimera.keychain_passwords_autofill";
|
||||
|
||||
// network.cookie.cookieBehavior settings
|
||||
// these are the defaults, overriden by whitelist/blacklist
|
||||
const int kAcceptAllCookies = 0;
|
||||
const int kAcceptCookiesFromOriginatingServer = 1;
|
||||
const int kDenyAllCookies = 2;
|
||||
|
||||
// network.cookie.lifetimePolicy settings
|
||||
const int kAcceptCookiesNormally = 0;
|
||||
const int kWarnAboutCookies = 1;
|
||||
|
||||
// popup indices
|
||||
const int kAllowIndex = 0;
|
||||
const int kDenyIndex = 1;
|
||||
|
||||
// sort order indicators
|
||||
const int kSortReverse = 1;
|
||||
|
||||
//
|
||||
// category on NSTableView for 10.2+ that reveals private api points to
|
||||
// get the sort indicators. These are named images on 10.3 but we can use
|
||||
// these as a good fallback
|
||||
//
|
||||
@interface NSTableView(Undocumented)
|
||||
+ (NSImage*)_defaultTableHeaderSortImage;
|
||||
+ (NSImage*)_defaultTableHeaderReverseSortImage;
|
||||
@end
|
||||
|
||||
@interface NSTableView(Extensions)
|
||||
+ (NSImage*)indicatorImage:(BOOL)inSortAscending;
|
||||
@end
|
||||
|
||||
@implementation NSTableView(Extensions)
|
||||
|
||||
//
|
||||
// +indicatorImage:
|
||||
//
|
||||
// Tries two different methods to get the sort indicator image. First it tries
|
||||
// the named image, which is only available on 10.3+. If that fails, it tries a
|
||||
// private api available on 10.2+. If that fails, setting the indicator to a nil
|
||||
// image is still fine, it just clears it.
|
||||
//
|
||||
+ (NSImage*)indicatorImage:(BOOL)inSortAscending
|
||||
{
|
||||
NSImage* image = nil;
|
||||
if (inSortAscending) {
|
||||
image = [NSImage imageNamed:@"NSAscendingSortIndicator"];
|
||||
if (!image && [NSTableView respondsToSelector:@selector(_defaultTableHeaderSortImage)])
|
||||
image = [NSTableView _defaultTableHeaderSortImage];
|
||||
}
|
||||
else {
|
||||
image = [NSImage imageNamed:@"NSDescendingSortIndicator"];
|
||||
if (!image && [NSTableView respondsToSelector:@selector(_defaultTableHeaderReverseSortImage)])
|
||||
image = [NSTableView _defaultTableHeaderReverseSortImage];
|
||||
}
|
||||
return image;
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
#pragma mark -
|
||||
|
||||
// callbacks for sorting the permission list
|
||||
PR_STATIC_CALLBACK(int) comparePermHosts(nsIPermission* aPerm1, nsIPermission* aPerm2, void* aData)
|
||||
{
|
||||
nsCAutoString host1;
|
||||
aPerm1->GetHost(host1);
|
||||
nsCAutoString host2;
|
||||
aPerm2->GetHost(host2);
|
||||
|
||||
if ((int)aData == kSortReverse)
|
||||
return Compare(host2, host1);
|
||||
else
|
||||
return Compare(host1, host2);
|
||||
}
|
||||
|
||||
PR_STATIC_CALLBACK(int) compareCapabilities(nsIPermission* aPerm1, nsIPermission* aPerm2, void* aData)
|
||||
{
|
||||
PRUint32 cap1 = 0;
|
||||
aPerm1->GetCapability(&cap1);
|
||||
PRUint32 cap2 = 0;
|
||||
aPerm2->GetCapability(&cap2);
|
||||
|
||||
if(cap1 == cap2)
|
||||
return comparePermHosts(aPerm1, aPerm2, nsnull); //always break ties in alphabetical order
|
||||
if ((int)aData == kSortReverse)
|
||||
return (cap2 > cap1) ? -1 : 1;
|
||||
else
|
||||
return (cap1 < cap2) ? -1 : 1;
|
||||
}
|
||||
|
||||
PR_STATIC_CALLBACK(int) compareCookieHosts(nsICookie* aCookie1, nsICookie* aCookie2, void* aData)
|
||||
{
|
||||
nsCAutoString host1;
|
||||
aCookie1->GetHost(host1);
|
||||
nsCAutoString host2;
|
||||
aCookie2->GetHost(host2);
|
||||
if ((int)aData == kSortReverse)
|
||||
return Compare(host2, host1);
|
||||
else
|
||||
return Compare(host1, host2);
|
||||
}
|
||||
|
||||
PR_STATIC_CALLBACK(int) compareNames(nsICookie* aCookie1, nsICookie* aCookie2, void* aData)
|
||||
{
|
||||
nsCAutoString name1;
|
||||
aCookie1->GetName(name1);
|
||||
nsCAutoString name2;
|
||||
aCookie2->GetName(name2);
|
||||
|
||||
if ((int)aData == kSortReverse)
|
||||
return Compare(name2, name1);
|
||||
else
|
||||
return Compare(name1, name2);
|
||||
}
|
||||
|
||||
PR_STATIC_CALLBACK(int) comparePaths(nsICookie* aCookie1, nsICookie* aCookie2, void* aData)
|
||||
{
|
||||
nsCAutoString path1;
|
||||
aCookie1->GetPath(path1);
|
||||
nsCAutoString path2;
|
||||
aCookie2->GetPath(path2);
|
||||
|
||||
if ((int)aData == kSortReverse)
|
||||
return Compare(path1, path2);
|
||||
else
|
||||
return Compare(path2, path1);
|
||||
}
|
||||
|
||||
PR_STATIC_CALLBACK(int) compareSecures(nsICookie* aCookie1, nsICookie* aCookie2, void* aData)
|
||||
{
|
||||
PRBool secure1;
|
||||
aCookie1->GetIsSecure(&secure1);
|
||||
PRBool secure2;
|
||||
aCookie2->GetIsSecure(&secure2);
|
||||
|
||||
if (secure1 == secure2)
|
||||
return 0;
|
||||
if ((int)aData == kSortReverse)
|
||||
return (secure2) ? -1 : 1;
|
||||
else
|
||||
return (secure1) ? -1 : 1;
|
||||
}
|
||||
|
||||
PR_STATIC_CALLBACK(int) compareExpires(nsICookie* aCookie1, nsICookie* aCookie2, void* aData)
|
||||
{
|
||||
PRUint64 expires1;
|
||||
aCookie1->GetExpires(&expires1);
|
||||
PRUint64 expires2;
|
||||
aCookie2->GetExpires(&expires2);
|
||||
|
||||
if (expires1 == expires2) return 0;
|
||||
if ((int)aData == kSortReverse)
|
||||
return (expires2 < expires1) ? -1 : 1;
|
||||
else
|
||||
return (expires1 < expires2) ? -1 : 1;
|
||||
}
|
||||
|
||||
PR_STATIC_CALLBACK(int) compareValues(nsICookie* aCookie1, nsICookie* aCookie2, void* aData)
|
||||
{
|
||||
nsCAutoString value1;
|
||||
aCookie1->GetValue(value1);
|
||||
nsCAutoString value2;
|
||||
aCookie2->GetValue(value2);
|
||||
if ((int)aData == kSortReverse)
|
||||
return Compare(value2, value1);
|
||||
else
|
||||
return Compare(value1, value2);
|
||||
}
|
||||
|
||||
#pragma mark -
|
||||
|
||||
@implementation OrgMozillaChimeraPreferencePrivacy
|
||||
|
||||
-(void) dealloc
|
||||
{
|
||||
[[NSNotificationCenter defaultCenter] removeObserver:self];
|
||||
|
||||
// NOTE: no need to worry about mCachedPermissions or mCachedCookies because if we're going away
|
||||
// the respective sheets have closed and cleaned up.
|
||||
|
||||
NS_IF_RELEASE(mPermissionManager);
|
||||
NS_IF_RELEASE(mCookieManager);
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
- (void)xpcomShutdown:(NSNotification*)notification
|
||||
{
|
||||
// these null the pointer
|
||||
NS_IF_RELEASE(mPermissionManager);
|
||||
NS_IF_RELEASE(mCookieManager);
|
||||
}
|
||||
|
||||
-(void) mainViewDidLoad
|
||||
{
|
||||
if (!mPrefService)
|
||||
return;
|
||||
|
||||
// we need to register for xpcom shutdown so that we can clear the
|
||||
// services before XPCOM is shut down. We can't rely on dealloc,
|
||||
// because we don't know when it will get called (we might be autoreleased).
|
||||
[[NSNotificationCenter defaultCenter] addObserver:self
|
||||
selector:@selector(xpcomShutdown:)
|
||||
name:XPCOMShutDownNotificationName
|
||||
object:nil];
|
||||
|
||||
// Hookup cookie prefs.
|
||||
PRInt32 acceptCookies = kAcceptAllCookies;
|
||||
mPrefService->GetIntPref("network.cookie.cookieBehavior", &acceptCookies);
|
||||
[self mapCookiePrefToGUI: acceptCookies];
|
||||
// lifetimePolicy now controls asking about cookies, despite being totally unintuitive
|
||||
PRInt32 lifetimePolicy = kAcceptCookiesNormally;
|
||||
mPrefService->GetIntPref("network.cookie.lifetimePolicy", &lifetimePolicy);
|
||||
if (lifetimePolicy == kWarnAboutCookies)
|
||||
[mAskAboutCookies setState:YES];
|
||||
|
||||
// store permission manager service and cache the enumerator.
|
||||
nsCOMPtr<nsIPermissionManager> pm(do_GetService(NS_PERMISSIONMANAGER_CONTRACTID));
|
||||
mPermissionManager = pm.get();
|
||||
NS_IF_ADDREF(mPermissionManager);
|
||||
|
||||
// store cookie manager service
|
||||
nsCOMPtr<nsICookieManager> cm(do_GetService(NS_COOKIEMANAGER_CONTRACTID));
|
||||
mCookieManager = cm.get();
|
||||
NS_IF_ADDREF(mCookieManager);
|
||||
|
||||
// Keychain checkboxes
|
||||
PRBool storePasswords = PR_TRUE;
|
||||
mPrefService->GetBoolPref(gUseKeychainPref, &storePasswords);
|
||||
[mStorePasswords setState:(storePasswords ? NSOnState : NSOffState)];
|
||||
|
||||
PRBool autoFillPasswords = PR_TRUE;
|
||||
mPrefService->GetBoolPref(gAutoFillEnabledPref, &autoFillPasswords);
|
||||
[mAutoFillPasswords setState:(autoFillPasswords ? NSOnState : NSOffState)];
|
||||
|
||||
// setup allow/deny table popups
|
||||
NSPopUpButtonCell *popupButtonCell = [mPermissionColumn dataCell];
|
||||
[popupButtonCell setEditable:YES];
|
||||
[popupButtonCell addItemsWithTitles:[NSArray arrayWithObjects:[self getLocalizedString:@"Allow"], [self getLocalizedString:@"Deny"], nil]];
|
||||
|
||||
//remove the popup from the filter input fields
|
||||
[[mPermissionFilterField cell] setHasPopUpButton: NO];
|
||||
[[mCookiesFilterField cell] setHasPopUpButton: NO];
|
||||
}
|
||||
|
||||
-(void) mapCookiePrefToGUI: (int)pref
|
||||
{
|
||||
[mCookieBehavior selectCellWithTag:pref];
|
||||
[mAskAboutCookies setEnabled:(pref == kAcceptAllCookies || pref == kAcceptCookiesFromOriginatingServer)];
|
||||
}
|
||||
|
||||
//
|
||||
// Stored cookie editing methods
|
||||
//
|
||||
|
||||
-(void) populateCookieCache
|
||||
{
|
||||
nsCOMPtr<nsISimpleEnumerator> cookieEnum;
|
||||
if (mCookieManager)
|
||||
mCookieManager->GetEnumerator(getter_AddRefs(cookieEnum));
|
||||
|
||||
mCachedCookies = new nsCOMArray<nsICookie>;
|
||||
if (mCachedCookies && cookieEnum) {
|
||||
mCachedCookies->Clear();
|
||||
PRBool hasMoreElements = PR_FALSE;
|
||||
cookieEnum->HasMoreElements(&hasMoreElements);
|
||||
while (hasMoreElements) {
|
||||
nsCOMPtr<nsICookie> cookie;
|
||||
cookieEnum->GetNext(getter_AddRefs(cookie));
|
||||
mCachedCookies->AppendObject(cookie);
|
||||
cookieEnum->HasMoreElements(&hasMoreElements);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
-(IBAction) editCookies:(id)aSender
|
||||
{
|
||||
// build parallel cookie list
|
||||
[self populateCookieCache];
|
||||
|
||||
[mCookiesTable setDeleteAction:@selector(removeCookies:)];
|
||||
[mCookiesTable setTarget:self];
|
||||
|
||||
// start sorted by host
|
||||
mCachedCookies->Sort(compareCookieHosts, nsnull);
|
||||
NSTableColumn* sortedColumn = [mCookiesTable tableColumnWithIdentifier:@"Website"];
|
||||
[mCookiesTable setHighlightedTableColumn:sortedColumn];
|
||||
if ([mCookiesTable respondsToSelector:@selector(setIndicatorImage:inTableColumn:)])
|
||||
[mCookiesTable setIndicatorImage:[NSTableView indicatorImage:YES] inTableColumn:sortedColumn];
|
||||
mSortedAscending = YES;
|
||||
|
||||
// ensure a row is selected (cocoa doesn't do this for us, but will keep
|
||||
// us from unselecting a row once one is set; go figure).
|
||||
[mCookiesTable selectRow: 0 byExtendingSelection: NO];
|
||||
|
||||
// use alternating row colors on 10.3+
|
||||
if ([mCookiesTable respondsToSelector:@selector(setUsesAlternatingRowBackgroundColors:)]) {
|
||||
[mCookiesTable setUsesAlternatingRowBackgroundColors:YES];
|
||||
NSArray* columns = [mCookiesTable tableColumns];
|
||||
if (columns) {
|
||||
int numColumns = [columns count];
|
||||
for (int i = 0; i < numColumns; ++i)
|
||||
[[[columns objectAtIndex:i] dataCell] setDrawsBackground:NO];
|
||||
}
|
||||
}
|
||||
|
||||
//clear the filter field
|
||||
[mCookiesFilterField setStringValue: @""];
|
||||
// make sure the "remove all" button is enabled
|
||||
[mRemoveAllCookiesButton setEnabled:YES];
|
||||
|
||||
// we shouldn't need to do this, but the scrollbar won't enable unless we
|
||||
// force the table to reload its data. Oddly it gets the number of rows correct,
|
||||
// it just forgets to tell the scrollbar. *shrug*
|
||||
[mCookiesTable reloadData];
|
||||
|
||||
// bring up sheet
|
||||
[NSApp beginSheet:mCookiesPanel
|
||||
modalForWindow:[mAskAboutCookies window] // any old window accessor
|
||||
modalDelegate:self
|
||||
didEndSelector:NULL
|
||||
contextInfo:NULL];
|
||||
NSSize min = {440, 240};
|
||||
[mCookiesPanel setMinSize:min];
|
||||
}
|
||||
|
||||
-(IBAction) removeCookies:(id)aSender
|
||||
{
|
||||
int rowToSelect = -1;
|
||||
|
||||
if (mCachedCookies && mCookieManager) {
|
||||
NSArray *rows = [[mCookiesTable selectedRowEnumerator] allObjects];
|
||||
NSEnumerator *e = [rows reverseObjectEnumerator];
|
||||
NSNumber *index;
|
||||
while ((index = [e nextObject]))
|
||||
{
|
||||
int row = [index intValue];
|
||||
if (rowToSelect == -1)
|
||||
rowToSelect = row;
|
||||
else
|
||||
--rowToSelect;
|
||||
|
||||
nsCAutoString host, name, path;
|
||||
mCachedCookies->ObjectAt(row)->GetHost(host);
|
||||
mCachedCookies->ObjectAt(row)->GetName(name);
|
||||
mCachedCookies->ObjectAt(row)->GetPath(path);
|
||||
mCookieManager->Remove(host, name, path, PR_FALSE); // don't block permanently
|
||||
mCachedCookies->RemoveObjectAt(row);
|
||||
}
|
||||
}
|
||||
|
||||
[mCookiesTable reloadData];
|
||||
|
||||
if (rowToSelect >=0 && rowToSelect < [mCookiesTable numberOfRows])
|
||||
[mCookiesTable selectRow:rowToSelect byExtendingSelection:NO];
|
||||
else
|
||||
[mCookiesTable deselectAll: self];
|
||||
}
|
||||
|
||||
-(IBAction) removeAllCookies: (id)aSender
|
||||
{
|
||||
if (NSRunCriticalAlertPanel(NSLocalizedString(@"RemoveAllCookiesWarningTitle", @"RemoveAllCookiesWarningTitle"),
|
||||
NSLocalizedString(@"RemoveAllCookiesWarning", @"RemoveAllCookiesWarning"),
|
||||
NSLocalizedString(@"Remove All Cookies", @"Remove All Cookies"),
|
||||
NSLocalizedString(@"CancelButtonText", @"Cancel"),
|
||||
nil) == NSAlertDefaultReturn) {
|
||||
if (mCookieManager) {
|
||||
// remove all cookies from cookie manager
|
||||
mCookieManager->RemoveAll();
|
||||
// create new cookie cache
|
||||
delete mCachedCookies;
|
||||
mCachedCookies = new nsCOMArray<nsICookie>;
|
||||
}
|
||||
[mCookiesTable reloadData];
|
||||
}
|
||||
}
|
||||
|
||||
-(IBAction) editCookiesDone:(id)aSender
|
||||
{
|
||||
// save stuff
|
||||
[mCookiesPanel orderOut:self];
|
||||
[NSApp endSheet:mCookiesPanel];
|
||||
|
||||
delete mCachedCookies;
|
||||
mCachedCookies = nsnull;
|
||||
}
|
||||
|
||||
//
|
||||
// Site permission editing methods
|
||||
|
||||
-(void) populatePermissionCache
|
||||
{
|
||||
nsCOMPtr<nsISimpleEnumerator> permEnum;
|
||||
if (mPermissionManager)
|
||||
mPermissionManager->GetEnumerator(getter_AddRefs(permEnum));
|
||||
|
||||
mCachedPermissions = new nsCOMArray<nsIPermission>;
|
||||
if (mCachedPermissions && permEnum) {
|
||||
mCachedPermissions->Clear();
|
||||
PRBool hasMoreElements = PR_FALSE;
|
||||
permEnum->HasMoreElements(&hasMoreElements);
|
||||
while (hasMoreElements) {
|
||||
nsCOMPtr<nsISupports> curr;
|
||||
permEnum->GetNext(getter_AddRefs(curr));
|
||||
nsCOMPtr<nsIPermission> currPerm(do_QueryInterface(curr));
|
||||
if (currPerm) {
|
||||
nsCAutoString type;
|
||||
currPerm->GetType(type);
|
||||
if (type.Equals(NS_LITERAL_CSTRING("cookie")))
|
||||
mCachedPermissions->AppendObject(currPerm);
|
||||
}
|
||||
permEnum->HasMoreElements(&hasMoreElements);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
-(IBAction) editPermissions:(id)aSender
|
||||
{
|
||||
// build parallel permission list for speed with a lot of blocked sites
|
||||
[self populatePermissionCache];
|
||||
|
||||
[mPermissionsTable setDeleteAction:@selector(removeCookiePermissions:)];
|
||||
[mPermissionsTable setTarget:self];
|
||||
|
||||
// start sorted by host
|
||||
mCachedPermissions->Sort(comparePermHosts, nsnull);
|
||||
NSTableColumn* sortedColumn = [mPermissionsTable tableColumnWithIdentifier:@"Website"];
|
||||
[mPermissionsTable setHighlightedTableColumn:sortedColumn];
|
||||
if ([mPermissionsTable respondsToSelector:@selector(setIndicatorImage:inTableColumn:)])
|
||||
[mPermissionsTable setIndicatorImage:[NSTableView indicatorImage:YES] inTableColumn:sortedColumn];
|
||||
mSortedAscending = YES;
|
||||
|
||||
// ensure a row is selected (cocoa doesn't do this for us, but will keep
|
||||
// us from unselecting a row once one is set; go figure).
|
||||
[mPermissionsTable selectRow:0 byExtendingSelection:NO];
|
||||
|
||||
// use alternating row colors on 10.3+
|
||||
if ([mPermissionsTable respondsToSelector:@selector(setUsesAlternatingRowBackgroundColors:)])
|
||||
[mPermissionsTable setUsesAlternatingRowBackgroundColors:YES];
|
||||
|
||||
//clear the filter field
|
||||
[mPermissionFilterField setStringValue: @""];
|
||||
// and make sure the button is enabled
|
||||
[mRemoveAllPermissionsButton setEnabled:YES];
|
||||
|
||||
// we shouldn't need to do this, but the scrollbar won't enable unless we
|
||||
// force the table to reload its data. Oddly it gets the number of rows correct,
|
||||
// it just forgets to tell the scrollbar. *shrug*
|
||||
[mPermissionsTable reloadData];
|
||||
|
||||
// bring up sheet
|
||||
[NSApp beginSheet:mPermissionsPanel
|
||||
modalForWindow:[mAskAboutCookies window] // any old window accessor
|
||||
modalDelegate:self
|
||||
didEndSelector:NULL
|
||||
contextInfo:NULL];
|
||||
NSSize min = {440, 240};
|
||||
[mPermissionsPanel setMinSize:min];
|
||||
}
|
||||
|
||||
-(IBAction) removeCookiePermissions:(id)aSender
|
||||
{
|
||||
int rowToSelect = -1;
|
||||
|
||||
if (mCachedPermissions && mPermissionManager) {
|
||||
// remove from parallel array and cookie permissions list
|
||||
NSArray *rows = [[mPermissionsTable selectedRowEnumerator] allObjects];
|
||||
NSEnumerator *e = [rows reverseObjectEnumerator];
|
||||
NSNumber *index;
|
||||
while ((index = [e nextObject])) {
|
||||
int row = [index intValue];
|
||||
if (rowToSelect == -1)
|
||||
rowToSelect = row;
|
||||
else
|
||||
--rowToSelect;
|
||||
nsCAutoString host;
|
||||
mCachedPermissions->ObjectAt(row)->GetHost(host);
|
||||
mPermissionManager->Remove(host, "cookie");
|
||||
mCachedPermissions->RemoveObjectAt(row);
|
||||
}
|
||||
}
|
||||
|
||||
[mPermissionsTable reloadData];
|
||||
|
||||
if (rowToSelect >=0 && rowToSelect < [mPermissionsTable numberOfRows])
|
||||
[mPermissionsTable selectRow:rowToSelect byExtendingSelection:NO];
|
||||
else
|
||||
[mPermissionsTable deselectAll: self]; // don't want any traces of previous selection
|
||||
}
|
||||
|
||||
-(IBAction) removeAllCookiePermissions: (id)aSender
|
||||
{
|
||||
if (mPermissionManager) {
|
||||
// remove all permissions from permission manager
|
||||
mPermissionManager->RemoveAll();
|
||||
delete mCachedPermissions;
|
||||
mCachedPermissions = nsnull;
|
||||
mCachedPermissions = new nsCOMArray<nsIPermission>;
|
||||
}
|
||||
[mPermissionsTable reloadData];
|
||||
}
|
||||
|
||||
-(IBAction) editPermissionsDone:(id)aSender
|
||||
{
|
||||
// save stuff
|
||||
[mPermissionsPanel orderOut:self];
|
||||
[NSApp endSheet:mPermissionsPanel];
|
||||
|
||||
delete mCachedPermissions;
|
||||
mCachedPermissions = nsnull;
|
||||
}
|
||||
|
||||
-(int) getRowForPermissionWithHost:(NSString *)aHost {
|
||||
nsCAutoString host;
|
||||
if (mCachedPermissions) {
|
||||
int numRows = mCachedPermissions->Count();
|
||||
for (int row = 0; row < numRows; ++row) {
|
||||
mCachedPermissions->ObjectAt(row)->GetHost(host);
|
||||
if ([[NSString stringWithUTF8String:host.get()] isEqualToString:aHost]) return row;
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
//
|
||||
// NSTableDataSource protocol methods
|
||||
//
|
||||
|
||||
-(int) numberOfRowsInTableView:(NSTableView *)aTableView
|
||||
{
|
||||
PRUint32 numRows = 0;
|
||||
if (aTableView == mPermissionsTable) {
|
||||
if (mCachedPermissions)
|
||||
numRows = mCachedPermissions->Count();
|
||||
} else if (aTableView == mCookiesTable) {
|
||||
if (mCachedCookies)
|
||||
numRows = mCachedCookies->Count();
|
||||
}
|
||||
|
||||
return (int) numRows;
|
||||
}
|
||||
|
||||
-(id) tableView:(NSTableView *)aTableView objectValueForTableColumn:(NSTableColumn *)aTableColumn row:(int)rowIndex
|
||||
{
|
||||
NSString* retVal = nil;
|
||||
if (aTableView == mPermissionsTable) {
|
||||
if (mCachedPermissions) {
|
||||
if ([[aTableColumn identifier] isEqualToString:@"Website"]) {
|
||||
// website url column
|
||||
nsCAutoString host;
|
||||
mCachedPermissions->ObjectAt(rowIndex)->GetHost(host);
|
||||
retVal = [NSString stringWithUTF8String:host.get()];
|
||||
} else {
|
||||
// allow/deny column
|
||||
PRUint32 capability = PR_FALSE;
|
||||
mCachedPermissions->ObjectAt(rowIndex)->GetCapability(&capability);
|
||||
if (capability == nsIPermissionManager::ALLOW_ACTION)
|
||||
return [NSNumber numberWithInt:kAllowIndex]; // special case return
|
||||
else
|
||||
return [NSNumber numberWithInt:kDenyIndex]; // special case return
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (aTableView == mCookiesTable) {
|
||||
if (mCachedCookies) {
|
||||
nsCAutoString cookieVal;
|
||||
if ([[aTableColumn identifier] isEqualToString: @"Website"]) {
|
||||
mCachedCookies->ObjectAt(rowIndex)->GetHost(cookieVal);
|
||||
} else if ([[aTableColumn identifier] isEqualToString: @"Name"]) {
|
||||
mCachedCookies->ObjectAt(rowIndex)->GetName(cookieVal);
|
||||
} else if ([[aTableColumn identifier] isEqualToString: @"Path"]) {
|
||||
mCachedCookies->ObjectAt(rowIndex)->GetPath(cookieVal);
|
||||
} else if ([[aTableColumn identifier] isEqualToString: @"Secure"]) {
|
||||
PRBool secure = PR_FALSE;
|
||||
mCachedCookies->ObjectAt(rowIndex)->GetIsSecure(&secure);
|
||||
if (secure)
|
||||
retVal = NSLocalizedString(@"yes",@"yes");
|
||||
else
|
||||
retVal = NSLocalizedString(@"no",@"no");
|
||||
return retVal;
|
||||
} else if ([[aTableColumn identifier] isEqualToString: @"Expires"]) {
|
||||
PRUint64 expires = 0;
|
||||
mCachedCookies->ObjectAt(rowIndex)->GetExpires(&expires);
|
||||
if (expires == 0) {
|
||||
// if expires is 0, it's a session cookie; display as expiring on the current date.
|
||||
// It's not perfect, but it's better than showing the epoch.
|
||||
NSDate *date = [NSDate date];
|
||||
return date; // special case return
|
||||
} else {
|
||||
NSDate *date = [NSDate dateWithTimeIntervalSince1970: (NSTimeInterval)expires];
|
||||
return date; // special case return
|
||||
}
|
||||
} else if ([[aTableColumn identifier] isEqualToString: @"Value"]) {
|
||||
mCachedCookies->ObjectAt(rowIndex)->GetValue(cookieVal);
|
||||
}
|
||||
retVal = [NSString stringWithCString: cookieVal.get()];
|
||||
}
|
||||
}
|
||||
|
||||
return retVal;
|
||||
}
|
||||
|
||||
// currently, this only applies to the site allow/deny, since that's the only editable column
|
||||
-(void) tableView:(NSTableView *)aTableView
|
||||
setObjectValue:anObject
|
||||
forTableColumn:(NSTableColumn *)aTableColumn
|
||||
row:(int)rowIndex
|
||||
{
|
||||
if (aTableView == mPermissionsTable && aTableColumn == mPermissionColumn) {
|
||||
if (mCachedPermissions && mPermissionManager) {
|
||||
// create a URI from the hostname of the changed site
|
||||
nsCAutoString host;
|
||||
mCachedPermissions->ObjectAt(rowIndex)->GetHost(host);
|
||||
NSString* url = [NSString stringWithFormat:@"http://%s", host.get()];
|
||||
const char* siteURL = [url UTF8String];
|
||||
nsCOMPtr<nsIURI> newURI;
|
||||
NS_NewURI(getter_AddRefs(newURI), siteURL);
|
||||
if (newURI) {
|
||||
// nsIPermissions are immutable, and there's no API to change the action,
|
||||
// so instead we have to delete the old pref and insert a new one.
|
||||
// remove the old entry
|
||||
mPermissionManager->Remove(host, "cookie");
|
||||
// add a new entry with the new permission
|
||||
if ([anObject intValue] == kAllowIndex)
|
||||
mPermissionManager->Add(newURI, "cookie", nsIPermissionManager::ALLOW_ACTION);
|
||||
else if ([anObject intValue] == kDenyIndex)
|
||||
mPermissionManager->Add(newURI, "cookie", nsIPermissionManager::DENY_ACTION);
|
||||
|
||||
// there really should be a better way to keep the cache up-to-date than rebuilding
|
||||
// it, but the nsIPermissionManager interface doesn't have a way to get a pointer
|
||||
// to a site's nsIPermission. It's this, use a custom class that duplicates the
|
||||
// information (wasting a lot of memory), or find a way to tie in to
|
||||
// PERM_CHANGE_NOTIFICATION to get the new nsIPermission that way.
|
||||
//re-filter
|
||||
[self filterCookiesPermissionsWithString:[mPermissionFilterField stringValue]];
|
||||
// re-aquire selection of the changed permission
|
||||
int selectedRowIndex = [self getRowForPermissionWithHost:[NSString stringWithUTF8String:host.get()]];
|
||||
nsCOMPtr<nsIPermission> selectedItem = (selectedRowIndex != -1) ?
|
||||
mCachedPermissions->ObjectAt(selectedRowIndex) : nsnull;
|
||||
// re-sort
|
||||
[self sortPermissionsByColumn:[mPermissionsTable highlightedTableColumn] inAscendingOrder:mSortedAscending];
|
||||
// scroll to the new position of changed item
|
||||
if (selectedItem) {
|
||||
int newRowIndex = mCachedPermissions->IndexOf(selectedItem);
|
||||
if (newRowIndex >= 0) {
|
||||
[aTableView selectRow:newRowIndex byExtendingSelection:NO];
|
||||
[aTableView scrollRowToVisible:newRowIndex];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
-(void) sortPermissionsByColumn:(NSTableColumn *)aTableColumn inAscendingOrder:(BOOL)ascending
|
||||
{
|
||||
if(mCachedPermissions) {
|
||||
if ([[aTableColumn identifier] isEqualToString:@"Website"])
|
||||
mCachedPermissions->Sort(comparePermHosts, (ascending) ? nsnull : (void *)kSortReverse);
|
||||
else
|
||||
mCachedPermissions->Sort(compareCapabilities, (ascending) ? nsnull : (void *)kSortReverse);
|
||||
[mPermissionsTable setHighlightedTableColumn:aTableColumn];
|
||||
[mPermissionsTable reloadData];
|
||||
}
|
||||
}
|
||||
|
||||
-(void) sortCookiesByColumn:(NSTableColumn *)aTableColumn inAscendingOrder:(BOOL)ascending
|
||||
{
|
||||
if(mCachedCookies) {
|
||||
if ([[aTableColumn identifier] isEqualToString:@"Website"])
|
||||
mCachedCookies->Sort(compareCookieHosts, (ascending) ? nsnull : (void *)kSortReverse);
|
||||
else if ([[aTableColumn identifier] isEqualToString:@"Name"])
|
||||
mCachedCookies->Sort(compareNames, (ascending) ? nsnull : (void *)kSortReverse);
|
||||
else if ([[aTableColumn identifier] isEqualToString:@"Path"])
|
||||
mCachedCookies->Sort(comparePaths, (ascending) ? nsnull : (void *)kSortReverse);
|
||||
else if ([[aTableColumn identifier] isEqualToString:@"Secure"])
|
||||
mCachedCookies->Sort(compareSecures, (ascending) ? nsnull : (void *)kSortReverse);
|
||||
else if ([[aTableColumn identifier] isEqualToString:@"Expires"])
|
||||
mCachedCookies->Sort(compareExpires, (ascending) ? nsnull : (void *)kSortReverse);
|
||||
else if ([[aTableColumn identifier] isEqualToString:@"Value"])
|
||||
mCachedCookies->Sort(compareValues, (ascending) ? nsnull : (void *)kSortReverse);
|
||||
[mCookiesTable setHighlightedTableColumn:aTableColumn];
|
||||
[mCookiesTable reloadData];
|
||||
}
|
||||
}
|
||||
|
||||
// NSTableView delegate methods
|
||||
|
||||
- (void) tableView:(NSTableView *)aTableView didClickTableColumn:(NSTableColumn *)aTableColumn
|
||||
{
|
||||
// reverse the sort if clicking again on the same column
|
||||
if (aTableColumn == [aTableView highlightedTableColumn])
|
||||
mSortedAscending = !mSortedAscending;
|
||||
else
|
||||
mSortedAscending = YES;
|
||||
|
||||
// adjust sort indicator on new column, removing from old column
|
||||
if ([aTableView respondsToSelector:@selector(setIndicatorImage:inTableColumn:)]) {
|
||||
[aTableView setIndicatorImage:nil inTableColumn:[aTableView highlightedTableColumn]];
|
||||
[aTableView setIndicatorImage:[NSTableView indicatorImage:mSortedAscending] inTableColumn:aTableColumn];
|
||||
}
|
||||
|
||||
if (aTableView == mPermissionsTable) {
|
||||
if (mCachedPermissions) {
|
||||
// save the currently selected rows, if any.
|
||||
nsCOMArray<nsIPermission> selectedItems;
|
||||
NSEnumerator *e = [mPermissionsTable selectedRowEnumerator];
|
||||
NSNumber *index;
|
||||
while ((index = [e nextObject])) {
|
||||
int row = [index intValue];
|
||||
selectedItems.AppendObject(mCachedPermissions->ObjectAt(row));
|
||||
}
|
||||
// sort the table data
|
||||
[self sortPermissionsByColumn:aTableColumn inAscendingOrder:mSortedAscending];
|
||||
// if any rows were selected before, find them again
|
||||
[mPermissionsTable deselectAll:self];
|
||||
for (int i = 0; i < selectedItems.Count(); ++i) {
|
||||
int newRowIndex = mCachedPermissions->IndexOf(selectedItems.ObjectAt(i));
|
||||
if (newRowIndex >= 0) {
|
||||
// scroll to the first item (arbitrary, but at least one should show)
|
||||
if (i == 0)
|
||||
[mPermissionsTable scrollRowToVisible:newRowIndex];
|
||||
[mPermissionsTable selectRow:newRowIndex byExtendingSelection:YES];
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (aTableView == mCookiesTable) {
|
||||
if (mCachedCookies) {
|
||||
// save the currently selected rows, if any.
|
||||
nsCOMArray<nsICookie> selectedItems;
|
||||
NSEnumerator *e = [mCookiesTable selectedRowEnumerator];
|
||||
NSNumber *index;
|
||||
while ((index = [e nextObject])) {
|
||||
int row = [index intValue];
|
||||
selectedItems.AppendObject(mCachedCookies->ObjectAt(row));
|
||||
}
|
||||
// sort the table data
|
||||
[self sortCookiesByColumn:aTableColumn inAscendingOrder:mSortedAscending];
|
||||
// if any rows were selected before, find them again
|
||||
[mCookiesTable deselectAll:self];
|
||||
for (int i = 0; i < selectedItems.Count(); ++i) {
|
||||
int newRowIndex = mCachedCookies->IndexOf(selectedItems.ObjectAt(i));
|
||||
if (newRowIndex >= 0) {
|
||||
// scroll to the first item (arbitrary, but at least one should show)
|
||||
if (i == 0)
|
||||
[mCookiesTable scrollRowToVisible:newRowIndex];
|
||||
[mCookiesTable selectRow:newRowIndex byExtendingSelection:YES];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
- (void)tableViewSelectionDidChange:(NSNotification *)aNotification
|
||||
{
|
||||
if ([aNotification object] == mCookiesTable)
|
||||
{
|
||||
int selRow =[mCookiesTable selectedRow];
|
||||
[mRemoveCookiesButton setEnabled:(selRow != -1)];
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// Buttons
|
||||
//
|
||||
|
||||
-(IBAction) clickCookieBehavior:(id)sender
|
||||
{
|
||||
int row = [mCookieBehavior selectedRow];
|
||||
[self setPref:"network.cookie.cookieBehavior" toInt:row];
|
||||
[self mapCookiePrefToGUI:row];
|
||||
}
|
||||
|
||||
-(IBAction) clickAskAboutCookies:(id)sender
|
||||
{
|
||||
[self setPref:"network.cookie.lifetimePolicy" toInt:([sender state] == NSOnState) ? kWarnAboutCookies : kAcceptCookiesNormally];
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// clickStorePasswords
|
||||
//
|
||||
-(IBAction) clickStorePasswords:(id)sender
|
||||
{
|
||||
if (!mPrefService)
|
||||
return;
|
||||
mPrefService->SetBoolPref("chimera.store_passwords_with_keychain",
|
||||
([mStorePasswords state] == NSOnState) ? PR_TRUE : PR_FALSE);
|
||||
[mAutoFillPasswords setEnabled:([mStorePasswords state] == NSOnState)];
|
||||
}
|
||||
|
||||
//
|
||||
// clickAutoFillPasswords
|
||||
//
|
||||
// Set pref if autofill is enabled
|
||||
//
|
||||
-(IBAction) clickAutoFillPasswords:(id)sender
|
||||
{
|
||||
if (!mPrefService)
|
||||
return;
|
||||
mPrefService->SetBoolPref("chimera.keychain_passwords_autofill",
|
||||
([mAutoFillPasswords state] == NSOnState) ? PR_TRUE : PR_FALSE);
|
||||
}
|
||||
|
||||
-(IBAction) launchKeychainAccess:(id)sender
|
||||
{
|
||||
FSRef fsRef;
|
||||
CFURLRef urlRef;
|
||||
OSErr err = ::LSGetApplicationForInfo('APPL', 'kcmr', NULL, kLSRolesAll, &fsRef, &urlRef);
|
||||
if (!err) {
|
||||
CFStringRef fileSystemURL = ::CFURLCopyFileSystemPath(urlRef, kCFURLPOSIXPathStyle);
|
||||
[[NSWorkspace sharedWorkspace] launchApplication:(NSString*)fileSystemURL];
|
||||
CFRelease(fileSystemURL);
|
||||
}
|
||||
}
|
||||
|
||||
- (void)controlTextDidChange:(NSNotification *)aNotification
|
||||
{
|
||||
NSString *filterString = [[aNotification object] stringValue];
|
||||
|
||||
// find out if we are filtering the permission or the cookies
|
||||
if (([aNotification object] == mPermissionFilterField) && mCachedPermissions && mPermissionManager) {
|
||||
// the user wants to filter down the list of cookies. Reinitialize the list of permission in case
|
||||
// they deleted or replaced a letter.
|
||||
[mRemoveAllPermissionsButton setEnabled:([filterString length] == 0)];
|
||||
[self filterCookiesPermissionsWithString:filterString];
|
||||
// re-sort
|
||||
[self sortPermissionsByColumn:[mPermissionsTable highlightedTableColumn] inAscendingOrder:mSortedAscending];
|
||||
|
||||
[mPermissionsTable deselectAll: self]; // don't want any traces of previous selection
|
||||
[mPermissionsTable reloadData];
|
||||
}
|
||||
else if (([aNotification object] == mCookiesFilterField) && mCachedCookies && mCookieManager) {
|
||||
// reinitialize the list of cookies in case user deleted a letter or replaced a letter
|
||||
[mRemoveAllCookiesButton setEnabled:([filterString length] == 0)];
|
||||
[self filterCookiesWithString:filterString];
|
||||
// re-sort
|
||||
[self sortCookiesByColumn:[mCookiesTable highlightedTableColumn] inAscendingOrder:mSortedAscending];
|
||||
|
||||
[mCookiesTable deselectAll: self]; // don't want any traces of previous selection
|
||||
[mCookiesTable reloadData];
|
||||
}
|
||||
}
|
||||
|
||||
- (void) filterCookiesPermissionsWithString: (NSString*) inFilterString
|
||||
{
|
||||
// the user wants to filter down the list of cookies. Reinitialize the list of permission in case
|
||||
// they deleted or replaced a letter.
|
||||
[self populatePermissionCache];
|
||||
|
||||
if ([inFilterString length]) {
|
||||
NSMutableArray *indexToRemove = [NSMutableArray array];
|
||||
for (int row = 0; row < mCachedPermissions->Count(); row++) {
|
||||
nsCAutoString host;
|
||||
mCachedPermissions->ObjectAt(row)->GetHost(host);
|
||||
if ([[NSString stringWithUTF8String:host.get()] rangeOfString:inFilterString].location == NSNotFound)
|
||||
// add to our buffer
|
||||
[indexToRemove addObject:[NSNumber numberWithInt:row]];
|
||||
}
|
||||
|
||||
//remove the items at the saved indexes
|
||||
//
|
||||
NSEnumerator *theEnum = [indexToRemove reverseObjectEnumerator];
|
||||
NSNumber *currentItem;
|
||||
while (currentItem = [theEnum nextObject])
|
||||
mCachedPermissions->RemoveObjectAt([currentItem intValue]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
- (void) filterCookiesWithString: (NSString*) inFilterString
|
||||
{
|
||||
// reinitialize the list of cookies in case user deleted a letter or replaced a letter
|
||||
[self populateCookieCache];
|
||||
|
||||
if ([inFilterString length]) {
|
||||
NSMutableArray *indexToRemove = [NSMutableArray array];
|
||||
for (int row = 0; row < mCachedCookies->Count(); row++) {
|
||||
nsCAutoString host;
|
||||
// only search on the host
|
||||
mCachedCookies->ObjectAt(row)->GetHost(host);
|
||||
if ([[NSString stringWithUTF8String:host.get()] rangeOfString:inFilterString].location == NSNotFound)
|
||||
[indexToRemove addObject:[NSNumber numberWithInt:row]];
|
||||
}
|
||||
|
||||
//remove the items at the saved indexes
|
||||
//
|
||||
NSEnumerator *theEnum = [indexToRemove reverseObjectEnumerator];
|
||||
NSNumber *currentItem;
|
||||
while (currentItem = [theEnum nextObject])
|
||||
mCachedCookies->RemoveObjectAt([currentItem intValue]);
|
||||
}
|
||||
}
|
||||
@end
|
||||
Binary file not shown.
@@ -1,30 +0,0 @@
|
||||
{
|
||||
IBClasses = (
|
||||
{CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; },
|
||||
{
|
||||
CLASS = NSPreferencePane;
|
||||
LANGUAGE = ObjC;
|
||||
OUTLETS = {
|
||||
"_firstKeyView" = id;
|
||||
"_initialKeyView" = id;
|
||||
"_lastKeyView" = id;
|
||||
"_window" = id;
|
||||
};
|
||||
SUPERCLASS = NSObject;
|
||||
},
|
||||
{
|
||||
ACTIONS = {
|
||||
clickEnableLeaveEncrypted = id;
|
||||
clickEnableLoadLowGrade = id;
|
||||
clickEnableViewMixed = id;
|
||||
showCertificates = id;
|
||||
};
|
||||
CLASS = OrgMozillaChimeraPreferenceSecurity;
|
||||
LANGUAGE = ObjC;
|
||||
OUTLETS = {mLeaveEncrypted = NSButton; mLoadLowGrade = NSButton; mViewMixed = NSButton; };
|
||||
SUPERCLASS = PreferencePaneBase;
|
||||
},
|
||||
{CLASS = PreferencePaneBase; LANGUAGE = ObjC; SUPERCLASS = NSPreferencePane; }
|
||||
);
|
||||
IBVersion = 1;
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>IBDocumentLocation</key>
|
||||
<string>56 71 356 240 0 0 1600 1002 </string>
|
||||
<key>IBFramework Version</key>
|
||||
<string>437.0</string>
|
||||
<key>IBSystem Version</key>
|
||||
<string>8C46</string>
|
||||
</dict>
|
||||
</plist>
|
||||
Binary file not shown.
Binary file not shown.
@@ -1,58 +0,0 @@
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
/* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Netscape Communications Corporation.
|
||||
* Portions created by the Initial Developer are Copyright (C) 2002
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
#import <Cocoa/Cocoa.h>
|
||||
#import <PreferencePanes/NSPreferencePane.h>
|
||||
|
||||
#import "PreferencePaneBase.h"
|
||||
|
||||
class nsIPref;
|
||||
|
||||
@interface OrgMozillaChimeraPreferenceSecurity : PreferencePaneBase
|
||||
{
|
||||
IBOutlet NSButton* mLeaveEncrypted;
|
||||
IBOutlet NSButton* mLoadLowGrade;
|
||||
IBOutlet NSButton* mViewMixed;
|
||||
}
|
||||
|
||||
-(IBAction) clickEnableLeaveEncrypted:(id)sender;
|
||||
-(IBAction) clickEnableLoadLowGrade:(id)sender;
|
||||
-(IBAction) clickEnableViewMixed:(id)sender;
|
||||
|
||||
-(IBAction)showCertificates:(id)sender;
|
||||
|
||||
@end
|
||||
@@ -1,119 +0,0 @@
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
/* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Netscape Communications Corporation.
|
||||
* Portions created by the Initial Developer are Copyright (C) 2002
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
#import "SecurityPane.h"
|
||||
|
||||
#include "nsServiceManagerUtils.h"
|
||||
#include "nsIPref.h"
|
||||
|
||||
// prefs for showing security dialogs
|
||||
#define WEAK_SITE_PREF "security.warn_entering_weak"
|
||||
#define LEAVE_SITE_PREF "security.warn_leaving_secure"
|
||||
#define MIXEDCONTENT_PREF "security.warn_viewing_mixed"
|
||||
|
||||
|
||||
@implementation OrgMozillaChimeraPreferenceSecurity
|
||||
|
||||
- (void)dealloc
|
||||
{
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
- (void)updateButtons
|
||||
{
|
||||
// Set initial value on Security checkboxes
|
||||
PRBool leaveEncrypted = PR_TRUE;
|
||||
mPrefService->GetBoolPref(LEAVE_SITE_PREF, &leaveEncrypted);
|
||||
[mLeaveEncrypted setState:(leaveEncrypted ? NSOnState : NSOffState)];
|
||||
|
||||
PRBool loadLowGrade = PR_TRUE;
|
||||
mPrefService->GetBoolPref(WEAK_SITE_PREF, &loadLowGrade);
|
||||
[mLoadLowGrade setState:(loadLowGrade ? NSOnState : NSOffState)];
|
||||
|
||||
PRBool viewMixed = PR_TRUE;
|
||||
mPrefService->GetBoolPref(MIXEDCONTENT_PREF, &viewMixed);
|
||||
[mViewMixed setState:(viewMixed ? NSOnState : NSOffState)];
|
||||
}
|
||||
|
||||
|
||||
- (void)mainViewDidLoad
|
||||
{
|
||||
if ( !mPrefService )
|
||||
return;
|
||||
|
||||
[self updateButtons];
|
||||
}
|
||||
|
||||
- (void)didActivate
|
||||
{
|
||||
[self updateButtons];
|
||||
}
|
||||
|
||||
//
|
||||
// clickEnableViewMixed:
|
||||
// clickEnableLoadLowGrade:
|
||||
// clickEnableLeaveEncrypted:
|
||||
//
|
||||
// Set prefs for warnings/alerts wrt secure sites
|
||||
//
|
||||
|
||||
-(IBAction) clickEnableViewMixed:(id)sender
|
||||
{
|
||||
[self setPref:MIXEDCONTENT_PREF toBoolean:[sender state] == NSOnState];
|
||||
}
|
||||
|
||||
-(IBAction) clickEnableLoadLowGrade:(id)sender
|
||||
{
|
||||
[self setPref:WEAK_SITE_PREF toBoolean:[sender state] == NSOnState];
|
||||
}
|
||||
|
||||
-(IBAction) clickEnableLeaveEncrypted:(id)sender
|
||||
{
|
||||
[self setPref:LEAVE_SITE_PREF toBoolean:[sender state] == NSOnState];
|
||||
}
|
||||
|
||||
-(IBAction)showCertificates:(id)sender
|
||||
{
|
||||
// we'll just fire off a notification and let the application show the UI
|
||||
NSDictionary* userInfoDict = [NSDictionary dictionaryWithObject:[mLeaveEncrypted window] // any view's window
|
||||
forKey:@"parent_window"];
|
||||
[[NSNotificationCenter defaultCenter] postNotificationName:@"ShowCertificatesNotification"
|
||||
object:nil
|
||||
userInfo:userInfoDict];
|
||||
}
|
||||
|
||||
@end
|
||||
@@ -1,72 +0,0 @@
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
/* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Netscape Communications Corporation.
|
||||
* Portions created by the Initial Developer are Copyright (C) 2001
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
* Simon Fraser
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
#import <PreferencePanes/PreferencePanes.h>
|
||||
|
||||
class nsIPref;
|
||||
|
||||
|
||||
// optional methods that our prefs panes can implement
|
||||
@interface NSObject(CaminoPreferencePane)
|
||||
|
||||
// the prefs window was activated; pane should update its state
|
||||
- (void)didActivate;
|
||||
|
||||
@end
|
||||
|
||||
|
||||
@interface PreferencePaneBase : NSPreferencePane
|
||||
{
|
||||
nsIPref* mPrefService; // strong, but can't use a comptr here
|
||||
}
|
||||
|
||||
- (NSString*)getStringPref: (const char*)prefName withSuccess:(BOOL*)outSuccess;
|
||||
- (NSColor*)getColorPref: (const char*)prefName withSuccess:(BOOL*)outSuccess;
|
||||
- (BOOL)getBooleanPref: (const char*)prefName withSuccess:(BOOL*)outSuccess;
|
||||
- (int)getIntPref: (const char*)prefName withSuccess:(BOOL*)outSuccess;
|
||||
|
||||
- (void)setPref: (const char*)prefName toString:(NSString*)value;
|
||||
- (void)setPref: (const char*)prefName toColor:(NSColor*)value;
|
||||
- (void)setPref: (const char*)prefName toBoolean:(BOOL)value;
|
||||
- (void)setPref: (const char*)prefName toInt:(int)value;
|
||||
|
||||
- (void)clearPref: (const char*)prefName;
|
||||
|
||||
- (NSString*)getLocalizedString:(NSString*)key;
|
||||
|
||||
@end
|
||||
@@ -1,177 +0,0 @@
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
/* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Netscape Communications Corporation.
|
||||
* Portions created by the Initial Developer are Copyright (C) 2001
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
* Simon Fraser
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
#import "PreferencePaneBase.h"
|
||||
|
||||
#include "nsCOMPtr.h"
|
||||
#include "nsIServiceManager.h"
|
||||
#include "nsIPref.h"
|
||||
|
||||
@implementation PreferencePaneBase
|
||||
|
||||
- (void) dealloc
|
||||
{
|
||||
NS_IF_RELEASE(mPrefService);
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
- (id) initWithBundle:(NSBundle *) bundle
|
||||
{
|
||||
self = [super initWithBundle:bundle] ;
|
||||
|
||||
nsCOMPtr<nsIPref> prefService ( do_GetService(NS_PREF_CONTRACTID) );
|
||||
NS_ASSERTION(prefService, "Could not get pref service, pref panel left uninitialized");
|
||||
mPrefService = prefService.get();
|
||||
NS_IF_ADDREF(mPrefService);
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
#pragma mark -
|
||||
|
||||
- (NSString*)getStringPref: (const char*)prefName withSuccess:(BOOL*)outSuccess
|
||||
{
|
||||
NSString *prefValue = @"";
|
||||
|
||||
char *buf = nsnull;
|
||||
nsresult rv = mPrefService->GetCharPref(prefName, &buf);
|
||||
if (NS_SUCCEEDED(rv) && buf) {
|
||||
// prefs are UTF-8
|
||||
prefValue = [NSString stringWithUTF8String:buf];
|
||||
free(buf);
|
||||
if (outSuccess) *outSuccess = YES;
|
||||
} else {
|
||||
if (outSuccess) *outSuccess = NO;
|
||||
}
|
||||
|
||||
return prefValue;
|
||||
}
|
||||
|
||||
- (NSColor*)getColorPref: (const char*)prefName withSuccess:(BOOL*)outSuccess
|
||||
{
|
||||
// colors are stored in HTML-like #FFFFFF strings
|
||||
NSString* colorString = [self getStringPref:prefName withSuccess:outSuccess];
|
||||
NSColor* returnColor = [NSColor blackColor];
|
||||
|
||||
if ([colorString hasPrefix:@"#"] && [colorString length] == 7)
|
||||
{
|
||||
unsigned int redInt, greenInt, blueInt;
|
||||
sscanf([colorString cString], "#%02x%02x%02x", &redInt, &greenInt, &blueInt);
|
||||
|
||||
float redFloat = ((float)redInt / 255.0);
|
||||
float greenFloat = ((float)greenInt / 255.0);
|
||||
float blueFloat = ((float)blueInt / 255.0);
|
||||
|
||||
returnColor = [NSColor colorWithCalibratedRed:redFloat green:greenFloat blue:blueFloat alpha:1.0f];
|
||||
}
|
||||
else
|
||||
{
|
||||
*outSuccess = NO;
|
||||
}
|
||||
|
||||
return returnColor;
|
||||
}
|
||||
|
||||
- (BOOL)getBooleanPref: (const char*)prefName withSuccess:(BOOL*)outSuccess
|
||||
{
|
||||
PRBool boolPref = PR_FALSE;
|
||||
nsresult rv = mPrefService->GetBoolPref(prefName, &boolPref);
|
||||
if (outSuccess)
|
||||
*outSuccess = NS_SUCCEEDED(rv);
|
||||
|
||||
return boolPref ? YES : NO;
|
||||
}
|
||||
|
||||
- (int)getIntPref: (const char*)prefName withSuccess:(BOOL*)outSuccess
|
||||
{
|
||||
PRInt32 intPref = 0;
|
||||
nsresult rv = mPrefService->GetIntPref(prefName, &intPref);
|
||||
if (outSuccess)
|
||||
*outSuccess = NS_SUCCEEDED(rv);
|
||||
return intPref;
|
||||
}
|
||||
|
||||
- (void)setPref: (const char*)prefName toString:(NSString*)value
|
||||
{
|
||||
// prefs are UTF-8
|
||||
if (mPrefService) {
|
||||
mPrefService->SetCharPref(prefName, [value UTF8String]);
|
||||
}
|
||||
}
|
||||
|
||||
- (void)setPref: (const char*)prefName toColor:(NSColor*)value
|
||||
{
|
||||
// make sure we have a color in the RGB colorspace
|
||||
NSColor* rgbColor = [value colorUsingColorSpaceName:NSCalibratedRGBColorSpace];
|
||||
|
||||
int redInt = (int)([rgbColor redComponent] * 255.0);
|
||||
int greenInt = (int)([rgbColor greenComponent] * 255.0);
|
||||
int blueInt = (int)([rgbColor blueComponent] * 255.0);
|
||||
|
||||
NSString* colorString = [NSString stringWithFormat:@"#%02x%02x%02x", redInt, greenInt, blueInt];
|
||||
[self setPref:prefName toString:colorString];
|
||||
}
|
||||
|
||||
- (void)setPref: (const char*)prefName toBoolean:(BOOL)value
|
||||
{
|
||||
if (mPrefService) {
|
||||
mPrefService->SetBoolPref(prefName, value ? PR_TRUE : PR_FALSE);
|
||||
}
|
||||
}
|
||||
|
||||
- (void)setPref: (const char*)prefName toInt:(int)value
|
||||
{
|
||||
if (mPrefService) {
|
||||
PRInt32 prefValue = value;
|
||||
mPrefService->SetIntPref(prefName, prefValue);
|
||||
}
|
||||
}
|
||||
|
||||
- (void)clearPref: (const char*)prefName
|
||||
{
|
||||
if (mPrefService) {
|
||||
mPrefService->ClearUserPref(prefName);
|
||||
}
|
||||
}
|
||||
|
||||
- (NSString*)getLocalizedString:(NSString*)key
|
||||
{
|
||||
return NSLocalizedStringFromTableInBundle(key, nil, [NSBundle bundleForClass:[self class]], @"");
|
||||
}
|
||||
|
||||
@end
|
||||
Binary file not shown.
@@ -1,30 +0,0 @@
|
||||
{
|
||||
IBClasses = (
|
||||
{CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; },
|
||||
{
|
||||
CLASS = NSPreferencePane;
|
||||
LANGUAGE = ObjC;
|
||||
OUTLETS = {
|
||||
"_firstKeyView" = NSView;
|
||||
"_initialKeyView" = NSView;
|
||||
"_lastKeyView" = NSView;
|
||||
"_window" = NSWindow;
|
||||
};
|
||||
SUPERCLASS = NSObject;
|
||||
},
|
||||
{
|
||||
ACTIONS = {checkboxClicked = id; };
|
||||
CLASS = OrgMozillaChimeraPreferenceTabs;
|
||||
LANGUAGE = ObjC;
|
||||
OUTLETS = {
|
||||
checkboxLoadTabsInBackground = NSButton;
|
||||
mTabBarVisiblity = NSButton;
|
||||
radioOpenForAE = NSMatrix;
|
||||
radioOpenTabsForCommand = NSMatrix;
|
||||
};
|
||||
SUPERCLASS = PreferencePaneBase;
|
||||
},
|
||||
{CLASS = PreferencePaneBase; LANGUAGE = ObjC; SUPERCLASS = NSPreferencePane; }
|
||||
);
|
||||
IBVersion = 1;
|
||||
}
|
||||
@@ -1,12 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>IBDocumentLocation</key>
|
||||
<string>22 17 522 320 0 0 1280 1002 </string>
|
||||
<key>IBFramework Version</key>
|
||||
<string>364.0</string>
|
||||
<key>IBSystem Version</key>
|
||||
<string>7W98</string>
|
||||
</dict>
|
||||
</plist>
|
||||
Binary file not shown.
@@ -1,54 +0,0 @@
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is the Mozilla browser.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Netscape Communications Corporation.
|
||||
* Portions created by the Initial Developer are Copyright (C) 2002
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
* william@dell.wisner.name (William Dell Wisner)
|
||||
* joshmoz@gmail.com (Josh Aas)
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
#import <Cocoa/Cocoa.h>
|
||||
#import <PreferencePaneBase.h>
|
||||
|
||||
@interface OrgMozillaChimeraPreferenceTabs : PreferencePaneBase
|
||||
{
|
||||
IBOutlet NSMatrix* radioOpenTabsForCommand;
|
||||
IBOutlet NSMatrix* radioOpenForAE;
|
||||
IBOutlet NSButton *checkboxLoadTabsInBackground;
|
||||
IBOutlet NSButton* mTabBarVisiblity;
|
||||
}
|
||||
|
||||
- (IBAction)checkboxClicked:(id)sender;
|
||||
|
||||
@end
|
||||
@@ -1,88 +0,0 @@
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is the Mozilla browser.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Netscape Communications Corporation.
|
||||
* Portions created by the Initial Developer are Copyright (C) 2002
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
* william@dell.wisner.name (William Dell Wisner)
|
||||
* joshmoz@gmail.com (Josh Aas)
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
#import "Tabs.h"
|
||||
|
||||
@implementation OrgMozillaChimeraPreferenceTabs
|
||||
|
||||
- (id)initWithBundle:(NSBundle *)bundle
|
||||
{
|
||||
self = [super initWithBundle:bundle];
|
||||
return self;
|
||||
}
|
||||
|
||||
- (void)dealloc
|
||||
{
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
- (void)mainViewDidLoad
|
||||
{
|
||||
if (!mPrefService)
|
||||
return;
|
||||
|
||||
BOOL gotPref;
|
||||
|
||||
[radioOpenTabsForCommand selectCellWithTag:[self getBooleanPref:"browser.tabs.opentabfor.middleclick" withSuccess:&gotPref]];
|
||||
[radioOpenForAE selectCellWithTag:[self getIntPref:"browser.reuse_window" withSuccess:&gotPref]];
|
||||
[checkboxLoadTabsInBackground setState:[self getBooleanPref:"browser.tabs.loadInBackground" withSuccess:&gotPref]];
|
||||
[mTabBarVisiblity setState:[self getBooleanPref:"camino.tab_bar_always_visible" withSuccess:&gotPref]];
|
||||
}
|
||||
|
||||
- (IBAction)checkboxClicked:(id)sender
|
||||
{
|
||||
if (!mPrefService)
|
||||
return;
|
||||
|
||||
if (sender == radioOpenTabsForCommand) {
|
||||
[self setPref:"browser.tabs.opentabfor.middleclick" toBoolean:[[sender selectedCell] tag]];
|
||||
}
|
||||
else if (sender == radioOpenForAE) {
|
||||
[self setPref:"browser.reuse_window" toInt:[[sender selectedCell] tag]];
|
||||
}
|
||||
else if (sender == checkboxLoadTabsInBackground) {
|
||||
[self setPref:"browser.tabs.loadInBackground" toBoolean:[sender state]];
|
||||
}
|
||||
else if (sender == mTabBarVisiblity) {
|
||||
[self setPref:"camino.tab_bar_always_visible" toBoolean:[sender state]];
|
||||
}
|
||||
}
|
||||
|
||||
@end
|
||||
Binary file not shown.
Binary file not shown.
@@ -1,51 +0,0 @@
|
||||
{
|
||||
IBClasses = (
|
||||
{CLASS = ExtendedTableView; LANGUAGE = ObjC; SUPERCLASS = NSTableView; },
|
||||
{CLASS = FirstResponder; LANGUAGE = ObjC; SUPERCLASS = NSObject; },
|
||||
{
|
||||
CLASS = NSPreferencePane;
|
||||
LANGUAGE = ObjC;
|
||||
OUTLETS = {
|
||||
"_firstKeyView" = id;
|
||||
"_initialKeyView" = id;
|
||||
"_lastKeyView" = id;
|
||||
"_window" = id;
|
||||
};
|
||||
SUPERCLASS = NSObject;
|
||||
},
|
||||
{
|
||||
ACTIONS = {
|
||||
addWhitelistSite = id;
|
||||
clickEnableAdBlocking = id;
|
||||
clickEnableAnnoyanceBlocker = id;
|
||||
clickEnableImageResizing = id;
|
||||
clickEnableJS = id;
|
||||
clickEnableJava = id;
|
||||
clickEnablePopupBlocking = id;
|
||||
clickPreventAnimation = id;
|
||||
editWhitelist = id;
|
||||
editWhitelistDone = id;
|
||||
removeWhitelistSite = id;
|
||||
};
|
||||
CLASS = OrgMozillaChimeraPreferenceWebFeatures;
|
||||
LANGUAGE = ObjC;
|
||||
OUTLETS = {
|
||||
mAddButton = NSButton;
|
||||
mAddField = NSTextField;
|
||||
mEditWhitelist = NSButton;
|
||||
mEnableAdBlocking = NSButton;
|
||||
mEnableAnnoyanceBlocker = NSButton;
|
||||
mEnableJS = NSButton;
|
||||
mEnableJava = NSButton;
|
||||
mEnablePopupBlocking = NSButton;
|
||||
mImageResize = NSButton;
|
||||
mPreventAnimation = NSButton;
|
||||
mWhitelistPanel = id;
|
||||
mWhitelistTable = ExtendedTableView;
|
||||
};
|
||||
SUPERCLASS = PreferencePaneBase;
|
||||
},
|
||||
{CLASS = PreferencePaneBase; LANGUAGE = ObjC; SUPERCLASS = NSPreferencePane; }
|
||||
);
|
||||
IBVersion = 1;
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>IBDocumentLocation</key>
|
||||
<string>35 27 356 240 0 0 1600 1002 </string>
|
||||
<key>IBFramework Version</key>
|
||||
<string>437.0</string>
|
||||
<key>IBOldestOS</key>
|
||||
<integer>2</integer>
|
||||
<key>IBSystem Version</key>
|
||||
<string>8C46</string>
|
||||
</dict>
|
||||
</plist>
|
||||
Binary file not shown.
@@ -1,95 +0,0 @@
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is the Mozilla browser.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Netscape Communications Corporation.
|
||||
* Portions created by the Initial Developer are Copyright (C) 2002
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
* william@dell.wisner.name (William Dell Wisner)
|
||||
* joshmoz@gmail.com (Josh Aas)
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
#import <Cocoa/Cocoa.h>
|
||||
#import <PreferencePanes/NSPreferencePane.h>
|
||||
#import "PreferencePaneBase.h"
|
||||
#import "ExtendedTableView.h"
|
||||
|
||||
class nsIPref;
|
||||
class nsIPermissionManager;
|
||||
class nsISupportsArray;
|
||||
|
||||
@interface OrgMozillaChimeraPreferenceWebFeatures : PreferencePaneBase
|
||||
{
|
||||
IBOutlet NSButton* mEnableJS;
|
||||
IBOutlet NSButton* mEnableJava;
|
||||
|
||||
IBOutlet NSButton *mEnablePopupBlocking;
|
||||
IBOutlet NSButton *mEnableAdBlocking;
|
||||
IBOutlet NSButton *mImageResize;
|
||||
IBOutlet NSButton *mPreventAnimation;
|
||||
IBOutlet NSButton *mEditWhitelist;
|
||||
|
||||
IBOutlet id mWhitelistPanel;
|
||||
IBOutlet ExtendedTableView* mWhitelistTable;
|
||||
IBOutlet NSTextField* mAddField;
|
||||
IBOutlet NSButton* mAddButton;
|
||||
|
||||
nsIPermissionManager* mManager; // STRONG (should be nsCOMPtr)
|
||||
nsISupportsArray* mCachedPermissions; // parallel list of permissions for speed, STRONG (should be nsCOMPtr)
|
||||
|
||||
IBOutlet NSButton* mEnableAnnoyanceBlocker;
|
||||
}
|
||||
|
||||
-(IBAction) clickEnableJS:(id)sender;
|
||||
-(IBAction) clickEnableJava:(id)sender;
|
||||
|
||||
-(IBAction) clickEnablePopupBlocking:(id)sender;
|
||||
-(IBAction) clickEnableAdBlocking:(id)sender;
|
||||
-(IBAction) clickEnableImageResizing:(id)sender;
|
||||
-(IBAction) clickPreventAnimation:(id)sender;
|
||||
-(IBAction) editWhitelist:(id)sender;
|
||||
|
||||
-(IBAction) clickEnableAnnoyanceBlocker:(id)sender;
|
||||
-(void) setAnnoyingWindowPrefsTo:(BOOL)inValue;
|
||||
|
||||
// whitelist sheet methods
|
||||
-(IBAction) editWhitelistDone:(id)aSender;
|
||||
-(IBAction) removeWhitelistSite:(id)aSender;
|
||||
-(IBAction) addWhitelistSite:(id)sender;
|
||||
-(void) editWhitelistSheetDidEnd:(NSWindow *)sheet returnCode:(int)returnCode contextInfo:(void *)contextInfo;
|
||||
-(void) populatePermissionCache:(nsISupportsArray*)inPermissions;
|
||||
|
||||
// data source informal protocol (NSTableDataSource)
|
||||
- (int)numberOfRowsInTableView:(NSTableView *)aTableView;
|
||||
- (id)tableView:(NSTableView *)aTableView objectValueForTableColumn:(NSTableColumn *)aTableColumn row:(int)rowIndex;
|
||||
|
||||
@end
|
||||
@@ -1,404 +0,0 @@
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
||||
*
|
||||
* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is the Mozilla browser.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Netscape Communications Corporation.
|
||||
* Portions created by the Initial Developer are Copyright (C) 2002
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
* william@dell.wisner.name (William Dell Wisner)
|
||||
* joshmoz@gmail.com (Josh Aas)
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
#import "WebFeatures.h"
|
||||
#import "NSString+Utils.h"
|
||||
|
||||
#include "nsCOMPtr.h"
|
||||
#include "nsServiceManagerUtils.h"
|
||||
#include "nsIPermissionManager.h"
|
||||
#include "nsIPermission.h"
|
||||
#include "nsISupportsArray.h"
|
||||
#include "nsString.h"
|
||||
#include "nsIURI.h"
|
||||
#include "nsIFile.h"
|
||||
#include "nsAppDirectoryServiceDefs.h"
|
||||
#include "nsNetUtil.h"
|
||||
|
||||
// we should really get this from "CHBrowserService.h",
|
||||
// but that requires linkage and extra search paths.
|
||||
static NSString* XPCOMShutDownNotificationName = @"XPCOMShutDown";
|
||||
|
||||
// needs to match the string in PreferenceManager.mm
|
||||
static NSString* const AdBlockingChangedNotificationName = @"AdBlockingChanged";
|
||||
|
||||
@interface OrgMozillaChimeraPreferenceWebFeatures(PRIVATE)
|
||||
-(NSString*)profilePath;
|
||||
@end
|
||||
|
||||
@implementation OrgMozillaChimeraPreferenceWebFeatures
|
||||
|
||||
- (void) dealloc
|
||||
{
|
||||
[[NSNotificationCenter defaultCenter] removeObserver:self];
|
||||
|
||||
NS_IF_RELEASE(mManager);
|
||||
[super dealloc];
|
||||
}
|
||||
|
||||
- (void)xpcomShutdown:(NSNotification*)notification
|
||||
{
|
||||
// this nulls the pointer
|
||||
NS_IF_RELEASE(mManager);
|
||||
}
|
||||
|
||||
- (void)mainViewDidLoad
|
||||
{
|
||||
if (!mPrefService)
|
||||
return;
|
||||
|
||||
// we need to register for xpcom shutdown so that we can clear the
|
||||
// services before XPCOM is shut down. We can't rely on dealloc,
|
||||
// because we don't know when it will get called (we might be autoreleased).
|
||||
[[NSNotificationCenter defaultCenter] addObserver:self
|
||||
selector:@selector(xpcomShutdown:)
|
||||
name:XPCOMShutDownNotificationName
|
||||
object:nil];
|
||||
|
||||
BOOL gotPref = NO;
|
||||
|
||||
// Set initial value on Java/JavaScript checkboxes
|
||||
BOOL jsEnabled = [self getBooleanPref:"javascript.enabled" withSuccess:&gotPref] && gotPref;
|
||||
[mEnableJS setState:jsEnabled];
|
||||
BOOL javaEnabled = [self getBooleanPref:"security.enable_java" withSuccess:&gotPref] && gotPref;
|
||||
[mEnableJava setState:javaEnabled];
|
||||
|
||||
// set initial value on popup blocking checkbox and disable the whitelist
|
||||
// button if it's off
|
||||
BOOL enablePopupBlocking = [self getBooleanPref:"dom.disable_open_during_load" withSuccess:&gotPref] && gotPref;
|
||||
[mEnablePopupBlocking setState:enablePopupBlocking];
|
||||
[mEditWhitelist setEnabled:enablePopupBlocking];
|
||||
|
||||
// set initial value on annoyance blocker checkbox. out of all the prefs,
|
||||
// if the "status" capability is turned off, we use that as an indicator
|
||||
// to turn them all off.
|
||||
BOOL enableAnnoyanceBlocker = [self getBooleanPref:"dom.disable_window_status_change" withSuccess:&gotPref];
|
||||
[mEnableAnnoyanceBlocker setState:enableAnnoyanceBlocker];
|
||||
|
||||
// set initial value on image-resizing
|
||||
BOOL enableImageResize = [self getBooleanPref:"browser.enable_automatic_image_resizing" withSuccess:&gotPref];
|
||||
[mImageResize setState:enableImageResize];
|
||||
|
||||
BOOL preventAnimation = [[self getStringPref:"image.animation_mode" withSuccess:&gotPref] isEqualToString:@"once"];
|
||||
[mPreventAnimation setState:preventAnimation];
|
||||
|
||||
BOOL enableAdBlock = [self getBooleanPref:"camino.enable_ad_blocking" withSuccess:&gotPref];
|
||||
[mEnableAdBlocking setState:enableAdBlock];
|
||||
|
||||
// store permission manager service and cache the enumerator.
|
||||
nsCOMPtr<nsIPermissionManager> pm ( do_GetService(NS_PERMISSIONMANAGER_CONTRACTID) );
|
||||
mManager = pm.get();
|
||||
NS_IF_ADDREF(mManager);
|
||||
}
|
||||
|
||||
|
||||
//
|
||||
// clickEnableJS
|
||||
//
|
||||
// Set pref if JavaScript is enabled
|
||||
//
|
||||
-(IBAction) clickEnableJS:(id)sender
|
||||
{
|
||||
[self setPref:"javascript.enabled" toBoolean:[sender state] == NSOnState];
|
||||
}
|
||||
|
||||
//
|
||||
// clickEnableJava
|
||||
//
|
||||
// Set pref if Java is enabled
|
||||
//
|
||||
-(IBAction) clickEnableJava:(id)sender
|
||||
{
|
||||
[self setPref:"security.enable_java" toBoolean:[sender state] == NSOnState];
|
||||
}
|
||||
|
||||
//
|
||||
// -clickEnableAdBlocking:
|
||||
//
|
||||
// Enable and disable ad blocking via a userContent.css file that we provide in our
|
||||
// package, copied into the user's profile.
|
||||
//
|
||||
- (IBAction)clickEnableAdBlocking:(id)sender
|
||||
{
|
||||
[self setPref:"camino.enable_ad_blocking" toBoolean:[sender state] == NSOnState];
|
||||
[[NSNotificationCenter defaultCenter] postNotificationName:AdBlockingChangedNotificationName object:nil];
|
||||
}
|
||||
|
||||
//
|
||||
// clickEnablePopupBlocking
|
||||
//
|
||||
// Enable and disable mozilla's popup blocking feature. We use a combination of
|
||||
// two prefs to suppress bad popups.
|
||||
//
|
||||
- (IBAction)clickEnablePopupBlocking:(id)sender
|
||||
{
|
||||
[self setPref:"dom.disable_open_during_load" toBoolean:[sender state] == NSOnState];
|
||||
[mEditWhitelist setEnabled:[sender state]];
|
||||
}
|
||||
|
||||
//
|
||||
// clickEnableImageResizing:
|
||||
//
|
||||
// Enable and disable mozilla's auto image resizing feature.
|
||||
//
|
||||
-(IBAction) clickEnableImageResizing:(id)sender
|
||||
{
|
||||
[self setPref:"browser.enable_automatic_image_resizing" toBoolean:[sender state] == NSOnState];
|
||||
}
|
||||
|
||||
//
|
||||
// -clickPreventAnimation:
|
||||
//
|
||||
// Enable and disable mozilla's limiting of how animated images repeat
|
||||
//
|
||||
-(IBAction) clickPreventAnimation:(id)sender
|
||||
{
|
||||
[self setPref:"image.animation_mode" toString:([sender state] ? @"once" : @"normal")];
|
||||
}
|
||||
|
||||
//
|
||||
// populatePermissionCache:
|
||||
//
|
||||
// walks the permission list for popups building up a cache that
|
||||
// we can quickly refer to later.
|
||||
//
|
||||
-(void) populatePermissionCache:(nsISupportsArray*)inPermissions
|
||||
{
|
||||
nsCOMPtr<nsISimpleEnumerator> permEnum;
|
||||
if ( mManager )
|
||||
mManager->GetEnumerator(getter_AddRefs(permEnum));
|
||||
|
||||
if ( inPermissions && permEnum ) {
|
||||
PRBool hasMoreElements = PR_FALSE;
|
||||
permEnum->HasMoreElements(&hasMoreElements);
|
||||
while ( hasMoreElements ) {
|
||||
nsCOMPtr<nsISupports> curr;
|
||||
permEnum->GetNext(getter_AddRefs(curr));
|
||||
nsCOMPtr<nsIPermission> currPerm(do_QueryInterface(curr));
|
||||
if ( currPerm ) {
|
||||
nsCAutoString type;
|
||||
currPerm->GetType(type);
|
||||
if ( type.Equals(NS_LITERAL_CSTRING("popup")) )
|
||||
inPermissions->AppendElement(curr);
|
||||
}
|
||||
permEnum->HasMoreElements(&hasMoreElements);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// editWhitelist:
|
||||
//
|
||||
// put up a sheet to allow people to edit the popup blocker whitelist
|
||||
//
|
||||
-(IBAction) editWhitelist:(id)sender
|
||||
{
|
||||
// build parallel permission list for speed with a lot of blocked sites
|
||||
NS_NewISupportsArray(&mCachedPermissions); // ADDREFs
|
||||
[self populatePermissionCache:mCachedPermissions];
|
||||
|
||||
[NSApp beginSheet:mWhitelistPanel
|
||||
modalForWindow:[mEditWhitelist window] // any old window accessor
|
||||
modalDelegate:self
|
||||
didEndSelector:@selector(editWhitelistSheetDidEnd:returnCode:contextInfo:)
|
||||
contextInfo:NULL];
|
||||
|
||||
// ensure a row is selected (cocoa doesn't do this for us, but will keep
|
||||
// us from unselecting a row once one is set; go figure).
|
||||
[mWhitelistTable selectRow:0 byExtendingSelection:NO];
|
||||
|
||||
[mWhitelistTable setDeleteAction:@selector(removeWhitelistSite:)];
|
||||
[mWhitelistTable setTarget:self];
|
||||
|
||||
[mAddButton setEnabled:NO];
|
||||
|
||||
// we shouldn't need to do this, but the scrollbar won't enable unless we
|
||||
// force the table to reload its data. Oddly it gets the number of rows correct,
|
||||
// it just forgets to tell the scrollbar. *shrug*
|
||||
[mWhitelistTable reloadData];
|
||||
}
|
||||
|
||||
// whitelist sheet methods
|
||||
-(IBAction) editWhitelistDone:(id)aSender
|
||||
{
|
||||
// save stuff??
|
||||
|
||||
[mWhitelistPanel orderOut:self];
|
||||
[NSApp endSheet:mWhitelistPanel];
|
||||
|
||||
NS_IF_RELEASE(mCachedPermissions);
|
||||
}
|
||||
|
||||
-(IBAction) removeWhitelistSite:(id)aSender
|
||||
{
|
||||
if ( mCachedPermissions && mManager ) {
|
||||
// remove from parallel array and cookie permissions list
|
||||
int row = [mWhitelistTable selectedRow];
|
||||
|
||||
// remove from permission manager (which is done by host, not by row), then
|
||||
// remove it from our parallel array (which is done by row). Since we keep a
|
||||
// parallel array, removing multiple items by row is very difficult since after
|
||||
// deleting, the array is out of sync with the next cocoa row we're told to remove. Punt!
|
||||
nsCOMPtr<nsISupports> rowItem = dont_AddRef(mCachedPermissions->ElementAt(row));
|
||||
nsCOMPtr<nsIPermission> perm ( do_QueryInterface(rowItem) );
|
||||
if ( perm ) {
|
||||
nsCAutoString host;
|
||||
perm->GetHost(host);
|
||||
mManager->Remove(host, "popup"); // could this api _be_ any worse? Come on!
|
||||
|
||||
mCachedPermissions->RemoveElementAt(row);
|
||||
}
|
||||
[mWhitelistTable reloadData];
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// addWhitelistSite:
|
||||
//
|
||||
// adds a new site to the permission manager whitelist for popups
|
||||
//
|
||||
-(IBAction) addWhitelistSite:(id)sender
|
||||
{
|
||||
if ( mCachedPermissions && mManager ) {
|
||||
// ensure url has a http:// on the front or NS_NewURI will fail. The PM
|
||||
// really doesn't care what the protocol is, we just need to have something
|
||||
NSString* url = [[mAddField stringValue] stringByRemovingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
|
||||
if ( ![url rangeOfString:@"http://"].length && ![url rangeOfString:@"https://"].length )
|
||||
url = [NSString stringWithFormat:@"http://%@", url];
|
||||
|
||||
const char* siteURL = [url UTF8String];
|
||||
nsCOMPtr<nsIURI> newURI;
|
||||
NS_NewURI(getter_AddRefs(newURI), siteURL);
|
||||
if ( newURI ) {
|
||||
mManager->Add(newURI, "popup", nsIPermissionManager::ALLOW_ACTION);
|
||||
mCachedPermissions->Clear();
|
||||
[self populatePermissionCache:mCachedPermissions];
|
||||
|
||||
[mAddField setStringValue:@""];
|
||||
[mWhitelistTable reloadData];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
- (void) editWhitelistSheetDidEnd:(NSWindow *)sheet returnCode:(int)returnCode contextInfo:(void *)contextInfo
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
// data source informal protocol (NSTableDataSource)
|
||||
- (int)numberOfRowsInTableView:(NSTableView *)aTableView
|
||||
{
|
||||
PRUint32 numRows = 0;
|
||||
if ( mCachedPermissions )
|
||||
mCachedPermissions->Count(&numRows);
|
||||
|
||||
return (int) numRows;
|
||||
}
|
||||
|
||||
- (id)tableView:(NSTableView *)aTableView objectValueForTableColumn:(NSTableColumn *)aTableColumn row:(int)rowIndex
|
||||
{
|
||||
NSString* retVal = nil;
|
||||
if ( mCachedPermissions ) {
|
||||
nsCOMPtr<nsISupports> rowItem = dont_AddRef(mCachedPermissions->ElementAt(rowIndex));
|
||||
nsCOMPtr<nsIPermission> perm ( do_QueryInterface(rowItem) );
|
||||
if ( perm ) {
|
||||
// only 1 column and it's the website url column
|
||||
nsCAutoString host;
|
||||
perm->GetHost(host);
|
||||
retVal = [NSString stringWithCString:host.get()];
|
||||
}
|
||||
}
|
||||
|
||||
return retVal;
|
||||
}
|
||||
|
||||
- (void)controlTextDidChange:(NSNotification*)notification
|
||||
{
|
||||
[mAddButton setEnabled:[[mAddField stringValue] length] > 0];
|
||||
}
|
||||
|
||||
//
|
||||
// clickEnableAnnoyanceBlocker:
|
||||
//
|
||||
// Enable and disable prefs for allowing webpages to be annoying and move/resize the
|
||||
// window or tweak the status bar and make it unusable.
|
||||
//
|
||||
-(IBAction) clickEnableAnnoyanceBlocker:(id)sender
|
||||
{
|
||||
if ( [sender state] )
|
||||
[self setAnnoyingWindowPrefsTo:YES];
|
||||
else
|
||||
[self setAnnoyingWindowPrefsTo:NO];
|
||||
}
|
||||
|
||||
//
|
||||
// setAnnoyingWindowPrefsTo:
|
||||
//
|
||||
// Set all the prefs that allow webpages to muck with the status bar and window position
|
||||
// (ie, be really annoying) to the given value
|
||||
//
|
||||
-(void) setAnnoyingWindowPrefsTo:(BOOL)inValue
|
||||
{
|
||||
[self setPref:"dom.disable_window_move_resize" toBoolean:inValue];
|
||||
[self setPref:"dom.disable_window_status_change" toBoolean:inValue];
|
||||
[self setPref:"dom.disable_window_flip" toBoolean:inValue];
|
||||
}
|
||||
|
||||
//
|
||||
// -profilePath
|
||||
//
|
||||
// Returns the path for our post 0.8 profiles stored in Application Support/Camino.
|
||||
// Copied from the pref manager which we can't use w/out compiling it into our bundle.
|
||||
//
|
||||
- (NSString*) profilePath
|
||||
{
|
||||
nsCOMPtr<nsIFile> appSupportDir;
|
||||
nsresult rv = NS_GetSpecialDirectory(NS_APP_USER_PROFILES_ROOT_DIR,
|
||||
getter_AddRefs(appSupportDir));
|
||||
if (NS_FAILED(rv))
|
||||
return nil;
|
||||
nsCAutoString nativePath;
|
||||
rv = appSupportDir->GetNativePath(nativePath);
|
||||
if (NS_FAILED(rv))
|
||||
return nil;
|
||||
return [NSString stringWithUTF8String:nativePath.get()];
|
||||
}
|
||||
|
||||
@end
|
||||
Binary file not shown.
@@ -1,12 +0,0 @@
|
||||
mk_add_options MOZ_CO_PROJECT=macbrowser
|
||||
ac_add_options --enable-application=macbrowser
|
||||
ac_add_options --enable-default-toolkit=cocoa
|
||||
ac_add_options --disable-tests
|
||||
ac_add_options --disable-mailnews
|
||||
ac_add_options --disable-ldap
|
||||
ac_add_options --disable-accessibility
|
||||
ac_add_options --disable-jsd
|
||||
ac_add_options --disable-mathml
|
||||
ac_add_options --without-system-zlib
|
||||
ac_add_options --enable-single-profile
|
||||
ac_add_options --with-macos-sdk=/Developer/SDKs/MacOSX10.2.8.sdk
|
||||
@@ -1,82 +0,0 @@
|
||||
{\rtf1\mac\ansicpg10000\cocoartf824
|
||||
{\fonttbl\f0\fswiss\fcharset77 Optima-Bold;\f1\fswiss\fcharset77 Optima-Regular;\f2\fswiss\fcharset77 Helvetica;
|
||||
\f3\fnil\fcharset77 Monaco;}
|
||||
{\colortbl;\red255\green255\blue255;\red4\green16\blue255;}
|
||||
\margl1440\margr1440\vieww13940\viewh15220\viewkind0
|
||||
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural
|
||||
|
||||
\f0\b\fs48 \cf0 Camino Read Me\
|
||||
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural
|
||||
|
||||
\f1\b0\fs24 \cf2 http://www.caminobrowser.org/\cf0 \
|
||||
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural
|
||||
|
||||
\f2 \cf0 \
|
||||
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural
|
||||
|
||||
\f1 \cf0 Thank you for downloading Camino! Please take a moment to read this information to find out about what\'d5s new in Camino, and to learn about known issues.\
|
||||
\
|
||||
Camino is still under development. It is stable enough to use day-to-day, but you may still encounter bugs. You should always keep backup copies of important data that you use with Camino (e.g. your bookmarks file). \
|
||||
\
|
||||
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural
|
||||
|
||||
\f0\b\fs36 \cf0 Installation
|
||||
\f1\b0\fs24 \
|
||||
\
|
||||
To install Camino, simply drag the Camino icon onto your hard disk. We recommend that you copy it to the Applications folder. You can then Eject the disk image. If you like, you can drag Camino to your dock to have it easily accessible at all times. You might also wish to select Camino as your default browser in the Internet system preferences pane (under the Web tab).\
|
||||
\
|
||||
After installation, you may want to import bookmarks from another browser. Run Camino, choose \'d2Import Bookmarks\'d3 from the "Camino" application menu. In the resulting file dialog, choose the bookmarks file you wish to import, and click Open. The bookmarks will be imported.\
|
||||
\
|
||||
|
||||
\f0\b\fs36 Where information is kept on disk
|
||||
\f1\b0\fs24 \
|
||||
\
|
||||
When you first run Camino, it makes a folder in
|
||||
\f3\fs20 ~/Library/Application Support/
|
||||
\f1\fs24 (where
|
||||
\f3\fs20 ~
|
||||
\f1\fs24 is your Home directory) called \'d2Camino\'d3 which contains your \'d3profile\'d3 information (bookmarks, cookies, cache etc). \
|
||||
\
|
||||
There are two files in your profile that you might need to know about. First,
|
||||
\f3\fs20 bookmarks.plist
|
||||
\f1\fs24 contains your bookmarks. You might want to regularly make copies of this file if you run nightly builds.
|
||||
\f3\fs20 prefs.js
|
||||
\f1\fs24 contains most of the application preferences. Not all preferences are exposed in the preferences window yet, so you might see advice to \'d2edit your prefs file\'d3. To do that, drag prefs.js onto your favorite editor, make whatever changes are necessary, and save. Make sure the file gets saved in plain text format.\
|
||||
\
|
||||
Previous versions of Camino used a folder in
|
||||
\f3\fs20 ~/Library/Application Support/Chimera/
|
||||
\f1\fs24 for the profile. On first run, your profile will be copied to the new location and upgraded automatically. The old profile remains unchanged so you can revert to older versions of Camino if you desire. This version no longer uses the "salted" directory inside the profile.\
|
||||
\
|
||||
|
||||
\f0\b\fs36 Uninstall
|
||||
\f1\b0\fs24 \
|
||||
\
|
||||
To get rid of all the files related to Camino, do the following:\
|
||||
\
|
||||
1. Drag the Camino icon to the trash\
|
||||
2. Drag the
|
||||
\f3\fs20 ~/Library/Application Support/Camino
|
||||
\f1\fs24 folder to the trash\
|
||||
3. Drag the
|
||||
\f3\fs20 ~/Library/Caches/Camino
|
||||
\f1\fs24 folder to the trash\
|
||||
\
|
||||
|
||||
\f0\b\fs36 Changes, and known issues, in this version\
|
||||
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural
|
||||
|
||||
\f1\b0\fs24 \cf0 \
|
||||
See the accompanying \'d2Release Notes\'d3 file for information about what has changed in this version of Camino, and a list of the known issues.\
|
||||
\
|
||||
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural
|
||||
|
||||
\f0\b\fs36 \cf0 More information, and feedback\
|
||||
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural
|
||||
|
||||
\f1\b0\fs24 \cf0 \
|
||||
To find out more about Camino, see the project page at:\
|
||||
\
|
||||
\cf2 http://www.caminobrowser.org\cf0 \
|
||||
\
|
||||
This page contains information about how to give feedback on Camino, has links that allow you to query for known bugs, see what\'d5s going on with current development, and about how to build it yourself from source.\
|
||||
}
|
||||
@@ -1,156 +0,0 @@
|
||||
{\rtf1\mac\ansicpg10000\cocoartf100
|
||||
\readonlydoc1{\fonttbl\f0\fswiss\fcharset77 Optima-Bold;\f1\fswiss\fcharset77 Optima-Regular;\f2\fswiss\fcharset77 Optima-Italic;
|
||||
\f3\fnil\fcharset77 Monaco;}
|
||||
{\colortbl;\red255\green255\blue255;\red4\green16\blue255;}
|
||||
\margl1440\margr1440\vieww12200\viewh15420\viewkind0
|
||||
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural
|
||||
|
||||
\f0\b\fs48 \cf0 Chimera 0.5 Release Notes\
|
||||
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural
|
||||
|
||||
\f1\b0\fs24 \cf2 http://www.mozilla.org/projects/chimera/\cf0 \
|
||||
\
|
||||
The focus of Chimera 0.5 is bug fixing. The Chimera 0.5 release delivers a significant number of improvements over Chimera 0.4. Most notably, performance has improved significantly when a large number of tabs are open. Other bug fixes are described below.\
|
||||
\
|
||||
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural
|
||||
|
||||
\f0\b\fs36 \cf0 New and improved features in Chimera 0.5\
|
||||
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural
|
||||
|
||||
\f1\b0\fs24 \cf0 \
|
||||
The following bug fixes and improvements have been made since Chimera 0.4:\
|
||||
\
|
||||
\pard\tx360\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li360\fi-360\sl320\ql\qnatural
|
||||
|
||||
\f2\i \cf0 Performance:\
|
||||
|
||||
\f1\i0 \'a5 Performance is much better with large numbers of tabs open. The tabs are now all equal width, and can show the site icon (which is draggable).\
|
||||
|
||||
\f2\i Downloading:\
|
||||
|
||||
\f1\i0 \'a5 A downloading dialog is shown now, for file downloads, and when saving pages. A number of bugs were fixed, related to the download file disappearing, and downloading BinHex files.\
|
||||
|
||||
\f2\i Plugins:\
|
||||
|
||||
\f1\i0 \'a5 Several fixes make the Java plugin more stable now, particularly on Mac OS 10.2.\
|
||||
\'a5 Some other plugin drawing and stability fixes were done.\
|
||||
|
||||
\f2\i Internationalization:\
|
||||
|
||||
\f1\i0 \'a5 Fixed display of non-Roman characters in bookmarks text in the UI.\
|
||||
\'a5 Added the Universal Character set detector, which improves the display of pages in non-Roman character encodings.\
|
||||
\'a5 Changed the package layout of the Navigator package to allow for localizations.\
|
||||
\'a5 Typing in Japanese and other multi-byte languages mostly works now.\
|
||||
|
||||
\f2\i Bookmarks:\
|
||||
|
||||
\f1\i0 \'a5 Importing of bookmarks files containing illegal characters was made more reliable, and can no longer leave you with a corrupted bookmarks file.\
|
||||
\'a5 Fixed some issues that caused a multi-line bookmarks toolbar to display incorrectly.\
|
||||
|
||||
\f2\i Keyboard shortcuts:\
|
||||
|
||||
\f1\i0 \'a5 Changed forward/back and next/previous tab keyboard shortcuts, to avoid conflicting with the use of Command-arrow key combinations for text navigation.\
|
||||
|
||||
\f2\i Drag and drop:\
|
||||
|
||||
\f1\i0 \'a5 Improved dragging of links from browser window; page links can now be dragged onto other tabs, into the bookmarks sidebar, and onto the bookmarks toolbar.\
|
||||
\'a5 Improved drag and drop of bookmarks, and items on the bookmarks toolbar, which can now be reordered, dragged to the trash to delete them, and cloned with option-drag.\
|
||||
\'a5 You can now drag bookmarks and links to tabs, and drag from tabs to other tabs or bookmark locations (click on the tab icon to drag). Dragging into the background area behind the tabs will create a new tab.\
|
||||
|
||||
\f2\i Copy and paste:\
|
||||
|
||||
\f1\i0 \'a5 Fixed some issues with linebreaks, and Unicode data, when copying and pasting between Chimera and other applications.\
|
||||
|
||||
\f2\i Tabbed browsing:\
|
||||
|
||||
\f1\i0 \'a5 New tabs now always appear on the right-hand side of the tabbed browser view, because having tabs appear next to the current view confused some users.\
|
||||
|
||||
\f2\i User Interface:\
|
||||
|
||||
\f1\i0 \'a5 Added site icons (favicons) for the url bar, and tabs. You can also make them visible for bookmarks by setting the pref
|
||||
\f3\fs20 browser.chrome.favicons
|
||||
\f1\fs24 to
|
||||
\f3\fs20 true
|
||||
\f1\fs24 in
|
||||
\f3\fs20 prefs.js
|
||||
\f1\fs24 , but this can cause some page-loading delays at startup.\
|
||||
\'a5 Added some updated icons for various toolbar buttons.\
|
||||
|
||||
\f2\i Search:\
|
||||
|
||||
\f1\i0 \'a5 The search page (loaded in response to Go->Search Page) uses the Internet Config setting now. Unfortunately, Apple removed UI for that setting from the Internet system preferences pane in Mac OS 10.2 (Jaguar). See the \'d2Known issues\'d3 section below for a workaround.\
|
||||
|
||||
\f2\i Other:\
|
||||
|
||||
\f1\i0 \'a5 The Build ID, which identifies the day the build was made, is shown on the splash screen, and in the About window now.\
|
||||
\'a5 Updated Chimera to use a more recent version of the Mozilla 1.0 code, which brings with it changes in many parts of the code, many of which are security related.\
|
||||
\'a5 On quitting, the prefs.js file is backed up now to prefs.bak.\
|
||||
\'a5 Holding down the shift key while clicking the reload button always fetches the page from the server now.\
|
||||
\'a5 XHTML files are loaded correctly now.\
|
||||
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural
|
||||
\cf0 \
|
||||
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural
|
||||
|
||||
\f0\b\fs36 \cf0 Known issues
|
||||
\f1\b0\fs24 \
|
||||
\
|
||||
\pard\tx360\tx1080\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li360\fi-360\ql\qnatural
|
||||
\cf0 \'a5 Cosmetic issues occur with many plugins, especially if you switch tabs on pages with plugins. Some stability issues affect plugins; visiting pages with some plugins can crash.\
|
||||
\'a5 Sometimes, on Mac OS 10.2 (Jaguar), Navigator won\'d5t stick as your default browser. If you have this problem, try removing the following files:\
|
||||
\pard\tx360\tx1080\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li360\fi-360\ql\qnatural
|
||||
|
||||
\f3\fs20 \cf0 ~/Library/Caches/com.apple.LaunchServices.UserCache.csstore
|
||||
\f1\fs24 (where ~ is your Home directory)
|
||||
\f3\fs20 \
|
||||
/Library/Caches/com.apple.LaunchServices.LocalCache.csstore\
|
||||
\pard\tx360\tx1080\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li360\fi-360\ql\qnatural
|
||||
|
||||
\f1\fs24 \cf0 and reboot your machine.\
|
||||
\'a5 Typing in Japanese, and other multi-byte languages, is not fully implemented yet.\
|
||||
\'a5 You may see some redraw issues when pasting into textareas, and doing Find Again. Resizing the window will correct these.\
|
||||
\'a5 Sometimes, a background window will pop to the front when its page finishes loading.\
|
||||
\'a5 For reasons not yet understood, Chimera will sometimes use a lot of CPU time for a few minutes, then gradually reduce to its usual low CPU usage. This seems to happen mostly after waking from sleep.\
|
||||
\'a5 The Fonts tab of the Appearance prefs pane is work in progress. In particular, the font sizes can interfere with eachother, and sometimes the fonts default back to Lucida Grande.\
|
||||
\'a5 Services support isn\'d5t fully implemented in the web content yet.\
|
||||
\'a5 There is no way to export bookmarks to HTML at present.\
|
||||
\'a5 Dragging an image to the Finder doesn\'d5t do the right thing.\
|
||||
\'a5 In Mac OS 10.2 (Jaguar), form buttons sometimes draw incorrectly (with a horizontal stripe).\
|
||||
\'a5 Trying to import a large bookmarks file sometimes fails to import all of the bookmarks. Breaking the file into a number of smaller files should help.\
|
||||
\'a5 After doing a \'d2View Source\'d3\'caon a page, you can\'d5t save the page source. As a workaround, save the original page as HTML, or Select All in the source, and Copy.\
|
||||
\'a5 There is no History visible in the UI by default. You can make the History tab in the sidebar visible by adding this line to your
|
||||
\f3\fs20 prefs.js
|
||||
\f1\fs24 file in the Chimera profile folder:\
|
||||
\pard\tx360\tx1080\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li360\fi-360\ql\qnatural
|
||||
|
||||
\f3\fs20 \cf0 user_pref("chimera.show_history", true);\
|
||||
\pard\tx360\tx1080\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li360\fi-360\ql\qnatural
|
||||
|
||||
\f1\fs24 \cf0 \'a5 If your machine crashes while Navigator is running, sometimes Navigator will refuse to launch afterwards, stating that another copy is already running. To fix this, go into your Chimera profile folder, in\
|
||||
|
||||
\f3\fs20 ~/Library/Application Support/Chimera/Profiles/default/<salted name>/\
|
||||
|
||||
\f1\fs24 and delete the file called
|
||||
\f3\fs20 lock
|
||||
\f1\fs24 .\
|
||||
\'a5 The Go->Search Page command always loads an excite.com url in Mac OS 10.2 (Jaguar), and there is no system UI to change it. As a workaround, you can edit a string in the Navigator package to set your preferred search page. Context-click on the Navigator icon, and choose \'d2Show Package Contents\'d3. In the resulting Finder window, go down into Contents/Resources, and open the
|
||||
\f3\fs20 WebsiteDefaults.strings
|
||||
\f1\fs24 \'cafile in your favorite text editor. On the line containing
|
||||
\f3\fs20 SearchPageDefault
|
||||
\f1\fs24 , remove the
|
||||
\f3\fs20 /*
|
||||
\f1\fs24 at the start, change
|
||||
\f3\fs20 www.dmoz.org
|
||||
\f1\fs24 to your preferred search site, and delete everything after the semicolon. Then save the file.\
|
||||
\'a5 After blocking popups for the first time, there is no way to have popups show up again. If you need popups to work (say, to access a site that requires them, edit your
|
||||
\f3\fs20 prefs.js
|
||||
\f1\fs24 file, changing the line that contains
|
||||
\f3\fs20 dom.disable_open_during_load
|
||||
\f1\fs24 to:\
|
||||
\pard\tx360\tx1080\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li360\fi-360\ql\qnatural
|
||||
|
||||
\f3\fs20 \cf0 user_pref("dom.disable_open_during_load", false);\
|
||||
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural
|
||||
|
||||
\f1\fs24 \cf0 \
|
||||
To find out more about known issues in Chimera, see the project page, at \cf2 http://www.mozilla.org/projects/chimera/\cf0 .\
|
||||
}
|
||||
@@ -1,101 +0,0 @@
|
||||
{\rtf1\mac\ansicpg10000\cocoartf102
|
||||
\readonlydoc1{\fonttbl\f0\fswiss\fcharset77 Optima-Bold;\f1\fswiss\fcharset77 Optima-Regular;\f2\fswiss\fcharset77 Optima-Italic;
|
||||
\f3\fnil\fcharset77 Monaco;}
|
||||
{\colortbl;\red255\green255\blue255;\red4\green16\blue255;}
|
||||
\margl1440\margr1440\vieww13960\viewh15920\viewkind0
|
||||
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural
|
||||
|
||||
\f0\b\fs48 \cf0 Chimera 0.6 Release Notes\
|
||||
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural
|
||||
|
||||
\f1\b0\fs24 \cf2 http://www.mozilla.org/projects/chimera/\cf0 \
|
||||
\
|
||||
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural
|
||||
|
||||
\f0\b\fs36 \cf0 New and improved features in Chimera 0.6\
|
||||
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural
|
||||
|
||||
\f1\b0\fs24 \cf0 \
|
||||
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural
|
||||
|
||||
\f2\i \cf0 Important
|
||||
\f1\i0 \
|
||||
\
|
||||
There is a known issue with Chimera and Macromedia Shockwave Flash 6.0r47, which can cause crashes. To avoid this, download the Macromedia Flash Player 6 Beta from \cf2 http://www.macromedia.com/software/flashplayer/special/beta/\cf0 .\
|
||||
\
|
||||
The following bug fixes and improvements have been made since Chimera 0.5:\
|
||||
\
|
||||
\pard\tx360\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li360\fi-360\sl320\ql\qnatural
|
||||
|
||||
\f2\i \cf0 New features\
|
||||
\
|
||||
|
||||
\f1\i0 \'a5 Added support of Keychain to save web site passwords.\
|
||||
\'a5 Buttons for \'d2Bigger Text\'d3/\'d2Smaller Text\'d3, and \'d2Add Bookmark\'d3 can now be added to the main toolbar.\
|
||||
\'a5 Can now bring up contextual menus on tabs, to close or reload them.\
|
||||
\'a5 Can now set your preferred search page in the preferences.\
|
||||
\'a5 Clicking the proxy icon (next to the url bar) now selects the url.\
|
||||
\'a5 Can now edit the list of sites from which you wish to accept cookies.\
|
||||
\'a5 Added Talkback, which reports data about crashes back to Netscape.\
|
||||
|
||||
\f2\i \
|
||||
Bug fixes\
|
||||
\
|
||||
|
||||
\f1\i0 \'a5 Improved stability and fixed a number of drawing issues with plugins\
|
||||
\'a5 Fix startup crash when RealPlayer is installed.\
|
||||
\'a5 Disk image (\'d2.dmg\'d3) files downloaded from misconfigured web servers no longer load in the browser window\
|
||||
\'a5 Changed the scheme used to detect whether other copies of Chimera are running, to fix stale lock problems.\
|
||||
\'a5 Local file listings work now (drag a folder from the Finder into the browser window).\
|
||||
\'a5 The expanded state of bookmark folders in the sidebar is now saved between sessions.\
|
||||
\'a5 Rearranged the Preference panes; exposed preferences to re-enable popups, and disable plugins.\
|
||||
\'a5 The font preferences in the Appearance preferences pane was redone to simplify it, and fix bugs.\
|
||||
\'a5 Fixed various security issues in the layout engine.\
|
||||
\'a5 Saving a page with non-Roman characters in the title works better now.\
|
||||
\'a5 Fixed the keyboard shortcuts for forward/back to respect Command-arrow combinations, when not editing text.\
|
||||
\'a5 Improved drag and drop support between Chimera and Carbon applications, and to the dock.\
|
||||
\'a5 Fixed some problems launching helper applications on Mac OS 10.1\
|
||||
\'a5 Fixed some cosmetic issues toggling the visibility of the bookmarks toolbar.\
|
||||
\'a5 Changed the default bookmarks for new profiles.\
|
||||
\'a5 Fixed some issues with importing large bookmarks files.\
|
||||
\'a5 If loading the bookmarks file fails, because it is invalid XML, save a "parser error" file that indicates where the problem lies.\
|
||||
\'a5 Chimera's User-Agent string now contains "Chimera" to allow for browser tracking.\
|
||||
\'a5 Various memory leaks were fixed\
|
||||
\
|
||||
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural
|
||||
|
||||
\f0\b\fs36 \cf0 Known issues
|
||||
\f1\b0\fs24 \
|
||||
\
|
||||
\pard\tx360\tx1080\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li360\fi-360\ql\qnatural
|
||||
\cf0 \'a5 Cosmetic issues occur with some plugins, notably Java, RealPlayer video, and QuickTime, particularly when scrolling. To work around problems displaying RealPlayer videos, open another tab, then back to the tab with the video.\
|
||||
\'a5 Clicking and typing in Java applets doesn\'d5t always work correctly.\
|
||||
\'a5 Crashes can occur with \'d2scriptable\'d3\'caplugins which are built for previous Netscape browsers. To avoid this, go into your
|
||||
\f3\fs20 /Library/Internet Plug-ins
|
||||
\f1\fs24 folder, and remove the files that have ".xpt" extensions. Note that this will disable some plugin capabilities in Netscape browsers, but will prevent Chimera from crashing.\
|
||||
\'a5 Chimera may crash at startup if your home directory is on a network volume.\
|
||||
\'a5 Page Setup options are not honored yet, and there are issues with the Print dialog on Mac OS 10.1.\
|
||||
\'a5 Sometimes, on Mac OS 10.2 (Jaguar), Navigator won\'d5t stick as your default browser. If you have this problem, try removing the following files:\
|
||||
|
||||
\f3\fs20 ~/Library/Caches/com.apple.LaunchServices.UserCache.csstore
|
||||
\f1\fs24 (where ~ is your Home directory)
|
||||
\f3\fs20 \
|
||||
/Library/Caches/com.apple.LaunchServices.LocalCache.csstore\
|
||||
|
||||
\f1\fs24 and reboot your machine.\
|
||||
\'a5 Sometimes, a background window will pop to the front when its page finishes loading.\
|
||||
\'a5 Chimera will sometimes use a lot of CPU after waking from sleep. To avoid this, close Chimera windows before putting the machine to sleep.\
|
||||
\'a5 Services support isn\'d5t fully implemented in the web content yet.\
|
||||
\'a5 There is no way to export bookmarks to HTML.\
|
||||
\'a5 Dragging an image to the Finder doesn\'d5t do the right thing.\
|
||||
\'a5 After doing a \'d2View Source\'d3\'caon a page, you can\'d5t save the page source. As a workaround, save the original page as HTML, or Select All in the source, and Copy.\
|
||||
\'a5 There is no History visible in the UI by default. You can make the History tab in the sidebar visible by adding this line to your
|
||||
\f3\fs20 prefs.js
|
||||
\f1\fs24 file in the Chimera profile folder:\
|
||||
|
||||
\f3\fs20 user_pref("chimera.show_history", true);\
|
||||
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural
|
||||
|
||||
\f1\fs24 \cf0 \
|
||||
To find out more about known issues in Chimera, see the project page, at \cf2 http://www.mozilla.org/projects/chimera/\cf0 .\
|
||||
}
|
||||
@@ -1,139 +0,0 @@
|
||||
{\rtf1\mac\ansicpg10000\cocoartf102
|
||||
{\fonttbl\f0\fswiss\fcharset77 Optima-Bold;\f1\fswiss\fcharset77 Optima-Regular;\f2\fswiss\fcharset77 Optima-Italic;
|
||||
\f3\fnil\fcharset77 Monaco;}
|
||||
{\colortbl;\red255\green255\blue255;\red4\green16\blue255;}
|
||||
\margl1440\margr1440\vieww13340\viewh16360\viewkind0
|
||||
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural
|
||||
|
||||
\f0\b\fs48 \cf0 Chimera 0.7 Release Notes\
|
||||
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural
|
||||
|
||||
\f1\b0\fs24 \cf2 http://www.mozilla.org/projects/chimera/\cf0 \
|
||||
\
|
||||
\pard\tx720\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640
|
||||
\cf0 The following changes and improvements have been made since the Chimera 0.6 release.
|
||||
\
|
||||
\pard\tx360\tx720\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li720\fi-720\ql\qnatural
|
||||
\cf0 \
|
||||
|
||||
\f0\b Highlights
|
||||
\f1\b0 \
|
||||
\
|
||||
\'a5 New Download Manager, with auto-download and auto-dispatch.\
|
||||
\'a5 Compatible with URL Manager Pro\
|
||||
\'a5 Page Text Encodings menu\
|
||||
\'a5 Global History in the sidebar\
|
||||
\'a5 Send Link menu item, and other new toolbar buttons\
|
||||
\'a5 Dragging of images and links to the desktop, and other applications\
|
||||
\'a5 Support for Shockwave Directory content\
|
||||
\'a5 Uses Rendezvous to show local FTP and web servers\
|
||||
\'a5 Supports Proxy Auto-config\
|
||||
\
|
||||
|
||||
\f0\b Details\
|
||||
|
||||
\f1\b0 \
|
||||
|
||||
\f2\i User Interface
|
||||
\f1\i0 \
|
||||
\
|
||||
\'a5 Chimera now has a Text Encoding submenu, allowing you to override the character set of a page when it doesn't display correctly.\
|
||||
\'a5 Chimera now supports the Menu Sharing protocol, allowing applications like URL Manager Pro to work.\
|
||||
\'a5 Popup windows no longer do an ugly resize-flash when they appear.\
|
||||
\'a5 If you type something in the URL bar before Chimera finishes loading the first page, it will no longer get replaced by the page URL.\
|
||||
\'a5 Global history is now visible in the sidebar (and is much faster than before).\
|
||||
\'a5 Redesigned content-generated dialogs (like cookie and JavaScript dialogs) to autosize. JS dialogs are identified by a \'d4[JavaScript Application]\'d5 label to avoid spoofing attacks now.\
|
||||
\
|
||||
|
||||
\f2\i Menus and Toolbars
|
||||
\f1\i0 \
|
||||
\
|
||||
\'a5 New, brighter toolbar icons.\
|
||||
\'a5 Added a \'d2Send Link\'d3 command to the File menu (with an optional toolbar button), which opens a mail message with the URL of the current page in your favorite mail application.\
|
||||
\'a5 Added additional optional toolbar buttons for New Tab, Close Tab, Search etc.\
|
||||
\'a5 Added some new items to the context menus, relating to frames, and copying images.\
|
||||
\'a5 Added support for copying images to the clipboard, and dragging images and links to the desktop, and to other applications.\
|
||||
\'a5 Fixed an issue that would cause the wrong window to be used for loading a bookmark, or URL sometimes.\
|
||||
\'a5 The \'d2small icons\'d3 toolbar mode is shorter now to save screen space.\
|
||||
\
|
||||
|
||||
\f2\i Downloading
|
||||
\f1\i0 \
|
||||
\
|
||||
\'a5 Downloads are now shown in a Download manager, reducing the number of open windows.\
|
||||
\'a5 If you quit while downloads are in progress, Chimera will warn you now.\
|
||||
\'a5 Downloads now start automatically, saving into your Downloads folder, without asking you where to save the file. Option-click a link if you want to specify a different location at which save the file.\
|
||||
\'a5 Added a preference (in the Downloads tab of the Navigation pane) to automatically dispatch downloaded files to helper applications. For security reasons, this defaults to being off.\
|
||||
\
|
||||
|
||||
\f2\i Plugins
|
||||
\f1\i0 \
|
||||
\
|
||||
\'a5 Shockwave Director content now loads in Chimera.\
|
||||
\'a5 The Default plugin (which displays when you're missing the plugin for some content) correctly remembers which MIME type you've seen before now.\
|
||||
\'a5 Context menus for plugins now display correctly, RealPlayer video displays more reliably, and plugins are less likely to draw incorrectly when being scrolled.\
|
||||
\'a5 The QuickTime plugin now correctly handles more MIME types now.\
|
||||
\'a5 Fixed various MRJ (Java) plugin issues (but not, as yet, the problem of typing and dragging in applets).\
|
||||
\
|
||||
|
||||
\f2\i Web Page display
|
||||
\f1\i0 \
|
||||
\
|
||||
\'a5 The default resolution was set to 96dpi, to better match other Mac browsers. You may have to adjust your preferred font sizes to compensate.\
|
||||
\'a5 The User-Agent string now contains \'d3Mach-O\'d3 and \'d2Chimera\'d3 to allow web authors to more accurately identify the browser.\
|
||||
\'a5 Framesets loaded in background tabs show correctly now\
|
||||
\'a5 Typing performance in textareas was somewhat improved.\
|
||||
\'a5 Tabbing to a text field now selects its content.\
|
||||
\'a5 If JavaScript on a page calls
|
||||
\f3\fs18 window.close()
|
||||
\f1\fs24 , we now close just the tab for that page, if there are multiple tabs.\
|
||||
\'a5 Form controls no longer draw in \'d3bold\'d3\
|
||||
\'a5 Pages loading in background tabs now show errors if the load fails, as they should.\
|
||||
\'a5 Chimera now respects the \'d2autocomplete=off\'d3 attribute on web forms, for sites that don't want username/password filling for security reasons.\
|
||||
\'a5 Fixed an issue with the sizing of form controls when zooming.\
|
||||
\'a5 Fixed some "smearing" display problems with absolutely-positioned elements.\
|
||||
\'a5 If you need to see JavaScript errors, you can set a hidden pref ("chimera.log_js_to_console") to have Chimera dump them to the console.\
|
||||
\
|
||||
|
||||
\f2\i Bookmarks
|
||||
\f1\i0 \
|
||||
\
|
||||
\'a5 Command-clicking a toolbar link, or a bookmark in the sidebar will load it in a new tab now.\
|
||||
\'a5 You can put a bookmark folder in the Dock menu now (do a Get Info on a bookmark folder in Chimera). Mac OS X 10.2 only.\
|
||||
\'a5 It's now possible to convert a bookmarks tab group to a normal folder, and vice versa (via a checkbox in the bookmark Get Info panel).\
|
||||
\'a5 You can import Chimera-format bookmarks.xml files.\
|
||||
\'a5 It's now possible to export bookmarks to an HTML file now (via an item on the application menu)\
|
||||
\'a5 Site icons (\'d2favicons\'d3) are shown on the bookmarks toolbar now.\
|
||||
\
|
||||
|
||||
\f2\i Networking
|
||||
\f1\i0 \
|
||||
\
|
||||
\'a5 Chimera will now pick up changes made to the system proxy settings (e.g. when you change Locations in the Network System Preferences) without having to be restarted.\
|
||||
\'a5 Chimera will only show \'d2Connection Refused\'d3 and \'d2Unknown host\'d3 errors for the main page now, rather than images and iframe contents. This helps those using proxy techniques for image blocking.\
|
||||
\
|
||||
|
||||
\f2\i Other Changes
|
||||
\f1\i0 \
|
||||
\
|
||||
\'a5 The Print dialog now has a \'d2Web Browser\'d3 panel that allows you to control the printing of background colors and images, among other options.\
|
||||
\'a5 Chimera now supports the Services menu in web content.\
|
||||
\'a5 You can get the URL of the front window via AppleEvents now.\
|
||||
\'a5 Holding down the Shift key while using the scrollwheel scrolls sideways now.\
|
||||
\'a5 Fixed an issue with QuickDraw that caused a number of random crashes.\
|
||||
\'a5 Chimera will now run if your home directory is on a network volume.\
|
||||
\'a5 Some memory leaks were fixed.\
|
||||
\'a5 Added the ability to set the preferred minimum font size, in the Advanced panel of the Appearance font prefs.\
|
||||
\'a5 Fixed an issue where Chimera could use a lot of CPU when waking from sleep.\
|
||||
\'a5 Chimera is more compatible with the \'d2Metallizer\'d3 haxie now.\
|
||||
\
|
||||
|
||||
\f2\i Known issues
|
||||
\f1\i0 \
|
||||
\
|
||||
\'a5 Shockwave Director content displays at the wrong location in the window, if hardware rendering is enabled.\
|
||||
\'a5 Typing and dragging in Java applets does not work correctly.\
|
||||
\'a5 The Windows Media Player plugin is not compatible with Chimera.\
|
||||
\'a5 If you try to open Chimera's AppleScript dictionary, say from Script Editor, you\'d5ll get an error. To work around this, open the application package, and remove the \'d2Localized.rsrc\'d3 file in Contents/Resources/English.lproj. This will, however, prevent Shockwave Director content from loading so we recommend you do this on a copy of the application.\
|
||||
\'a5 Issues remain when typing in non-Roman languages; sometimes hitting the Delete key can cause Chimera to go Back, rather than deleting text.\
|
||||
\
|
||||
@@ -1,98 +0,0 @@
|
||||
{\rtf1\mac\ansicpg10000\cocoartf102
|
||||
{\fonttbl\f0\fswiss\fcharset77 Optima-Bold;\f1\fswiss\fcharset77 Optima-Regular;\f2\fswiss\fcharset77 Optima-Italic;
|
||||
}
|
||||
{\colortbl;\red255\green255\blue255;\red4\green16\blue255;}
|
||||
\margl1440\margr1440\vieww13340\viewh15240\viewkind0
|
||||
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural
|
||||
|
||||
\f0\b\fs48 \cf0 Camino 0.8 Release Notes\
|
||||
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural
|
||||
|
||||
\f1\b0\fs24 \cf2 http://www.mozilla.org/products/camino/\cf0 \
|
||||
\
|
||||
\pard\tx720\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural
|
||||
\cf0 The following changes and improvements have been made since the Chimera 0.7 release. The list of improvements and bug-fixes are too numerous to name individually.\
|
||||
\pard\tx360\tx720\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li720\fi-720\ql\qnatural
|
||||
\cf0 \
|
||||
|
||||
\f0\b Highlights
|
||||
\f1\b0 \
|
||||
\
|
||||
\'a5 A new look and icon set (a graphite set will be made available shortly)\
|
||||
\'a5 Upgraded Gecko HTML rendering engine to 1.7final from 1.0, yielding performance and web page rendering enhancements, as well as a large number of bug-fixes\
|
||||
\'a5 A more-compact download manager UI\
|
||||
\'a5 Entirely rewritten bookmark system, capable of importing Safari, IE, and Mozilla bookmarks, with Rendezvous and Address Book integration and multi-level undo support\
|
||||
\'a5 "Top Ten" bookmark collection, based on your ten most-visited sites\
|
||||
\'a5 Searchable bookmarks\
|
||||
\'a5 Google Search field in toolbar\
|
||||
\'a5 Ability to manage individual cookies, sorting and editing cookie allow/deny lists\
|
||||
\'a5 Ability to unblock popups on a per-site basis (popup white-listing)\
|
||||
\'a5 User profile migrated to ~/Library/Application Support/Camino\
|
||||
\'a5 Incremental, type-ahead find in the content area\
|
||||
\'a5 Automatic size-to-fit for image images larger than the viewable content area\
|
||||
\'a5 Hundreds of smaller improvements and bug-fixes to the user interface\
|
||||
\
|
||||
|
||||
\f0\b Since the 0.8beta release, we have added the following:\
|
||||
\
|
||||
\'a5
|
||||
\f1\b0 Click-hold session history menus on the Back and Forward buttons\
|
||||
\'a5 XSLT support\
|
||||
\'a5 Startup speed improvements with a large bookmark set\
|
||||
\'a5 Security fixes for the Mac OS X protocol exploit\
|
||||
\'a5 Tabbing from the URL field to the Google Search field works correctly\
|
||||
\'a5 Improved bookmark importing\
|
||||
\'a5 "View Frame Source" correctly displays the frame's html instead of that of the frame set.\
|
||||
\'a5 New keyboard shortcuts for switching tabs that work better with non-US keyboards\
|
||||
\'a5 More bugfixes and general enhancements to the UI and Gecko rendering engine\
|
||||
|
||||
\f0\b \
|
||||
Details\
|
||||
|
||||
\f1\b0 \
|
||||
|
||||
\f2\i User Interface
|
||||
\f1\i0 \
|
||||
\
|
||||
\'a5 If you've customized your toolbar, the Google Search field might not show up automatically. Use "View:Customize Toolbar" to add it.\
|
||||
\'a5 The list of search engines can be easily customized, see "Help:Customizing Search Engines"\
|
||||
\'a5 The bookmark sidebar has been replaced by an in-window bookmark organizer, allowing many more features and better management\
|
||||
\'a5 Site "favicons" (small images specified by the web page that display in the bookmarks bar and menu) are removed when Camino crashes because Gecko invalidates the disk cache.\
|
||||
\'a5 Activate type-ahead find by typing a "/" when the content area has focus. As you type, the nearest text matching the current find string will be highlighted. To find the next occurrence, use "Edit:Find again". To cancel type-ahead find, press Escape.\
|
||||
\'a5 Even though there is a user interface for automatic bookmark checking, the backend code has been disabled. It may return once we get the kinks worked out.\
|
||||
\
|
||||
|
||||
\f2\i Migrating from Camino 0.7\
|
||||
\
|
||||
\'a5
|
||||
\f1\i0 The user profile has moved to ~/Library/Application Support/Camino and no longer contains a nested "salted" (xxxxx.slt) profile directory. \
|
||||
\'a5 The profile will be migrated at first run and the original profile will not be touched. The disk cache will not be copied, but cookies and bookmarks will.\
|
||||
\'a5 By default, the dock menu shows the contents of the "Top Ten" bookmark container and will appear empty when upgrading from 0.7 (which did not have this container). Visiting web pages will populate the container and the menu.\
|
||||
\'a5 If you have problems migrating your profile, please contact us at caminofeedback@mozilla.org\
|
||||
\
|
||||
Java\
|
||||
\
|
||||
\'a5 If you are running Mac OS X 10.1.5, you need the MRJPlugin to run java applets. It is available for download at \
|
||||
\pard\tx360\tx1020\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li720\fi-720\ql\qnatural
|
||||
\cf0 http://ftp.mozilla.org/pub/mozilla.org/camino/releases/MRJPlugin.gz.\
|
||||
\pard\tx360\tx720\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li720\fi-720\ql\qnatural
|
||||
\cf0 \'a5 Typing and dragging in Java applets does not work correctly.\
|
||||
\
|
||||
|
||||
\f2\i Known 10.3-only issues
|
||||
\f1\i0 \
|
||||
\
|
||||
\'a5 A bug in 10.3 causes text in IFRAMEs to "float" as the window is resized and not repaint correctly when scrolled. This has been fixed in Mac OS X 10.3.4.\
|
||||
\'a5 A bug in 10.3 can cause multiple bookmarks to appear on the Bookmark Bar or Desktop when dragged from Camino. No ETA from Apple on a fix.\
|
||||
\
|
||||
|
||||
\f2\i Known issues
|
||||
\f1\i0 \
|
||||
\
|
||||
\'a5 Images on some webpages (such as the rating stars on Amazon.com) render incorrectly when your display is set to thousands of colors. The workaround is to set your display to millions of colors (bug 239701).\
|
||||
\'a5 Shockwave Director content displays at the wrong location in the window, if hardware rendering is enabled.\
|
||||
\'a5 The Windows Media Player plugin is not compatible with Camino.\
|
||||
\'a5 If you try to open Camino AppleScript dictionary, say from Script Editor, you\'d5ll get an error. To work around this, open the application package, and remove the \'d2Localized.rsrc\'d3 file in Contents/Resources/English.lproj. This will, however, prevent Shockwave Director content from loading so we recommend you do this on a copy of the application.\
|
||||
\'a5 While the worst issues from 0.7 have been resolved, some issues remain when typing in non-Roman languages\
|
||||
\
|
||||
}
|
||||
@@ -1,75 +0,0 @@
|
||||
{\rtf1\mac\ansicpg10000\cocoartf102
|
||||
{\fonttbl\f0\fswiss\fcharset77 Optima-Bold;\f1\fswiss\fcharset77 Optima-Regular;\f2\fswiss\fcharset77 Optima-Italic;
|
||||
}
|
||||
{\colortbl;\red255\green255\blue255;\red4\green16\blue255;}
|
||||
\margl1440\margr1440\vieww13340\viewh15240\viewkind0
|
||||
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural
|
||||
|
||||
\f0\b\fs48 \cf0 Camino 0.8b Release Notes\
|
||||
\pard\tx720\tx1440\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural
|
||||
|
||||
\f1\b0\fs24 \cf2 http://www.mozilla.org/products/camino/\cf0 \
|
||||
\
|
||||
\pard\tx720\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\ql\qnatural
|
||||
\cf0 The following changes and improvements have been made since the Chimera 0.7 release.\
|
||||
\pard\tx360\tx720\tx2160\tx2880\tx3600\tx4320\tx5040\tx5760\tx6480\tx7200\tx7920\tx8640\li720\fi-720\ql\qnatural
|
||||
\cf0 \
|
||||
|
||||
\f0\b Highlights
|
||||
\f1\b0 \
|
||||
\
|
||||
\'a5 A new look and icon set (a graphite set will be made available shortly)\
|
||||
\'a5 Upgraded Gecko HTML rendering engine to 1.7final from 1.0, yielding performance and web page rendering enhancements, as well as a large number of bug-fixes\
|
||||
\'a5 A more-compact download manager UI\
|
||||
\'a5 Entirely rewritten bookmark system, capable of importing Safari, IE, and Mozilla bookmarks, with Rendezvous and Address Book integration and multi-level undo support\
|
||||
\'a5 "Top Ten" bookmark collection, based on your ten most-visited sites\
|
||||
\'a5 Searchable bookmarks\
|
||||
\'a5 Google search field in toolbar\
|
||||
\'a5 Ability to manage individual cookies, sorting and editing cookie allow/deny lists\
|
||||
\'a5 Ability to unblock popups on a per-site basis (popup white-listing)\
|
||||
\'a5 User profile migrated to ~/Library/Application Support/Camino\
|
||||
\'a5 Incremental, type-ahead find in the content area\
|
||||
\'a5 Automatic size-to-fit for image images larger than the viewable content area\
|
||||
\'a5 Hundreds of smaller improvements and bug-fixes to the user interface\
|
||||
\
|
||||
|
||||
\f0\b Details\
|
||||
|
||||
\f1\b0 \
|
||||
|
||||
\f2\i User Interface
|
||||
\f1\i0 \
|
||||
\
|
||||
\'a5 If you've customized your toolbar, the Google search field might not show up automatically. Use "View:Customize Toolbar" to add it.\
|
||||
\'a5 The list of search engines can be easily customized, see "Help:Customizing Search Engines"\
|
||||
\'a5 The bookmark sidebar has been replaced by an in-window bookmark organizer, allowing many more features and better management\
|
||||
\'a5 Site "favicons" (small images specified by the web page that display in the bookmarks bar and menu) are removed when Camino crashes because Gecko invalidates the disk cache.\
|
||||
\'a5 Activate type-ahead find by typing a "/" when the content area has focus. As you type, the nearest text matching the current find string will be highlighted. To find the next occurrence, use "Edit:Find again". To cancel type-ahead find, press Escape.\
|
||||
\
|
||||
|
||||
\f2\i Migrating from Camino 0.7\
|
||||
\
|
||||
\'a5
|
||||
\f1\i0 The user profile has moved to ~/Library/Application Support/Camino and no longer contains a nested "salted" (xxxxx.slt) profile directory. \
|
||||
\'a5 The profile will be migrated at first run and the original profile will not be touched. The disk cache will not be copied, but cookies and bookmarks will be.\
|
||||
\'a5 By default, the dock menu shows the contents of the "Top Ten" bookmark container and will appear empty when upgrading from 0.7 (which did not have this container). Visiting web pages will populate the container and the menu.\
|
||||
\'a5 If you have problems migrating your profile, please contact us at caminofeedback@mozilla.org\
|
||||
\
|
||||
|
||||
\f2\i Known 10.3-only issues
|
||||
\f1\i0 \
|
||||
\
|
||||
\'a5 A bug in 10.3 causes text in IFRAMEs to "float" as the window is resized and not repaint correctly when scrolled. This will be fixed in a future version of MacOS X.\
|
||||
\'a5 A bug in 10.3 can cause multiple bookmarks to appear on the Bookmark Bar or Desktop when dragged from Camino. No ETA from Apple on a fix.\
|
||||
\
|
||||
|
||||
\f2\i Known issues
|
||||
\f1\i0 \
|
||||
\
|
||||
\'a5 Shockwave Director content displays at the wrong location in the window, if hardware rendering is enabled.\
|
||||
\'a5 Typing and dragging in Java applets does not work correctly.\
|
||||
\'a5 The Windows Media Player plugin is not compatible with Camino.\
|
||||
\'a5 If you try to open Camino AppleScript dictionary, say from Script Editor, you\'d5ll get an error. To work around this, open the application package, and remove the \'d2Localized.rsrc\'d3 file in Contents/Resources/English.lproj. This will, however, prevent Shockwave Director content from loading so we recommend you do this on a copy of the application.\
|
||||
\'a5 While the worst issues from 0.7 have been resolved, some issues remain when typing in non-Roman languages\
|
||||
\
|
||||
}
|
||||
@@ -1,335 +0,0 @@
|
||||
{\rtf1\mac\ansicpg10000\cocoartf824
|
||||
{\fonttbl\f0\fnil\fcharset77 TrebuchetMS-Bold;\f1\fnil\fcharset77 LucidaGrande;}
|
||||
{\colortbl;\red255\green255\blue255;\red51\green51\blue51;}
|
||||
{\*\listtable{\list\listtemplateid1\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid0\'02\'05.;}{\levelnumbers\'01;}}{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid1\'02\'05.;}{\levelnumbers\'01;}}{\listname ;}\listid1}
|
||||
{\list\listtemplateid2\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid0\'02\'05.;}{\levelnumbers\'01;}}{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid1\'02\'05.;}{\levelnumbers\'01;}}{\listname ;}\listid2}
|
||||
{\list\listtemplateid3\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid0\'02\'05.;}{\levelnumbers\'01;}}{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid1\'02\'05.;}{\levelnumbers\'01;}}{\listname ;}\listid3}
|
||||
{\list\listtemplateid4\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid0\'02\'05.;}{\levelnumbers\'01;}}{\listname ;}\listid4}
|
||||
{\list\listtemplateid5\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid0\'02\'05.;}{\levelnumbers\'01;}}{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid1\'02\'05.;}{\levelnumbers\'01;}}{\listname ;}\listid5}
|
||||
{\list\listtemplateid6\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid0\'02\'05.;}{\levelnumbers\'01;}}{\listname ;}\listid6}
|
||||
{\list\listtemplateid7\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid0\'02\'05.;}{\levelnumbers\'01;}}{\listname ;}\listid7}
|
||||
{\list\listtemplateid8\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid0\'02\'05.;}{\levelnumbers\'01;}}{\listname ;}\listid8}
|
||||
{\list\listtemplateid9\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid0\'02\'05.;}{\levelnumbers\'01;}}{\listname ;}\listid9}
|
||||
{\list\listtemplateid10\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid0\'02\'05.;}{\levelnumbers\'01;}}{\listname ;}\listid10}}
|
||||
{\*\listoverridetable{\listoverride\listid1\listoverridecount0\ls1}{\listoverride\listid2\listoverridecount0\ls2}{\listoverride\listid3\listoverridecount0\ls3}{\listoverride\listid4\listoverridecount0\ls4}{\listoverride\listid5\listoverridecount0\ls5}{\listoverride\listid6\listoverridecount0\ls6}{\listoverride\listid7\listoverridecount0\ls7}{\listoverride\listid8\listoverridecount0\ls8}{\listoverride\listid9\listoverridecount0\ls9}{\listoverride\listid10\listoverridecount0\ls10}}
|
||||
\margl1440\margr1440\vieww11980\viewh12200\viewkind0
|
||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\sl320\sa60\ql\qnatural
|
||||
|
||||
\f0\b\fs30 \cf2 Camino 0.9alpha1 Release Notes\
|
||||
\
|
||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\sa200\ql\qnatural
|
||||
|
||||
\f1\b0\fs20 \cf2 Camino 0.9 brings you a heavily updated version of the only native OS X browser using Mozilla.org's Gecko HTML rendering engine. We made great improvements in rendering accuracy and speed, bookmarks and history management, preferences, plugin support, and many other areas.\
|
||||
Due to changes in our feature set we can no longer support OS X 10.1, we advise people still using OS X 10.1 to download Camino 0.8.4.\
|
||||
Note that Camino 0.9 is in the "alpha" stage, which means it is still heavily under development. We feel that it is usable on a day-to-day basis and a large improvement over Camino 0.8.4, but you may still experience issues and functionality that doesn't work 100%. The goal of this early release is to demonstrate the team's progress and for people to report issues early on in the development cycle so they can be addressed.
|
||||
\
|
||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural
|
||||
\cf2 \
|
||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\sl320\sa60\ql\qnatural
|
||||
|
||||
\f0\b\fs30 \cf2 Highlights\
|
||||
\pard\tx220\tx720\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li740\fi-740\ql\qnatural
|
||||
\ls1\ilvl0
|
||||
\f1\b0\fs20 \cf2 {\listtext \'a5 }This version contains a wide variety of optimizations, memory usage improvements, leak fixes and performance improvements for page rendering and scrolling, as well as numerous crash fixes.\
|
||||
\pard\tx220\tx720\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720\fi-720\ql\qnatural
|
||||
\ls1\ilvl0\cf2 {\listtext \'a5 }Camino is the only high end browser that brings support for Mac OS X 10.2, 10.3 and 10.4 straight out of the box.\
|
||||
{\listtext \'a5 }Event message handling rewritten to improve app responsiveness:\
|
||||
\pard\tx940\tx1440\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li1440\fi-1440\ql\qnatural
|
||||
\ls1\ilvl1\cf2 {\listtext \'a5 }No more frame skipping in DHTML animations or flash adds.\
|
||||
{\listtext \'a5 }Rarely see "beach balls of death".\
|
||||
{\listtext \'a5 }CPU usage on pages with multiple plugin objects has been vastly improved.\
|
||||
{\listtext \'a5 }In general the UI stays much more responsive when viewing CPU-intensive content.\
|
||||
\pard\tx220\tx720\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720\fi-720\ql\qnatural
|
||||
\ls1\ilvl0\cf2 {\listtext \'a5 }We now use Quartz to draw all images on websites.\
|
||||
{\listtext \'a5 }Startup time has been improved by more than 25%.\
|
||||
{\listtext \'a5 }Added a Fill Form menu and toolbar item which uses your personal Address Book card to automatically fill forms on the current webpage.\
|
||||
{\listtext \'a5 }Rewrote the Tab Bar from scratch:\
|
||||
\pard\tx940\tx1440\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li1440\fi-1440\ql\qnatural
|
||||
\ls1\ilvl1\cf2 {\listtext \'a5 }Allows more than 16 tabs in one window.\
|
||||
{\listtext \'a5 }Add an overflow widget when there are too many tabs (as known from regular toolbars).\
|
||||
{\listtext \'a5 }Tabs are now left-aligned.\
|
||||
{\listtext \'a5 }Each tab now has a "close" widget.\
|
||||
{\listtext \'a5 }The tab look is now themeable (though no extra themes are provided).\
|
||||
{\listtext \'a5 }The tab bar can be set to always be visible, even with only one tab open.\
|
||||
{\listtext \'a5 }Re-arranged the tab contextual menu to be more logical.\
|
||||
{\listtext \'a5 }New Tab is now available when no window is open, it will open a new window.\
|
||||
\pard\tx220\tx720\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720\fi-720\ql\qnatural
|
||||
\ls1\ilvl0\cf2 {\listtext \'a5 }Command-enter in the url bar or search field will now open a new tab or new window depending on preferences.\
|
||||
{\listtext \'a5 }Every bookmark menu folder now has an "Open in Tabs" item.\
|
||||
{\listtext \'a5 }The Camino menu now has a "Reset Camino..." menu item.\
|
||||
\pard\tx940\tx1440\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li1440\fi-1440\ql\qnatural
|
||||
\ls1\ilvl1\cf2 {\listtext \'a5 }Browser Reset will erase your browsing history, empty the cache, clear downloads, clear all cookies, clear all site permissions, and remove all remembered user names and passwords.\
|
||||
\pard\tx220\tx720\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720\fi-720\ql\qnatural
|
||||
\ls1\ilvl0\cf2 {\listtext \'a5 }The Camino menu now has an "Empty Cache..." menu item.\
|
||||
{\listtext \'a5 }Security status is now displayed in the url bar.\
|
||||
{\listtext \'a5 }(ctrl)+shift+home/end now selects from beginning or end of webpage.\
|
||||
{\listtext \'a5 }Support for CSS3 cursors.\
|
||||
{\listtext \'a5 }Camino now supports Midas, an inline, rich text editor.\
|
||||
{\listtext \'a5 }We added smart mailto: links context menu support:\
|
||||
\pard\tx940\tx1440\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li1440\fi-1440\ql\qnatural
|
||||
\ls1\ilvl1\cf2 {\listtext \'a5 }Copy Address\
|
||||
{\listtext \'a5 }Add to Address Book, if the address isn't already in Address Book.\
|
||||
{\listtext \'a5 }Show in Address Book, if the address is already in Address Book.\
|
||||
\pard\tx220\tx720\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720\fi-720\ql\qnatural
|
||||
\ls1\ilvl0\cf2 {\listtext \'a5 }The Go menu now displays full history by day.\
|
||||
\pard\tx940\tx1440\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li1440\fi-1440\ql\qnatural
|
||||
\ls1\ilvl1\cf2 {\listtext \'a5 }We show the last 15 visited websites.\
|
||||
{\listtext \'a5 }We show site icons for history items.\
|
||||
{\listtext \'a5 }We now have a "Clear History" item at the bottom of the Go menu.\
|
||||
\pard\tx220\tx720\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720\fi-720\ql\qnatural
|
||||
\ls1\ilvl0\cf2 {\listtext \'a5 }We greatly improved History and Bookmark management.\
|
||||
{\listtext \'a5 }The Help menu now contains an Installed Plugins item which opens about:plugins.\
|
||||
{\listtext \'a5 }The bookmarks manager now behaves like a webpage, no longer taking over the window and hiding opened tabs. This will allow you to:\
|
||||
\pard\tx940\tx1440\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li1440\fi-1440\ql\qnatural
|
||||
\ls1\ilvl1\cf2 {\listtext \'a5 }Open the bookmarks manager in a new tab or a window.\
|
||||
{\listtext \'a5 }Open the bookmarks manager in the current active tab or window.\
|
||||
{\listtext \'a5 }Create a bookmark of the bookmarks manager and add that to your bookmarks bar for quick access.\
|
||||
{\listtext \'a5 }Set the bookmarks manager as your homepage by using "about:bookmarks" as the url.\
|
||||
\pard\tx220\tx720\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720\fi-720\ql\qnatural
|
||||
\ls1\ilvl0\cf2 {\listtext \'a5 }Added Spotlight support for search through bookmarks.\
|
||||
{\listtext \'a5 }Favicons linked using a LINK element are now correctly displayed, instead of always looking for the root favicon.\
|
||||
\pard\tx940\tx1440\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li1440\fi-1440\ql\qnatural
|
||||
\ls1\ilvl1\cf2 {\listtext \'a5 }When a webpage fails to load we now show a warning icon rather than the site icon which was cached on a previous visit.\
|
||||
\pard\tx220\tx720\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720\fi-720\ql\qnatural
|
||||
\ls1\ilvl0\cf2 {\listtext \'a5 }On Mac OS X 10.4 Camino now uses the unified title-/toolbar on its windows.\
|
||||
{\listtext \'a5 }Added add blocking option in the WebFeatures preference panel which uses userContent.css.\
|
||||
{\listtext \'a5 }Camino now has XML Pretty-Print.\
|
||||
{\listtext \'a5 }Camino now uses the Mozilla 1.8 engine, which in itself contains thousands of bug fixes that also benefit Camino. Some of the bigger and more important are:\
|
||||
\pard\tx940\tx1440\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li1440\fi-1440\ql\qnatural
|
||||
\ls1\ilvl1\cf2 {\listtext \'a5 }Gecko's DHTML performance has had some major improvements.\
|
||||
{\listtext \'a5 }Mozilla now supports the overflow-y and overflow-x properties.\
|
||||
{\listtext \'a5 }Mozilla's pop-up blocker has been greatly improved.\
|
||||
{\listtext \'a5 }Resizing of large images to fit the browser window has been improved, now restoring larger-sized image centered on the click location.\
|
||||
{\listtext \'a5 }Mozilla now supports unprompted NTLM authentication (NTLM is an authentication protocol used in Microsoft networks).\
|
||||
{\listtext \'a5 }The XML parser has been updated.\
|
||||
{\listtext \'a5 }Command + Up & Down now works the same as Page Up & Down.\
|
||||
{\listtext \'a5 }Background tabs can no longer set the status bar.\
|
||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural
|
||||
\cf2 \
|
||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\sl320\sa60\ql\qnatural
|
||||
|
||||
\f0\b\fs30 \cf2 General bug fixes\
|
||||
\pard\tx220\tx720\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720\fi-720\ql\qnatural
|
||||
\ls2\ilvl0
|
||||
\f1\b0\fs20 \cf2 {\listtext \'a5 }Camino also contains a wide variety of interface changes that help Aqua Human Interface Guidelines compliance and improve useability.\
|
||||
{\listtext \'a5 }Cached items now saved in ~/Library/Cache/Camino.\
|
||||
{\listtext \'a5 }File related changes:\
|
||||
\pard\tx940\tx1440\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li1440\fi-1440\ql\qnatural
|
||||
\ls2\ilvl1\cf2 {\listtext \'a5 }The "Open File..." window has been changed to a sheet.\
|
||||
{\listtext \'a5 }Allow users to open multiple items using the "Open File..." menu item.\
|
||||
{\listtext \'a5 }Non-ascii local file names are now properly displayed in the Save As dialog.\
|
||||
{\listtext \'a5 }Added several extra file extensions to our Dock icon drag and drop support.\
|
||||
{\listtext \'a5 }Added support for the legacy .URL Internet Explorer bookmark file.\
|
||||
{\listtext \'a5 }One can now open .webloc and .url files by dragging them to the dock icon or opening them with the Open menu.\
|
||||
{\listtext \'a5 }Dragging a local file onto a tab now doesn't give an error message and fails.\
|
||||
\pard\tx220\tx720\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720\fi-720\ql\qnatural
|
||||
\ls2\ilvl0\cf2 {\listtext \'a5 }Webpage interaction related changes:\
|
||||
\pard\tx940\tx1440\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li1440\fi-1440\ql\qnatural
|
||||
\ls2\ilvl1\cf2 {\listtext \'a5 }Allow the use of the Escape key to stop pageloading.\
|
||||
{\listtext \'a5 }Use the username field closest to the password field, not the first field encountered.\
|
||||
{\listtext \'a5 }Using the backspace key in embedded content (plugins, java applets, etc) no longer sends you back a page in history.\
|
||||
{\listtext \'a5 }Disabled form elements now have aqua appearance.\
|
||||
{\listtext \'a5 }In Japanese and Chinese form input area, a caret now moves using the left and right keys in a form input area.\
|
||||
{\listtext \'a5 }Added support for <optgroup> within a <select> pop-up.\
|
||||
{\listtext \'a5 }Password and username autofill now properly works in frames and iframes.\
|
||||
{\listtext \'a5 }Enlarging page text with non-English keyboards can now be correctly done using "Command +".\
|
||||
{\listtext \'a5 }We now use the MozID for Google searches.\
|
||||
{\listtext \'a5 }Improved multi-line tooltip support for webpages.\
|
||||
\pard\tx220\tx720\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720\fi-720\ql\qnatural
|
||||
\ls2\ilvl0\cf2 {\listtext \'a5 }Fix issue where two default fonts were missing on new install.\
|
||||
{\listtext \'a5 }Fix an issue on OS X 10.2 where Camino would use manual prebinding.\
|
||||
{\listtext \'a5 }Users can now put a SearchURLList.plist in their profile folder which will not be removed when upgrading.\
|
||||
{\listtext \'a5 }Fixed an issue where a bookmarked javascript with pop-up was blocked while it shouldn't have.\
|
||||
{\listtext \'a5 }No longer displays an ampersand sign ("&") in the button text of warning dialogs.\
|
||||
{\listtext \'a5 }Fixed a case where the url bar would show a subframe url.\
|
||||
{\listtext \'a5 }When showing autocomplete results into the url bar, we now skip the protocol when trying to figure out where the match is.\
|
||||
{\listtext \'a5 }Send Link and Find Previous menu items are now "dimmed" when no window is opened.\
|
||||
{\listtext \'a5 }We no longer fire an onchange event when selecting the same option that is already selected in a menu.\
|
||||
{\listtext \'a5 }Changed the "Send Link" main menu item to "Email Page Location" for clarity.\
|
||||
{\listtext \'a5 }The link contextual menu now has a "Send This Link..." option.\
|
||||
{\listtext \'a5 }Explicitly open the home page when selecting Go->Home so as to override "load home page in new windows" preference.\
|
||||
{\listtext \'a5 }Keyboard shortcuts available to show or hide the bookmark bar and toolbar.\
|
||||
{\listtext \'a5 }Fixes issue where tabs did not change properly to reflect a "new" tab set.\
|
||||
{\listtext \'a5 }Pages loaded in a tab in the background now correctly scroll to an anchor.\
|
||||
{\listtext \'a5 }Fixed some cases where a page and tab title would say "Loading..." even when the page was done loading already.\
|
||||
{\listtext \'a5 }Fixed a case where scrolling during pageloading could cause a crash.\
|
||||
{\listtext \'a5 }The status bar divider line has returned on all OS versions.\
|
||||
{\listtext \'a5 }Ensure the Search dialog text field has focus after a find.\
|
||||
{\listtext \'a5 }We did a status bar cleanup.\
|
||||
\pard\tx940\tx1440\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li1440\fi-1440\ql\qnatural
|
||||
\ls2\ilvl1\cf2 {\listtext \'a5 }Removed the "Document: Done" notification from the status bar.\
|
||||
{\listtext \'a5 }Removed the globe and lock icon from the statusbar.\
|
||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural
|
||||
\cf2 \
|
||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\sl320\sa60\ql\qnatural
|
||||
|
||||
\f0\b\fs30 \cf2 Bookmark bug fixes and features\
|
||||
\pard\tx220\tx720\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720\fi-720\ql\qnatural
|
||||
\ls3\ilvl0
|
||||
\f1\b0\fs20 \cf2 {\listtext \'a5 }You can now drag and drop bookmarks between Camino and Safari.\
|
||||
{\listtext \'a5 }One can now make separators in any folder except the "smart" folders.\
|
||||
{\listtext \'a5 }We have removed the "Broken Bookmark" detection feature.\
|
||||
{\listtext \'a5 }The green plus cursor is shown when a bookmark is copied using Alt and mouse drag and drop.\
|
||||
{\listtext \'a5 }We now have improved quick searching for history and bookmarks.\
|
||||
{\listtext \'a5 }The edit menu (except cut) now works for bookmarks.\
|
||||
{\listtext \'a5 }Bookmark bar related.\
|
||||
\pard\tx940\tx1440\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li1440\fi-1440\ql\qnatural
|
||||
\ls3\ilvl1\cf2 {\listtext \'a5 }Dragged bookmarks can now be dropped between two folders on the bookmarks bar.\
|
||||
{\listtext \'a5 }A dragged bookmark can now be dropped back in its old position without sending it to the end of the bookmarks bar list.\
|
||||
{\listtext \'a5 }Fixes an issue where it was too easy to accidentally drag Toolbar Bookmark folders on the web view.\
|
||||
{\listtext \'a5 }Fixes repaint issues when rearranging bookmarks and resizing the browser window.\
|
||||
\pard\tx220\tx720\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720\fi-720\ql\qnatural
|
||||
\ls3\ilvl0\cf2 {\listtext \'a5 }Import related.\
|
||||
\pard\tx940\tx1440\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li1440\fi-1440\ql\qnatural
|
||||
\ls3\ilvl1\cf2 {\listtext \'a5 }Added ability to import Opera bookmarks.\
|
||||
{\listtext \'a5 }Added ability to import OmniWeb 5 bookmarks.\
|
||||
{\listtext \'a5 }Improved Firefox importing.\
|
||||
{\listtext \'a5 }Fixes a nested folder import bug with Firefox by disabling whitespace skipping.\
|
||||
{\listtext \'a5 }Now checks for new location of the Firefox profile directory in addition to the old one.\
|
||||
{\listtext \'a5 }Allows Mozilla bookmark separators to be imported.\
|
||||
{\listtext \'a5 }We solved an instance where it wasn't possible to import Safari Bookmarks.\
|
||||
\pard\tx220\tx720\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720\fi-720\ql\qnatural
|
||||
\ls3\ilvl0\cf2 {\listtext \'a5 }History related.\
|
||||
\pard\tx940\tx1440\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li1440\fi-1440\ql\qnatural
|
||||
\ls3\ilvl1\cf2 {\listtext \'a5 }History was made much faster.\
|
||||
{\listtext \'a5 }You can now search in history.\
|
||||
{\listtext \'a5 }History is now sorted by date labeled folders.\
|
||||
{\listtext \'a5 }We now have column sorting for History to find things easier.\
|
||||
{\listtext \'a5 }Fixed a crash when deleting quicksearch results items in history.\
|
||||
{\listtext \'a5 }Fixed an issue where the history list wasn't updated if one clear all entries in preferences.\
|
||||
{\listtext \'a5 }Cmd-click of history items now opens in new window.\
|
||||
{\listtext \'a5 }We now remember the history panel state.\
|
||||
\pard\tx220\tx720\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720\fi-720\ql\qnatural
|
||||
\ls3\ilvl0\cf2 {\listtext \'a5 }When creating a tab group we now use the title of the front most tab instead of the first tab.\
|
||||
{\listtext \'a5 }Fixed an issue where creating a bookmark of a tab could create one for the first tab.\
|
||||
{\listtext \'a5 }Fixed an issue where the user specified name for a new bookmark wasn't used.\
|
||||
{\listtext \'a5 }You can now bookmark a page that doesn't have a <title>.\
|
||||
{\listtext \'a5 }Use the link text instead of the url for the bookmark title when dragging a link into the bookmark manager.\
|
||||
{\listtext \'a5 }Fixed a case where dragging a site icon from a page without a title would crash Camino.\
|
||||
{\listtext \'a5 }Now always create bookmarks at the end of a bookmarks folder.\
|
||||
{\listtext \'a5 }Fixes an issue where the main bookmark view does not update when it should.\
|
||||
{\listtext \'a5 }Fixes an issue where "Number of Visits" didn't update live in bookmark info Status tab.\
|
||||
{\listtext \'a5 }Camino no longer tries to open bookmark separators as bookmarks when opening bookmark folders.\
|
||||
{\listtext \'a5 }Now disables view source while you are in the Bookmarks manager.\
|
||||
{\listtext \'a5 }Fixed an issue where creating new tabs would get progressively slower with the new about:bookmarks implementation.\
|
||||
{\listtext \'a5 }When creating a bookmark when in the bookmark manager we use the previous webpage.\
|
||||
{\listtext \'a5 }The "Show/Hide All Bookmarks" menu item is now properly enabled and disabled when tabs are closes, and windows change layer.\
|
||||
{\listtext \'a5 }We now save our bookmarks file in two stages in case the write fails in some cases.\
|
||||
{\listtext \'a5 }One can now use the return key in the bookmark info description field to start a new line.\
|
||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural
|
||||
\cf2 \
|
||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\sl320\sa60\ql\qnatural
|
||||
|
||||
\f0\b\fs30 \cf2 Download bug fixes and features\
|
||||
\pard\tx220\tx720\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720\fi-720\ql\qnatural
|
||||
\ls4\ilvl0
|
||||
\f1\b0\fs20 \cf2 {\listtext \'a5 }Added an option to autoclose the download manager when downloads are complete.\
|
||||
{\listtext \'a5 }The current download automatically obtains focus on start.\
|
||||
{\listtext \'a5 }The download manager now displays the user-chosen file name for a download.\
|
||||
{\listtext \'a5 }New toolbar item for showing download manager from the browser window.\
|
||||
{\listtext \'a5 }Fixed an issue where the download Manager got stuck in Customize Toolbar mode when closing on download completion.\
|
||||
{\listtext \'a5 }Fixed an issue where "Download Link Target..." resulted in a bad download for large files.\
|
||||
{\listtext \'a5 }Camino can now handle downloading files bigger than 2GB.\
|
||||
{\listtext \'a5 }Double clicking an item in the download manager now opens the file.\
|
||||
{\listtext \'a5 }Fixed a case where swicthing tabs using the shortcuts while the download window was auto-closing, all the open windows would be closed aswell.\
|
||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural
|
||||
\cf2 \
|
||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\sl320\sa60\ql\qnatural
|
||||
|
||||
\f0\b\fs30 \cf2 Preference bug fixes and features\
|
||||
\pard\tx220\tx720\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720\fi-720\ql\qnatural
|
||||
\ls5\ilvl0
|
||||
\f1\b0\fs20 \cf2 {\listtext \'a5 }The preferences interface has been redone to make it more consistent and easier to use.\
|
||||
\pard\tx940\tx1440\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li1440\fi-1440\ql\qnatural
|
||||
\ls5\ilvl1\cf2 {\listtext \'a5 }We gave each section that previously was hidden in a tab it's own proper pane.\
|
||||
{\listtext \'a5 }Icon in preferences window for current category now appears selected.\
|
||||
{\listtext \'a5 }You can now move trough all panes using keyboard navigation.\
|
||||
{\listtext \'a5 }Panes now correctly focus on text input field when switched to.\
|
||||
{\listtext \'a5 }Camino now remembers the state of the preferences window while running.\
|
||||
{\listtext \'a5 }We now correctly save all preferences if you quit when the preference window was open.\
|
||||
\pard\tx220\tx720\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720\fi-720\ql\qnatural
|
||||
\ls5\ilvl0\cf2 {\listtext \'a5 }We now have support for 3d party preference panels.\
|
||||
\pard\tx940\tx1440\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li1440\fi-1440\ql\qnatural
|
||||
\ls5\ilvl1\cf2 {\listtext \'a5 }These can be installed by moving them into the (~)/Library /Application Support /Camino /PreferencePanels folders.\
|
||||
{\listtext \'a5 }It is possible to write these panels using Cocoa, Applescript or Python.\
|
||||
\pard\tx220\tx720\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720\fi-720\ql\qnatural
|
||||
\ls5\ilvl0\cf2 {\listtext \'a5 }Cookie related changes\
|
||||
\pard\tx940\tx1440\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li1440\fi-1440\ql\qnatural
|
||||
\ls5\ilvl1\cf2 {\listtext \'a5 }Confirmation now requested when removing all cookies.\
|
||||
{\listtext \'a5 }We added search fields to the cookies and exception sheets so entries can be found easier.\
|
||||
\pard\tx220\tx720\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720\fi-720\ql\qnatural
|
||||
\ls5\ilvl0\cf2 {\listtext \'a5 }Appearance related changes:\
|
||||
\pard\tx940\tx1440\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li1440\fi-1440\ql\qnatural
|
||||
\ls5\ilvl1\cf2 {\listtext \'a5 }The Appearance preference panel now uses labeled buttons for changing fonts.\
|
||||
{\listtext \'a5 }Appearance preference panel now has a default button.\
|
||||
{\listtext \'a5 }Serif and Sans-Serif font's are now properly set per language.\
|
||||
{\listtext \'a5 }When changing font sizes in preferences, selecting fonts/sizes wouldn't work if you had clicked in the text preview blocks.\
|
||||
{\listtext \'a5 }We now only allow users to set font Family.\
|
||||
{\listtext \'a5 }CJK (at least Chinese and Japanese) font Preferences are now correctly applied to any CJK Web page.\
|
||||
{\listtext \'a5 }We added zh-HK (Traditional Chinese: Hong Kong) to the font preferences.\
|
||||
{\listtext \'a5 }Fixed an issue where the localized version of Camino couldn't change monospaced font preferences.\
|
||||
{\listtext \'a5 }When showing the Advanced font preferences sheet, hide the font panel\
|
||||
\pard\tx220\tx720\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720\fi-720\ql\qnatural
|
||||
\ls5\ilvl0\cf2 {\listtext \'a5 }Camino can now set itself to be the default browser.\
|
||||
{\listtext \'a5 }Now includes clear memory cache as well as disk cache from preferences.\
|
||||
{\listtext \'a5 }We now use the language information in the System Preferences | International panel to send data on what languages you understand to websites (HTTP accept-language header).\
|
||||
{\listtext \'a5 }The new option camino.accept_languages can be used to specify a set of languages to use for the HTTP accept-language header instead of the ones determined from System Preferences.\
|
||||
{\listtext \'a5 }Support added for wallet.crypto.autocompleteoverride hidden preference.\
|
||||
{\listtext \'a5 }We removed the preference ui for disabling plugins as it has some major problems (specifically with javascript). This can be worked around by using hidden preferences.\
|
||||
{\listtext \'a5 }The Navigation panel is renamed to General and is now one pane.\
|
||||
{\listtext \'a5 }We added a "New Folder" button to the Choose Download Folder sheet.\
|
||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural
|
||||
\cf2 \
|
||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\sl320\sa60\ql\qnatural
|
||||
|
||||
\f0\b\fs30 \cf2 Localization bug fixes\
|
||||
\pard\tx220\tx720\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720\fi-720\ql\qnatural
|
||||
\ls6\ilvl0
|
||||
\f1\b0\fs20 \cf2 {\listtext \'a5 }Cookie Allow and Deny buttons now localizable.\
|
||||
{\listtext \'a5 }Export button in the Bookmark export window now localizable.\
|
||||
{\listtext \'a5 }Loading indication for Preference panels now localizable.\
|
||||
{\listtext \'a5 }Unblock... popup indicator option now localizable.\
|
||||
{\listtext \'a5 }Localization of suggested bookmark export file name.\
|
||||
{\listtext \'a5 }We Localized the cookie editor yes/no values.\
|
||||
{\listtext \'a5 }We changed Rendezvous to Bonjour in line with Apples product name change.\
|
||||
{\listtext \'a5 }We now make sure the downloads location in the download manager is displayed using localized names.\
|
||||
{\listtext \'a5 }We fixed an issue where localized version of camino couldn't change Monospaced font in Preferences.\
|
||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural
|
||||
\cf2 \
|
||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\sl320\sa60\ql\qnatural
|
||||
|
||||
\f0\b\fs30 \cf2 Java issues\
|
||||
\pard\tx220\tx720\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720\fi-720\ql\qnatural
|
||||
\ls7\ilvl0
|
||||
\f1\b0\fs20 \cf2 {\listtext \'a5 }If you are running Mac OS X 10.1.5, you need to download the MRJPlugin to run java applets.\
|
||||
{\listtext \'a5 }Typing and dragging in Java applets does not work correctly using the java MRJPlugin.\
|
||||
{\listtext \'a5 }We advise every user on Mac OS X 10.2+ to use the Java Embedding Plugin. This plugin solves all of the above Java issues and more.\
|
||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural
|
||||
\cf2 \
|
||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\sl320\sa60\ql\qnatural
|
||||
|
||||
\f0\b\fs30 \cf2 Known issues\
|
||||
\pard\tx220\tx720\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720\fi-720\ql\qnatural
|
||||
\ls8\ilvl0
|
||||
\f1\b0\fs20 \cf2 {\listtext \'a5 }Due to a combination of several redraw issues in Gecko typing in form fields can be very slow. Turning of GIF animations can in some cases improve performance.\
|
||||
{\listtext \'a5 }By default Shockwave Director content displays at the wrong location in the window, change hardware rendering to software rendering to solve this.\
|
||||
{\listtext \'a5 }If you try to open Camino AppleScript dictionary, say from Script Editor, you\'d5ll get an error. To work around this, open the application package, and remove the \'d2Localized.rsrc\'d3 file in Contents/Resources/English.lproj. This will, however, prevent Shockwave Director content from loading so we recommend you do this on a copy of the application.\
|
||||
{\listtext \'a5 }While the worst issues from 0.8 have been resolved, some issues remain when typing in non-Roman languages.\
|
||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural
|
||||
\cf2 \
|
||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\sl320\sa60\ql\qnatural
|
||||
|
||||
\f0\b\fs30 \cf2 Known 10.3-only issues\
|
||||
\pard\tx220\tx720\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720\fi-720\ql\qnatural
|
||||
\ls9\ilvl0
|
||||
\f1\b0\fs20 \cf2 {\listtext \'a5 }A bug in 10.3.0 - 10.3.3 causes text in IFRAMEs to "float" outside the IFRAME as the window is resized and not repaint correctly when scrolled. This has been fixed by Apple in 10.3.4.\
|
||||
{\listtext \'a5 }A bug in 10.3 can cause multiple bookmarks to appear on the Bookmark Bar or Desktop when dragged from Camino. This has been fixed in Mac OS X 10.4.\
|
||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural
|
||||
\cf2 \
|
||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\sl320\sa60\ql\qnatural
|
||||
|
||||
\f0\b\fs30 \cf2 Known 10.4-only issues\
|
||||
\pard\tx220\tx720\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720\fi-720\ql\qnatural
|
||||
\ls10\ilvl0
|
||||
\f1\b0\fs20 \cf2 {\listtext \'a5 }Due to a bug in Apple's NSImage API some site icons are not shown correctly. This has been fixed in an upcoming OS release\
|
||||
\
|
||||
@@ -1,336 +0,0 @@
|
||||
{\rtf1\mac\ansicpg10000\cocoartf102
|
||||
\readonlydoc1{\fonttbl\f0\fnil\fcharset77 TrebuchetMS-Bold;\f1\fnil\fcharset77 LucidaGrande;}
|
||||
{\colortbl;\red255\green255\blue255;\red51\green51\blue51;}
|
||||
\margl1440\margr1440\vieww11980\viewh12200\viewkind0
|
||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\sl320\sa60\ql\qnatural
|
||||
|
||||
\f0\b\fs30 \cf2 Camino 0.9alpha1 Release Notes\
|
||||
\
|
||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\sa200\ql\qnatural
|
||||
|
||||
\f1\b0\fs20 \cf2 Camino 0.9 brings you a heavily updated version of the only native OS X browser using Mozilla.org's Gecko HTML rendering engine. We made great improvements in rendering accuracy and speed, bookmarks and history management, preferences, plugin support, and many other areas.\
|
||||
Due to changes in our feature set we can no longer support OS X 10.1, we advise people still using OS X 10.1 to download Camino 0.8.4.\
|
||||
Note that Camino 0.9 is in the "alpha" stage, which means it is still heavily under development. We feel that it is usable on a day-to-day basis and a large improvement over Camino 0.8.4, but you may still experience issues and functionality that doesn't work 100%. The goal of this early release is to demonstrate the team's progress and for people to report issues early on in the development cycle so they can be addressed.\
|
||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural
|
||||
\cf2 \
|
||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\sl320\sa60\ql\qnatural
|
||||
|
||||
\f0\b\fs30 \cf2 Major fixes in 0.9 alpha 2\
|
||||
\pard\tx220\tx720\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li740\fi-740\ql\qnatural
|
||||
|
||||
\f1\b0\fs20 \cf2 \'a5 Fixed several top crashes when closing windows or tabs.\
|
||||
\'a5 Back/Forward performance greatly improved by keeping the full page in memory.\
|
||||
\'a5 Tooltips no longer show in Expose.\
|
||||
\'a5 Pages with a Pound sign now display correctly.\
|
||||
\'a5 Camino now switches to tabs that display alerts.\
|
||||
\'a5 Scrollbars now correctly disable when there's nowhere to scroll\
|
||||
\'a5 Fixed several issues typing in non-Roman languages.\
|
||||
|
||||
\f0\b\fs30 \
|
||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\sl320\sa60\ql\qnatural
|
||||
\cf2 Highlights\
|
||||
\pard\tx220\tx720\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li740\fi-740\ql\qnatural
|
||||
|
||||
\f1\b0\fs20 \cf2 \'a5 This version contains a wide variety of optimizations, memory usage improvements, leak fixes and performance improvements for page rendering and scrolling, as well as numerous crash fixes.\
|
||||
\pard\tx220\tx720\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720\fi-720\ql\qnatural
|
||||
\cf2 \'a5 Camino is the only high end browser that brings support for Mac OS X 10.2, 10.3 and 10.4 straight out of the box.\
|
||||
\'a5 Event message handling rewritten to improve app responsiveness:\
|
||||
\pard\tx940\tx1440\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li1440\fi-1440\ql\qnatural
|
||||
\cf2 \'a5 No more frame skipping in DHTML animations or flash adds.\
|
||||
\'a5 Rarely see "beach balls of death".\
|
||||
\'a5 CPU usage on pages with multiple plugin objects has been vastly improved.\
|
||||
\'a5 In general the UI stays much more responsive when viewing CPU-intensive content.\
|
||||
\pard\tx220\tx720\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720\fi-720\ql\qnatural
|
||||
\cf2 \'a5 We now use Quartz to draw all images on websites.\
|
||||
\'a5 Startup time has been improved by more than 25%.\
|
||||
\'a5 Added a Fill Form menu and toolbar item which uses your personal Address Book card to automatically fill forms on the current webpage.\
|
||||
\'a5 Rewrote the Tab Bar from scratch:\
|
||||
\pard\tx940\tx1440\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li1440\fi-1440\ql\qnatural
|
||||
\cf2 \'a5 Allows more than 16 tabs in one window.\
|
||||
\'a5 Add an overflow widget when there are too many tabs (as known from regular toolbars).\
|
||||
\'a5 Tabs are now left-aligned.\
|
||||
\'a5 Each tab now has a "close" widget.\
|
||||
\'a5 The tab look is now themeable (though no extra themes are provided).\
|
||||
\'a5 The tab bar can be set to always be visible, even with only one tab open.\
|
||||
\'a5 Re-arranged the tab contextual menu to be more logical.\
|
||||
\'a5 New Tab is now available when no window is open, it will open a new window.\
|
||||
\pard\tx220\tx720\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720\fi-720\ql\qnatural
|
||||
\cf2 \'a5 Command-enter in the url bar or search field will now open a new tab or new window depending on preferences.\
|
||||
\'a5 Every bookmark menu folder now has an "Open in Tabs" item.\
|
||||
\'a5 The Camino menu now has a "Reset Camino..." menu item.\
|
||||
\pard\tx940\tx1440\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li1440\fi-1440\ql\qnatural
|
||||
\cf2 \'a5 Browser Reset will erase your browsing history, empty the cache, clear downloads, clear all cookies, clear all site permissions, and remove all remembered user names and passwords.\
|
||||
\pard\tx220\tx720\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720\fi-720\ql\qnatural
|
||||
\cf2 \'a5 The Camino menu now has an "Empty Cache..." menu item.\
|
||||
\'a5 Security status is now displayed in the url bar.\
|
||||
\'a5 (ctrl)+shift+home/end now selects from beginning or end of webpage.\
|
||||
\'a5 Support for CSS3 cursors.\
|
||||
\'a5 Camino now supports Midas, an inline, rich text editor.\
|
||||
\'a5 We added smart mailto: links context menu support:\
|
||||
\pard\tx940\tx1440\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li1440\fi-1440\ql\qnatural
|
||||
\cf2 \'a5 Copy Address\
|
||||
\'a5 Add to Address Book, if the address isn't already in Address Book.\
|
||||
\'a5 Show in Address Book, if the address is already in Address Book.\
|
||||
\pard\tx220\tx720\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720\fi-720\ql\qnatural
|
||||
\cf2 \'a5 The Go menu now displays full history by day.\
|
||||
\pard\tx940\tx1440\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li1440\fi-1440\ql\qnatural
|
||||
\cf2 \'a5 We show the last 15 visited websites.\
|
||||
\'a5 We show site icons for history items.\
|
||||
\'a5 We now have a "Clear History" item at the bottom of the Go menu.\
|
||||
\pard\tx220\tx720\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720\fi-720\ql\qnatural
|
||||
\cf2 \'a5 We greatly improved History and Bookmark management.\
|
||||
\'a5 The Help menu now contains an Installed Plugins item which opens about:plugins.\
|
||||
\'a5 The bookmarks manager now behaves like a webpage, no longer taking over the window and hiding opened tabs. This will allow you to:\
|
||||
\pard\tx940\tx1440\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li1440\fi-1440\ql\qnatural
|
||||
\cf2 \'a5 Open the bookmarks manager in a new tab or a window.\
|
||||
\'a5 Open the bookmarks manager in the current active tab or window.\
|
||||
\'a5 Create a bookmark of the bookmarks manager and add that to your bookmarks bar for quick access.\
|
||||
\'a5 Set the bookmarks manager as your homepage by using "about:bookmarks" as the url.\
|
||||
\pard\tx220\tx720\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720\fi-720\ql\qnatural
|
||||
\cf2 \'a5 Added Spotlight support for search through bookmarks.\
|
||||
\'a5 Favicons linked using a LINK element are now correctly displayed, instead of always looking for the root favicon.\
|
||||
\pard\tx940\tx1440\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li1440\fi-1440\ql\qnatural
|
||||
\cf2 \'a5 When a webpage fails to load we now show a warning icon rather than the site icon which was cached on a previous visit.\
|
||||
\pard\tx220\tx720\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720\fi-720\ql\qnatural
|
||||
\cf2 \'a5 On Mac OS X 10.4 Camino now uses the unified title-/toolbar on its windows.\
|
||||
\'a5 Added add blocking option in the WebFeatures preference panel which uses userContent.css.\
|
||||
\'a5 Camino now has XML Pretty-Print.\
|
||||
\'a5 Camino now uses the Mozilla 1.8 engine, which in itself contains thousands of bug fixes that also benefit Camino. Some of the bigger and more important are:\
|
||||
\pard\tx940\tx1440\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li1440\fi-1440\ql\qnatural
|
||||
\cf2 \'a5 Gecko's DHTML performance has had some major improvements.\
|
||||
\'a5 Mozilla now supports the overflow-y and overflow-x properties.\
|
||||
\'a5 Mozilla's pop-up blocker has been greatly improved.\
|
||||
\'a5 Resizing of large images to fit the browser window has been improved, now restoring larger-sized image centered on the click location.\
|
||||
\'a5 Mozilla now supports unprompted NTLM authentication (NTLM is an authentication protocol used in Microsoft networks).\
|
||||
\'a5 The XML parser has been updated.\
|
||||
\'a5 Command + Up & Down now works the same as Page Up & Down.\
|
||||
\'a5 Background tabs can no longer set the status bar.\
|
||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural
|
||||
\cf2 \
|
||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\sl320\sa60\ql\qnatural
|
||||
|
||||
\f0\b\fs30 \cf2 General bug fixes\
|
||||
\pard\tx220\tx720\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720\fi-720\ql\qnatural
|
||||
|
||||
\f1\b0\fs20 \cf2 \'a5 Camino also contains a wide variety of interface changes that help Aqua Human Interface Guidelines compliance and improve useability.\
|
||||
\'a5 Cached items now saved in ~/Library/Cache/Camino.\
|
||||
\'a5 File related changes:\
|
||||
\pard\tx940\tx1440\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li1440\fi-1440\ql\qnatural
|
||||
\cf2 \'a5 The "Open File..." window has been changed to a sheet.\
|
||||
\'a5 Allow users to open multiple items using the "Open File..." menu item.\
|
||||
\'a5 Non-ascii local file names are now properly displayed in the Save As dialog.\
|
||||
\'a5 Added several extra file extensions to our Dock icon drag and drop support.\
|
||||
\'a5 Added support for the legacy .URL Internet Explorer bookmark file.\
|
||||
\'a5 One can now open .webloc and .url files by dragging them to the dock icon or opening them with the Open menu.\
|
||||
\'a5 Dragging a local file onto a tab now doesn't give an error message and fails.\
|
||||
\pard\tx220\tx720\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720\fi-720\ql\qnatural
|
||||
\cf2 \'a5 Webpage interaction related changes:\
|
||||
\pard\tx940\tx1440\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li1440\fi-1440\ql\qnatural
|
||||
\cf2 \'a5 Allow the use of the Escape key to stop pageloading.\
|
||||
\'a5 Use the username field closest to the password field, not the first field encountered.\
|
||||
\'a5 Using the backspace key in embedded content (plugins, java applets, etc) no longer sends you back a page in history.\
|
||||
\'a5 Disabled form elements now have aqua appearance.\
|
||||
\'a5 In Japanese and Chinese form input area, a caret now moves using the left and right keys in a form input area.\
|
||||
\'a5 Added support for <optgroup> within a <select> pop-up.\
|
||||
\'a5 Password and username autofill now properly works in frames and iframes.\
|
||||
\'a5 Enlarging page text with non-English keyboards can now be correctly done using "Command +".\
|
||||
\'a5 We now use the MozID for Google searches.\
|
||||
\'a5 Improved multi-line tooltip support for webpages.\
|
||||
\pard\tx220\tx720\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720\fi-720\ql\qnatural
|
||||
\cf2 \'a5 Fix issue where two default fonts were missing on new install.\
|
||||
\'a5 Fix an issue on OS X 10.2 where Camino would use manual prebinding.\
|
||||
\'a5 Users can now put a SearchURLList.plist in their profile folder which will not be removed when upgrading.\
|
||||
\'a5 Fixed an issue where a bookmarked javascript with pop-up was blocked while it shouldn't have.\
|
||||
\'a5 No longer displays an ampersand sign ("&") in the button text of warning dialogs.\
|
||||
\'a5 Fixed a case where the url bar would show a subframe url.\
|
||||
\'a5 When showing autocomplete results into the url bar, we now skip the protocol when trying to figure out where the match is.\
|
||||
\'a5 Send Link and Find Previous menu items are now "dimmed" when no window is opened.\
|
||||
\'a5 We no longer fire an onchange event when selecting the same option that is already selected in a menu.\
|
||||
\'a5 Changed the "Send Link" main menu item to "Email Page Location" for clarity.\
|
||||
\'a5 The link contextual menu now has a "Send This Link..." option.\
|
||||
\'a5 Explicitly open the home page when selecting Go->Home so as to override "load home page in new windows" preference.\
|
||||
\'a5 Keyboard shortcuts available to show or hide the bookmark bar and toolbar.\
|
||||
\'a5 Fixes issue where tabs did not change properly to reflect a "new" tab set.\
|
||||
\'a5 Pages loaded in a tab in the background now correctly scroll to an anchor.\
|
||||
\'a5 Fixed some cases where a page and tab title would say "Loading..." even when the page was done loading already.\
|
||||
\'a5 Fixed a case where scrolling during pageloading could cause a crash.\
|
||||
\'a5 The status bar divider line has returned on all OS versions.\
|
||||
\'a5 Ensure the Search dialog text field has focus after a find.\
|
||||
\'a5 We did a status bar cleanup.\
|
||||
\pard\tx940\tx1440\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li1440\fi-1440\ql\qnatural
|
||||
\cf2 \'a5 Removed the "Document: Done" notification from the status bar.\
|
||||
\'a5 Removed the globe and lock icon from the statusbar.\
|
||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural
|
||||
\cf2 \
|
||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\sl320\sa60\ql\qnatural
|
||||
|
||||
\f0\b\fs30 \cf2 Bookmark bug fixes and features\
|
||||
\pard\tx220\tx720\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720\fi-720\ql\qnatural
|
||||
|
||||
\f1\b0\fs20 \cf2 \'a5 You can now drag and drop bookmarks between Camino and Safari.\
|
||||
\'a5 One can now make separators in any folder except the "smart" folders.\
|
||||
\'a5 We have removed the "Broken Bookmark" detection feature.\
|
||||
\'a5 The green plus cursor is shown when a bookmark is copied using Alt and mouse drag and drop.\
|
||||
\'a5 We now have improved quick searching for history and bookmarks.\
|
||||
\'a5 The edit menu (except cut) now works for bookmarks.\
|
||||
\'a5 Bookmark bar related.\
|
||||
\pard\tx940\tx1440\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li1440\fi-1440\ql\qnatural
|
||||
\cf2 \'a5 Dragged bookmarks can now be dropped between two folders on the bookmarks bar.\
|
||||
\'a5 A dragged bookmark can now be dropped back in its old position without sending it to the end of the bookmarks bar list.\
|
||||
\'a5 Fixes an issue where it was too easy to accidentally drag Toolbar Bookmark folders on the web view.\
|
||||
\'a5 Fixes repaint issues when rearranging bookmarks and resizing the browser window.\
|
||||
\pard\tx220\tx720\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720\fi-720\ql\qnatural
|
||||
\cf2 \'a5 Import related.\
|
||||
\pard\tx940\tx1440\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li1440\fi-1440\ql\qnatural
|
||||
\cf2 \'a5 Added ability to import Opera bookmarks.\
|
||||
\'a5 Added ability to import OmniWeb 5 bookmarks.\
|
||||
\'a5 Improved Firefox importing.\
|
||||
\'a5 Fixes a nested folder import bug with Firefox by disabling whitespace skipping.\
|
||||
\'a5 Now checks for new location of the Firefox profile directory in addition to the old one.\
|
||||
\'a5 Allows Mozilla bookmark separators to be imported.\
|
||||
\'a5 We solved an instance where it wasn't possible to import Safari Bookmarks.\
|
||||
\pard\tx220\tx720\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720\fi-720\ql\qnatural
|
||||
\cf2 \'a5 History related.\
|
||||
\pard\tx940\tx1440\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li1440\fi-1440\ql\qnatural
|
||||
\cf2 \'a5 History was made much faster.\
|
||||
\'a5 You can now search in history.\
|
||||
\'a5 History is now sorted by date labeled folders.\
|
||||
\'a5 We now have column sorting for History to find things easier.\
|
||||
\'a5 Fixed a crash when deleting quicksearch results items in history.\
|
||||
\'a5 Fixed an issue where the history list wasn't updated if one clear all entries in preferences.\
|
||||
\'a5 Cmd-click of history items now opens in new window.\
|
||||
\'a5 We now remember the history panel state.\
|
||||
\pard\tx220\tx720\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720\fi-720\ql\qnatural
|
||||
\cf2 \'a5 When creating a tab group we now use the title of the front most tab instead of the first tab.\
|
||||
\'a5 Fixed an issue where creating a bookmark of a tab could create one for the first tab.\
|
||||
\'a5 Fixed an issue where the user specified name for a new bookmark wasn't used.\
|
||||
\'a5 You can now bookmark a page that doesn't have a <title>.\
|
||||
\'a5 Use the link text instead of the url for the bookmark title when dragging a link into the bookmark manager.\
|
||||
\'a5 Fixed a case where dragging a site icon from a page without a title would crash Camino.\
|
||||
\'a5 Now always create bookmarks at the end of a bookmarks folder.\
|
||||
\'a5 Fixes an issue where the main bookmark view does not update when it should.\
|
||||
\'a5 Fixes an issue where "Number of Visits" didn't update live in bookmark info Status tab.\
|
||||
\'a5 Camino no longer tries to open bookmark separators as bookmarks when opening bookmark folders.\
|
||||
\'a5 Now disables view source while you are in the Bookmarks manager.\
|
||||
\'a5 Fixed an issue where creating new tabs would get progressively slower with the new about:bookmarks implementation.\
|
||||
\'a5 When creating a bookmark when in the bookmark manager we use the previous webpage.\
|
||||
\'a5 The "Show/Hide All Bookmarks" menu item is now properly enabled and disabled when tabs are closes, and windows change layer.\
|
||||
\'a5 We now save our bookmarks file in two stages in case the write fails in some cases.\
|
||||
\'a5 One can now use the return key in the bookmark info description field to start a new line.\
|
||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural
|
||||
\cf2 \
|
||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\sl320\sa60\ql\qnatural
|
||||
|
||||
\f0\b\fs30 \cf2 Download bug fixes and features\
|
||||
\pard\tx220\tx720\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720\fi-720\ql\qnatural
|
||||
|
||||
\f1\b0\fs20 \cf2 \'a5 Added an option to autoclose the download manager when downloads are complete.\
|
||||
\'a5 The current download automatically obtains focus on start.\
|
||||
\'a5 The download manager now displays the user-chosen file name for a download.\
|
||||
\'a5 New toolbar item for showing download manager from the browser window.\
|
||||
\'a5 Fixed an issue where the download Manager got stuck in Customize Toolbar mode when closing on download completion.\
|
||||
\'a5 Fixed an issue where "Download Link Target..." resulted in a bad download for large files.\
|
||||
\'a5 Camino can now handle downloading files bigger than 2GB.\
|
||||
\'a5 Double clicking an item in the download manager now opens the file.\
|
||||
\'a5 Fixed a case where swicthing tabs using the shortcuts while the download window was auto-closing, all the open windows would be closed aswell.\
|
||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural
|
||||
\cf2 \
|
||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\sl320\sa60\ql\qnatural
|
||||
|
||||
\f0\b\fs30 \cf2 Preference bug fixes and features\
|
||||
\pard\tx220\tx720\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720\fi-720\ql\qnatural
|
||||
|
||||
\f1\b0\fs20 \cf2 \'a5 The preferences interface has been redone to make it more consistent and easier to use.\
|
||||
\pard\tx940\tx1440\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li1440\fi-1440\ql\qnatural
|
||||
\cf2 \'a5 We gave each section that previously was hidden in a tab it's own proper pane.\
|
||||
\'a5 Icon in preferences window for current category now appears selected.\
|
||||
\'a5 You can now move trough all panes using keyboard navigation.\
|
||||
\'a5 Panes now correctly focus on text input field when switched to.\
|
||||
\'a5 Camino now remembers the state of the preferences window while running.\
|
||||
\'a5 We now correctly save all preferences if you quit when the preference window was open.\
|
||||
\pard\tx220\tx720\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720\fi-720\ql\qnatural
|
||||
\cf2 \'a5 We now have support for 3d party preference panels.\
|
||||
\pard\tx940\tx1440\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li1440\fi-1440\ql\qnatural
|
||||
\cf2 \'a5 These can be installed by moving them into the (~)/Library /Application Support /Camino /PreferencePanels folders.\
|
||||
\'a5 It is possible to write these panels using Cocoa, Applescript or Python.\
|
||||
\pard\tx220\tx720\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720\fi-720\ql\qnatural
|
||||
\cf2 \'a5 Cookie related changes\
|
||||
\pard\tx940\tx1440\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li1440\fi-1440\ql\qnatural
|
||||
\cf2 \'a5 Confirmation now requested when removing all cookies.\
|
||||
\'a5 We added search fields to the cookies and exception sheets so entries can be found easier.\
|
||||
\pard\tx220\tx720\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720\fi-720\ql\qnatural
|
||||
\cf2 \'a5 Appearance related changes:\
|
||||
\pard\tx940\tx1440\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li1440\fi-1440\ql\qnatural
|
||||
\cf2 \'a5 The Appearance preference panel now uses labeled buttons for changing fonts.\
|
||||
\'a5 Appearance preference panel now has a default button.\
|
||||
\'a5 Serif and Sans-Serif font's are now properly set per language.\
|
||||
\'a5 When changing font sizes in preferences, selecting fonts/sizes wouldn't work if you had clicked in the text preview blocks.\
|
||||
\'a5 We now only allow users to set font Family.\
|
||||
\'a5 CJK (at least Chinese and Japanese) font Preferences are now correctly applied to any CJK Web page.\
|
||||
\'a5 We added zh-HK (Traditional Chinese: Hong Kong) to the font preferences.\
|
||||
\'a5 Fixed an issue where the localized version of Camino couldn't change monospaced font preferences.\
|
||||
\'a5 When showing the Advanced font preferences sheet, hide the font panel\
|
||||
\pard\tx220\tx720\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720\fi-720\ql\qnatural
|
||||
\cf2 \'a5 Camino can now set itself to be the default browser.\
|
||||
\'a5 Now includes clear memory cache as well as disk cache from preferences.\
|
||||
\'a5 We now use the language information in the System Preferences | International panel to send data on what languages you understand to websites (HTTP accept-language header).\
|
||||
\'a5 The new option camino.accept_languages can be used to specify a set of languages to use for the HTTP accept-language header instead of the ones determined from System Preferences.\
|
||||
\'a5 Support added for wallet.crypto.autocompleteoverride hidden preference.\
|
||||
\'a5 We removed the preference ui for disabling plugins as it has some major problems (specifically with javascript). This can be worked around by using hidden preferences.\
|
||||
\'a5 The Navigation panel is renamed to General and is now one pane.\
|
||||
\'a5 We added a "New Folder" button to the Choose Download Folder sheet.\
|
||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural
|
||||
\cf2 \
|
||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\sl320\sa60\ql\qnatural
|
||||
|
||||
\f0\b\fs30 \cf2 Localization bug fixes\
|
||||
\pard\tx220\tx720\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720\fi-720\ql\qnatural
|
||||
|
||||
\f1\b0\fs20 \cf2 \'a5 Cookie Allow and Deny buttons now localizable.\
|
||||
\'a5 Export button in the Bookmark export window now localizable.\
|
||||
\'a5 Loading indication for Preference panels now localizable.\
|
||||
\'a5 Unblock... popup indicator option now localizable.\
|
||||
\'a5 Localization of suggested bookmark export file name.\
|
||||
\'a5 We Localized the cookie editor yes/no values.\
|
||||
\'a5 We changed Rendezvous to Bonjour in line with Apples product name change.\
|
||||
\'a5 We now make sure the downloads location in the download manager is displayed using localized names.\
|
||||
\'a5 We fixed an issue where localized version of camino couldn't change Monospaced font in Preferences.\
|
||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural
|
||||
\cf2 \
|
||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\sl320\sa60\ql\qnatural
|
||||
|
||||
\f0\b\fs30 \cf2 Java issues\
|
||||
\pard\tx220\tx720\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720\fi-720\ql\qnatural
|
||||
|
||||
\f1\b0\fs20 \cf2 \'a5 If you are running Mac OS X 10.1.5, you need to download the MRJPlugin to run java applets.\
|
||||
\'a5 Typing and dragging in Java applets does not work correctly using the java MRJPlugin.\
|
||||
\'a5 We advise every user on Mac OS X 10.2+ to use the Java Embedding Plugin. This plugin solves all of the above Java issues and more.\
|
||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural
|
||||
\cf2 \
|
||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\sl320\sa60\ql\qnatural
|
||||
|
||||
\f0\b\fs30 \cf2 Known issues\
|
||||
\pard\tx220\tx720\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720\fi-720\ql\qnatural
|
||||
|
||||
\f1\b0\fs20 \cf2 \'a5 Due to a combination of several redraw issues in Gecko typing in form fields can be very slow. Turning of GIF animations can in some cases improve performance.\
|
||||
\'a5 By default Shockwave Director content displays at the wrong location in the window, change hardware rendering to software rendering to solve this.\
|
||||
\'a5 If you try to open Camino AppleScript dictionary, say from Script Editor, you\'d5ll get an error. To work around this, open the application package, and remove the \'d2Localized.rsrc\'d3 file in Contents/Resources/English.lproj. This will, however, prevent Shockwave Director content from loading so we recommend you do this on a copy of the application.\
|
||||
\'a5 While the worst issues from 0.8 have been resolved, some issues remain when typing in non-Roman languages.\
|
||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural
|
||||
\cf2 \
|
||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\sl320\sa60\ql\qnatural
|
||||
|
||||
\f0\b\fs30 \cf2 Known 10.3-only issues\
|
||||
\pard\tx220\tx720\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720\fi-720\ql\qnatural
|
||||
|
||||
\f1\b0\fs20 \cf2 \'a5 A bug in 10.3.0 - 10.3.3 causes text in IFRAMEs to "float" outside the IFRAME as the window is resized and not repaint correctly when scrolled. This has been fixed by Apple in 10.3.4.\
|
||||
\'a5 A bug in 10.3 can cause multiple bookmarks to appear on the Bookmark Bar or Desktop when dragged from Camino. This has been fixed in Mac OS X 10.4.\
|
||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural
|
||||
\cf2 \
|
||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\sl320\sa60\ql\qnatural
|
||||
|
||||
\f0\b\fs30 \cf2 Known 10.4-only issues\
|
||||
\pard\tx220\tx720\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720\fi-720\ql\qnatural
|
||||
|
||||
\f1\b0\fs20 \cf2 \'a5 Due to a bug in Apple's NSImage API some site icons are not shown correctly. This has been fixed in Mac OS X 10.4.2.\
|
||||
}
|
||||
@@ -1,328 +0,0 @@
|
||||
{\rtf1\mac\ansicpg10000\cocoartf824\cocoasubrtf110
|
||||
\readonlydoc1{\fonttbl\f0\fnil\fcharset77 TrebuchetMS-Bold;\f1\fnil\fcharset77 LucidaGrande;}
|
||||
{\colortbl;\red255\green255\blue255;\red51\green51\blue51;\red15\green84\blue175;}
|
||||
{\*\listtable{\list\listtemplateid1\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid0\'02\'05.;}{\levelnumbers\'01;}}{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid1\'02\'05.;}{\levelnumbers\'01;}}{\listname ;}\listid1}
|
||||
{\list\listtemplateid2\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid0\'02\'05.;}{\levelnumbers\'01;}}{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid1\'02\'05.;}{\levelnumbers\'01;}}{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid2\'02\'05.;}{\levelnumbers\'01;}}{\listname ;}\listid2}
|
||||
{\list\listtemplateid3\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid0\'02\'05.;}{\levelnumbers\'01;}}{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid1\'02\'05.;}{\levelnumbers\'01;}}{\listname ;}\listid3}
|
||||
{\list\listtemplateid4\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid0\'02\'05.;}{\levelnumbers\'01;}}{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid1\'02\'05.;}{\levelnumbers\'01;}}{\listname ;}\listid4}
|
||||
{\list\listtemplateid5\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid0\'02\'05.;}{\levelnumbers\'01;}}{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid1\'02\'05.;}{\levelnumbers\'01;}}{\listname ;}\listid5}
|
||||
{\list\listtemplateid6\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid0\'02\'05.;}{\levelnumbers\'01;}}{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid1\'02\'05.;}{\levelnumbers\'01;}}{\listname ;}\listid6}
|
||||
{\list\listtemplateid7\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid0\'02\'05.;}{\levelnumbers\'01;}}{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid1\'02\'05.;}{\levelnumbers\'01;}}{\listname ;}\listid7}
|
||||
{\list\listtemplateid8\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid0\'02\'05.;}{\levelnumbers\'01;}}{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid1\'02\'05.;}{\levelnumbers\'01;}}{\listname ;}\listid8}
|
||||
{\list\listtemplateid9\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid0\'02\'05.;}{\levelnumbers\'01;}}{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid1\'02\'05.;}{\levelnumbers\'01;}}{\listname ;}\listid9}
|
||||
{\list\listtemplateid10\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid0\'02\'05.;}{\levelnumbers\'01;}}{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid1\'02\'05.;}{\levelnumbers\'01;}}{\listname ;}\listid10}
|
||||
{\list\listtemplateid11\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid0\'02\'05.;}{\levelnumbers\'01;}}{\listname ;}\listid11}
|
||||
{\list\listtemplateid12\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid0\'02\'05.;}{\levelnumbers\'01;}}{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid1\'02\'05.;}{\levelnumbers\'01;}}{\listname ;}\listid12}
|
||||
{\list\listtemplateid13\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid0\'02\'05.;}{\levelnumbers\'01;}}{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid1\'02\'05.;}{\levelnumbers\'01;}}{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid2\'02\'05.;}{\levelnumbers\'01;}}{\listname ;}\listid13}
|
||||
{\list\listtemplateid14\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid0\'02\'05.;}{\levelnumbers\'01;}}{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid1\'02\'05.;}{\levelnumbers\'01;}}{\listname ;}\listid14}
|
||||
{\list\listtemplateid15\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid0\'02\'05.;}{\levelnumbers\'01;}}{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid1\'02\'05.;}{\levelnumbers\'01;}}{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid2\'02\'05.;}{\levelnumbers\'01;}}{\listname ;}\listid15}
|
||||
{\list\listtemplateid16\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid0\'02\'05.;}{\levelnumbers\'01;}}{\listname ;}\listid16}
|
||||
{\list\listtemplateid17\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid0\'02\'05.;}{\levelnumbers\'01;}}{\listname ;}\listid17}
|
||||
{\list\listtemplateid18\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid0\'02\'05.;}{\levelnumbers\'01;}}{\listname ;}\listid18}
|
||||
{\list\listtemplateid19\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid0\'02\'05.;}{\levelnumbers\'01;}}{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid1\'02\'05.;}{\levelnumbers\'01;}}{\listname ;}\listid19}
|
||||
{\list\listtemplateid20\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid0\'02\'05.;}{\levelnumbers\'01;}}{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid1\'02\'05.;}{\levelnumbers\'01;}}{\listname ;}\listid20}
|
||||
{\list\listtemplateid21\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid0\'02\'05.;}{\levelnumbers\'01;}}{\listname ;}\listid21}
|
||||
{\list\listtemplateid22\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid0\'02\'05.;}{\levelnumbers\'01;}}{\listname ;}\listid22}
|
||||
{\list\listtemplateid23\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid0\'02\'05.;}{\levelnumbers\'01;}}{\listname ;}\listid23}
|
||||
{\list\listtemplateid24\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid0\'02\'05.;}{\levelnumbers\'01;}}{\listname ;}\listid24}
|
||||
{\list\listtemplateid25\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid0\'02\'05.;}{\levelnumbers\'01;}}{\listname ;}\listid25}
|
||||
{\list\listtemplateid26\listhybrid{\listlevel\levelnfc23\levelnfcn23\leveljc2\leveljcn2\levelfollow0\levelstartat1\levelspace360\levelindent0{\*\levelmarker \{disc\}}{\leveltext\leveltemplateid0\'02\'05.;}{\levelnumbers\'01;}}{\listname ;}\listid26}}
|
||||
{\*\listoverridetable{\listoverride\listid1\listoverridecount0\ls1}{\listoverride\listid2\listoverridecount0\ls2}{\listoverride\listid3\listoverridecount0\ls3}{\listoverride\listid4\listoverridecount0\ls4}{\listoverride\listid5\listoverridecount0\ls5}{\listoverride\listid6\listoverridecount0\ls6}{\listoverride\listid7\listoverridecount0\ls7}{\listoverride\listid8\listoverridecount0\ls8}{\listoverride\listid9\listoverridecount0\ls9}{\listoverride\listid10\listoverridecount0\ls10}{\listoverride\listid11\listoverridecount0\ls11}{\listoverride\listid12\listoverridecount0\ls12}{\listoverride\listid13\listoverridecount0\ls13}{\listoverride\listid14\listoverridecount0\ls14}{\listoverride\listid15\listoverridecount0\ls15}{\listoverride\listid16\listoverridecount0\ls16}{\listoverride\listid17\listoverridecount0\ls17}{\listoverride\listid18\listoverridecount0\ls18}{\listoverride\listid19\listoverridecount0\ls19}{\listoverride\listid20\listoverridecount0\ls20}{\listoverride\listid21\listoverridecount0\ls21}{\listoverride\listid22\listoverridecount0\ls22}{\listoverride\listid23\listoverridecount0\ls23}{\listoverride\listid24\listoverridecount0\ls24}{\listoverride\listid25\listoverridecount0\ls25}{\listoverride\listid26\listoverridecount0\ls26}}
|
||||
\margl1440\margr1440\vieww12300\viewh14040\viewkind0
|
||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\sl320\sa60\ql\qnatural
|
||||
|
||||
\f0\b\fs30 \cf2 About Camino 1.0 Alpha 1\
|
||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\sa200\ql\qnatural
|
||||
|
||||
\f1\b0\fs20 \cf2 Camino 1.0 alpha 1 brings you a heavily updated version of the only native Mac OS X browser using Mozilla.org's Gecko HTML rendering engine. We made great improvements, adding new features, improving existing features, and fixing many bugs and performance issues.\
|
||||
Note that this version of Camino 1.0 Alpha 1 is in the "alpha" stage, which means it is still actively under development. It is usable on a day-to-day basis and a large improvement over Camino 0.8.4, but you may still experience bugs, or features that are not complete. The goal of this early release is to demonstrate progress, and for people to report issues early on in the development cycle so that they can be addressed.\
|
||||
Camino 1.0 Alpha 1 shares the same code base with Firefox 1.5 (it's based on the Mozilla 1.8 CVS branch), so shares many of the security fixes and Gecko improvements that are in that version of Firefox.\
|
||||
Due to changes in the feature set, Camino no longer supports Mac OS X 10.1. We advise people still using OS X 10.1 to stay with Camino 0.8.4.
|
||||
\f0\b\fs30 \
|
||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural
|
||||
\cf2 Changes in 1.0alpha1 since 0.9alpha2\
|
||||
\pard\tx220\tx720\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720\fi-720\ql\qnatural
|
||||
\ls1\ilvl0
|
||||
\f1\b0\fs20 \cf2 {\listtext \'a5 }Significant new features and improvements\
|
||||
\pard\tx940\tx1440\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li1440\fi-1440\ql\qnatural
|
||||
\ls1\ilvl1\cf2 {\listtext \'a5 }Drawing speed on pages with multiple animations is much improved, as is typing speed on many pages.\
|
||||
{\listtext \'a5 }Camino now has certificate management capabilities.\
|
||||
{\listtext \'a5 }Camino now saves the list of downloads between sessions. Downloads can be paused and resumed.\
|
||||
{\listtext \'a5 }Ad-blocking is much improved, no longer requires a restart, and does not interfere with userContent.css.\
|
||||
{\listtext \'a5 }Camino now has a preference to limit image animations.\
|
||||
\pard\tx220\tx720\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720\fi-720\ql\qnatural
|
||||
\ls2\ilvl0\cf2 {\listtext \'a5 }New features\
|
||||
\pard\tx940\tx1440\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li1440\fi-1440\ql\qnatural
|
||||
\ls2\ilvl1\cf2 {\listtext \'a5 }On first launch Camino will ask if you wish to set it as the default browser (which can be turned off).\
|
||||
{\listtext \'a5 }The location sheet now supports auto-completion and bookmark keywords just like the main location bar.\
|
||||
{\listtext \'a5 }You can choose page header/footer configuration when printing now (in the Camino section of the print dialog).\
|
||||
{\listtext \'a5 }Print orientation and other page setup details are now correctly remembered between runs.\
|
||||
{\listtext \'a5 }Double-clicking on tab bar background now creates a new foreground tab.\
|
||||
{\listtext \'a5 }Improved behavior when opening multiple items in tabs, and opening tabs from external applications.\
|
||||
{\listtext \'a5 }Emacs-like/readline-like ctrl+letter shortcuts now work for text fields.\
|
||||
{\listtext \'a5 }The about:config preference editor works better.\
|
||||
{\listtext \'a5 }Security-related features\
|
||||
\pard\tx1660\tx2160\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li2160\fi-2160\ql\qnatural
|
||||
\ls2\ilvl2\cf2 {\listtext \'a5 }Certificate-related dialogs have been improved, and now show the details of the certificate in question\
|
||||
{\listtext \'a5 }It is now possible to trust a new Certificate Authority, and create certificates.\
|
||||
{\listtext \'a5 }You can view the set of certificates that Camino ships with, and any that you have downloaded, in the Certificates window accessible from the Security preferences panel.\
|
||||
\pard\tx220\tx720\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720\fi-720\ql\qnatural
|
||||
\ls3\ilvl0\cf2 {\listtext \'a5 }Bookmarks\
|
||||
\pard\tx940\tx1440\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li1440\fi-1440\ql\qnatural
|
||||
\ls3\ilvl1\cf2 {\listtext \'a5 }Custom favorite icons are now shown for Bookmarks, History, and local files.\
|
||||
{\listtext \'a5 }Fixed the window title when viewing Bookmarks and History.\
|
||||
{\listtext \'a5 }Bookmarking a URL with a relative anchor works correctly now.\
|
||||
{\listtext \'a5 }New bookmark folders, and pasted items, are now created after the selected item in the Bookmarks view.\
|
||||
{\listtext \'a5 }Added Command+Shift+N shortcut for creating a new bookmark folder.\
|
||||
{\listtext \'a5 }Fixed a potential crash when dragging a bookmark to the bookmark bar.\
|
||||
{\listtext \'a5 }When the bookmark title for a linked image is empty, we now use the URL.\
|
||||
{\listtext \'a5 }Fixed some problems in the bookmark bar when deleting certain items (like the dock menu folder).\
|
||||
{\listtext \'a5 }The bookmarks splitter location is saved now.\
|
||||
{\listtext \'a5 }Bookmark folder expanded states are now saved correctly.\
|
||||
{\listtext \'a5 }Dragging multiple items from the history view works now.\
|
||||
{\listtext \'a5 }The Export Bookmarks save dialog now has the 'Show/Hide Extension' checkbox.\
|
||||
\pard\tx220\tx720\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720\fi-720\ql\qnatural
|
||||
\ls4\ilvl0\cf2 {\listtext \'a5 }Download manager\
|
||||
\pard\tx940\tx1440\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li1440\fi-1440\ql\qnatural
|
||||
\ls4\ilvl1\cf2 {\listtext \'a5 }The list of downloaded files is now saved on quit, so that downloads from previous sessions are preserved.\
|
||||
{\listtext \'a5 }You can now pause and resume a download now.\
|
||||
{\listtext \'a5 }Destructive toolbar actions are now disabled when the downloads window is not active.\
|
||||
{\listtext \'a5 }Long text in a download instance is now truncated.\
|
||||
\pard\tx220\tx720\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720\fi-720\ql\qnatural
|
||||
\ls5\ilvl0\cf2 {\listtext \'a5 }Preferences\
|
||||
\pard\tx940\tx1440\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li1440\fi-1440\ql\qnatural
|
||||
\ls5\ilvl1\cf2 {\listtext \'a5 }Added a preference to control image animations.\
|
||||
{\listtext \'a5 }We now read Proxy Auto-Config (PAC) settings from the System Preferences .\
|
||||
{\listtext \'a5 }We added a new hidden preference, "camino.use_system_proxy_settings" which affects whether we read the proxy settings from the OS at all. Setting this to "false" allows you to specify you own proxy settings using hidden preferences.\
|
||||
{\listtext \'a5 }Logging of CSS and JavaScript errors in the Console is now off by default.\
|
||||
{\listtext \'a5 }Fixed some issues when editing cookies and permissions, related to filtering and removing items.\
|
||||
{\listtext \'a5 }The "Use system Home Page" checkbox has been removed, and the home page is no longer read from Internet Config.\
|
||||
\pard\tx220\tx720\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720\fi-720\ql\qnatural
|
||||
\ls6\ilvl0\cf2 {\listtext \'a5 }Performance\
|
||||
\pard\tx940\tx1440\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li1440\fi-1440\ql\qnatural
|
||||
\ls6\ilvl1\cf2 {\listtext \'a5 }Pages with repeating background images now draw much more quickly.\
|
||||
{\listtext \'a5 }Startup is much faster now with big bookmark collections.\
|
||||
\pard\tx220\tx720\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720\fi-720\ql\qnatural
|
||||
\ls7\ilvl0\cf2 {\listtext \'a5 }Plugins\
|
||||
\pard\tx940\tx1440\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li1440\fi-1440\ql\qnatural
|
||||
\ls7\ilvl1\cf2 {\listtext \'a5 }Camino now ships with the Java Embedding Plugin ({\field{\*\fldinst{HYPERLINK "http://javaplugin.sourceforge.net/"}}{\fldrslt \cf3 http://javaplugin.sourceforge.net/}}), which provides support for Java 1.4 (Java 5.0 on Mac OS X 10.4). This fixes many Java issues.\
|
||||
{\listtext \'a5 }Control-clicking on a plugin shows the plugin's context menu now.\
|
||||
{\listtext \'a5 }Scrolling with the scroll wheel now works for plugins that handle it.\
|
||||
\pard\tx220\tx720\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720\fi-720\ql\qnatural
|
||||
\ls8\ilvl0\cf2 {\listtext \'a5 }General\
|
||||
\pard\tx940\tx1440\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li1440\fi-1440\ql\qnatural
|
||||
\ls8\ilvl1\cf2 {\listtext \'a5 }Camino now has a "Camino Support" item in the menu bar which leads you to the www.caminobrowser.org support section.\
|
||||
{\listtext \'a5 }You can add a "Show History" button to the main toolbar now.\
|
||||
{\listtext \'a5 }Implemented "Use selection for find" for finding things on pages.\
|
||||
{\listtext \'a5 }New windows now tile with the correct offset.\
|
||||
{\listtext \'a5 }Click-holding on the back/forward buttons now drops down the history menus more promptly.\
|
||||
{\listtext \'a5 }When saving a web page as plain text, we now properly attach the .txt extension to it.\
|
||||
{\listtext \'a5 }When hitting Return in an empty location bar, we now keep focus in the location bar.\
|
||||
{\listtext \'a5 }We now hide the scrollbar when a popup is opened without the scrollbar flag.\
|
||||
{\listtext \'a5 }The user can now show/hide the toolbar and bookmark bar in a popup window (making the location visible)\
|
||||
\pard\tx220\tx720\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720\fi-720\ql\qnatural
|
||||
\ls9\ilvl0\cf2 {\listtext \'a5 }Installation\
|
||||
\pard\tx940\tx1440\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li1440\fi-1440\ql\qnatural
|
||||
\ls9\ilvl1\cf2 {\listtext \'a5 }A license agreement is presented when mounting the disk image now.\
|
||||
\pard\tx220\tx720\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720\fi-720\ql\qnatural
|
||||
\ls10\ilvl0\cf2 {\listtext \'a5 }Localization\
|
||||
\pard\tx940\tx1440\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li1440\fi-1440\ql\qnatural
|
||||
\ls10\ilvl1\cf2 {\listtext \'a5 }We moved the bookmarks.plist file into the localized folder so default bookmarks can be tailored per localization.\
|
||||
{\listtext \'a5 }Bookmarks Manager page/tab title is now localizable\
|
||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural
|
||||
\cf2 \
|
||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\sl320\sa60\ql\qnatural
|
||||
|
||||
\f0\b\fs30 \cf2 Changes from Camino 0.8.4\
|
||||
\pard\tx220\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural
|
||||
\ls11\ilvl0
|
||||
\f1\b0\fs20 \cf2 This version contains a wide variety of optimizations, memory usage improvements, leak fixes and performance improvements for page rendering and scrolling, as well as numerous crash fixes.\
|
||||
Camino is the only high end browser that brings support for Mac OS X 10.2, 10.3 and 10.4 straight out of the box.\
|
||||
\pard\tx220\tx720\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720\fi-720\ql\qnatural
|
||||
\ls12\ilvl0\cf2 {\listtext \'a5 }Features\
|
||||
\pard\tx940\tx1440\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li1440\fi-1440\ql\qnatural
|
||||
\ls12\ilvl1\cf2 {\listtext \'a5 }Back/Forward performance has been greatly improved by keeping the full page in memory.\
|
||||
{\listtext \'a5 }Added a Fill Form menu and toolbar item which uses your personal Address Book card to automatically fill forms on the current web page.\
|
||||
{\listtext \'a5 }Command-enter in the URL bar or search field will now open a new tab or new window depending on preferences.\
|
||||
{\listtext \'a5 }The Camino menu now has a "Reset Camino..." menu item, which will erase your browsing history, empty the cache, clear downloads, clear all cookies, clear all site permissions, and remove all remembered user names and passwords.\
|
||||
{\listtext \'a5 }The Camino menu now has an "Empty Cache..." menu item.\
|
||||
{\listtext \'a5 }Security status is now displayed in the location bar.\
|
||||
{\listtext \'a5 }Camino now supports "document.designMode" (inline HTML editing).\
|
||||
{\listtext \'a5 }The context menu for mailto: links has some new items for interacting with the Address Book.\
|
||||
{\listtext \'a5 }The Help menu now contains an Installed Plugins item which opens about:plugins.\
|
||||
{\listtext \'a5 }Favicons linked using a LINK element are now correctly displayed, instead of always looking for the root favicon.\
|
||||
{\listtext \'a5 }On Mac OS X 10.4 Camino now uses the unified title-/toolbar on its windows.\
|
||||
{\listtext \'a5 }For network and site-related errors, Camino now shows error pages instead of dialogs.\
|
||||
\pard\tx220\tx720\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720\fi-720\ql\qnatural
|
||||
\ls13\ilvl0\cf2 {\listtext \'a5 }Bookmarks and History\
|
||||
\pard\tx940\tx1440\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li1440\fi-1440\ql\qnatural
|
||||
\ls13\ilvl1\cf2 {\listtext \'a5 }Every bookmark menu folder now has an "Open in Tabs" item.\
|
||||
{\listtext \'a5 }We greatly improved History and Bookmark management.\
|
||||
{\listtext \'a5 }The bookmarks manager now behaves like a web page, no longer taking over the window and hiding opened tabs. This will allow you to:\
|
||||
\pard\tx1660\tx2160\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li2160\fi-2160\ql\qnatural
|
||||
\ls13\ilvl2\cf2 {\listtext \'a5 }Open the bookmarks manager in a new tab or a window.\
|
||||
{\listtext \'a5 }Open the bookmarks manager in the current active tab or window.\
|
||||
{\listtext \'a5 }Create a bookmark of the bookmarks manager and add that to your bookmarks bar for quick access.\
|
||||
{\listtext \'a5 }Set the bookmarks manager as your home page by using "about:bookmarks" as the url.\
|
||||
\pard\tx940\tx1440\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li1440\fi-1440\ql\qnatural
|
||||
\ls13\ilvl1\cf2 {\listtext \'a5 }The Go menu now displays sites you visited in any window, grouped by date, and allows you to clear the history.\
|
||||
{\listtext \'a5 }Spotlight will now index and open Camino bookmarks.\
|
||||
\pard\tx220\tx720\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720\fi-720\ql\qnatural
|
||||
\ls14\ilvl0\cf2 {\listtext \'a5 }Tabbed browsing\
|
||||
\pard\tx940\tx1440\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li1440\fi-1440\ql\qnatural
|
||||
\ls14\ilvl1\cf2 {\listtext \'a5 }The Tab Bar was rewritten from scratch, allowing more tabs in a window (with an overflow menu), a close button on each tab, and the ability to show the tab bar when a single tab is open.\
|
||||
\pard\tx220\tx720\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720\fi-720\ql\qnatural
|
||||
\ls15\ilvl0\cf2 {\listtext \'a5 }Web Content\
|
||||
\pard\tx940\tx1440\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li1440\fi-1440\ql\qnatural
|
||||
\ls15\ilvl1\cf2 {\listtext \'a5 }Web page access keys now work correctly.\
|
||||
{\listtext \'a5 }Images are drawn and tiled using Core Graphics now, for performance and bug fixes.\
|
||||
{\listtext \'a5 }XML files are now pretty-printed when viewed in Camino.\
|
||||
{\listtext \'a5 }CSS3 cursors are supported now.\
|
||||
{\listtext \'a5 }Camino now uses the Mozilla 1.8 engine, which in itself contains thousands of bug fixes that also benefit Camino. Some of the bigger and more important are:\
|
||||
\pard\tx1660\tx2160\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li2160\fi-2160\ql\qnatural
|
||||
\ls15\ilvl2\cf2 {\listtext \'a5 }Gecko's DHTML performance has had some major improvements.\
|
||||
{\listtext \'a5 }Mozilla now supports the overflow-y and overflow-x properties.\
|
||||
{\listtext \'a5 }Mozilla's pop-up blocker has been greatly improved.\
|
||||
{\listtext \'a5 }Resizing of large images to fit the browser window has been improved, now restoring larger-sized image centered on the click location.\
|
||||
{\listtext \'a5 }Mozilla now supports unprompted NTLM authentication (NTLM is an authentication protocol used in Microsoft networks).\
|
||||
{\listtext \'a5 }The XML parser has been updated.\
|
||||
{\listtext \'a5 }Command + Up & Down now works the same as Page Home & End.\
|
||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural
|
||||
\cf2 \
|
||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\sa60\ql\qnatural
|
||||
|
||||
\f0\b\fs26\fsmilli13300 \cf2 General bug fixes\
|
||||
\pard\tx220\tx720\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720\fi-720\ql\qnatural
|
||||
\ls16\ilvl0
|
||||
\f1\b0\fs20 \cf2 {\listtext \'a5 }Camino now places the disk cache in ~/Library/Caches/Camino.\
|
||||
{\listtext \'a5 }"Open File..." now uses a sheet and supports opening multiple items.\
|
||||
{\listtext \'a5 }Better support for dragging and dropping location files (.webloc, .url)\
|
||||
{\listtext \'a5 }Fixed an issue where a bookmarked JavaScript with pop-up was blocked while it shouldn't have.\
|
||||
{\listtext \'a5 }No longer displays an ampersand sign ("&") in the button text of warning dialogs.\
|
||||
{\listtext \'a5 }Fixed a case where the URL bar would show a subframe url.\
|
||||
{\listtext \'a5 }We no longer fire an onchange event when selecting the same option that is already selected in a menu.\
|
||||
{\listtext \'a5 }Added keyboard shortcuts to show or hide the bookmark bar and toolbar.\
|
||||
{\listtext \'a5 }Pages loaded in a tab in the background now correctly scroll to an anchor.\
|
||||
{\listtext \'a5 }Fixed some cases where a page and tab title would say "Loading..." even when loading had completed.\
|
||||
{\listtext \'a5 }Fixed a case where scrolling during page loading could cause a crash.\
|
||||
{\listtext \'a5 }Removed redundant "Document: Done" from the status bar, removed the globe, and put the lock in the location bar\
|
||||
{\listtext \'a5 }The auto-complete drop-down window will now be shown while the window is moved, resized, minimized or hidden.\
|
||||
{\listtext \'a5 }Tooltips no longer show in Expos\'8e.\
|
||||
{\listtext \'a5 }Command + Shift + R now force reloads the web page just like Shift + Clicking on the reload toolbar item.\
|
||||
{\listtext \'a5 }Fix an issue on OS X 10.2 where Camino would use manual prebinding.\
|
||||
{\listtext \'a5 }Users can now put a SearchURLList.plist in their profile folder which will not be removed when upgrading.\
|
||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural
|
||||
\cf2 \
|
||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\sa60\ql\qnatural
|
||||
|
||||
\f0\b\fs26\fsmilli13300 \cf2 Web page interaction fixes and features\
|
||||
\pard\tx220\tx720\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720\fi-720\ql\qnatural
|
||||
\ls17\ilvl0
|
||||
\f1\b0\fs20 \cf2 {\listtext \'a5 }Charset detection on Asian web pages and on pages with the UK pound sign should be better, and you can enable or disable automatic charset detection in the View > Text Encoding menu.\
|
||||
{\listtext \'a5 }Camino now switches to the tab for which a prompt is being shown.\
|
||||
{\listtext \'a5 }Improved the appearance of select and textarea form controls for Cocoa widgets, and the state of their scrollbars.\
|
||||
{\listtext \'a5 }Fixed a bug where the text caret from a background tab could show through in the active tab.\
|
||||
{\listtext \'a5 }Fixed an issue where selected text in background windows wouldn't become gray and instead would remain with the highlight color.\
|
||||
{\listtext \'a5 }Fixed an issue where TSM Inline input misbehaved after window deactivation.\
|
||||
{\listtext \'a5 }Fixed an issue where Japanese typing could get messed up after Select All then deleting text.\
|
||||
{\listtext \'a5 }We now let the escape key cancel IME input if there is marked text.\
|
||||
{\listtext \'a5 }Allow the use of the Escape key to stop page loading.\
|
||||
{\listtext \'a5 }Use the username field closest to the password field, not the first field encountered when filling from Keychain.\
|
||||
{\listtext \'a5 }Using the backspace key in embedded content (plugins, java applets, etc) no longer sends you back a page in history.\
|
||||
{\listtext \'a5 }Disabled form elements now draw correctly.\
|
||||
{\listtext \'a5 }Added support for <optgroup> within a <select> pop-up.\
|
||||
{\listtext \'a5 }Password and username autofill now properly works in frames and iframes.\
|
||||
{\listtext \'a5 }Enlarging page text with non-English keyboards can now be correctly done using "Command +".\
|
||||
{\listtext \'a5 }We now use the MozID for Google searches.\
|
||||
{\listtext \'a5 }Improved multi-line tooltip support for web pages.\
|
||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural
|
||||
\cf2 \
|
||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\sa60\ql\qnatural
|
||||
|
||||
\f0\b\fs26\fsmilli13300 \cf2 Bookmark bug fixes and features\
|
||||
\pard\tx220\tx720\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720\fi-720\ql\qnatural
|
||||
\ls18\ilvl0
|
||||
\f1\b0\fs20 \cf2 {\listtext \'a5 }You can now drag and drop bookmarks between Camino and Safari.\
|
||||
{\listtext \'a5 }One can now make separators in any folder except the "smart" folders.\
|
||||
{\listtext \'a5 }The "Broken Bookmark" detection feature has been removed.\
|
||||
{\listtext \'a5 }The green plus cursor is shown when a bookmark is copied using Alt and mouse drag and drop.\
|
||||
{\listtext \'a5 }Improved searching in bookmarks and history.\
|
||||
{\listtext \'a5 }You can Copy and Paste bookmarks now.\
|
||||
\pard\tx220\tx720\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720\fi-720\ql\qnatural
|
||||
\ls19\ilvl0\cf2 {\listtext \'a5 }Bookmarks importing improved:\
|
||||
\pard\tx940\tx1440\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li1440\fi-1440\ql\qnatural
|
||||
\ls19\ilvl1\cf2 {\listtext \'a5 }Added ability to import Opera bookmarks.\
|
||||
{\listtext \'a5 }Added ability to import OmniWeb 5 bookmarks.\
|
||||
{\listtext \'a5 }Improved Firefox importing.\
|
||||
{\listtext \'a5 }Now checks for new location of the Firefox profile directory in addition to the old one.\
|
||||
{\listtext \'a5 }Mozilla bookmark separators are now imported correctly.\
|
||||
{\listtext \'a5 }Fixed problems importing Safari Bookmarks.\
|
||||
\pard\tx220\tx720\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720\fi-720\ql\qnatural
|
||||
\ls20\ilvl0\cf2 {\listtext \'a5 }History improvements:\
|
||||
\pard\tx940\tx1440\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li1440\fi-1440\ql\qnatural
|
||||
\ls20\ilvl1\cf2 {\listtext \'a5 }Displaying history is now much faster.\
|
||||
{\listtext \'a5 }You can now search in history.\
|
||||
{\listtext \'a5 }History is now sorted by date labeled folders.\
|
||||
{\listtext \'a5 }You can sort history items by date etc.\
|
||||
\pard\tx220\tx720\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720\fi-720\ql\qnatural
|
||||
\ls21\ilvl0\cf2 {\listtext \'a5 }Made saving the bookmarks file more robust to reduce the chances of loosing bookmarks.\
|
||||
{\listtext \'a5 }Selected bookmarks or history items can be opened in new tabs or windows.\
|
||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural
|
||||
\cf2 \
|
||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\sa60\ql\qnatural
|
||||
|
||||
\f0\b\fs26\fsmilli13300 \cf2 Download bug fixes and features\
|
||||
\pard\tx220\tx720\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720\fi-720\ql\qnatural
|
||||
\ls22\ilvl0
|
||||
\f1\b0\fs20 \cf2 {\listtext \'a5 }Added an option to auto-close the download manager when downloads are complete.\
|
||||
{\listtext \'a5 }The download manager now displays the user-chosen file name for a download.\
|
||||
{\listtext \'a5 }New toolbar item for showing download manager from the browser window.\
|
||||
{\listtext \'a5 }Camino can now handle downloading files bigger than 2GB.\
|
||||
{\listtext \'a5 }Double clicking an item in the download manager now opens the file.\
|
||||
{\listtext \'a5 }Fixed an issue where "Reset Camino" would also delete completed downloads.\
|
||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural
|
||||
\cf2 \
|
||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\sa60\ql\qnatural
|
||||
|
||||
\f0\b\fs26\fsmilli13300 \cf2 Preference bug fixes and features\
|
||||
\pard\tx220\tx720\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720\fi-720\ql\qnatural
|
||||
\ls23\ilvl0
|
||||
\f1\b0\fs20 \cf2 {\listtext \'a5 }Reorganized the Preferences panes, and fixed keyboard navigation issues.\
|
||||
{\listtext \'a5 }Now support for 3d party preference panels, written in Cocoa, Applescript or Python. These can be installed by placing them into the (~)/Library/Application Support/Camino/PreferencePanels folders.\
|
||||
{\listtext \'a5 }Fixed some font-selection issues in the Font preferences panel, and added a button to reset to defaults.\
|
||||
{\listtext \'a5 }Can now search in the cookie and cookie exceptions site lists.\
|
||||
{\listtext \'a5 }Clearing the cache now clears the memory cache as well as the disk cache.\
|
||||
{\listtext \'a5 }We now use the language information in the System Preferences | International panel to send data on what languages you understand to websites (HTTP accept-language header). This can be overridden by the "camino.accept_languages" hidden preference.\
|
||||
{\listtext \'a5 }Support added for the "wallet.crypto.autocompleteoverride" hidden preference.\
|
||||
{\listtext \'a5 }Removed the preference ui for disabling plugins as it did not work correctly.\
|
||||
{\listtext \'a5 }The "permissions.default.image" (image blocking) hidden preference is now working again.\
|
||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural
|
||||
\cf2 \
|
||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\sl320\sa60\ql\qnatural
|
||||
|
||||
\f0\b\fs30 \cf2 Known issues\
|
||||
\pard\tx220\tx720\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720\fi-720\ql\qnatural
|
||||
\ls24\ilvl0
|
||||
\f1\b0\fs20 \cf2 {\listtext \'a5 }In some cases Form Fill doesn't correctly fill in all the fields.\
|
||||
{\listtext \'a5 }By default Shockwave Director content displays at the wrong location in the window. Change hardware rendering to software rendering to solve this.\
|
||||
{\listtext \'a5 }If you try to open Camino AppleScript dictionary, say from Script Editor, you'll get an error. To work around this, open the application package, and remove the "Localized.rsrc" file in Contents/Resources/English.lproj. This will, however, prevent Shockwave Director content from loading so we recommend you do this on a copy of the application.\
|
||||
{\listtext \'a5 }Some issues remain when typing in non-Roman languages.\
|
||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural
|
||||
\cf2 \
|
||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\sl320\sa60\ql\qnatural
|
||||
|
||||
\f0\b\fs30 \cf2 Known 10.3-only issues\
|
||||
\pard\tx220\tx720\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720\fi-720\ql\qnatural
|
||||
\ls25\ilvl0
|
||||
\f1\b0\fs20 \cf2 {\listtext \'a5 }A bug in 10.3.0 - 10.3.3 causes text in IFRAMEs to "float" outside the IFRAME as the window is resized and not repaint correctly when scrolled. This has been fixed by Apple in 10.3.4.\
|
||||
{\listtext \'a5 }A bug in 10.3 can cause multiple bookmarks to appear on the Bookmark Bar or Desktop when dragged from Camino. This has been fixed in Mac OS X 10.4.\
|
||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\ql\qnatural
|
||||
\cf2 \
|
||||
\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\sl320\sa60\ql\qnatural
|
||||
|
||||
\f0\b\fs30 \cf2 Known 10.4-only issues\
|
||||
\pard\tx220\tx720\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\li720\fi-720\ql\qnatural
|
||||
\ls26\ilvl0
|
||||
\f1\b0\fs20 \cf2 {\listtext \'a5 }Due to a bug in Apple's NSImage API, some site icons are drawn as blank images. This has been fixed in Mac OS X 10.4.2.\
|
||||
{\listtext \'a5 }The default browser is reset (to Safari) when upgrading from earlier versions of Mac OS X to Mac OS X 10.4. This will be fixed in an upcoming OS update.\
|
||||
}
|
||||
@@ -1,19 +0,0 @@
|
||||
Checklist of things to do before releasing a new Camino version:
|
||||
|
||||
- Update version number in project file (both Camino and CaminoStatic targets)
|
||||
- Update version number in all-camino.js
|
||||
- Update version number in ChimeraVersion.r
|
||||
- Update version number in Credits.rtf
|
||||
- Update version number in InfoPlist.strings
|
||||
- Update version number in WebsiteDefaults.strings
|
||||
- Update version number in Info-Camino.plist, Info-CaminoStatic.plist
|
||||
- Flip switch on Talkback server to enable wizard UI
|
||||
- Check in new release notes
|
||||
- Update mozilla/camino/installer/Makefile.in to pick up new release notes
|
||||
(CAMINO_VERSION)
|
||||
- Run a new automated build
|
||||
- Tag the tree
|
||||
- Move the build to releases/
|
||||
- Flip the wizard UI switch back to off on the Talkback server
|
||||
- Update version number in all-camino.js to (N.n+)
|
||||
|
||||
@@ -1,75 +0,0 @@
|
||||
# ***** BEGIN LICENSE BLOCK *****
|
||||
# Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
#
|
||||
# The contents of this file are subject to the Mozilla Public License Version
|
||||
# 1.1 (the "License"); you may not use this file except in compliance with
|
||||
# the License. You may obtain a copy of the License at
|
||||
# http://www.mozilla.org/MPL/
|
||||
#
|
||||
# Software distributed under the License is distributed on an "AS IS" basis,
|
||||
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
# for the specific language governing rights and limitations under the
|
||||
# License.
|
||||
#
|
||||
# The Original Code is the Mozilla Browser code.
|
||||
#
|
||||
# The Initial Developer of the Original Code is
|
||||
# IBM Corporation.
|
||||
# Portions created by the Initial Developer are Copyright (C) 2004
|
||||
# the Initial Developer. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s):
|
||||
# Mark Mentovai <mark@moxienet.com>
|
||||
#
|
||||
# Alternatively, the contents of this file may be used under the terms of
|
||||
# either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
# the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
# in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
# of those above. If you wish to allow use of your version of this file only
|
||||
# under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
# use your version of this file under the terms of the MPL, indicate your
|
||||
# decision by deleting the provisions above and replace them with the notice
|
||||
# and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
# the provisions above, a recipient may use your version of this file under
|
||||
# the terms of any one of the MPL, the GPL or the LGPL.
|
||||
#
|
||||
# ***** END LICENSE BLOCK *****
|
||||
|
||||
DEPTH = ../..
|
||||
topsrcdir = @top_srcdir@
|
||||
srcdir = @srcdir@
|
||||
VPATH = @srcdir@
|
||||
|
||||
include $(DEPTH)/config/autoconf.mk
|
||||
|
||||
include $(topsrcdir)/config/rules.mk
|
||||
|
||||
CAMINO_VERSION=1.0a1
|
||||
_RELNOTE_VERSION:=$(subst .,-,$(CAMINO_VERSION))
|
||||
|
||||
# The packager runs in the dist directory, paths must be relative to there.
|
||||
MOZ_PKG_MAC_DSSTORE=../camino/resources/package/dsstore
|
||||
MOZ_PKG_MAC_BACKGROUND=../camino/resources/package/background.jpg
|
||||
MOZ_PKG_MAC_ICON=../camino/resources/package/disk.icns
|
||||
MOZ_PKG_MAC_RSRC=../camino/resources/package/license.r
|
||||
# The docs aren't copied into an objdir, chase them in the srcdir.
|
||||
# Use $(_ABS_TOPSRCDIR) for an absolute path, handling both srcdir and
|
||||
# objdir builds.
|
||||
MOZ_PKG_MAC_EXTRA=--copy "$(_ABS_TOPSRCDIR)/camino/docs/ReadMe.rtf" --copy "$(_ABS_TOPSRCDIR)/camino/docs/Release Notes $(_RELNOTE_VERSION).rtf:Release Notes.rtf" --attribute "E:/ReadMe.rtf:/Release Notes.rtf"
|
||||
|
||||
include $(topsrcdir)/toolkit/mozapps/installer/packager.mk
|
||||
|
||||
# The core build system thinks it's Mozilla. Override what's necessary.
|
||||
# Do this after including packager.mk because it has dependencies that
|
||||
# break if these are already set to Camino when it's included.
|
||||
MOZ_APP_DISPLAYNAME=Camino
|
||||
MOZ_PKG_APPNAME=camino
|
||||
|
||||
# packager.mk has its own exclude list that's appropriate for toolkit apps
|
||||
# but not appropriate for the Xcode-built Camino. Specifically, it excludes
|
||||
# the files produced by Camino.app/Contents/MacOS/Camino -autoRegister YES,
|
||||
# although they belong in the package. Override.
|
||||
NO_PKG_FILES=
|
||||
|
||||
# Override toolkit/mozapps/installer/package-name.mk.
|
||||
PKG_BASENAME=$(MOZ_APP_DISPLAYNAME)
|
||||
@@ -1,104 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>AppleEventCode</key>
|
||||
<string>MOZC</string>
|
||||
<key>Classes</key>
|
||||
<dict>
|
||||
<key>BrowserWindow</key>
|
||||
<dict>
|
||||
<key>AppleEventCode</key>
|
||||
<string>BrWn</string>
|
||||
<key>Attributes</key>
|
||||
<dict>
|
||||
<key>URL</key>
|
||||
<dict>
|
||||
<key>AppleEventCode</key>
|
||||
<string>curl</string>
|
||||
<key>ReadOnly</key>
|
||||
<string>YES</string>
|
||||
<key>Type</key>
|
||||
<string>NSString</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>Superclass</key>
|
||||
<string>NSCoreSuite.NSWindow</string>
|
||||
</dict>
|
||||
<key>NSApplication</key>
|
||||
<dict>
|
||||
<key>AppleEventCode</key>
|
||||
<string>capp</string>
|
||||
<key>Superclass</key>
|
||||
<string>NSCoreSuite.NSApplication</string>
|
||||
<key>ToManyRelationships</key>
|
||||
<dict>
|
||||
<key>orderedDocuments</key>
|
||||
<dict>
|
||||
<key>AppleEventCode</key>
|
||||
<string>docu</string>
|
||||
<key>Type</key>
|
||||
<string>NSDocument</string>
|
||||
</dict>
|
||||
<key>orderedWindows</key>
|
||||
<dict>
|
||||
<key>AppleEventCode</key>
|
||||
<string>cwin</string>
|
||||
<key>Type</key>
|
||||
<string>NSWindow</string>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>Commands</key>
|
||||
<dict>
|
||||
<key>DoJavaScript</key>
|
||||
<dict>
|
||||
<key>AppleEventClassCode</key>
|
||||
<string>MOZZ</string>
|
||||
<key>AppleEventCode</key>
|
||||
<string>JSRC</string>
|
||||
<key>CommandClass</key>
|
||||
<string>NSScriptCommand</string>
|
||||
</dict>
|
||||
<key>GetURL</key>
|
||||
<dict>
|
||||
<key>AppleEventClassCode</key>
|
||||
<string>GURL</string>
|
||||
<key>AppleEventCode</key>
|
||||
<string>GURL</string>
|
||||
<key>CommandClass</key>
|
||||
<string>GetURLCommand</string>
|
||||
</dict>
|
||||
<key>OpenURL</key>
|
||||
<dict>
|
||||
<key>AppleEventClassCode</key>
|
||||
<string>WWW!</string>
|
||||
<key>AppleEventCode</key>
|
||||
<string>OURL</string>
|
||||
<key>CommandClass</key>
|
||||
<string>GetURLCommand</string>
|
||||
</dict>
|
||||
<key>RegisterEchoHandler</key>
|
||||
<dict>
|
||||
<key>AppleEventClassCode</key>
|
||||
<string>WWW!</string>
|
||||
<key>AppleEventCode</key>
|
||||
<string>RGUE</string>
|
||||
<key>CommandClass</key>
|
||||
<string>NSScriptCommand</string>
|
||||
</dict>
|
||||
<key>UnregisterEchoHandler</key>
|
||||
<dict>
|
||||
<key>AppleEventClassCode</key>
|
||||
<string>WWW!</string>
|
||||
<key>AppleEventCode</key>
|
||||
<string>UNRU</string>
|
||||
<key>CommandClass</key>
|
||||
<string>NSScriptCommand</string>
|
||||
</dict>
|
||||
</dict>
|
||||
<key>Name</key>
|
||||
<string>Camino</string>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -1,87 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
|
||||
<!-- Contains mappings of character encodings (lowercase) to menu item tags in the Text Encoding menu. -->
|
||||
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>iso-8859-1</key>
|
||||
<integer>10</integer>
|
||||
<key>x-mac-roman</key>
|
||||
<integer>11</integer>
|
||||
|
||||
<key>iso-2022-jp</key>
|
||||
<integer>12</integer>
|
||||
<key>shift_jis</key>
|
||||
<integer>13</integer>
|
||||
<key>euc-jp</key>
|
||||
<integer>14</integer>
|
||||
|
||||
<key>big5</key>
|
||||
<integer>15</integer>
|
||||
<key>big5-hkscs</key>
|
||||
<integer>16</integer>
|
||||
|
||||
<key>iso-2022-kr</key>
|
||||
<integer>17</integer>
|
||||
<key>x-johab</key>
|
||||
<integer>18</integer>
|
||||
<key>x-windows-949</key>
|
||||
<integer>19</integer>
|
||||
|
||||
<key>iso-8859-6</key>
|
||||
<integer>20</integer>
|
||||
<key>windows-1256</key>
|
||||
<integer>21</integer>
|
||||
<key>iso-8859-8</key>
|
||||
<integer>22</integer>
|
||||
<key>windows-1255</key>
|
||||
<integer>23</integer>
|
||||
|
||||
<key>iso-8859-7</key>
|
||||
<integer>24</integer>
|
||||
<key>windows-1253</key>
|
||||
<integer>25</integer>
|
||||
|
||||
<key>iso-8859-5</key>
|
||||
<integer>26</integer>
|
||||
<key>x-mac-cyrillic</key>
|
||||
<integer>27</integer>
|
||||
<key>koi8-r</key>
|
||||
<integer>28</integer>
|
||||
<key>windows-1251</key>
|
||||
<integer>29</integer>
|
||||
|
||||
<key>tis-620</key>
|
||||
<integer>30</integer>
|
||||
|
||||
<key>gb2312</key>
|
||||
<integer>31</integer>
|
||||
<key>x-gbk</key>
|
||||
<integer>32</integer>
|
||||
<key>hz-gb-2312</key>
|
||||
<integer>33</integer>
|
||||
<key>gb18030</key>
|
||||
<integer>34</integer>
|
||||
|
||||
<key>iso-8859-2</key>
|
||||
<integer>40</integer>
|
||||
<key>windows-1250</key>
|
||||
<integer>41</integer>
|
||||
<key>iso-8859-4</key>
|
||||
<integer>42</integer>
|
||||
<key>windows-1258</key>
|
||||
<integer>43</integer>
|
||||
|
||||
<key>iso-8859-9</key>
|
||||
<integer>45</integer>
|
||||
|
||||
<key>windows-1254</key>
|
||||
<integer>50</integer>
|
||||
<key>windows-1257</key>
|
||||
<integer>51</integer>
|
||||
|
||||
<key>utf-8</key>
|
||||
<integer>60</integer>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -1,94 +0,0 @@
|
||||
/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
||||
/* ***** BEGIN LICENSE BLOCK *****
|
||||
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
|
||||
*
|
||||
* The contents of this file are subject to the Mozilla Public License Version
|
||||
* 1.1 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
* http://www.mozilla.org/MPL/
|
||||
*
|
||||
* Software distributed under the License is distributed on an "AS IS" basis,
|
||||
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
||||
* for the specific language governing rights and limitations under the
|
||||
* License.
|
||||
*
|
||||
* The Original Code is mozilla.org code.
|
||||
*
|
||||
* The Initial Developer of the Original Code is
|
||||
* Netscape Communications Corporation.
|
||||
* Portions created by the Initial Developer are Copyright (C) 2002
|
||||
* the Initial Developer. All Rights Reserved.
|
||||
*
|
||||
* Contributor(s):
|
||||
* Simon Fraser <sfraser@netscape.com>
|
||||
*
|
||||
* Alternatively, the contents of this file may be used under the terms of
|
||||
* either the GNU General Public License Version 2 or later (the "GPL"), or
|
||||
* the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
|
||||
* in which case the provisions of the GPL or the LGPL are applicable instead
|
||||
* of those above. If you wish to allow use of your version of this file only
|
||||
* under the terms of either the GPL or the LGPL, and not to allow others to
|
||||
* use your version of this file under the terms of the MPL, indicate your
|
||||
* decision by deleting the provisions above and replace them with the notice
|
||||
* and other provisions required by the GPL or the LGPL. If you do not delete
|
||||
* the provisions above, a recipient may use your version of this file under
|
||||
* the terms of any one of the MPL, the GPL or the LGPL.
|
||||
*
|
||||
* ***** END LICENSE BLOCK ***** */
|
||||
|
||||
|
||||
/*
|
||||
This version resource is little more than a placeholder.
|
||||
It only exists so that certain plugins (e.g. Shockwave Director)
|
||||
which fail if they can't get a 'vers' resource, can initialize
|
||||
successfully.
|
||||
*/
|
||||
|
||||
|
||||
#include <Carbon/Carbon.r>
|
||||
|
||||
|
||||
// Version Numbers //
|
||||
|
||||
#define VERSION_MAJOR 1
|
||||
#define VERSION_MINOR 0x00 // revision & fix in BCD
|
||||
#define VERSION_KIND alpha // alpha, beta, or final
|
||||
#define VERSION_MICRO 1 // internal stage: alpha or beta number
|
||||
|
||||
|
||||
// Version Strings (Finder's Get Info dialog box) //
|
||||
|
||||
#define VERSION_STRING "1.0a1"
|
||||
|
||||
#define COPYRIGHT_STRING "© 1998-2005 Contributors"
|
||||
#define GETINFO_VERSION VERSION_STRING ", " COPYRIGHT_STRING
|
||||
#define PACKAGE_NAME "Camino " VERSION_STRING
|
||||
|
||||
|
||||
// Resources definition
|
||||
|
||||
resource 'vers' (1, "Program") {
|
||||
VERSION_MAJOR,
|
||||
VERSION_MINOR,
|
||||
VERSION_KIND,
|
||||
VERSION_MICRO,
|
||||
verUS,
|
||||
VERSION_STRING,
|
||||
GETINFO_VERSION
|
||||
};
|
||||
|
||||
resource 'vers' (2, "Suite") {
|
||||
VERSION_MAJOR,
|
||||
VERSION_MINOR,
|
||||
VERSION_KIND,
|
||||
VERSION_MICRO,
|
||||
verUS,
|
||||
VERSION_STRING,
|
||||
PACKAGE_NAME
|
||||
};
|
||||
|
||||
resource 'STR ' (1000, "Why here?") {
|
||||
"This 'vers' resource is required to make the Shockwave Director plugin work."
|
||||
};
|
||||
|
||||
|
||||
@@ -1,17 +0,0 @@
|
||||
{\rtf1\mac\ansicpg10000\cocoartf102
|
||||
{\fonttbl\f0\fnil\fcharset77 LucidaGrande;\f1\fnil\fcharset77 LucidaGrande-Bold;}
|
||||
{\colortbl;\red255\green255\blue255;}
|
||||
\pard\tx1440\tx2880\tx4320\tx5760\tx7200\qc
|
||||
|
||||
\f0\fs24 \cf0 http://www.mozilla.org/projects/camino/\
|
||||
\
|
||||
\pard\tx1440\tx2880\tx4320\tx5760\tx7200\qc
|
||||
|
||||
\f1\b \cf0 Mozilla Contributors:
|
||||
\f0\b0 \
|
||||
Type \'d2about:credits\'d3 in the Location bar.\
|
||||
\
|
||||
|
||||
\f1\b Special Thanks:
|
||||
\f0\b0 \
|
||||
The Camino Mailing List}
|
||||
@@ -1,765 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>Children</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>Children</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>Children</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>Description</key>
|
||||
<string></string>
|
||||
<key>Keyword</key>
|
||||
<string></string>
|
||||
<key>LastVisitedDate</key>
|
||||
<date>2003-07-26T04:23:34Z</date>
|
||||
<key>Status</key>
|
||||
<integer>0</integer>
|
||||
<key>Title</key>
|
||||
<string>Apple</string>
|
||||
<key>URL</key>
|
||||
<string>http://www.apple.com/</string>
|
||||
<key>VisitCount</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Description</key>
|
||||
<string></string>
|
||||
<key>Keyword</key>
|
||||
<string></string>
|
||||
<key>LastVisitedDate</key>
|
||||
<date>2003-07-26T04:23:34Z</date>
|
||||
<key>Status</key>
|
||||
<integer>0</integer>
|
||||
<key>Title</key>
|
||||
<string>Apple - Mac OS X</string>
|
||||
<key>URL</key>
|
||||
<string>http://www.apple.com/macosx/</string>
|
||||
<key>VisitCount</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Description</key>
|
||||
<string></string>
|
||||
<key>Keyword</key>
|
||||
<string></string>
|
||||
<key>LastVisitedDate</key>
|
||||
<date>2003-07-26T04:23:34Z</date>
|
||||
<key>Status</key>
|
||||
<integer>0</integer>
|
||||
<key>Title</key>
|
||||
<string>Apple .Mac Welcome</string>
|
||||
<key>URL</key>
|
||||
<string>http://www.mac.com/</string>
|
||||
<key>VisitCount</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
</array>
|
||||
<key>FolderDescription</key>
|
||||
<string></string>
|
||||
<key>FolderKeyword</key>
|
||||
<string></string>
|
||||
<key>FolderType</key>
|
||||
<integer>0</integer>
|
||||
<key>Title</key>
|
||||
<string>Apple Stuff</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Children</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>Description</key>
|
||||
<string></string>
|
||||
<key>Keyword</key>
|
||||
<string></string>
|
||||
<key>LastVisitedDate</key>
|
||||
<date>2003-07-26T04:23:34Z</date>
|
||||
<key>Status</key>
|
||||
<integer>0</integer>
|
||||
<key>Title</key>
|
||||
<string>MacSurfer's Headline News</string>
|
||||
<key>URL</key>
|
||||
<string>http://www.macsurfer.com/</string>
|
||||
<key>VisitCount</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Description</key>
|
||||
<string></string>
|
||||
<key>Keyword</key>
|
||||
<string></string>
|
||||
<key>LastVisitedDate</key>
|
||||
<date>2003-07-26T04:23:34Z</date>
|
||||
<key>Status</key>
|
||||
<integer>0</integer>
|
||||
<key>Title</key>
|
||||
<string>MacCentral Online</string>
|
||||
<key>URL</key>
|
||||
<string>http://maccentral.macworld.com/</string>
|
||||
<key>VisitCount</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Description</key>
|
||||
<string></string>
|
||||
<key>Keyword</key>
|
||||
<string></string>
|
||||
<key>LastVisitedDate</key>
|
||||
<date>2003-07-26T04:23:34Z</date>
|
||||
<key>Status</key>
|
||||
<integer>0</integer>
|
||||
<key>Title</key>
|
||||
<string>MacNN | The Macintosh News Network</string>
|
||||
<key>URL</key>
|
||||
<string>http://www.macnn.com/</string>
|
||||
<key>VisitCount</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Description</key>
|
||||
<string></string>
|
||||
<key>Keyword</key>
|
||||
<string></string>
|
||||
<key>LastVisitedDate</key>
|
||||
<date>2003-07-26T04:23:34Z</date>
|
||||
<key>Status</key>
|
||||
<integer>0</integer>
|
||||
<key>Title</key>
|
||||
<string>MacInTouch: Mac news, information and analysis</string>
|
||||
<key>URL</key>
|
||||
<string>http://www.macintouch.com/</string>
|
||||
<key>VisitCount</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Description</key>
|
||||
<string></string>
|
||||
<key>Keyword</key>
|
||||
<string></string>
|
||||
<key>LastVisitedDate</key>
|
||||
<date>2003-07-26T04:23:34Z</date>
|
||||
<key>Status</key>
|
||||
<integer>0</integer>
|
||||
<key>Title</key>
|
||||
<string>TidBITS Electronic Publishing</string>
|
||||
<key>URL</key>
|
||||
<string>http://www.tidbits.com/</string>
|
||||
<key>VisitCount</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
</array>
|
||||
<key>FolderDescription</key>
|
||||
<string></string>
|
||||
<key>FolderKeyword</key>
|
||||
<string></string>
|
||||
<key>FolderType</key>
|
||||
<integer>0</integer>
|
||||
<key>Title</key>
|
||||
<string>Mac News</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Children</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>Description</key>
|
||||
<string></string>
|
||||
<key>Keyword</key>
|
||||
<string></string>
|
||||
<key>LastVisitedDate</key>
|
||||
<date>2003-07-26T04:23:34Z</date>
|
||||
<key>Status</key>
|
||||
<integer>0</integer>
|
||||
<key>Title</key>
|
||||
<string>Apple Support</string>
|
||||
<key>URL</key>
|
||||
<string>http://www.info.apple.com/</string>
|
||||
<key>VisitCount</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Description</key>
|
||||
<string></string>
|
||||
<key>Keyword</key>
|
||||
<string></string>
|
||||
<key>LastVisitedDate</key>
|
||||
<date>2003-07-26T04:23:34Z</date>
|
||||
<key>Status</key>
|
||||
<integer>0</integer>
|
||||
<key>Title</key>
|
||||
<string>MacFixIt - Troubleshooting Solution for the Macintosh</string>
|
||||
<key>URL</key>
|
||||
<string>http://www.macfixit.com/</string>
|
||||
<key>VisitCount</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Description</key>
|
||||
<string></string>
|
||||
<key>Keyword</key>
|
||||
<string></string>
|
||||
<key>LastVisitedDate</key>
|
||||
<date>2003-07-26T04:23:34Z</date>
|
||||
<key>Status</key>
|
||||
<integer>0</integer>
|
||||
<key>Title</key>
|
||||
<string>Mac OS X Hints</string>
|
||||
<key>URL</key>
|
||||
<string>http://www.macosxhints.com/</string>
|
||||
<key>VisitCount</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Description</key>
|
||||
<string></string>
|
||||
<key>Keyword</key>
|
||||
<string></string>
|
||||
<key>LastVisitedDate</key>
|
||||
<date>2003-07-26T04:23:34Z</date>
|
||||
<key>Status</key>
|
||||
<integer>0</integer>
|
||||
<key>Title</key>
|
||||
<string>OSXFAQ</string>
|
||||
<key>URL</key>
|
||||
<string>http://www.osxfaq.com/</string>
|
||||
<key>VisitCount</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
</array>
|
||||
<key>FolderDescription</key>
|
||||
<string></string>
|
||||
<key>FolderKeyword</key>
|
||||
<string></string>
|
||||
<key>FolderType</key>
|
||||
<integer>0</integer>
|
||||
<key>Title</key>
|
||||
<string>Mac Support</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Children</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>Description</key>
|
||||
<string></string>
|
||||
<key>Keyword</key>
|
||||
<string></string>
|
||||
<key>LastVisitedDate</key>
|
||||
<date>2003-07-26T04:23:34Z</date>
|
||||
<key>Status</key>
|
||||
<integer>0</integer>
|
||||
<key>Title</key>
|
||||
<string>Apple - Mac OS X - Downloads</string>
|
||||
<key>URL</key>
|
||||
<string>http://www.apple.com/downloads/macosx/</string>
|
||||
<key>VisitCount</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Description</key>
|
||||
<string></string>
|
||||
<key>Keyword</key>
|
||||
<string></string>
|
||||
<key>LastVisitedDate</key>
|
||||
<date>2003-07-26T04:23:34Z</date>
|
||||
<key>Status</key>
|
||||
<integer>0</integer>
|
||||
<key>Title</key>
|
||||
<string>Mac OS X Apps</string>
|
||||
<key>URL</key>
|
||||
<string>http://www.macosxapps.com/</string>
|
||||
<key>VisitCount</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Description</key>
|
||||
<string></string>
|
||||
<key>Keyword</key>
|
||||
<string></string>
|
||||
<key>LastVisitedDate</key>
|
||||
<date>2003-07-26T04:23:34Z</date>
|
||||
<key>Status</key>
|
||||
<integer>0</integer>
|
||||
<key>Title</key>
|
||||
<string>VersionTracker: Mac OS X Software</string>
|
||||
<key>URL</key>
|
||||
<string>http://www.versiontracker.com/macosx/</string>
|
||||
<key>VisitCount</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
</array>
|
||||
<key>FolderDescription</key>
|
||||
<string></string>
|
||||
<key>FolderKeyword</key>
|
||||
<string></string>
|
||||
<key>FolderType</key>
|
||||
<integer>0</integer>
|
||||
<key>Title</key>
|
||||
<string>Mac Software</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Children</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>Description</key>
|
||||
<string></string>
|
||||
<key>Keyword</key>
|
||||
<string></string>
|
||||
<key>LastVisitedDate</key>
|
||||
<date>2003-07-26T04:23:34Z</date>
|
||||
<key>Status</key>
|
||||
<integer>0</integer>
|
||||
<key>Title</key>
|
||||
<string>CNet</string>
|
||||
<key>URL</key>
|
||||
<string>http://www.cnet.com</string>
|
||||
<key>VisitCount</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Description</key>
|
||||
<string></string>
|
||||
<key>Keyword</key>
|
||||
<string></string>
|
||||
<key>LastVisitedDate</key>
|
||||
<date>2003-07-26T04:23:34Z</date>
|
||||
<key>Status</key>
|
||||
<integer>0</integer>
|
||||
<key>Title</key>
|
||||
<string>Wired News</string>
|
||||
<key>URL</key>
|
||||
<string>http://www.wired.com/</string>
|
||||
<key>VisitCount</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
</array>
|
||||
<key>FolderDescription</key>
|
||||
<string></string>
|
||||
<key>FolderKeyword</key>
|
||||
<string></string>
|
||||
<key>FolderType</key>
|
||||
<integer>0</integer>
|
||||
<key>Title</key>
|
||||
<string>Tech News</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Children</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>Description</key>
|
||||
<string></string>
|
||||
<key>Keyword</key>
|
||||
<string></string>
|
||||
<key>LastVisitedDate</key>
|
||||
<date>2003-07-26T04:23:34Z</date>
|
||||
<key>Status</key>
|
||||
<integer>0</integer>
|
||||
<key>Title</key>
|
||||
<string>The World Wide Web Consortium</string>
|
||||
<key>URL</key>
|
||||
<string>http://www.w3.org/</string>
|
||||
<key>VisitCount</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Description</key>
|
||||
<string></string>
|
||||
<key>Keyword</key>
|
||||
<string></string>
|
||||
<key>LastVisitedDate</key>
|
||||
<date>2003-07-26T04:23:34Z</date>
|
||||
<key>Status</key>
|
||||
<integer>0</integer>
|
||||
<key>Title</key>
|
||||
<string>W3C HTML Home Page</string>
|
||||
<key>URL</key>
|
||||
<string>http://www.w3.org/MarkUp/</string>
|
||||
<key>VisitCount</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Description</key>
|
||||
<string></string>
|
||||
<key>Keyword</key>
|
||||
<string></string>
|
||||
<key>LastVisitedDate</key>
|
||||
<date>2003-07-26T04:23:34Z</date>
|
||||
<key>Status</key>
|
||||
<integer>0</integer>
|
||||
<key>Title</key>
|
||||
<string>W3C Document Object Model</string>
|
||||
<key>URL</key>
|
||||
<string>http://www.w3.org/DOM/</string>
|
||||
<key>VisitCount</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Description</key>
|
||||
<string></string>
|
||||
<key>Keyword</key>
|
||||
<string></string>
|
||||
<key>LastVisitedDate</key>
|
||||
<date>2003-07-26T04:23:34Z</date>
|
||||
<key>Status</key>
|
||||
<integer>0</integer>
|
||||
<key>Title</key>
|
||||
<string>Cascading Style Sheets</string>
|
||||
<key>URL</key>
|
||||
<string>http://www.w3.org/Style/CSS/</string>
|
||||
<key>VisitCount</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Children</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>Description</key>
|
||||
<string></string>
|
||||
<key>Keyword</key>
|
||||
<string></string>
|
||||
<key>LastVisitedDate</key>
|
||||
<date>2003-07-26T04:23:34Z</date>
|
||||
<key>Status</key>
|
||||
<integer>0</integer>
|
||||
<key>Title</key>
|
||||
<string>Eric Meyer's css/edge</string>
|
||||
<key>URL</key>
|
||||
<string>http://www.meyerweb.com/eric/css/edge/</string>
|
||||
<key>VisitCount</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Description</key>
|
||||
<string></string>
|
||||
<key>Keyword</key>
|
||||
<string></string>
|
||||
<key>LastVisitedDate</key>
|
||||
<date>2003-07-26T04:23:34Z</date>
|
||||
<key>Status</key>
|
||||
<integer>0</integer>
|
||||
<key>Title</key>
|
||||
<string>Mozilla Demos</string>
|
||||
<key>URL</key>
|
||||
<string>http://www.mozilla.org/start/1.0/demos.html</string>
|
||||
<key>VisitCount</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
</array>
|
||||
<key>FolderDescription</key>
|
||||
<string></string>
|
||||
<key>FolderKeyword</key>
|
||||
<string></string>
|
||||
<key>FolderType</key>
|
||||
<integer>0</integer>
|
||||
<key>Title</key>
|
||||
<string>Demos</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>FolderDescription</key>
|
||||
<string></string>
|
||||
<key>FolderKeyword</key>
|
||||
<string></string>
|
||||
<key>FolderType</key>
|
||||
<integer>0</integer>
|
||||
<key>Title</key>
|
||||
<string>Web Standards</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Description</key>
|
||||
<string></string>
|
||||
<key>Keyword</key>
|
||||
<string></string>
|
||||
<key>LastVisitedDate</key>
|
||||
<date>2003-07-26T04:23:34Z</date>
|
||||
<key>Status</key>
|
||||
<integer>0</integer>
|
||||
<key>Title</key>
|
||||
<string>Netscape.com</string>
|
||||
<key>URL</key>
|
||||
<string>http://www.netscape.com/</string>
|
||||
<key>VisitCount</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Description</key>
|
||||
<string></string>
|
||||
<key>Keyword</key>
|
||||
<string></string>
|
||||
<key>LastVisitedDate</key>
|
||||
<date>2003-07-26T04:23:34Z</date>
|
||||
<key>Status</key>
|
||||
<integer>0</integer>
|
||||
<key>Title</key>
|
||||
<string>Yahoo!</string>
|
||||
<key>URL</key>
|
||||
<string>http://www.yahoo.com/</string>
|
||||
<key>VisitCount</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Description</key>
|
||||
<string></string>
|
||||
<key>Keyword</key>
|
||||
<string></string>
|
||||
<key>LastVisitedDate</key>
|
||||
<date>2003-07-26T04:23:34Z</date>
|
||||
<key>Status</key>
|
||||
<integer>0</integer>
|
||||
<key>Title</key>
|
||||
<string>dmoz - Open Directory Project</string>
|
||||
<key>URL</key>
|
||||
<string>http://dmoz.org/</string>
|
||||
<key>VisitCount</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
</array>
|
||||
<key>FolderDescription</key>
|
||||
<string></string>
|
||||
<key>FolderKeyword</key>
|
||||
<string></string>
|
||||
<key>FolderType</key>
|
||||
<integer>0</integer>
|
||||
<key>Title</key>
|
||||
<string>Bookmark Menu</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Children</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>Children</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>Description</key>
|
||||
<string></string>
|
||||
<key>Keyword</key>
|
||||
<string></string>
|
||||
<key>LastVisitedDate</key>
|
||||
<date>2003-07-26T04:23:34Z</date>
|
||||
<key>Status</key>
|
||||
<integer>0</integer>
|
||||
<key>Title</key>
|
||||
<string>Camino</string>
|
||||
<key>URL</key>
|
||||
<string>http://www.mozilla.org/projects/camino/</string>
|
||||
<key>VisitCount</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Description</key>
|
||||
<string></string>
|
||||
<key>Keyword</key>
|
||||
<string></string>
|
||||
<key>LastVisitedDate</key>
|
||||
<date>2003-07-26T04:23:34Z</date>
|
||||
<key>Status</key>
|
||||
<integer>0</integer>
|
||||
<key>Title</key>
|
||||
<string>Camino Feedback</string>
|
||||
<key>URL</key>
|
||||
<string>http://www.mozilla.org/projects/camino/feedback.html</string>
|
||||
<key>VisitCount</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Description</key>
|
||||
<string></string>
|
||||
<key>Keyword</key>
|
||||
<string></string>
|
||||
<key>LastVisitedDate</key>
|
||||
<date>2003-07-26T04:23:34Z</date>
|
||||
<key>Status</key>
|
||||
<integer>0</integer>
|
||||
<key>Title</key>
|
||||
<string>Mozilla.org</string>
|
||||
<key>URL</key>
|
||||
<string>http://www.mozilla.org</string>
|
||||
<key>VisitCount</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
</array>
|
||||
<key>FolderDescription</key>
|
||||
<string></string>
|
||||
<key>FolderKeyword</key>
|
||||
<string></string>
|
||||
<key>FolderType</key>
|
||||
<integer>0</integer>
|
||||
<key>Title</key>
|
||||
<string>Camino Info</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Children</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>Description</key>
|
||||
<string></string>
|
||||
<key>Keyword</key>
|
||||
<string></string>
|
||||
<key>LastVisitedDate</key>
|
||||
<date>2003-07-26T04:23:34Z</date>
|
||||
<key>Status</key>
|
||||
<integer>0</integer>
|
||||
<key>Title</key>
|
||||
<string>BBC News</string>
|
||||
<key>URL</key>
|
||||
<string>http://news.bbc.co.uk/</string>
|
||||
<key>VisitCount</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Description</key>
|
||||
<string></string>
|
||||
<key>Keyword</key>
|
||||
<string></string>
|
||||
<key>LastVisitedDate</key>
|
||||
<date>2003-07-26T04:23:34Z</date>
|
||||
<key>Status</key>
|
||||
<integer>0</integer>
|
||||
<key>Title</key>
|
||||
<string>CNN</string>
|
||||
<key>URL</key>
|
||||
<string>http://www.cnn.com</string>
|
||||
<key>VisitCount</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Description</key>
|
||||
<string></string>
|
||||
<key>Keyword</key>
|
||||
<string></string>
|
||||
<key>LastVisitedDate</key>
|
||||
<date>2003-07-26T04:23:34Z</date>
|
||||
<key>Status</key>
|
||||
<integer>0</integer>
|
||||
<key>Title</key>
|
||||
<string>International Herald Tribune</string>
|
||||
<key>URL</key>
|
||||
<string>http://iht.com/frontpage.html</string>
|
||||
<key>VisitCount</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Description</key>
|
||||
<string></string>
|
||||
<key>Keyword</key>
|
||||
<string></string>
|
||||
<key>LastVisitedDate</key>
|
||||
<date>2003-07-26T04:23:34Z</date>
|
||||
<key>Status</key>
|
||||
<integer>0</integer>
|
||||
<key>Title</key>
|
||||
<string>Salon.com</string>
|
||||
<key>URL</key>
|
||||
<string>http://www.salon.com/</string>
|
||||
<key>VisitCount</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
</array>
|
||||
<key>FolderDescription</key>
|
||||
<string></string>
|
||||
<key>FolderKeyword</key>
|
||||
<string></string>
|
||||
<key>FolderType</key>
|
||||
<integer>0</integer>
|
||||
<key>Title</key>
|
||||
<string>News</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Children</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>Description</key>
|
||||
<string></string>
|
||||
<key>Keyword</key>
|
||||
<string></string>
|
||||
<key>LastVisitedDate</key>
|
||||
<date>2003-07-26T04:23:34Z</date>
|
||||
<key>Status</key>
|
||||
<integer>0</integer>
|
||||
<key>Title</key>
|
||||
<string>MacCentral Online</string>
|
||||
<key>URL</key>
|
||||
<string>http://www.maccentral.com/</string>
|
||||
<key>VisitCount</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Description</key>
|
||||
<string></string>
|
||||
<key>Keyword</key>
|
||||
<string></string>
|
||||
<key>LastVisitedDate</key>
|
||||
<date>2003-07-26T04:23:34Z</date>
|
||||
<key>Status</key>
|
||||
<integer>0</integer>
|
||||
<key>Title</key>
|
||||
<string>MacNN | The Macintosh News Network</string>
|
||||
<key>URL</key>
|
||||
<string>http://www.macnn.com/</string>
|
||||
<key>VisitCount</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Description</key>
|
||||
<string></string>
|
||||
<key>Keyword</key>
|
||||
<string></string>
|
||||
<key>LastVisitedDate</key>
|
||||
<date>2003-07-26T04:23:34Z</date>
|
||||
<key>Status</key>
|
||||
<integer>0</integer>
|
||||
<key>Title</key>
|
||||
<string>MacInTouch: Mac news, information and analysis</string>
|
||||
<key>URL</key>
|
||||
<string>http://www.macintouch.com/</string>
|
||||
<key>VisitCount</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
</array>
|
||||
<key>FolderDescription</key>
|
||||
<string></string>
|
||||
<key>FolderKeyword</key>
|
||||
<string></string>
|
||||
<key>FolderType</key>
|
||||
<integer>1</integer>
|
||||
<key>Title</key>
|
||||
<string>Mac News Tabs</string>
|
||||
</dict>
|
||||
<dict>
|
||||
<key>Description</key>
|
||||
<string></string>
|
||||
<key>Keyword</key>
|
||||
<string>google</string>
|
||||
<key>LastVisitedDate</key>
|
||||
<date>2003-07-26T04:23:34Z</date>
|
||||
<key>Status</key>
|
||||
<integer>0</integer>
|
||||
<key>Title</key>
|
||||
<string>Google</string>
|
||||
<key>URL</key>
|
||||
<string>http://www.google.com/</string>
|
||||
<key>VisitCount</key>
|
||||
<integer>0</integer>
|
||||
</dict>
|
||||
</array>
|
||||
<key>FolderDescription</key>
|
||||
<string></string>
|
||||
<key>FolderKeyword</key>
|
||||
<string></string>
|
||||
<key>FolderType</key>
|
||||
<integer>4</integer>
|
||||
<key>Title</key>
|
||||
<string>Toolbar Bookmarks</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>FolderDescription</key>
|
||||
<string></string>
|
||||
<key>FolderKeyword</key>
|
||||
<string></string>
|
||||
<key>FolderType</key>
|
||||
<integer>2</integer>
|
||||
<key>Title</key>
|
||||
<string>Bookmarks</string>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -1,9 +0,0 @@
|
||||
(
|
||||
"Back Toolbar Item",
|
||||
"Forward Toolbar Item",
|
||||
"Reload Toolbar Item",
|
||||
"Stop Toolbar Item",
|
||||
"Location Toolbar Item",
|
||||
"Search Toolbar Item",
|
||||
"Sidebar Toolbar Item"
|
||||
)
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user