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

Side by Side Diff: chrome/browser/plugins/plugin_info_message_filter.h

Issue 2378573005: [HBD] Blanket BLOCK on all non-HTTP(s) and non-FILE URLs for Flash. (Closed)
Patch Set: fix dat merge Created 4 years, 2 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
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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_PLUGINS_PLUGIN_INFO_MESSAGE_FILTER_H_ 5 #ifndef CHROME_BROWSER_PLUGINS_PLUGIN_INFO_MESSAGE_FILTER_H_
6 #define CHROME_BROWSER_PLUGINS_PLUGIN_INFO_MESSAGE_FILTER_H_ 6 #define CHROME_BROWSER_PLUGINS_PLUGIN_INFO_MESSAGE_FILTER_H_
7 7
8 #include <memory> 8 #include <memory>
9 #include <string> 9 #include <string>
10 #include <vector> 10 #include <vector>
(...skipping 26 matching lines...) Expand all
37 } 37 }
38 38
39 namespace extensions { 39 namespace extensions {
40 class ExtensionRegistry; 40 class ExtensionRegistry;
41 } 41 }
42 42
43 namespace component_updater { 43 namespace component_updater {
44 struct ComponentInfo; 44 struct ComponentInfo;
45 } 45 }
46 46
47 namespace url {
48 class Origin;
49 }
50
47 // This class filters out incoming IPC messages requesting plugin information. 51 // This class filters out incoming IPC messages requesting plugin information.
48 class PluginInfoMessageFilter : public content::BrowserMessageFilter { 52 class PluginInfoMessageFilter : public content::BrowserMessageFilter {
49 public: 53 public:
50 struct GetPluginInfo_Params; 54 struct GetPluginInfo_Params;
51 55
52 // Contains all the information needed by the PluginInfoMessageFilter. 56 // Contains all the information needed by the PluginInfoMessageFilter.
53 class Context { 57 class Context {
54 public: 58 public:
55 Context(int render_process_id, Profile* profile); 59 Context(int render_process_id, Profile* profile);
56 60
57 ~Context(); 61 ~Context();
58 62
59 void DecidePluginStatus( 63 void DecidePluginStatus(
60 const GetPluginInfo_Params& params, 64 const GetPluginInfo_Params& params,
61 const content::WebPluginInfo& plugin, 65 const content::WebPluginInfo& plugin,
62 const PluginMetadata* plugin_metadata, 66 const PluginMetadata* plugin_metadata,
63 ChromeViewHostMsg_GetPluginInfo_Status* status) const; 67 ChromeViewHostMsg_GetPluginInfo_Status* status) const;
64 bool FindEnabledPlugin( 68 bool FindEnabledPlugin(
65 int render_frame_id, 69 int render_frame_id,
66 const GURL& url, 70 const GURL& url,
67 const GURL& top_origin_url, 71 const url::Origin& main_frame_origin,
68 const std::string& mime_type, 72 const std::string& mime_type,
69 ChromeViewHostMsg_GetPluginInfo_Status* status, 73 ChromeViewHostMsg_GetPluginInfo_Status* status,
70 content::WebPluginInfo* plugin, 74 content::WebPluginInfo* plugin,
71 std::string* actual_mime_type, 75 std::string* actual_mime_type,
72 std::unique_ptr<PluginMetadata>* plugin_metadata) const; 76 std::unique_ptr<PluginMetadata>* plugin_metadata) const;
73 void MaybeGrantAccess(ChromeViewHostMsg_GetPluginInfo_Status status, 77 void MaybeGrantAccess(ChromeViewHostMsg_GetPluginInfo_Status status,
74 const base::FilePath& path) const; 78 const base::FilePath& path) const;
75 bool IsPluginEnabled(const content::WebPluginInfo& plugin) const; 79 bool IsPluginEnabled(const content::WebPluginInfo& plugin) const;
76 80
77 private: 81 private:
(...skipping 17 matching lines...) Expand all
95 99
96 private: 100 private:
97 friend struct content::BrowserThread::DeleteOnThread< 101 friend struct content::BrowserThread::DeleteOnThread<
98 content::BrowserThread::UI>; 102 content::BrowserThread::UI>;
99 friend class base::DeleteHelper<PluginInfoMessageFilter>; 103 friend class base::DeleteHelper<PluginInfoMessageFilter>;
100 104
101 ~PluginInfoMessageFilter() override; 105 ~PluginInfoMessageFilter() override;
102 106
103 void OnGetPluginInfo(int render_frame_id, 107 void OnGetPluginInfo(int render_frame_id,
104 const GURL& url, 108 const GURL& url,
105 const GURL& top_origin_url, 109 const url::Origin& main_frame_origin,
106 const std::string& mime_type, 110 const std::string& mime_type,
107 IPC::Message* reply_msg); 111 IPC::Message* reply_msg);
108 112
109 // |params| wraps the parameters passed to |OnGetPluginInfo|, because 113 // |params| wraps the parameters passed to |OnGetPluginInfo|, because
110 // |base::Bind| doesn't support the required arity <http://crbug.com/98542>. 114 // |base::Bind| doesn't support the required arity <http://crbug.com/98542>.
111 void PluginsLoaded(const GetPluginInfo_Params& params, 115 void PluginsLoaded(const GetPluginInfo_Params& params,
112 IPC::Message* reply_msg, 116 IPC::Message* reply_msg,
113 const std::vector<content::WebPluginInfo>& plugins); 117 const std::vector<content::WebPluginInfo>& plugins);
114 118
115 void ComponentPluginLookupDone( 119 void ComponentPluginLookupDone(
(...skipping 26 matching lines...) Expand all
142 146
143 Context context_; 147 Context context_;
144 148
145 scoped_refptr<base::SingleThreadTaskRunner> main_thread_task_runner_; 149 scoped_refptr<base::SingleThreadTaskRunner> main_thread_task_runner_;
146 base::WeakPtrFactory<PluginInfoMessageFilter> weak_ptr_factory_; 150 base::WeakPtrFactory<PluginInfoMessageFilter> weak_ptr_factory_;
147 151
148 DISALLOW_COPY_AND_ASSIGN(PluginInfoMessageFilter); 152 DISALLOW_COPY_AND_ASSIGN(PluginInfoMessageFilter);
149 }; 153 };
150 154
151 #endif // CHROME_BROWSER_PLUGINS_PLUGIN_INFO_MESSAGE_FILTER_H_ 155 #endif // CHROME_BROWSER_PLUGINS_PLUGIN_INFO_MESSAGE_FILTER_H_
OLDNEW
« no previous file with comments | « chrome/browser/plugins/flash_permission_context.cc ('k') | chrome/browser/plugins/plugin_info_message_filter.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698