1e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch/* 2e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch * Copyright (C) 2013, Google Inc. All rights reserved. 3e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch * 4e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch * Redistribution and use in source and binary forms, with or without 5e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch * modification, are permitted provided that the following conditions are met: 6e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch * 7e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch * 1. Redistributions of source code must retain the above copyright 8e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch * notice, this list of conditions and the following disclaimer. 9e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch * 2. Redistributions in binary form must reproduce the above copyright 10e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch * notice, this list of conditions and the following disclaimer in the 11e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch * documentation and/or other materials provided with the distribution. 12e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch * 13e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch * THIS SOFTWARE IS PROVIDED BY GOOGLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND 14e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 15e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 16e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch * ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE 17e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 18e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 19e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 20e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 21e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 22e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH 23e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch * DAMAGE. 24e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch */ 25e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch 26e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch#ifndef DocumentXPathEvaluator_h 27e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch#define DocumentXPathEvaluator_h 28e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch 291e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)#include "core/dom/DocumentSupplementable.h" 30e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch#include "core/xml/XPathEvaluator.h" 3151b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles)#include "core/xml/XPathNSResolver.h" 32e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch 33e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdochnamespace WebCore { 34e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch 35df95704c49daea886ddad70775bda23618d6274dBen Murdochclass ExceptionState; 36e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdochclass XPathExpression; 37e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdochclass XPathResult; 38e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch 391e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles)class DocumentXPathEvaluator : public DocumentSupplement { 40e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdochpublic: 41e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch virtual ~DocumentXPathEvaluator(); 42e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch 431e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) static DocumentXPathEvaluator* from(DocumentSupplementable*); 44e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch 451e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) static PassRefPtr<XPathExpression> createExpression(DocumentSupplementable*, 4651b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles) const String& expression, PassRefPtr<XPathNSResolver>, ExceptionState&); 471e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) static PassRefPtr<XPathNSResolver> createNSResolver(DocumentSupplementable*, Node* nodeResolver); 481e202183a5dc46166763171984b285173f8585e5Torne (Richard Coles) static PassRefPtr<XPathResult> evaluate(DocumentSupplementable*, 4951b2906e11752df6c18351cf520e30522d3b53a1Torne (Richard Coles) const String& expression, Node* contextNode, PassRefPtr<XPathNSResolver>, 50df95704c49daea886ddad70775bda23618d6274dBen Murdoch unsigned short type, XPathResult*, ExceptionState&); 51e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch 52e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdochprivate: 53e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch DocumentXPathEvaluator(); 54e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch 55e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch static const char* supplementName() { return "DocumentXPathEvaluator"; } 56e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch 57e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch RefPtr<XPathEvaluator> m_xpathEvaluator; 58e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch}; 59e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch 60e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch} // namespace WebCore 61e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch 62e69819bd8e388ea4ad1636a19aa6b2eed4952191Ben Murdoch#endif // DocumentXPathEvaluator_h 63