OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2013 Google Inc. All rights reserved. | 2 * Copyright (C) 2013 Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 22 matching lines...) Expand all Loading... |
33 | 33 |
34 #include "core/CoreExport.h" | 34 #include "core/CoreExport.h" |
35 #include "platform/heap/Handle.h" | 35 #include "platform/heap/Handle.h" |
36 #include "wtf/Allocator.h" | 36 #include "wtf/Allocator.h" |
37 #include "wtf/Noncopyable.h" | 37 #include "wtf/Noncopyable.h" |
38 #include "wtf/text/AtomicString.h" | 38 #include "wtf/text/AtomicString.h" |
39 #include <memory> | 39 #include <memory> |
40 | 40 |
41 namespace blink { | 41 namespace blink { |
42 | 42 |
43 class BrowserControls; | |
44 class Page; | 43 class Page; |
45 | 44 |
46 // FrameHost is the set of global data shared between multiple frames | 45 // FrameHost is the set of global data shared between multiple frames |
47 // and is provided by the embedder to each frame when created. | 46 // and is provided by the embedder to each frame when created. |
48 // FrameHost currently corresponds to the Page object in core/page | 47 // FrameHost currently corresponds to the Page object in core/page |
49 // however the concept of a Page is moving up out of Blink. | 48 // however the concept of a Page is moving up out of Blink. |
50 // In an out-of-process iframe world, a single Page may have | 49 // In an out-of-process iframe world, a single Page may have |
51 // multiple frames in different process, thus Page becomes a | 50 // multiple frames in different process, thus Page becomes a |
52 // browser-level concept and Blink core/ only knows about its LocalFrame (and | 51 // browser-level concept and Blink core/ only knows about its LocalFrame (and |
53 // FrameHost). Separating Page from the rest of core/ through this indirection | 52 // FrameHost). Separating Page from the rest of core/ through this indirection |
54 // allows us to slowly refactor Page without breaking the rest of core. | 53 // allows us to slowly refactor Page without breaking the rest of core. |
55 // TODO(sashab): Merge FrameHost back into Page. crbug.com/688614 | 54 // TODO(sashab): Merge FrameHost back into Page. crbug.com/688614 |
56 class CORE_EXPORT FrameHost final | 55 class CORE_EXPORT FrameHost final |
57 : public GarbageCollectedFinalized<FrameHost> { | 56 : public GarbageCollectedFinalized<FrameHost> { |
58 WTF_MAKE_NONCOPYABLE(FrameHost); | 57 WTF_MAKE_NONCOPYABLE(FrameHost); |
59 | 58 |
60 public: | 59 public: |
61 static FrameHost* create(Page&); | 60 static FrameHost* create(Page&); |
62 ~FrameHost(); | 61 ~FrameHost(); |
63 | 62 |
64 Page& page(); | |
65 const Page& page() const; | |
66 | |
67 BrowserControls& browserControls(); | |
68 const BrowserControls& browserControls() const; | |
69 | |
70 DECLARE_TRACE(); | 63 DECLARE_TRACE(); |
71 | 64 |
72 private: | 65 private: |
73 explicit FrameHost(Page&); | 66 explicit FrameHost(Page&); |
74 | 67 |
75 const Member<Page> m_page; | 68 const Member<Page> m_page; |
76 }; | 69 }; |
77 | 70 |
78 } // namespace blink | 71 } // namespace blink |
79 | 72 |
80 #endif // FrameHost_h | 73 #endif // FrameHost_h |
OLD | NEW |