| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2007, 2008, 2010 Apple Inc. All rights reserved. | 2 * Copyright (C) 2007, 2008, 2010 Apple 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 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 52 explicit Listener(HTMLSourceElement* element) : m_element(element) { } | 52 explicit Listener(HTMLSourceElement* element) : m_element(element) { } |
| 53 virtual void call() OVERRIDE | 53 virtual void call() OVERRIDE |
| 54 { | 54 { |
| 55 if (m_element) | 55 if (m_element) |
| 56 m_element->notifyMediaQueryChanged(); | 56 m_element->notifyMediaQueryChanged(); |
| 57 } | 57 } |
| 58 | 58 |
| 59 void clearElement() { m_element = nullptr; } | 59 void clearElement() { m_element = nullptr; } |
| 60 virtual void trace(Visitor* visitor) OVERRIDE | 60 virtual void trace(Visitor* visitor) OVERRIDE |
| 61 { | 61 { |
| 62 visitor->trace(m_element); |
| 62 MediaQueryListListener::trace(visitor); | 63 MediaQueryListListener::trace(visitor); |
| 63 visitor->trace(m_element); | |
| 64 } | 64 } |
| 65 private: | 65 private: |
| 66 RawPtrWillBeMember<HTMLSourceElement> m_element; | 66 RawPtrWillBeMember<HTMLSourceElement> m_element; |
| 67 }; | 67 }; |
| 68 | 68 |
| 69 inline HTMLSourceElement::HTMLSourceElement(Document& document) | 69 inline HTMLSourceElement::HTMLSourceElement(Document& document) |
| 70 : HTMLElement(sourceTag, document) | 70 : HTMLElement(sourceTag, document) |
| 71 , m_listener(adoptRefWillBeNoop(new Listener(this))) | 71 , m_listener(adoptRefWillBeNoop(new Listener(this))) |
| 72 { | 72 { |
| 73 WTF_LOG(Media, "HTMLSourceElement::HTMLSourceElement - %p", this); | 73 WTF_LOG(Media, "HTMLSourceElement::HTMLSourceElement - %p", this); |
| 74 ScriptWrappable::init(this); | 74 ScriptWrappable::init(this); |
| 75 } | 75 } |
| 76 | 76 |
| 77 DEFINE_NODE_FACTORY(HTMLSourceElement) | 77 DEFINE_NODE_FACTORY(HTMLSourceElement) |
| 78 | 78 |
| 79 HTMLSourceElement::~HTMLSourceElement() | 79 HTMLSourceElement::~HTMLSourceElement() |
| 80 { | 80 { |
| 81 sourceErrorEventSender().cancelEvent(this); | 81 sourceErrorEventSender().cancelEvent(this); |
| 82 #if !ENABLE(OILPAN) |
| 82 m_listener->clearElement(); | 83 m_listener->clearElement(); |
| 84 #endif |
| 83 } | 85 } |
| 84 | 86 |
| 85 Node::InsertionNotificationRequest HTMLSourceElement::insertedInto(ContainerNode
* insertionPoint) | 87 Node::InsertionNotificationRequest HTMLSourceElement::insertedInto(ContainerNode
* insertionPoint) |
| 86 { | 88 { |
| 87 HTMLElement::insertedInto(insertionPoint); | 89 HTMLElement::insertedInto(insertionPoint); |
| 88 Element* parent = parentElement(); | 90 Element* parent = parentElement(); |
| 89 if (isHTMLMediaElement(parent)) | 91 if (isHTMLMediaElement(parent)) |
| 90 toHTMLMediaElement(parent)->sourceWasAdded(this); | 92 toHTMLMediaElement(parent)->sourceWasAdded(this); |
| 91 if (isHTMLPictureElement(parent)) | 93 if (isHTMLPictureElement(parent)) |
| 92 toHTMLPictureElement(parent)->sourceOrMediaChanged(); | 94 toHTMLPictureElement(parent)->sourceOrMediaChanged(); |
| (...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 171 | 173 |
| 172 void HTMLSourceElement::notifyMediaQueryChanged() | 174 void HTMLSourceElement::notifyMediaQueryChanged() |
| 173 { | 175 { |
| 174 Element* parent = parentElement(); | 176 Element* parent = parentElement(); |
| 175 if (isHTMLPictureElement(parent)) | 177 if (isHTMLPictureElement(parent)) |
| 176 toHTMLPictureElement(parent)->sourceOrMediaChanged(); | 178 toHTMLPictureElement(parent)->sourceOrMediaChanged(); |
| 177 } | 179 } |
| 178 | 180 |
| 179 void HTMLSourceElement::trace(Visitor* visitor) | 181 void HTMLSourceElement::trace(Visitor* visitor) |
| 180 { | 182 { |
| 181 HTMLElement::trace(visitor); | |
| 182 visitor->trace(m_mediaQueryList); | 183 visitor->trace(m_mediaQueryList); |
| 183 visitor->trace(m_listener); | 184 visitor->trace(m_listener); |
| 185 HTMLElement::trace(visitor); |
| 184 } | 186 } |
| 185 | 187 |
| 186 } | 188 } |
| OLD | NEW |