store webviewinfo as web contents userdata
This commit is contained in:
parent
8f59c0b642
commit
03ba9533fb
10 changed files with 114 additions and 54 deletions
|
@ -8,6 +8,7 @@
|
|||
#include <map>
|
||||
|
||||
#include "base/files/file_path.h"
|
||||
#include "base/supports_user_data.h"
|
||||
#include "base/synchronization/lock.h"
|
||||
#include "content/public/browser/browser_plugin_guest_manager.h"
|
||||
#include "content/public/browser/site_instance.h"
|
||||
|
@ -31,10 +32,17 @@ class WebViewManager : public content::BrowserPluginGuestManager {
|
|||
GURL partition_id;
|
||||
};
|
||||
|
||||
// Finds the WebViewManager attached with |web_contents| and returns the
|
||||
// WebViewInfo of it.
|
||||
static bool GetInfoForWebContents(const content::WebContents* web_contents,
|
||||
WebViewInfo* info);
|
||||
class WebViewInfoUserData : public base::SupportsUserData::Data {
|
||||
public:
|
||||
explicit WebViewInfoUserData(WebViewInfo info)
|
||||
: web_view_info_(info) {}
|
||||
~WebViewInfoUserData() override {}
|
||||
|
||||
WebViewInfo& web_view_info() { return web_view_info_; }
|
||||
|
||||
private:
|
||||
WebViewInfo web_view_info_;
|
||||
};
|
||||
|
||||
explicit WebViewManager(content::BrowserContext* context);
|
||||
virtual ~WebViewManager();
|
||||
|
@ -42,8 +50,7 @@ class WebViewManager : public content::BrowserPluginGuestManager {
|
|||
void AddGuest(int guest_instance_id,
|
||||
int element_instance_id,
|
||||
content::WebContents* embedder,
|
||||
content::WebContents* web_contents,
|
||||
const WebViewInfo& info);
|
||||
content::WebContents* web_contents);
|
||||
void RemoveGuest(int guest_instance_id);
|
||||
|
||||
protected:
|
||||
|
@ -83,10 +90,6 @@ class WebViewManager : public content::BrowserPluginGuestManager {
|
|||
// (embedder_process_id, element_instance_id) => guest_instance_id
|
||||
std::map<ElementInstanceKey, int> element_instance_id_to_guest_map_;
|
||||
|
||||
typedef std::map<const content::WebContents*, WebViewInfo> WebViewInfoMap;
|
||||
// web_contents => (guest_instance_id, embedder, ...)
|
||||
WebViewInfoMap webview_info_map_;
|
||||
|
||||
base::Lock lock_;
|
||||
|
||||
DISALLOW_COPY_AND_ASSIGN(WebViewManager);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue