| -------------------------------------------------------------------------------- |
| -- |
| -- |
| -- Licensed to the Apache Software Foundation (ASF) under one or more |
| -- contributor license agreements. See the NOTICE file distributed with |
| -- this work for additional information regarding copyright ownership. |
| -- The ASF licenses this file to You under the Apache License, Version 2.0 |
| -- (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.apache.org/licenses/LICENSE-2.0 |
| -- |
| -- Unless required by applicable law or agreed to in writing, software |
| -- distributed under the License is distributed on an "AS IS" BASIS, |
| -- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| -- See the License for the specific language governing permissions and |
| -- limitations under the License. |
| -- |
| -------------------------------------------------------------------------------- |
| |
| -- Note, this only works on OSX 10.4 and up |
| -- Returns the name of the default browser, e.g. "Safari", "Firefox", "Camino"; or "" if not known |
| set p to POSIX path of (path to preferences) & "com.apple.LaunchServices.plist" |
| tell application "System Events" to tell property list item "LSHandlerRoleAll" of (property list item 1 of property list item "LSHandlers" of property list file p whose value contains "http") to if exists then |
| set v to value -- now v is, for example, "com.apple.safari" |
| -- "application file id v" returns a file; so we are setting, for example, |
| -- "n" to "Safari.app" and "e" to "app" |
| tell application "Finder" to set {name:n, name extension:e} to application file id v |
| -- strip off the ".app" extension |
| tell (count e) + 1 to return n's text 1 thru -(1 mod it + it) |
| end if |
| |
| -- if we get here, we couldn't find an "http" handler, so we don't know the default browser |
| "" |