webengine/osswebengine/WebKit/s60/plugins/PluginSkin.cpp
changeset 36 0ed94ceaa377
parent 27 60c5402cb945
child 37 cb62a4f66ebe
equal deleted inserted replaced
32:9a9a761f03f1 36:0ed94ceaa377
    18 //INCLUDES
    18 //INCLUDES
    19 #include <Browser_Platform_Variant.hrh>
    19 #include <Browser_Platform_Variant.hrh>
    20 #include "../../bidi.h"
    20 #include "../../bidi.h"
    21 #include "PlatformString.h"
    21 #include "PlatformString.h"
    22 #include <centralrepository.h>
    22 #include <centralrepository.h>
    23 #include <BrowserUiSDKCRKeys.h>
    23 #include <browseruisdkcrkeys.h>
    24 #include "PluginSkin.h"
    24 #include "PluginSkin.h"
    25 #include "PluginWin.h"
    25 #include "PluginWin.h"
    26 #include "PluginHandler.h"
    26 #include "PluginHandler.h"
    27 #include "PluginStreamLoaderClient.h"
    27 #include "PluginStreamLoaderClient.h"
    28 #include "PluginStream.h"
    28 #include "PluginStream.h"
    31 #include "WebView.h"
    31 #include "WebView.h"
    32 #include "WebPageFullScreenHandler.h"
    32 #include "WebPageFullScreenHandler.h"
    33 #include "BrCtl.h"
    33 #include "BrCtl.h"
    34 #include "WebCoreGraphicsContext.h"
    34 #include "WebCoreGraphicsContext.h"
    35 #include "StaticObjectsContainer.h"
    35 #include "StaticObjectsContainer.h"
    36 #include "BrCtlDefs.h"
    36 #include "brctldefs.h"
    37 #include "SettingsContainer.h"
    37 #include "SettingsContainer.h"
    38 #include <Uri8.h>
    38 #include <Uri8.h>
    39 #include <StringLoader.h>
    39 #include <StringLoader.h>
    40 #include <Webkit.rsg>
    40 #include <Webkit.rsg>
    41 #include "Frame.h"
    41 #include "Frame.h"
    45 #include "Widget.h"
    45 #include "Widget.h"
    46 #include "PlatformScrollBar.h"
    46 #include "PlatformScrollBar.h"
    47 
    47 
    48 #include <ApEngineConsts.h>
    48 #include <ApEngineConsts.h>
    49 #include <Uri8.h>
    49 #include <Uri8.h>
    50 #include <InternetConnectionManager.h>
    50 #include <internetconnectionmanager.h>
    51 #include <es_enum.h>
    51 #include <es_enum.h>
    52 #include <TextEncoding.h>
       
    53 #include "CString.h"
       
    54 #include "WidgetExtension.h"
    52 #include "WidgetExtension.h"
    55 #include <WidgetRegistryClient.h>
    53 #include <widgetregistryclient.h>
    56 
    54 
    57 // CONSTANTS
    55 // CONSTANTS
    58 using namespace WebCore;
    56 using namespace WebCore;
    59 // scheme for RTSP url
    57 // scheme for RTSP url
    60 _LIT8(KRtsp, "rtsp");
    58 _LIT8(KRtsp, "rtsp");
   802     TPluginLoadMode loadmode = GetLoadMode(aWindowType);
   800     TPluginLoadMode loadmode = GetLoadMode(aWindowType);
   803 
   801 
   804     if (url.Ptr() == NULL ) {                        
   802     if (url.Ptr() == NULL ) {                        
   805         return KErrArgument;
   803         return KErrArgument;
   806     }
   804     }
   807 
   805     _LIT8(KSwfExtn, ".swf");
   808     _LIT8(KJs, "javascript:");
   806     _LIT8(KJs, "javascript:");
   809     if ((url.Length() > KJs().Length() ) &&(url.Left(KJs().Length()).FindF(KJs) == 0)) {
   807     if ((url.Length() > KJs().Length() ) &&(url.Left(KJs().Length()).FindF(KJs) == 0)) {
   810         HBufC* pBuffer = HBufC::NewL(url.Length());
   808         HBufC* pBuffer = HBufC::NewL(url.Length());
   811 	    TPtr16 temp = pBuffer->Des(); 
   809 	    TPtr16 temp = pBuffer->Des(); 
   812 	    temp.Copy(url);
   810 	    temp.Copy(url);
   822 
   820 
   823     // make sure it is an absolute URL
   821     // make sure it is an absolute URL
   824     HBufC8* absoluteUrl = makeAbsoluteUrlL(*m_url, url); 
   822     HBufC8* absoluteUrl = makeAbsoluteUrlL(*m_url, url); 
   825     CleanupStack::PushL(absoluteUrl);
   823     CleanupStack::PushL(absoluteUrl);
   826 
   824 
   827     if (loadmode == ELoadModePlugin ) {    
   825     if( (loadmode == ELoadModePlugin ) || (url.FindF(KSwfExtn)!= KErrNotFound) ){    
   828         
   826         
   829         if (m_instance && m_pluginfuncs) {
   827         if (m_instance && m_pluginfuncs) {
   830         
   828         
   831             NetscapePlugInStreamLoaderClient* pluginloader = NetscapePlugInStreamLoaderClient::NewL(url, this, core(m_frame), notifydata);
   829             NetscapePlugInStreamLoaderClient* pluginloader = NetscapePlugInStreamLoaderClient::NewL(url, this, core(m_frame), notifydata);
   832             if (pluginloader) {
   830             if (pluginloader) {
   905     else{        
   903     else{        
   906         
   904         
   907         int start_content = buffer.Find(KRequestEOH());    
   905         int start_content = buffer.Find(KRequestEOH());    
   908         start_content =  (start_content != KErrNotFound) ? start_content+ KRequestEOH().Length() : 0;                
   906         start_content =  (start_content != KErrNotFound) ? start_content+ KRequestEOH().Length() : 0;                
   909         
   907         
   910         HBufC* body = HBufC::NewLC(buffer.Mid(start_content).Length()+1);                
   908         HBufC8* body = HBufC8::NewLC(buffer.Mid(start_content).Length());                
   911         body->Des().Copy(buffer.Mid(start_content));
   909         body->Des().Copy(buffer.Mid(start_content));        
   912         TextEncoding *ecoder = new TextEncoding(core(mainFrame(m_frame))->loader()->encoding());
   910         FormData* fd = new (ELeave) FormData(body->Ptr(),body->Length());                                          
   913         CString decoded_body = ecoder->encode(body->Des().PtrZ(),body->Length());
       
   914         FormData* fd = new (ELeave) FormData(decoded_body.data(),decoded_body.length());                                               
       
   915         request.setHTTPBody(fd);                                              
   911         request.setHTTPBody(fd);                                              
   916         CleanupStack::PopAndDestroy(); // body
   912         CleanupStack::PopAndDestroy(); // body
   917     }
   913     }
   918                 
   914                 
   919         
   915         
  1048     TBool isPluginVisible = frameRectInViewCoord.Intersects(fullRect); 
  1044     TBool isPluginVisible = frameRectInViewCoord.Intersects(fullRect); 
  1049     TBool isFrameVisible = m_frame->frameView()->isVisible() && 
  1045     TBool isFrameVisible = m_frame->frameView()->isVisible() && 
  1050                            frameRectInViewCoord.Intersects(viewRect);
  1046                            frameRectInViewCoord.Intersects(viewRect);
  1051       
  1047       
  1052     if (m_pluginwin) {
  1048     if (m_pluginwin) {
  1053         m_pluginwin->makeVisible( isFrameVisible && !isPageViewMode && isPluginVisible);
  1049         TBool visibility = isFrameVisible && !isPageViewMode && isPluginVisible;
  1054         if (!m_pluginwin->isPluginInFullscreen()) {
  1050         m_pluginwin->makeVisible(visibility);
       
  1051         if (!m_pluginwin->isPluginInFullscreen() && visibility) {
  1055             clipRect.Intersection(fullRect);
  1052             clipRect.Intersection(fullRect);
  1056             m_pluginwin->SetRect(clipRect);
  1053             m_pluginwin->SetRect(clipRect);
  1057         }
  1054         }
  1058     }
  1055     }
  1059 }
  1056 }