Index: mythplugins/mythbrowser/mythbrowser/bookmarkmanager.cpp
===================================================================
--- mythplugins/mythbrowser/mythbrowser/bookmarkmanager.cpp	(revision 27361)
+++ mythplugins/mythbrowser/mythbrowser/bookmarkmanager.cpp	(arbetskopia)
@@ -19,6 +19,7 @@
 #include "bookmarkeditor.h"
 #include "browserdbutil.h"
 #include "mythbrowser.h"
+#include "mythflashplayer.h"
 
 // ---------------------------------------------------
 
@@ -381,7 +382,11 @@
     {
         MythScreenStack *mainStack = GetMythMainWindow()->GetMainStack();
 
-        MythBrowser *mythbrowser = new MythBrowser(mainStack, urls, zoom.toFloat());
+        MythScreenType *mythbrowser;
+        if (urls[0].startsWith("mythflash://"))
+            mythbrowser = new MythFlashPlayer(mainStack, urls);
+        else
+            mythbrowser = new MythBrowser(mainStack, urls, zoom.toFloat());
 
         if (mythbrowser->Create())
         {
Index: mythplugins/mythbrowser/mythbrowser/mythflashplayer.h
===================================================================
--- mythplugins/mythbrowser/mythbrowser/mythflashplayer.h	(revision 0)
+++ mythplugins/mythbrowser/mythbrowser/mythflashplayer.h	(revision 0)
@@ -0,0 +1,25 @@
+#ifndef MYTHFLASHPLAYER_H
+#define MYTHFLASHPLAYER_H
+
+#include <mythscreentype.h>
+
+class MythUIWebBrowser;
+
+class MythFlashPlayer : public MythScreenType
+{
+  Q_OBJECT
+
+  public:
+    MythFlashPlayer(MythScreenStack *parent, QStringList &urlList);
+    ~MythFlashPlayer();
+
+    bool Create(void);
+    bool keyPressEvent(QKeyEvent *);
+
+  private:
+    QVariant evaluateJavaScript(const QString&);
+    MythUIWebBrowser*         m_browser;
+    QString                   m_url;
+};
+
+#endif
Index: mythplugins/mythbrowser/mythbrowser/mythbrowser.pro
===================================================================
--- mythplugins/mythbrowser/mythbrowser/mythbrowser.pro	(revision 27361)
+++ mythplugins/mythbrowser/mythbrowser/mythbrowser.pro	(arbetskopia)
@@ -16,9 +16,9 @@
 INSTALLS += installimages
 
 # Input
-HEADERS += mythbrowser.h webpage.h 
+HEADERS += mythbrowser.h mythflashplayer.h webpage.h 
 HEADERS += bookmarkmanager.h bookmarkeditor.h browserdbutil.h
-SOURCES += main.cpp mythbrowser.cpp webpage.cpp
+SOURCES += main.cpp mythbrowser.cpp mythflashplayer.cpp webpage.cpp
 SOURCES += bookmarkmanager.cpp bookmarkeditor.cpp browserdbutil.cpp
 
 include ( ../../libs-targetfix.pro )
Index: mythplugins/mythbrowser/mythbrowser/main.cpp
===================================================================
--- mythplugins/mythbrowser/mythbrowser/main.cpp	(revision 27361)
+++ mythplugins/mythbrowser/mythbrowser/main.cpp	(arbetskopia)
@@ -15,6 +15,7 @@
 #include "bookmarkmanager.h"
 #include "browserdbutil.h"
 #include "mythbrowser.h"
+#include "mythflashplayer.h"
 
 using namespace std;
 
@@ -30,9 +31,12 @@
     float zoom = gCoreContext->GetSetting("WebBrowserZoomLevel", "1.4").toFloat();
 
     MythScreenStack *mainStack = GetMythMainWindow()->GetMainStack();
+    MythScreenType *mythbrowser;
+    if (urls[0].startsWith("mythflash://"))
+        mythbrowser = new MythFlashPlayer(mainStack, urls);
+    else
+        mythbrowser = new MythBrowser(mainStack, urls, zoom);
 
-    MythBrowser *mythbrowser = new MythBrowser(mainStack, urls, zoom);
-
     if (mythbrowser->Create())
         mainStack->AddScreen(mythbrowser);
     else
Index: mythplugins/mythbrowser/mythbrowser/mythflashplayer.cpp
===================================================================
--- mythplugins/mythbrowser/mythbrowser/mythflashplayer.cpp	(revision 0)
+++ mythplugins/mythbrowser/mythbrowser/mythflashplayer.cpp	(revision 0)
@@ -0,0 +1,98 @@
+#include <stdlib.h>
+#include <iostream>
+
+// qt
+#include <QApplication>
+#include <QEvent>
+
+// myth
+#include <mythverbose.h>
+#include <mythcontext.h>
+#include <libmythui/mythmainwindow.h>
+#include <mythuiwebbrowser.h>
+
+// mythbrowser
+#include "webpage.h"
+#include "mythflashplayer.h"
+
+using namespace std;
+
+MythFlashPlayer::MythFlashPlayer(MythScreenStack *parent,
+                         QStringList &urlList)
+    : MythScreenType (parent, "mythflashplayer"),
+      m_browser(NULL), m_url(urlList[0])
+{
+    qApp->setOverrideCursor(QCursor(Qt::BlankCursor));
+}
+
+
+MythFlashPlayer::~MythFlashPlayer()
+{
+    qApp->restoreOverrideCursor();
+
+    if (m_browser)
+    {
+        m_browser->disconnect();
+        DeleteChild(m_browser);
+        m_browser = NULL;
+    }
+}
+
+bool MythFlashPlayer::Create(void)
+{
+    m_browser = new MythUIWebBrowser(this, "mythflashplayer");
+    m_browser->SetArea(GetMythMainWindow()->GetUIScreenRect());
+    m_browser->Init();
+    m_browser->SetActive(true);
+    m_browser->Show();
+
+    BuildFocusList();
+
+    SetFocusWidget(m_browser);
+
+    m_url.replace("mythflash://", "http://");
+    VERBOSE(VB_GENERAL, QString("Opening %1").arg(m_url));
+    m_browser->LoadPage(QUrl::fromEncoded(m_url.toLocal8Bit()));
+
+    return true;
+}
+
+QVariant MythFlashPlayer::evaluateJavaScript(const QString& source)
+{
+    return m_browser->evaluateJavaScript(source);
+}
+
+bool MythFlashPlayer::keyPressEvent(QKeyEvent *event)
+{
+    QStringList actions;
+    bool handled = GetMythMainWindow()->TranslateKeyPress("TV Playback", event, actions);
+
+    for (int i = 0; i < actions.size() && !handled; i++)
+    {
+        QString action = actions[i];
+        handled = true;
+
+        if (action == "PAUSE")
+            evaluateJavaScript("play();");
+        else if (action == "SEEKFFWD")
+            evaluateJavaScript("seek(10);");
+        else if (action == "SEEKRWND")
+            evaluateJavaScript("seek(-10);");
+        else if (action == "CHANNELUP")
+            evaluateJavaScript("seek(60);");
+        else if (action == "CHANNELDOWN")
+            evaluateJavaScript("seek(-60);");
+        else
+            handled = false;
+
+        if (handled)
+            return true;
+    }
+
+    handled = m_browser->keyPressEvent(event);
+
+    if (!handled && MythScreenType::keyPressEvent(event))
+        handled = true;
+
+    return handled;
+}
