| Index: chrome/browser/media/router/media_source_helper.cc
|
| diff --git a/chrome/browser/media/router/media_source_helper.cc b/chrome/browser/media/router/media_source_helper.cc
|
| index 2365cdd9caa0a19eab37a22a437605b513bf66fe..7c618b98484f291892191195998c60b5550a704d 100644
|
| --- a/chrome/browser/media/router/media_source_helper.cc
|
| +++ b/chrome/browser/media/router/media_source_helper.cc
|
| @@ -22,7 +22,8 @@ constexpr char kTabMediaUrnFormat[] = "urn:x-org.chromium.media:source:tab:%d";
|
| constexpr char kDesktopMediaUrn[] = "urn:x-org.chromium.media:source:desktop";
|
| constexpr char kTabRemotingUrnFormat[] =
|
| "urn:x-org.chromium.media:source:tab_content_remoting:%d";
|
| -
|
| +constexpr char kCastPresentationUrlDomain[] = "google.com";
|
| +constexpr char kCastPresentationUrlPath[] = "/cast";
|
| } // namespace
|
|
|
| MediaSource MediaSourceForTab(int tab_id) {
|
| @@ -59,6 +60,17 @@ bool IsMirroringMediaSource(const MediaSource& source) {
|
| IsTabMirroringMediaSource(source);
|
| }
|
|
|
| +bool CanConnectToMediaSource(const MediaSource& source) {
|
| + // compare host, port, scheme, and path prefix for source.url()
|
| + if (!source.url().SchemeIs(url::kHttpsScheme) ||
|
| + !source.url().DomainIs(kCastPresentationUrlDomain) ||
|
| + (!source.url().has_path() ||
|
| + source.url().path() != kCastPresentationUrlPath))
|
| + return false;
|
| +
|
| + return true;
|
| +}
|
| +
|
| int TabIdFromMediaSource(const MediaSource& source) {
|
| int tab_id;
|
| if (sscanf(source.id().c_str(), kTabMediaUrnFormat, &tab_id) == 1)
|
|
|