| // Copyright (c) 2010 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. |
| |
| #ifndef WEBKIT_GLUE_SITE_ISOLATION_METRICS_H_ |
| #define WEBKIT_GLUE_SITE_ISOLATION_METRICS_H_ |
| |
| #include "third_party/WebKit/Source/WebKit/chromium/public/WebURLRequest.h" |
| |
| namespace WebKit { |
| class WebFrame; |
| class WebURL; |
| class WebURLResponse; |
| } |
| |
| namespace webkit_glue { |
| |
| // Metrics to check the feasability of blocking cross-site requests that |
| // a renderer shouldn't be making (in case we try to move cross-site frames |
| // into their own process someday). We're erring on the side of counting more |
| // mime-types then we strictly need (we'd only consider blocking cross-site |
| // requests with types similar to HTML, XML, or JSON). |
| class SiteIsolationMetrics { |
| public: |
| static void AddRequest(unsigned identifier, |
| WebKit::WebURLRequest::TargetType target_type); |
| static bool AllowedByAccessControlHeader( |
| WebKit::WebFrame* frame, const WebKit::WebURLResponse& response); |
| static void LogMimeTypeForCrossOriginRequest( |
| WebKit::WebFrame* frame, |
| unsigned identifier, |
| const WebKit::WebURLResponse& response); |
| static void SniffCrossOriginHTML(const WebKit::WebURL& response_url, |
| const char* data, |
| int len); |
| static void RemoveCompletedResponse(const WebKit::WebURL& response_url); |
| }; |
| |
| } // namespace webkit_glue |
| |
| #endif // WEBKIT_GLUE_SITE_ISOLATION_METRICS_H_ |