| OLD | NEW | 
|---|
| 1 /* | 1 /* | 
| 2  * Copyright (C) 2013 Google, Inc. | 2  * Copyright (C) 2013 Google, Inc. | 
| 3  * | 3  * | 
| 4  * Redistribution and use in source and binary forms, with or without | 4  * Redistribution and use in source and binary forms, with or without | 
| 5  * modification, are permitted provided that the following conditions | 5  * modification, are permitted provided that the following conditions | 
| 6  * are met: | 6  * are met: | 
| 7  * 1. Redistributions of source code must retain the above copyright | 7  * 1. Redistributions of source code must retain the above copyright | 
| 8  *    notice, this list of conditions and the following disclaimer. | 8  *    notice, this list of conditions and the following disclaimer. | 
| 9  * 2. Redistributions in binary form must reproduce the above copyright | 9  * 2. Redistributions in binary form must reproduce the above copyright | 
| 10  *    notice, this list of conditions and the following disclaimer in the | 10  *    notice, this list of conditions and the following disclaimer in the | 
| (...skipping 18 matching lines...) Expand all  Loading... | 
| 29 #include "bindings/core/v8/ExceptionState.h" | 29 #include "bindings/core/v8/ExceptionState.h" | 
| 30 #include "core/xml/XPathExpression.h" | 30 #include "core/xml/XPathExpression.h" | 
| 31 #include "core/xml/XPathResult.h" | 31 #include "core/xml/XPathResult.h" | 
| 32 | 32 | 
| 33 namespace blink { | 33 namespace blink { | 
| 34 | 34 | 
| 35 DocumentXPathEvaluator::DocumentXPathEvaluator() | 35 DocumentXPathEvaluator::DocumentXPathEvaluator() | 
| 36 { | 36 { | 
| 37 } | 37 } | 
| 38 | 38 | 
| 39 DocumentXPathEvaluator& DocumentXPathEvaluator::from(DocumentSupplementable& doc
    ument) | 39 DocumentXPathEvaluator& DocumentXPathEvaluator::from(WillBeHeapSupplementable<Do
    cument>& document) | 
| 40 { | 40 { | 
| 41     DocumentXPathEvaluator* cache = static_cast<DocumentXPathEvaluator*>(Documen
    tSupplement::from(document, supplementName())); | 41     DocumentXPathEvaluator* cache = static_cast<DocumentXPathEvaluator*>(WillBeH
    eapSupplement<Document>::from(document, supplementName())); | 
| 42     if (!cache) { | 42     if (!cache) { | 
| 43         cache = new DocumentXPathEvaluator(); | 43         cache = new DocumentXPathEvaluator(); | 
| 44         DocumentSupplement::provideTo(document, supplementName(), adoptPtrWillBe
    Noop(cache)); | 44         WillBeHeapSupplement<Document>::provideTo(document, supplementName(), ad
    optPtrWillBeNoop(cache)); | 
| 45     } | 45     } | 
| 46     return *cache; | 46     return *cache; | 
| 47 } | 47 } | 
| 48 | 48 | 
| 49 PassRefPtrWillBeRawPtr<XPathExpression> DocumentXPathEvaluator::createExpression
    (DocumentSupplementable& document, | 49 PassRefPtrWillBeRawPtr<XPathExpression> DocumentXPathEvaluator::createExpression
    (WillBeHeapSupplementable<Document>& document, | 
| 50     const String& expression, PassRefPtrWillBeRawPtr<XPathNSResolver> resolver, 
    ExceptionState& exceptionState) | 50     const String& expression, PassRefPtrWillBeRawPtr<XPathNSResolver> resolver, 
    ExceptionState& exceptionState) | 
| 51 { | 51 { | 
| 52     DocumentXPathEvaluator& suplement = from(document); | 52     DocumentXPathEvaluator& suplement = from(document); | 
| 53     if (!suplement.m_xpathEvaluator) | 53     if (!suplement.m_xpathEvaluator) | 
| 54         suplement.m_xpathEvaluator = XPathEvaluator::create(); | 54         suplement.m_xpathEvaluator = XPathEvaluator::create(); | 
| 55     return suplement.m_xpathEvaluator->createExpression(expression, resolver, ex
    ceptionState); | 55     return suplement.m_xpathEvaluator->createExpression(expression, resolver, ex
    ceptionState); | 
| 56 } | 56 } | 
| 57 | 57 | 
| 58 PassRefPtrWillBeRawPtr<XPathNSResolver> DocumentXPathEvaluator::createNSResolver
    (DocumentSupplementable& document, Node* nodeResolver) | 58 PassRefPtrWillBeRawPtr<XPathNSResolver> DocumentXPathEvaluator::createNSResolver
    (WillBeHeapSupplementable<Document>& document, Node* nodeResolver) | 
| 59 { | 59 { | 
| 60     DocumentXPathEvaluator& suplement = from(document); | 60     DocumentXPathEvaluator& suplement = from(document); | 
| 61     if (!suplement.m_xpathEvaluator) | 61     if (!suplement.m_xpathEvaluator) | 
| 62         suplement.m_xpathEvaluator = XPathEvaluator::create(); | 62         suplement.m_xpathEvaluator = XPathEvaluator::create(); | 
| 63     return suplement.m_xpathEvaluator->createNSResolver(nodeResolver); | 63     return suplement.m_xpathEvaluator->createNSResolver(nodeResolver); | 
| 64 } | 64 } | 
| 65 | 65 | 
| 66 PassRefPtrWillBeRawPtr<XPathResult> DocumentXPathEvaluator::evaluate(DocumentSup
    plementable& document, const String& expression, | 66 PassRefPtrWillBeRawPtr<XPathResult> DocumentXPathEvaluator::evaluate(WillBeHeapS
    upplementable<Document>& document, const String& expression, | 
| 67     Node* contextNode, PassRefPtrWillBeRawPtr<XPathNSResolver> resolver, unsigne
    d short type, | 67     Node* contextNode, PassRefPtrWillBeRawPtr<XPathNSResolver> resolver, unsigne
    d short type, | 
| 68     const ScriptValue&, ExceptionState& exceptionState) | 68     const ScriptValue&, ExceptionState& exceptionState) | 
| 69 { | 69 { | 
| 70     DocumentXPathEvaluator& suplement = from(document); | 70     DocumentXPathEvaluator& suplement = from(document); | 
| 71     if (!suplement.m_xpathEvaluator) | 71     if (!suplement.m_xpathEvaluator) | 
| 72         suplement.m_xpathEvaluator = XPathEvaluator::create(); | 72         suplement.m_xpathEvaluator = XPathEvaluator::create(); | 
| 73     return suplement.m_xpathEvaluator->evaluate(expression, contextNode, resolve
    r, type, ScriptValue(), exceptionState); | 73     return suplement.m_xpathEvaluator->evaluate(expression, contextNode, resolve
    r, type, ScriptValue(), exceptionState); | 
| 74 } | 74 } | 
| 75 | 75 | 
| 76 DEFINE_TRACE(DocumentXPathEvaluator) | 76 DEFINE_TRACE(DocumentXPathEvaluator) | 
| 77 { | 77 { | 
| 78     visitor->trace(m_xpathEvaluator); | 78     visitor->trace(m_xpathEvaluator); | 
| 79     DocumentSupplement::trace(visitor); | 79     WillBeHeapSupplement<Document>::trace(visitor); | 
| 80 } | 80 } | 
| 81 | 81 | 
| 82 } // namespace blink | 82 } // namespace blink | 
| OLD | NEW | 
|---|