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.
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_
10 #include "base/values.h"
15 class DictionaryValue
;
20 } // namespace content
26 namespace extensions
{
28 // A delegate class of WebRequestApi that are not a part of chrome.
29 class WebRequestEventRouterDelegate
{
31 WebRequestEventRouterDelegate();
32 virtual ~WebRequestEventRouterDelegate();
34 // Looks up the tab and window ID for a given request.
35 // Called on the IO thread.
36 virtual void ExtractExtraRequestDetails(const net::URLRequest
* request
,
37 base::DictionaryValue
* out
);
39 // Called to check extra parameters (e.g., tab_id, windown_id) when filtering
41 virtual bool OnGetMatchingListenersImplCheck(int tab_id
,
43 const net::URLRequest
* request
);
45 // Logs an extension action.
46 virtual void LogExtensionActivity(content::BrowserContext
* browser_context
,
48 const std::string
& extension_id
,
50 const std::string
& api_call
,
51 scoped_ptr
<base::DictionaryValue
> details
) {
55 DISALLOW_COPY_AND_ASSIGN(WebRequestEventRouterDelegate
);
58 } // namespace extensions
60 #endif // EXTENSIONS_BROWSER_API_WEB_REQUEST_WEB_REQUEST_EVENT_ROUTER_DELEGATE_H_