Index: mythtv/programs/mythbackend/mythxml.cpp
===================================================================
--- mythtv/programs/mythbackend/mythxml.cpp	(revision 27361)
+++ mythtv/programs/mythbackend/mythxml.cpp	(arbetskopia)
@@ -123,6 +123,7 @@
     if (sURI == "GetVideoArt"           ) return MXML_GetVideoArt;
     if (sURI == "GetInternetSearch"     ) return MXML_GetInternetSearch;
     if (sURI == "GetInternetSources"    ) return MXML_GetInternetSources;
+    if (sURI == "GetInternetContent"    ) return MXML_GetInternetContent;
 
     return MXML_Unknown;
 }
@@ -229,6 +230,9 @@
                 case MXML_GetInternetSources :
                     GetInternetSources( pRequest );
                     return true;
+                case MXML_GetInternetContent :
+                    GetInternetContent( pRequest );
+                    return true;
 
                 case MXML_GetConnectionInfo    :
                     GetConnectionInfo( pRequest );
@@ -1662,6 +1666,34 @@
     pRequest->FormatActionResponse( list );
 }
 
+void MythXML::GetInternetContent( HTTPRequest *pRequest )
+{
+    pRequest->m_eResponseType   = ResponseTypeHTML;
+
+    QString grabber =  pRequest->m_mapParams[ "Grabber" ];
+
+    if (grabber.isEmpty())
+        return;
+
+    QString contentDir = QString("%1internetcontent/").arg(GetShareDir());
+    QString htmlFile(contentDir + grabber);
+
+    // Try to prevent directory traversal
+    QFileInfo fileInfo(htmlFile);
+    if (fileInfo.canonicalFilePath().startsWith(contentDir) &&
+        QFile::exists( htmlFile ))
+    {
+        pRequest->m_eResponseType   = ResponseTypeFile;
+        pRequest->m_nResponseStatus = 200;
+        pRequest->m_sFileName       = htmlFile;
+    }
+    else
+    {
+        pRequest->FormatRawResponse( QString("<HTML>File %1 does "
+                  "not exist!</HTML>").arg(htmlFile) );
+    }
+}
+
 /////////////////////////////////////////////////////////////////////////////
 //
 /////////////////////////////////////////////////////////////////////////////
Index: mythtv/programs/mythbackend/mythxml.h
===================================================================
--- mythtv/programs/mythbackend/mythxml.h	(revision 27361)
+++ mythtv/programs/mythbackend/mythxml.h	(arbetskopia)
@@ -54,10 +54,11 @@
     MXML_GetVideoArt            = 17,
     MXML_GetInternetSearch      = 18,
     MXML_GetInternetSources     = 19,
+    MXML_GetInternetContent     = 20,
 
-    MXML_GetFile                = 20,
-    MXML_GetFileList            = 21,
-    MXML_GetFileLinks           = 22,
+    MXML_GetFile                = 21,
+    MXML_GetFileList            = 22,
+    MXML_GetFileLinks           = 23,
 
 } MythXMLMethod;
 
@@ -127,6 +128,7 @@
 
         void    GetInternetSearch( HTTPRequest *pRequest );
         void    GetInternetSources( HTTPRequest *pRequest );
+        void    GetInternetContent( HTTPRequest *pRequest );
 
         void    GetDeviceDesc  ( HTTPRequest *pRequest );
         void    GetFile        ( HTTPRequest *pRequest, QString sFileName );
