Skip to content

Commit

Permalink
Get rid of the extensions' MessageHandler RenderViewHostObserver. Mov…
Browse files Browse the repository at this point in the history
…e this code to ExtensionWebContentsObserver instead as part of removing RenderViewHostObserver.

I created ExtensionWebContentsObserver for a few more WebContents' that called extensions::SetViewType.

BUG=306569
R=benwells@chromium.org, mpcomplete@chromium.org

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

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@229957 0039d316-1c4b-4281-b951-d872f2087c98
  • Loading branch information
jam@chromium.org committed Oct 21, 2013
1 parent 59e0cc9 commit db40ea3
Show file tree
Hide file tree
Showing 13 changed files with 41 additions and 114 deletions.
1 change: 1 addition & 0 deletions apps/DEPS
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ include_rules = [
"+chrome/browser/extensions/extension_service.h",
"+chrome/browser/extensions/extension_system.h",
"+chrome/browser/extensions/extension_system_factory.h",
"+chrome/browser/extensions/extension_web_contents_observer.h",
"+chrome/browser/extensions/lazy_background_task_queue.h",
"+chrome/browser/extensions/suggest_permission_util.h",
"+chrome/browser/extensions/unpacked_installer.h",
Expand Down
2 changes: 2 additions & 0 deletions apps/shell_window.cc
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
#include "chrome/browser/chrome_notification_types.h"
#include "chrome/browser/extensions/extension_process_manager.h"
#include "chrome/browser/extensions/extension_system.h"
#include "chrome/browser/extensions/extension_web_contents_observer.h"
#include "chrome/browser/extensions/suggest_permission_util.h"
#include "chrome/browser/lifetime/application_lifetime.h"
#include "chrome/browser/profiles/profile.h"
Expand Down Expand Up @@ -154,6 +155,7 @@ void ShellWindow::Init(const GURL& url,
WebContents* web_contents = shell_window_contents_->GetWebContents();
delegate_->InitWebContents(web_contents);
WebContentsModalDialogManager::CreateForWebContents(web_contents);
extensions::ExtensionWebContentsObserver::CreateForWebContents(web_contents);

web_contents->SetDelegate(this);
WebContentsModalDialogManager::FromWebContents(web_contents)->
Expand Down
11 changes: 0 additions & 11 deletions chrome/browser/chrome_browser_main.cc
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,6 @@
#include "chrome/browser/extensions/extension_protocols.h"
#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/extensions/extension_system.h"
#include "chrome/browser/extensions/message_handler.h"
#include "chrome/browser/extensions/startup_helper.h"
#include "chrome/browser/first_run/first_run.h"
#include "chrome/browser/first_run/upgrade_util.h"
Expand Down Expand Up @@ -504,11 +503,6 @@ class LoadCompleteListener : public content::NotificationObserver {
DISALLOW_COPY_AND_ASSIGN(LoadCompleteListener);
};

void RenderViewHostCreated(content::RenderViewHost* render_view_host) {
new extensions::MessageHandler(render_view_host);
}


} // namespace

namespace chrome_browser {
Expand All @@ -534,7 +528,6 @@ ChromeBrowserMainParts::ChromeBrowserMainParts(
shutdown_watcher_(new ShutdownWatcherHelper()),
startup_timer_(new performance_monitor::StartupTimer()),
browser_field_trials_(parameters.command_line),
rvh_callback_(base::Bind(&RenderViewHostCreated)),
translate_manager_(NULL),
profile_(NULL),
run_message_loop_(true),
Expand All @@ -550,13 +543,9 @@ ChromeBrowserMainParts::ChromeBrowserMainParts(
// a ChromeNetworkDelegate attached that selectively allows cookies again.
if (!disable_enforcing_cookie_policies_for_tests_)
net::URLRequest::SetDefaultCookiePolicyToBlock();

content::RenderViewHost::AddCreatedCallback(rvh_callback_);
}

ChromeBrowserMainParts::~ChromeBrowserMainParts() {
content::RenderViewHost::RemoveCreatedCallback(rvh_callback_);

for (int i = static_cast<int>(chrome_extra_parts_.size())-1; i >= 0; --i)
delete chrome_extra_parts_[i];
chrome_extra_parts_.clear();
Expand Down
3 changes: 0 additions & 3 deletions chrome/browser/chrome_browser_main.h
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,6 @@
#include "chrome/browser/task_profiler/auto_tracking.h"
#include "chrome/browser/ui/startup/startup_browser_creator.h"
#include "content/public/browser/browser_main_parts.h"
#include "content/public/browser/render_view_host.h"
#include "content/public/common/main_function_params.h"

class ActiveTabTracker;
Expand Down Expand Up @@ -154,8 +153,6 @@ class ChromeBrowserMainParts : public content::BrowserMainParts {

ChromeBrowserFieldTrials browser_field_trials_;

content::RenderViewHost::CreatedCallback rvh_callback_;

// Vector of additional ChromeBrowserMainExtraParts.
// Parts are deleted in the inverse order they are added.
std::vector<ChromeBrowserMainExtraParts*> chrome_extra_parts_;
Expand Down
2 changes: 2 additions & 0 deletions chrome/browser/devtools/devtools_window.cc
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
#include "chrome/browser/extensions/api/debugger/debugger_api.h"
#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/extensions/extension_system.h"
#include "chrome/browser/extensions/extension_web_contents_observer.h"
#include "chrome/browser/file_select_helper.h"
#include "chrome/browser/infobars/confirm_infobar_delegate.h"
#include "chrome/browser/prefs/pref_service_syncable.h"
Expand Down Expand Up @@ -572,6 +573,7 @@ DevToolsWindow::DevToolsWindow(Profile* profile,
web_contents_, this));
file_helper_.reset(new DevToolsFileHelper(web_contents_, profile));
file_system_indexer_ = new DevToolsFileSystemIndexer();
extensions::ExtensionWebContentsObserver::CreateForWebContents(web_contents_);

g_instances.Get().push_back(this);

Expand Down
24 changes: 24 additions & 0 deletions chrome/browser/extensions/extension_web_contents_observer.cc
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@

#include "chrome/browser/extensions/extension_web_contents_observer.h"

#include "chrome/browser/extensions/api/messaging/message_service.h"
#include "chrome/browser/extensions/extension_service.h"
#include "chrome/browser/extensions/extension_system.h"
#include "chrome/browser/profiles/profile.h"
Expand All @@ -14,6 +15,7 @@
#include "content/public/browser/render_view_host.h"
#include "content/public/browser/site_instance.h"
#include "content/public/browser/web_contents.h"
#include "extensions/browser/view_type_utils.h"
#include "extensions/common/constants.h"

DEFINE_WEB_CONTENTS_USER_DATA_KEY(extensions::ExtensionWebContentsObserver);
Expand All @@ -31,6 +33,10 @@ ExtensionWebContentsObserver::~ExtensionWebContentsObserver() {

void ExtensionWebContentsObserver::RenderViewCreated(
content::RenderViewHost* render_view_host) {
render_view_host->Send(new ExtensionMsg_NotifyRenderViewType(
render_view_host->GetRoutingID(),
extensions::GetViewType(web_contents())));

const Extension* extension = GetExtension(render_view_host);
if (!extension)
return;
Expand Down Expand Up @@ -83,6 +89,24 @@ void ExtensionWebContentsObserver::RenderViewCreated(
}
}

bool ExtensionWebContentsObserver::OnMessageReceived(
const IPC::Message& message) {
bool handled = true;
IPC_BEGIN_MESSAGE_MAP(ExtensionWebContentsObserver, message)
IPC_MESSAGE_HANDLER(ExtensionHostMsg_PostMessage, OnPostMessage)
IPC_MESSAGE_UNHANDLED(handled = false)
IPC_END_MESSAGE_MAP()
return handled;
}

void ExtensionWebContentsObserver::OnPostMessage(int port_id,
const std::string& message) {
MessageService* message_service = MessageService::Get(profile_);
if (message_service) {
message_service->PostMessage(port_id, message);
}
}

const Extension* ExtensionWebContentsObserver::GetExtension(
content::RenderViewHost* render_view_host) {
// Note that due to ChromeContentBrowserClient::GetEffectiveURL(), hosted apps
Expand Down
3 changes: 3 additions & 0 deletions chrome/browser/extensions/extension_web_contents_observer.h
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,9 @@ class ExtensionWebContentsObserver
// content::WebContentsObserver overrides.
virtual void RenderViewCreated(
content::RenderViewHost* render_view_host) OVERRIDE;
virtual bool OnMessageReceived(const IPC::Message& message) OVERRIDE;

void OnPostMessage(int port_id, const std::string& message);

// Gets the extension or app (if any) that is associated with a RVH.
const Extension* GetExtension(content::RenderViewHost* render_view_host);
Expand Down
55 changes: 0 additions & 55 deletions chrome/browser/extensions/message_handler.cc

This file was deleted.

43 changes: 0 additions & 43 deletions chrome/browser/extensions/message_handler.h

This file was deleted.

3 changes: 3 additions & 0 deletions chrome/browser/notifications/balloon_host.cc
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
#include "chrome/browser/notifications/balloon_host.h"

#include "chrome/browser/chrome_notification_types.h"
#include "chrome/browser/extensions/extension_web_contents_observer.h"
#include "chrome/browser/notifications/balloon.h"
#include "chrome/browser/notifications/balloon_collection_impl.h"
#include "chrome/browser/notifications/notification.h"
Expand Down Expand Up @@ -141,6 +142,8 @@ void BalloonHost::Init() {
extensions::SetViewType(
web_contents_.get(), extensions::VIEW_TYPE_NOTIFICATION);
web_contents_->SetDelegate(this);
extensions::ExtensionWebContentsObserver::CreateForWebContents(
web_contents_.get());
Observe(web_contents_.get());
renderer_preferences_util::UpdateFromSystemSettings(
web_contents_->GetMutableRendererPrefs(), balloon_->profile());
Expand Down
3 changes: 3 additions & 0 deletions chrome/browser/tab_contents/background_contents.cc
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@

#include "chrome/browser/background/background_contents_service.h"
#include "chrome/browser/chrome_notification_types.h"
#include "chrome/browser/extensions/extension_web_contents_observer.h"
#include "chrome/browser/profiles/profile.h"
#include "chrome/browser/renderer_preferences_util.h"
#include "chrome/browser/ui/webui/chrome_web_ui_controller_factory.h"
Expand Down Expand Up @@ -47,6 +48,8 @@ BackgroundContents::BackgroundContents(
web_contents_.get(), extensions::VIEW_TYPE_BACKGROUND_CONTENTS);
web_contents_->SetDelegate(this);
content::WebContentsObserver::Observe(web_contents_.get());
extensions::ExtensionWebContentsObserver::CreateForWebContents(
web_contents_.get());

// Close ourselves when the application is shutting down.
registrar_.Add(this, chrome::NOTIFICATION_APP_TERMINATING,
Expand Down
3 changes: 3 additions & 0 deletions chrome/browser/ui/panels/panel_host.cc
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
#include "base/message_loop/message_loop.h"
#include "chrome/browser/chrome_notification_types.h"
#include "chrome/browser/chrome_page_zoom.h"
#include "chrome/browser/extensions/extension_web_contents_observer.h"
#include "chrome/browser/extensions/window_controller.h"
#include "chrome/browser/favicon/favicon_tab_helper.h"
#include "chrome/browser/profiles/profile.h"
Expand Down Expand Up @@ -63,6 +64,8 @@ void PanelHost::Init(const GURL& url) {

FaviconTabHelper::CreateForWebContents(web_contents_.get());
PrefsTabHelper::CreateForWebContents(web_contents_.get());
extensions::ExtensionWebContentsObserver::CreateForWebContents(
web_contents_.get());

web_contents_->GetController().LoadURL(
url, content::Referrer(), content::PAGE_TRANSITION_LINK, std::string());
Expand Down
2 changes: 0 additions & 2 deletions chrome/chrome_browser_extensions.gypi
Original file line number Diff line number Diff line change
Expand Up @@ -803,8 +803,6 @@
'browser/extensions/management_policy.h',
'browser/extensions/menu_manager.cc',
'browser/extensions/menu_manager.h',
'browser/extensions/message_handler.cc',
'browser/extensions/message_handler.h',
'browser/extensions/navigation_observer.cc',
'browser/extensions/navigation_observer.h',
'browser/extensions/pack_extension_job.cc',
Expand Down

0 comments on commit db40ea3

Please sign in to comment.