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