[Extensions] Clean up the handling of ExtensionHostMsg_Request
commitcb2ec659ab8741962f3391970a5fff512ebb6509
authorrdevlin.cronin <rdevlin.cronin@chromium.org>
Wed, 10 Jun 2015 23:32:41 +0000 (10 16:32 -0700)
committerCommit bot <commit-bot@chromium.org>
Wed, 10 Jun 2015 23:33:30 +0000 (10 23:33 +0000)
tree84c87ca2540a0f0e7dc66bb0b82a5abc79ad012b
parent1bcab9592f6213b9f44379bb66ce7b613b371e0b
[Extensions] Clean up the handling of ExtensionHostMsg_Request

ExtensionHostMsg_Request is sent when an extension calls an API function. Before
this patch, this IPC would be sent to one of 11 different call sites, all of
which then routed it to the ExtensionFunctionDispatcher - and all of which
have to implement ExtensionFunctionDispatcher::Delegate.

Instead, have ExtensionWebContentsObserver handle the IPC, since it is created
(or should be) for all extension web contents. This also lets us eliminate many
(though not all) of the ExtensionFunctionDispatcher::Delegate implementations
(I will try to clean more up in a later patch).

The size of this patch is due to a number of yaks that needed shaving along the
way - in particular, around GuestView.

BUG=498017
BUG=405246

Review URL: https://codereview.chromium.org/1169223002

Cr-Commit-Position: refs/heads/master@{#333843}
73 files changed:
apps/custom_launcher_page_contents.cc
apps/custom_launcher_page_contents.h
chrome/browser/extensions/api/bookmark_manager_private/bookmark_manager_private_api.cc
chrome/browser/extensions/api/bookmarks/bookmarks_api.cc
chrome/browser/extensions/api/chrome_extensions_api_client.cc
chrome/browser/extensions/api/chrome_extensions_api_client.h
chrome/browser/extensions/api/downloads/downloads_api.cc
chrome/browser/extensions/api/tabs/ash_panel_contents.cc
chrome/browser/extensions/api/tabs/ash_panel_contents.h
chrome/browser/extensions/api/tabs/tabs_api.cc
chrome/browser/extensions/api/tabs/windows_util.cc
chrome/browser/extensions/chrome_extension_function.cc
chrome/browser/extensions/chrome_extension_function_details.cc
chrome/browser/extensions/chrome_extension_web_contents_observer.h
chrome/browser/extensions/chrome_extensions_browser_client.cc
chrome/browser/extensions/chrome_extensions_browser_client.h
chrome/browser/extensions/extension_function_test_utils.cc
chrome/browser/extensions/tab_helper.cc
chrome/browser/extensions/tab_helper.h
chrome/browser/guest_view/extension_options/chrome_extension_options_guest_delegate.cc
chrome/browser/guest_view/extension_options/chrome_extension_options_guest_delegate.h
chrome/browser/guest_view/extension_view/chrome_extension_view_guest_delegate.cc [deleted file]
chrome/browser/guest_view/extension_view/chrome_extension_view_guest_delegate.h [deleted file]
chrome/browser/guest_view/mime_handler_view/chrome_mime_handler_view_guest_delegate.cc
chrome/browser/guest_view/mime_handler_view/chrome_mime_handler_view_guest_delegate.h
chrome/browser/guest_view/web_view/chrome_web_view_guest_delegate.cc
chrome/browser/guest_view/web_view/chrome_web_view_guest_delegate.h
chrome/browser/ui/ash/ash_keyboard_controller_proxy.cc
chrome/browser/ui/ash/ash_keyboard_controller_proxy.h
chrome/browser/ui/panels/panel_host.cc
chrome/browser/ui/panels/panel_host.h
chrome/chrome_browser.gypi
extensions/browser/api/extensions_api_client.cc
extensions/browser/api/extensions_api_client.h
extensions/browser/api/mime_handler_private/mime_handler_private_unittest.cc
extensions/browser/api_test_utils.cc
extensions/browser/app_window/app_window.cc
extensions/browser/app_window/app_window.h
extensions/browser/app_window/app_window_contents.cc
extensions/browser/app_window/app_window_contents.h
extensions/browser/app_window/test_app_window_contents.cc
extensions/browser/app_window/test_app_window_contents.h
extensions/browser/extension_function.cc
extensions/browser/extension_function_dispatcher.cc
extensions/browser/extension_function_dispatcher.h
extensions/browser/extension_host.cc
extensions/browser/extension_host.h
extensions/browser/extension_web_contents_observer.cc
extensions/browser/extension_web_contents_observer.h
extensions/browser/extensions_browser_client.h
extensions/browser/guest_view/app_view/app_view_guest.cc
extensions/browser/guest_view/app_view/app_view_guest.h
extensions/browser/guest_view/extension_options/extension_options_guest.cc
extensions/browser/guest_view/extension_options/extension_options_guest.h
extensions/browser/guest_view/extension_options/extension_options_guest_delegate.h
extensions/browser/guest_view/extension_view/extension_view_guest.cc
extensions/browser/guest_view/extension_view/extension_view_guest.h
extensions/browser/guest_view/extension_view/extension_view_guest_delegate.cc [deleted file]
extensions/browser/guest_view/extension_view/extension_view_guest_delegate.h [deleted file]
extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.cc
extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest.h
extensions/browser/guest_view/mime_handler_view/mime_handler_view_guest_delegate.h
extensions/browser/guest_view/web_view/web_view_guest.cc
extensions/browser/guest_view/web_view/web_view_guest.h
extensions/browser/guest_view/web_view/web_view_guest_delegate.h
extensions/browser/test_extensions_browser_client.cc
extensions/browser/test_extensions_browser_client.h
extensions/extensions.gypi
extensions/shell/browser/shell_app_delegate.cc
extensions/shell/browser/shell_extensions_api_client.cc
extensions/shell/browser/shell_extensions_api_client.h
extensions/shell/browser/shell_extensions_browser_client.cc
extensions/shell/browser/shell_extensions_browser_client.h