10019e4eead4d990e4304c54a9028aca9122fb256Ben Murdoch/* 20019e4eead4d990e4304c54a9028aca9122fb256Ben Murdoch * Copyright (C) 2013 Google Inc. All Rights Reserved. 30019e4eead4d990e4304c54a9028aca9122fb256Ben Murdoch * 40019e4eead4d990e4304c54a9028aca9122fb256Ben Murdoch * Redistribution and use in source and binary forms, with or without 50019e4eead4d990e4304c54a9028aca9122fb256Ben Murdoch * modification, are permitted provided that the following conditions 60019e4eead4d990e4304c54a9028aca9122fb256Ben Murdoch * are met: 70019e4eead4d990e4304c54a9028aca9122fb256Ben Murdoch * 1. Redistributions of source code must retain the above copyright 80019e4eead4d990e4304c54a9028aca9122fb256Ben Murdoch * notice, this list of conditions and the following disclaimer. 90019e4eead4d990e4304c54a9028aca9122fb256Ben Murdoch * 2. Redistributions in binary form must reproduce the above copyright 100019e4eead4d990e4304c54a9028aca9122fb256Ben Murdoch * notice, this list of conditions and the following disclaimer in the 110019e4eead4d990e4304c54a9028aca9122fb256Ben Murdoch * documentation and/or other materials provided with the distribution. 120019e4eead4d990e4304c54a9028aca9122fb256Ben Murdoch * 130019e4eead4d990e4304c54a9028aca9122fb256Ben Murdoch * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY 140019e4eead4d990e4304c54a9028aca9122fb256Ben Murdoch * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 150019e4eead4d990e4304c54a9028aca9122fb256Ben Murdoch * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 160019e4eead4d990e4304c54a9028aca9122fb256Ben Murdoch * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR 170019e4eead4d990e4304c54a9028aca9122fb256Ben Murdoch * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 180019e4eead4d990e4304c54a9028aca9122fb256Ben Murdoch * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 190019e4eead4d990e4304c54a9028aca9122fb256Ben Murdoch * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 200019e4eead4d990e4304c54a9028aca9122fb256Ben Murdoch * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 210019e4eead4d990e4304c54a9028aca9122fb256Ben Murdoch * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 220019e4eead4d990e4304c54a9028aca9122fb256Ben Murdoch * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 230019e4eead4d990e4304c54a9028aca9122fb256Ben Murdoch * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 240019e4eead4d990e4304c54a9028aca9122fb256Ben Murdoch */ 250019e4eead4d990e4304c54a9028aca9122fb256Ben Murdoch 260019e4eead4d990e4304c54a9028aca9122fb256Ben Murdoch 270019e4eead4d990e4304c54a9028aca9122fb256Ben Murdoch#include "config.h" 280019e4eead4d990e4304c54a9028aca9122fb256Ben Murdoch#include "core/page/PageLifecycleObserver.h" 290019e4eead4d990e4304c54a9028aca9122fb256Ben Murdoch 300019e4eead4d990e4304c54a9028aca9122fb256Ben Murdoch#include "core/page/Page.h" 310019e4eead4d990e4304c54a9028aca9122fb256Ben Murdoch 32c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)namespace blink { 330019e4eead4d990e4304c54a9028aca9122fb256Ben Murdoch 34f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)template<> void observerContext(Page* context, LifecycleObserver<Page>* observer) 35f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){ 36f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles) context->wasObservedBy(observer); 37f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)} 38f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles) 39f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)template<> void unobserverContext(Page* context, LifecycleObserver<Page>* observer) 40f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles){ 41f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles) context->wasUnobservedBy(observer); 42f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles)} 43f79f16f17ddc4f842d7b7a38603e280e94be826aTorne (Richard Coles) 440019e4eead4d990e4304c54a9028aca9122fb256Ben MurdochPageLifecycleObserver::PageLifecycleObserver(Page* page) 4551b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles) : LifecycleObserver<Page>(page, PageLifecycleObserverType) 460019e4eead4d990e4304c54a9028aca9122fb256Ben Murdoch{ 470019e4eead4d990e4304c54a9028aca9122fb256Ben Murdoch} 480019e4eead4d990e4304c54a9028aca9122fb256Ben Murdoch 490019e4eead4d990e4304c54a9028aca9122fb256Ben MurdochPageLifecycleObserver::~PageLifecycleObserver() 500019e4eead4d990e4304c54a9028aca9122fb256Ben Murdoch{ 510019e4eead4d990e4304c54a9028aca9122fb256Ben Murdoch} 520019e4eead4d990e4304c54a9028aca9122fb256Ben Murdoch 530019e4eead4d990e4304c54a9028aca9122fb256Ben MurdochPage* PageLifecycleObserver::page() const 540019e4eead4d990e4304c54a9028aca9122fb256Ben Murdoch{ 550019e4eead4d990e4304c54a9028aca9122fb256Ben Murdoch return static_cast<Page*>(lifecycleContext()); 560019e4eead4d990e4304c54a9028aca9122fb256Ben Murdoch} 570019e4eead4d990e4304c54a9028aca9122fb256Ben Murdoch 58c1847b1379d12d0e05df27436bf19a9b1bf12deaTorne (Richard Coles)} // namespace blink 59