Upstream version 7.36.149.0
[platform/framework/web/crosswalk.git] / src / third_party / WebKit / Source / web / OpenedFrameTracker.h
1 // Copyright 2014 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 OpenedFrameTracker_h
6 #define OpenedFrameTracker_h
7
8 #include "wtf/HashSet.h"
9 #include "wtf/Noncopyable.h"
10
11 namespace blink {
12
13 class WebFrame;
14
15 // Small helper class to track the set of frames that a WebFrame has opened.
16 // Due to layering restrictions, we need to hide the implementation, since
17 // public/web/ cannot depend on wtf/.
18 class OpenedFrameTracker {
19     WTF_MAKE_NONCOPYABLE(OpenedFrameTracker);
20 public:
21     OpenedFrameTracker();
22     ~OpenedFrameTracker();
23
24     bool isEmpty() const;
25     void add(WebFrame*);
26     void remove(WebFrame*);
27
28     // Updates the opener for all tracked frames.
29     void updateOpener(WebFrame*);
30
31 private:
32     WTF::HashSet<WebFrame*> m_openedFrames;
33 };
34
35 } // namespace blink
36
37 #endif // WebFramePrivate_h