OLD | NEW |
(Empty) | |
| 1 // Copyright 2015 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. |
| 4 |
| 5 #ifndef EXTENSIONS_BROWSER_API_MIME_HANDLER_PRIVATE_MIME_HANDLER_PRIVATE_H_ |
| 6 #define EXTENSIONS_BROWSER_API_MIME_HANDLER_PRIVATE_MIME_HANDLER_PRIVATE_H_ |
| 7 |
| 8 #include "base/memory/weak_ptr.h" |
| 9 #include "extensions/common/api/mime_handler.mojom.h" |
| 10 |
| 11 namespace extensions { |
| 12 class StreamContainer; |
| 13 |
| 14 class MimeHandlerServiceImpl |
| 15 : public mojo::InterfaceImpl<mime_handler::MimeHandlerService> { |
| 16 public: |
| 17 static void Create( |
| 18 base::WeakPtr<StreamContainer> stream_container, |
| 19 mojo::InterfaceRequest<mime_handler::MimeHandlerService> request); |
| 20 |
| 21 private: |
| 22 explicit MimeHandlerServiceImpl( |
| 23 base::WeakPtr<StreamContainer> stream_container); |
| 24 ~MimeHandlerServiceImpl() override; |
| 25 |
| 26 // mime_handler::MimeHandlerService overrides. |
| 27 void GetStreamInfo(const mojo::Callback<void(mime_handler::StreamInfoPtr)>& |
| 28 callback) override; |
| 29 void AbortStream(const mojo::Callback<void()>& callback) override; |
| 30 |
| 31 // Invoked by the callback used to abort |stream_|. |
| 32 void OnStreamClosed(const mojo::Callback<void()>& callback); |
| 33 |
| 34 // A handle to the stream being handled by the MimeHandlerViewGuest. |
| 35 base::WeakPtr<StreamContainer> stream_; |
| 36 |
| 37 base::WeakPtrFactory<MimeHandlerServiceImpl> weak_factory_; |
| 38 }; |
| 39 |
| 40 } // namespace extensions |
| 41 |
| 42 namespace mojo { |
| 43 |
| 44 template <> |
| 45 struct TypeConverter<extensions::mime_handler::StreamInfoPtr, |
| 46 extensions::StreamContainer> { |
| 47 static extensions::mime_handler::StreamInfoPtr Convert( |
| 48 const extensions::StreamContainer& stream); |
| 49 }; |
| 50 |
| 51 } // namespace mojo |
| 52 |
| 53 #endif // EXTENSIONS_BROWSER_API_MIME_HANDLER_PRIVATE_MIME_HANDLER_PRIVATE_H_ |
OLD | NEW |