| Index: chrome/browser/renderer_context_menu/render_view_context_menu_browsertest_util.cc
|
| diff --git a/chrome/browser/renderer_context_menu/render_view_context_menu_browsertest_util.cc b/chrome/browser/renderer_context_menu/render_view_context_menu_browsertest_util.cc
|
| index 2a27e3c422d2425216d5953b1327a793fe5176d4..2f822262624025495b9eae10580395955148641d 100644
|
| --- a/chrome/browser/renderer_context_menu/render_view_context_menu_browsertest_util.cc
|
| +++ b/chrome/browser/renderer_context_menu/render_view_context_menu_browsertest_util.cc
|
| @@ -50,29 +50,26 @@ void ContextMenuNotificationObserver::ExecuteCommand(
|
| context_menu->Cancel();
|
| }
|
|
|
| -SaveLinkAsContextMenuObserver::SaveLinkAsContextMenuObserver(
|
| - const content::NotificationSource& source)
|
| - : ContextMenuNotificationObserver(IDC_CONTENT_CONTEXT_SAVELINKAS),
|
| - menu_visible_(false) {
|
| +ContextMenuWaiter::ContextMenuWaiter(const content::NotificationSource& source)
|
| + : menu_visible_(false) {
|
| + registrar_.Add(this, chrome::NOTIFICATION_RENDER_VIEW_CONTEXT_MENU_SHOWN,
|
| + content::NotificationService::AllSources());
|
| }
|
|
|
| -SaveLinkAsContextMenuObserver::~SaveLinkAsContextMenuObserver() {
|
| +ContextMenuWaiter::~ContextMenuWaiter() {
|
| }
|
|
|
| -void SaveLinkAsContextMenuObserver::Observe(
|
| - int type,
|
| - const content::NotificationSource& source,
|
| - const content::NotificationDetails& details) {
|
| +void ContextMenuWaiter::Observe(int type,
|
| + const content::NotificationSource& source,
|
| + const content::NotificationDetails& details) {
|
| switch (type) {
|
| case chrome::NOTIFICATION_RENDER_VIEW_CONTEXT_MENU_SHOWN: {
|
| menu_visible_ = true;
|
| RenderViewContextMenu* context_menu =
|
| content::Source<RenderViewContextMenu>(source).ptr();
|
| base::MessageLoop::current()->PostTask(
|
| - FROM_HERE,
|
| - base::Bind(&SaveLinkAsContextMenuObserver::Cancel,
|
| - base::Unretained(this),
|
| - context_menu));
|
| + FROM_HERE, base::Bind(&ContextMenuWaiter::Cancel,
|
| + base::Unretained(this), context_menu));
|
| break;
|
| }
|
|
|
| @@ -81,21 +78,22 @@ void SaveLinkAsContextMenuObserver::Observe(
|
| }
|
| }
|
|
|
| -void SaveLinkAsContextMenuObserver::WaitForMenu() {
|
| +void ContextMenuWaiter::WaitForMenuOpenAndClose() {
|
| content::WindowedNotificationObserver menu_observer(
|
| chrome::NOTIFICATION_RENDER_VIEW_CONTEXT_MENU_SHOWN,
|
| content::NotificationService::AllSources());
|
| if (!menu_visible_)
|
| menu_observer.Wait();
|
| +
|
| + content::RunAllPendingInMessageLoop();
|
| menu_visible_ = false;
|
| }
|
|
|
| -base::string16 SaveLinkAsContextMenuObserver::GetSuggestedFilename() {
|
| - return params_.suggested_filename;
|
| +content::ContextMenuParams& ContextMenuWaiter::params() {
|
| + return params_;
|
| }
|
|
|
| -void SaveLinkAsContextMenuObserver::Cancel(
|
| - RenderViewContextMenu* context_menu) {
|
| +void ContextMenuWaiter::Cancel(RenderViewContextMenu* context_menu) {
|
| params_ = context_menu->params();
|
| context_menu->Cancel();
|
| }
|
|
|