| Index: chrome/browser/chromeos/arc/arc_intent_helper_bridge.cc
|
| diff --git a/chrome/browser/chromeos/arc/arc_intent_helper_bridge.cc b/chrome/browser/chromeos/arc/arc_intent_helper_bridge.cc
|
| index ddc9ecc44f43e31936ca08ab3d85fbd95cfc3fa7..b0ad6448dd30ded69104f17f5dcf72a8e30118f3 100644
|
| --- a/chrome/browser/chromeos/arc/arc_intent_helper_bridge.cc
|
| +++ b/chrome/browser/chromeos/arc/arc_intent_helper_bridge.cc
|
| @@ -4,6 +4,7 @@
|
|
|
| #include "chrome/browser/chromeos/arc/arc_intent_helper_bridge.h"
|
|
|
| +#include "ash/shell.h"
|
| #include "base/json/json_writer.h"
|
| #include "chrome/browser/profiles/profile_manager.h"
|
| #include "chrome/browser/ui/ash/multi_user/multi_user_util.h"
|
| @@ -28,9 +29,11 @@ void ArcIntentHelperBridge::OnIntentHelperInstanceReady() {
|
| arc_bridge_service()->intent_helper_instance()->Init(
|
| binding_.CreateInterfacePtrAndBind());
|
| settings_bridge_.reset(new SettingsBridge(this));
|
| + ash::Shell::GetInstance()->open_with_menu_controller()->SetDelegate(this);
|
| }
|
|
|
| void ArcIntentHelperBridge::OnIntentHelperInstanceClosed() {
|
| + ash::Shell::GetInstance()->open_with_menu_controller()->SetDelegate(NULL);
|
| settings_bridge_.reset();
|
| }
|
|
|
| @@ -69,4 +72,24 @@ void ArcIntentHelperBridge::OnBroadcastNeeded(
|
| }
|
| }
|
|
|
| +int ArcIntentHelperBridge::PopulateOpenWithMenu(
|
| + RenderViewContextMenuProxy* proxy,
|
| + int menu_id_start,
|
| + size_t num_menu_items,
|
| + const GURL& url) {
|
| + menu_delegate_impl_.reset(
|
| + new OpenWithMenuControllerDelegate(arc_bridge_service()));
|
| + return menu_delegate_impl_->Init(proxy, menu_id_start, num_menu_items, url);
|
| +}
|
| +
|
| +void ArcIntentHelperBridge::ExecuteCommand(int id) {
|
| + if (!menu_delegate_impl_)
|
| + return;
|
| + menu_delegate_impl_->ExecuteCommand(id);
|
| +}
|
| +
|
| +void ArcIntentHelperBridge::MenuClosed() {
|
| + menu_delegate_impl_.reset();
|
| +}
|
| +
|
| } // namespace arc
|
|
|