| Index: components/arc/intent_helper/link_handler_model_impl.h | 
| diff --git a/components/arc/intent_helper/link_handler_model_impl.h b/components/arc/intent_helper/link_handler_model_impl.h | 
| new file mode 100644 | 
| index 0000000000000000000000000000000000000000..d82ad9395fb8ec5c150f786ef8b627b9e2962eba | 
| --- /dev/null | 
| +++ b/components/arc/intent_helper/link_handler_model_impl.h | 
| @@ -0,0 +1,51 @@ | 
| +// Copyright 2016 The Chromium Authors. All rights reserved. | 
| +// Use of this source code is governed by a BSD-style license that can be | 
| +// found in the LICENSE file. | 
| + | 
| +#ifndef COMPONENTS_ARC_INTENT_HELPER_LINK_HANDLER_MODEL_IMPL_H_ | 
| +#define COMPONENTS_ARC_INTENT_HELPER_LINK_HANDLER_MODEL_IMPL_H_ | 
| + | 
| +#include "ash/renderer_context_menu/link_handler_model.h" | 
| +#include "base/memory/weak_ptr.h" | 
| +#include "components/arc/arc_service.h" | 
| +#include "components/arc/common/intent_helper.mojom.h" | 
| + | 
| +namespace arc { | 
| + | 
| +class ArcBridgeService; | 
| + | 
| +class LinkHandlerModelImpl : public ash::LinkHandlerModel { | 
| + public: | 
| +  explicit LinkHandlerModelImpl(ArcBridgeService* bridge_service); | 
| +  ~LinkHandlerModelImpl() override; | 
| + | 
| +  // ash::LinkHandlerModel overrides: | 
| +  void AddObserver(Observer* observer) override; | 
| +  void OpenLinkWithHandler(const GURL& url, uint32_t handler_id) override; | 
| + | 
| +  // Starts retrieving handler information for the |url| and returns true. | 
| +  // Returns false when the information cannot be retrieved. In that case, | 
| +  // the caller should delete |this| object. | 
| +  bool Init(const GURL& url); | 
| + | 
| + private: | 
| +  IntentHelperInstance* GetIntentHelper(); | 
| +  void OnUrlHandlerList(mojo::Array<UrlHandlerInfoPtr> handlers); | 
| +  void NotifyObserver(); | 
| + | 
| +  ArcBridgeService* bridge_service_; | 
| + | 
| +  Observer* observer_; | 
| +  mojo::Array<UrlHandlerInfoPtr> handlers_; | 
| +  bool has_results_; | 
| + | 
| +  // Always keep this the last member of this class to make sure it's the | 
| +  // first thing to be destructed. | 
| +  base::WeakPtrFactory<LinkHandlerModelImpl> weak_ptr_factory_; | 
| + | 
| +  DISALLOW_COPY_AND_ASSIGN(LinkHandlerModelImpl); | 
| +}; | 
| + | 
| +}  // namespace arc | 
| + | 
| +#endif  // COMPONENTS_ARC_INTENT_HELPER_LINK_HANDLER_MODEL_IMPL_H_ | 
|  |