| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef CONTENT_CHILD_CHILD_THREAD_IMPL_H_ | 5 #ifndef CONTENT_CHILD_CHILD_THREAD_IMPL_H_ |
| 6 #define CONTENT_CHILD_CHILD_THREAD_IMPL_H_ | 6 #define CONTENT_CHILD_CHILD_THREAD_IMPL_H_ |
| 7 | 7 |
| 8 #include <stddef.h> | 8 #include <stddef.h> |
| 9 #include <stdint.h> | 9 #include <stdint.h> |
| 10 | 10 |
| (...skipping 222 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 233 bool RouteMessage(const IPC::Message& msg) override; | 233 bool RouteMessage(const IPC::Message& msg) override; |
| 234 | 234 |
| 235 private: | 235 private: |
| 236 IPC::Sender* const sender_; | 236 IPC::Sender* const sender_; |
| 237 }; | 237 }; |
| 238 | 238 |
| 239 void Init(const Options& options); | 239 void Init(const Options& options); |
| 240 | 240 |
| 241 // We create the channel first without connecting it so we can add filters | 241 // We create the channel first without connecting it so we can add filters |
| 242 // prior to any messages being received, then connect it afterwards. | 242 // prior to any messages being received, then connect it afterwards. |
| 243 void ConnectChannel(bool use_mojo_channel); | 243 void ConnectChannel(); |
| 244 | 244 |
| 245 // IPC message handlers. | 245 // IPC message handlers. |
| 246 void OnShutdown(); | 246 void OnShutdown(); |
| 247 void OnSetProfilerStatus(tracked_objects::ThreadData::Status status); | 247 void OnSetProfilerStatus(tracked_objects::ThreadData::Status status); |
| 248 void OnGetChildProfilerData(int sequence_number, int current_profiling_phase); | 248 void OnGetChildProfilerData(int sequence_number, int current_profiling_phase); |
| 249 void OnProfilingPhaseCompleted(int profiling_phase); | 249 void OnProfilingPhaseCompleted(int profiling_phase); |
| 250 #ifdef IPC_MESSAGE_LOG_ENABLED | 250 #ifdef IPC_MESSAGE_LOG_ENABLED |
| 251 void OnSetIPCLoggingEnabled(bool enable); | 251 void OnSetIPCLoggingEnabled(bool enable); |
| 252 #endif | 252 #endif |
| 253 | 253 |
| (...skipping 15 matching lines...) Expand all Loading... |
| 269 std::unique_ptr<shell::InterfaceRegistry> interface_registry_; | 269 std::unique_ptr<shell::InterfaceRegistry> interface_registry_; |
| 270 std::unique_ptr<shell::InterfaceProvider> remote_interfaces_; | 270 std::unique_ptr<shell::InterfaceProvider> remote_interfaces_; |
| 271 std::unique_ptr<MojoShellConnection> mojo_shell_connection_; | 271 std::unique_ptr<MojoShellConnection> mojo_shell_connection_; |
| 272 std::unique_ptr<shell::Connection> browser_connection_; | 272 std::unique_ptr<shell::Connection> browser_connection_; |
| 273 | 273 |
| 274 mojo::AssociatedBinding<mojom::RouteProvider> route_provider_binding_; | 274 mojo::AssociatedBinding<mojom::RouteProvider> route_provider_binding_; |
| 275 mojo::AssociatedBindingSet<mojom::AssociatedInterfaceProvider> | 275 mojo::AssociatedBindingSet<mojom::AssociatedInterfaceProvider> |
| 276 associated_interface_provider_bindings_; | 276 associated_interface_provider_bindings_; |
| 277 mojom::RouteProviderAssociatedPtr remote_route_provider_; | 277 mojom::RouteProviderAssociatedPtr remote_route_provider_; |
| 278 | 278 |
| 279 std::string channel_name_; | |
| 280 std::unique_ptr<IPC::SyncChannel> channel_; | 279 std::unique_ptr<IPC::SyncChannel> channel_; |
| 281 | 280 |
| 282 // Allows threads other than the main thread to send sync messages. | 281 // Allows threads other than the main thread to send sync messages. |
| 283 scoped_refptr<IPC::SyncMessageFilter> sync_message_filter_; | 282 scoped_refptr<IPC::SyncMessageFilter> sync_message_filter_; |
| 284 | 283 |
| 285 scoped_refptr<ThreadSafeSender> thread_safe_sender_; | 284 scoped_refptr<ThreadSafeSender> thread_safe_sender_; |
| 286 | 285 |
| 287 // Implements message routing functionality to the consumers of | 286 // Implements message routing functionality to the consumers of |
| 288 // ChildThreadImpl. | 287 // ChildThreadImpl. |
| 289 ChildThreadMessageRouter router_; | 288 ChildThreadMessageRouter router_; |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 329 | 328 |
| 330 DISALLOW_COPY_AND_ASSIGN(ChildThreadImpl); | 329 DISALLOW_COPY_AND_ASSIGN(ChildThreadImpl); |
| 331 }; | 330 }; |
| 332 | 331 |
| 333 struct ChildThreadImpl::Options { | 332 struct ChildThreadImpl::Options { |
| 334 Options(const Options& other); | 333 Options(const Options& other); |
| 335 ~Options(); | 334 ~Options(); |
| 336 | 335 |
| 337 class Builder; | 336 class Builder; |
| 338 | 337 |
| 339 std::string channel_name; | |
| 340 bool use_mojo_channel; | |
| 341 bool auto_start_mojo_shell_connection; | 338 bool auto_start_mojo_shell_connection; |
| 342 bool connect_to_browser; | 339 bool connect_to_browser; |
| 343 scoped_refptr<base::SequencedTaskRunner> browser_process_io_runner; | 340 scoped_refptr<base::SequencedTaskRunner> browser_process_io_runner; |
| 344 std::vector<IPC::MessageFilter*> startup_filters; | 341 std::vector<IPC::MessageFilter*> startup_filters; |
| 345 std::string in_process_application_token; | 342 std::string in_process_application_token; |
| 346 | 343 |
| 347 private: | 344 private: |
| 348 Options(); | 345 Options(); |
| 349 }; | 346 }; |
| 350 | 347 |
| 351 class ChildThreadImpl::Options::Builder { | 348 class ChildThreadImpl::Options::Builder { |
| 352 public: | 349 public: |
| 353 Builder(); | 350 Builder(); |
| 354 | 351 |
| 355 Builder& InBrowserProcess(const InProcessChildThreadParams& params); | 352 Builder& InBrowserProcess(const InProcessChildThreadParams& params); |
| 356 Builder& UseMojoChannel(bool use_mojo_channel); | |
| 357 Builder& AutoStartMojoShellConnection(bool auto_start); | 353 Builder& AutoStartMojoShellConnection(bool auto_start); |
| 358 Builder& ConnectToBrowser(bool connect_to_browser); | 354 Builder& ConnectToBrowser(bool connect_to_browser); |
| 359 Builder& WithChannelName(const std::string& channel_name); | |
| 360 Builder& AddStartupFilter(IPC::MessageFilter* filter); | 355 Builder& AddStartupFilter(IPC::MessageFilter* filter); |
| 361 | 356 |
| 362 Options Build(); | 357 Options Build(); |
| 363 | 358 |
| 364 private: | 359 private: |
| 365 struct Options options_; | 360 struct Options options_; |
| 366 | 361 |
| 367 DISALLOW_COPY_AND_ASSIGN(Builder); | 362 DISALLOW_COPY_AND_ASSIGN(Builder); |
| 368 }; | 363 }; |
| 369 | 364 |
| 370 } // namespace content | 365 } // namespace content |
| 371 | 366 |
| 372 #endif // CONTENT_CHILD_CHILD_THREAD_IMPL_H_ | 367 #endif // CONTENT_CHILD_CHILD_THREAD_IMPL_H_ |
| OLD | NEW |