1323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 2323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 3323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles)// found in the LICENSE file. 4323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles) 5323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles)#include "config.h" 6323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles)#include "web/OpenedFrameTracker.h" 7323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles) 8323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles)#include "public/web/WebFrame.h" 9323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles) 10323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles)namespace blink { 11323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles) 12323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles)OpenedFrameTracker::OpenedFrameTracker() 13323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles){ 14323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles)} 15323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles) 16323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles)OpenedFrameTracker::~OpenedFrameTracker() 17323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles){ 18323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles) updateOpener(0); 19323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles)} 20323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles) 21323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles)bool OpenedFrameTracker::isEmpty() const 22323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles){ 23323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles) return m_openedFrames.isEmpty(); 24323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles)} 25323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles) 26323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles)void OpenedFrameTracker::add(WebFrame* frame) 27323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles){ 28323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles) m_openedFrames.add(frame); 29323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles)} 30323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles) 31323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles)void OpenedFrameTracker::remove(WebFrame* frame) 32323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles){ 33323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles) m_openedFrames.remove(frame); 34323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles)} 35323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles) 36323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles)void OpenedFrameTracker::updateOpener(WebFrame* frame) 37323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles){ 38323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles) HashSet<WebFrame*>::iterator end = m_openedFrames.end(); 39323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles) for (HashSet<WebFrame*>::iterator it = m_openedFrames.begin(); it != end; ++it) 40323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles) (*it)->m_opener = frame; 41323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles)} 42323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles) 43323480423219ecd77329f8326dc5e0e3b50926d4Torne (Richard Coles)} // namespace blink 44