mirror of
https://github.com/SerenityOS/serenity
synced 2024-10-15 20:33:10 +00:00
LaunchServer+Base: Stop using Browser as default protocol handler
Browser supports very few protocols (http, https, gemini, file) at the moment, so there's no point in using it as a catch-all and default protocol handler. I added an explicit association for gemini to /bin/Browser instead. This stops Desktop::Launcher::open() from reporting success for any URL, which really isn't the case (Browser shows an error page...).
This commit is contained in:
parent
af007ce126
commit
bed240d4b3
|
@ -15,7 +15,7 @@ sheets=/bin/Spreadsheet
|
||||||
*=/bin/TextEditor
|
*=/bin/TextEditor
|
||||||
|
|
||||||
[Protocol]
|
[Protocol]
|
||||||
irc=/bin/IRCClient
|
gemini=/bin/Browser
|
||||||
http=/bin/Browser
|
http=/bin/Browser
|
||||||
https=/bin/Browser
|
https=/bin/Browser
|
||||||
*=/bin/Browser
|
irc=/bin/IRCClient
|
||||||
|
|
|
@ -9,4 +9,4 @@ Category=Internet
|
||||||
|
|
||||||
[Launcher]
|
[Launcher]
|
||||||
FileTypes=html,htm,md
|
FileTypes=html,htm,md
|
||||||
Protocols=http,https
|
Protocols=gemini,http,https
|
||||||
|
|
|
@ -196,7 +196,7 @@ bool Launcher::open_url(const URL& url, const String& handler_name)
|
||||||
if (url.protocol() == "file")
|
if (url.protocol() == "file")
|
||||||
return open_file_url(url);
|
return open_file_url(url);
|
||||||
|
|
||||||
return open_with_user_preferences(m_protocol_handlers, url.protocol(), url.to_string(), "/bin/Browser");
|
return open_with_user_preferences(m_protocol_handlers, url.protocol(), url.to_string());
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Launcher::open_with_handler_name(const URL& url, const String& handler_name)
|
bool Launcher::open_with_handler_name(const URL& url, const String& handler_name)
|
||||||
|
@ -252,9 +252,11 @@ bool Launcher::open_with_user_preferences(const HashMap<String, String>& user_pr
|
||||||
if (program_path.has_value())
|
if (program_path.has_value())
|
||||||
return spawn(program_path.value(), argument);
|
return spawn(program_path.value(), argument);
|
||||||
|
|
||||||
// Absolute worst case, try the provided default
|
// Absolute worst case, try the provided default program, if any
|
||||||
|
if (!default_program.is_empty())
|
||||||
|
return spawn(default_program, argument);
|
||||||
|
|
||||||
return spawn(default_program, argument);
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
void Launcher::for_each_handler(const String& key, HashMap<String, String>& user_preference, Function<bool(const Handler&)> f)
|
void Launcher::for_each_handler(const String& key, HashMap<String, String>& user_preference, Function<bool(const Handler&)> f)
|
||||||
|
|
|
@ -72,7 +72,7 @@ private:
|
||||||
void for_each_handler(const String& key, HashMap<String, String>& user_preferences, Function<bool(const Handler&)> f);
|
void for_each_handler(const String& key, HashMap<String, String>& user_preferences, Function<bool(const Handler&)> f);
|
||||||
void for_each_handler_for_path(const String&, Function<bool(const Handler&)> f);
|
void for_each_handler_for_path(const String&, Function<bool(const Handler&)> f);
|
||||||
bool open_file_url(const URL&);
|
bool open_file_url(const URL&);
|
||||||
bool open_with_user_preferences(const HashMap<String, String>& user_preferences, const String key, const String argument, const String default_program);
|
bool open_with_user_preferences(const HashMap<String, String>& user_preferences, const String key, const String argument, const String default_program = {});
|
||||||
bool open_with_handler_name(const URL&, const String& handler_name);
|
bool open_with_handler_name(const URL&, const String& handler_name);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue