Home | History | Annotate | Download | only in web_request
      1 // Copyright 2014 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 EXTENSIONS_BROWSER_API_WEB_REQUEST_WEB_REQUEST_EVENT_ROUTER_DELEGATE_H_
      6 #define EXTENSIONS_BROWSER_API_WEB_REQUEST_WEB_REQUEST_EVENT_ROUTER_DELEGATE_H_
      7 
      8 #include <string>
      9 
     10 #include "base/values.h"
     11 
     12 class GURL;
     13 
     14 namespace base {
     15 class DictionaryValue;
     16 }  // namspace base
     17 
     18 namespace content {
     19 class BrowserContext;
     20 }  // namespace content
     21 
     22 namespace net {
     23 class URLRequest;
     24 }  // namspace net
     25 
     26 namespace extensions {
     27 
     28 // A delegate class of WebRequestApi that are not a part of chrome.
     29 class WebRequestEventRouterDelegate {
     30  public:
     31   WebRequestEventRouterDelegate();
     32   virtual ~WebRequestEventRouterDelegate();
     33 
     34   // Looks up the tab and window ID for a given request.
     35   // Called on the IO thread.
     36   virtual void ExtractExtraRequestDetails(
     37       net::URLRequest* request, base::DictionaryValue* out) = 0;
     38 
     39   // Called to check extra parameters (e.g., tab_id, windown_id) when filtering
     40   // event listeners.
     41   virtual bool OnGetMatchingListenersImplCheck(
     42       int tab_id, int window_id, net::URLRequest* request);
     43 
     44   // Logs an extension action.
     45   virtual void LogExtensionActivity(
     46       content::BrowserContext* browser_context,
     47       bool is_incognito,
     48       const std::string& extension_id,
     49       const GURL& url,
     50       const std::string& api_call,
     51        scoped_ptr<base::DictionaryValue> details) = 0;
     52 
     53   DISALLOW_COPY_AND_ASSIGN(WebRequestEventRouterDelegate);
     54 };
     55 
     56 }  // namespace extensions
     57 
     58 #endif  // EXTENSIONS_BROWSER_API_WEB_REQUEST_WEB_REQUEST_EVENT_ROUTER_DELEGATE_H_
     59