Index: chrome/browser/android/webapps/single_tab_mode_tab_helper.cc |
diff --git a/chrome/browser/android/webapps/single_tab_mode_tab_helper.cc b/chrome/browser/android/webapps/single_tab_mode_tab_helper.cc |
index 85f4755f4d300ac4d957b768728ad81174254ee1..6b85d151e301659fb3d562125cd8e5204226d4cf 100644 |
--- a/chrome/browser/android/webapps/single_tab_mode_tab_helper.cc |
+++ b/chrome/browser/android/webapps/single_tab_mode_tab_helper.cc |
@@ -4,103 +4,13 @@ |
#include "chrome/browser/android/webapps/single_tab_mode_tab_helper.h" |
-#include "base/lazy_instance.h" |
-#include "chrome/browser/android/tab_android.h" |
-#include "content/public/browser/browser_thread.h" |
-#include "content/public/browser/render_frame_host.h" |
-#include "content/public/browser/render_process_host.h" |
-#include "content/public/browser/web_contents.h" |
- |
DEFINE_WEB_CONTENTS_USER_DATA_KEY(SingleTabModeTabHelper); |
-namespace { |
- |
-typedef std::pair<int32_t, int32_t> RenderFrameHostID; |
-typedef std::set<RenderFrameHostID> SingleTabIDSet; |
-base::LazyInstance<SingleTabIDSet>::DestructorAtExit g_blocked_ids = |
- LAZY_INSTANCE_INITIALIZER; |
- |
-void AddPairOnIOThread(int32_t process_id, int32_t frame_routing_id) { |
- DCHECK_CURRENTLY_ON(content::BrowserThread::IO); |
- RenderFrameHostID single_tab_pair(process_id, frame_routing_id); |
- g_blocked_ids.Get().insert(single_tab_pair); |
-} |
- |
-void RemovePairOnIOThread(int32_t process_id, int32_t frame_routing_id) { |
- DCHECK_CURRENTLY_ON(content::BrowserThread::IO); |
- RenderFrameHostID single_tab_pair(process_id, frame_routing_id); |
- SingleTabIDSet::iterator itr = g_blocked_ids.Get().find(single_tab_pair); |
- DCHECK(itr != g_blocked_ids.Get().end()); |
- g_blocked_ids.Get().erase(itr); |
-} |
- |
-void AddPair(content::RenderFrameHost* render_frame_host) { |
- if (!render_frame_host) |
- return; |
- |
- int32_t process_id = render_frame_host->GetProcess()->GetID(); |
- int32_t frame_routing_id = render_frame_host->GetRoutingID(); |
- content::BrowserThread::PostTask( |
- content::BrowserThread::IO, FROM_HERE, |
- base::Bind(&AddPairOnIOThread, process_id, frame_routing_id)); |
-} |
- |
-void RemovePair(content::RenderFrameHost* render_frame_host) { |
- if (!render_frame_host) |
- return; |
- |
- int32_t process_id = render_frame_host->GetProcess()->GetID(); |
- int32_t frame_routing_id = render_frame_host->GetRoutingID(); |
- content::BrowserThread::PostTask( |
- content::BrowserThread::IO, FROM_HERE, |
- base::Bind(&RemovePairOnIOThread, process_id, frame_routing_id)); |
-} |
- |
-} // namespace |
- |
SingleTabModeTabHelper::SingleTabModeTabHelper( |
- content::WebContents* web_contents) |
- : content::WebContentsObserver(web_contents), |
- block_all_new_windows_(false) { |
-} |
- |
-SingleTabModeTabHelper::~SingleTabModeTabHelper() { |
-} |
- |
-void SingleTabModeTabHelper::RenderFrameCreated( |
- content::RenderFrameHost* render_frame_host) { |
- if (!block_all_new_windows_) |
- return; |
- AddPair(render_frame_host); |
-} |
+ content::WebContents* web_contents) {} |
-void SingleTabModeTabHelper::RenderFrameDeleted( |
- content::RenderFrameHost* render_frame_host) { |
- if (!block_all_new_windows_) |
- return; |
- RemovePair(render_frame_host); |
-} |
+SingleTabModeTabHelper::~SingleTabModeTabHelper() {} |
void SingleTabModeTabHelper::PermanentlyBlockAllNewWindows() { |
block_all_new_windows_ = true; |
- for (content::RenderFrameHost* frame : web_contents()->GetAllFrames()) |
- AddPair(frame); |
-} |
- |
-bool SingleTabModeTabHelper::IsRegistered(int32_t process_id, |
- int32_t frame_routing_id) { |
- DCHECK_CURRENTLY_ON(content::BrowserThread::IO); |
- RenderFrameHostID single_tab_pair(process_id, frame_routing_id); |
- SingleTabIDSet::iterator itr = g_blocked_ids.Get().find(single_tab_pair); |
- return itr != g_blocked_ids.Get().end(); |
-} |
- |
-void SingleTabModeTabHelper::HandleOpenUrl(const BlockedWindowParams& params) { |
- TabAndroid* tab = TabAndroid::FromWebContents(web_contents()); |
- if (!tab) |
- return; |
- |
- chrome::NavigateParams nav_params = |
- params.CreateNavigateParams(web_contents()); |
- tab->HandlePopupNavigation(&nav_params); |
} |