Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[url_launcher] Add desktop support #41721

Closed
3 tasks done
stuartmorgan opened this issue Oct 1, 2019 · 11 comments · Fixed by flutter/plugins#3024
Closed
3 tasks done

[url_launcher] Add desktop support #41721

stuartmorgan opened this issue Oct 1, 2019 · 11 comments · Fixed by flutter/plugins#3024
Assignees
Labels
a: desktop Running on desktop good first issue Relatively approachable for first-time contributors p: url_launcher Plugin to launch external applications P1 High-priority issues at the top of the work list package flutter/packages repository. See also p: labels. platform-windows Building on or for Windows specifically

Comments

@stuartmorgan
Copy link
Contributor

stuartmorgan commented Oct 1, 2019

Filing this a consolidate bug for all three desktop platform since there are already FDE implementations for all three. This bug is to track moving them over to flutter/plugins as each platform's plugin tooling and APIs stabilize:

  • macOS
  • Windows
  • Linux
@stuartmorgan stuartmorgan added plugin platform-mac Building on or for macOS specifically platform-windows Building on or for Windows specifically platform-linux Building on or for Linux specifically p: url_launcher Plugin to launch external applications a: desktop Running on desktop labels Oct 1, 2019
@stuartmorgan
Copy link
Contributor Author

Assigning myself for macOS since that will be ready to move very soon.

@stuartmorgan stuartmorgan self-assigned this Oct 1, 2019
stuartmorgan added a commit to stuartmorgan/plugins that referenced this issue Oct 14, 2019
Follows the structure established in flutter#2119 to add a federated macOS
implementation of the url_launcher plugin.

Fixes macOS portion of flutter/flutter#41721
@stuartmorgan stuartmorgan removed their assignment Jan 21, 2020
@stuartmorgan stuartmorgan added this to To do in Windows Preview via automation Mar 3, 2020
@stuartmorgan stuartmorgan added this to To do in Linux Preview via automation Mar 3, 2020
@stuartmorgan
Copy link
Contributor Author

Blocked on #55327 for Linux. Once that's done we can easily do this as a Dart-only "plugin".

@stuartmorgan
Copy link
Contributor Author

The first Dart-only Linux plugin (path_provider+path_provider_linux) is landed and published, so doing the Linux version of url_launcher should be straightforward; it just needs to do this using Dart's Process.

@stuartmorgan stuartmorgan added the good first issue Relatively approachable for first-time contributors label Jun 3, 2020
@stuartmorgan stuartmorgan added this to the 1.20 - June 2020 milestone Jun 9, 2020
@stuartmorgan stuartmorgan added the P1 High-priority issues at the top of the work list label Jun 9, 2020
@stuartmorgan stuartmorgan removed this from the 1.20 - June 2020 milestone Jun 9, 2020
@robert-ancell robert-ancell moved this from To do to In progress in Linux Preview Jun 10, 2020
@robert-ancell
Copy link
Contributor

The first Dart-only Linux plugin (path_provider+path_provider_linux) is landed and published, so doing the Linux version of url_launcher should be straightforward; it just needs to do this using Dart's Process.

This may actually be more reliable/simpler with the GTK shell to implement in C++ with g_app_info_launch_default_for_uri().

@stuartmorgan
Copy link
Contributor Author

Ah, good to know. It looks like there's also g_app_info_get_default_for_uri_scheme as a reliable way to implement canLaunch, which we currently don't have.

This seems like a good candidate for a Dart-with-FFI-to-system-library "plugin" then.

@robert-ancell
Copy link
Contributor

I actually linked in the wrong API call there, that's the low level API but we should use gtk_show_uri_on_window(). That can connect the window to the app (though I don't know how many apps make use of it). We can still use g_app_info_get_default_for_uri_scheme for canLaunch. So it would have to be a full plugin and not use FFI.

@stuartmorgan
Copy link
Contributor Author

That can connect the window to the app

I'm not sure we want that; the behavior on all the other platforms is that it fully switches to that application.

@robert-ancell
Copy link
Contributor

robert-ancell commented Jun 10, 2020

That can connect the window to the app

I'm not sure we want that; the behavior on all the other platforms is that it fully switches to that application.

I don't mean it embeds the window, but it passes the window (i.e. XID/Wayland handle) as part of the launch context. I think the intention is for this information to be provided to the window manager to help with focus stealing and window placement.

stuartmorgan added a commit to flutter/plugins that referenced this issue Jul 7, 2020
Adds an endorsement for url_launcher_linux, so that Linux is supported
automatically.

Part of flutter/flutter#41721
agent3bood pushed a commit to agent3bood/flutter-plugins that referenced this issue Jul 10, 2020
Adds url_launcher_linux, the federated implementation of url_launcher.

Not yet endorsed by url_launcher

Part of flutter/flutter#41721
agent3bood pushed a commit to agent3bood/flutter-plugins that referenced this issue Jul 10, 2020
Adds an endorsement for url_launcher_linux, so that Linux is supported
automatically.

Part of flutter/flutter#41721
ferrazrx added a commit to ferrazrx/plugins that referenced this issue Jul 16, 2020
Adds url_launcher_linux, the federated implementation of url_launcher.

Not yet endorsed by url_launcher

Part of flutter/flutter#41721
ferrazrx added a commit to ferrazrx/plugins that referenced this issue Jul 16, 2020
Adds an endorsement for url_launcher_linux, so that Linux is supported
automatically.

Part of flutter/flutter#41721
@gspencergoog gspencergoog removed platform-linux Building on or for Linux specifically platform-mac Building on or for macOS specifically labels Jul 29, 2020
@gspencergoog gspencergoog changed the title [url_launcher] Add desktop support [url_launcher] Add desktop support on Windows Jul 29, 2020
@csells csells moved this from To do to In progress in Windows Preview Sep 1, 2020
@stuartmorgan stuartmorgan self-assigned this Sep 9, 2020
@stuartmorgan stuartmorgan added this to the 1.23 - September 2020 milestone Sep 9, 2020
@stuartmorgan stuartmorgan changed the title [url_launcher] Add desktop support on Windows [url_launcher] Add desktop support Sep 10, 2020
stuartmorgan added a commit to flutter/plugins that referenced this issue Sep 12, 2020
Adds a federated Windows implementation of url_launcher (not yet endorsed).

Since this is the first C++ plugin, this also adds a .clang-format file to the repo root for formatting C++ plugins.

Part of flutter/flutter#41721 (will need follow-up to endorse it in url_launcher)
@stuartmorgan stuartmorgan moved this from In progress to In review in Windows Preview Sep 14, 2020
Windows Preview automation moved this from In review to Done Sep 15, 2020
danielroek pushed a commit to Baseflow/flutter-plugins that referenced this issue Sep 18, 2020
Adds a federated Windows implementation of url_launcher (not yet endorsed).

Since this is the first C++ plugin, this also adds a .clang-format file to the repo root for formatting C++ plugins.

Part of flutter/flutter#41721 (will need follow-up to endorse it in url_launcher)
jorgefspereira pushed a commit to jorgefspereira/plugins_flutter that referenced this issue Oct 10, 2020
Adds url_launcher_linux, the federated implementation of url_launcher.

Not yet endorsed by url_launcher

Part of flutter/flutter#41721
jorgefspereira pushed a commit to jorgefspereira/plugins_flutter that referenced this issue Oct 10, 2020
Adds an endorsement for url_launcher_linux, so that Linux is supported
automatically.

Part of flutter/flutter#41721
jorgefspereira pushed a commit to jorgefspereira/plugins_flutter that referenced this issue Oct 10, 2020
Adds a federated Windows implementation of url_launcher (not yet endorsed).

Since this is the first C++ plugin, this also adds a .clang-format file to the repo root for formatting C++ plugins.

Part of flutter/flutter#41721 (will need follow-up to endorse it in url_launcher)
FlutterSu pushed a commit to FlutterSu/flutter-plugins that referenced this issue Nov 20, 2020
Adds url_launcher_linux, the federated implementation of url_launcher.

Not yet endorsed by url_launcher

Part of flutter/flutter#41721
FlutterSu pushed a commit to FlutterSu/flutter-plugins that referenced this issue Nov 20, 2020
Adds an endorsement for url_launcher_linux, so that Linux is supported
automatically.

Part of flutter/flutter#41721
FlutterSu pushed a commit to FlutterSu/flutter-plugins that referenced this issue Nov 20, 2020
Adds a federated Windows implementation of url_launcher (not yet endorsed).

Since this is the first C++ plugin, this also adds a .clang-format file to the repo root for formatting C++ plugins.

Part of flutter/flutter#41721 (will need follow-up to endorse it in url_launcher)
@github-actions
Copy link

This thread has been automatically locked since there has not been any recent activity after it was closed. If you are still experiencing a similar issue, please open a new bug, including the output of flutter doctor -v and a minimal reproduction of the issue.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Aug 12, 2021
@flutter-triage-bot flutter-triage-bot bot added the package flutter/packages repository. See also p: labels. label Jul 5, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
a: desktop Running on desktop good first issue Relatively approachable for first-time contributors p: url_launcher Plugin to launch external applications P1 High-priority issues at the top of the work list package flutter/packages repository. See also p: labels. platform-windows Building on or for Windows specifically
Projects
No open projects
Development

Successfully merging a pull request may close this issue.

3 participants