Upload upstream chromium 108.0.5359.1
[platform/framework/web/chromium-efl.git] / fuchsia_web / cast_streaming / cast_streaming.cc
1 // Copyright 2022 The Chromium Authors
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "fuchsia_web/cast_streaming/cast_streaming.h"
6
7 #include <string>
8
9 #include "base/fuchsia/file_utils.h"
10 #include "base/path_service.h"
11
12 namespace {
13
14 constexpr char kContentDirectoryRelativePath[] =
15     "fuchsia_web/cast_streaming/data";
16 constexpr char kCastStreamingContentDirectoryName[] = "cast-streaming";
17
18 // Returns the content directories for the Cast Streaming application.
19 std::vector<fuchsia::web::ContentDirectoryProvider>
20 GetCastStreamingContentDirectories() {
21   base::FilePath pkg_path;
22   bool success = base::PathService::Get(base::DIR_ASSETS, &pkg_path);
23   DCHECK(success);
24
25   fuchsia::web::ContentDirectoryProvider content_directory;
26   content_directory.set_directory(base::OpenDirectoryHandle(
27       pkg_path.AppendASCII(kContentDirectoryRelativePath)));
28   content_directory.set_name(kCastStreamingContentDirectoryName);
29   std::vector<fuchsia::web::ContentDirectoryProvider> content_directories;
30   content_directories.emplace_back(std::move(content_directory));
31
32   return content_directories;
33 }
34
35 }  // namespace
36
37 const char kCastStreamingWebUrl[] =
38     "fuchsia-dir://cast-streaming/receiver.html";
39
40 void ApplyCastStreamingContextParams(
41     fuchsia::web::CreateContextParams* params) {
42   *params->mutable_features() |= fuchsia::web::ContextFeatureFlags::NETWORK;
43
44   // Set the content directory with the streaming app.
45   params->set_content_directories(GetCastStreamingContentDirectories());
46 }