Allow window.open on native-window-open enabled
This commit is contained in:
parent
a1f9a45276
commit
2c7343293a
2 changed files with 5 additions and 4 deletions
|
@ -95,7 +95,8 @@ bool AtomBrowserClient::ShouldCreateNewSiteInstance(
|
||||||
// "javacript:" scheme should always use same SiteInstance
|
// "javacript:" scheme should always use same SiteInstance
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (!IsRendererSandboxed(current_instance->GetProcess()->GetID()))
|
int process_id = current_instance->GetProcess()->GetID();
|
||||||
|
if (!(IsRendererSandboxed(process_id) || RendererUsesNativeWindowOpen(process_id)))
|
||||||
// non-sandboxed renderers should always create a new SiteInstance
|
// non-sandboxed renderers should always create a new SiteInstance
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
|
@ -125,7 +126,7 @@ bool AtomBrowserClient::IsRendererSandboxed(int process_id) {
|
||||||
return it != process_preferences_.end() && it->second.sandbox;
|
return it != process_preferences_.end() && it->second.sandbox;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool AtomBrowserClient::IsRendererUsesNativeWindowOpen(int process_id) {
|
bool AtomBrowserClient::RendererUsesNativeWindowOpen(int process_id) {
|
||||||
base::AutoLock auto_lock(process_preferences_lock_);
|
base::AutoLock auto_lock(process_preferences_lock_);
|
||||||
auto it = process_preferences_.find(process_id);
|
auto it = process_preferences_.find(process_id);
|
||||||
return it != process_preferences_.end() && it->second.native_window_open;
|
return it != process_preferences_.end() && it->second.native_window_open;
|
||||||
|
@ -318,7 +319,7 @@ bool AtomBrowserClient::CanCreateWindow(
|
||||||
bool* no_javascript_access) {
|
bool* no_javascript_access) {
|
||||||
DCHECK_CURRENTLY_ON(content::BrowserThread::IO);
|
DCHECK_CURRENTLY_ON(content::BrowserThread::IO);
|
||||||
|
|
||||||
if (IsRendererSandboxed(render_process_id)) {
|
if (IsRendererSandboxed(render_process_id) || RendererUsesNativeWindowOpen(render_process_id)) {
|
||||||
*no_javascript_access = false;
|
*no_javascript_access = false;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -121,7 +121,7 @@ class AtomBrowserClient : public brightray::BrowserClient,
|
||||||
void AddProcessPreferences(int process_id, ProcessPreferences prefs);
|
void AddProcessPreferences(int process_id, ProcessPreferences prefs);
|
||||||
void RemoveProcessPreferences(int process_id);
|
void RemoveProcessPreferences(int process_id);
|
||||||
bool IsRendererSandboxed(int process_id);
|
bool IsRendererSandboxed(int process_id);
|
||||||
bool IsRendererUsesNativeWindowOpen(int process_id);
|
bool RendererUsesNativeWindowOpen(int process_id);
|
||||||
|
|
||||||
// pending_render_process => current_render_process.
|
// pending_render_process => current_render_process.
|
||||||
std::map<int, int> pending_processes_;
|
std::map<int, int> pending_processes_;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue