Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(352)

Side by Side Diff: chrome/browser/extensions/extension_renderer_state.h

Issue 132233022: Fix chrome.webRequest.onBeforeRequest for requests coming from NPAPI plugin processes. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: sync Created 6 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CHROME_BROWSER_EXTENSIONS_EXTENSION_RENDERER_STATE_H_ 5 #ifndef CHROME_BROWSER_EXTENSIONS_EXTENSION_RENDERER_STATE_H_
6 #define CHROME_BROWSER_EXTENSIONS_EXTENSION_RENDERER_STATE_H_ 6 #define CHROME_BROWSER_EXTENSIONS_EXTENSION_RENDERER_STATE_H_
7 7
8 #include <map> 8 #include <map>
9 #include <set> 9 #include <set>
10 #include <string> 10 #include <string>
11 #include <utility> 11 #include <utility>
12 12
13 #include "base/basictypes.h" 13 #include "base/basictypes.h"
14 #include "base/memory/singleton.h" 14 #include "base/memory/singleton.h"
15 15
16 class WebViewGuest; 16 class WebViewGuest;
17 17
18 namespace content {
19 class ResourceRequestInfo;
20 }
21
18 // This class keeps track of renderer state for use on the IO thread. All 22 // This class keeps track of renderer state for use on the IO thread. All
19 // methods should be called on the IO thread except for Init and Shutdown. 23 // methods should be called on the IO thread except for Init and Shutdown.
20 class ExtensionRendererState { 24 class ExtensionRendererState {
21 public: 25 public:
22 struct WebViewInfo { 26 struct WebViewInfo {
23 int embedder_process_id; 27 int embedder_process_id;
24 int instance_id; 28 int instance_id;
25 std::string partition_id; 29 std::string partition_id;
26 std::string extension_id; 30 std::string extension_id;
27 bool allow_chrome_extension_urls; 31 bool allow_chrome_extension_urls;
28 }; 32 };
29 33
30 static ExtensionRendererState* GetInstance(); 34 static ExtensionRendererState* GetInstance();
31 35
32 // These are called on the UI thread to start and stop listening to tab 36 // These are called on the UI thread to start and stop listening to tab
33 // notifications. 37 // notifications.
34 void Init(); 38 void Init();
35 void Shutdown(); 39 void Shutdown();
36 40
37 // Looks up the information for the embedder <webview> for a given render 41 // Looks up the information for the embedder <webview> for a given render
38 // view, if one exists. Called on the IO thread. 42 // view, if one exists. Called on the IO thread.
39 bool GetWebViewInfo(int guest_process_id, int guest_routing_id, 43 bool GetWebViewInfo(int guest_process_id, int guest_routing_id,
40 WebViewInfo* webview_info); 44 WebViewInfo* webview_info);
41 45
42 // Looks up the tab and window ID for a given render view. Returns true 46 // Looks up the tab and window ID for a given request. Returns true if we have
43 // if we have the IDs in our map. Called on the IO thread. 47 // the IDs in our map. Called on the IO thread.
44 bool GetTabAndWindowId( 48 bool GetTabAndWindowId(
45 int render_process_host_id, int routing_id, int* tab_id, int* window_id); 49 const content::ResourceRequestInfo* info, int* tab_id, int* window_id);
46 50
47 // Returns true if the given renderer is used by webviews. 51 // Returns true if the given renderer is used by webviews.
48 bool IsWebViewRenderer(int render_process_id); 52 bool IsWebViewRenderer(int render_process_id);
49 53
50 private: 54 private:
51 class RenderViewHostObserver; 55 class RenderViewHostObserver;
52 class TabObserver; 56 class TabObserver;
53 friend class TabObserver; 57 friend class TabObserver;
54 friend class WebViewGuest; 58 friend class WebViewGuest;
55 friend struct DefaultSingletonTraits<ExtensionRendererState>; 59 friend struct DefaultSingletonTraits<ExtensionRendererState>;
(...skipping 18 matching lines...) Expand all
74 void RemoveWebView(int render_process_host_id, int routing_id); 78 void RemoveWebView(int render_process_host_id, int routing_id);
75 79
76 TabObserver* observer_; 80 TabObserver* observer_;
77 TabAndWindowIdMap map_; 81 TabAndWindowIdMap map_;
78 WebViewInfoMap webview_info_map_; 82 WebViewInfoMap webview_info_map_;
79 83
80 DISALLOW_COPY_AND_ASSIGN(ExtensionRendererState); 84 DISALLOW_COPY_AND_ASSIGN(ExtensionRendererState);
81 }; 85 };
82 86
83 #endif // CHROME_BROWSER_EXTENSIONS_EXTENSION_RENDERER_STATE_H_ 87 #endif // CHROME_BROWSER_EXTENSIONS_EXTENSION_RENDERER_STATE_H_
OLDNEW
« no previous file with comments | « chrome/browser/extensions/api/web_request/web_request_api.cc ('k') | chrome/browser/extensions/extension_renderer_state.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698