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

Side by Side Diff: chrome/browser/extensions/extension_host.cc

Issue 6480106: Add IPCs to check web copy/cut/paste for extensions with the appropriate permission bit. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/chrome
Patch Set: Created 9 years, 10 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 | Annotate | Revision Log
« no previous file with comments | « chrome/browser/extensions/extension_host.h ('k') | chrome/browser/notifications/balloon_host.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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/extensions/extension_host.h" 5 #include "chrome/browser/extensions/extension_host.h"
6 6
7 #include <list> 7 #include <list>
8 8
9 #include "base/message_loop.h" 9 #include "base/message_loop.h"
10 #include "base/singleton.h" 10 #include "base/singleton.h"
(...skipping 497 matching lines...) Expand 10 before | Expand all | Expand 10 after
508 webkit_prefs.allow_scripts_to_close_windows = true; 508 webkit_prefs.allow_scripts_to_close_windows = true;
509 509
510 // Disable anything that requires the GPU process for background pages. 510 // Disable anything that requires the GPU process for background pages.
511 // See http://crbug.com/64512 and http://crbug.com/64841. 511 // See http://crbug.com/64512 and http://crbug.com/64841.
512 if (extension_host_type_ == ViewType::EXTENSION_BACKGROUND_PAGE) { 512 if (extension_host_type_ == ViewType::EXTENSION_BACKGROUND_PAGE) {
513 webkit_prefs.experimental_webgl_enabled = false; 513 webkit_prefs.experimental_webgl_enabled = false;
514 webkit_prefs.accelerated_compositing_enabled = false; 514 webkit_prefs.accelerated_compositing_enabled = false;
515 webkit_prefs.accelerated_2d_canvas_enabled = false; 515 webkit_prefs.accelerated_2d_canvas_enabled = false;
516 } 516 }
517 517
518 // TODO(dcheng): incorporate this setting into kClipboardPermission check.
519 webkit_prefs.javascript_can_access_clipboard = true;
520
521 // TODO(dcheng): check kClipboardPermission instead once it's implemented.
522 if (extension_->HasApiPermission(Extension::kExperimentalPermission))
523 webkit_prefs.dom_paste_enabled = true;
524 return webkit_prefs; 518 return webkit_prefs;
525 } 519 }
526 520
527 void ExtensionHost::ProcessWebUIMessage( 521 void ExtensionHost::ProcessWebUIMessage(
528 const ViewHostMsg_DomMessage_Params& params) { 522 const ViewHostMsg_DomMessage_Params& params) {
529 if (extension_function_dispatcher_.get()) { 523 if (extension_function_dispatcher_.get()) {
530 extension_function_dispatcher_->HandleRequest(params); 524 extension_function_dispatcher_->HandleRequest(params);
531 } 525 }
532 } 526 }
533 527
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after
663 #if defined(OS_MACOSX) 657 #if defined(OS_MACOSX)
664 PopupMenuHelper popup_menu_helper(render_view_host()); 658 PopupMenuHelper popup_menu_helper(render_view_host());
665 popup_menu_helper.ShowPopupMenu(bounds, item_height, item_font_size, 659 popup_menu_helper.ShowPopupMenu(bounds, item_height, item_font_size,
666 selected_item, items, right_aligned); 660 selected_item, items, right_aligned);
667 #else 661 #else
668 // Only on Mac are select popup menus external. 662 // Only on Mac are select popup menus external.
669 NOTREACHED(); 663 NOTREACHED();
670 #endif 664 #endif
671 } 665 }
672 666
667 bool ExtensionHost::IsCopyCutEnabled() {
668 // For backwards compatibility, extensions can always copy/cut items into the
669 // clipboard.
670 return true;
671 }
672
673 bool ExtensionHost::IsPasteEnabled() {
674 return extension_->HasApiPermission(Extension::kClipboardPermission);
rniwa-cr 2011/02/16 03:41:50 Is extension_ origin controlled? i.e. only script
675 }
676
673 void ExtensionHost::StartDragging(const WebDropData& drop_data, 677 void ExtensionHost::StartDragging(const WebDropData& drop_data,
674 WebDragOperationsMask operation_mask, 678 WebDragOperationsMask operation_mask,
675 const SkBitmap& image, 679 const SkBitmap& image,
676 const gfx::Point& image_offset) { 680 const gfx::Point& image_offset) {
677 // We're not going to do any drag & drop, but we have to tell the renderer the 681 // We're not going to do any drag & drop, but we have to tell the renderer the
678 // drag & drop ended, othewise the renderer thinks the drag operation is 682 // drag & drop ended, othewise the renderer thinks the drag operation is
679 // underway and mouse events won't work. See bug 34061. 683 // underway and mouse events won't work. See bug 34061.
680 // TODO(twiz) Implement drag & drop support for ExtensionHost instances. 684 // TODO(twiz) Implement drag & drop support for ExtensionHost instances.
681 // See feature issue 36288. 685 // See feature issue 36288.
682 render_view_host()->DragSourceSystemDragEnded(); 686 render_view_host()->DragSourceSystemDragEnded();
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after
813 } 817 }
814 return window_id; 818 return window_id;
815 } 819 }
816 820
817 void ExtensionHost::OnRunFileChooser( 821 void ExtensionHost::OnRunFileChooser(
818 const ViewHostMsg_RunFileChooser_Params& params) { 822 const ViewHostMsg_RunFileChooser_Params& params) {
819 if (file_select_helper_.get() == NULL) 823 if (file_select_helper_.get() == NULL)
820 file_select_helper_.reset(new FileSelectHelper(profile())); 824 file_select_helper_.reset(new FileSelectHelper(profile()));
821 file_select_helper_->RunFileChooser(render_view_host_, params); 825 file_select_helper_->RunFileChooser(render_view_host_, params);
822 } 826 }
OLDNEW
« no previous file with comments | « chrome/browser/extensions/extension_host.h ('k') | chrome/browser/notifications/balloon_host.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698