Introduce ProfilerMetricsProvider
[chromium-blink-merge.git] / chrome / browser / renderer_context_menu / render_view_context_menu_browsertest_util.cc
blobef42c55e5c1d9c054a3420b72d1123bc6451f35d
1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "chrome/browser/renderer_context_menu/render_view_context_menu_browsertest_util.h"
7 #include "base/bind.h"
8 #include "base/message_loop/message_loop.h"
9 #include "chrome/browser/chrome_notification_types.h"
10 #include "chrome/browser/renderer_context_menu/render_view_context_menu.h"
11 #include "content/public/browser/notification_service.h"
13 ContextMenuNotificationObserver::ContextMenuNotificationObserver(
14 int command_to_execute)
15 : command_to_execute_(command_to_execute) {
16 registrar_.Add(this,
17 chrome::NOTIFICATION_RENDER_VIEW_CONTEXT_MENU_SHOWN,
18 content::NotificationService::AllSources());
21 ContextMenuNotificationObserver::~ContextMenuNotificationObserver() {
24 void ContextMenuNotificationObserver::Observe(
25 int type,
26 const content::NotificationSource& source,
27 const content::NotificationDetails& details) {
28 switch (type) {
29 case chrome::NOTIFICATION_RENDER_VIEW_CONTEXT_MENU_SHOWN: {
30 RenderViewContextMenu* context_menu =
31 content::Source<RenderViewContextMenu>(source).ptr();
32 base::MessageLoop::current()->PostTask(
33 FROM_HERE,
34 base::Bind(&ContextMenuNotificationObserver::ExecuteCommand,
35 base::Unretained(this), context_menu));
36 break;
39 default:
40 NOTREACHED();
44 void ContextMenuNotificationObserver::ExecuteCommand(
45 RenderViewContextMenu* context_menu) {
46 context_menu->ExecuteCommand(command_to_execute_, 0);
47 context_menu->Cancel();