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

Side by Side Diff: chrome/browser/renderer_host/render_view_host.cc

Issue 172120: Revert "Revert "Allow DOMUI pages to call window.open(), giving DOMUI privileges to the new"" (Closed)
Patch Set: Created 11 years, 3 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2009 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 "chrome/browser/renderer_host/render_view_host.h" 5 #include "chrome/browser/renderer_host/render_view_host.h"
6 6
7 #include <string> 7 #include <string>
8 #include <vector> 8 #include <vector>
9 9
10 #include "app/l10n_util.h" 10 #include "app/l10n_util.h"
(...skipping 1591 matching lines...) Expand 10 before | Expand all | Expand 10 after
1602 Send(new ViewMsg_HandleMessageFromExternalHost(routing_id(), message, origin, 1602 Send(new ViewMsg_HandleMessageFromExternalHost(routing_id(), message, origin,
1603 target)); 1603 target));
1604 } 1604 }
1605 1605
1606 void RenderViewHost::OnExtensionRequest(const std::string& name, 1606 void RenderViewHost::OnExtensionRequest(const std::string& name,
1607 const std::string& args, 1607 const std::string& args,
1608 int request_id, 1608 int request_id,
1609 bool has_callback) { 1609 bool has_callback) {
1610 if (!ChildProcessSecurityPolicy::GetInstance()-> 1610 if (!ChildProcessSecurityPolicy::GetInstance()->
1611 HasExtensionBindings(process()->id())) { 1611 HasExtensionBindings(process()->id())) {
1612 NOTREACHED() << "Blocked unauthorized use of extension bindings."; 1612 // This can happen if someone uses window.open() to open an extension URL
1613 // from a non-extension context.
1614 BlockExtensionRequest(request_id);
1613 return; 1615 return;
1614 } 1616 }
1615 1617
1616 delegate_->ProcessDOMUIMessage(name, args, request_id, has_callback); 1618 delegate_->ProcessDOMUIMessage(name, args, request_id, has_callback);
1617 } 1619 }
1618 1620
1619 void RenderViewHost::SendExtensionResponse(int request_id, bool success, 1621 void RenderViewHost::SendExtensionResponse(int request_id, bool success,
1620 const std::string& response, 1622 const std::string& response,
1621 const std::string& error) { 1623 const std::string& error) {
1622 Send(new ViewMsg_ExtensionResponse(routing_id(), request_id, success, 1624 Send(new ViewMsg_ExtensionResponse(routing_id(), request_id, success,
1623 response, error)); 1625 response, error));
1624 } 1626 }
1625 1627
1628 void RenderViewHost::BlockExtensionRequest(int request_id) {
1629 SendExtensionResponse(request_id, false, "",
1630 "Access to extension API denied.");
1631 }
1632
1626 void RenderViewHost::OnExtensionPostMessage( 1633 void RenderViewHost::OnExtensionPostMessage(
1627 int port_id, const std::string& message) { 1634 int port_id, const std::string& message) {
1628 if (process()->profile()->GetExtensionMessageService()) { 1635 if (process()->profile()->GetExtensionMessageService()) {
1629 process()->profile()->GetExtensionMessageService()-> 1636 process()->profile()->GetExtensionMessageService()->
1630 PostMessageFromRenderer(port_id, message); 1637 PostMessageFromRenderer(port_id, message);
1631 } 1638 }
1632 } 1639 }
1633 1640
1634 void RenderViewHost::OnAccessibilityFocusChange(int acc_obj_id) { 1641 void RenderViewHost::OnAccessibilityFocusChange(int acc_obj_id) {
1635 #if defined(OS_WIN) 1642 #if defined(OS_WIN)
(...skipping 14 matching lines...) Expand all
1650 } 1657 }
1651 1658
1652 void RenderViewHost::ResetModalDialogEvent() { 1659 void RenderViewHost::ResetModalDialogEvent() {
1653 if (--modal_dialog_count_ == 0) 1660 if (--modal_dialog_count_ == 0)
1654 modal_dialog_event_->Reset(); 1661 modal_dialog_event_->Reset();
1655 } 1662 }
1656 1663
1657 void RenderViewHost::UpdateBrowserWindowId(int window_id) { 1664 void RenderViewHost::UpdateBrowserWindowId(int window_id) {
1658 Send(new ViewMsg_UpdateBrowserWindowId(routing_id(), window_id)); 1665 Send(new ViewMsg_UpdateBrowserWindowId(routing_id(), window_id));
1659 } 1666 }
OLDNEW
« no previous file with comments | « chrome/browser/renderer_host/render_view_host.h ('k') | chrome/browser/tab_contents/render_view_host_delegate_helper.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698