123456789101112131415161718192021222324252627282930313233343536 |
- // Copyright 2020 The Chromium Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
- #include "chromecast/renderer/activity_filtering_websocket_handshake_throttle.h"
- #include "base/strings/stringprintf.h"
- #include "third_party/blink/public/platform/web_string.h"
- #include "url/gurl.h"
- namespace chromecast {
- ActivityFilteringWebSocketHandshakeThrottle::
- ActivityFilteringWebSocketHandshakeThrottle(ActivityUrlFilter* filter)
- : url_filter_(filter) {}
- ActivityFilteringWebSocketHandshakeThrottle::
- ~ActivityFilteringWebSocketHandshakeThrottle() = default;
- void ActivityFilteringWebSocketHandshakeThrottle::ThrottleHandshake(
- const blink::WebURL& url,
- blink::WebSocketHandshakeThrottle::OnCompletion completion_callback) {
- GURL gurl = GURL(url);
- // Pass through allowed URLs, block otherwise.
- if (url_filter_->UrlMatchesWhitelist(gurl)) {
- std::move(completion_callback).Run(absl::nullopt);
- return;
- }
- std::move(completion_callback)
- .Run(blink::WebString::FromUTF8(base::StringPrintf(
- "WebSocket connection to %s is blocked", gurl.spec().c_str())));
- }
- } // namespace chromecast
|