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

Unified Diff: chrome/browser/android/webapps/single_tab_mode_tab_helper.cc

Issue 2506183002: Make window.open() IPCs be frame-based (Closed)
Patch Set: Rebase. Created 3 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 side-by-side diff with in-line comments
Download patch
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 6bb54cf8cda0a8d69379900e783786ecdbe62d46..31435edcadc8e4352a0cd18f896fad23ee4a6131 100644
--- a/chrome/browser/android/webapps/single_tab_mode_tab_helper.cc
+++ b/chrome/browser/android/webapps/single_tab_mode_tab_helper.cc
@@ -7,52 +7,52 @@
#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/render_view_host.h"
#include "content/public/browser/web_contents.h"
DEFINE_WEB_CONTENTS_USER_DATA_KEY(SingleTabModeTabHelper);
namespace {
-typedef std::pair<int32_t, int32_t> RenderWidgetHostID;
-typedef std::set<RenderWidgetHostID> SingleTabIDSet;
+typedef std::pair<int32_t, int32_t> RenderFrameHostID;
+typedef std::set<RenderFrameHostID> SingleTabIDSet;
base::LazyInstance<SingleTabIDSet> g_blocked_ids = LAZY_INSTANCE_INITIALIZER;
-void AddPairOnIOThread(int32_t process_id, int32_t routing_id) {
+void AddPairOnIOThread(int32_t process_id, int32_t frame_routing_id) {
DCHECK_CURRENTLY_ON(content::BrowserThread::IO);
- RenderWidgetHostID single_tab_pair(process_id, routing_id);
+ 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 routing_id) {
+void RemovePairOnIOThread(int32_t process_id, int32_t frame_routing_id) {
DCHECK_CURRENTLY_ON(content::BrowserThread::IO);
- RenderWidgetHostID single_tab_pair(process_id, routing_id);
+ 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::RenderViewHost* render_view_host) {
- if (!render_view_host)
+void AddPair(content::RenderFrameHost* render_frame_host) {
+ if (!render_frame_host)
return;
- int32_t process_id = render_view_host->GetProcess()->GetID();
- int32_t routing_id = render_view_host->GetRoutingID();
+ 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, routing_id));
+ base::Bind(&AddPairOnIOThread, process_id, frame_routing_id));
}
-void RemovePair(content::RenderViewHost* render_view_host) {
- if (!render_view_host)
+void RemovePair(content::RenderFrameHost* render_frame_host) {
+ if (!render_frame_host)
return;
- int32_t process_id = render_view_host->GetProcess()->GetID();
- int32_t routing_id = render_view_host->GetRoutingID();
+ 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, routing_id));
+ base::Bind(&RemovePairOnIOThread, process_id, frame_routing_id));
}
} // namespace
@@ -66,34 +66,35 @@ SingleTabModeTabHelper::SingleTabModeTabHelper(
SingleTabModeTabHelper::~SingleTabModeTabHelper() {
}
-void SingleTabModeTabHelper::RenderViewCreated(
- content::RenderViewHost* render_view_host) {
+void SingleTabModeTabHelper::RenderFrameCreated(
+ content::RenderFrameHost* render_frame_host) {
if (!block_all_new_windows_)
return;
- AddPair(render_view_host);
+ AddPair(render_frame_host);
}
-void SingleTabModeTabHelper::RenderViewDeleted(
- content::RenderViewHost* render_view_host) {
+void SingleTabModeTabHelper::RenderFrameDeleted(
+ content::RenderFrameHost* render_frame_host) {
if (!block_all_new_windows_)
return;
- RemovePair(render_view_host);
+ RemovePair(render_frame_host);
}
void SingleTabModeTabHelper::PermanentlyBlockAllNewWindows() {
block_all_new_windows_ = true;
- AddPair(web_contents()->GetRenderViewHost());
+ for (content::RenderFrameHost* frame : web_contents()->GetAllFrames())
+ AddPair(frame);
}
bool SingleTabModeTabHelper::IsRegistered(int32_t process_id,
- int32_t routing_id) {
+ int32_t frame_routing_id) {
DCHECK_CURRENTLY_ON(content::BrowserThread::IO);
- RenderWidgetHostID single_tab_pair(process_id, routing_id);
+ 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) {
+void SingleTabModeTabHelper::HandleOpenUrl(const BlockedWindowParams& params) {
TabAndroid* tab = TabAndroid::FromWebContents(web_contents());
if (!tab)
return;
« no previous file with comments | « chrome/browser/android/webapps/single_tab_mode_tab_helper.h ('k') | chrome/browser/chrome_content_browser_client.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698