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#include "config.h" 6#include "web/OpenedFrameTracker.h" 7 8#include "public/web/WebFrame.h" 9 10namespace blink { 11 12OpenedFrameTracker::OpenedFrameTracker() 13{ 14} 15 16OpenedFrameTracker::~OpenedFrameTracker() 17{ 18 updateOpener(0); 19} 20 21bool OpenedFrameTracker::isEmpty() const 22{ 23 return m_openedFrames.isEmpty(); 24} 25 26void OpenedFrameTracker::add(WebFrame* frame) 27{ 28 m_openedFrames.add(frame); 29} 30 31void OpenedFrameTracker::remove(WebFrame* frame) 32{ 33 m_openedFrames.remove(frame); 34} 35 36void OpenedFrameTracker::updateOpener(WebFrame* frame) 37{ 38 HashSet<WebFrame*>::iterator end = m_openedFrames.end(); 39 for (HashSet<WebFrame*>::iterator it = m_openedFrames.begin(); it != end; ++it) 40 (*it)->m_opener = frame; 41} 42 43} // namespace blink 44