1f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)/* 2f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) * Copyright (C) 2012 Google Inc. All Rights Reserved. 3f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) * 4f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) * Redistribution and use in source and binary forms, with or without 5f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) * modification, are permitted provided that the following conditions 6f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) * are met: 7f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) * 1. Redistributions of source code must retain the above copyright 8f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) * notice, this list of conditions and the following disclaimer. 9f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) * 2. Redistributions in binary form must reproduce the above copyright 10f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) * notice, this list of conditions and the following disclaimer in the 11f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) * documentation and/or other materials provided with the distribution. 12f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) * 13f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY 14f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 15f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 16f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR 17f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 18f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 19f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 20f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 21f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 22f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 23f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) */ 25f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 26f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "config.h" 27f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "core/dom/IdTargetObserver.h" 28f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 29f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#include "core/dom/IdTargetObserverRegistry.h" 30f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 31f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)namespace blink { 32f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 33f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)IdTargetObserver::IdTargetObserver(IdTargetObserverRegistry& observerRegistry, const AtomicString& id) 34f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) : m_registry(&observerRegistry) 35f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) , m_id(id) 36f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles){ 37f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) registry().addObserver(m_id, this); 38f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)} 39f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 40f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)IdTargetObserver::~IdTargetObserver() 41f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles){ 42f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#if !ENABLE(OILPAN) 43f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) registry().removeObserver(m_id, this); 44f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#endif 45f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)} 46f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 47f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)void IdTargetObserver::trace(Visitor* visitor) 48f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles){ 49f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) visitor->trace(m_registry); 50f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)} 51f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 52f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)void IdTargetObserver::unregister() 53f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles){ 54f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#if ENABLE(OILPAN) 55f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) registry().removeObserver(m_id, this); 56f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)#endif 57f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)} 58f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 59f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)} // namespace blink 60f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)