ApplicationImpl cleanup, part 1:
[chromium-blink-merge.git] / content / public / child / child_thread.h
blob04d8527c7a20a3cbfbf73d4b357d0e2f8c7000da
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.
5 #ifndef CONTENT_PUBLIC_CHILD_CHILD_THREAD_H_
6 #define CONTENT_PUBLIC_CHILD_CHILD_THREAD_H_
8 #include "content/common/content_export.h"
9 #include "ipc/attachment_broker.h"
10 #include "ipc/ipc_sender.h"
12 #if defined(OS_WIN)
13 #include <windows.h>
14 #endif
16 namespace content {
18 // An abstract base class that contains logic shared between most child
19 // processes of the embedder.
20 class CONTENT_EXPORT ChildThread
21 : public IPC::Sender,
22 virtual public IPC::SupportsAttachmentBrokering {
23 public:
24 // Returns the one child thread for this process. Note that this can only be
25 // accessed when running on the child thread itself.
26 static ChildThread* Get();
28 ~ChildThread() override {}
30 #if defined(OS_WIN)
31 // Request that the given font be loaded by the browser so it's cached by the
32 // OS. Please see ChildProcessHost::PreCacheFont for details.
33 virtual void PreCacheFont(const LOGFONT& log_font) = 0;
35 // Release cached font.
36 virtual void ReleaseCachedFonts() = 0;
37 #endif
40 } // namespace content
42 #endif // CONTENT_PUBLIC_CHILD_CHILD_THREAD_H_