diff options
author | Steve Block <steveblock@google.com> | 2012-04-13 07:34:38 -0700 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2012-04-13 07:34:38 -0700 |
commit | 88b1659b152f0c370dc2b48ca2a4c5e31e26c91c (patch) | |
tree | 2eea7e75c15054b00c713fcfa43ec696022b9329 /Source/WebCore | |
parent | 6a790337f549954a226607be92fadad39366e597 (diff) | |
parent | 4717b91d77cab5187baae5025bfa1bab4e52a907 (diff) | |
download | external_webkit-88b1659b152f0c370dc2b48ca2a4c5e31e26c91c.zip external_webkit-88b1659b152f0c370dc2b48ca2a4c5e31e26c91c.tar.gz external_webkit-88b1659b152f0c370dc2b48ca2a4c5e31e26c91c.tar.bz2 |
Merge "Cherry-pick WebKit change r89762 to fix a LayoutTest crash"
Diffstat (limited to 'Source/WebCore')
-rw-r--r-- | Source/WebCore/html/HTMLMediaElement.cpp | 19 | ||||
-rw-r--r-- | Source/WebCore/html/HTMLMediaElement.h | 2 |
2 files changed, 15 insertions, 6 deletions
diff --git a/Source/WebCore/html/HTMLMediaElement.cpp b/Source/WebCore/html/HTMLMediaElement.cpp index 5cd2ddd..46e8a12 100644 --- a/Source/WebCore/html/HTMLMediaElement.cpp +++ b/Source/WebCore/html/HTMLMediaElement.cpp @@ -238,7 +238,9 @@ void HTMLMediaElement::attributeChanged(Attribute* attr, bool preserveDecls) #if !ENABLE(PLUGIN_PROXY_FOR_VIDEO) if (controls()) { if (!hasMediaControls()) { - ensureMediaControls(); + if (!createMediaControls()) + return; + mediaControls()->reset(); } mediaControls()->show(); @@ -2739,13 +2741,18 @@ bool HTMLMediaElement::hasMediaControls() return node && node->isMediaControls(); } -void HTMLMediaElement::ensureMediaControls() +bool HTMLMediaElement::createMediaControls() { if (hasMediaControls()) - return; + return true; ExceptionCode ec; - ensureShadowRoot()->appendChild(MediaControls::create(this), ec); + RefPtr<MediaControls> controls = MediaControls::create(this); + if (!controls) + return false; + + ensureShadowRoot()->appendChild(controls, ec); + return true; } void* HTMLMediaElement::preDispatchEventHandler(Event* event) @@ -2753,7 +2760,9 @@ void* HTMLMediaElement::preDispatchEventHandler(Event* event) if (event && event->type() == eventNames().webkitfullscreenchangeEvent) { if (controls()) { if (!hasMediaControls()) { - ensureMediaControls(); + if (!createMediaControls()) + return 0; + mediaControls()->reset(); } mediaControls()->show(); diff --git a/Source/WebCore/html/HTMLMediaElement.h b/Source/WebCore/html/HTMLMediaElement.h index 2144ea1..0b11861 100644 --- a/Source/WebCore/html/HTMLMediaElement.h +++ b/Source/WebCore/html/HTMLMediaElement.h @@ -325,7 +325,7 @@ private: void refreshCachedTime() const; bool hasMediaControls(); - void ensureMediaControls(); + bool createMediaControls(); virtual void* preDispatchEventHandler(Event*); |