Update To 11.40.268.0
[platform/framework/web/crosswalk.git] / src / extensions / browser / api / web_request / web_request_event_router_delegate.h
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);
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) {};
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_