| OLD | NEW |
| 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 #include "content/browser/web_contents/web_contents_impl.h" | 5 #include "content/browser/web_contents/web_contents_impl.h" |
| 6 | 6 |
| 7 #include <utility> | 7 #include <utility> |
| 8 | 8 |
| 9 #include "base/command_line.h" | 9 #include "base/command_line.h" |
| 10 #include "base/debug/trace_event.h" | 10 #include "base/debug/trace_event.h" |
| (...skipping 1457 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1468 | 1468 |
| 1469 scoped_refptr<SiteInstance> site_instance = | 1469 scoped_refptr<SiteInstance> site_instance = |
| 1470 params.opener_suppressed && !is_guest ? | 1470 params.opener_suppressed && !is_guest ? |
| 1471 SiteInstance::CreateForURL(GetBrowserContext(), params.target_url) : | 1471 SiteInstance::CreateForURL(GetBrowserContext(), params.target_url) : |
| 1472 GetSiteInstance(); | 1472 GetSiteInstance(); |
| 1473 | 1473 |
| 1474 // A message to create a new window can only come from the active process for | 1474 // A message to create a new window can only come from the active process for |
| 1475 // this WebContentsImpl instance. If any other process sends the request, | 1475 // this WebContentsImpl instance. If any other process sends the request, |
| 1476 // it is invalid and the process must be terminated. | 1476 // it is invalid and the process must be terminated. |
| 1477 if (GetRenderProcessHost()->GetID() != render_process_id) { | 1477 if (GetRenderProcessHost()->GetID() != render_process_id) { |
| 1478 base::ProcessHandle process_handle = | 1478 RenderProcessHost* rph = RenderProcessHost::FromID(render_process_id); |
| 1479 RenderProcessHost::FromID(render_process_id)->GetHandle(); | 1479 base::ProcessHandle process_handle = rph->GetHandle(); |
| 1480 if (process_handle != base::kNullProcessHandle) { | 1480 if (process_handle != base::kNullProcessHandle) { |
| 1481 RecordAction( | 1481 RecordAction( |
| 1482 base::UserMetricsAction("Terminate_ProcessMismatch_CreateNewWindow")); | 1482 base::UserMetricsAction("Terminate_ProcessMismatch_CreateNewWindow")); |
| 1483 base::KillProcess(process_handle, RESULT_CODE_KILLED, false); | 1483 rph->FastShutdown(RESULT_CODE_KILLED, false); |
| 1484 } | 1484 } |
| 1485 return; | 1485 return; |
| 1486 } | 1486 } |
| 1487 | 1487 |
| 1488 // We must assign the SessionStorageNamespace before calling Init(). | 1488 // We must assign the SessionStorageNamespace before calling Init(). |
| 1489 // | 1489 // |
| 1490 // http://crbug.com/142685 | 1490 // http://crbug.com/142685 |
| 1491 const std::string& partition_id = | 1491 const std::string& partition_id = |
| 1492 GetContentClient()->browser()-> | 1492 GetContentClient()->browser()-> |
| 1493 GetStoragePartitionIdForSite(GetBrowserContext(), | 1493 GetStoragePartitionIdForSite(GetBrowserContext(), |
| (...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1602 | 1602 |
| 1603 void WebContentsImpl::CreateNewWidget(int render_process_id, | 1603 void WebContentsImpl::CreateNewWidget(int render_process_id, |
| 1604 int route_id, | 1604 int route_id, |
| 1605 bool is_fullscreen, | 1605 bool is_fullscreen, |
| 1606 blink::WebPopupType popup_type) { | 1606 blink::WebPopupType popup_type) { |
| 1607 RenderProcessHost* process = GetRenderProcessHost(); | 1607 RenderProcessHost* process = GetRenderProcessHost(); |
| 1608 // A message to create a new widget can only come from the active process for | 1608 // A message to create a new widget can only come from the active process for |
| 1609 // this WebContentsImpl instance. If any other process sends the request, | 1609 // this WebContentsImpl instance. If any other process sends the request, |
| 1610 // it is invalid and the process must be terminated. | 1610 // it is invalid and the process must be terminated. |
| 1611 if (process->GetID() != render_process_id) { | 1611 if (process->GetID() != render_process_id) { |
| 1612 base::ProcessHandle process_handle = | 1612 RenderProcessHost* rph = RenderProcessHost::FromID(render_process_id); |
| 1613 RenderProcessHost::FromID(render_process_id)->GetHandle(); | 1613 base::ProcessHandle process_handle = rph->GetHandle(); |
| 1614 if (process_handle != base::kNullProcessHandle) { | 1614 if (process_handle != base::kNullProcessHandle) { |
| 1615 RecordAction( | 1615 RecordAction( |
| 1616 base::UserMetricsAction("Terminate_ProcessMismatch_CreateNewWidget")); | 1616 base::UserMetricsAction("Terminate_ProcessMismatch_CreateNewWidget")); |
| 1617 base::KillProcess(process_handle, RESULT_CODE_KILLED, false); | 1617 rph->FastShutdown(RESULT_CODE_KILLED, false); |
| 1618 } | 1618 } |
| 1619 return; | 1619 return; |
| 1620 } | 1620 } |
| 1621 | 1621 |
| 1622 RenderWidgetHostImpl* widget_host = | 1622 RenderWidgetHostImpl* widget_host = |
| 1623 new RenderWidgetHostImpl(this, process, route_id, IsHidden()); | 1623 new RenderWidgetHostImpl(this, process, route_id, IsHidden()); |
| 1624 created_widgets_.insert(widget_host); | 1624 created_widgets_.insert(widget_host); |
| 1625 | 1625 |
| 1626 RenderWidgetHostViewBase* widget_view = | 1626 RenderWidgetHostViewBase* widget_view = |
| 1627 static_cast<RenderWidgetHostViewBase*>( | 1627 static_cast<RenderWidgetHostViewBase*>( |
| (...skipping 2725 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4353 node->render_manager()->ResumeResponseDeferredAtStart(); | 4353 node->render_manager()->ResumeResponseDeferredAtStart(); |
| 4354 } | 4354 } |
| 4355 | 4355 |
| 4356 void WebContentsImpl::SetForceDisableOverscrollContent(bool force_disable) { | 4356 void WebContentsImpl::SetForceDisableOverscrollContent(bool force_disable) { |
| 4357 force_disable_overscroll_content_ = force_disable; | 4357 force_disable_overscroll_content_ = force_disable; |
| 4358 if (view_) | 4358 if (view_) |
| 4359 view_->SetOverscrollControllerEnabled(CanOverscrollContent()); | 4359 view_->SetOverscrollControllerEnabled(CanOverscrollContent()); |
| 4360 } | 4360 } |
| 4361 | 4361 |
| 4362 } // namespace content | 4362 } // namespace content |
| OLD | NEW |