cast_streaming.cc 1.5 KB

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