| OLD | NEW |
| 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 739 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 750 void ExtensionHost::HandleMouseUp() { | 750 void ExtensionHost::HandleMouseUp() { |
| 751 } | 751 } |
| 752 | 752 |
| 753 void ExtensionHost::HandleMouseActivate() { | 753 void ExtensionHost::HandleMouseActivate() { |
| 754 } | 754 } |
| 755 | 755 |
| 756 ViewType::Type ExtensionHost::GetRenderViewType() const { | 756 ViewType::Type ExtensionHost::GetRenderViewType() const { |
| 757 return extension_host_type_; | 757 return extension_host_type_; |
| 758 } | 758 } |
| 759 | 759 |
| 760 bool ExtensionHost::OnMessageReceived(const IPC::Message& message) { |
| 761 bool handled = true; |
| 762 IPC_BEGIN_MESSAGE_MAP(ExtensionHost, message) |
| 763 IPC_MESSAGE_HANDLER(ViewHostMsg_RunFileChooser, OnRunFileChooser) |
| 764 IPC_MESSAGE_UNHANDLED(handled = false) |
| 765 IPC_END_MESSAGE_MAP() |
| 766 return handled; |
| 767 } |
| 768 |
| 760 const GURL& ExtensionHost::GetURL() const { | 769 const GURL& ExtensionHost::GetURL() const { |
| 761 return url_; | 770 return url_; |
| 762 } | 771 } |
| 763 | 772 |
| 764 void ExtensionHost::RenderViewCreated(RenderViewHost* render_view_host) { | 773 void ExtensionHost::RenderViewCreated(RenderViewHost* render_view_host) { |
| 765 if (view_.get()) | 774 if (view_.get()) |
| 766 view_->RenderViewCreated(); | 775 view_->RenderViewCreated(); |
| 767 | 776 |
| 768 // TODO(mpcomplete): This is duplicated in DidNavigate, which means that | 777 // TODO(mpcomplete): This is duplicated in DidNavigate, which means that |
| 769 // we'll create 2 EFDs for the first navigation. We should try to find a | 778 // we'll create 2 EFDs for the first navigation. We should try to find a |
| 770 // better way to unify them. | 779 // better way to unify them. |
| 771 // See http://code.google.com/p/chromium/issues/detail?id=18240 | 780 // See http://code.google.com/p/chromium/issues/detail?id=18240 |
| 772 extension_function_dispatcher_.reset( | 781 extension_function_dispatcher_.reset( |
| 773 ExtensionFunctionDispatcher::Create(render_view_host, this, url_)); | 782 ExtensionFunctionDispatcher::Create(render_view_host, this, url_)); |
| 774 | 783 |
| 775 if (extension_host_type_ == ViewType::EXTENSION_POPUP || | 784 if (extension_host_type_ == ViewType::EXTENSION_POPUP || |
| 776 extension_host_type_ == ViewType::EXTENSION_INFOBAR) { | 785 extension_host_type_ == ViewType::EXTENSION_INFOBAR) { |
| 777 render_view_host->EnablePreferredSizeChangedMode( | 786 render_view_host->EnablePreferredSizeChangedMode( |
| 778 kPreferredSizeWidth | kPreferredSizeHeightThisIsSlow); | 787 kPreferredSizeWidth | kPreferredSizeHeightThisIsSlow); |
| 779 } | 788 } |
| 780 } | 789 } |
| 781 | 790 |
| 782 RenderViewHostDelegate::FileSelect* ExtensionHost::GetFileSelectDelegate() { | |
| 783 if (file_select_helper_.get() == NULL) | |
| 784 file_select_helper_.reset(new FileSelectHelper(profile())); | |
| 785 return file_select_helper_.get(); | |
| 786 } | |
| 787 | |
| 788 int ExtensionHost::GetBrowserWindowID() const { | 791 int ExtensionHost::GetBrowserWindowID() const { |
| 789 // Hosts not attached to any browser window have an id of -1. This includes | 792 // Hosts not attached to any browser window have an id of -1. This includes |
| 790 // those mentioned below, and background pages. | 793 // those mentioned below, and background pages. |
| 791 int window_id = extension_misc::kUnknownWindowId; | 794 int window_id = extension_misc::kUnknownWindowId; |
| 792 if (extension_host_type_ == ViewType::EXTENSION_POPUP || | 795 if (extension_host_type_ == ViewType::EXTENSION_POPUP || |
| 793 extension_host_type_ == ViewType::EXTENSION_INFOBAR) { | 796 extension_host_type_ == ViewType::EXTENSION_INFOBAR) { |
| 794 // If the host is bound to a browser, then extract its window id. | 797 // If the host is bound to a browser, then extract its window id. |
| 795 // Extensions hosted in ExternalTabContainer objects may not have | 798 // Extensions hosted in ExternalTabContainer objects may not have |
| 796 // an associated browser. | 799 // an associated browser. |
| 797 const Browser* browser = GetBrowser(); | 800 const Browser* browser = GetBrowser(); |
| 798 if (browser) | 801 if (browser) |
| 799 window_id = ExtensionTabUtil::GetWindowId(browser); | 802 window_id = ExtensionTabUtil::GetWindowId(browser); |
| 800 } else if (extension_host_type_ != ViewType::EXTENSION_BACKGROUND_PAGE) { | 803 } else if (extension_host_type_ != ViewType::EXTENSION_BACKGROUND_PAGE) { |
| 801 NOTREACHED(); | 804 NOTREACHED(); |
| 802 } | 805 } |
| 803 return window_id; | 806 return window_id; |
| 804 } | 807 } |
| 808 |
| 809 void ExtensionHost::OnRunFileChooser( |
| 810 const ViewHostMsg_RunFileChooser_Params& params) { |
| 811 if (file_select_helper_.get() == NULL) |
| 812 file_select_helper_.reset(new FileSelectHelper(profile())); |
| 813 file_select_helper_->RunFileChooser(render_view_host_, params); |
| 814 } |
| OLD | NEW |