Skip to content

Commit 07ac8d1

Browse files
Mark Rowechromeos-ci-prod
authored andcommitted
Use Mojo for communicating with web_app_shortcut_copier
This makes it possible for web_app_shortcut_copier to reliably verify the identity of the process that it is performing work on behalf of (http://go/peer-process-validation). `WebAppShortcutCreator` moves away from passing the source and destination path to be copied to `web_app_shortcut_copier` via command line arguments. Instead a Mojo invitation is passed via the command line and a synchronous call is used to request the copy be performed. `web_app_shortcut_copier` is updated to recover the Mojo endpoint from its command line and process the `CopyWebAppShortcut` message. The copier exits after a message has been processed. During initialization, `web_app_shortcut_copier` sets a `ProcessRequirement` to prevent anyone other than the browser process from establishing a Mojo connection with it. Enforcement of the requirement by `MachPortRendezvousClientMac` is currently gated by a feature flag. This needs to be enabled by default before the feature flag that enables use of `web_app_shortcut_copier` can be enabled. Bug: 361784552 Change-Id: I3a9b5128d21223bcd03a4acda2491bb1e42ed896 Include-Ci-Only-Tests: true Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5924245 Reviewed-by: Nasko Oskov <[email protected]> Reviewed-by: Alex Gough <[email protected]> Reviewed-by: Marijn Kruisselbrink <[email protected]> Auto-Submit: Mark Rowe <[email protected]> Commit-Queue: Mark Rowe <[email protected]> Cr-Commit-Position: refs/heads/main@{#1374160} CrOS-Libchrome-Original-Commit: 3806c10c31140d32997718e7699255fc30c1abc1
1 parent ca12a7b commit 07ac8d1

File tree

1 file changed

+9
-0
lines changed

1 file changed

+9
-0
lines changed

mojo/public/cpp/bindings/sync_call_restrictions.h

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,12 @@ class HostFrameSinkManager;
4848
class HostGpuMemoryBufferManager;
4949
} // namespace viz
5050

51+
#if BUILDFLAG(IS_MAC)
52+
namespace web_app {
53+
class WebAppShortcutCopierSyncCallHelper;
54+
} // namespace web_app
55+
#endif
56+
5157
namespace mojo {
5258
class ScopedAllowSyncCallForTesting;
5359

@@ -134,6 +140,9 @@ class COMPONENT_EXPORT(MOJO_CPP_BINDINGS) SyncCallRestrictions {
134140
friend class content::StreamTextureFactory;
135141
#if BUILDFLAG(IS_WIN)
136142
friend class content::DCOMPTextureFactory;
143+
#endif
144+
#if BUILDFLAG(IS_MAC)
145+
friend class web_app::WebAppShortcutCopierSyncCallHelper;
137146
#endif
138147
// END ALLOWED USAGE.
139148

0 commit comments

Comments
 (0)