| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2010 Google, Inc. All Rights Reserved. | 2 * Copyright (C) 2010 Google, Inc. All Rights Reserved. |
| 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 17 matching lines...) Expand all Loading... |
| 28 | 28 |
| 29 #include "core/dom/Element.h" | 29 #include "core/dom/Element.h" |
| 30 #include "core/fetch/ScriptResource.h" | 30 #include "core/fetch/ScriptResource.h" |
| 31 | 31 |
| 32 namespace blink { | 32 namespace blink { |
| 33 | 33 |
| 34 PendingScript::~PendingScript() | 34 PendingScript::~PendingScript() |
| 35 { | 35 { |
| 36 } | 36 } |
| 37 | 37 |
| 38 void PendingScript::watchForLoad(ResourceClient* client) |
| 39 { |
| 40 ASSERT(!m_watchingForLoad); |
| 41 ASSERT(!resource()->isLoaded()); |
| 42 // addClient() will call notifyFinished() if the load is complete. Callers |
| 43 // do not expect to be re-entered from this call, so they should not become |
| 44 // a client of an already-loaded Resource. |
| 45 resource()->addClient(client); |
| 46 m_watchingForLoad = true; |
| 47 } |
| 48 |
| 49 void PendingScript::stopWatchingForLoad(ResourceClient* client) |
| 50 { |
| 51 if (resource() && m_watchingForLoad) { |
| 52 resource()->removeClient(client); |
| 53 m_watchingForLoad = false; |
| 54 } |
| 55 } |
| 56 |
| 38 PassRefPtrWillBeRawPtr<Element> PendingScript::releaseElementAndClear() | 57 PassRefPtrWillBeRawPtr<Element> PendingScript::releaseElementAndClear() |
| 39 { | 58 { |
| 40 setScriptResource(0); | 59 setScriptResource(0); |
| 41 m_watchingForLoad = false; | 60 m_watchingForLoad = false; |
| 42 m_startingPosition = TextPosition::belowRangePosition(); | 61 m_startingPosition = TextPosition::belowRangePosition(); |
| 43 return m_element.release(); | 62 return m_element.release(); |
| 44 } | 63 } |
| 45 | 64 |
| 46 void PendingScript::setScriptResource(ScriptResource* resource) | 65 void PendingScript::setScriptResource(ScriptResource* resource) |
| 47 { | 66 { |
| 48 setResource(resource); | 67 setResource(resource); |
| 49 } | 68 } |
| 50 | 69 |
| 51 void PendingScript::notifyFinished(Resource*) | 70 void PendingScript::notifyFinished(Resource*) |
| 52 { | 71 { |
| 53 } | 72 } |
| 54 | 73 |
| 55 void PendingScript::trace(Visitor* visitor) | 74 void PendingScript::trace(Visitor* visitor) |
| 56 { | 75 { |
| 57 visitor->trace(m_element); | 76 visitor->trace(m_element); |
| 58 } | 77 } |
| 59 | 78 |
| 79 ScriptSourceCode PendingScript::getSource(const KURL& documentURL, bool& errorOc
curred) const |
| 80 { |
| 81 if (resource()) { |
| 82 errorOccurred = resource()->errorOccurred(); |
| 83 ASSERT(resource()->isLoaded()); |
| 84 return ScriptSourceCode(resource()); |
| 85 } |
| 86 errorOccurred = false; |
| 87 return ScriptSourceCode(m_element->textContent(), documentURL, startingPosit
ion()); |
| 60 } | 88 } |
| 89 |
| 90 } |
| OLD | NEW |