diff options
Diffstat (limited to 'WebCore/plugins/PluginView.cpp')
-rw-r--r-- | WebCore/plugins/PluginView.cpp | 21 |
1 files changed, 6 insertions, 15 deletions
diff --git a/WebCore/plugins/PluginView.cpp b/WebCore/plugins/PluginView.cpp index 73ac220..ae1a0a9 100644 --- a/WebCore/plugins/PluginView.cpp +++ b/WebCore/plugins/PluginView.cpp @@ -223,7 +223,7 @@ bool PluginView::startOrAddToUnstartedList() // ourselves. Otherwise, the loader will try to deliver data before we've // started the plug-in. if (!m_loadManually && !m_parentFrame->page()->canStartMedia()) { - m_parentFrame->page()->addMediaCanStartListener(this); + m_parentFrame->document()->addMediaCanStartListener(this); m_isWaitingToStart = true; return true; } @@ -306,7 +306,8 @@ PluginView::~PluginView() instanceMap().remove(m_instance); - removeFromUnstartedListIfNecessary(); + if (m_isWaitingToStart) + m_parentFrame->document()->removeMediaCanStartListener(this); stop(); @@ -328,17 +329,6 @@ PluginView::~PluginView() m_plugin->unload(); } -void PluginView::removeFromUnstartedListIfNecessary() -{ - if (!m_isWaitingToStart) - return; - - if (!m_parentFrame->page()) - return; - - m_parentFrame->page()->removeMediaCanStartListener(this); -} - void PluginView::stop() { if (!m_isStarted) @@ -551,7 +541,8 @@ NPError PluginView::load(const FrameLoadRequest& frameLoadRequest, bool sendNoti return NPERR_INVALID_URL; // Don't allow requests to be made when the document loader is stopping all loaders. - if (m_parentFrame->loader()->documentLoader()->isStopping()) + DocumentLoader* loader = m_parentFrame->loader()->documentLoader(); + if (!loader || loader->isStopping()) return NPERR_GENERIC_ERROR; const String& targetFrameName = frameLoadRequest.frameName(); @@ -656,7 +647,7 @@ NPError PluginView::destroyStream(NPStream* stream, NPReason reason) void PluginView::status(const char* message) { if (Page* page = m_parentFrame->page()) - page->chrome()->setStatusbarText(m_parentFrame.get(), String(message)); + page->chrome()->setStatusbarText(m_parentFrame.get(), String::fromUTF8(message)); } NPError PluginView::setValue(NPPVariable variable, void* value) |