До выхода Safari v. 3.0, при замедлении работы пользователи имели возможность сбросить настройки Safari (Safari→Reset Safari), однако при этом происходила потеря сохраненных паролей и всей информации, использовавшейся функцией автоматического заполнения (autofill).
После выполнения этой операции Safari начинал работать быстрее, но эффект от ускорения сводился на нет раздражающей необходимостью повторно вводить пароли и перестраивать базу данных для функции автоматического заполнения. Как уже говорилось, Safari 3.0 снимает эту проблему, позволяя пользователям выбирать, какую информацию следует сбросить, а какая должна быть сохранена. Чтобы воспользоваться этой возможностью, выберите команду Reset Safari… из меню Safari, и на экране появится окно с широким набором опций (рис. 2.26).
Большинство из опций, доступных в этом окне, самоочевидны. По правде говоря, вы не испытаете никаких особенных неудобств, если очистите кэш, значки для избранных сайтов (favicons) и окно загрузок.
Очистка файлов cookie может привести к неожиданностям, когда вы в следующий раз посетите сайт, на котором вы обычно зарегистрированы (вам потребуется снова зарегистрироваться). Сброс сохраненных паролей и информации, используемой функцией AutoFill, приведет к необходимости повторно вводить пароли и всю информацию, которая при заполнении форм обычно вводится автоматически. Полный сброс всей информации, сохраняемой Safari, дает некоторый выигрыш по безопасности, однако использование гостевой учетной записи (Guest) гораздо удобнее и лучше защищает вашу конфиденциальную информацию.
По всей вероятности, вы будете пользоваться опцией Reset Safari… довольно часто. При этом следует отметить, что для этой цели гораздо удобнее создать командный сценарий на языке AppleScript и выполнять эту операцию автоматически. Пример командного сценария, предназначенного для этой задачи, приведен в листинге.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869// Командный сценарий на языке Apple Script // для автоматического сброса сохраненной информации Safaritry tell application «Finder» — Let’s get the name of the current user set myUserName to (do shell script «whoami») — Is Safari running? set safariIsRunning to false if (do shell script «ps -U » & myUserName) contains «Safari.app/Contents/MacOS/Safari» then set safariIsRunning to true — Let’s quit Safari or the cleaning will not take effect if safariIsRunning then tell application «Safari» to quit — Let’s delete the application’s cookies try set deleteCookies to 1 do shell script «rm -r /Users/» & myUserName & «/Library/Cookies/» on error set deleteCookies to 0 end try — Let’s delete the application’s caches try set deleteCaches to 1 do shell script «rm -r /Users/» & myUserName & «/Library/Caches/Safari/» on error set deleteCaches to 0 end try — Let’s delete the application’s icons try set deleteIcons to 1 do shell script «rm -r /Users/» & myUserName & «/Library/Safari/Icons/» on error set deleteIcons to 0 end try — Let’s delete the application’s history try set deleteHistory to 1 do shell script «rm -r /Users/» & myUserName & «/Library/Safari/History.plist» on error set deleteHistory to 0 end try — Let’s delete the application’s downloads folder try set deleteDownloads to 1 do shell script «rm -r /Users/» & myUserName & «/Library/Safari/Downloads.plist» on error set deleteDownloads to 0 end try — Let’s reopen Safari if it was running when the script was called — Note: this does not always work! Eeek! if safariIsRunning then tell application «Safari» to activate — Let’s conclude by letting the user know everything is OK end tell if safariIsRunning then tell application «Safari» to display alert «Safari has now been cleaned up.» message «You can now resume using the application.» as informational buttons «OK» default button 1 giving up after 2 else tell application «Finder» to display alert «Safari has now been cleaned up.» message «Changes have already taken effect and will be retained the next time you launch the application.» as informational buttons «OK» default button 1 end if on error TheError tell application «Finder» to display alert «Safari could not be cleaned because of a script error.» message «Below is the error returned by Apple Script, which may assist you in troubleshooting this issue:» & return & return & TheError buttons «OK» default button 1 as warningend try
Данный сценарий закрывает браузер Safari и начинает удалять файлы cookie, кэши, историю значков и загрузок. Разумеется, если вы собираетесь выполнять сценарий часто, его следует сохранить, в противном случае использование встроенных возможностей Safari, описанных ранее в этом рецепте, будет гораздо удобнее, чем каждый раз вводить текст сценария вручную. Поэтому давайте отладим скрипт и максимально приспособим его к вашим потребностям. Воспользуемся для этой цели встроенным приложением Apple Script Editor (ApplicationsApple ScriptScript Editor.app). Запустите этот редактор, и на экране появится пустое окно, в которое следует ввести текст сценария из листинга.
Если вы человек смелый, вы можете просто скомпилировать этот скрипт, но лучше всего запустить его хотя бы один раз из окна редактора с тем, чтобы выполнить проверку ошибок. Нажмите кнопку Run (рис. 2.27), и приложение Script Editor выполнит сценарий пошагово, с переформатированием текста и выводом уведомлений о выполненных операциях.
Если вы удовлетворены тем, как работает этот сценарий, возможно, вы захотите преобразовать его в нечто более пригодное для частого использования. Выберите команду Save As… из меню File, в поле раскрывающегося списка File Format выберите опцию Application, присвойте вашему новому приложению имя, после чего вы сможете запускать это приложение каждый раз, когда вам потребуется выполнить очистку сохраненной информации Safari (рис. 2.28).