Home | History | Annotate | Download | only in glue
      1 // Copyright (c) 2010 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 
      5 #ifndef WEBKIT_GLUE_SITE_ISOLATION_METRICS_H_
      6 #define WEBKIT_GLUE_SITE_ISOLATION_METRICS_H_
      7 
      8 #include "third_party/WebKit/Source/WebKit/chromium/public/WebURLRequest.h"
      9 
     10 namespace WebKit {
     11 class WebFrame;
     12 class WebURL;
     13 class WebURLResponse;
     14 }
     15 
     16 namespace webkit_glue {
     17 
     18 // Metrics to check the feasability of blocking cross-site requests that
     19 // a renderer shouldn't be making (in case we try to move cross-site frames
     20 // into their own process someday). We're erring on the side of counting more
     21 // mime-types then we strictly need (we'd only consider blocking cross-site
     22 // requests with types similar to HTML, XML, or JSON).
     23 class SiteIsolationMetrics {
     24  public:
     25   static void AddRequest(unsigned identifier,
     26                          WebKit::WebURLRequest::TargetType target_type);
     27   static bool AllowedByAccessControlHeader(
     28       WebKit::WebFrame* frame, const WebKit::WebURLResponse& response);
     29   static void LogMimeTypeForCrossOriginRequest(
     30       WebKit::WebFrame* frame,
     31       unsigned identifier,
     32       const WebKit::WebURLResponse& response);
     33   static void SniffCrossOriginHTML(const WebKit::WebURL& response_url,
     34                                    const char* data,
     35                                    int len);
     36   static void RemoveCompletedResponse(const WebKit::WebURL& response_url);
     37 };
     38 
     39 }  // namespace webkit_glue
     40 
     41 #endif  // WEBKIT_GLUE_SITE_ISOLATION_METRICS_H_
     42