--- a/browserutilities/browserdialogsprovider/Group/browserdialogsprovider.mmp Fri May 08 08:25:06 2009 +0300
+++ b/browserutilities/browserdialogsprovider/Group/browserdialogsprovider.mmp Fri Jul 03 15:54:40 2009 +0100
@@ -31,7 +31,11 @@
START RESOURCE ../SrcData/BrowserDialogsProvider.rss
HEADER
TARGETPATH RESOURCE_FILES_DIR
-LANGUAGE_IDS
+#ifdef __S60_32__
+LANG sc
+#else
+LANGUAGE_IDS
+#endif
END
USERINCLUDE ../Inc
--- a/browserutilities/browsertelservice/group/BrowserTelService.mmp Fri May 08 08:25:06 2009 +0300
+++ b/browserutilities/browsertelservice/group/BrowserTelService.mmp Fri Jul 03 15:54:40 2009 +0100
@@ -28,7 +28,11 @@
VENDORID VID_DEFAULT
CAPABILITY CAP_GENERAL_DLL
-LANGUAGE_IDS
+#ifdef __S60_32__
+LANG sc
+#else
+LANGUAGE_IDS
+#endif
START RESOURCE ../data/browsertelservice.rss
HEADER
--- a/browserutilities/connectionmanager/Group/ConnectionManager.mmp Fri May 08 08:25:06 2009 +0300
+++ b/browserutilities/connectionmanager/Group/ConnectionManager.mmp Fri Jul 03 15:54:40 2009 +0100
@@ -48,7 +48,11 @@
SOURCE ConnManKeyAbsorber.cpp
SOURCE ConnManLogger.cpp
-LANGUAGE_IDS
+#ifdef __S60_32__
+LANG sc
+#else
+LANGUAGE_IDS
+#endif
LIBRARY ESock.lib
LIBRARY AknNotify.lib
--- a/browserutilities/connectionmanager/Src/InternetConnectionManager.cpp Fri May 08 08:25:06 2009 +0300
+++ b/browserutilities/connectionmanager/Src/InternetConnectionManager.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -1359,7 +1359,8 @@
if(iConnected)
{
// this is a connection closed event
- iConnection.Close();
+ CLOG_WRITE( "ConnectionStageAchievedL() Stoping the connection instead of closing" );
+ iConnection.Stop();
iConnected = EFalse;
if( !iSilentMode )
--- a/browserutilities/downloadmgr/DownloadMgrClntSrv/src/DownloadMgrClntSubSession.cpp Fri May 08 08:25:06 2009 +0300
+++ b/browserutilities/downloadmgr/DownloadMgrClntSrv/src/DownloadMgrClntSubSession.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -1395,6 +1395,10 @@
iAttribs->AppendL( attrib );
CleanupStack::Pop( attrib );
}
+ attrib = CDefaultAttrib::NewL( EDlAttrActiveDownload, iMoIndex );
+ CleanupStack::PushL( attrib );
+ iAttribs->AppendL( attrib );
+ CleanupStack::Pop( attrib );
HBufC8* buf = TDMgrUtils::PackedAttributesL( iAttribs );
iAttribs->ResetAndDestroy();
--- a/browserutilities/downloadmgr/DownloadMgrClntSrv/src/DownloadMgrSrvObject.cpp Fri May 08 08:25:06 2009 +0300
+++ b/browserutilities/downloadmgr/DownloadMgrClntSrv/src/DownloadMgrSrvObject.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -503,6 +503,11 @@
iAttribs->AppendL( attrib );
CleanupStack::Pop( attrib );
}
+ iDownload->GetIntAttributeL( EDlAttrActiveDownload, value );
+ attrib = CDefaultAttrib::NewL( EDlAttrActiveDownload, value );
+ CleanupStack::PushL( attrib );
+ iAttribs->AppendL( attrib );
+ CleanupStack::Pop( attrib );
HBufC8* buf = TDMgrUtils::PackedAttributesL( iAttribs );
iAttribs->ResetAndDestroy();
--- a/browserutilities/downloadmgr/DownloadMgrServEng/Group/HttpDMServEng.mmp Fri May 08 08:25:06 2009 +0300
+++ b/browserutilities/downloadmgr/DownloadMgrServEng/Group/HttpDMServEng.mmp Fri Jul 03 15:54:40 2009 +0100
@@ -68,7 +68,11 @@
SOURCE DownloadDataServ.cpp
SOURCE BuffStorage.cpp
-LANGUAGE_IDS
+#ifdef __S60_32__
+LANG sc
+#else
+LANGUAGE_IDS
+#endif
LIBRARY Euser.lib
LIBRARY http.lib
--- a/browserutilities/downloadmgr/DownloadMgrServEng/Inc/HttpDownload.h Fri May 08 08:25:06 2009 +0300
+++ b/browserutilities/downloadmgr/DownloadMgrServEng/Inc/HttpDownload.h Fri Jul 03 15:54:40 2009 +0100
@@ -864,6 +864,11 @@
void AppendHeadersL( TPtr8& aBuf, CArrayPtrFlat<CHeaderField>* aHeaders );
/**
+ * Get the size of Http headers
+ */
+ TInt GetHttpHeadersSize(CArrayPtrFlat<CHeaderField>* aHeaders );
+
+ /**
* Add the given header in the header array
* @return None. Leaves on error.
*/
--- a/browserutilities/downloadmgr/DownloadMgrServEng/Src/HttpDownload.cpp Fri May 08 08:25:06 2009 +0300
+++ b/browserutilities/downloadmgr/DownloadMgrServEng/Src/HttpDownload.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -59,6 +59,7 @@
const TInt KMaxHeaderOfMultipart = 32000;
const TInt KRespSizeForRecognition = 1024; //for THttpProgressState EHttpContTypeRecognitionAvail
const TInt KMinDataSizeToSend = (32*1024); //for Browser Control to call NewDownloadL
+const TInt KErrCodHttpDownloadPaused = -20045; //Error code set by the CodHandler if the download is paused by the client
_LIT8( KHttpScheme, "http" );
_LIT8( KHttpsScheme, "https" );
@@ -2440,7 +2441,19 @@
if( iProgState != EHttpProgMovingContentFile )
{
- TriggerEvent( iDlState, aValue ? EHttpDlProgProgressive : EHttpDlProgNonProgressive);
+ if (aValue && iDlState == EHttpDlMultipleMOCompleted )
+ {
+ /*
+ if the file size is small, by the time the music player is launched, DMgr already triggered EHttpDlCompleted.
+ So if the download state is EHttpDlMultipleMOCompleted, we need to trigger EHttpDlCompleted so that music player understands download is completed already
+ This is needed to ensure backward compatibility
+ */
+ TriggerEvent( EHttpDlCompleted, EHttpDlProgProgressive);
+ }
+ else
+ {
+ TriggerEvent( iDlState, aValue ? EHttpDlProgProgressive : EHttpDlProgNonProgressive);
+ }
}
}
else
@@ -3187,7 +3200,12 @@
iLastError = EGeneral;
}
}
- TriggerEvent( EHttpDlFailed, EHttpProgNone );
+
+ //if the client pauses the download, Codhandler sets error code to KErrCodHttpDownloadPaused. In that case, no need to trigger EHttpDlFailed Event
+ if ( result != KErrCodHttpDownloadPaused )
+ {
+ TriggerEvent( EHttpDlFailed, EHttpProgNone );
+ }
}
}
}
@@ -3998,6 +4016,16 @@
CLOG_WRITE("5");
+
+ TInt size = GetHttpHeadersSize(iResponseHeaders)+ GetHttpHeadersSize(iRequestHeaders)+
+ GetHttpHeadersSize(iEntityHeaders)+ GetHttpHeadersSize(iGeneralHeaders) + newInfoPtr.Size();
+
+
+ if(size >= bufSz)
+ {
+ User::LeaveIfError( KErrArgument );
+ }
+
AppendHeadersL( newInfoPtr, iResponseHeaders );
AppendHeadersL( newInfoPtr, iRequestHeaders );
AppendHeadersL( newInfoPtr, iEntityHeaders );
@@ -6150,7 +6178,7 @@
if( iSilentMode )
{
if( !((aDlState == EHttpDlInprogress && aProgState == EHttpStarted)
- || aDlState == EHttpDlMultipleMOCompleted || aDlState == EHttpDlFailed ))
+ || aDlState == EHttpDlMultipleMOCompleted || aDlState == EHttpDlFailed || aDlState == EHttpDlCompleted ))
// See EDlAttrSilent
{
return;
@@ -6513,6 +6541,35 @@
}
// -----------------------------------------------------------------------------
+// CHttpDownload::GetHttpHeadersSize
+// -----------------------------------------------------------------------------
+//
+TInt CHttpDownload::GetHttpHeadersSize(CArrayPtrFlat<CHeaderField>* aHeaders )
+ {
+ TInt headers = aHeaders->Count();
+ CLOG_WRITE_1("Headers: %d", headers);
+
+ HBufC8* fieldName = NULL;
+ HBufC8* fieldRawData = NULL;
+
+ TInt size = 0;
+
+ for( TInt i = 0; i < headers; ++i )
+ {
+ fieldName = (*aHeaders)[i]->FieldName();
+ fieldRawData = (*aHeaders)[i]->FieldRawData();
+
+ size = size + fieldName->Size() + fieldRawData->Size();
+
+ CLOG_WRITE8_1( "Size = %S:", size );
+ }
+
+ return size;
+
+ }
+
+
+// -----------------------------------------------------------------------------
// CHttpDownload::AddHeaderL
// -----------------------------------------------------------------------------
//
--- a/browserutilities/downloadmgr/DownloadMgrUiLib/Data/DownloadMgrUiLib.rss Fri May 08 08:25:06 2009 +0300
+++ b/browserutilities/downloadmgr/DownloadMgrUiLib/Data/DownloadMgrUiLib.rss Fri Jul 03 15:54:40 2009 +0100
@@ -310,8 +310,7 @@
RESOURCE TBUF r_dmul_download_content_saved_to_gallery { buf = qtn_browser_downloads_content_saved_to_gallery; }
RESOURCE TBUF r_dmul_download_content_saved_to_downloads_folder { buf = qtn_dl_saved_to_folder; }
-RESOURCE TBUF r_dmul_download_file_saved { buf = qtn_browser_downloads_file_saved; }
-RESOURCE TBUF r_dmul_download_files_saved { buf = qtn_browser_downloads_files_saved; }
+
RESOURCE MENU_BAR r_dmul_downloadslist_menubar
{
@@ -386,23 +385,6 @@
};
}
-
-RESOURCE AIW_INTEREST r_dmul_filemanager_aiw_interest
- {
- items=
- {
- AIW_CRITERIA_ITEM
- {
- id = KAiwCmdEdit;
- serviceCmd = KAiwCmdEdit;
- contentType = "*";
- serviceClass = KAiwClassBase;
- defaultProvider = 0x200110F9; // The service UID
- maxProviders = 1;
- }
- };
- }
-
RESOURCE TBUF r_dmul_download_del_conf { buf = qtn_query_common_conf_delete; }
RESOURCE TBUF r_dmul_download_can_conf { buf = qtn_browser_downloads_query_cancel; }
@@ -482,6 +464,35 @@
RESOURCE TBUF r_dmul_cancel_button { buf = text_softkey_cancel; }
RESOURCE TBUF r_dmul_ok_button { buf = text_softkey_accept; }
+// -----------------------------------------------------------------------------
+//
+// For Gallery removal Changes
+//
+// -----------------------------------------------------------------------------
+//
+
+RESOURCE TBUF r_dmul_download_file_saved { buf = qtn_browser_downloads_file_saved; }
+RESOURCE TBUF r_dmul_download_files_saved { buf = qtn_browser_downloads_files_saved; }
+
+RESOURCE AIW_INTEREST r_dmul_filemanager_aiw_interest
+ {
+ items=
+ {
+ AIW_CRITERIA_ITEM
+ {
+ id = KAiwCmdEdit;
+ serviceCmd = KAiwCmdEdit;
+ contentType = "*";
+ serviceClass = KAiwClassBase;
+ defaultProvider = 0x200110F9; // The service UID
+ maxProviders = 1;
+ }
+ };
+ }
+
// End of File
+
+
+
--- a/browserutilities/downloadmgr/DownloadMgrUiLib/Group/DownloadMgrUiLib.mmp Fri May 08 08:25:06 2009 +0300
+++ b/browserutilities/downloadmgr/DownloadMgrUiLib/Group/DownloadMgrUiLib.mmp Fri Jul 03 15:54:40 2009 +0100
@@ -33,7 +33,11 @@
START RESOURCE ../Data/DownloadMgrUiLib.rss
HEADER
-LANGUAGE_IDS
+#ifdef __S60_32__
+LANG sc
+#else
+LANGUAGE_IDS
+#endif
TARGETPATH RESOURCE_FILES_DIR
END // RESOURCE
--- a/browserutilities/downloadmgr/DownloadMgrUiLib/Src/CDownloadsListArray.cpp Fri May 08 08:25:06 2009 +0300
+++ b/browserutilities/downloadmgr/DownloadMgrUiLib/Src/CDownloadsListArray.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -109,8 +109,11 @@
CLOG_WRITE(" iSavedToGalleryString OK");
iSavedToDownloadsFolderString= iCoeEnv.AllocReadResourceL( R_DMUL_DOWNLOAD_CONTENT_SAVED_TO_DOWNLOADS_FOLDER);
CLOG_WRITE(" iSavedToGalleryDownload OK");
- iFileSavedString = iCoeEnv.AllocReadResourceL( R_DMUL_DOWNLOAD_FILE_SAVED );
- iFilesSavedString = iCoeEnv.AllocReadResourceL( R_DMUL_DOWNLOAD_FILES_SAVED );
+
+ #ifndef BRDO_APP_GALLERY_SUPPORTED_FF
+ iFileSavedString = iCoeEnv.AllocReadResourceL( R_DMUL_DOWNLOAD_FILE_SAVED );
+ iFilesSavedString = iCoeEnv.AllocReadResourceL( R_DMUL_DOWNLOAD_FILES_SAVED );
+ #endif
iNullDesC = KNullDesC().AllocL();
@@ -188,10 +191,14 @@
iSavedToGalleryString = 0;
delete iSavedToDownloadsFolderString;
iSavedToDownloadsFolderString=0;
- delete iFileSavedString;
- iFileSavedString = 0;
- delete iFilesSavedString;
- iFilesSavedString = 0;
+
+ #ifndef BRDO_APP_GALLERY_SUPPORTED_FF
+ delete iFileSavedString;
+ iFileSavedString = 0;
+ delete iFilesSavedString;
+ iFilesSavedString = 0;
+ #endif
+
delete iNullDesC;
iNullDesC = 0;
iApaLsSess.Close();
--- a/browserutilities/feedsengine/FeedsServer/Server/inc/FeedsDatabase.h Fri May 08 08:25:06 2009 +0300
+++ b/browserutilities/feedsengine/FeedsServer/Server/inc/FeedsDatabase.h Fri Jul 03 15:54:40 2009 +0100
@@ -81,6 +81,29 @@
TBool FeedIdFromUrlL(const TDesC& aFeedUrl, TInt aFolderListId, TInt& aFeedId);
/**
+ * Returns the feed id of the feed with the given entry id.
+ *
+ * @since 7.1
+ * @param aEntryId The feed's folder item id
+ * @param aFolderListId The folder list ID of the feed.
+ * @param aFeedId The resulting FolderListTable feed id.
+ * @return ETrue if the feed was resolved.
+ */
+
+ TBool CFeedsDatabase::FeedIdFromEntryId(const TInt& aEntryId, TInt aFolderListId, TInt& aFeedId);
+
+ /**
+ * Returns the feed id of the entry id with the given feed.
+ *
+ * @since 7.1
+ * @param aFeedId The resulting FolderListTable feed id.
+ * @param aFolderListId The folder list ID of the feed.
+ * @param aEntryId The feed's folder item id
+ * @return ETrue if the feed was resolved.
+ */
+ TBool CFeedsDatabase::EntryIdFromFeedId(const TInt& aFeedId, TInt aFolderListId, TInt& aEntryId);
+
+ /**
* Return the folder list ID of the feed with the given feed-id.
*
* @since 3.2
@@ -1007,11 +1030,16 @@
* @return void
*/
void GenerateNewFeedFolderTitleL(
- const TInt &aFolderListId,
- const TInt &aParentEntryId,
- const TDesC& aTitle,
- TDes& aNewFeedTitle
- );
+ const TInt &aFolderListId,
+ const TInt &aParentEntryId,
+ const TDesC& aTitle,
+ TDes& aNewFeedTitle
+ );
+
+ inline void SetIsFolderTableUpdateNeeded (TBool aIsFolderTableUpdateNeeded)
+ {
+ iIsFolderTableUpdateNeeded = aIsFolderTableUpdateNeeded;
+ }
private: // Data
TLeakTracker iLeakTracker;
@@ -1045,11 +1073,13 @@
TInt iSettingsTableRefCount;
TInt iNextAvailableFeedId;
-
- RArray<TInt> iDeleteFolderArray; // This array will be populated when session calls delete
- CFeedsServer* iFeedsServer;
-
-
+
+ RArray<TInt> iDeleteFolderArray; // This array will be populated when session calls delete
+ CFeedsServer* iFeedsServer;
+
+ TBool iIsFolderTableUpdateNeeded;
+
+
friend class CImportFeedsTask;
friend class CFeedsServerSession;
};
--- a/browserutilities/feedsengine/FeedsServer/Server/src/FeedsDatabase.cpp Fri May 08 08:25:06 2009 +0300
+++ b/browserutilities/feedsengine/FeedsServer/Server/src/FeedsDatabase.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -297,7 +297,7 @@
// -----------------------------------------------------------------------------
//
CFeedsDatabase::CFeedsDatabase(CFeedsServer* aFeedsServer):
- iLeakTracker(CLeakTracker::EFeedsDatabase),iFeedsServer(aFeedsServer)
+ iLeakTracker(CLeakTracker::EFeedsDatabase),iFeedsServer(aFeedsServer),iIsFolderTableUpdateNeeded(EFalse)
{
}
@@ -1407,7 +1407,7 @@
{
TBool isFolder;
// TInt folderListId;
-
+
// Update the title in the folder list table.
iFolderListTable.GetL();
iFolderListTable.UpdateL();
@@ -1431,24 +1431,27 @@
// }
- UseFeedTableLC(RDbTable::EUpdatable);
- TDbSeekKey seekKey((TUint16) feedId);
-
- if (iFeedTable.SeekL(seekKey))
- {
- iFeedTable.GetL();
- iFeedTable.UpdateL();
- }
- else
- {
- User::Leave(KErrCorrupt);
- }
- iFeedTable.SetColL(iFeedColSet->ColNo(KTitle_100MaxLen), aTitle.Left(K100MaxLen));
- WriteLongTextL(iFeedTable, iFeedColSet->ColNo(KFeedUrl), aUrl);
+ UseFeedTableLC(RDbTable::EUpdatable);
+ TDbSeekKey seekKey((TUint16) feedId);
+
+ if (iFeedTable.SeekL(seekKey))
+ {
+ iFeedTable.GetL();
+ iFeedTable.UpdateL();
+ }
+ else
+ {
+ User::Leave(KErrCorrupt);
+ }
+ iFeedTable.SetColL(iFeedColSet->ColNo(KTitle_100MaxLen), aTitle.Left(K100MaxLen));
+ if (aUrl.Length() > 0)
+ {
+ WriteLongTextL(iFeedTable, iFeedColSet->ColNo(KFeedUrl), aUrl);
+ }
iFeedTable.SetColL(iFeedColSet->ColNo(KAutoUpdateFreq), aFreq);
- iFeedTable.PutL();
- CleanupStack::PopAndDestroy(/*feed table*/);
- // Set the feed id.
+ iFeedTable.PutL();
+ CleanupStack::PopAndDestroy(/*feed table*/);
+ // Set the feed id.
//iFolderListTable.SetColL(iFolderListColSet->ColNo(KFeedId), feedId);
}
@@ -2781,7 +2784,14 @@
iFeedTable.SetColL(iFeedColSet->ColNo(KUnreadCount), unreadCount);
iFeedTable.PutL();
-
+
+ if (iIsFolderTableUpdateNeeded)
+ {
+ //update the folder table.
+ TInt entryId;
+ EntryIdFromFeedId(aFeedId, aFolderListId, entryId);
+ FolderItemUpdateL(entryId, title, KNullDesC, KAutoUpdatingOff);
+ }
}
@@ -4381,6 +4391,96 @@
CleanupStack::PopAndDestroy(/* iFeedTable */);
}
+// -----------------------------------------------------------------------------
+// CFeedsDatabase::FeedIdFromEntryId
+//
+// Returns the feed id of the feed with the given entry id.
+// -----------------------------------------------------------------------------
+//
+TBool CFeedsDatabase::FeedIdFromEntryId(const TInt& aEntryId, TInt aFolderListId, TInt& aFeedId)
+ {
+ RDbView view;
+ TBool found = EFalse;
+ HBufC* query = NULL;
+
+ // Create a view given this select...
+ // SELECT FeedId FROM FeedTable WHERE FeedUrl = 'aFeedUrl' AND FolderListId = aFolderListId
+ _LIT(KQuery, "SELECT FeedId FROM FolderListTable WHERE FolderItemId = %d AND FolderListId = %d");
+
+ query = HBufC::NewLC( KQuery().Length() + KIntLength + KIntLength );
+
+ query->Des().Format( KQuery, aEntryId, aFolderListId );
+
+ User::LeaveIfError(view.Prepare(iDatabase, TDbQuery(*query), RDbView::EReadOnly));
+ CleanupClosePushL(view);
+
+ CDbColSet* colSet = view.ColSetL();
+ CleanupStack::PushL(colSet);
+
+ // Search for the feed.
+ if (view.Evaluate() >= 0)
+ {
+ if (view.FirstL())
+ {
+ // Get the feed id.
+ view.GetL();
+ aFeedId = view.ColUint16(colSet->ColNo(KFeedId));
+ found = ETrue;
+ }
+ }
+
+ CleanupStack::PopAndDestroy(colSet);
+ CleanupStack::PopAndDestroy(/*view*/);
+ CleanupStack::PopAndDestroy(query);
+
+ return found;
+ }
+
+// -----------------------------------------------------------------------------
+// CFeedsDatabase::EntryIdFromFeedId
+//
+// Returns the feed id of the feed with the given entry id.
+// -----------------------------------------------------------------------------
+//
+TBool CFeedsDatabase::EntryIdFromFeedId(const TInt& aFeedId, TInt aFolderListId, TInt& aEntryId)
+ {
+ RDbView view;
+ TBool found = EFalse;
+ HBufC* query = NULL;
+
+ // Create a view given this select...
+ // SELECT FeedId FROM FeedTable WHERE FeedUrl = 'aFeedUrl' AND FolderListId = aFolderListId
+ _LIT(KQuery, "SELECT FolderItemId FROM FolderListTable WHERE FeedId = %d AND FolderListId = %d");
+
+ query = HBufC::NewLC( KQuery().Length() + KIntLength + KIntLength );
+
+ query->Des().Format( KQuery, aFeedId, aFolderListId );
+
+ User::LeaveIfError(view.Prepare(iDatabase, TDbQuery(*query), RDbView::EReadOnly));
+ CleanupClosePushL(view);
+
+ CDbColSet* colSet = view.ColSetL();
+ CleanupStack::PushL(colSet);
+
+ // Search for the feed.
+ if (view.Evaluate() >= 0)
+ {
+ if (view.FirstL())
+ {
+ // Get the feed id.
+ view.GetL();
+ aEntryId = view.ColUint16(colSet->ColNo(KFolderItemId));
+ found = ETrue;
+ }
+ }
+
+ CleanupStack::PopAndDestroy(colSet);
+ CleanupStack::PopAndDestroy(/*view*/);
+ CleanupStack::PopAndDestroy(query);
+
+ return found;
+ }
+
#if defined(_DEBUG)
// -----------------------------------------------------------------------------
// CFeedsDatabase::DebugPrintTables
--- a/browserutilities/feedsengine/FeedsServer/Server/src/FeedsServerSession.cpp Fri May 08 08:25:06 2009 +0300
+++ b/browserutilities/feedsengine/FeedsServer/Server/src/FeedsServerSession.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -619,7 +619,9 @@
TPckg<TFeedsServerResponseType> typePkg(type);
TInt folderListId = KNoFolderListId;
const TInt KAutoUpdatingOff = 0;
- iCurrentRequest = 1;
+ const TInt KRootFolderId = 0;
+
+ iCurrentRequest = 1;
// Note: The a packed feed is made up of two buffers, a buffer of tokens
// and a string table buffer. The tokens define the structure of the
// feed where the string table contains the feed's data. This
@@ -679,7 +681,10 @@
//Gyanendra TODO // should create entry into database
if (!iFeedsServer.iFeedsDatabase->FeedIdFromUrlL(feedUrl, folderListId, feedId))
{
- feedId = iFeedsServer.iFeedsDatabase->CommitFeedL(folderListId,KNullDesC,feedUrl, KAutoUpdatingOff);
+ //Find feed id from folder id
+ iFeedsServer.iFeedsDatabase->SetIsFolderTableUpdateNeeded(ETrue);
+ TInt entryId = iFeedsServer.iFeedsDatabase->FolderItemAddL(folderListId, feedUrl, feedUrl, EFalse, KRootFolderId, KAutoUpdatingOff);
+ iFeedsServer.iFeedsDatabase->FeedIdFromEntryId(entryId, folderListId, feedId);
updateNeeded = ETrue;
}
}
--- a/browserutilities/feedsengine/FeedsServer/Server/src/UpdateFeedTask.cpp Fri May 08 08:25:06 2009 +0300
+++ b/browserutilities/feedsengine/FeedsServer/Server/src/UpdateFeedTask.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -195,12 +195,12 @@
iObserver.Completed(iPackedFeed, *iUrl,iFeedId, err);
iPackedFeed = NULL;
}
-
+
// The load failed, exit cleanly.
else
{
// Pass the status to the observer.
- iObserver.Completed(NULL, *iUrl,iFeedId, aStatusCode);
+ iObserver.Completed(NULL, *iUrl,iFeedId, ((aStatusCode == KErrNone)? KErrCorrupt:aStatusCode));
}
}
--- a/browserutilities/feedsengine/FeedsServer/UrlHandler/src/HttpHandler.cpp Fri May 08 08:25:06 2009 +0300
+++ b/browserutilities/feedsengine/FeedsServer/UrlHandler/src/HttpHandler.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -135,41 +135,44 @@
// Create the transaction.
iTransaction = iSession.OpenTransactionL(uriParser, *this,
- iSession.StringPool().StringF(HTTP::EGET, RHTTPSession::GetTable()));
+ iSession.StringPool().StringF(HTTP::EGET, RHTTPSession::GetTable()));
// TODO: Set the headers if any.
- //++PK Add UA header code
-
- iUserAgentHeader = iTransaction.Request().GetHeaderCollection();
-
- CUserAgent* tWebUtilsStandardUA = CUserAgent::NewL();
+ //++PK Add UA header code
+
+ iUserAgentHeader = iTransaction.Request().GetHeaderCollection();
+
+ CUserAgent* tWebUtilsStandardUA = CUserAgent::NewL();
CleanupStack::PushL(tWebUtilsStandardUA);
-
- HBufC8* tWebUtilsStandardUAHeaderValue = tWebUtilsStandardUA->UserAgentL();
-
- RStringF tStringValue = iSession.StringPool().OpenFStringL(*tWebUtilsStandardUAHeaderValue);
-
- THTTPHdrVal tHeaderValue( tStringValue );
-
- RStringF tStringUA = iSession.StringPool().StringF(HTTP::EUserAgent, RHTTPSession::GetTable());
-
- iUserAgentHeader.SetFieldL( tStringUA, tStringValue );
-
- //++PK
+
+ HBufC8* tWebUtilsStandardUAHeaderValue = tWebUtilsStandardUA->UserAgentL();
+ CleanupStack::PushL(tWebUtilsStandardUAHeaderValue);
+
+ RStringF tStringValue = iSession.StringPool().OpenFStringL(*tWebUtilsStandardUAHeaderValue);
+
+ THTTPHdrVal tHeaderValue( tStringValue );
+
+ RStringF tStringUA = iSession.StringPool().StringF(HTTP::EUserAgent, RHTTPSession::GetTable());
+
+ iUserAgentHeader.SetFieldL( tStringUA, tStringValue );
+
+ //++PK
// Submit the request.
- iTransaction.SubmitL();
+ iTransaction.SubmitL();
// If the connection is available it is safe to tell to the observer
// to display progress indicators (i.e. a wait-dialog).
if (iHttpConnection->IsConnected())
{
iObserver->StartWait();
-
+
// Start the inactive connection timer as well.
iTimer->Start(KTimerPeriod, KTimerPeriod, iTimerState);
iLastActivity.HomeTime();
}
+ tStringValue.Close();
+ CleanupStack::PopAndDestroy(tWebUtilsStandardUAHeaderValue);
CleanupStack::PopAndDestroy(tWebUtilsStandardUA);
CleanupStack::PopAndDestroy(url);
}
--- a/browserutilities/feedsengine/group/FeedsApp.mmp Fri May 08 08:25:06 2009 +0300
+++ b/browserutilities/feedsengine/group/FeedsApp.mmp Fri Jul 03 15:54:40 2009 +0100
@@ -36,7 +36,11 @@
START RESOURCE ../data/FeedsApp.rss
HEADER
TARGETPATH APP_RESOURCE_DIR
-LANGUAGE_IDS
+#ifdef __S60_32__
+LANG sc
+#else
+LANGUAGE_IDS
+#endif
END
// Client UI sources
--- a/browserutilities/group/bld.inf Fri May 08 08:25:06 2009 +0300
+++ b/browserutilities/group/bld.inf Fri Jul 03 15:54:40 2009 +0100
@@ -24,7 +24,9 @@
#include "../browsertelservice/group/bld.inf"
#include "../favouritesengine/group/bld.inf"
#include "../feedsengine/group/bld.inf"
+#ifdef BRDO_MULTIPART_PARSER_FF
#include "../multipartparser/group/bld.inf"
+#endif
#include "../schemehandler/group/bld.inf"
#include "../webutils/group/bld.inf"
#include "../aiwbrowserprovider/group/bld.inf"
--- a/browserutilities/multipartparser/group/bld.inf Fri May 08 08:25:06 2009 +0300
+++ b/browserutilities/multipartparser/group/bld.inf Fri Jul 03 15:54:40 2009 +0100
@@ -16,8 +16,9 @@
*/
#include <platform_paths.hrh>
+#include "../../../web_plat/browser_platform_api/inc/Browser_platform_variant.hrh"
-#include "../../../web_plat/browser_platform_api/inc/Browser_platform_variant.hrh"
+#ifdef BRDO_MULTIPART_PARSER_FF
PRJ_PLATFORMS
DEFAULT
@@ -28,3 +29,4 @@
PRJ_MMPFILES
./MultipartParser.mmp
+#endif
\ No newline at end of file
--- a/browserutilities/schemehandler/SchemeApp/group/SchemeApp.mmp Fri May 08 08:25:06 2009 +0300
+++ b/browserutilities/schemehandler/SchemeApp/group/SchemeApp.mmp Fri Jul 03 15:54:40 2009 +0100
@@ -47,7 +47,11 @@
START RESOURCE ../data/SchemeApp.rss
HEADER
TARGETPATH APP_RESOURCE_DIR
-LANGUAGE_IDS
+#ifdef __S60_32__
+LANG sc
+#else
+LANGUAGE_IDS
+#endif
END // RESOURCE
USERINCLUDE ../inc
Binary file browserutilities/webutils/conf/webutils.confml has changed
Binary file browserutilities/webutils/conf/webutils.confml.bak has changed
Binary file browserutilities/webutils/conf/webutils_101F8731.crml has changed
--- a/browserutilities/webutils/src/CUserAgent.cpp Fri May 08 08:25:06 2009 +0300
+++ b/browserutilities/webutils/src/CUserAgent.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -30,9 +30,8 @@
#define KPlaceHolderMozillaVer _L("Mozilla/5.0")
-#define KPlaceHolderSecurity _L("U;")
-#define KPlaceHolderComponent _L("AppleWebKit/525 (KHTML, like Gecko) Version/3.0 Safari/525")
-#define KPlaceHolderBrowserName _L("WicKed")
+#define KPlaceHolderComponent _L("AppleWebKit/525 (KHTML, like Gecko) Version/3.0")
+#define KPlaceHolderBrowserName _L("BrowserNG")
#define KPlaceHolderSlash _L("/")
#define KPlaceHolderSymbianOS _L("SymbianOS")
@@ -199,6 +198,7 @@
{
LOG_ENTERFN("CUserAgent::ReadUserAgentStringL()");
TInt retCode (KErrNotReady);
+ TBuf<64> ignoreConfig(0);
// If the string queried already, dont read again
if(iUAStrQueried)
@@ -215,33 +215,35 @@
User::Leave(KErrNotReady);
}
- /* ---------------- Read default UA string ---------------- */
- LOG_WRITE("Reading default UA string from cenrep.");
if(!iBrowserCenrepStr)
{
iBrowserCenrepStr = HBufC::NewL(KMaxUserAgentStringLength);
}
TPtr tempPtr = iBrowserCenrepStr->Des();
-
- retCode = iRepository->Get(EDefaultUserAgentString, tempPtr);
- if(retCode != KErrNone)
- {
- LOG_WRITE_FORMAT("Error: Reading default UA string from cenrep failed! (%d)",retCode);
- LOG_LEAVEFN("CUserAgent::ReadUserAgentDataL()");
- User::Leave(retCode);
+ retCode = iRepository->Get(KWebUtilsIgnoreConfig, ignoreConfig);
+ if(retCode != KErrNone || ignoreConfig == _L("0"))
+ {/* ---------------- Read default UA string ---------------- */
+ LOG_WRITE("Reading default UA string from cenrep.");
+
+ retCode = iRepository->Get(EDefaultUserAgentString, tempPtr);
+ if(retCode != KErrNone)
+ {
+ LOG_WRITE_FORMAT("Error: Reading default UA string from cenrep failed! (%d)",retCode);
+ LOG_LEAVEFN("CUserAgent::ReadUserAgentDataL()");
+ User::Leave(retCode);
+ }
+
+ if(!IsUAStringEmpty(tempPtr))
+ {
+ LOG_WRITE("Successfully read default UA string from cenrep, can use this as UA string");
+
+ iUAStrQueried = TRUE;
+
+ LOG_LEAVEFN("CUserAgent::ReadUserAgentDataL()");
+ return;
+ }
}
-
- if(!IsUAStringEmpty(tempPtr))
- {
- LOG_WRITE("Successfully read default UA string from cenrep, can use this as UA string");
-
- iUAStrQueried = TRUE;
-
- LOG_LEAVEFN("CUserAgent::ReadUserAgentDataL()");
- return;
- }
-
ReadAndCreateUAStringL(tempPtr);
LOG_WRITE("Successfully created a new UA string.");
@@ -269,6 +271,9 @@
void CUserAgent::ReadMMSUserAgentStringL()
{
+
+ // MMS UA Format: <HardwareType>; <Series60Version> <MIDP_CLDC Version>
+
LOG_ENTERFN("CUserAgent::ReadMMSUserAgentStringL()");
TInt retCode (KErrNotReady);
@@ -315,13 +320,27 @@
}
/* ---------------- Read all variant fragments and build a UA string ---------------- */
- ReadAndCreateUAStringL(tempPtr);
+ GetMMSFragmentsL();
+ tempPtr.Append(iMMSHardwareType);
+ tempPtr.Append(KSpaceChar);
+ tempPtr.Append(iMMSS60Version);
+ tempPtr.Append(KSpaceChar);
+ tempPtr.Append(iMMSMIDPVersion);
+ tempPtr.Append(KSpaceChar);
+ tempPtr.Append(iMMSCLDCVersion);
+
+ if(!IsUAStringEmpty(tempPtr))
+ {
+ LOG_WRITE("Successfully created a new MMS UA string.");
+ }
+ else
+ {
+ LOG_WRITE("Failed to create a new MMS UA string...Exiting anyway");
+ }
- LOG_WRITE("Successfully created a new MMS UA string.");
-
iMMSUAStrQueried = TRUE;
- LOG_LEAVEFN("CUserAgent::ReadMMSUserAgentStringL()");
- return;
+ LOG_LEAVEFN("CUserAgent::ReadMMSUserAgentStringL()");
+ return;
}
// ---------------------------------------------------------
@@ -346,35 +365,37 @@
// ---------------------------------------------------------
void CUserAgent::GetFragmentsL()
{
-
-#ifdef BRDO_BROWSER_50_FF
- TInt osExtFailed(0);
- TRAP(osExtFailed, GetFragmentsFromOSExtL());
-#endif
-
if(iSymbianVersion.Length() <= 0)
{
- LOG_WRITE("Reading SymbianVersion from osext extended api or cenrep.");
- User::LeaveIfError(GetCenRepFragment(ESymbianOSVersion, iSymbianVersion));
+ LOG_WRITE("Reading SymbianVersion from cenrep.");
+ GetCenRepFragment(ESymbianOSVersion, iSymbianVersion);
}
-
if(iS60Version.Length() <= 0)
{
- LOG_WRITE("Reading S60Version from osext extended api or cenrep.");
- User::LeaveIfError(GetCenRepFragment(ES60Version, iS60Version));
+ LOG_WRITE("Reading S60Version from cenrep.");
+ GetCenRepFragment(ES60Version, iS60Version);
}
-
if(iHardwareType.Length() <= 0)
{
- LOG_WRITE("Reading HardwareVersion from osext extended api or cenrep.");
- User::LeaveIfError(GetCenRepFragment(EHardwareType, iHardwareType));
+ LOG_WRITE("Reading HardwareVersion from cenrep.");
+ GetCenRepFragment(EHardwareType, iHardwareType);
+ if(iHardwareType.Length() > 0)
+ { iHardwareType.Append(KPlaceHolderSemiColon);
+ }
}
-
if(iMIDPCLDCVersion.Length() <= 0)
{
- LOG_WRITE("Reading MIDPCLDCVersion from osext extended api or cenrep.");
- User::LeaveIfError(GetCenRepFragment(EMIDP_CLDCVersion, iMIDPCLDCVersion));
+ LOG_WRITE("Reading MIDPCLDCVersion from cenrep.");
+ GetCenRepFragment(EMIDP_CLDCVersion, iMIDPCLDCVersion);
}
+ //Only for 5.0 and above as 3.2 does not support OSExt APIs.
+ #ifdef BRDO_BROWSER_50_FF
+ if(iSymbianVersion.Length() <= 0 || iS60Version.Length() <= 0 || iHardwareType.Length() <= 0)
+ {
+ LOG_WRITE("Read from CenRep Failed... trying osext extended api");
+ GetFragmentsFromOSExtL();
+ }
+ #endif
}
// ---------------------------------------------------------
@@ -385,36 +406,33 @@
{
GetFragmentsL();
- //
- // Mozilla/5.0 (<Symbian Version> U; [en]; <Series60Version> <HardwareType> <MIDP_CLDC Version> ) AppleWebKit/413 (KHTML, like Gecko) Safari/413
- //
-
+ // Mozilla/5.0 (<Symbian Version> <Series60Version> <HardwareType> <MIDP_CLDC Version> ) AppleWebKit/413 (KHTML, like Gecko) BrowserName/Version
+
aUAStringPtr.Copy(KPlaceHolderMozillaVer);
aUAStringPtr.Append(KSpaceChar);
-
- aUAStringPtr.Append(KPlaceHolderOpen);
-
- aUAStringPtr.Append(iSymbianVersion);
- aUAStringPtr.Append(KSpaceChar);
-
- aUAStringPtr.Append(KPlaceHolderSecurity);
+ if(iSymbianVersion.Length() > 0 || iS60Version.Length() > 0 || iHardwareType.Length() > 0 || iMIDPCLDCVersion.Length() > 0)
+ {
+ aUAStringPtr.Append(KPlaceHolderOpen);
+
+ aUAStringPtr.Append(iSymbianVersion);
+ aUAStringPtr.Append(KSpaceChar);
+
+ aUAStringPtr.Append(iS60Version);
+ aUAStringPtr.Append(KSpaceChar);
+
+ aUAStringPtr.Append(iHardwareType);
+ aUAStringPtr.Append(KSpaceChar);
+
+ aUAStringPtr.Append(iMIDPCLDCVersion);
+ aUAStringPtr.Append(KSpaceChar);
+
+ aUAStringPtr.Append(KPlaceHolderClose);
+ }
aUAStringPtr.Append(KSpaceChar);
-
- aUAStringPtr.Append(iS60Version);
- aUAStringPtr.Append(KSpaceChar);
-
- aUAStringPtr.Append(iHardwareType);
-
- aUAStringPtr.Append(KSpaceChar);
- aUAStringPtr.Append(iMIDPCLDCVersion);
- aUAStringPtr.Append(KSpaceChar);
- aUAStringPtr.Append(KPlaceHolderClose);
+ aUAStringPtr.Append(KPlaceHolderComponent);
aUAStringPtr.Append(KSpaceChar);
aUAStringPtr.Append(iBrowserNameAndVersionStr->Des());
-
- aUAStringPtr.Append(KSpaceChar);
- aUAStringPtr.Append(KPlaceHolderComponent);
}
// ---------------------------------------------------------
@@ -712,11 +730,63 @@
// -------------------------------------------------------------------------------
void CUserAgent::GetBrowserNameAndVersionL()
{
+ TInt ret(0);
+ TBuf<64> BrowserName(0);
TInt length = KMaxBrowserVersionStringLength + KMaxBrowserNameLength;
iBrowserNameAndVersionStr = HBufC::NewL( length);
-
- iBrowserNameAndVersionStr->Des().Append(KPlaceHolderBrowserName);
+
+ ret = iRepository->Get(KWebUtilsBrowserName, BrowserName);
+ if(ret != KErrNone)
+ {
+ LOG_WRITE("Error: Reading default Browser Name from cenrep failed!");
+ iBrowserNameAndVersionStr->Des().Append(KPlaceHolderBrowserName);
+ }
+ else
+ {
+ iBrowserNameAndVersionStr->Des().Append(BrowserName);
+ }
iBrowserNameAndVersionStr->Des().Append(KPlaceHolderSlash);
iBrowserNameAndVersionStr->Des().Append( *iBrowserVersionStr );
}
+
+// ---------------------------------------------------------
+// CUserAgent::GetFragmentsL()
+// Gets all required fragments from OSExt APIs/CenRep
+// ---------------------------------------------------------
+void CUserAgent::GetMMSFragmentsL()
+ {
+ if(iMMSHardwareType.Length() <= 0)
+ {
+ LOG_WRITE("Reading HardwareVersion from cenrep.");
+ iRepository->Get(KWebUtilsMMSUsrAg2, iMMSHardwareType);
+ if(iMMSHardwareType.Length() > 0)
+ { iMMSHardwareType.Append(KPlaceHolderSemiColon);
+ }
+ }
+ if(iMMSS60Version.Length() <= 0)
+ {
+ LOG_WRITE("Reading S60Version from cenrep.");
+ iRepository->Get(KWebUtilsMMSUsrAg3, iMMSS60Version);
+ }
+ if(iMMSMIDPVersion.Length() <= 0)
+ {
+ LOG_WRITE("Reading MIDPCLDCVersion from cenrep.");
+ iRepository->Get(KWebUtilsMMSUsrAg4, iMMSMIDPVersion);
+ }
+ if(iMMSCLDCVersion.Length() <= 0)
+ {
+ LOG_WRITE("Reading MIDPCLDCVersion from cenrep.");
+ iRepository->Get(KWebUtilsMMSUsrAg5, iMMSCLDCVersion);
+ }
+ //Only for 5.0 and above as 3.2 does not support OSExt APIs.
+ #ifdef BRDO_BROWSER_50_FF
+ if(iMMSS60Version.Length() <= 0 || iMMSHardwareType.Length() <= 0)
+ {
+ LOG_WRITE("Read from CenRep Failed... trying osext extended api");
+ GetFragmentsFromOSExtL();
+ iMMSHardwareType = iHardwareType;
+ iMMSS60Version = iS60Version;
+ }
+ #endif
+ }
// End of file
--- a/browserutilities/webutils/tsrc/public/adv/group/WebUtilsBCTest.mmp Fri May 08 08:25:06 2009 +0300
+++ b/browserutilities/webutils/tsrc/public/adv/group/WebUtilsBCTest.mmp Fri Jul 03 15:54:40 2009 +0100
@@ -57,7 +57,11 @@
LIBRARY webutils.lib
LIBRARY Centralrepository.lib
-LANGUAGE_IDS
+#ifdef __S60_32__
+LANG sc
+#else
+LANGUAGE_IDS
+#endif
/*
START WINS
--- a/browserutilities/xmlparser/group/XMLInterface.mmp Fri May 08 08:25:06 2009 +0300
+++ b/browserutilities/xmlparser/group/XMLInterface.mmp Fri Jul 03 15:54:40 2009 +0100
@@ -61,7 +61,11 @@
LIBRARY charconv.lib
LIBRARY cxmlparser.lib
-LANGUAGE_IDS
+#ifdef __S60_32__
+LANG sc
+#else
+LANGUAGE_IDS
+#endif
/*
START WINS
?wins_specific_information
--- a/codhandler/codui/group/CodUi.mmp Fri May 08 08:25:06 2009 +0300
+++ b/codhandler/codui/group/CodUi.mmp Fri Jul 03 15:54:40 2009 +0100
@@ -46,7 +46,11 @@
START RESOURCE ../data/CodUi.rss
HEADER
TARGETPATH RESOURCE_FILES_DIR
-LANGUAGE_IDS
+#ifdef __S60_32__
+LANG sc
+#else
+LANGUAGE_IDS
+#endif
END
USERINCLUDE ../inc
--- a/codhandler/codui/src/CodDownloadImpl.cpp Fri May 08 08:25:06 2009 +0300
+++ b/codhandler/codui/src/CodDownloadImpl.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -207,7 +207,7 @@
if(iDownloadPaused)
{
- iEng->Start(aParams,&iStatus);
+ iEng->Start(iParams,&iStatus);
SetActive();
iState = ELoad;
iProgress.iState = TCodDownloadProgress::EInProgress;
--- a/codhandler/codviewer/group/CodViewer.mmp Fri May 08 08:25:06 2009 +0300
+++ b/codhandler/codviewer/group/CodViewer.mmp Fri Jul 03 15:54:40 2009 +0100
@@ -35,7 +35,11 @@
START RESOURCE ../data/CodViewer.rss
HEADER
TARGETPATH APP_RESOURCE_DIR
-LANGUAGE_IDS
+#ifdef __S60_32__
+LANG sc
+#else
+LANGUAGE_IDS
+#endif
END
SYSTEMINCLUDE ../../CodEng/inc
--- a/codhandler/ddviewer/group/DdViewer.mmp Fri May 08 08:25:06 2009 +0300
+++ b/codhandler/ddviewer/group/DdViewer.mmp Fri Jul 03 15:54:40 2009 +0100
@@ -35,7 +35,11 @@
START RESOURCE ../data/DdViewer.rss
HEADER
TARGETPATH APP_RESOURCE_DIR
-LANGUAGE_IDS
+#ifdef __S60_32__
+LANG sc
+#else
+LANGUAGE_IDS
+#endif
END
SYSTEMINCLUDE ../../CodEng/inc
--- a/codhandler/roapapp/group/RoapApp.mmp Fri May 08 08:25:06 2009 +0300
+++ b/codhandler/roapapp/group/RoapApp.mmp Fri Jul 03 15:54:40 2009 +0100
@@ -43,7 +43,11 @@
START RESOURCE ../data/RoapApp.rss
HEADER
TARGETPATH APP_RESOURCE_DIR
-LANGUAGE_IDS
+#ifdef __S60_32__
+LANG sc
+#else
+LANGUAGE_IDS
+#endif
END
USERINCLUDE ../inc
--- a/codhandler/roapapp/src/RoapAppUi.cpp Fri May 08 08:25:06 2009 +0300
+++ b/codhandler/roapapp/src/RoapAppUi.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -49,14 +49,10 @@
#ifdef __SERIES60_HELP
// Context-Sensitve Help File
-#include <csxhelp/browser.hlp.hrh>
+#include <csxhelp/drm.hlp.hrh>
#endif // __SERIES60_HELP
-//#include "browser.hlp.hrh" // replace with DRMUI.hlp.hrh when ready
// ================= CONSTANTS =======================
-/// For launching more info DRM_HLP_REGISTRATION
-_LIT(KDRM_HLP_REGISTRATION,"DRM_HLP_REGISTRATION");
-
/// Temp file directory:
_LIT( KRoapTempFilePath, "c:\\system\\temp\\" );
@@ -377,7 +373,7 @@
{
TInt err( KErrNone );
CRoapAppUi* self = static_cast<CRoapAppUi*>(aPtr);
- TRAP( err, self->LaunchHelpL( KDRM_HLP_REGISTRATION ) ); // KOSS_HLP_SAVED_PAGES for testing
+ TRAP( err, self->LaunchHelpL( KDRM_HLP_REGISTRATION ) );
return err;
}
@@ -987,3 +983,4 @@
CLOG(( 2, _L("<- CRoapAppUi::HandleDMgrEventL") ));
}
+
--- a/web_plat/browser_platform_api/group/bld.inf Fri May 08 08:25:06 2009 +0300
+++ b/web_plat/browser_platform_api/group/bld.inf Fri Jul 03 15:54:40 2009 +0100
@@ -23,5 +23,8 @@
PRJ_EXPORTS
../inc/Browser_platform_variant.hrh MW_LAYER_PLATFORM_EXPORT_PATH(Browser_platform_variant.hrh)
+#ifdef BRDO_ADDED_EXPORT_LOCATION
+../inc/Browser_platform_variant.hrh BRDO_ADDED_EXPORT_LOCATION(Browser_platform_variant.hrh)
+#endif
PRJ_MMPFILES
--- a/web_plat/browser_platform_api/inc/Browser_platform_variant.hrh Fri May 08 08:25:06 2009 +0300
+++ b/web_plat/browser_platform_api/inc/Browser_platform_variant.hrh Fri Jul 03 15:54:40 2009 +0100
@@ -1,5 +1,5 @@
/*
-* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
+* Copyright (c) 2008 - 2009 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
* under the terms of the License "Eclipse Public License v1.0"
@@ -26,12 +26,57 @@
#ifndef BROWSER_PLATFORM_VARIANT_HRH
#define BROWSER_PLATFORM_VARIANT_HRH
-/* NOTE:
+
+/*
+* Establish which platform we are building on.
+* If required, un-comment correct platform macro as
+* described below
+*
+*/
- Format of browser domain feature flags:
+#if defined(__S60_32__)
+//
+// this is the only supported platform that comes with unambiguous platform version flag
+#define __PLATFORM_VERSION_32__
+//
+#else
+// manually edit the following lines to enable definition for
+// whichever platform is in use
+//
+// un-comment following line for 5.0/5250 platforms
+//#define __PLATFORM_VERSION_50__
+//
+// un-comment following line for 5.1/TB9.1 platforms
+#define __PLATFORM_VERSION_51__
+//
+// un-comment following line for 5.2/TB9.2 platforms
+//#define __PLATFORM_VERSION_52__
+//
+#endif
+
- "BRDO_" | feature/component name | "_FF"
+/*
+*
+* Define Browser Version
+*
+*/
+
+#define BRDO_APP_VERSION_MAJOR 7
+#define BRDO_APP_VERSION_MINOR 2
+#define BRDO_APP_VERSION BRDO_APP_VERSION_MAJOR##_##BRDO_APP_VERSION_MINOR
+
+/*
+*
+* Define feature flags
+*
+* Format of browser domain feature flags:
+*
+* "BRDO_" | feature/component name | "_FF"
+*
+* Define default value of the flag in section below, and then modify it
+* by platform as it varies from that default.
+*
*/
// Defines Language InterWork and SAPI availability
@@ -68,12 +113,20 @@
// Gallery App is not present
#undef BRDO_APP_GALLERY_SUPPORTED_FF
+
+// Defines if MultipartParser should be built
+#define BRDO_MULTIPART_PARSER_FF
+
+// Additional export location - to adapt to new header export location
+#undef BRDO_ADDED_EXPORT_LOCATION
+
+
/*
* ===================
* S60 3.23
* ===================
*/
-#if defined(__S60_32__)
+#if defined(__PLATFORM_VERSION_32__)
// Defines Language InterWork and SAPI availability
#undef BRDO_LIW_FF
@@ -95,13 +148,6 @@
// Gallery App is present
#define BRDO_APP_GALLERY_SUPPORTED_FF
-// Missing from ProductVariant.hrh
-#ifndef LANGUAGE_IDS
-#define LANGUAGE_IDS LANG sc
-#endif
-
-#define BRDO_APP_VERSION_MAJOR 7
-#define BRDO_APP_VERSION_MINOR 1
// Missing from 3.23 platform_paths.hrh
@@ -112,50 +158,52 @@
#define APP_LAYER_LOC_EXPORT_PATH(exported) APP_LAYER_PUBLIC_EXPORT_PATH(##exported)
-
-
/*
* ===================
* S60 5.0
* ===================
*/
-#elif defined(__S60_50__)
+#elif defined(__PLATFORM_VERSION_50__)
// Defines must accumulate versions. ie for 5.01 you must define BRDO_BROWSER_50_FF and BRDO_BROWSER_501_FF(To be reviewed)
// The assumption is that anything that worked in 3.2 will work in 5.0 and 5.01. For anything doesn't work
// in 3.2 but works in 5.0 and above, that code should be behind the BRDO_BROWSER_50_FF flag.
#define BRDO_BROWSER_50_FF
-#define BRDO_APP_VERSION_MAJOR 7
-#define BRDO_APP_VERSION_MINOR 0
+#if __GNUC__ >= 3
+#define BRDO_ADDED_EXPORT_LOCATION(exported) MW_LAYER_DOMAIN_EXPORT_PATH(../../platform/mw/exported)
+#else
+#define BRDO_ADDED_EXPORT_LOCATION(exported) MW_LAYER_DOMAIN_EXPORT_PATH(../../platform/mw/##exported)
+#endif
+
+#define APP_LAYER_LIBC_SYSTEMINCLUDE SYSTEMINCLUDE OS_LAYER_PUBLIC_EXPORT_PATH(../libc)
+#define APP_LAYER_ECOM_SYSTEMINCLUDE SYSTEMINCLUDE OS_LAYER_PUBLIC_EXPORT_PATH(../ecom)
+#define APP_LAYER_HTTP_SYSTEMINCLUDE SYSTEMINCLUDE OS_LAYER_PUBLIC_EXPORT_PATH(../http)
+#define APP_LAYER_CONNECT_SYSTEMINCLUDE SYSTEMINCLUDE OS_LAYER_PUBLIC_EXPORT_PATH(../connect)
+#define APP_LAYER_SWI_SYSTEMINCLUDE SYSTEMINCLUDE OS_LAYER_PUBLIC_EXPORT_PATH(../swi)
+#define APP_LAYER_OSKERNEL_SYSTEMINCLUDE SYSTEMINCLUDE OS_LAYER_PUBLIC_EXPORT_PATH(../kernel)
+#define APP_LAYER_PUSH_SYSTEMINCLUDE SYSTEMINCLUDE OS_LAYER_PUBLIC_EXPORT_PATH(../push)
+#define APP_LAYER_STDAPIS_SYSTEMINCLUDE SYSTEMINCLUDE OS_LAYER_PUBLIC_EXPORT_PATH(../stdapis)
+
+#define MW_LAYER_LIBC_SYSTEMINCLUDE SYSTEMINCLUDE OS_LAYER_PUBLIC_EXPORT_PATH(../libc)
+#define MW_LAYER_ECOM_SYSTEMINCLUDE SYSTEMINCLUDE OS_LAYER_PUBLIC_EXPORT_PATH(../ecom)
+#define MW_LAYER_HTTP_SYSTEMINCLUDE SYSTEMINCLUDE OS_LAYER_PUBLIC_EXPORT_PATH(../http)
+#define MW_LAYER_CONNECT_SYSTEMINCLUDE SYSTEMINCLUDE OS_LAYER_PUBLIC_EXPORT_PATH(../connect)
+#define MW_LAYER_SWI_SYSTEMINCLUDE SYSTEMINCLUDE OS_LAYER_PUBLIC_EXPORT_PATH(../swi)
+#define MW_LAYER_OSKERNEL_SYSTEMINCLUDE SYSTEMINCLUDE OS_LAYER_PUBLIC_EXPORT_PATH(../kernel)
+#define MW_LAYER_PUSH_SYSTEMINCLUDE SYSTEMINCLUDE OS_LAYER_PUBLIC_EXPORT_PATH(../push)
+#define MW_LAYER_STDAPIS_SYSTEMINCLUDE SYSTEMINCLUDE OS_LAYER_PUBLIC_EXPORT_PATH(../stdapis)
+
/*
* ===================
* S60 5.1
* ===================
*/
-#else // until __S60_51__ is defined
+#elif defined(__PLATFORM_VERSION_51__)
#define BRDO_BROWSER_50_FF
-
-#define BRDO_APP_VERSION_MAJOR 7
-#define BRDO_APP_VERSION_MINOR 2
-
-#endif // S60 VERSION ID's
-
-
-#define BRDO_APP_VERSION BRDO_APP_VERSION_MAJOR##_##BRDO_APP_VERSION_MINOR
-
-// Generic run-time definitions -- see WmlBrowserBuild.h for similar feature related definitions
-
-// Browser Update - Independent Application Delivery
-#if defined( KFeatureIdIAUpdate )
-// Defines flag for activating changes to update Browser application - from the Browser application
-#define BRDO_BROWSER_UPDATE_UI_FF FeatureManager::FeatureSupported( KFeatureIdIAUpdate )
-#else
-#define BRDO_BROWSER_UPDATE_UI_FF 0
-#endif // KFeatureIdIAUpdate
-
+#define BRDO_BROWSER_51_FF
#define APP_LAYER_LIBC_SYSTEMINCLUDE SYSTEMINCLUDE OS_LAYER_PUBLIC_EXPORT_PATH(libc)
#define APP_LAYER_ECOM_SYSTEMINCLUDE SYSTEMINCLUDE OS_LAYER_PUBLIC_EXPORT_PATH(ecom)
@@ -175,4 +223,53 @@
#define MW_LAYER_PUSH_SYSTEMINCLUDE SYSTEMINCLUDE OS_LAYER_PUBLIC_EXPORT_PATH(push)
#define MW_LAYER_STDAPIS_SYSTEMINCLUDE SYSTEMINCLUDE OS_LAYER_PUBLIC_EXPORT_PATH(stdapis)
+
+/*
+* ===================
+* S60 5.2
+* ===================
+*/
+#elif defined(__PLATFORM_VERSION_52__)
+
+#define BRDO_BROWSER_50_FF
+#define BRDO_BROWSER_51_FF
+#define BRDO_BROWSER_52_FF
+
+// BrDo MultipartParser not used from S60 5.2 onward
+//#undef BRDO_MULTIPART_PARSER_FF - TODO: un-comment this line for week21 release
+
+#define APP_LAYER_LIBC_SYSTEMINCLUDE SYSTEMINCLUDE OS_LAYER_PUBLIC_EXPORT_PATH(libc)
+#define APP_LAYER_ECOM_SYSTEMINCLUDE SYSTEMINCLUDE OS_LAYER_PUBLIC_EXPORT_PATH(ecom)
+#define APP_LAYER_HTTP_SYSTEMINCLUDE SYSTEMINCLUDE OS_LAYER_PUBLIC_EXPORT_PATH(http)
+#define APP_LAYER_CONNECT_SYSTEMINCLUDE SYSTEMINCLUDE OS_LAYER_PUBLIC_EXPORT_PATH(connect)
+#define APP_LAYER_SWI_SYSTEMINCLUDE SYSTEMINCLUDE OS_LAYER_PUBLIC_EXPORT_PATH(swi)
+#define APP_LAYER_OSKERNEL_SYSTEMINCLUDE SYSTEMINCLUDE OS_LAYER_PUBLIC_EXPORT_PATH(kernel)
+#define APP_LAYER_PUSH_SYSTEMINCLUDE SYSTEMINCLUDE OS_LAYER_PUBLIC_EXPORT_PATH(push)
+#define APP_LAYER_STDAPIS_SYSTEMINCLUDE SYSTEMINCLUDE OS_LAYER_PUBLIC_EXPORT_PATH(stdapis)
+
+#define MW_LAYER_LIBC_SYSTEMINCLUDE SYSTEMINCLUDE OS_LAYER_PUBLIC_EXPORT_PATH(libc)
+#define MW_LAYER_ECOM_SYSTEMINCLUDE SYSTEMINCLUDE OS_LAYER_PUBLIC_EXPORT_PATH(ecom)
+#define MW_LAYER_HTTP_SYSTEMINCLUDE SYSTEMINCLUDE OS_LAYER_PUBLIC_EXPORT_PATH(http)
+#define MW_LAYER_CONNECT_SYSTEMINCLUDE SYSTEMINCLUDE OS_LAYER_PUBLIC_EXPORT_PATH(connect)
+#define MW_LAYER_SWI_SYSTEMINCLUDE SYSTEMINCLUDE OS_LAYER_PUBLIC_EXPORT_PATH(swi)
+#define MW_LAYER_OSKERNEL_SYSTEMINCLUDE SYSTEMINCLUDE OS_LAYER_PUBLIC_EXPORT_PATH(kernel)
+#define MW_LAYER_PUSH_SYSTEMINCLUDE SYSTEMINCLUDE OS_LAYER_PUBLIC_EXPORT_PATH(push)
+#define MW_LAYER_STDAPIS_SYSTEMINCLUDE SYSTEMINCLUDE OS_LAYER_PUBLIC_EXPORT_PATH(stdapis)
+
+
+#endif // PLATFORM VERSION ID's
+
+
+
+// Generic run-time definitions -- see WmlBrowserBuild.h for similar feature related definitions
+
+// Browser Update - Independent Application Delivery
+#if defined( KFeatureIdIAUpdate )
+// Defines flag for activating changes to update Browser application - from the Browser application
+#define BRDO_BROWSER_UPDATE_UI_FF FeatureManager::FeatureSupported( KFeatureIdIAUpdate )
+#else
+#define BRDO_BROWSER_UPDATE_UI_FF 0
+#endif // KFeatureIdIAUpdate
+
+
#endif // BROWSER_PLATFORM_VARIANT_HRH
--- a/web_plat/group/bld.inf Fri May 08 08:25:06 2009 +0300
+++ b/web_plat/group/bld.inf Fri Jul 03 15:54:40 2009 +0100
@@ -15,6 +15,7 @@
*
*/
+#include "../browser_platform_api/inc/Browser_platform_variant.hrh"
#include "../aiw_browser_provider_api/group/bld.inf"
@@ -26,7 +27,9 @@
#include "../download_mgr_client_api_extn/group/bld.inf"
#include "../feeds_engine_api/group/bld.inf"
#include "../launcher_api/group/bld.inf"
+#ifdef BRDO_MULTIPART_PARSER_FF
#include "../multipart_parser_api/group/bld.inf"
+#endif
#include "../recent_url_store_api/group/bld.inf"
#include "../rt_gesturehelper_api/group/bld.inf"
#include "../scheme_handler_plugin_api/group/bld.inf"
--- a/web_plat/multipart_parser_api/group/bld.inf Fri May 08 08:25:06 2009 +0300
+++ b/web_plat/multipart_parser_api/group/bld.inf Fri Jul 03 15:54:40 2009 +0100
@@ -15,10 +15,11 @@
*
*/
-
#include <platform_paths.hrh>
#include "../../../web_plat/browser_platform_api/inc/Browser_platform_variant.hrh"
+#ifdef BRDO_MULTIPART_PARSER_FF
+
PRJ_PLATFORMS
DEFAULT
@@ -27,3 +28,5 @@
../inc/MultipartParser.h MW_LAYER_PLATFORM_EXPORT_PATH(MultipartParser.h)
PRJ_MMPFILES
+
+#endif
--- a/web_plat/scheme_handler_plugin_api/group/bld.inf Fri May 08 08:25:06 2009 +0300
+++ b/web_plat/scheme_handler_plugin_api/group/bld.inf Fri Jul 03 15:54:40 2009 +0100
@@ -29,6 +29,10 @@
../inc/SchemeHandler.inl MW_LAYER_PLATFORM_EXPORT_PATH(SchemeHandler.inl)
../inc/SchemeDefs.hrh MW_LAYER_PLATFORM_EXPORT_PATH(SchemeDefs.hrh)
+#ifdef BRDO_ADDED_EXPORT_LOCATION
+../inc/SchemeDefs.hrh BRDO_ADDED_EXPORT_LOCATION(SchemeDefs.hrh)
+#endif
+
PRJ_MMPFILES
--- a/web_plat/webutils_api/inc/CUserAgent.h Fri May 08 08:25:06 2009 +0300
+++ b/web_plat/webutils_api/inc/CUserAgent.h Fri Jul 03 15:54:40 2009 +0100
@@ -110,45 +110,50 @@
bool IsUAStringEmpty(const TPtr &aUAString);
TInt GetCenRepFragment(TUserAgentStringKeys aFragmentType, TDes& fragmentValue);
- void GetFragmentsL();
- void ReadAndCreateUAStringL(TPtr &aUAStringPtr);
-
-
+ void GetFragmentsL();
+ void GetMMSFragmentsL();
+ void ReadAndCreateUAStringL(TPtr &aUAStringPtr);
+
+
#ifdef BRDO_BROWSER_50_FF
- void GetFragmentsFromOSExtL();
- TInt GetOSExtFragment(TUserAgentStringKeys aFragmentType, TDes& fragmentValue, RFs& fs);
- /**
+ void GetFragmentsFromOSExtL();
+ TInt GetOSExtFragment(TUserAgentStringKeys aFragmentType, TDes& fragmentValue, RFs& fs);
+ /**
* Gets the Version Values from osext layer / central repository
*/
- TInt GetOSVersion(TDes& aValue, RFs& aFs);
- TInt GetS60Version(TDes& aValue, RFs& aFs);
- TInt GetVersion(const SysVersionInfo::TVersionInfoType aType, TDes& aValue);
- TInt GetHardwareVersion(TDes& aHardwareType, RFs& aFs);
-#endif //#ifdef BRDO_BROWSER_50_FF
+ TInt GetOSVersion(TDes& aValue, RFs& aFs);
+ TInt GetS60Version(TDes& aValue, RFs& aFs);
+ TInt GetVersion(const SysVersionInfo::TVersionInfoType aType, TDes& aValue);
+ TInt GetHardwareVersion(TDes& aHardwareType, RFs& aFs);
+#endif //#ifdef BRDO_BROWSER_50_FF
- void GetBrowserVersionL();
- void GetBrowserNameAndVersionL();
-
- private: //data
+ void GetBrowserVersionL();
+ void GetBrowserNameAndVersionL();
+
+ private: //data
- CRepository* iRepository;
+ CRepository* iRepository;
+
+ TBool iUAStrQueried;
+ TBool iMMSUAStrQueried;
+ TBool iURLUAProfQueried;
- TBool iUAStrQueried;
- TBool iMMSUAStrQueried;
- TBool iURLUAProfQueried;
+ HBufC* iBrowserCenrepStr;
+ HBufC* iMMSCenrepStr;
+ HBufC* iUAProfURL;
+ HBufC* iUAProfURL3G;
+
+ TBuf<64> iSymbianVersion;
+ TBuf<64> iS60Version;
+ TBuf<64> iMIDPCLDCVersion;
+ TBuf<64> iHardwareType;
+ TBuf<64> iMMSS60Version;
+ TBuf<64> iMMSMIDPVersion;
+ TBuf<64> iMMSCLDCVersion;
+ TBuf<64> iMMSHardwareType;
- HBufC* iBrowserCenrepStr;
- HBufC* iMMSCenrepStr;
- HBufC* iUAProfURL;
- HBufC* iUAProfURL3G;
-
- TBuf<64> iSymbianVersion;
- TBuf<64> iS60Version;
- TBuf<64> iMIDPCLDCVersion;
- TBuf<64> iHardwareType;
-
- HBufC* iBrowserVersionStr;
- HBufC* iBrowserNameAndVersionStr;
+ HBufC* iBrowserVersionStr;
+ HBufC* iBrowserNameAndVersionStr;
};
--- a/web_plat/webutils_api/inc/WebUtilsInternalCRKeys.h Fri May 08 08:25:06 2009 +0300
+++ b/web_plat/webutils_api/inc/WebUtilsInternalCRKeys.h Fri Jul 03 15:54:40 2009 +0100
@@ -74,5 +74,11 @@
// Browser Version SVN Rev
const TUint32 KWebUtilsBrowserVersionSVNRev = 0x00000011;
+// Browser Name
+const TUint32 KWebUtilsBrowserName = 0x00000012;
+
+// Ignore product program config when TRUE
+const TUint32 KWebUtilsIgnoreConfig = 0x00000013;
+
#endif // WEBUTILSINTERNALCRKEYS_H
--- a/web_pub/browser_control_api/tsrc/group/BrCtlApiTest.mmp Fri May 08 08:25:06 2009 +0300
+++ b/web_pub/browser_control_api/tsrc/group/BrCtlApiTest.mmp Fri Jul 03 15:54:40 2009 +0100
@@ -54,6 +54,10 @@
// component under test
LIBRARY browserengine.lib
-LANGUAGE_IDS
+#ifdef __S60_32__
+LANG sc
+#else
+LANGUAGE_IDS
+#endif
// End of File
--- a/web_pub/download_mgr_client_api/tsrc/group/DownloadMgrClientApiTest.mmp Fri May 08 08:25:06 2009 +0300
+++ b/web_pub/download_mgr_client_api/tsrc/group/DownloadMgrClientApiTest.mmp Fri Jul 03 15:54:40 2009 +0100
@@ -42,6 +42,10 @@
LIBRARY euser.lib efsrv.lib downloadmgr.lib esock.lib
LIBRARY stiftestinterface.lib
-LANGUAGE_IDS
+#ifdef __S60_32__
+LANG sc
+#else
+LANGUAGE_IDS
+#endif
// End of File
--- a/web_pub/favourites_engine_api/tsrc/group/FavouritesEngineTest.mmp Fri May 08 08:25:06 2009 +0300
+++ b/web_pub/favourites_engine_api/tsrc/group/FavouritesEngineTest.mmp Fri Jul 03 15:54:40 2009 +0100
@@ -51,6 +51,10 @@
LIBRARY euser.lib efsrv.lib favouritesengine.lib estor.lib
LIBRARY stiftestinterface.lib
-LANGUAGE_IDS
+#ifdef __S60_32__
+LANG sc
+#else
+LANGUAGE_IDS
+#endif
// End of File
--- a/webengine/device/group/Device.mmp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/device/group/Device.mmp Fri Jul 03 15:54:40 2009 +0100
@@ -33,7 +33,11 @@
OPTION CW -warn noempty,nounused,nounwanted,nopedantic
OPTION ARMCC --diag_suppress 111,177,1293,1,1299,830,550,427 --fpmode fast
-LANGUAGE_IDS
+#ifdef __S60_32__
+LANG sc
+#else
+LANGUAGE_IDS
+#endif
VENDORID VID_DEFAULT
CAPABILITY CAP_GENERAL_DLL
--- a/webengine/device/inc/DeviceBridge.h Fri May 08 08:25:06 2009 +0300
+++ b/webengine/device/inc/DeviceBridge.h Fri Jul 03 15:54:40 2009 +0100
@@ -49,6 +49,7 @@
inline virtual void* Device( void* exec ) = 0;
inline virtual ~MDeviceBridge() {};
inline virtual void SetUid( const TUint& aValue) = 0;
+ virtual void Clear() = 0;
};
/**
@@ -94,6 +95,7 @@
* @return none
*/
void SetUid( const TUint& aValue);
+ void Clear();
private:
--- a/webengine/device/src/DeviceBridge.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/device/src/DeviceBridge.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -57,11 +57,23 @@
//
TDeviceBridge::~TDeviceBridge()
{
+ Clear();
+ }
+
+// ----------------------------------------------------------------------------
+// TDeviceBridge::Clear
+//
+//
+// ----------------------------------------------------------------------------
+//
+void TDeviceBridge::Clear()
+ {
if ( m_device )
{
m_device->Close();
KJS::Collector::unprotect(m_device);
}
+ m_device = NULL;
}
// ----------------------------------------------------------------------------
--- a/webengine/osswebengine/DerivedSources/WebCore/HTMLNames.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/DerivedSources/WebCore/HTMLNames.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -41,6 +41,302 @@
using namespace WebCore;
+static bool initialized = false;
+
+static const char *xhtmlNSString = "http://www.w3.org/1999/xhtml";
+// Tags
+static const char *aTagString = "a";
+static const char *abbrTagString = "abbr";
+static const char *acronymTagString = "acronym";
+static const char *addressTagString = "address";
+static const char *appletTagString = "applet";
+static const char *areaTagString = "area";
+static const char *bTagString = "b";
+static const char *baseTagString = "base";
+static const char *basefontTagString = "basefont";
+static const char *bdoTagString = "bdo";
+static const char *bgsoundTagString = "bgsound";
+static const char *bigTagString = "big";
+static const char *blockquoteTagString = "blockquote";
+static const char *bodyTagString = "body";
+static const char *brTagString = "br";
+static const char *buttonTagString = "button";
+static const char *canvasTagString = "canvas";
+static const char *captionTagString = "caption";
+static const char *centerTagString = "center";
+static const char *citeTagString = "cite";
+static const char *codeTagString = "code";
+static const char *colTagString = "col";
+static const char *colgroupTagString = "colgroup";
+static const char *ddTagString = "dd";
+static const char *delTagString = "del";
+static const char *dfnTagString = "dfn";
+static const char *dirTagString = "dir";
+static const char *divTagString = "div";
+static const char *dlTagString = "dl";
+static const char *dtTagString = "dt";
+static const char *emTagString = "em";
+static const char *embedTagString = "embed";
+static const char *fieldsetTagString = "fieldset";
+static const char *fontTagString = "font";
+static const char *formTagString = "form";
+static const char *frameTagString = "frame";
+static const char *framesetTagString = "frameset";
+static const char *headTagString = "head";
+static const char *h1TagString = "h1";
+static const char *h2TagString = "h2";
+static const char *h3TagString = "h3";
+static const char *h4TagString = "h4";
+static const char *h5TagString = "h5";
+static const char *h6TagString = "h6";
+static const char *hrTagString = "hr";
+static const char *htmlTagString = "html";
+static const char *iTagString = "i";
+static const char *iframeTagString = "iframe";
+static const char *imageTagString = "image";
+static const char *imgTagString = "img";
+static const char *inputTagString = "input";
+static const char *insTagString = "ins";
+static const char *isindexTagString = "isindex";
+static const char *kbdTagString = "kbd";
+static const char *keygenTagString = "keygen";
+static const char *labelTagString = "label";
+static const char *layerTagString = "layer";
+static const char *legendTagString = "legend";
+static const char *liTagString = "li";
+static const char *linkTagString = "link";
+static const char *listingTagString = "listing";
+static const char *mapTagString = "map";
+static const char *marqueeTagString = "marquee";
+static const char *menuTagString = "menu";
+static const char *metaTagString = "meta";
+static const char *nobrTagString = "nobr";
+static const char *noembedTagString = "noembed";
+static const char *noframesTagString = "noframes";
+static const char *nolayerTagString = "nolayer";
+static const char *noscriptTagString = "noscript";
+static const char *objectTagString = "object";
+static const char *olTagString = "ol";
+static const char *optgroupTagString = "optgroup";
+static const char *optionTagString = "option";
+static const char *pTagString = "p";
+static const char *paramTagString = "param";
+static const char *plaintextTagString = "plaintext";
+static const char *preTagString = "pre";
+static const char *qTagString = "q";
+static const char *sTagString = "s";
+static const char *sampTagString = "samp";
+static const char *scriptTagString = "script";
+static const char *selectTagString = "select";
+static const char *smallTagString = "small";
+static const char *spanTagString = "span";
+static const char *strikeTagString = "strike";
+static const char *strongTagString = "strong";
+static const char *styleTagString = "style";
+static const char *subTagString = "sub";
+static const char *supTagString = "sup";
+static const char *tableTagString = "table";
+static const char *tbodyTagString = "tbody";
+static const char *tdTagString = "td";
+static const char *textareaTagString = "textarea";
+static const char *tfootTagString = "tfoot";
+static const char *thTagString = "th";
+static const char *theadTagString = "thead";
+static const char *titleTagString = "title";
+static const char *trTagString = "tr";
+static const char *ttTagString = "tt";
+static const char *uTagString = "u";
+static const char *ulTagString = "ul";
+static const char *varTagString = "var";
+static const char *wbrTagString = "wbr";
+static const char *xmpTagString = "xmp";
+// Attributes
+static const char *abbrAttrString = "abbr";
+static const char *accept_charsetAttrString = "accept_charset";
+static const char *acceptAttrString = "accept";
+static const char *accesskeyAttrString = "accesskey";
+static const char *actionAttrString = "action";
+static const char *alignAttrString = "align";
+static const char *alinkAttrString = "alink";
+static const char *altAttrString = "alt";
+static const char *archiveAttrString = "archive";
+static const char *autocompleteAttrString = "autocomplete";
+static const char *autosaveAttrString = "autosave";
+static const char *axisAttrString = "axis";
+static const char *backgroundAttrString = "background";
+static const char *behaviorAttrString = "behavior";
+static const char *bgcolorAttrString = "bgcolor";
+static const char *bgpropertiesAttrString = "bgproperties";
+static const char *borderAttrString = "border";
+static const char *bordercolorAttrString = "bordercolor";
+static const char *cellpaddingAttrString = "cellpadding";
+static const char *cellspacingAttrString = "cellspacing";
+static const char *charAttrString = "char";
+static const char *challengeAttrString = "challenge";
+static const char *charoffAttrString = "charoff";
+static const char *charsetAttrString = "charset";
+static const char *checkedAttrString = "checked";
+static const char *cellborderAttrString = "cellborder";
+static const char *citeAttrString = "cite";
+static const char *classAttrString = "class";
+static const char *classidAttrString = "classid";
+static const char *clearAttrString = "clear";
+static const char *codeAttrString = "code";
+static const char *codebaseAttrString = "codebase";
+static const char *codetypeAttrString = "codetype";
+static const char *colorAttrString = "color";
+static const char *colsAttrString = "cols";
+static const char *colspanAttrString = "colspan";
+static const char *compactAttrString = "compact";
+static const char *compositeAttrString = "composite";
+static const char *contentAttrString = "content";
+static const char *contenteditableAttrString = "contenteditable";
+static const char *coordsAttrString = "coords";
+static const char *ctiAttrString = "cti";
+static const char *dataAttrString = "data";
+static const char *datetimeAttrString = "datetime";
+static const char *declareAttrString = "declare";
+static const char *deferAttrString = "defer";
+static const char *dirAttrString = "dir";
+static const char *directionAttrString = "direction";
+static const char *directkeyAttrString = "directkey";
+static const char *disabledAttrString = "disabled";
+static const char *emailAttrString = "email";
+static const char *enctypeAttrString = "enctype";
+static const char *faceAttrString = "face";
+static const char *forAttrString = "for";
+static const char *frameAttrString = "frame";
+static const char *frameborderAttrString = "frameborder";
+static const char *headersAttrString = "headers";
+static const char *heightAttrString = "height";
+static const char *hiddenAttrString = "hidden";
+static const char *hrefAttrString = "href";
+static const char *hreflangAttrString = "hreflang";
+static const char *hspaceAttrString = "hspace";
+static const char *http_equivAttrString = "http_equiv";
+static const char *idAttrString = "id";
+static const char *incrementalAttrString = "incremental";
+static const char *ismapAttrString = "ismap";
+static const char *keytypeAttrString = "keytype";
+static const char *labelAttrString = "label";
+static const char *langAttrString = "lang";
+static const char *languageAttrString = "language";
+static const char *leftAttrString = "left";
+static const char *leftmarginAttrString = "leftmargin";
+static const char *linkAttrString = "link";
+static const char *longdescAttrString = "longdesc";
+static const char *loopAttrString = "loop";
+static const char *lowsrcAttrString = "lowsrc";
+static const char *marginheightAttrString = "marginheight";
+static const char *marginwidthAttrString = "marginwidth";
+static const char *maxAttrString = "max";
+static const char *maxlengthAttrString = "maxlength";
+static const char *mayscriptAttrString = "mayscript";
+static const char *mediaAttrString = "media";
+static const char *methodAttrString = "method";
+static const char *minAttrString = "min";
+static const char *multipleAttrString = "multiple";
+static const char *nameAttrString = "name";
+static const char *nohrefAttrString = "nohref";
+static const char *noresizeAttrString = "noresize";
+static const char *noshadeAttrString = "noshade";
+static const char *nowrapAttrString = "nowrap";
+static const char *objectAttrString = "object";
+static const char *onabortAttrString = "onabort";
+static const char *onbeforecopyAttrString = "onbeforecopy";
+static const char *onbeforecutAttrString = "onbeforecut";
+static const char *onbeforepasteAttrString = "onbeforepaste";
+static const char *onbeforeunloadAttrString = "onbeforeunload";
+static const char *onblurAttrString = "onblur";
+static const char *onchangeAttrString = "onchange";
+static const char *onclickAttrString = "onclick";
+static const char *oncontextmenuAttrString = "oncontextmenu";
+static const char *oncopyAttrString = "oncopy";
+static const char *oncutAttrString = "oncut";
+static const char *ondblclickAttrString = "ondblclick";
+static const char *ondragAttrString = "ondrag";
+static const char *ondragendAttrString = "ondragend";
+static const char *ondragenterAttrString = "ondragenter";
+static const char *ondragleaveAttrString = "ondragleave";
+static const char *ondragoverAttrString = "ondragover";
+static const char *ondragstartAttrString = "ondragstart";
+static const char *ondropAttrString = "ondrop";
+static const char *onerrorAttrString = "onerror";
+static const char *onfocusAttrString = "onfocus";
+static const char *oninputAttrString = "oninput";
+static const char *onkeydownAttrString = "onkeydown";
+static const char *onkeypressAttrString = "onkeypress";
+static const char *onkeyupAttrString = "onkeyup";
+static const char *onloadAttrString = "onload";
+static const char *onmousedownAttrString = "onmousedown";
+static const char *onmousemoveAttrString = "onmousemove";
+static const char *onmouseoutAttrString = "onmouseout";
+static const char *onmouseoverAttrString = "onmouseover";
+static const char *onmouseupAttrString = "onmouseup";
+static const char *onmousewheelAttrString = "onmousewheel";
+static const char *onpasteAttrString = "onpaste";
+static const char *onresetAttrString = "onreset";
+static const char *onresizeAttrString = "onresize";
+static const char *onscrollAttrString = "onscroll";
+static const char *onsearchAttrString = "onsearch";
+static const char *onselectAttrString = "onselect";
+static const char *onselectstartAttrString = "onselectstart";
+static const char *onsubmitAttrString = "onsubmit";
+static const char *onunloadAttrString = "onunload";
+static const char *pagexAttrString = "pagex";
+static const char *pageyAttrString = "pagey";
+static const char *placeholderAttrString = "placeholder";
+static const char *plainAttrString = "plain";
+static const char *pluginpageAttrString = "pluginpage";
+static const char *pluginspageAttrString = "pluginspage";
+static const char *pluginurlAttrString = "pluginurl";
+static const char *precisionAttrString = "precision";
+static const char *profileAttrString = "profile";
+static const char *promptAttrString = "prompt";
+static const char *readonlyAttrString = "readonly";
+static const char *relAttrString = "rel";
+static const char *resultsAttrString = "results";
+static const char *revAttrString = "rev";
+static const char *rowsAttrString = "rows";
+static const char *rowspanAttrString = "rowspan";
+static const char *rulesAttrString = "rules";
+static const char *schemeAttrString = "scheme";
+static const char *scopeAttrString = "scope";
+static const char *scrollamountAttrString = "scrollamount";
+static const char *scrolldelayAttrString = "scrolldelay";
+static const char *scrollingAttrString = "scrolling";
+static const char *selectedAttrString = "selected";
+static const char *shapeAttrString = "shape";
+static const char *sizeAttrString = "size";
+static const char *soundstartAttrString = "soundstart";
+static const char *spanAttrString = "span";
+static const char *srcAttrString = "src";
+static const char *standbyAttrString = "standby";
+static const char *startAttrString = "start";
+static const char *styleAttrString = "style";
+static const char *summaryAttrString = "summary";
+static const char *tabindexAttrString = "tabindex";
+static const char *tableborderAttrString = "tableborder";
+static const char *targetAttrString = "target";
+static const char *telbookAttrString = "telbook";
+static const char *textAttrString = "text";
+static const char *titleAttrString = "title";
+static const char *topAttrString = "top";
+static const char *topmarginAttrString = "topmargin";
+static const char *truespeedAttrString = "truespeed";
+static const char *typeAttrString = "type";
+static const char *usemapAttrString = "usemap";
+static const char *valignAttrString = "valign";
+static const char *valueAttrString = "value";
+static const char *valuetypeAttrString = "valuetype";
+static const char *versionAttrString = "version";
+static const char *viewsourceAttrString = "viewsource";
+static const char *vlinkAttrString = "vlink";
+static const char *volumeAttrString = "volume";
+static const char *vspaceAttrString = "vspace";
+static const char *widthAttrString = "width";
+static const char *wrapAttrString = "wrap";
+
DEFINE_GLOBAL(AtomicString, xhtmlNamespaceURI, "http://www.w3.org/1999/xhtml")
// Tags
DEFINE_GLOBAL(QualifiedName, aTag, nullAtom, "a", xhtmlNamespaceURI);
@@ -646,7 +942,6 @@
void init()
{
- static bool initialized = false;
if (initialized)
return;
initialized = true;
@@ -654,118 +949,10 @@
// Use placement new to initialize the globals.
AtomicString::init();
- AtomicString xhtmlNS("http://www.w3.org/1999/xhtml");
+ AtomicString xhtmlNS(xhtmlNSString);
// Namespace
new ((void*)&xhtmlNamespaceURI) AtomicString(xhtmlNS);
-
- // Tags
- const char *aTagString = "a";
- const char *abbrTagString = "abbr";
- const char *acronymTagString = "acronym";
- const char *addressTagString = "address";
- const char *appletTagString = "applet";
- const char *areaTagString = "area";
- const char *bTagString = "b";
- const char *baseTagString = "base";
- const char *basefontTagString = "basefont";
- const char *bdoTagString = "bdo";
- const char *bgsoundTagString = "bgsound";
- const char *bigTagString = "big";
- const char *blockquoteTagString = "blockquote";
- const char *bodyTagString = "body";
- const char *brTagString = "br";
- const char *buttonTagString = "button";
- const char *canvasTagString = "canvas";
- const char *captionTagString = "caption";
- const char *centerTagString = "center";
- const char *citeTagString = "cite";
- const char *codeTagString = "code";
- const char *colTagString = "col";
- const char *colgroupTagString = "colgroup";
- const char *ddTagString = "dd";
- const char *delTagString = "del";
- const char *dfnTagString = "dfn";
- const char *dirTagString = "dir";
- const char *divTagString = "div";
- const char *dlTagString = "dl";
- const char *dtTagString = "dt";
- const char *emTagString = "em";
- const char *embedTagString = "embed";
- const char *fieldsetTagString = "fieldset";
- const char *fontTagString = "font";
- const char *formTagString = "form";
- const char *frameTagString = "frame";
- const char *framesetTagString = "frameset";
- const char *headTagString = "head";
- const char *h1TagString = "h1";
- const char *h2TagString = "h2";
- const char *h3TagString = "h3";
- const char *h4TagString = "h4";
- const char *h5TagString = "h5";
- const char *h6TagString = "h6";
- const char *hrTagString = "hr";
- const char *htmlTagString = "html";
- const char *iTagString = "i";
- const char *iframeTagString = "iframe";
- const char *imageTagString = "image";
- const char *imgTagString = "img";
- const char *inputTagString = "input";
- const char *insTagString = "ins";
- const char *isindexTagString = "isindex";
- const char *kbdTagString = "kbd";
- const char *keygenTagString = "keygen";
- const char *labelTagString = "label";
- const char *layerTagString = "layer";
- const char *legendTagString = "legend";
- const char *liTagString = "li";
- const char *linkTagString = "link";
- const char *listingTagString = "listing";
- const char *mapTagString = "map";
- const char *marqueeTagString = "marquee";
- const char *menuTagString = "menu";
- const char *metaTagString = "meta";
- const char *nobrTagString = "nobr";
- const char *noembedTagString = "noembed";
- const char *noframesTagString = "noframes";
- const char *nolayerTagString = "nolayer";
- const char *noscriptTagString = "noscript";
- const char *objectTagString = "object";
- const char *olTagString = "ol";
- const char *optgroupTagString = "optgroup";
- const char *optionTagString = "option";
- const char *pTagString = "p";
- const char *paramTagString = "param";
- const char *plaintextTagString = "plaintext";
- const char *preTagString = "pre";
- const char *qTagString = "q";
- const char *sTagString = "s";
- const char *sampTagString = "samp";
- const char *scriptTagString = "script";
- const char *selectTagString = "select";
- const char *smallTagString = "small";
- const char *spanTagString = "span";
- const char *strikeTagString = "strike";
- const char *strongTagString = "strong";
- const char *styleTagString = "style";
- const char *subTagString = "sub";
- const char *supTagString = "sup";
- const char *tableTagString = "table";
- const char *tbodyTagString = "tbody";
- const char *tdTagString = "td";
- const char *textareaTagString = "textarea";
- const char *tfootTagString = "tfoot";
- const char *thTagString = "th";
- const char *theadTagString = "thead";
- const char *titleTagString = "title";
- const char *trTagString = "tr";
- const char *ttTagString = "tt";
- const char *uTagString = "u";
- const char *ulTagString = "ul";
- const char *varTagString = "var";
- const char *wbrTagString = "wbr";
- const char *xmpTagString = "xmp";
-
new ((void*)&aTag) QualifiedName(nullAtom, aTagString, xhtmlNS);
new ((void*)&abbrTag) QualifiedName(nullAtom, abbrTagString, xhtmlNS);
new ((void*)&acronymTag) QualifiedName(nullAtom, acronymTagString, xhtmlNS);
@@ -871,192 +1058,7 @@
new ((void*)&varTag) QualifiedName(nullAtom, varTagString, xhtmlNS);
new ((void*)&wbrTag) QualifiedName(nullAtom, wbrTagString, xhtmlNS);
new ((void*)&xmpTag) QualifiedName(nullAtom, xmpTagString, xhtmlNS);
- // Attributes
- const char *abbrAttrString = "abbr";
- const char *accept_charsetAttrString = "accept_charset";
- const char *acceptAttrString = "accept";
- const char *accesskeyAttrString = "accesskey";
- const char *actionAttrString = "action";
- const char *alignAttrString = "align";
- const char *alinkAttrString = "alink";
- const char *altAttrString = "alt";
- const char *archiveAttrString = "archive";
- const char *autocompleteAttrString = "autocomplete";
- const char *autosaveAttrString = "autosave";
- const char *axisAttrString = "axis";
- const char *backgroundAttrString = "background";
- const char *behaviorAttrString = "behavior";
- const char *bgcolorAttrString = "bgcolor";
- const char *bgpropertiesAttrString = "bgproperties";
- const char *borderAttrString = "border";
- const char *bordercolorAttrString = "bordercolor";
- const char *cellpaddingAttrString = "cellpadding";
- const char *cellspacingAttrString = "cellspacing";
- const char *charAttrString = "char";
- const char *challengeAttrString = "challenge";
- const char *charoffAttrString = "charoff";
- const char *charsetAttrString = "charset";
- const char *checkedAttrString = "checked";
- const char *cellborderAttrString = "cellborder";
- const char *citeAttrString = "cite";
- const char *classAttrString = "class";
- const char *classidAttrString = "classid";
- const char *clearAttrString = "clear";
- const char *codeAttrString = "code";
- const char *codebaseAttrString = "codebase";
- const char *codetypeAttrString = "codetype";
- const char *colorAttrString = "color";
- const char *colsAttrString = "cols";
- const char *colspanAttrString = "colspan";
- const char *compactAttrString = "compact";
- const char *compositeAttrString = "composite";
- const char *contentAttrString = "content";
- const char *contenteditableAttrString = "contenteditable";
- const char *coordsAttrString = "coords";
- const char *ctiAttrString = "cti";
- const char *dataAttrString = "data";
- const char *datetimeAttrString = "datetime";
- const char *declareAttrString = "declare";
- const char *deferAttrString = "defer";
- const char *dirAttrString = "dir";
- const char *directionAttrString = "direction";
- const char *directkeyAttrString = "directkey";
- const char *disabledAttrString = "disabled";
- const char *emailAttrString = "email";
- const char *enctypeAttrString = "enctype";
- const char *faceAttrString = "face";
- const char *forAttrString = "for";
- const char *frameAttrString = "frame";
- const char *frameborderAttrString = "frameborder";
- const char *headersAttrString = "headers";
- const char *heightAttrString = "height";
- const char *hiddenAttrString = "hidden";
- const char *hrefAttrString = "href";
- const char *hreflangAttrString = "hreflang";
- const char *hspaceAttrString = "hspace";
- const char *http_equivAttrString = "http_equiv";
- const char *idAttrString = "id";
- const char *incrementalAttrString = "incremental";
- const char *ismapAttrString = "ismap";
- const char *keytypeAttrString = "keytype";
- const char *labelAttrString = "label";
- const char *langAttrString = "lang";
- const char *languageAttrString = "language";
- const char *leftAttrString = "left";
- const char *leftmarginAttrString = "leftmargin";
- const char *linkAttrString = "link";
- const char *longdescAttrString = "longdesc";
- const char *loopAttrString = "loop";
- const char *lowsrcAttrString = "lowsrc";
- const char *marginheightAttrString = "marginheight";
- const char *marginwidthAttrString = "marginwidth";
- const char *maxAttrString = "max";
- const char *maxlengthAttrString = "maxlength";
- const char *mayscriptAttrString = "mayscript";
- const char *mediaAttrString = "media";
- const char *methodAttrString = "method";
- const char *minAttrString = "min";
- const char *multipleAttrString = "multiple";
- const char *nameAttrString = "name";
- const char *nohrefAttrString = "nohref";
- const char *noresizeAttrString = "noresize";
- const char *noshadeAttrString = "noshade";
- const char *nowrapAttrString = "nowrap";
- const char *objectAttrString = "object";
- const char *onabortAttrString = "onabort";
- const char *onbeforecopyAttrString = "onbeforecopy";
- const char *onbeforecutAttrString = "onbeforecut";
- const char *onbeforepasteAttrString = "onbeforepaste";
- const char *onbeforeunloadAttrString = "onbeforeunload";
- const char *onblurAttrString = "onblur";
- const char *onchangeAttrString = "onchange";
- const char *onclickAttrString = "onclick";
- const char *oncontextmenuAttrString = "oncontextmenu";
- const char *oncopyAttrString = "oncopy";
- const char *oncutAttrString = "oncut";
- const char *ondblclickAttrString = "ondblclick";
- const char *ondragAttrString = "ondrag";
- const char *ondragendAttrString = "ondragend";
- const char *ondragenterAttrString = "ondragenter";
- const char *ondragleaveAttrString = "ondragleave";
- const char *ondragoverAttrString = "ondragover";
- const char *ondragstartAttrString = "ondragstart";
- const char *ondropAttrString = "ondrop";
- const char *onerrorAttrString = "onerror";
- const char *onfocusAttrString = "onfocus";
- const char *oninputAttrString = "oninput";
- const char *onkeydownAttrString = "onkeydown";
- const char *onkeypressAttrString = "onkeypress";
- const char *onkeyupAttrString = "onkeyup";
- const char *onloadAttrString = "onload";
- const char *onmousedownAttrString = "onmousedown";
- const char *onmousemoveAttrString = "onmousemove";
- const char *onmouseoutAttrString = "onmouseout";
- const char *onmouseoverAttrString = "onmouseover";
- const char *onmouseupAttrString = "onmouseup";
- const char *onmousewheelAttrString = "onmousewheel";
- const char *onpasteAttrString = "onpaste";
- const char *onresetAttrString = "onreset";
- const char *onresizeAttrString = "onresize";
- const char *onscrollAttrString = "onscroll";
- const char *onsearchAttrString = "onsearch";
- const char *onselectAttrString = "onselect";
- const char *onselectstartAttrString = "onselectstart";
- const char *onsubmitAttrString = "onsubmit";
- const char *onunloadAttrString = "onunload";
- const char *pagexAttrString = "pagex";
- const char *pageyAttrString = "pagey";
- const char *placeholderAttrString = "placeholder";
- const char *plainAttrString = "plain";
- const char *pluginpageAttrString = "pluginpage";
- const char *pluginspageAttrString = "pluginspage";
- const char *pluginurlAttrString = "pluginurl";
- const char *precisionAttrString = "precision";
- const char *profileAttrString = "profile";
- const char *promptAttrString = "prompt";
- const char *readonlyAttrString = "readonly";
- const char *relAttrString = "rel";
- const char *resultsAttrString = "results";
- const char *revAttrString = "rev";
- const char *rowsAttrString = "rows";
- const char *rowspanAttrString = "rowspan";
- const char *rulesAttrString = "rules";
- const char *schemeAttrString = "scheme";
- const char *scopeAttrString = "scope";
- const char *scrollamountAttrString = "scrollamount";
- const char *scrolldelayAttrString = "scrolldelay";
- const char *scrollingAttrString = "scrolling";
- const char *selectedAttrString = "selected";
- const char *shapeAttrString = "shape";
- const char *sizeAttrString = "size";
- const char *soundstartAttrString = "soundstart";
- const char *spanAttrString = "span";
- const char *srcAttrString = "src";
- const char *standbyAttrString = "standby";
- const char *startAttrString = "start";
- const char *styleAttrString = "style";
- const char *summaryAttrString = "summary";
- const char *tabindexAttrString = "tabindex";
- const char *tableborderAttrString = "tableborder";
- const char *targetAttrString = "target";
- const char *telbookAttrString = "telbook";
- const char *textAttrString = "text";
- const char *titleAttrString = "title";
- const char *topAttrString = "top";
- const char *topmarginAttrString = "topmargin";
- const char *truespeedAttrString = "truespeed";
- const char *typeAttrString = "type";
- const char *usemapAttrString = "usemap";
- const char *valignAttrString = "valign";
- const char *valueAttrString = "value";
- const char *valuetypeAttrString = "valuetype";
- const char *versionAttrString = "version";
- const char *viewsourceAttrString = "viewsource";
- const char *vlinkAttrString = "vlink";
- const char *volumeAttrString = "volume";
- const char *vspaceAttrString = "vspace";
- const char *widthAttrString = "width";
- const char *wrapAttrString = "wrap";
+
accept_charsetAttrString = "accept-charset";
http_equivAttrString = "http-equiv";
@@ -1247,5 +1249,308 @@
new ((void*)&wrapAttr) QualifiedName(nullAtom, wrapAttrString, nullAtom);
}
-} }
+void remove()
+{
+
+ xhtmlNSString = "";
+ aTagString = "";
+ abbrTagString = "";
+
+ acronymTagString = "";
+ addressTagString = "";
+ appletTagString = "";
+ areaTagString = "";
+ bTagString = "";
+ baseTagString = "";
+ basefontTagString = "";
+ bdoTagString = "";
+ bgsoundTagString = "";
+ bigTagString = "";
+ blockquoteTagString = "";
+ bodyTagString = "";
+ brTagString = "";
+ buttonTagString = "";
+ canvasTagString = "";
+ captionTagString = "";
+ centerTagString = "";
+ citeTagString = "";
+ codeTagString = "";
+ colTagString = "";
+ colgroupTagString = "";
+ ddTagString = "";
+ delTagString = "";
+ dfnTagString = "";
+ dirTagString = "";
+ divTagString = "";
+ dlTagString = "";
+ dtTagString = "";
+ emTagString = "";
+ embedTagString = "";
+ fieldsetTagString = "";
+ fontTagString = "";
+ formTagString = "";
+ frameTagString = "";
+ framesetTagString = "";
+ headTagString = "";
+ h1TagString = "";
+ h2TagString = "";
+ h3TagString = "";
+ h4TagString = "";
+ h5TagString = "";
+ h6TagString = "";
+ hrTagString = "";
+ htmlTagString = "";
+ iTagString = "";
+ iframeTagString = "";
+ imageTagString = "";
+ imgTagString = "";
+ inputTagString = "";
+ insTagString = "";
+ isindexTagString = "";
+ kbdTagString = "";
+ keygenTagString = "";
+ labelTagString = "";
+ layerTagString = "";
+ legendTagString = "";
+ liTagString = "";
+ linkTagString = "";
+ listingTagString = "";
+ mapTagString = "";
+ marqueeTagString = "";
+ menuTagString = "";
+ metaTagString = "";
+ nobrTagString = "";
+ noembedTagString = "";
+ noframesTagString = "";
+ nolayerTagString = "";
+ noscriptTagString = "";
+ objectTagString = "";
+ olTagString = "";
+ optgroupTagString = "";
+ optionTagString = "";
+ pTagString = "";
+ paramTagString = "";
+ plaintextTagString = "";
+ preTagString = "";
+ qTagString = "";
+ sTagString = "";
+ sampTagString = "";
+ scriptTagString = "";
+ selectTagString = "";
+ smallTagString = "";
+ spanTagString = "";
+ strikeTagString = "";
+ strongTagString = "";
+ styleTagString = "";
+ subTagString = "";
+ supTagString = "";
+ tableTagString = "";
+ tbodyTagString = "";
+ tdTagString = "";
+ textareaTagString = "";
+ tfootTagString = "";
+ thTagString = "";
+ theadTagString = "";
+ titleTagString = "";
+ trTagString = "";
+ ttTagString = "";
+ uTagString = "";
+ ulTagString = "";
+ varTagString = "";
+ wbrTagString = "";
+ xmpTagString = "";
+ abbrAttrString = "";
+ accept_charsetAttrString = "";
+ acceptAttrString = "";
+ accesskeyAttrString = "";
+ actionAttrString = "";
+ alignAttrString = "";
+ alinkAttrString = "";
+ altAttrString = "";
+ archiveAttrString = "";
+ autocompleteAttrString = "";
+ autosaveAttrString = "";
+ axisAttrString = "";
+ backgroundAttrString = "";
+ behaviorAttrString = "";
+ bgcolorAttrString = "";
+ bgpropertiesAttrString = "";
+ borderAttrString = "";
+ bordercolorAttrString = "";
+ cellpaddingAttrString = "";
+ cellspacingAttrString = "";
+ charAttrString = "";
+ challengeAttrString = "";
+ charoffAttrString = "";
+ charsetAttrString = "";
+ checkedAttrString = "";
+ cellborderAttrString = "";
+ citeAttrString = "";
+ classAttrString = "";
+ classidAttrString = "";
+ clearAttrString = "";
+ codeAttrString = "";
+ codebaseAttrString = "";
+ codetypeAttrString = "";
+ colorAttrString = "";
+ colsAttrString = "";
+ colspanAttrString = "";
+ compactAttrString = "";
+ compositeAttrString = "";
+ contentAttrString = "";
+ contenteditableAttrString = "";
+ coordsAttrString = "";
+ ctiAttrString = "";
+ dataAttrString = "";
+ datetimeAttrString = "";
+ declareAttrString = "";
+ deferAttrString = "";
+ dirAttrString = "";
+ directionAttrString = "";
+ directkeyAttrString = "";
+ disabledAttrString = "";
+ emailAttrString = "";
+ enctypeAttrString = "";
+ faceAttrString = "";
+ forAttrString = "";
+ frameAttrString = "";
+ frameborderAttrString = "";
+ headersAttrString = "";
+ heightAttrString = "";
+ hiddenAttrString = "";
+ hrefAttrString = "";
+ hreflangAttrString = "";
+ hspaceAttrString = "";
+ http_equivAttrString = "";
+ idAttrString = "";
+ incrementalAttrString = "";
+ ismapAttrString = "";
+ keytypeAttrString = "";
+ labelAttrString = "";
+ langAttrString = "";
+ languageAttrString = "";
+ leftAttrString = "";
+ leftmarginAttrString = "";
+ linkAttrString = "";
+ longdescAttrString = "";
+ loopAttrString = "";
+ lowsrcAttrString = "";
+ marginheightAttrString = "";
+ marginwidthAttrString = "";
+ maxAttrString = "";
+ maxlengthAttrString = "";
+ mayscriptAttrString = "";
+ mediaAttrString = "";
+ methodAttrString = "";
+ minAttrString = "";
+ multipleAttrString = "";
+ nameAttrString = "";
+ nohrefAttrString = "";
+ noresizeAttrString = "";
+ noshadeAttrString = "";
+ nowrapAttrString = "";
+ objectAttrString = "";
+ onabortAttrString = "";
+ onbeforecopyAttrString = "";
+ onbeforecutAttrString = "";
+ onbeforepasteAttrString = "";
+ onbeforeunloadAttrString = "";
+ onblurAttrString = "";
+ onchangeAttrString = "";
+ onclickAttrString = "";
+ oncontextmenuAttrString = "";
+ oncopyAttrString = "";
+ oncutAttrString = "";
+ ondblclickAttrString = "";
+ ondragAttrString = "";
+ ondragendAttrString = "";
+ ondragenterAttrString = "";
+ ondragleaveAttrString = "";
+ ondragoverAttrString = "";
+ ondragstartAttrString = "";
+ ondropAttrString = "";
+ onerrorAttrString = "";
+ onfocusAttrString = "";
+ oninputAttrString = "";
+ onkeydownAttrString = "";
+ onkeypressAttrString = "";
+ onkeyupAttrString = "";
+ onloadAttrString = "";
+ onmousedownAttrString = "";
+ onmousemoveAttrString = "";
+ onmouseoutAttrString = "";
+ onmouseoverAttrString = "";
+ onmouseupAttrString = "";
+ onmousewheelAttrString = "";
+ onpasteAttrString = "";
+ onresetAttrString = "";
+ onresizeAttrString = "";
+ onscrollAttrString = "";
+ onsearchAttrString = "";
+ onselectAttrString = "";
+ onselectstartAttrString = "";
+ onsubmitAttrString = "";
+ onunloadAttrString = "";
+ pagexAttrString = "";
+ pageyAttrString = "";
+ placeholderAttrString = "";
+ plainAttrString = "";
+ pluginpageAttrString = "";
+ pluginspageAttrString = "";
+ pluginurlAttrString = "";
+ precisionAttrString = "";
+ profileAttrString = "";
+ promptAttrString = "";
+ readonlyAttrString = "";
+ relAttrString = "";
+ resultsAttrString = "";
+ revAttrString = "";
+ rowsAttrString = "";
+ rowspanAttrString = "";
+ rulesAttrString = "";
+ schemeAttrString = "";
+ scopeAttrString = "";
+ scrollamountAttrString = "";
+ scrolldelayAttrString = "";
+ scrollingAttrString = "";
+ selectedAttrString = "";
+ shapeAttrString = "";
+ sizeAttrString = "";
+ soundstartAttrString = "";
+ spanAttrString = "";
+ srcAttrString = "";
+ standbyAttrString = "";
+ startAttrString = "";
+ styleAttrString = "";
+ summaryAttrString = "";
+ tabindexAttrString = "";
+ tableborderAttrString = "";
+ targetAttrString = "";
+ telbookAttrString = "";
+ textAttrString = "";
+ titleAttrString = "";
+ topAttrString = "";
+ topmarginAttrString = "";
+ truespeedAttrString = "";
+ typeAttrString = "";
+ usemapAttrString = "";
+ valignAttrString = "";
+ valueAttrString = "";
+ valuetypeAttrString = "";
+ versionAttrString = "";
+ viewsourceAttrString = "";
+ vlinkAttrString = "";
+ volumeAttrString = "";
+ vspaceAttrString = "";
+ widthAttrString = "";
+ wrapAttrString = "";
+
+ AtomicString::remove();
+
+ initialized = false;
+} //remove()
+
+} //HTMLNames
+
+} //WebCore
--- a/webengine/osswebengine/DerivedSources/WebCore/HTMLNames.h Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/DerivedSources/WebCore/HTMLNames.h Fri Jul 03 15:54:40 2009 +0100
@@ -340,6 +340,7 @@
void init();
+void remove();
} }
#endif
--- a/webengine/osswebengine/DerivedSources/WebCore/XMLNames.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/DerivedSources/WebCore/XMLNames.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -48,6 +48,13 @@
DEFINE_GLOBAL(QualifiedName, langAttr, nullAtom, "lang", xmlNamespaceURI);
DEFINE_GLOBAL(QualifiedName, spaceAttr, nullAtom, "space", xmlNamespaceURI);
+static bool initialized = false;
+// Attributes
+static const char *xmlNSString = "http://www.w3.org/XML/1998/namespace";
+static const char *baseAttrString = "base";
+static const char *langAttrString = "lang";
+static const char *spaceAttrString = "space";
+
WebCore::QualifiedName** getXMLAttrs(size_t* size)
{
@@ -62,7 +69,6 @@
void init()
{
- static bool initialized = false;
if (initialized)
return;
initialized = true;
@@ -70,20 +76,30 @@
// Use placement new to initialize the globals.
AtomicString::init();
- AtomicString xmlNS("http://www.w3.org/XML/1998/namespace");
+ AtomicString xmlNS(xmlNSString);
// Namespace
new ((void*)&xmlNamespaceURI) AtomicString(xmlNS);
- // Attributes
- const char *baseAttrString = "base";
- const char *langAttrString = "lang";
- const char *spaceAttrString = "space";
-
new ((void*)&baseAttr) QualifiedName(nullAtom, baseAttrString, xmlNS);
new ((void*)&langAttr) QualifiedName(nullAtom, langAttrString, xmlNS);
new ((void*)&spaceAttr) QualifiedName(nullAtom, spaceAttrString, xmlNS);
}
+void remove()
+{
+ if( initialized ) {
+ xmlNamespaceURI.~AtomicString();
+ baseAttr.~QualifiedName();
+ langAttr.~QualifiedName();
+ spaceAttr.~QualifiedName();
+ }
+ xmlNSString = "";
+ baseAttrString = "";
+ langAttrString = "";
+ spaceAttrString = "";
+ initialized = false;
+}
+
} }
--- a/webengine/osswebengine/DerivedSources/WebCore/XMLNames.h Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/DerivedSources/WebCore/XMLNames.h Fri Jul 03 15:54:40 2009 +0100
@@ -48,6 +48,7 @@
#endif
void init();
+void remove();
} }
--- a/webengine/osswebengine/JavaScriptCore/JavaScriptCore.pri Fri May 08 08:25:06 2009 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,127 +0,0 @@
-# JavaScriptCore - Qt4 build info
-VPATH += $$PWD
-
-INCLUDEPATH += tmp
-INCLUDEPATH += $$PWD $$PWD/kjs $$PWD/bindings $$PWD/bindings/c $$PWD/wtf
-DEFINES -= KJS_IDENTIFIER_HIDE_GLOBALS
-qt-port:INCLUDEPATH += $$PWD/bindings/qt
-qt-port:DEFINES += BUILDING_QT__
-gtk-port:DEFINES += BUILDING_GTK__
-
-win32-msvc*: INCLUDEPATH += $$PWD/os-win32
-
-include(pcre/pcre.pri)
-
-LUT_FILES += \
- kjs/date_object.cpp \
- kjs/number_object.cpp \
- kjs/string_object.cpp \
- kjs/array_object.cpp \
- kjs/math_object.cpp \
- kjs/regexp_object.cpp
-
-KEYWORDLUT_FILES += \
- kjs/keywords.table
-
-KJSBISON += \
- kjs/grammar.y
-
-gtk-port: SOURCES += wtf/TCSystemAlloc.cpp
-
-SOURCES += \
- wtf/Assertions.cpp \
- wtf/HashTable.cpp \
- wtf/FastMalloc.cpp \
- bindings/NP_jsobject.cpp \
- bindings/npruntime.cpp \
- bindings/runtime_array.cpp \
- bindings/runtime.cpp \
- bindings/runtime_method.cpp \
- bindings/runtime_object.cpp \
- bindings/runtime_root.cpp \
- bindings/c/c_class.cpp \
- bindings/c/c_instance.cpp \
- bindings/c/c_runtime.cpp \
- bindings/c/c_utility.cpp \
- API/JSBase.cpp \
- API/JSCallbackConstructor.cpp \
- API/JSCallbackFunction.cpp \
- API/JSCallbackObject.cpp \
- API/JSClassRef.cpp \
- API/JSContextRef.cpp \
- API/JSObjectRef.cpp \
- API/JSStringRef.cpp \
- API/JSValueRef.cpp \
- kjs/DateMath.cpp \
- kjs/JSWrapperObject.cpp \
- kjs/PropertyNameArray.cpp \
- kjs/array_object.cpp \
- kjs/bool_object.cpp \
- kjs/collector.cpp \
- kjs/CommonIdentifiers.cpp \
- kjs/Context.cpp \
- kjs/date_object.cpp \
- kjs/debugger.cpp \
- kjs/dtoa.cpp \
- kjs/error_object.cpp \
- kjs/ExecState.cpp \
- kjs/fpconst.cpp \
- kjs/function.cpp \
- kjs/function_object.cpp \
- kjs/identifier.cpp \
- kjs/internal.cpp \
- kjs/interpreter.cpp \
- kjs/JSImmediate.cpp \
- kjs/JSLock.cpp \
- kjs/lexer.cpp \
- kjs/list.cpp \
- kjs/lookup.cpp \
- kjs/math_object.cpp \
- kjs/nodes.cpp \
- kjs/nodes2string.cpp \
- kjs/number_object.cpp \
- kjs/object.cpp \
- kjs/object_object.cpp \
- kjs/operations.cpp \
- kjs/Parser.cpp \
- kjs/property_map.cpp \
- kjs/property_slot.cpp \
- kjs/regexp.cpp \
- kjs/regexp_object.cpp \
- kjs/scope_chain.cpp \
- kjs/string_object.cpp \
- kjs/ustring.cpp \
- kjs/value.cpp
-
-qt-port:SOURCES += \
- bindings/qt/qt_class.cpp \
- bindings/qt/qt_instance.cpp \
- bindings/qt/qt_runtime.cpp
-
-
-# GENERATOR 1-A: LUT creator
-lut.output = tmp/${QMAKE_FILE_BASE}.lut.h
-lut.commands = perl $$PWD/kjs/create_hash_table ${QMAKE_FILE_NAME} -i > ${QMAKE_FILE_OUT}
-lut.depend = ${QMAKE_FILE_NAME}
-lut.input = LUT_FILES
-lut.CONFIG += no_link
-QMAKE_EXTRA_COMPILERS += lut
-
-# GENERATOR 1-B: particular LUT creator (for 1 file only)
-keywordlut.output = tmp/lexer.lut.h
-keywordlut.commands = perl $$PWD/kjs/create_hash_table ${QMAKE_FILE_NAME} -i > ${QMAKE_FILE_OUT}
-keywordlut.depend = ${QMAKE_FILE_NAME}
-keywordlut.input = KEYWORDLUT_FILES
-keywordlut.CONFIG += no_link
-QMAKE_EXTRA_COMPILERS += keywordlut
-
-# GENERATOR 2: bison grammar
-kjsbison.output = tmp/${QMAKE_FILE_BASE}.cpp
-kjsbison.commands = bison -d -p kjsyy ${QMAKE_FILE_NAME} -o ${QMAKE_FILE_BASE}.tab.c && $(MOVE) ${QMAKE_FILE_BASE}.tab.c ${QMAKE_FILE_OUT} && $(MOVE) ${QMAKE_FILE_BASE}.tab.h tmp/${QMAKE_FILE_BASE}.h
-kjsbison.depend = ${QMAKE_FILE_NAME}
-kjsbison.input = KJSBISON
-kjsbison.variable_out = GENERATED_SOURCES
-kjsbison.dependency_type = TYPE_C
-kjsbison.CONFIG = target_predeps
-kjsbison.clean = ${QMAKE_FILE_OUT} tmp/${QMAKE_FILE_BASE}.h
-QMAKE_EXTRA_COMPILERS += kjsbison
--- a/webengine/osswebengine/JavaScriptCore/bindings/c/c_class.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/JavaScriptCore/bindings/c/c_class.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -53,8 +53,25 @@
}
typedef HashMap<NPClass*, CClass*> ClassesByIsAMap;
+typedef HashMap<NPClass*, CClass*>::iterator ClassesByIsAMapIt;
static ClassesByIsAMap* classesByIsA = 0;
+struct cleanupClassesByIsA {
+ ~cleanupClassesByIsA() {
+ if( classesByIsA ) {
+ ClassesByIsAMapIt end = classesByIsA->end();
+ for( ClassesByIsAMapIt it=classesByIsA->begin(); it!=end; ++it ) {
+ CClass* obj = (*it).second;
+ delete obj;
+ }
+ classesByIsA->clear();
+ delete classesByIsA;
+ classesByIsA = 0;
+ }
+ }
+};
+struct cleanupClassesByIsA cleanupClassIsAHash;
+
CClass* CClass::classForIsA(NPClass* isa)
{
if (!classesByIsA)
--- a/webengine/osswebengine/JavaScriptCore/bindings/npruntime.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/JavaScriptCore/bindings/npruntime.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -41,14 +41,26 @@
typedef HashMap<RefPtr<KJS::UString::Rep>, PrivateIdentifier*> StringIdentifierMap;
+static StringIdentifierMap* stringIdentifierMap = 0;
+
static StringIdentifierMap* getStringIdentifierMap()
{
- static StringIdentifierMap* stringIdentifierMap = 0;
if (!stringIdentifierMap)
stringIdentifierMap = new StringIdentifierMap;
return stringIdentifierMap;
}
+struct cleanupStringIdentifier {
+ ~cleanupStringIdentifier() {
+ if( stringIdentifierMap ) {
+ stringIdentifierMap->clear();
+ delete stringIdentifierMap;
+ stringIdentifierMap = 0;
+ }
+ }
+};
+struct cleanupStringIdentifier cleanup;
+
typedef HashMap<int, PrivateIdentifier*> IntIdentifierMap;
static IntIdentifierMap* getIntIdentifierMap()
--- a/webengine/osswebengine/JavaScriptCore/bindings/testbindings.pro Fri May 08 08:25:06 2009 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-QT -= gui
-
-include(../../WebKit.pri)
-INCLUDEPATH += .. ../kjs .
-qt-port:INCLUDEPATH += bindings/qt
-
-SOURCES += testqtbindings.cpp
-
--- a/webengine/osswebengine/JavaScriptCore/kjs/CommonIdentifiers.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/JavaScriptCore/kjs/CommonIdentifiers.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -34,9 +34,18 @@
{
}
+static CommonIdentifiers* sharedInstance=0;
+
+struct cleanupCommonIdentifiers {
+ ~cleanupCommonIdentifiers() {
+ delete sharedInstance;
+ sharedInstance=0;
+ }
+};
+struct cleanupCommonIdentifiers cleanupIdentifiers;
+
CommonIdentifiers* CommonIdentifiers::shared()
{
- static CommonIdentifiers* sharedInstance;
if (!sharedInstance) {
JSLock lock;
sharedInstance = new CommonIdentifiers;
--- a/webengine/osswebengine/JavaScriptCore/kjs/Parser.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/JavaScriptCore/kjs/Parser.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -36,9 +36,19 @@
int Parser::sid = 0;
-static RefPtr<ProgramNode>* progNode;
+static RefPtr<ProgramNode>* progNode = 0;
static HashSet<Node*>* nodeCycles;
+struct cleanupProgNode {
+ ~cleanupProgNode() {
+ if( progNode ) {
+ delete progNode;
+ progNode=0;
+ }
+ }
+};
+static cleanupProgNode cleanProgNode;
+
void Parser::noteNodeCycle(Node *node)
{
if (!nodeCycles)
--- a/webengine/osswebengine/JavaScriptCore/kjs/collector.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/JavaScriptCore/kjs/collector.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -79,7 +79,7 @@
const size_t MIN_ARRAY_SIZE = 14;
const size_t GROWTH_FACTOR = 2;
const size_t LOW_WATER_FACTOR = 4;
-const size_t ALLOCATIONS_PER_COLLECTION = 4000;
+const size_t ALLOCATIONS_PER_COLLECTION = 1000;
enum OperationInProgress { NoOperation, Allocation, Collection };
@@ -102,6 +102,7 @@
for(int i=0; i<usedBlocks; ++i) {
freeBlock(blocks[i]);
}
+ fastFree(blocks);
}
};
--- a/webengine/osswebengine/JavaScriptCore/kjs/date_object.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/JavaScriptCore/kjs/date_object.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -66,6 +66,22 @@
static double parseDate(const UString&);
static double timeClip(double);
+
+static const Identifier* parsePropertyName = 0;
+static const Identifier* UTCPropertyName = 0;
+
+struct cleanupStaticDateObject {
+ ~cleanupStaticDateObject()
+ {
+ delete parsePropertyName;
+ delete UTCPropertyName;
+
+ parsePropertyName = 0;
+ UTCPropertyName = 0;
+ }
+};
+static cleanupStaticDateObject deleteStaticDateObject;
+
inline int gmtoffset(const GregorianDateTime& t)
{
return t.utcOffset;
@@ -625,8 +641,10 @@
DatePrototype *dateProto)
: InternalFunctionImp(funcProto, dateProto->classInfo()->className )
{
- static const Identifier* parsePropertyName = new Identifier("parse");
- static const Identifier* UTCPropertyName = new Identifier("UTC");
+ if(!parsePropertyName)
+ parsePropertyName = new Identifier("parse");
+ if(!UTCPropertyName)
+ UTCPropertyName = new Identifier("UTC");
putDirect(exec->propertyNames().prototype, dateProto, DontEnum|DontDelete|ReadOnly);
putDirectFunction(new DateObjectFuncImp(exec, funcProto, DateObjectFuncImp::Parse, 1, *parsePropertyName), DontEnum);
--- a/webengine/osswebengine/JavaScriptCore/kjs/function_object.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/JavaScriptCore/kjs/function_object.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -36,12 +36,28 @@
using namespace KJS;
+static const Identifier* applyPropertyName = 0;
+static const Identifier* callPropertyName = 0;
+
+struct cleanupStaticFunctionObject {
+ ~cleanupStaticFunctionObject()
+ {
+ delete applyPropertyName;
+ delete callPropertyName;
+
+ applyPropertyName = 0;
+ callPropertyName = 0;
+ }
+};
+static cleanupStaticFunctionObject deleteStaticFunctionObject;
// ------------------------------ FunctionPrototype -------------------------
FunctionPrototype::FunctionPrototype(ExecState *exec)
{
- static const Identifier* applyPropertyName = new Identifier("apply");
- static const Identifier* callPropertyName = new Identifier("call");
+ if(!applyPropertyName)
+ applyPropertyName = new Identifier("apply");
+ if(!callPropertyName)
+ callPropertyName = new Identifier("call");
putDirect(exec->propertyNames().length, jsNumber(0), DontDelete | ReadOnly | DontEnum);
putDirectFunction(new FunctionProtoFunc(exec, this, FunctionProtoFunc::ToString, 0, exec->propertyNames().toString), DontEnum);
--- a/webengine/osswebengine/JavaScriptCore/kjs/identifier.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/JavaScriptCore/kjs/identifier.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -51,6 +51,17 @@
typedef HashSet<UString::Rep *> IdentifierTable;
static IdentifierTable *table;
+struct cleanupIdentifier {
+ ~cleanupIdentifier() {
+ if( table ) {
+ table->clear();
+ delete table;
+ table=0;
+ }
+ }
+};
+static cleanupIdentifier cleanIdentifier;
+
static inline IdentifierTable& identifierTable()
{
ASSERT(JSLock::lockCount() > 0);
--- a/webengine/osswebengine/JavaScriptCore/kjs/interpreter.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/JavaScriptCore/kjs/interpreter.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -80,12 +80,26 @@
Interpreter* Interpreter::s_hook = 0;
typedef HashMap<JSObject*, Interpreter*> InterpreterMap;
+static InterpreterMap* map = 0;
static inline InterpreterMap &interpreterMap()
{
- static InterpreterMap* map = new InterpreterMap;
+ if(!map )
+ map = new InterpreterMap;
return* map;
}
+struct cleanupInterpreterMap {
+ ~cleanupInterpreterMap() {
+ if(map)
+ {
+ map->clear();
+ delete map;
+ map = NULL;
+ }
+ }
+};
+static cleanupInterpreterMap deleteInterpreterMap;
+
EXPORT
Interpreter::Interpreter(JSObject* globalObject)
: m_globalExec(this, 0)
@@ -145,7 +159,11 @@
// This was the last interpreter
s_hook = 0;
}
+
interpreterMap().remove(m_globalObject);
+
+ // It's likely that destroying the interpreter has created a lot of garbage.
+ Collector::collect();
}
EXPORT
--- a/webengine/osswebengine/JavaScriptCore/kjs/lexer.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/JavaScriptCore/kjs/lexer.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -60,6 +60,14 @@
static Lexer* currLexer = 0;
+struct cleanupLexer {
+ ~cleanupLexer() {
+ delete currLexer;
+ currLexer=0;
+ }
+};
+static cleanupLexer clearLexer;
+
static bool isDecimalDigit(int);
Lexer::Lexer()
--- a/webengine/osswebengine/JavaScriptCore/kjs/list.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/JavaScriptCore/kjs/list.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -323,10 +323,23 @@
return copy;
}
+static List* staticEmptyList = 0;
+
+struct listCleaner {
+ ~listCleaner() {
+ delete staticEmptyList;
+ staticEmptyList = 0;
+ }
+};
+
+static listCleaner cleanList;
const List& List::empty()
{
- static List* staticEmptyList = new List;
+ if(!staticEmptyList)
+ {
+ staticEmptyList = new List;
+ }
return *staticEmptyList;
}
--- a/webengine/osswebengine/JavaScriptCore/kjs/nodes.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/JavaScriptCore/kjs/nodes.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -114,6 +114,21 @@
static HashSet<Node*>* newNodes;
static HashCountedSet<Node*>* nodeExtraRefCounts;
+struct cleanupNodes {
+ ~cleanupNodes() {
+ if(nodeExtraRefCounts)
+ nodeExtraRefCounts->clear();
+ delete nodeExtraRefCounts;
+ nodeExtraRefCounts = NULL;
+
+ if(newNodes)
+ newNodes->clear();
+ delete newNodes;
+ newNodes = NULL;
+ }
+};
+static cleanupNodes deletenodeExtraRefCounts;
+
Node::Node()
{
#ifndef NDEBUG
--- a/webengine/osswebengine/JavaScriptCore/kjs/object_object.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/JavaScriptCore/kjs/object_object.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -28,18 +28,34 @@
using namespace KJS;
+ static const Identifier* hasOwnPropertyPropertyName = 0;
+ static const Identifier* propertyIsEnumerablePropertyName = 0;
+ static const Identifier* isPrototypeOfPropertyName = 0;
+ static const Identifier* defineGetterPropertyName = 0;
+ static const Identifier* defineSetterPropertyName = 0;
+ static const Identifier* lookupGetterPropertyName = 0;
+ static const Identifier* lookupSetterPropertyName = 0;
+
+
// ------------------------------ ObjectPrototype --------------------------------
ObjectPrototype::ObjectPrototype(ExecState* exec, FunctionPrototype* funcProto)
: JSObject() // [[Prototype]] is null
{
- static const Identifier* hasOwnPropertyPropertyName = new Identifier("hasOwnProperty");
- static const Identifier* propertyIsEnumerablePropertyName = new Identifier("propertyIsEnumerable");
- static const Identifier* isPrototypeOfPropertyName = new Identifier("isPrototypeOf");
- static const Identifier* defineGetterPropertyName = new Identifier("__defineGetter__");
- static const Identifier* defineSetterPropertyName = new Identifier("__defineSetter__");
- static const Identifier* lookupGetterPropertyName = new Identifier("__lookupGetter__");
- static const Identifier* lookupSetterPropertyName = new Identifier("__lookupSetter__");
+ if(!hasOwnPropertyPropertyName)
+ hasOwnPropertyPropertyName = new Identifier("hasOwnProperty");
+ if(!propertyIsEnumerablePropertyName)
+ propertyIsEnumerablePropertyName = new Identifier("propertyIsEnumerable");
+ if(!isPrototypeOfPropertyName)
+ isPrototypeOfPropertyName = new Identifier("isPrototypeOf");
+ if(!defineGetterPropertyName)
+ defineGetterPropertyName = new Identifier("__defineGetter__");
+ if(!defineSetterPropertyName)
+ defineSetterPropertyName = new Identifier("__defineSetter__");
+ if(!lookupGetterPropertyName)
+ lookupGetterPropertyName = new Identifier("__lookupGetter__");
+ if(!lookupSetterPropertyName)
+ lookupSetterPropertyName = new Identifier("__lookupSetter__");
putDirectFunction(new ObjectProtoFunc(exec, funcProto, ObjectProtoFunc::ToString, 0, exec->propertyNames().toString), DontEnum);
putDirectFunction(new ObjectProtoFunc(exec, funcProto, ObjectProtoFunc::ToLocaleString, 0, exec->propertyNames().toLocaleString), DontEnum);
@@ -192,3 +208,26 @@
return construct(exec, args);
}
+struct cleanupStaticObjectObject {
+ ~cleanupStaticObjectObject()
+ {
+ delete hasOwnPropertyPropertyName;
+ delete propertyIsEnumerablePropertyName;
+ delete isPrototypeOfPropertyName;
+ delete defineGetterPropertyName;
+ delete defineSetterPropertyName;
+ delete lookupGetterPropertyName;
+ delete lookupSetterPropertyName;
+
+ hasOwnPropertyPropertyName = 0;
+ propertyIsEnumerablePropertyName = 0;
+ isPrototypeOfPropertyName = 0;
+ defineGetterPropertyName = 0;
+ defineSetterPropertyName = 0;
+ lookupGetterPropertyName = 0;
+ lookupSetterPropertyName = 0;
+
+ }
+};
+static cleanupStaticObjectObject deleteStaticObjectObject;
+
--- a/webengine/osswebengine/JavaScriptCore/kjs/regexp_object.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/JavaScriptCore/kjs/regexp_object.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -43,13 +43,31 @@
const ClassInfo RegExpPrototype::info = {"RegExpPrototype", 0, 0, 0};
+ static const Identifier* execPropertyName = 0;
+ static const Identifier* testPropertyName = 0;
+
+
+ struct cleanupStaticRegexpObject {
+ ~cleanupStaticRegexpObject()
+ {
+ delete execPropertyName;
+ delete testPropertyName;
+
+ execPropertyName = 0;
+ testPropertyName = 0;
+ }
+ };
+ static cleanupStaticRegexpObject deleteStaticRegexpObject;
+
RegExpPrototype::RegExpPrototype(ExecState *exec,
ObjectPrototype *objProto,
FunctionPrototype *funcProto)
: JSObject(objProto)
{
- static const Identifier* execPropertyName = new Identifier("exec");
- static const Identifier* testPropertyName = new Identifier("test");
+ if(!execPropertyName)
+ execPropertyName = new Identifier("exec");
+ if(!testPropertyName)
+ testPropertyName = new Identifier("test");
putDirectFunction(new RegExpProtoFunc(exec, funcProto, RegExpProtoFunc::Exec, 0, *execPropertyName), DontEnum);
putDirectFunction(new RegExpProtoFunc(exec, funcProto, RegExpProtoFunc::Test, 0, *testPropertyName), DontEnum);
--- a/webengine/osswebengine/JavaScriptCore/kjs/testkjs.pro Fri May 08 08:25:06 2009 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,31 +0,0 @@
-TEMPLATE = app
-TARGET = testkjs
-DESTDIR = ..
-SOURCES = testkjs.cpp
-QT -= gui
-DEFINES -= KJS_IDENTIFIER_HIDE_GLOBALS
-INCLUDEPATH += $$PWD/.. $$PWD $$PWD/../bindings $$PWD/../bindings/c $$PWD/../wtf
-qt-port:DEFINES += BUILDING_QT__
-#qt-port:LIBS += -L$$OUTPUT_DIR/lib -lQtWebKit
-gtk-port {
- QMAKE_CXXFLAGS += $$system(icu-config --cppflags)
- LIBS += $$system(icu-config --ldflags)
-}
-QMAKE_RPATHDIR += $$OUTPUT_DIR/lib
-
-isEmpty(OUTPUT_DIR):OUTPUT_DIR=$$PWD/../..
-include($$OUTPUT_DIR/config.pri)
-
-include($$PWD/../JavaScriptCore.pri)
-
-# Hack! Fix this.
-SOURCES -= API/JSBase.cpp \
- API/JSCallbackConstructor.cpp \
- API/JSCallbackFunction.cpp \
- API/JSCallbackObject.cpp \
- API/JSClassRef.cpp \
- API/JSContextRef.cpp \
- API/JSObjectRef.cpp \
- API/JSStringRef.cpp \
- API/JSValueRef.cpp
-
--- a/webengine/osswebengine/JavaScriptCore/kjs/ustring.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/JavaScriptCore/kjs/ustring.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -909,14 +909,21 @@
return statBuffer;
}
-#ifdef KJS_DEBUG_MEM
+struct cleanupUString {
+ ~cleanupUString() {
+ UString::globalClear();
+ }
+};
+static cleanupUString clearGlobal;
+
+//#ifdef KJS_DEBUG_MEM
void UString::globalClear()
{
delete [] statBuffer;
statBuffer = 0;
statBufferSize = 0;
}
-#endif
+//#endif
EXPORT
UString &UString::operator=(const char *c)
--- a/webengine/osswebengine/JavaScriptCore/kjs/ustring.h Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/JavaScriptCore/kjs/ustring.h Fri Jul 03 15:54:40 2009 +0100
@@ -218,7 +218,7 @@
/**
* Destructor.
*/
- ~UString() {}
+ ~UString() {m_rep=0;}
/**
* Constructs a string from an int.
@@ -377,12 +377,12 @@
* Static instance of a null string.
*/
static const UString &null();
-#ifdef KJS_DEBUG_MEM
+//#ifdef KJS_DEBUG_MEM
/**
* Clear statically allocated resources.
*/
static void globalClear();
-#endif
+//#endif
Rep* rep() const { return m_rep.get(); }
UString(PassRefPtr<Rep> r) : m_rep(r) { ASSERT(m_rep); }
--- a/webengine/osswebengine/JavaScriptCore/pcre/dftables.pro Fri May 08 08:25:06 2009 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
-TEMPLATE = app
-CONFIG += console
-CONFIG -= app_bundle qt
-SOURCES = dftables.c
-TARGET = dftables
-DESTDIR = tmp
-
-INCLUDEPATH += $$PWD/../wtf
-
-gtk-port {
- DEFINES += BUILDING_GTK__ BUILDING_CAIRO__
-} else {
- DEFINES += BUILDING_QT__
-}
-
--- a/webengine/osswebengine/JavaScriptCore/pcre/pcre.pri Fri May 08 08:25:06 2009 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,35 +0,0 @@
-# Perl Compatible Regular Expressions - Qt4 build info
-VPATH += $$PWD
-INCLUDEPATH += $$PWD $$OUTPUT_DIR/JavaScriptCore/kjs/tmp
-
-SOURCES += \
- pcre_get.c \
- pcre_refcount.c \
- pcre_ucp_findchar.c \
- pcre_compile.c \
- pcre_globals.c \
- pcre_config.c \
- pcre_version.c \
- pcre_info.c \
- pcre_study.c \
- pcre_exec.c \
- pcre_xclass.c \
- pcre_tables.c \
- pcre_maketables.c \
- pcre_try_flipped.c \
- pcre_ord2utf8.c \
- pcre_fullinfo.c
-
-CTGENFILE += \
- dftables.c
-
-
-# GENERATOR: "chartables.c": compile and execute the chartables generator (and add it to sources)
-ctgen.output = tmp/chartables.c
-ctgen.commands = $$OUTPUT_DIR/JavaScriptCore/pcre/tmp/dftables ${QMAKE_FILE_OUT}
-ctgen.input = CTGENFILE
-ctgen.CONFIG += target_predeps no_link
-ctgen.variable_out = GENERATED_SOURCES
-ctgen.dependency_type = TYPE_C
-ctgen.clean = ${QMAKE_FILE_OUT} tmp/${QMAKE_FILE_BASE}
-QMAKE_EXTRA_COMPILERS += ctgen
--- a/webengine/osswebengine/MemoryManager/Group/MemManTest.mmp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/MemoryManager/Group/MemManTest.mmp Fri Jul 03 15:54:40 2009 +0100
@@ -88,5 +88,8 @@
STATICLIBRARY kwq.lib KHTML.lib
-LANGUAGE_IDS
-
+#ifdef __S60_32__
+LANG sc
+#else
+LANGUAGE_IDS
+#endif
--- a/webengine/osswebengine/MemoryManager/Src/MemoryManager.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/MemoryManager/Src/MemoryManager.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -31,6 +31,17 @@
// initializing a global memory pool.
static CMemoryPool *s_pool = 0;
+struct cleanupMemoryPool {
+ ~cleanupMemoryPool() {
+ if(s_pool)
+ {
+ delete s_pool;
+ s_pool = NULL;
+ }
+ }
+};
+static cleanupMemoryPool deleteMemoryPool;
+
//-----------------------------------------------------------------------------
// Pool() - a utility function for accessing the right memory pool
//-----------------------------------------------------------------------------
--- a/webengine/osswebengine/WebCore/WebCore.pro Fri May 08 08:25:06 2009 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,1561 +0,0 @@
-# -*- Mode:makefile -*-
-# WebCore - qmake build info
-CONFIG += building-libs
-# do not use implicit rules in nmake Makefiles to avoid the clash
-# of API/Node.c and dom/Node.cpp
-CONFIG += no_batch
-include($$PWD/../WebKit.pri)
-gtk-port:LIBS -= -lWebKitGtk
-
-TEMPLATE = lib
-qt-port:TARGET = QtWebKit
-gtk-port:TARGET = WebKitGtk
-OBJECTS_DIR = tmp
-OBJECTS_DIR_WTR = $$OBJECTS_DIR/
-win32-*: OBJECTS_DIR_WTR ~= s|/|\|
-INCLUDEPATH += tmp $$OUTPUT_DIR/WebCore/tmp
-
-DESTDIR = $$OUTPUT_DIR/lib
-DEPENDPATH += css dom loader editing history html \
- loader page platform platform/graphics rendering xml
-
-include($$OUTPUT_DIR/config.pri)
-
-CONFIG -= warn_on
-*-g++*:QMAKE_CXXFLAGS += -Wreturn-type -fno-strict-aliasing
-#QMAKE_CXXFLAGS += -Wall -Wno-undef -Wno-unused-parameter
-
-contains(QT_CONFIG, reduce_exports):CONFIG += hide_symbols
-unix:contains(QT_CONFIG, reduce_relocations):CONFIG += bsymbolic_functions
-
-linux-*: DEFINES += HAVE_STDINT_H
-freebsd-*: DEFINES += HAVE_PTHREAD_NP_H
-
-# PRE-BUILD: make the required config.h file
-#config_h.target = config.h
-#config_h.commands = cp config.h.qmake config.h
-#config_h.depends = config.h.qmake
-#QMAKE_EXTRA_TARGETS += config_h
-#PRE_TARGETDEPS += config.h
-
-DEFINES += BUILD_WEBKIT
-
-win32-*: DEFINES += ENABLE_ICONDATABASE=0
-
-# Pick up 3rdparty libraries from INCLUDE/LIB just like with MSVC
-win32-g++ {
- TMPPATH = $$quote($$(INCLUDE))
- QMAKE_INCDIR_POST += $$split(TMPPATH,";")
- TMPPATH = $$quote($$(LIB))
- QMAKE_LIBDIR_POST += $$split(TMPPATH,";")
-}
-
-# Optional components (look for defs in config.h and included files!)
-!contains(DEFINES, ENABLE_ICONDATABASE=.): DEFINES += ENABLE_ICONDATABASE=1
-!contains(DEFINES, ENABLE_XPATH=.): DEFINES += ENABLE_XPATH=1
-gtk-port:!contains(DEFINES, ENABLE_XSLT=.): DEFINES += ENABLE_XSLT=1
-#!contains(DEFINES, ENABLE_XBL=.): DEFINES += ENABLE_XBL=1
-qt-port: !contains(DEFINES, ENABLE_SVG=.): DEFINES += ENABLE_SVG=1
-gtk-port:DEFINES += ENABLE_SVG=1
-
-DEFINES += WTF_CHANGES=1
-
-include($$PWD/../JavaScriptCore/JavaScriptCore.pri)
-
-#INCLUDEPATH += $$PWD/../JavaScriptCore
-#LIBS += -L$$OUTPUT_DIR/lib -lJavaScriptCore
-
-qt-port {
-!win32-* {
- LIBS += -L$$OUTPUT_DIR/WebKit/qt/Plugins
- LIBS += -lqtwebico
-}
-
-INCLUDEPATH += \
- $$PWD/platform/qt \
- $$PWD/platform/network/qt \
- $$PWD/platform/graphics/qt \
- $$PWD/platform/graphics/svg/qt \
- $$PWD/loader/qt \
- $$PWD/page/qt \
- $$PWD/../WebKit/qt/WebCoreSupport \
- $$PWD/../WebKit/qt/Api
-
-DEPENDPATH += editing/qt history/qt loader/qt page/qt \
- platform/graphics/qt ../WeKitQt/Api ../WebKit/qt/WebCoreSupport
-
- DEFINES += WTF_USE_JAVASCRIPTCORE_BINDINGS=1
-}
-
-gtk-port {
- INCLUDEPATH += \
- $$PWD/platform/graphics/svg/cairo \
- $$PWD/platform/image-decoders/bmp \
- $$PWD/platform/image-decoders/gif \
- $$PWD/platform/image-decoders/ico \
- $$PWD/platform/image-decoders/jpeg \
- $$PWD/platform/image-decoders/png \
- $$PWD/platform/image-decoders/xbm
-
- DEPENDPATH += platform/graphics/gdk \
- platform/gdk \
- loader/gdk \
- page/gdk \
- platform/graphics/cairo \
- platform/graphics/svg/cairo \
- platform/network/curl \
- ../WebKit/gtk/Api \
- ../WebKit/gtk/WebCoreSupport
-}
-
-INCLUDEPATH += $$PWD \
- $$PWD/ForwardingHeaders \
- $$PWD/.. \
- $$PWD/../JavaScriptCore/kjs \
- $$PWD/../JavaScriptCore/bindings \
- $$PWD/platform \
- $$PWD/platform/network \
- $$PWD/platform/graphics \
- $$PWD/platform/graphics/svg \
- $$PWD/platform/graphics/svg/filters \
- $$PWD/loader $$PWD/loader/icon \
- $$PWD/css \
- $$PWD/dom \
- $$PWD/page \
- $$PWD/bridge \
- $$PWD/editing \
- $$PWD/rendering \
- $$PWD/history \
- $$PWD/xml \
- $$PWD/html \
- $$PWD/bindings/js \
- $$PWD/ksvg2 $$PWD/ksvg2/css $$PWD/ksvg2/svg $$PWD/ksvg2/misc $$PWD/ksvg2/events \
- $$PWD/platform/image-decoders
-
-QT += network xml
-
-FEATURE_DEFINES_JAVASCRIPT = LANGUAGE_JAVASCRIPT=1
-
-TOKENIZER = $$PWD/css/tokenizer.flex
-
-DOCTYPESTRINGS = $$PWD/html/DocTypeStrings.gperf
-
-CSSBISON = $$PWD/css/CSSGrammar.y
-
-HTML_NAMES = $$PWD/html/HTMLTagNames.in
-
-XML_NAMES = $$PWD/xml/xmlattrs.in
-
-ENTITIES_GPERF = $$PWD/html/HTMLEntityNames.gperf
-
-COLORDAT_GPERF = $$PWD/platform/ColorData.gperf
-
-WALDOCSSPROPS = $$PWD/css/CSSPropertyNames.in
-
-WALDOCSSVALUES = $$PWD/css/CSSValueKeywords.in
-
-SVGCSSPROPERTIES = $$PWD/ksvg2/css/CSSPropertyNames.in
-
-SVGCSSVALUES = $$PWD/ksvg2/css/CSSValueKeywords.in
-
-STYLESHEETS_EMBED = $$PWD/css/html4.css
-
-LUT_FILES += \
- bindings/js/JSDOMExceptionConstructor.cpp \
- bindings/js/JSEventTargetNode.cpp \
- bindings/js/JSXMLHttpRequest.cpp \
- bindings/js/JSXSLTProcessor.cpp \
- bindings/js/kjs_css.cpp \
- bindings/js/kjs_events.cpp \
- bindings/js/kjs_navigator.cpp \
- bindings/js/kjs_window.cpp
-
-LUT_TABLE_FILES += \
- bindings/js/JSHTMLInputElementBase.cpp
-
-IDL_BINDINGS += \
- css/Counter.idl \
- css/CSSCharsetRule.idl \
- css/CSSFontFaceRule.idl \
- css/CSSImportRule.idl \
- css/CSSMediaRule.idl \
- css/CSSPageRule.idl \
- css/CSSPrimitiveValue.idl \
- css/CSSRule.idl \
- css/CSSRuleList.idl \
- css/CSSStyleDeclaration.idl \
- css/CSSStyleRule.idl \
- css/CSSStyleSheet.idl \
- css/CSSValue.idl \
- css/CSSValueList.idl \
- css/MediaList.idl \
- css/Rect.idl \
- css/StyleSheet.idl \
- dom/Attr.idl \
- dom/CharacterData.idl \
- dom/CDATASection.idl \
- dom/Comment.idl \
- dom/DocumentFragment.idl \
- dom/Document.idl \
- dom/DocumentType.idl \
- dom/DOMImplementation.idl \
- dom/Element.idl \
- dom/Entity.idl \
- dom/EntityReference.idl \
- dom/Event.idl \
-# dom/EventListener.idl \
-# dom/EventTarget.idl \
- dom/KeyboardEvent.idl \
- dom/MouseEvent.idl \
- dom/MutationEvent.idl \
- dom/NamedNodeMap.idl \
- dom/Node.idl \
- dom/NodeFilter.idl \
- dom/NodeIterator.idl \
- dom/NodeList.idl \
- dom/Notation.idl \
- dom/OverflowEvent.idl \
- dom/ProcessingInstruction.idl \
- dom/RangeException.idl \
- dom/Range.idl \
- dom/Text.idl \
- dom/TextEvent.idl \
- dom/TreeWalker.idl \
- dom/UIEvent.idl \
- dom/WheelEvent.idl \
- html/CanvasGradient.idl \
- html/CanvasPattern.idl \
- html/CanvasRenderingContext2D.idl \
- html/HTMLAnchorElement.idl \
- html/HTMLAppletElement.idl \
- html/HTMLAreaElement.idl \
- html/HTMLBaseElement.idl \
- html/HTMLBaseFontElement.idl \
- html/HTMLBlockquoteElement.idl \
- html/HTMLBodyElement.idl \
- html/HTMLBRElement.idl \
- html/HTMLButtonElement.idl \
- html/HTMLCanvasElement.idl \
- html/HTMLCollection.idl \
- html/HTMLDirectoryElement.idl \
- html/HTMLDivElement.idl \
- html/HTMLDListElement.idl \
- html/HTMLDocument.idl \
- html/HTMLElement.idl \
- html/HTMLEmbedElement.idl \
- html/HTMLFieldSetElement.idl \
- html/HTMLFontElement.idl \
- html/HTMLFormElement.idl \
- html/HTMLFrameElement.idl \
- html/HTMLFrameSetElement.idl \
- html/HTMLHeadElement.idl \
- html/HTMLHeadingElement.idl \
- html/HTMLHRElement.idl \
- html/HTMLHtmlElement.idl \
- html/HTMLIFrameElement.idl \
- html/HTMLImageElement.idl \
- html/HTMLInputElement.idl \
- html/HTMLIsIndexElement.idl \
- html/HTMLLabelElement.idl \
- html/HTMLLegendElement.idl \
- html/HTMLLIElement.idl \
- html/HTMLLinkElement.idl \
- html/HTMLMapElement.idl \
- html/HTMLMarqueeElement.idl \
- html/HTMLMenuElement.idl \
- html/HTMLMetaElement.idl \
- html/HTMLModElement.idl \
- html/HTMLObjectElement.idl \
- html/HTMLOListElement.idl \
- html/HTMLOptGroupElement.idl \
- html/HTMLOptionElement.idl \
- html/HTMLOptionsCollection.idl \
- html/HTMLParagraphElement.idl \
- html/HTMLParamElement.idl \
- html/HTMLPreElement.idl \
- html/HTMLQuoteElement.idl \
- html/HTMLScriptElement.idl \
- html/HTMLSelectElement.idl \
- html/HTMLStyleElement.idl \
- html/HTMLTableCaptionElement.idl \
- html/HTMLTableCellElement.idl \
- html/HTMLTableColElement.idl \
- html/HTMLTableElement.idl \
- html/HTMLTableRowElement.idl \
- html/HTMLTableSectionElement.idl \
- html/HTMLTextAreaElement.idl \
- html/HTMLTitleElement.idl \
- html/HTMLUListElement.idl \
- page/BarInfo.idl \
- page/DOMSelection.idl \
- page/DOMWindow.idl \
- page/History.idl \
- page/Screen.idl \
- xml/DOMParser.idl \
- xml/XMLSerializer.idl
-
-
-SOURCES += \
- bindings/js/GCController.cpp \
- bindings/js/JSAttrCustom.cpp \
- bindings/js/JSCanvasRenderingContext2DCustom.cpp \
- bindings/js/JSCSSRuleCustom.cpp \
- bindings/js/JSCSSStyleDeclarationCustom.cpp \
- bindings/js/JSCSSValueCustom.cpp \
- bindings/js/JSCustomXPathNSResolver.cpp \
- bindings/js/JSDocumentCustom.cpp \
- bindings/js/JSDOMExceptionConstructor.cpp \
- bindings/js/JSDOMWindowCustom.cpp \
- bindings/js/JSElementCustom.cpp \
- bindings/js/JSEventCustom.cpp \
- bindings/js/JSEventTargetNode.cpp \
- bindings/js/JSHTMLAppletElementCustom.cpp \
- bindings/js/JSHTMLCollectionCustom.cpp \
- bindings/js/JSHTMLDocumentCustom.cpp \
- bindings/js/JSHTMLElementCustom.cpp \
- bindings/js/JSHTMLElementWrapperFactory.cpp \
- bindings/js/JSHTMLEmbedElementCustom.cpp \
- bindings/js/JSHTMLFormElementCustom.cpp \
- bindings/js/JSHTMLFrameElementCustom.cpp \
- bindings/js/JSHTMLFrameSetElementCustom.cpp \
- bindings/js/JSHTMLIFrameElementCustom.cpp \
- bindings/js/JSHTMLInputElementBase.cpp \
- bindings/js/JSHTMLObjectElementCustom.cpp \
- bindings/js/JSHTMLOptionElementConstructor.cpp \
- bindings/js/JSHTMLOptionsCollectionCustom.cpp \
- bindings/js/JSHTMLSelectElementCustom.cpp \
- bindings/js/JSNamedNodeMapCustom.cpp \
- bindings/js/JSNamedNodesCollection.cpp \
- bindings/js/JSNodeCustom.cpp \
- bindings/js/JSNodeFilterCondition.cpp \
- bindings/js/JSNodeFilterCustom.cpp \
- bindings/js/JSNodeIteratorCustom.cpp \
- bindings/js/JSNodeListCustom.cpp \
- bindings/js/JSStyleSheetCustom.cpp \
- bindings/js/JSTreeWalkerCustom.cpp \
- bindings/js/JSXMLHttpRequest.cpp \
- bindings/js/JSXSLTProcessor.cpp \
- bindings/js/kjs_binding.cpp \
- bindings/js/kjs_css.cpp \
- bindings/js/kjs_dom.cpp \
- bindings/js/kjs_events.cpp \
- bindings/js/kjs_html.cpp \
- bindings/js/kjs_navigator.cpp \
- bindings/js/kjs_proxy.cpp \
- bindings/js/kjs_window.cpp \
- css/CSSBorderImageValue.cpp \
- css/CSSCharsetRule.cpp \
- css/CSSComputedStyleDeclaration.cpp \
- css/CSSCursorImageValue.cpp \
- css/CSSFontFaceRule.cpp \
- css/CSSHelper.cpp \
- css/CSSImageValue.cpp \
- css/CSSImportRule.cpp \
- css/CSSInheritedValue.cpp \
- css/CSSInitialValue.cpp \
- css/CSSMediaRule.cpp \
- css/CSSMutableStyleDeclaration.cpp \
- css/CSSPageRule.cpp \
- css/CSSParser.cpp \
- css/CSSPrimitiveValue.cpp \
- css/CSSProperty.cpp \
- css/CSSRule.cpp \
- css/CSSRuleList.cpp \
- css/CSSSelector.cpp \
- css/CSSStyleDeclaration.cpp \
- css/CSSStyleRule.cpp \
- css/CSSStyleSelector.cpp \
- css/CSSStyleSheet.cpp \
- css/CSSValueList.cpp \
- css/FontFamilyValue.cpp \
- css/FontValue.cpp \
- css/MediaFeatureNames.cpp \
- css/MediaList.cpp \
- css/MediaQuery.cpp \
- css/MediaQueryEvaluator.cpp \
- css/MediaQueryExp.cpp \
- css/ShadowValue.cpp \
- css/StyleBase.cpp \
- css/StyleList.cpp \
- css/StyleSheet.cpp \
- css/StyleSheetList.cpp \
- dom/Attr.cpp \
- dom/Attribute.cpp \
- dom/BeforeTextInsertedEvent.cpp \
- dom/BeforeUnloadEvent.cpp \
- dom/CDATASection.cpp \
- dom/CharacterData.cpp \
- dom/ChildNodeList.cpp \
- dom/Clipboard.cpp \
- dom/ClipboardEvent.cpp \
- dom/Comment.cpp \
- dom/ContainerNode.cpp \
- dom/CSSMappedAttributeDeclaration.cpp \
- dom/Document.cpp \
- dom/DocumentFragment.cpp \
- dom/DocumentType.cpp \
- dom/DOMImplementation.cpp \
- dom/EditingText.cpp \
- dom/Element.cpp \
- dom/Entity.cpp \
- dom/EntityReference.cpp \
- dom/Event.cpp \
- dom/EventNames.cpp \
- dom/EventTarget.cpp \
- dom/EventTargetNode.cpp \
- dom/KeyboardEvent.cpp \
- dom/MappedAttribute.cpp \
- dom/MouseEvent.cpp \
- dom/MouseRelatedEvent.cpp \
- dom/MutationEvent.cpp \
- dom/NamedAttrMap.cpp \
- dom/NamedMappedAttrMap.cpp \
- dom/NameNodeList.cpp \
- dom/Node.cpp \
- dom/NodeFilterCondition.cpp \
- dom/NodeFilter.cpp \
- dom/NodeIterator.cpp \
- dom/NodeList.cpp \
- dom/Notation.cpp \
- dom/OverflowEvent.cpp \
- dom/Position.cpp \
- dom/PositionIterator.cpp \
- dom/ProcessingInstruction.cpp \
- dom/QualifiedName.cpp \
- dom/Range.cpp \
- dom/RegisteredEventListener.cpp \
- dom/StyledElement.cpp \
- dom/StyleElement.cpp \
- dom/Text.cpp \
- dom/TextEvent.cpp \
- dom/Traversal.cpp \
- dom/TreeWalker.cpp \
- dom/UIEvent.cpp \
- dom/UIEventWithKeyState.cpp \
- dom/WheelEvent.cpp \
- dom/XMLTokenizer.cpp \
- editing/AppendNodeCommand.cpp \
- editing/ApplyStyleCommand.cpp \
- editing/BreakBlockquoteCommand.cpp \
- editing/CommandByName.cpp \
- editing/CompositeEditCommand.cpp \
- editing/CreateLinkCommand.cpp \
- editing/DeleteButtonController.cpp \
- editing/DeleteButton.cpp \
- editing/DeleteFromTextNodeCommand.cpp \
- editing/DeleteSelectionCommand.cpp \
- editing/EditCommand.cpp \
- editing/Editor.cpp \
- editing/FormatBlockCommand.cpp \
- editing/htmlediting.cpp \
- editing/HTMLInterchange.cpp \
- editing/IndentOutdentCommand.cpp \
- editing/InsertIntoTextNodeCommand.cpp \
- editing/InsertLineBreakCommand.cpp \
- editing/InsertListCommand.cpp \
- editing/InsertNodeBeforeCommand.cpp \
- editing/InsertParagraphSeparatorCommand.cpp \
- editing/InsertTextCommand.cpp \
- editing/JoinTextNodesCommand.cpp \
- editing/JSEditor.cpp \
- editing/markup.cpp \
- editing/MergeIdenticalElementsCommand.cpp \
- editing/ModifySelectionListLevel.cpp \
- editing/MoveSelectionCommand.cpp \
- editing/RemoveCSSPropertyCommand.cpp \
- editing/RemoveNodeAttributeCommand.cpp \
- editing/RemoveNodeCommand.cpp \
- editing/RemoveNodePreservingChildrenCommand.cpp \
- editing/ReplaceSelectionCommand.cpp \
- editing/SelectionController.cpp \
- editing/Selection.cpp \
- editing/SetNodeAttributeCommand.cpp \
- editing/SmartReplace.cpp \
- editing/SplitElementCommand.cpp \
- editing/SplitTextNodeCommand.cpp \
- editing/SplitTextNodeContainingElementCommand.cpp \
- editing/TextIterator.cpp \
- editing/TypingCommand.cpp \
- editing/UnlinkCommand.cpp \
- editing/VisiblePosition.cpp \
- editing/visible_units.cpp \
- editing/WrapContentsInDummySpanCommand.cpp \
- history/BackForwardList.cpp \
- history/CachedPage.cpp \
- history/HistoryItem.cpp \
- history/PageCache.cpp \
- html/CanvasGradient.cpp \
- html/CanvasPattern.cpp \
- html/CanvasRenderingContext2D.cpp \
- html/CanvasStyle.cpp \
- html/FormDataList.cpp \
- html/HTMLAnchorElement.cpp \
- html/HTMLAppletElement.cpp \
- html/HTMLAreaElement.cpp \
- html/HTMLBaseElement.cpp \
- html/HTMLBaseFontElement.cpp \
- html/HTMLBlockquoteElement.cpp \
- html/HTMLBodyElement.cpp \
- html/HTMLBRElement.cpp \
- html/HTMLButtonElement.cpp \
- html/HTMLCanvasElement.cpp \
- html/HTMLCollection.cpp \
- html/HTMLDirectoryElement.cpp \
- html/HTMLDivElement.cpp \
- html/HTMLDListElement.cpp \
- html/HTMLDocument.cpp \
- html/HTMLElement.cpp \
- html/HTMLElementFactory.cpp \
- html/HTMLEmbedElement.cpp \
- html/HTMLFieldSetElement.cpp \
- html/HTMLFontElement.cpp \
- html/HTMLFormCollection.cpp \
- html/HTMLFormElement.cpp \
- html/HTMLFrameElementBase.cpp \
- html/HTMLFrameElement.cpp \
- html/HTMLFrameOwnerElement.cpp \
- html/HTMLFrameSetElement.cpp \
- html/HTMLGenericFormElement.cpp \
- html/HTMLHeadElement.cpp \
- html/HTMLHeadingElement.cpp \
- html/HTMLHRElement.cpp \
- html/HTMLHtmlElement.cpp \
- html/HTMLIFrameElement.cpp \
- html/HTMLImageElement.cpp \
- html/HTMLImageLoader.cpp \
- html/HTMLInputElement.cpp \
- html/HTMLIsIndexElement.cpp \
- html/HTMLKeygenElement.cpp \
- html/HTMLLabelElement.cpp \
- html/HTMLLegendElement.cpp \
- html/HTMLLIElement.cpp \
- html/HTMLLinkElement.cpp \
- html/HTMLMapElement.cpp \
- html/HTMLMarqueeElement.cpp \
- html/HTMLMenuElement.cpp \
- html/HTMLMetaElement.cpp \
- html/HTMLModElement.cpp \
- html/HTMLNameCollection.cpp \
- html/HTMLObjectElement.cpp \
- html/HTMLOListElement.cpp \
- html/HTMLOptGroupElement.cpp \
- html/HTMLOptionElement.cpp \
- html/HTMLOptionsCollection.cpp \
- html/HTMLParagraphElement.cpp \
- html/HTMLParamElement.cpp \
- html/HTMLParser.cpp \
- html/HTMLParserErrorCodes.cpp \
- html/HTMLPlugInElement.cpp \
- html/HTMLPreElement.cpp \
- html/HTMLQuoteElement.cpp \
- html/HTMLScriptElement.cpp \
- html/HTMLSelectElement.cpp \
- html/HTMLStyleElement.cpp \
- html/HTMLTableCaptionElement.cpp \
- html/HTMLTableCellElement.cpp \
- html/HTMLTableColElement.cpp \
- html/HTMLTableElement.cpp \
- html/HTMLTablePartElement.cpp \
- html/HTMLTableRowElement.cpp \
- html/HTMLTableSectionElement.cpp \
- html/HTMLTextAreaElement.cpp \
- html/HTMLTextFieldInnerElement.cpp \
- html/HTMLTitleElement.cpp \
- html/HTMLTokenizer.cpp \
- html/HTMLUListElement.cpp \
- html/HTMLViewSourceDocument.cpp \
- loader/Cache.cpp \
- loader/CachedCSSStyleSheet.cpp \
- loader/CachedImage.cpp \
- loader/CachedResourceClientWalker.cpp \
- loader/CachedResource.cpp \
- loader/CachedScript.cpp \
- loader/CachedXSLStyleSheet.cpp \
- loader/DocLoader.cpp \
- loader/DocumentLoader.cpp \
- loader/FormState.cpp \
- loader/FrameLoader.cpp \
- loader/FTPDirectoryDocument.cpp \
- loader/FTPDirectoryParser.cpp \
- loader/icon/IconLoader.cpp \
- loader/ImageDocument.cpp \
- loader/loader.cpp \
- loader/MainResourceLoader.cpp \
- loader/NavigationAction.cpp \
- loader/NetscapePlugInStreamLoader.cpp \
- loader/PluginDocument.cpp \
- loader/ProgressTracker.cpp \
- loader/Request.cpp \
- loader/ResourceLoader.cpp \
- loader/SubresourceLoader.cpp \
- loader/TextDocument.cpp \
- loader/TextResourceDecoder.cpp \
- page/BarInfo.cpp \
- page/Chrome.cpp \
- page/ContextMenuController.cpp \
- page/DOMSelection.cpp \
- page/DOMWindow.cpp \
- page/DragController.cpp \
- page/EventHandler.cpp \
- page/FocusController.cpp \
- page/Frame.cpp \
- page/FrameTree.cpp \
- page/FrameView.cpp \
- page/History.cpp \
- page/InspectorController.cpp \
- page/MouseEventWithHitTestResults.cpp \
- page/Page.cpp \
- page/Screen.cpp \
- page/Settings.cpp \
- platform/Arena.cpp \
- platform/ArrayImpl.cpp \
- platform/AtomicString.cpp \
- platform/Base64.cpp \
- platform/BidiContext.cpp \
- platform/ContextMenu.cpp \
- platform/CString.cpp \
- platform/DeprecatedCString.cpp \
- platform/DeprecatedPtrListImpl.cpp \
- platform/DeprecatedString.cpp \
- platform/DeprecatedStringList.cpp \
- platform/DeprecatedValueListImpl.cpp \
- platform/DragData.cpp \
- platform/DragImage.cpp \
- platform/FileChooser.cpp \
- platform/FontFamily.cpp \
- platform/graphics/AffineTransform.cpp \
- platform/graphics/BitmapImage.cpp \
- platform/graphics/Color.cpp \
- platform/graphics/FloatPoint3D.cpp \
- platform/graphics/FloatPoint.cpp \
- platform/graphics/FloatRect.cpp \
- platform/graphics/FloatSize.cpp \
- platform/graphics/GraphicsContext.cpp \
- platform/graphics/GraphicsTypes.cpp \
- platform/graphics/ImageBuffer.cpp \
- platform/graphics/Image.cpp \
- platform/graphics/IntRect.cpp \
- platform/graphics/Path.cpp \
- platform/graphics/PathTraversalState.cpp \
- platform/graphics/Pen.cpp \
- platform/KURL.cpp \
- platform/Logging.cpp \
- platform/MIMETypeRegistry.cpp \
- platform/network/AuthenticationChallenge.cpp \
- platform/network/Credential.cpp \
- platform/network/FormData.cpp \
- platform/network/HTTPParsers.cpp \
- platform/network/ProtectionSpace.cpp \
- platform/network/ResourceHandle.cpp \
- platform/network/ResourceRequestBase.cpp \
- platform/network/ResourceResponse.cpp \
- platform/RegularExpression.cpp \
- platform/ScrollBar.cpp \
-# platform/SearchPopupMenu.cpp \
- platform/SecurityOrigin.cpp \
- platform/SegmentedString.cpp \
- platform/SharedBuffer.cpp \
- platform/String.cpp \
- platform/StringImpl.cpp \
- platform/TextCodec.cpp \
- platform/TextCodecLatin1.cpp \
- platform/TextCodecUTF16.cpp \
- platform/TextDecoder.cpp \
- platform/TextEncoding.cpp \
- platform/TextEncodingRegistry.cpp \
- platform/TextStream.cpp \
- platform/Timer.cpp \
- platform/Widget.cpp \
- rendering/AutoTableLayout.cpp \
- rendering/bidi.cpp \
- rendering/break_lines.cpp \
- rendering/CounterNode.cpp \
- rendering/EllipsisBox.cpp \
- rendering/FixedTableLayout.cpp \
- rendering/HitTestResult.cpp \
- rendering/InlineBox.cpp \
- rendering/InlineFlowBox.cpp \
- rendering/InlineTextBox.cpp \
- rendering/LayoutState.cpp \
- rendering/ListMarkerBox.cpp \
- rendering/RenderApplet.cpp \
- rendering/RenderArena.cpp \
- rendering/RenderBlock.cpp \
- rendering/RenderBox.cpp \
- rendering/RenderBR.cpp \
- rendering/RenderButton.cpp \
- rendering/RenderContainer.cpp \
- rendering/RenderCounter.cpp \
- rendering/RenderFieldset.cpp \
- rendering/RenderFileUploadControl.cpp \
- rendering/RenderFlexibleBox.cpp \
- rendering/RenderFlow.cpp \
- rendering/RenderFrame.cpp \
- rendering/RenderFrameSet.cpp \
- rendering/RenderHTMLCanvas.cpp \
- rendering/RenderImage.cpp \
- rendering/RenderInline.cpp \
- rendering/RenderLayer.cpp \
- rendering/RenderLegend.cpp \
- rendering/RenderListBox.cpp \
- rendering/RenderListItem.cpp \
- rendering/RenderListMarker.cpp \
- rendering/RenderMenuList.cpp \
- rendering/RenderObject.cpp \
- rendering/RenderPart.cpp \
- rendering/RenderPartObject.cpp \
- rendering/RenderReplaced.cpp \
- rendering/RenderSlider.cpp \
- rendering/RenderStyle.cpp \
- rendering/RenderTableCell.cpp \
- rendering/RenderTableCol.cpp \
- rendering/RenderTable.cpp \
- rendering/RenderTableRow.cpp \
- rendering/RenderTableSection.cpp \
- rendering/RenderTextControl.cpp \
- rendering/RenderText.cpp \
- rendering/RenderTextFragment.cpp \
- rendering/RenderTheme.cpp \
- rendering/RenderTreeAsText.cpp \
- rendering/RenderView.cpp \
- rendering/RenderWidget.cpp \
- rendering/RenderWordBreak.cpp \
- rendering/RootInlineBox.cpp \
- rendering/SVGRenderTreeAsText.cpp \
- xml/DOMParser.cpp \
- xml/NativeXPathNSResolver.cpp \
- xml/XMLHttpRequest.cpp \
- xml/XMLSerializer.cpp \
- xml/XPathEvaluator.cpp \
- xml/XPathExpression.cpp \
- xml/XPathExpressionNode.cpp \
- xml/XPathFunctions.cpp \
- xml/XPathNamespace.cpp \
- xml/XPathNodeSet.cpp \
- xml/XPathNSResolver.cpp \
- xml/XPathParser.cpp \
- xml/XPathPath.cpp \
- xml/XPathPredicate.cpp \
- xml/XPathResult.cpp \
- xml/XPathStep.cpp \
- xml/XPathUtil.cpp \
- xml/XPathValue.cpp \
- xml/XPathVariableReference.cpp \
- xml/XSLImportRule.cpp \
- xml/XSLStyleSheet.cpp \
- xml/XSLTExtensions.cpp \
- xml/XSLTProcessor.cpp
-
-gtk-port {
- SOURCES += \
- platform/GlyphPageTreeNode.cpp \
- platform/GlyphWidthMap.cpp \
- platform/FontCache.cpp \
- platform/Font.cpp \
- platform/FontData.cpp \
- platform/FontFallbackList.cpp
-}
-
-qt-port {
-
- HEADERS += \
- $$PWD/platform/qt/QWebPopup.h \
- $$PWD/platform/qt/MenuEventProxy.h \
- $$PWD/platform/qt/SharedTimerQt.h \
- $$PWD/../WebKit/qt/Api/qwebframe.h \
- $$PWD/../WebKit/qt/Api/qwebpage.h \
- $$PWD/../WebKit/qt/Api/qwebnetworkinterface.h \
- $$PWD/../WebKit/qt/Api/qwebnetworkinterface_p.h \
- $$PWD/../WebKit/qt/Api/qwebobjectplugin.h \
- $$PWD/../WebKit/qt/Api/qwebobjectplugin_p.h \
- $$PWD/../WebKit/qt/Api/qwebobjectpluginconnector.h \
- $$PWD/../WebKit/qt/Api/qwebhistoryinterface.h \
- $$PWD/../WebKit/qt/Api/qcookiejar.h \
- $$PWD/../WebKit/qt/WebCoreSupport/FrameLoaderClientQt.h
-
- SOURCES += \
- page/qt/DragControllerQt.cpp \
- page/qt/EventHandlerQt.cpp \
- page/qt/FrameQt.cpp \
- loader/qt/DocumentLoaderQt.cpp \
- platform/graphics/qt/AffineTransformQt.cpp \
- platform/graphics/qt/ColorQt.cpp \
- platform/graphics/qt/FloatPointQt.cpp \
- platform/graphics/qt/FloatRectQt.cpp \
- platform/graphics/qt/GraphicsContextQt.cpp \
- platform/graphics/qt/IconQt.cpp \
- platform/graphics/qt/ImageBufferQt.cpp \
- platform/graphics/qt/ImageDecoderQt.cpp \
- platform/graphics/qt/ImageQt.cpp \
- platform/graphics/qt/ImageSourceQt.cpp \
- platform/graphics/qt/IntPointQt.cpp \
- platform/graphics/qt/IntRectQt.cpp \
- platform/graphics/qt/IntSizeQt.cpp \
- platform/graphics/qt/PathQt.cpp \
- platform/network/qt/ResourceHandleQt.cpp \
- editing/qt/EditorQt.cpp \
- history/qt/CachedPageQt.cpp \
- platform/qt/ClipboardQt.cpp \
- platform/qt/ContextMenuItemQt.cpp \
- platform/qt/ContextMenuQt.cpp \
- platform/qt/CookieJarQt.cpp \
- platform/qt/CursorQt.cpp \
- platform/qt/DragDataQt.cpp \
- platform/qt/DragImageQt.cpp \
- platform/qt/FileChooserQt.cpp \
- platform/qt/FileSystemQt.cpp \
- platform/qt/FontQt.cpp \
- platform/qt/Localizations.cpp \
- platform/qt/MIMETypeRegistryQt.cpp \
- platform/qt/PasteboardQt.cpp \
- platform/qt/PlatformKeyboardEventQt.cpp \
- platform/qt/PlatformMouseEventQt.cpp \
- platform/qt/PlatformScreenQt.cpp \
- platform/qt/PlatformScrollBarQt.cpp \
- platform/qt/PlugInInfoStoreQt.cpp \
- platform/qt/PopupMenuQt.cpp \
- platform/qt/QWebPopup.cpp \
- platform/qt/RenderThemeQt.cpp \
- platform/qt/ScrollViewQt.cpp \
- platform/qt/SearchPopupMenuQt.cpp \
- platform/qt/SharedTimerQt.cpp \
- platform/qt/SoundQt.cpp \
- platform/qt/StringQt.cpp \
- platform/qt/TemporaryLinkStubs.cpp \
- platform/qt/TextBoundaries.cpp \
- platform/qt/TextBreakIteratorQt.cpp \
- platform/qt/TextCodecQt.cpp \
- platform/qt/ThreadingQt.cpp \
- platform/qt/WheelEventQt.cpp \
- platform/qt/WidgetQt.cpp \
- ../WebKit/qt/WebCoreSupport/ChromeClientQt.cpp \
- ../WebKit/qt/WebCoreSupport/ContextMenuClientQt.cpp \
- ../WebKit/qt/WebCoreSupport/DragClientQt.cpp \
- ../WebKit/qt/WebCoreSupport/EditorClientQt.cpp \
- ../WebKit/qt/WebCoreSupport/EditCommandQt.cpp \
- ../WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp \
- ../WebKit/qt/WebCoreSupport/InspectorClientQt.cpp \
- ../WebKit/qt/Api/qwebframe.cpp \
- ../WebKit/qt/Api/qwebnetworkinterface.cpp \
- ../WebKit/qt/Api/qcookiejar.cpp \
- ../WebKit/qt/Api/qwebpage.cpp \
- ../WebKit/qt/Api/qwebpagehistory.cpp \
- ../WebKit/qt/Api/qwebsettings.cpp \
- ../WebKit/qt/Api/qwebobjectplugin.cpp \
- ../WebKit/qt/Api/qwebobjectpluginconnector.cpp \
- ../WebKit/qt/Api/qwebhistoryinterface.cpp
-
- unix: SOURCES += platform/qt/SystemTimeQt.cpp
- else: SOURCES += platform/win/SystemTimeWin.cpp
-}
-
-gtk-port {
- HEADERS += \
- ../WebCore/platform/gtk/ClipboardGtk.h \
- ../WebKit/gtk/Api/webkitgtkdefines.h \
- ../WebKit/gtk/Api/webkitgtkframe.h \
- ../WebKit/gtk/Api/webkitgtkglobal.h \
- ../WebKit/gtk/Api/webkitgtknetworkrequest.h \
- ../WebKit/gtk/Api/webkitgtkpage.h \
- ../WebKit/gtk/Api/webkitgtkprivate.h \
- ../WebKit/gtk/Api/webkitgtksettings.h \
- ../WebKit/gtk/WebCoreSupport/ChromeClientGtk.h \
- ../WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.h \
- ../WebKit/gtk/WebCoreSupport/DragClientGtk.h \
- ../WebKit/gtk/WebCoreSupport/EditorClientGtk.h \
- ../WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.h \
- ../WebKit/gtk/WebCoreSupport/InspectorClientGtk.h
- SOURCES += \
- platform/StringTruncator.cpp \
- platform/TextCodecICU.cpp \
- platform/TextBreakIteratorICU.cpp \
- page/gtk/EventHandlerGtk.cpp \
- page/gtk/FrameGtk.cpp \
- page/gtk/DragControllerGtk.cpp \
- loader/gtk/DocumentLoaderGtk.cpp \
- platform/gtk/ClipboardGtk.cpp \
- platform/gtk/CookieJarGtk.cpp \
- platform/gtk/CursorGtk.cpp \
- platform/gtk/ContextMenuGtk.cpp \
- platform/gtk/ContextMenuItemGtk.cpp \
- platform/gtk/DragDataGtk.cpp \
- platform/gtk/DragImageGtk.cpp \
- platform/gtk/FileChooserGtk.cpp \
- platform/gtk/FileSystemGtk.cpp \
- platform/gtk/FontCacheGtk.cpp \
- platform/gtk/FontDataGtk.cpp \
- platform/gtk/FontGtk.cpp \
- platform/gtk/FontPlatformDataGtk.cpp \
- platform/gtk/GlyphPageTreeNodeGtk.cpp \
- platform/gtk/KeyEventGtk.cpp \
- platform/gtk/LocalizedStringsGtk.cpp \
- platform/gtk/LoggingGtk.cpp \
- platform/gtk/MIMETypeRegistryGtk.cpp \
- platform/gtk/MouseEventGtk.cpp \
- platform/gtk/PasteboardGtk.cpp \
- platform/gtk/PlatformScreenGtk.cpp \
- platform/gtk/PlatformScrollBarGtk.cpp \
- platform/gtk/PopupMenuGtk.cpp \
- platform/gtk/RenderThemeGtk.cpp \
- platform/gtk/SearchPopupMenuGtk.cpp \
- platform/gtk/ScrollViewGtk.cpp \
- platform/gtk/SharedTimerLinux.cpp \
- platform/gtk/SoundGtk.cpp \
- platform/gtk/SystemTimeLinux.cpp \
- platform/gtk/TemporaryLinkStubs.cpp \
- platform/gtk/WheelEventGtk.cpp \
- platform/gtk/WidgetGtk.cpp \
- platform/graphics/gtk/IconGtk.cpp \
- platform/graphics/gtk/ImageGtk.cpp \
- platform/network/curl/ResourceHandleCurl.cpp \
- platform/network/curl/ResourceHandleManager.cpp \
- platform/graphics/cairo/AffineTransformCairo.cpp \
- platform/graphics/cairo/GraphicsContextCairo.cpp \
- platform/graphics/cairo/ImageBufferCairo.cpp \
- platform/graphics/cairo/ImageCairo.cpp \
- platform/graphics/cairo/ImageSourceCairo.cpp \
- platform/graphics/cairo/PathCairo.cpp \
- platform/image-decoders/gif/GIFImageDecoder.cpp \
- platform/image-decoders/gif/GIFImageReader.cpp \
- platform/image-decoders/png/PNGImageDecoder.cpp \
- platform/image-decoders/jpeg/JPEGImageDecoder.cpp \
- platform/image-decoders/bmp/BMPImageDecoder.cpp \
- platform/image-decoders/ico/ICOImageDecoder.cpp \
- platform/image-decoders/xbm/XBMImageDecoder.cpp \
- ../WebKit/gtk/Api/webkitgtkframe.cpp \
- ../WebKit/gtk/Api/webkitgtkglobal.cpp \
- ../WebKit/gtk/Api/webkitgtknetworkrequest.cpp \
- ../WebKit/gtk/Api/webkitgtkpage.cpp \
- ../WebKit/gtk/Api/webkitgtkprivate.cpp \
- ../WebKit/gtk/Api/webkitgtksettings.cpp \
- ../WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp \
- ../WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp \
- ../WebKit/gtk/WebCoreSupport/DragClientGtk.cpp \
- ../WebKit/gtk/WebCoreSupport/EditorClientGtk.cpp \
- ../WebKit/gtk/WebCoreSupport/FrameLoaderClientGtk.cpp \
- ../WebKit/gtk/WebCoreSupport/InspectorClientGtk.cpp
-}
-
-contains(DEFINES, ENABLE_ICONDATABASE=1) {
- qt-port: INCLUDEPATH += $$[QT_INSTALL_PREFIX]/src/3rdparty/sqlite/
- LIBS += -lsqlite3
- SOURCES += \
- loader/icon/IconDatabase.cpp \
- loader/icon/IconRecord.cpp \
- loader/icon/PageURLRecord.cpp \
- loader/icon/SQLDatabase.cpp \
- loader/icon/SQLStatement.cpp \
- loader/icon/SQLTransaction.cpp
-} else {
- SOURCES += \
- loader/icon/IconDatabaseNone.cpp
-}
-
-contains(DEFINES, ENABLE_XPATH=1) {
- FEATURE_DEFINES_JAVASCRIPT += ENABLE_XPATH=1
-
- XPATHBISON = $$PWD/xml/XPathGrammar.y
-
- IDL_BINDINGS += \
- xml/XPathNSResolver.idl \
- xml/XPathExpression.idl \
- xml/XPathResult.idl \
- xml/XPathEvaluator.idl
-}
-
-unix:!mac:CONFIG += link_pkgconfig
-
-contains(DEFINES, ENABLE_XSLT=1) {
- FEATURE_DEFINES_JAVASCRIPT += ENABLE_XSLT=1
- PKGCONFIG += libxml-2.0 libxslt
-
- macx {
- INCLUDEPATH += /usr/include/libxml2
- LIBS += -lxml2 -lxslt
- }
-
- win32-msvc* {
- LIBS += -llibxml2 -llibxslt
- }
-}
-
-contains(DEFINES, ENABLE_XBL=1) {
- FEATURE_DEFINES_JAVASCRIPT += ENABLE_XBL=1
-}
-
-contains(DEFINES, ENABLE_SVG=1) {
- FEATURE_DEFINES_JAVASCRIPT += ENABLE_SVG=1
-
- DEPENDPATH += ksvg2/css ksvg2/events ksvg2/misc ksvg2/svg platform/graphics/svg
- qt-port {
- DEPENDPATH += platform/graphics/svg/qt
- }
-
- gtk-port {
- DEPENDPATH += platform/graphics/svg/cairo
- }
-
- SVG_NAMES = $$PWD/ksvg2/svg/svgtags.in
-
- XLINK_NAMES = $$PWD/ksvg2/misc/xlinkattrs.in
-
- IDL_BINDINGS += ksvg2/events/SVGZoomEvent.idl \
- ksvg2/svg/SVGAElement.idl \
- ksvg2/svg/SVGAngle.idl \
- ksvg2/svg/SVGAnimateColorElement.idl \
- ksvg2/svg/SVGAnimatedAngle.idl \
- ksvg2/svg/SVGAnimatedBoolean.idl \
- ksvg2/svg/SVGAnimatedEnumeration.idl \
- ksvg2/svg/SVGAnimatedInteger.idl \
- ksvg2/svg/SVGAnimatedLength.idl \
- ksvg2/svg/SVGAnimatedLengthList.idl \
- ksvg2/svg/SVGAnimatedNumber.idl \
- ksvg2/svg/SVGAnimatedNumberList.idl \
- ksvg2/svg/SVGAnimatedPreserveAspectRatio.idl \
- ksvg2/svg/SVGAnimatedRect.idl \
- ksvg2/svg/SVGAnimatedString.idl \
- ksvg2/svg/SVGAnimatedTransformList.idl \
- ksvg2/svg/SVGAnimateElement.idl \
- ksvg2/svg/SVGAnimateTransformElement.idl \
- ksvg2/svg/SVGAnimationElement.idl \
- ksvg2/svg/SVGCircleElement.idl \
- ksvg2/svg/SVGClipPathElement.idl \
- ksvg2/svg/SVGColor.idl \
- ksvg2/svg/SVGComponentTransferFunctionElement.idl \
- ksvg2/svg/SVGCursorElement.idl \
- ksvg2/svg/SVGDefsElement.idl \
- ksvg2/svg/SVGDescElement.idl \
- ksvg2/svg/SVGDocument.idl \
- ksvg2/svg/SVGElement.idl \
- ksvg2/svg/SVGElementInstance.idl \
- ksvg2/svg/SVGElementInstanceList.idl \
- ksvg2/svg/SVGEllipseElement.idl \
- ksvg2/svg/SVGFEBlendElement.idl \
- ksvg2/svg/SVGFEColorMatrixElement.idl \
- ksvg2/svg/SVGFEComponentTransferElement.idl \
- ksvg2/svg/SVGFECompositeElement.idl \
- ksvg2/svg/SVGFEDiffuseLightingElement.idl \
- ksvg2/svg/SVGFEDisplacementMapElement.idl \
- ksvg2/svg/SVGFEDistantLightElement.idl \
- ksvg2/svg/SVGFEFloodElement.idl \
- ksvg2/svg/SVGFEFuncAElement.idl \
- ksvg2/svg/SVGFEFuncBElement.idl \
- ksvg2/svg/SVGFEFuncGElement.idl \
- ksvg2/svg/SVGFEFuncRElement.idl \
- ksvg2/svg/SVGFEGaussianBlurElement.idl \
- ksvg2/svg/SVGFEImageElement.idl \
- ksvg2/svg/SVGFEMergeElement.idl \
- ksvg2/svg/SVGFEMergeNodeElement.idl \
- ksvg2/svg/SVGFEOffsetElement.idl \
- ksvg2/svg/SVGFEPointLightElement.idl \
- ksvg2/svg/SVGFESpecularLightingElement.idl \
- ksvg2/svg/SVGFESpotLightElement.idl \
- ksvg2/svg/SVGFETileElement.idl \
- ksvg2/svg/SVGFETurbulenceElement.idl \
- ksvg2/svg/SVGFilterElement.idl \
- ksvg2/svg/SVGForeignObjectElement.idl \
- ksvg2/svg/SVGGElement.idl \
- ksvg2/svg/SVGGradientElement.idl \
- ksvg2/svg/SVGImageElement.idl \
- ksvg2/svg/SVGLength.idl \
- ksvg2/svg/SVGLengthList.idl \
- ksvg2/svg/SVGLinearGradientElement.idl \
- ksvg2/svg/SVGLineElement.idl \
- ksvg2/svg/SVGMarkerElement.idl \
- ksvg2/svg/SVGMaskElement.idl \
- ksvg2/svg/SVGMatrix.idl \
- ksvg2/svg/SVGMetadataElement.idl \
- ksvg2/svg/SVGNumber.idl \
- ksvg2/svg/SVGNumberList.idl \
- ksvg2/svg/SVGPaint.idl \
- ksvg2/svg/SVGPathElement.idl \
- ksvg2/svg/SVGPathSegArcAbs.idl \
- ksvg2/svg/SVGPathSegArcRel.idl \
- ksvg2/svg/SVGPathSegClosePath.idl \
- ksvg2/svg/SVGPathSegCurvetoCubicAbs.idl \
- ksvg2/svg/SVGPathSegCurvetoCubicRel.idl \
- ksvg2/svg/SVGPathSegCurvetoCubicSmoothAbs.idl \
- ksvg2/svg/SVGPathSegCurvetoCubicSmoothRel.idl \
- ksvg2/svg/SVGPathSegCurvetoQuadraticAbs.idl \
- ksvg2/svg/SVGPathSegCurvetoQuadraticRel.idl \
- ksvg2/svg/SVGPathSegCurvetoQuadraticSmoothAbs.idl \
- ksvg2/svg/SVGPathSegCurvetoQuadraticSmoothRel.idl \
- ksvg2/svg/SVGPathSeg.idl \
- ksvg2/svg/SVGPathSegLinetoAbs.idl \
- ksvg2/svg/SVGPathSegLinetoHorizontalAbs.idl \
- ksvg2/svg/SVGPathSegLinetoHorizontalRel.idl \
- ksvg2/svg/SVGPathSegLinetoRel.idl \
- ksvg2/svg/SVGPathSegLinetoVerticalAbs.idl \
- ksvg2/svg/SVGPathSegLinetoVerticalRel.idl \
- ksvg2/svg/SVGPathSegList.idl \
- ksvg2/svg/SVGPathSegMovetoAbs.idl \
- ksvg2/svg/SVGPathSegMovetoRel.idl \
- ksvg2/svg/SVGPatternElement.idl \
- ksvg2/svg/SVGPoint.idl \
- ksvg2/svg/SVGPointList.idl \
- ksvg2/svg/SVGPolygonElement.idl \
- ksvg2/svg/SVGPolylineElement.idl \
- ksvg2/svg/SVGPreserveAspectRatio.idl \
- ksvg2/svg/SVGRadialGradientElement.idl \
- ksvg2/svg/SVGRectElement.idl \
- ksvg2/svg/SVGRect.idl \
- ksvg2/svg/SVGRenderingIntent.idl \
- ksvg2/svg/SVGScriptElement.idl \
- ksvg2/svg/SVGSetElement.idl \
- ksvg2/svg/SVGStopElement.idl \
- ksvg2/svg/SVGStringList.idl \
- ksvg2/svg/SVGStyleElement.idl \
- ksvg2/svg/SVGSVGElement.idl \
- ksvg2/svg/SVGSwitchElement.idl \
- ksvg2/svg/SVGSymbolElement.idl \
- ksvg2/svg/SVGTextContentElement.idl \
- ksvg2/svg/SVGTextElement.idl \
- ksvg2/svg/SVGTextPositioningElement.idl \
- ksvg2/svg/SVGTitleElement.idl \
- ksvg2/svg/SVGTransform.idl \
- ksvg2/svg/SVGTransformList.idl \
- ksvg2/svg/SVGTRefElement.idl \
- ksvg2/svg/SVGTSpanElement.idl \
- ksvg2/svg/SVGUnitTypes.idl \
- ksvg2/svg/SVGUseElement.idl \
- ksvg2/svg/SVGViewElement.idl
-
- SOURCES += \
-# TODO: this-one-is-not-auto-added! FIXME! tmp/SVGElementFactory.cpp \
- bindings/js/JSSVGElementWrapperFactory.cpp \
- bindings/js/JSSVGMatrixCustom.cpp \
- bindings/js/JSSVGPathSegCustom.cpp \
- bindings/js/JSSVGPathSegListCustom.cpp \
- bindings/js/JSSVGPointListCustom.cpp \
- ksvg2/css/SVGCSSParser.cpp \
- ksvg2/css/SVGCSSStyleSelector.cpp \
- ksvg2/css/SVGRenderStyle.cpp \
- ksvg2/css/SVGRenderStyleDefs.cpp \
- ksvg2/events/JSSVGLazyEventListener.cpp \
- ksvg2/events/SVGZoomEvent.cpp \
- ksvg2/misc/KCanvasRenderingStyle.cpp \
- ksvg2/misc/PointerEventsHitRules.cpp \
- ksvg2/misc/SVGDocumentExtensions.cpp \
- ksvg2/misc/SVGImageLoader.cpp \
- ksvg2/misc/SVGTimer.cpp \
- ksvg2/misc/TimeScheduler.cpp \
- ksvg2/svg/ColorDistance.cpp \
- ksvg2/svg/SVGAElement.cpp \
- ksvg2/svg/SVGAngle.cpp \
- ksvg2/svg/SVGAnimateColorElement.cpp \
- ksvg2/svg/SVGAnimatedPathData.cpp \
- ksvg2/svg/SVGAnimatedPoints.cpp \
- ksvg2/svg/SVGAnimateElement.cpp \
- ksvg2/svg/SVGAnimateMotionElement.cpp \
- ksvg2/svg/SVGAnimateTransformElement.cpp \
- ksvg2/svg/SVGAnimationElement.cpp \
- ksvg2/svg/SVGCircleElement.cpp \
- ksvg2/svg/SVGClipPathElement.cpp \
- ksvg2/svg/SVGColor.cpp \
- ksvg2/svg/SVGComponentTransferFunctionElement.cpp \
- ksvg2/svg/SVGCursorElement.cpp \
- ksvg2/svg/SVGDefsElement.cpp \
- ksvg2/svg/SVGDescElement.cpp \
- ksvg2/svg/SVGDocument.cpp \
- ksvg2/svg/SVGElement.cpp \
- ksvg2/svg/SVGElementInstance.cpp \
- ksvg2/svg/SVGElementInstanceList.cpp \
- ksvg2/svg/SVGEllipseElement.cpp \
- ksvg2/svg/SVGExternalResourcesRequired.cpp \
- ksvg2/svg/SVGFEBlendElement.cpp \
- ksvg2/svg/SVGFEColorMatrixElement.cpp \
- ksvg2/svg/SVGFEComponentTransferElement.cpp \
- ksvg2/svg/SVGFECompositeElement.cpp \
- ksvg2/svg/SVGFEDiffuseLightingElement.cpp \
- ksvg2/svg/SVGFEDisplacementMapElement.cpp \
- ksvg2/svg/SVGFEDistantLightElement.cpp \
- ksvg2/svg/SVGFEFloodElement.cpp \
- ksvg2/svg/SVGFEFuncAElement.cpp \
- ksvg2/svg/SVGFEFuncBElement.cpp \
- ksvg2/svg/SVGFEFuncGElement.cpp \
- ksvg2/svg/SVGFEFuncRElement.cpp \
- ksvg2/svg/SVGFEGaussianBlurElement.cpp \
- ksvg2/svg/SVGFEImageElement.cpp \
- ksvg2/svg/SVGFELightElement.cpp \
- ksvg2/svg/SVGFEMergeElement.cpp \
- ksvg2/svg/SVGFEMergeNodeElement.cpp \
- ksvg2/svg/SVGFEOffsetElement.cpp \
- ksvg2/svg/SVGFEPointLightElement.cpp \
- ksvg2/svg/SVGFESpecularLightingElement.cpp \
- ksvg2/svg/SVGFESpotLightElement.cpp \
- ksvg2/svg/SVGFETileElement.cpp \
- ksvg2/svg/SVGFETurbulenceElement.cpp \
- ksvg2/svg/SVGFilterElement.cpp \
- ksvg2/svg/SVGFilterPrimitiveStandardAttributes.cpp \
- ksvg2/svg/SVGFitToViewBox.cpp \
- ksvg2/svg/SVGForeignObjectElement.cpp \
- ksvg2/svg/SVGGElement.cpp \
- ksvg2/svg/SVGGradientElement.cpp \
- ksvg2/svg/SVGImageElement.cpp \
- ksvg2/svg/SVGLangSpace.cpp \
- ksvg2/svg/SVGLength.cpp \
- ksvg2/svg/SVGLengthList.cpp \
- ksvg2/svg/SVGLinearGradientElement.cpp \
- ksvg2/svg/SVGLineElement.cpp \
- ksvg2/svg/SVGLocatable.cpp \
- ksvg2/svg/SVGMarkerElement.cpp \
- ksvg2/svg/SVGMaskElement.cpp \
- ksvg2/svg/SVGMetadataElement.cpp \
- ksvg2/svg/SVGMPathElement.cpp \
- ksvg2/svg/SVGNumberList.cpp \
- ksvg2/svg/SVGPaint.cpp \
- ksvg2/svg/SVGParserUtilities.cpp \
- ksvg2/svg/SVGPathElement.cpp \
- ksvg2/svg/SVGPathSegArc.cpp \
- ksvg2/svg/SVGPathSegClosePath.cpp \
- ksvg2/svg/SVGPathSegCurvetoCubic.cpp \
- ksvg2/svg/SVGPathSegCurvetoCubicSmooth.cpp \
- ksvg2/svg/SVGPathSegCurvetoQuadratic.cpp \
- ksvg2/svg/SVGPathSegCurvetoQuadraticSmooth.cpp \
- ksvg2/svg/SVGPathSegLineto.cpp \
- ksvg2/svg/SVGPathSegLinetoHorizontal.cpp \
- ksvg2/svg/SVGPathSegLinetoVertical.cpp \
- ksvg2/svg/SVGPathSegList.cpp \
- ksvg2/svg/SVGPathSegMoveto.cpp \
- ksvg2/svg/SVGPatternElement.cpp \
- ksvg2/svg/SVGPointList.cpp \
- ksvg2/svg/SVGPolyElement.cpp \
- ksvg2/svg/SVGPolygonElement.cpp \
- ksvg2/svg/SVGPolylineElement.cpp \
- ksvg2/svg/SVGPreserveAspectRatio.cpp \
- ksvg2/svg/SVGRadialGradientElement.cpp \
- ksvg2/svg/SVGRectElement.cpp \
- ksvg2/svg/SVGScriptElement.cpp \
- ksvg2/svg/SVGSetElement.cpp \
- ksvg2/svg/SVGStopElement.cpp \
- ksvg2/svg/SVGStringList.cpp \
- ksvg2/svg/SVGStylable.cpp \
- ksvg2/svg/SVGStyledElement.cpp \
- ksvg2/svg/SVGStyledLocatableElement.cpp \
- ksvg2/svg/SVGStyledTransformableElement.cpp \
- ksvg2/svg/SVGStyleElement.cpp \
- ksvg2/svg/SVGSVGElement.cpp \
- ksvg2/svg/SVGSwitchElement.cpp \
- ksvg2/svg/SVGSymbolElement.cpp \
- ksvg2/svg/SVGTests.cpp \
- ksvg2/svg/SVGTextContentElement.cpp \
- ksvg2/svg/SVGTextElement.cpp \
- ksvg2/svg/SVGTextPositioningElement.cpp \
- ksvg2/svg/SVGTitleElement.cpp \
- ksvg2/svg/SVGTransformable.cpp \
- ksvg2/svg/SVGTransform.cpp \
- ksvg2/svg/SVGTransformDistance.cpp \
- ksvg2/svg/SVGTransformList.cpp \
- ksvg2/svg/SVGTRefElement.cpp \
- ksvg2/svg/SVGTSpanElement.cpp \
- ksvg2/svg/SVGURIReference.cpp \
- ksvg2/svg/SVGUseElement.cpp \
- ksvg2/svg/SVGViewElement.cpp \
- ksvg2/svg/SVGZoomAndPan.cpp \
- platform/graphics/svg/filters/SVGFEBlend.cpp \
- platform/graphics/svg/filters/SVGFEColorMatrix.cpp \
- platform/graphics/svg/filters/SVGFEComponentTransfer.cpp \
- platform/graphics/svg/filters/SVGFEComposite.cpp \
- platform/graphics/svg/filters/SVGFEConvolveMatrix.cpp \
- platform/graphics/svg/filters/SVGFEDiffuseLighting.cpp \
- platform/graphics/svg/filters/SVGFEDisplacementMap.cpp \
- platform/graphics/svg/filters/SVGFEFlood.cpp \
- platform/graphics/svg/filters/SVGFEGaussianBlur.cpp \
- platform/graphics/svg/filters/SVGFEImage.cpp \
- platform/graphics/svg/filters/SVGFEMerge.cpp \
- platform/graphics/svg/filters/SVGFEMorphology.cpp \
- platform/graphics/svg/filters/SVGFEOffset.cpp \
- platform/graphics/svg/filters/SVGFESpecularLighting.cpp \
- platform/graphics/svg/filters/SVGFETurbulence.cpp \
- platform/graphics/svg/filters/SVGFilterEffect.cpp \
- platform/graphics/svg/filters/SVGLightSource.cpp \
- platform/graphics/svg/SVGImage.cpp \
- platform/graphics/svg/SVGPaintServer.cpp \
- platform/graphics/svg/SVGPaintServerGradient.cpp \
- platform/graphics/svg/SVGPaintServerLinearGradient.cpp \
- platform/graphics/svg/SVGPaintServerPattern.cpp \
- platform/graphics/svg/SVGPaintServerRadialGradient.cpp \
- platform/graphics/svg/SVGPaintServerSolid.cpp \
- platform/graphics/svg/SVGResourceClipper.cpp \
- platform/graphics/svg/SVGResource.cpp \
- platform/graphics/svg/SVGResourceFilter.cpp \
- platform/graphics/svg/SVGResourceMarker.cpp \
- platform/graphics/svg/SVGResourceMasker.cpp \
- rendering/RenderForeignObject.cpp \
- rendering/RenderPath.cpp \
- rendering/RenderSVGBlock.cpp \
- rendering/RenderSVGContainer.cpp \
- rendering/RenderSVGGradientStop.cpp \
- rendering/RenderSVGHiddenContainer.cpp \
- rendering/RenderSVGImage.cpp \
- rendering/RenderSVGInline.cpp \
- rendering/RenderSVGInlineText.cpp \
- rendering/RenderSVGText.cpp \
- rendering/RenderSVGTSpan.cpp \
- rendering/SVGInlineFlowBox.cpp \
- rendering/SVGInlineTextBox.cpp \
- rendering/SVGRootInlineBox.cpp
-
-qt-port:SOURCES += \
- platform/graphics/svg/qt/RenderPathQt.cpp \
- platform/graphics/svg/qt/SVGPaintServerGradientQt.cpp \
- platform/graphics/svg/qt/SVGPaintServerLinearGradientQt.cpp \
- platform/graphics/svg/qt/SVGPaintServerPatternQt.cpp \
- platform/graphics/svg/qt/SVGPaintServerQt.cpp \
- platform/graphics/svg/qt/SVGPaintServerRadialGradientQt.cpp \
- platform/graphics/svg/qt/SVGPaintServerSolidQt.cpp \
- platform/graphics/svg/qt/SVGResourceClipperQt.cpp \
- platform/graphics/svg/qt/SVGResourceFilterQt.cpp \
- platform/graphics/svg/qt/SVGResourceMaskerQt.cpp
-
-gtk-port:SOURCES += \
- platform/graphics/svg/cairo/RenderPathCairo.cpp \
- platform/graphics/svg/cairo/SVGPaintServerCairo.cpp \
- platform/graphics/svg/cairo/SVGPaintServerGradientCairo.cpp \
- platform/graphics/svg/cairo/SVGPaintServerPatternCairo.cpp \
- platform/graphics/svg/cairo/SVGPaintServerSolidCairo.cpp \
- platform/graphics/svg/cairo/SVGResourceClipperCairo.cpp \
- platform/graphics/svg/cairo/SVGResourceMaskerCairo.cpp
-
- # GENERATOR 5-C:
- svgnames_a.output = tmp/SVGNames.cpp
- svgnames_a.commands = perl $$PWD/ksvg2/scripts/make_names.pl --tags $$PWD/ksvg2/svg/svgtags.in --attrs $$PWD/ksvg2/svg/svgattrs.in --namespace SVG --cppNamespace WebCore --namespaceURI 'http://www.w3.org/2000/svg' --factory --attrsNullNamespace --preprocessor \"$${QMAKE_MOC} -E\" --output tmp
- svgnames_a.input = SVG_NAMES
- svgnames_a.dependency_type = TYPE_C
- svgnames_a.CONFIG = target_predeps
- svgnames_a.variable_out = GENERATED_SOURCES
- svgnames_a.clean = ${QMAKE_FILE_OUT} tmp/SVGNames.h
- QMAKE_EXTRA_COMPILERS += svgnames_a
- svgnames_b.output = tmp/SVGElementFactory.cpp
- svgnames_b.commands = @echo -n ''
- svgnames_b.input = SVG_NAMES
- svgnames_b.depends = tmp/SVGNames.cpp
- svgnames_b.CONFIG = target_predeps
- svgnames_b.variable_out = GENERATED_SOURCES
- svgnames_b.clean += tmp/SVGElementFactory.h ${QMAKE_FILE_OUT}
- QMAKE_EXTRA_COMPILERS += svgnames_b
-
- # GENERATOR 5-D:
- xlinknames.output = tmp/XLinkNames.cpp
- xlinknames.commands = perl $$PWD/ksvg2/scripts/make_names.pl --attrs $$PWD/ksvg2/misc/xlinkattrs.in --namespace XLink --cppNamespace WebCore --namespaceURI 'http://www.w3.org/1999/xlink' --preprocessor \"$${QMAKE_MOC} -E\" --output tmp
- xlinknames.input = XLINK_NAMES
- xlinknames.dependency_type = TYPE_C
- xlinknames.CONFIG = target_predeps
- xlinknames.variable_out = GENERATED_SOURCES
- xlinknames.clean = ${QMAKE_FILE_OUT} tmp/XLinkNames.h
- QMAKE_EXTRA_COMPILERS += xlinknames
-}
-
-
-# GENERATOR 1: IDL compiler
-idl.output = tmp/JS${QMAKE_FILE_BASE}.cpp
-idl.variable_out = GENERATED_SOURCES
-idl.input = IDL_BINDINGS
-idl.commands = perl -I$$PWD/bindings/scripts $$PWD/bindings/scripts/generate-bindings.pl --defines \"$${FEATURE_DEFINES_JAVASCRIPT}\" --generator JS --include $$PWD/dom --include $$PWD/html --include $$PWD/xml --include $$PWD/ksvg2/svg --outputdir tmp --preprocessor \"$${QMAKE_MOC} -E\" ${QMAKE_FILE_NAME}
-idl.CONFIG += target_predeps
-idl.clean = tmp/JS${QMAKE_FILE_BASE}.h ${QMAKE_FILE_OUT}
-QMAKE_EXTRA_COMPILERS += idl
-
-# GENERATOR 2-A: LUT creator
-#lut.output = tmp/${QMAKE_FILE_BASE}.lut.h
-#lut.commands = perl $$PWD/../JavaScriptCore/kjs/create_hash_table ${QMAKE_FILE_NAME} -i > ${QMAKE_FILE_OUT}
-#lut.depend = ${QMAKE_FILE_NAME}
-#lut.input = LUT_FILES
-#lut.CONFIG += no_link
-#QMAKE_EXTRA_COMPILERS += lut
-
-# GENERATOR 2-B: like JavaScriptCore/LUT Generator, but rename output
-luttable.output = tmp/${QMAKE_FILE_BASE}Table.cpp
-luttable.commands = perl $$PWD/../JavaScriptCore/kjs/create_hash_table ${QMAKE_FILE_NAME} -i > ${QMAKE_FILE_OUT}
-luttable.depend = ${QMAKE_FILE_NAME}
-luttable.input = LUT_TABLE_FILES
-luttable.CONFIG += no_link
-luttable.dependency_type = TYPE_C
-QMAKE_EXTRA_COMPILERS += luttable
-
-# GENERATOR 3: tokenizer (flex)
-tokenizer.output = tmp/${QMAKE_FILE_BASE}.cpp
-tokenizer.commands = flex -t < ${QMAKE_FILE_NAME} | perl $$PWD/css/maketokenizer > ${QMAKE_FILE_OUT}
-tokenizer.dependency_type = TYPE_C
-tokenizer.input = TOKENIZER
-tokenizer.CONFIG += target_predeps no_link
-QMAKE_EXTRA_COMPILERS += tokenizer
-
-# GENERATOR 4: CSS grammar
-cssbison.output = tmp/${QMAKE_FILE_BASE}.cpp
-cssbison.commands = perl $$PWD/css/makegrammar.pl ${QMAKE_FILE_NAME} tmp/${QMAKE_FILE_BASE}
-cssbison.depend = ${QMAKE_FILE_NAME}
-cssbison.input = CSSBISON
-cssbison.CONFIG = target_predeps
-cssbison.dependency_type = TYPE_C
-cssbison.variable_out = GENERATED_SOURCES
-cssbison.clean = ${QMAKE_FILE_OUT} tmp/${QMAKE_FILE_BASE}.h
-QMAKE_EXTRA_COMPILERS += cssbison
-#PRE_TARGETDEPS += tmp/CSSGrammar.cpp
-grammar_h_dep.target = tmp/CSSParser.o
-grammar_h_dep.depends = tmp/CSSGrammar.cpp tmp/HTMLNames.cpp
-QMAKE_EXTRA_TARGETS += grammar_h_dep
-
-# GENERATOR 5-A:
-htmlnames.output = tmp/HTMLNames.cpp
-htmlnames.commands = perl $$PWD/ksvg2/scripts/make_names.pl --tags $$PWD/html/HTMLTagNames.in --attrs $$PWD/html/HTMLAttributeNames.in --namespace HTML --namespacePrefix xhtml --cppNamespace WebCore --namespaceURI 'http://www.w3.org/1999/xhtml' --attrsNullNamespace --preprocessor \"$${QMAKE_MOC} -E\" --output tmp
-htmlnames.input = HTML_NAMES
-htmlnames.dependency_type = TYPE_C
-htmlnames.CONFIG = target_predeps
-htmlnames.variable_out = GENERATED_SOURCES
-htmlnames.clean = ${QMAKE_FILE_OUT} tmp/HTMLNames.h
-QMAKE_EXTRA_COMPILERS += htmlnames
-
-# GENERATOR 5-B:
-xmlnames.output = tmp/XMLNames.cpp
-xmlnames.commands = perl $$PWD/ksvg2/scripts/make_names.pl --attrs $$PWD/xml/xmlattrs.in --namespace XML --cppNamespace WebCore --namespaceURI 'http://www.w3.org/XML/1998/namespace' --preprocessor \"$${QMAKE_MOC} -E\" --output tmp
-xmlnames.input = XML_NAMES
-xmlnames.dependency_type = TYPE_C
-xmlnames.CONFIG = target_predeps
-xmlnames.variable_out = GENERATED_SOURCES
-xmlnames.clean = ${QMAKE_FILE_OUT} tmp/XMLNames.h
-QMAKE_EXTRA_COMPILERS += xmlnames
-
-# GENERATOR 6-A:
-cssprops.output = tmp/CSSPropertyNames.c
-cssprops.input = WALDOCSSPROPS
-cssprops.commands = $(COPY_FILE) ${QMAKE_FILE_NAME} tmp && cd tmp && perl $$PWD/css/makeprop.pl && $(DEL_FILE) ${QMAKE_FILE_BASE}.strip ${QMAKE_FILE_BASE}.in ${QMAKE_FILE_BASE}.gperf
-cssprops.CONFIG = target_predeps no_link
-cssprops.clean = ${QMAKE_FILE_OUT} tmp/CSSPropertyNames.h
-QMAKE_EXTRA_COMPILERS += cssprops
-
-# GENERATOR 6-B:
-cssvalues.output = tmp/CSSValueKeywords.c
-cssvalues.input = WALDOCSSVALUES
-cssvalues.commands = $(COPY_FILE) ${QMAKE_FILE_NAME} tmp && cd tmp && perl $$PWD/css/makevalues.pl && $(DEL_FILE) CSSValueKeywords.in CSSValueKeywords.strip CSSValueKeywords.gperf
-cssvalues.CONFIG = target_predeps no_link
-cssvalues.clean = ${QMAKE_FILE_OUT} tmp/CSSValueKeywords.h
-QMAKE_EXTRA_COMPILERS += cssvalues
-
-# GENERATOR 7-A:
-svgcssproperties.output = tmp/ksvgcssproperties.h
-svgcssproperties.input = SVGCSSPROPERTIES
-svgcssproperties.commands = $(COPY_FILE) ${QMAKE_FILE_IN} ${QMAKE_VAR_OBJECTS_DIR_WTR}ksvgcssproperties.in && cd tmp && perl $$PWD/ksvg2/scripts/cssmakeprops -n SVG -f ksvgcssproperties.in && $(DEL_FILE) ksvgcssproperties.in ksvgcssproperties.gperf
-svgcssproperties.CONFIG = target_predeps no_link
-svgcssproperties.clean = ${QMAKE_FILE_OUT} tmp/ksvgcssproperties.c
-QMAKE_EXTRA_COMPILERS += svgcssproperties
-
-# GENERATOR 7-B:
-svgcssvalues.output = tmp/ksvgcssvalues.h
-svgcssvalues.input = SVGCSSVALUES
-svgcssvalues.commands = perl -ne \"print lc\" $$PWD/ksvg2/css/CSSValueKeywords.in > tmp/ksvgcssvalues.in && cd tmp && perl $$PWD/ksvg2/scripts/cssmakevalues -n SVG -f ksvgcssvalues.in && $(DEL_FILE) ksvgcssvalues.in ksvgcssvalues.gperf
-svgcssvalues.CONFIG = target_predeps no_link
-svgcssvalues.clean = ${QMAKE_FILE_OUT} tmp/ksvgcssvalues.c tmp/CSSValueKeywords.h
-QMAKE_EXTRA_COMPILERS += svgcssvalues
-
-# GENERATOR 8-A:
-entities.output = tmp/HTMLEntityNames.c
-entities.commands = gperf -a -L ANSI-C -C -G -c -o -t --key-positions="*" -N findEntity -D -s 2 < $$PWD/html/HTMLEntityNames.gperf > tmp/HTMLEntityNames.c
-entities.input = ENTITIES_GPERF
-entities.dependency_type = TYPE_C
-entities.CONFIG = target_predeps no_link
-entities.clean = ${QMAKE_FILE_OUT}
-QMAKE_EXTRA_COMPILERS += entities
-
-# GENERATOR 8-B:
-doctypestrings.output = tmp/${QMAKE_FILE_BASE}.cpp
-doctypestrings.input = DOCTYPESTRINGS
-doctypestrings.commands = perl -e \"print \'$${LITERAL_HASH}include <string.h>\';\" > ${QMAKE_FILE_OUT} && echo // bogus >> ${QMAKE_FILE_OUT} && gperf -CEot -L ANSI-C --key-positions="*" -N findDoctypeEntry -F ,PubIDInfo::eAlmostStandards,PubIDInfo::eAlmostStandards < ${QMAKE_FILE_NAME} >> ${QMAKE_FILE_OUT}
-doctypestrings.dependency_type = TYPE_C
-doctypestrings.CONFIG += target_predeps no_link
-doctypestrings.clean = ${QMAKE_FILE_OUT}
-QMAKE_EXTRA_COMPILERS += doctypestrings
-
-# GENERATOR 8-C:
-colordata.output = tmp/ColorData.c
-colordata.commands = perl -e \"print \'$${LITERAL_HASH}include <string.h>\';\" > ${QMAKE_FILE_OUT} && echo // bogus >> ${QMAKE_FILE_OUT} && gperf -CDEot -L ANSI-C --key-positions="*" -N findColor -D -s 2 < ${QMAKE_FILE_NAME} >> ${QMAKE_FILE_OUT}
-colordata.input = COLORDAT_GPERF
-colordata.CONFIG = target_predeps no_link
-QMAKE_EXTRA_COMPILERS += colordata
-
-# GENERATOR 9:
-stylesheets.output = tmp/UserAgentStyleSheetsData.cpp
-stylesheets.commands = perl $$PWD/css/make-css-file-arrays.pl --preprocessor \"$${QMAKE_MOC} -E\" tmp/UserAgentStyleSheets.h tmp/UserAgentStyleSheetsData.cpp $$PWD/css/html4.css $$PWD/css/quirks.css $$PWD/css/svg.css $$PWD/css/view-source.css
-stylesheets.input = STYLESHEETS_EMBED
-stylesheets.CONFIG = target_predeps
-stylesheets.variable_out = GENERATED_SOURCES
-stylesheets.clean = ${QMAKE_FILE_OUT} tmp/UserAgentStyleSheets.h
-QMAKE_EXTRA_COMPILERS += stylesheets
-
-# GENERATOR 10: XPATH grammar
-xpathbison.output = tmp/${QMAKE_FILE_BASE}.cpp
-xpathbison.commands = bison -d -p xpathyy ${QMAKE_FILE_NAME} -o ${QMAKE_FILE_BASE}.tab.c && $(MOVE) ${QMAKE_FILE_BASE}.tab.c tmp/${QMAKE_FILE_BASE}.cpp && $(MOVE) ${QMAKE_FILE_BASE}.tab.h tmp/${QMAKE_FILE_BASE}.h
-xpathbison.depend = ${QMAKE_FILE_NAME}
-xpathbison.input = XPATHBISON
-xpathbison.CONFIG = target_predeps
-xpathbison.dependency_type = TYPE_C
-xpathbison.variable_out = GENERATED_SOURCES
-xpathbison.clean = ${QMAKE_FILE_OUT} tmp/${QMAKE_FILE_BASE}.h
-QMAKE_EXTRA_COMPILERS += xpathbison
-
-qt-port {
- target.path = $$[QT_INSTALL_LIBS]
- include($$PWD/../WebKit/qt/Api/headers.pri)
- headers.files = $$WEBKIT_API_HEADERS
- headers.path = $$[QT_INSTALL_HEADERS]/QtWebKit
- prf.files = $$PWD/../WebKit/qt/Api/qtwebkit.prf
- prf.path = $$[QT_INSTALL_PREFIX]/mkspecs/features
-
-
- win32-* {
- DLLDESTDIR = $$OUTPUT_DIR/bin
-
- dlltarget.commands = $(COPY_FILE) $(DESTDIR)$(TARGET) $$[QT_INSTALL_BINS]
- dlltarget.CONFIG = no_path
- INSTALLS += dlltarget
- }
-
-
- INSTALLS += target headers prf
-
- unix {
- CONFIG += create_pc create_prl
- QMAKE_PKGCONFIG_LIBDIR = $$target.path
- QMAKE_PKGCONFIG_INCDIR = $$headers.path
- QMAKE_PKGCONFIG_DESTDIR = pkgconfig
- lib_replace.match = $$DESTDIR
- lib_replace.replace = $$[QT_INSTALL_LIBS]
- QMAKE_PKGCONFIG_INSTALL_REPLACE += lib_replace
- }
-}
-
-gtk-port {
- isEmpty(WEBKIT_LIB_DIR):WEBKIT_LIB_DIR=$$[QT_INSTALL_LIBS]
- isEmpty(WEBKIT_INC_DIR):WEBKIT_INC_DIR=$$[QT_INSTALL_HEADERS]/WebKitGtk
-
- target.path = $$WEBKIT_LIB_DIR
- include($$PWD/../WebKit/gtk/Api/headers.pri)
- headers.files = $$WEBKIT_API_HEADERS
- headers.path = $$WEBKIT_INC_DIR
- INSTALLS += target headers
-
- unix {
- CONFIG += create_pc create_prl
- QMAKE_PKGCONFIG_LIBDIR = $$target.path
- QMAKE_PKGCONFIG_INCDIR = $$headers.path
- QMAKE_PKGCONFIG_DESTDIR = pkgconfig
- lib_replace.match = $$DESTDIR
- lib_replace.replace = $$[QT_INSTALL_LIBS]
- QMAKE_PKGCONFIG_INSTALL_REPLACE += lib_replace
- }
-
- GENMARSHALS = ../WebKit/gtk/Api/webkitgtk-marshal.list
- GENMARSHALS_PREFIX = webkit_marshal
-
- #
- # integrate glib-genmarshal as additional compiler
- #
- QMAKE_GENMARSHAL_CC = glib-genmarshal
- glib-genmarshal.commands = $${QMAKE_GENMARSHAL_CC} --prefix=$${GENMARSHALS_PREFIX} ${QMAKE_FILE_IN} --header --body >${QMAKE_FILE_OUT}
- glib-genmarshal.output = $$OUT_PWD/${QMAKE_FILE_BASE}.h
- glib-genmarshal.input = GENMARSHALS
- glib-genmarshal.CONFIG = no_link
- glib-genmarshal.variable_out = PRE_TARGETDEPS
- glib-genmarshal.name = GENMARSHALS
- QMAKE_EXTRA_UNIX_COMPILERS += glib-genmarshal
-}
--- a/webengine/osswebengine/WebCore/bindings/js/kjs_proxy.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebCore/bindings/js/kjs_proxy.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -54,6 +54,7 @@
ASSERT(!m_script || !m_script->context());
if (m_script) {
+ ((JSDOMWindow*)m_globalObject)->clear();
m_script = 0;
// It's likely that destroying the interpreter has created a lot of garbage.
@@ -151,10 +152,10 @@
// Build the global object - which is a Window instance
JSLock lock;
- JSObject* globalObject = new JSDOMWindow(m_frame->domWindow());
-
+ m_globalObject = new JSDOMWindow(m_frame->domWindow());
+
// Create a KJS interpreter for this frame
- m_script = new ScriptInterpreter(globalObject, m_frame);
+ m_script = new ScriptInterpreter(m_globalObject, m_frame);
String userAgent = m_frame->loader()->userAgent(m_frame->document() ? m_frame->document()->URL() : KURL());
if (userAgent.find("Microsoft") >= 0 || userAgent.find("MSIE") >= 0)
--- a/webengine/osswebengine/WebCore/bindings/js/kjs_proxy.h Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebCore/bindings/js/kjs_proxy.h Fri Jul 03 15:54:40 2009 +0100
@@ -26,6 +26,8 @@
namespace KJS {
class JSValue;
class ScriptInterpreter;
+ class JSObject;
+
}
namespace WebCore {
@@ -61,6 +63,7 @@
RefPtr<KJS::ScriptInterpreter> m_script;
Frame* m_frame;
int m_handlerLineno;
+ KJS::JSObject* m_globalObject;
};
}
--- a/webengine/osswebengine/WebCore/bindings/js/symbian/kjs_console.h Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebCore/bindings/js/symbian/kjs_console.h Fri Jul 03 15:54:40 2009 +0100
@@ -91,7 +91,7 @@
{
public:
ConsoleFunc(ExecState *exec, int aFuncType);
- virtual ~ConsoleFunc() {}
+ virtual ~ConsoleFunc() {delete d;}
//From JSObject
public:
--- a/webengine/osswebengine/WebCore/css/CSSImageValue.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebCore/css/CSSImageValue.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -59,7 +59,7 @@
m_image = loader->requestImage(getStringValue());
else
// FIXME: Should find a way to make these images sit in their own memory partition, since they are user agent images.
- m_image = static_cast<CachedImage*>(cache()->requestResource(0, CachedResource::ImageResource, KURL(getStringValue().deprecatedString()), 0, 0));
+ m_image = static_cast<CachedImage*>(cache()->requestResource(0, CachedResource::ImageResource, KURL(getStringValue().deprecatedString()), String()));
if (m_image)
m_image->ref(this);
--- a/webengine/osswebengine/WebCore/css/cssstyleselector.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebCore/css/cssstyleselector.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -22,7 +22,6 @@
* Boston, MA 02110-1301, USA.
*/
-#include "config.h"
#include "CSSStyleSelector.h"
#include "CSSBorderImageValue.h"
@@ -225,6 +224,14 @@
static CSSStyleSelector::Encodedurl *currentEncodedURL = 0;
static PseudoState pseudoState;
+struct defaultStyleNACleaner {
+ ~defaultStyleNACleaner() {
+ delete CSSStyleSelector::styleNotYetAvailable;
+ CSSStyleSelector::styleNotYetAvailable = 0;
+ }
+};
+struct defaultStyleNACleaner styleNACleaner;
+
CSSStyleSelector::CSSStyleSelector(Document* doc, const String& userStyleSheet, StyleSheetList *styleSheets, bool _strictParsing)
{
init();
@@ -3626,7 +3633,15 @@
if (id == CSS_VAL_NONE)
appearance = NoAppearance;
else
+#if PLATFORM ( SYMBIAN )
+ {
+ if (id == CSS_VAL_SEARCHFIELD)
+ id = CSS_VAL_TEXTFIELD;
+#endif
appearance = EAppearance(id - CSS_VAL_CHECKBOX + 1);
+#if PLATFORM ( SYMBIAN )
+ }
+#endif
style->setAppearance(appearance);
return;
}
@@ -4990,4 +5005,46 @@
return m_selectorAttrs.contains(attrname.impl());
}
+#if PLATFORM(SYMBIAN)
+void CSSStyleSelector::deleteDefaultStyle()
+{
+ delete defaultStyle;
+ defaultStyle = 0;
+ delete defaultQuirksStyle;
+ defaultQuirksStyle = 0;
+ delete defaultPrintStyle;
+ defaultPrintStyle = 0;
+ delete defaultViewSourceStyle;
+ defaultViewSourceStyle = 0;
+
+ defaultSheet->deref();
+// delete defaultSheet;
+// defaultSheet = 0;
+
+ // styleNotYetAvailable->deref();
+ //goes to overridden delete operator but calls destructor
+ delete styleNotYetAvailable;
+ //release cell allocated because overridder delete does not do that.
+ free(styleNotYetAvailable);
+ styleNotYetAvailable = 0;
+
+ quirksSheet->deref();
+ // delete quirksSheet;
+ // quirksSheet = 0;
+
+ viewSourceSheet->deref();
+ // delete viewSourceSheet;
+ // viewSourceSheet = 0;
+
+#if ENABLE(SVG)
+ svgSheet->deref();
+ // delete svgSheet;
+ // svgSheet = 0;
+#endif
+
+ //*currentEncodedURL->deref(); //static CSSStyleSelector::Encodedurl *currentEncodedURL = 0;
+ pseudoState = PseudoUnknown;
+}
+#endif
+
} // namespace WebCore
--- a/webengine/osswebengine/WebCore/css/cssstyleselector.h Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebCore/css/cssstyleselector.h Fri Jul 03 15:54:40 2009 +0100
@@ -24,6 +24,7 @@
#ifndef CSSStyleSelector_h
#define CSSStyleSelector_h
+#include "config.h"
#include "DeprecatedString.h"
#include "RenderStyle.h"
#include <wtf/HashSet.h>
@@ -92,6 +93,11 @@
static void loadDefaultStyle();
+#if PLATFORM(SYMBIAN)
+ static void deleteDefaultStyle();
+#endif
+
+
void initElementAndPseudoState(Element* e);
void initForStyleResolve(Element* e, RenderStyle* parentStyle);
RenderStyle *styleForElement(Element*, RenderStyle* parentStyle=0, bool allowSharing=true, bool resolveForRootDefault=false);
--- a/webengine/osswebengine/WebCore/dom/Document.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebCore/dom/Document.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -253,6 +253,17 @@
DeprecatedPtrList<Document>* Document::changedDocuments = 0;
+struct cleanupChangedDocuments {
+ ~cleanupChangedDocuments() {
+ if(Document::changedDocuments)
+ {
+ delete Document::changedDocuments;
+ Document::changedDocuments = NULL;
+ }
+ }
+};
+static cleanupChangedDocuments deleteChangedDocuments;
+
// FrameView might be 0
Document::Document(DOMImplementation* impl, Frame* frame, bool isXHTML)
: ContainerNode(0)
@@ -821,10 +832,28 @@
void Document::addElementById(const AtomicString& elementId, Element* element)
{
- if (!m_elementsById.contains(elementId.impl()))
- m_elementsById.set(elementId.impl(), element);
- else
- m_duplicateIds.add(elementId.impl());
+typedef HashMap<AtomicStringImpl*, Element*>::iterator iterator;
+ if (!m_duplicateIds.contains(elementId.impl())) {
+ // Fast path. The ID is not already in m_duplicateIds, so we assume that it's
+ // also not already in m_elementsById and do an add. If that add succeeds, we're done.
+ pair<iterator, bool> addResult = m_elementsById.add(elementId.impl(), element);
+ if (addResult.second)
+ return;
+ // The add failed, so this ID was already cached in m_elementsById.
+ // There are multiple elements with this ID. Remove the m_elementsById
+ // cache for this ID so getElementById searches for it next time it is called.
+ m_elementsById.remove(addResult.first);
+ m_duplicateIds.add(elementId.impl());
+ } else {
+ // There are multiple elements with this ID. If it exists, remove the m_elementsById
+ // cache for this ID so getElementById searches for it next time it is called.
+ iterator cachedItem = m_elementsById.find(elementId.impl());
+ if (cachedItem != m_elementsById.end()) {
+ m_elementsById.remove(cachedItem);
+ m_duplicateIds.add(elementId.impl());
+ }
+ }
+ m_duplicateIds.add(elementId.impl());
}
void Document::removeElementById(const AtomicString& elementId, Element* element)
--- a/webengine/osswebengine/WebCore/dom/Element.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebCore/dom/Element.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -24,6 +24,8 @@
#include "config.h"
#include "Element.h"
+#include "Chrome.h"
+#include "ChromeClient.h"
#include "CSSStyleSelector.h"
#include "Document.h"
#include "Editor.h"
@@ -994,8 +996,9 @@
if (!supportsFocus())
return;
- if (Page* page = doc->page())
+ if (Page* page = doc->page()) {
page->focusController()->setFocusedNode(this, doc->frame());
+ }
if (!isFocusable()) {
createRareData()->m_needsFocusAppearanceUpdateSoonAfterAttach = true;
@@ -1004,6 +1007,11 @@
cancelFocusAppearanceUpdate();
updateFocusAppearance(restorePreviousSelection);
+
+ if (Page* page = doc->page()) {
+ // must be last thing we do here
+ page->chrome()->client()->focusedElementChanged(this);
+ }
}
void Element::updateFocusAppearance(bool restorePreviousSelection)
--- a/webengine/osswebengine/WebCore/dom/QualifiedName.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebCore/dom/QualifiedName.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -139,7 +139,7 @@
return;
#endif
- if (m_impl->hasOneRef())
+ if (m_impl->hasOneRef() && gNameCache )
gNameCache->remove(m_impl);
m_impl->deref();
}
@@ -173,4 +173,13 @@
}
}
+void QualifiedName::cleanup()
+{
+ if( gNameCache ) {
+ gNameCache->clear();
+ delete gNameCache;
+ gNameCache=NULL;
+ }
}
+
+}
--- a/webengine/osswebengine/WebCore/dom/QualifiedName.h Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebCore/dom/QualifiedName.h Fri Jul 03 15:54:40 2009 +0100
@@ -64,7 +64,7 @@
// Init routine for globals
static void init();
-
+ static void cleanup();
private:
void ref() { m_impl->ref(); }
--- a/webengine/osswebengine/WebCore/dom/StyledElement.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebCore/dom/StyledElement.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -67,9 +67,27 @@
//typedef HashMap<MappedAttributeKey, CSSMappedAttributeDeclaration*, MappedAttributeHash, MappedAttributeKeyTraits> MappedAttributeDecls;
typedef MappedAttributeKey* MappedAttributeKeyPtr;
typedef HashMap<MappedAttributeKeyPtr, CSSMappedAttributeDeclaration*, MappedAttributeHash, MappedAttributeKeyTraits> MappedAttributeDecls;
+typedef HashMap<MappedAttributeKeyPtr, CSSMappedAttributeDeclaration*, MappedAttributeHash, MappedAttributeKeyTraits>::iterator MappedAttributeDeclsIterator;
static MappedAttributeDecls* mappedAttributeDecls = 0;
+struct mappedAttributeCleaner {
+ ~mappedAttributeCleaner() {
+ if( mappedAttributeDecls ) {
+ MappedAttributeDeclsIterator end = mappedAttributeDecls->end();
+ for (MappedAttributeDeclsIterator it = mappedAttributeDecls->begin(); it != end; ++it)
+ {
+ MappedAttributeKey* obj = (*it).first;
+ delete obj;
+ }
+ mappedAttributeDecls->clear();
+ delete mappedAttributeDecls;
+ mappedAttributeDecls = 0;
+ }
+ }
+};
+struct mappedAttributeCleaner mappedAttribute;
+
CSSMappedAttributeDeclaration* StyledElement::getMappedAttributeDecl(MappedAttributeEntry entryType, Attribute* attr)
{
if (!mappedAttributeDecls)
--- a/webengine/osswebengine/WebCore/dom/XMLTokenizer.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebCore/dom/XMLTokenizer.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -427,9 +427,9 @@
globalDocLoader = docLoader;
}
+static bool didInit = false;
static xmlParserCtxtPtr createStringParser(xmlSAXHandlerPtr handlers, void* userData)
{
- static bool didInit = false;
if (!didInit) {
xmlInitParser();
xmlRegisterInputCallbacks(matchFunc, openFunc, readFunc, closeFunc);
@@ -445,8 +445,18 @@
xmlSwitchEncoding(parser, BOMHighByte == 0xFF ? XML_CHAR_ENCODING_UTF16LE : XML_CHAR_ENCODING_UTF16BE);
return parser;
}
+
#endif
+void XMLTokenizer::cleanupXMLStringParser()
+{
+#ifndef USE_QXMLSTREAM
+ if( didInit ) {
+ xmlCleanupParser();
+ }
+#endif
+}
+
// --------------------------------
XMLTokenizer::XMLTokenizer(Document* _doc, FrameView* _view)
--- a/webengine/osswebengine/WebCore/dom/XMLTokenizer.h Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebCore/dom/XMLTokenizer.h Fri Jul 03 15:54:40 2009 +0100
@@ -116,7 +116,8 @@
int lineNumber() const;
int columnNumber() const;
-
+
+ static void cleanupXMLStringParser();
private:
void initializeParserContext();
void setCurrentNode(Node*);
--- a/webengine/osswebengine/WebCore/html/HTMLElementFactory.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebCore/html/HTMLElementFactory.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -396,6 +396,16 @@
gFunctionMap->set(tag.localName().impl(), func);
}
+struct cleanupFuncMap {
+ ~cleanupFuncMap() {
+ if( gFunctionMap ) {
+ gFunctionMap->clear();
+ delete gFunctionMap;
+ gFunctionMap=0;
+ }
+ }
+};
+static cleanupFuncMap cleanup;
static void createFunctionMap()
{
// Create the table.
--- a/webengine/osswebengine/WebCore/html/HTMLImageLoader.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebCore/html/HTMLImageLoader.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -104,7 +104,7 @@
if (!attr.isEmpty()) {
if (m_loadManually) {
doc->docLoader()->setAutoLoadImages(false);
- newImage = new CachedImage(doc->docLoader(), parseURL(attr), false /* not for cache */);
+ newImage = new CachedImage(parseURL(attr));
newImage->setLoading(true);
newImage->setDocLoader(doc->docLoader());
doc->docLoader()->m_docResources.set(newImage->url(), newImage);
--- a/webengine/osswebengine/WebCore/html/HTMLInputElement.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebCore/html/HTMLInputElement.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -1175,7 +1175,7 @@
String key = static_cast<KeyboardEvent*>(evt)->keyIdentifier();
- if (key == "U+0020") {
+ if (key == "U+0020" || key == "U+000020") {
switch (inputType()) {
case BUTTON:
case CHECKBOX:
@@ -1206,7 +1206,6 @@
if (key == "Enter") {
switch (inputType()) {
case BUTTON:
- case CHECKBOX:
case HIDDEN:
case ISINDEX:
case PASSWORD:
@@ -1223,7 +1222,9 @@
// Simulate mouse click for enter for these types of elements.
clickElement = true;
break;
+ case CHECKBOX:
case RADIO:
+ clickElement = true;
break; // Don't do anything for enter on a radio button.
}
}
--- a/webengine/osswebengine/WebCore/loader/Cache.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebCore/loader/Cache.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -20,7 +20,6 @@
Boston, MA 02110-1301, USA.
*/
-#include "config.h"
#include "Cache.h"
#include "CachedCSSStyleSheet.h"
@@ -44,9 +43,22 @@
static const double cMinDelayBeforeLiveDecodedPrune = 1; // Seconds.
static const float cTargetPrunePercentage = .95f; // Percentage of capacity toward which we prune, to avoid immediately pruning again.
+#if PLATFORM(SYMBIAN)
+static Cache* staticCache;
+static bool staticCacheInit = false;
+#endif
+
Cache* cache()
{
+#if PLATFORM(SYMBIAN)
+ if (!staticCacheInit)
+ {
+ staticCache = new Cache;
+ staticCacheInit = true;
+ }
+#else
static Cache* staticCache = new Cache;
+#endif
return staticCache;
}
@@ -61,23 +73,23 @@
{
}
-static CachedResource* createResource(CachedResource::Type type, DocLoader* docLoader, const KURL& url, const String* charset, bool skipCanLoadCheck = false, bool sendResourceLoadCallbacks = true)
+static CachedResource* createResource(CachedResource::Type type, const KURL& url, const String& charset)
{
switch (type) {
case CachedResource::ImageResource:
// User agent images need to null check the docloader. No other resources need to.
- return new CachedImage(docLoader, url.url(), true /* for cache */);
+ return new CachedImage(url.url());
case CachedResource::CSSStyleSheet:
- return new CachedCSSStyleSheet(docLoader, url.url(), *charset, skipCanLoadCheck, sendResourceLoadCallbacks);
+ return new CachedCSSStyleSheet(url.url(), charset);
case CachedResource::Script:
- return new CachedScript(docLoader, url.url(), *charset);
+ return new CachedScript(url.url(), charset);
#if ENABLE(XSLT)
case CachedResource::XSLStyleSheet:
- return new CachedXSLStyleSheet(docLoader, url.url());
+ return new CachedXSLStyleSheet(url.url());
#endif
#if ENABLE(XBL)
case CachedResource::XBLStyleSheet:
- return new CachedXBLDocument(docLoader, url.url());
+ return new CachedXBLDocument(url.url());
#endif
default:
break;
@@ -87,9 +99,9 @@
}
#if PRELOAD_SCANNER_ENABLED
-CachedResource* Cache::requestResource(DocLoader* docLoader, CachedResource::Type type, const KURL& url, const String* charset, bool skipCanLoadCheck, bool sendResourceLoadCallbacks, bool isPreload)
+CachedResource* Cache::requestResource(DocLoader* docLoader, CachedResource::Type type, const KURL& url, const String& charset, bool isPreload)
#else
-CachedResource* Cache::requestResource(DocLoader* docLoader, CachedResource::Type type, const KURL& url, const String* charset, bool skipCanLoadCheck, bool sendResourceLoadCallbacks)
+CachedResource* Cache::requestResource(DocLoader* docLoader, CachedResource::Type type, const KURL& url, const String& charset)
#endif
{
// FIXME: Do we really need to special-case an empty URL?
@@ -105,7 +117,7 @@
if (isPreload && !resource->isPreloaded())
return 0;
#endif
- if (!skipCanLoadCheck && FrameLoader::restrictAccessToLocal() && !FrameLoader::canLoad(*resource, docLoader->doc())) {
+ if (FrameLoader::restrictAccessToLocal() && !FrameLoader::canLoad(*resource, docLoader->doc())) {
Document* doc = docLoader->doc();
if(doc)
FrameLoader::reportLocalLoadFailed(doc->page(), resource->url());
@@ -113,7 +125,7 @@
return 0;
}
} else {
- if (!skipCanLoadCheck && FrameLoader::restrictAccessToLocal() && !FrameLoader::canLoad(url, docLoader->doc())) {
+ if (FrameLoader::restrictAccessToLocal() && !FrameLoader::canLoad(url, docLoader->doc())) {
Document* doc = docLoader->doc();
#if PRELOAD_SCANNER_ENABLED
if(doc && !isPreload)
@@ -126,9 +138,14 @@
}
// The resource does not exist. Create it.
- resource = createResource(type, docLoader, url, charset, skipCanLoadCheck, sendResourceLoadCallbacks);
+ resource = createResource(type, url, charset);
ASSERT(resource);
- ASSERT(resource->inCache());
+
+ // Pretend the resource is in the cache, to prevent it from being deleted during the load() call.
+ // FIXME: CachedResource should just use normal refcounting instead.
+ resource->setInCache(true);
+ resource->load(docLoader);
+
if (!disabled()) {
m_resources.set(url.url(), resource); // The size will be added in later once the resource is loaded and calls back to us with the new size.
@@ -161,6 +178,26 @@
return resource;
}
+CachedCSSStyleSheet* Cache::requestUserCSSStyleSheet(DocLoader* docLoader, const String& url, const String& charset)
+{
+ if (CachedResource* existing = m_resources.get(url))
+ return existing->type() == CachedResource::CSSStyleSheet ? static_cast<CachedCSSStyleSheet*>(existing) : 0;
+
+ CachedCSSStyleSheet* userSheet = new CachedCSSStyleSheet(url, charset);
+
+ // Pretend the resource is in the cache, to prevent it from being deleted during the load() call.
+ // FIXME: CachedResource should just use normal refcounting instead.
+ userSheet->setInCache(true);
+ // Don't load incrementally, skip load checks, don't send resource load callbacks.
+ userSheet->load(docLoader, false, true, false);
+ if (!disabled())
+ m_resources.set(url, userSheet);
+ else
+ userSheet->setInCache(false);
+
+ return userSheet;
+}
+
CachedResource* Cache::resourceForURL(const String& url)
{
return m_resources.get(url);
@@ -302,6 +339,7 @@
// Remove from the appropriate LRU list.
removeFromLRUList(resource);
removeFromLiveDecodedResourcesList(resource);
+ removeFromLiveResourcesSize(resource);
// Notify all doc loaders that might be observing this object still that it has been
// extracted from the set of resources.
@@ -313,7 +351,8 @@
int delta = -static_cast<int>(resource->size());
if (delta)
adjustSize(resource->referenced(), delta);
- }
+ } else
+ ASSERT(m_resources.get(resource->url()) != resource);
if (resource->canDelete())
delete resource;
@@ -652,6 +691,13 @@
}
}
}
+
+void Cache::deleteStaticCache()
+{
+ delete staticCache;
+ staticCacheInit = false;
+}
+
#endif
} // namespace WebCore
--- a/webengine/osswebengine/WebCore/loader/Cache.h Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebCore/loader/Cache.h Fri Jul 03 15:54:40 2009 +0100
@@ -27,6 +27,7 @@
#ifndef Cache_h
#define Cache_h
+#include "config.h"
#include "CachePolicy.h"
#include "CachedResource.h"
#include "PlatformString.h"
@@ -39,6 +40,7 @@
namespace WebCore {
+class CachedCSSStyleSheet;
class CachedResource;
class DocLoader;
class KURL;
@@ -94,11 +96,12 @@
// Request resources from the cache. A load will be initiated and a cache object created if the object is not
// found in the cache.
#if PRELOAD_SCANNER_ENABLED
- CachedResource* requestResource(DocLoader*, CachedResource::Type, const KURL& url, const String* charset = 0, bool skipCanLoadCheck = false, bool sendResourceLoadCallbacks = true, bool isPreload = false);
+ CachedResource* requestResource(DocLoader*, CachedResource::Type, const KURL& url, const String& charset, bool isPreload = false);
#else
- CachedResource* requestResource(DocLoader*, CachedResource::Type, const KURL& url, const String* charset = 0, bool skipCanLoadCheck = false, bool sendResourceLoadCallbacks = true);
+ CachedResource* requestResource(DocLoader*, CachedResource::Type, const KURL& url, const String& charset);
#endif
+ CachedCSSStyleSheet* requestUserCSSStyleSheet(DocLoader*, const String& url, const String& charset);
// Sets the cache's memory capacities, in bytes. These will hold only approximately,
// since the decoded cost of resources like scripts and stylesheets is not known.
// - minDeadBytes: The maximum number of bytes that dead resources should consume when the cache is under pressure.
@@ -148,11 +151,24 @@
#if PLATFORM(SYMBIAN)
void clearImages();
+ static void deleteStaticCache();
#endif
private:
Cache();
+
+#if PLATFORM(SYMBIAN)
+ ~Cache() {
+ typedef HashMap<String, CachedResource*>::iterator ResourceIt;
+ ResourceIt endIt = m_resources.end();
+ for(ResourceIt it=m_resources.begin();it != endIt; ++it) {
+ CachedResource* res = (*it).second;;
+ delete res;
+ }
+ }
+#else
~Cache(); // Not implemented to make sure nobody accidentally calls delete -- WebCore does not delete singletons.
+#endif
LRUList* lruListFor(CachedResource*);
void resourceAccessed(CachedResource*);
--- a/webengine/osswebengine/WebCore/loader/CachedCSSStyleSheet.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebCore/loader/CachedCSSStyleSheet.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -37,15 +37,13 @@
namespace WebCore {
-CachedCSSStyleSheet::CachedCSSStyleSheet(DocLoader* dl, const String& url, const String& charset, bool skipCanLoadCheck, bool sendResourceLoadCallbacks)
- : CachedResource(url, CSSStyleSheet, true, sendResourceLoadCallbacks)
+CachedCSSStyleSheet::CachedCSSStyleSheet(const String& url, const String& charset)
+ : CachedResource(url, CSSStyleSheet)
, m_decoder(new TextResourceDecoder("text/css", charset))
{
// Prefer text/css but accept any type (dell.com serves a stylesheet
// as text/html; see <http://bugs.webkit.org/show_bug.cgi?id=11451>).
setAccept("text/css,*/*;q=0.1");
- cache()->loader()->load(dl, this, false, skipCanLoadCheck, sendResourceLoadCallbacks);
- m_loading = true;
}
CachedCSSStyleSheet::~CachedCSSStyleSheet()
--- a/webengine/osswebengine/WebCore/loader/CachedCSSStyleSheet.h Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebCore/loader/CachedCSSStyleSheet.h Fri Jul 03 15:54:40 2009 +0100
@@ -39,7 +39,7 @@
class CachedCSSStyleSheet : public CachedResource {
public:
- CachedCSSStyleSheet(DocLoader*, const String& URL, const String& charset, bool skipCanLoadCheck = false, bool sendResourceLoadCallbacks = true);
+ CachedCSSStyleSheet(const String& URL, const String& charset);
virtual ~CachedCSSStyleSheet();
const String& sheet() const { return m_sheet; }
--- a/webengine/osswebengine/WebCore/loader/CachedImage.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebCore/loader/CachedImage.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -48,20 +48,15 @@
namespace WebCore {
-CachedImage::CachedImage(DocLoader* docLoader, const String& url, bool forCache)
- : CachedResource(url, ImageResource, forCache)
+CachedImage::CachedImage(const String& url)
+ : CachedResource(url, ImageResource)
{
m_image = 0;
m_status = Unknown;
- if (!docLoader || docLoader->autoLoadImages()) {
- m_loading = true;
- cache()->loader()->load(docLoader, this, true);
- } else
- m_loading = false;
}
CachedImage::CachedImage(Image* image)
- : CachedResource(String(), ImageResource, false /* not for cache */)
+ : CachedResource(String(), ImageResource)
{
m_image = image;
m_status = Cached;
@@ -73,6 +68,14 @@
delete m_image;
}
+void CachedImage::load(DocLoader* docLoader)
+{
+ if (!docLoader || docLoader->autoLoadImages())
+ CachedResource::load(docLoader, true, false, true);
+ else
+ m_loading = false;
+}
+
void CachedImage::ref(CachedResourceClient* c)
{
CachedResource::ref(c);
@@ -92,10 +95,12 @@
static Image* brokenImage()
{
- static Image* brokenImage;
- if (!brokenImage)
- brokenImage = Image::loadPlatformResource("missingImage");
- return brokenImage;
+ static OwnPtr<Image*> brokenImage;
+ if (!brokenImage) {
+ brokenImage.set(Image::loadPlatformResource("missingImage"));
+ }
+ Image* ret = brokenImage.get();
+ return ret;
}
static Image* nullImage()
@@ -297,6 +302,7 @@
{
setDecodedSize(size_);
notifyObservers();
+ checkNotify();
}
void CachedImage::setMimeType(const String& mime_)
--- a/webengine/osswebengine/WebCore/loader/CachedImage.h Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebCore/loader/CachedImage.h Fri Jul 03 15:54:40 2009 +0100
@@ -38,10 +38,12 @@
friend class Cache;
public:
- CachedImage(DocLoader*, const String& url, bool forCache);
+ CachedImage(const String& url);
CachedImage(Image*);
virtual ~CachedImage();
+ virtual void load(DocLoader* docLoader);
+
Image* image() const;
bool canRender() const { return !errorOccurred() && imageSize().width() > 0 && imageSize().height() > 0; }
--- a/webengine/osswebengine/WebCore/loader/CachedResource.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebCore/loader/CachedResource.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -35,15 +35,16 @@
namespace WebCore {
-CachedResource::CachedResource(const String& URL, Type type, bool forCache, bool sendResourceLoadCallbacks)
+CachedResource::CachedResource(const String& URL, Type type)
: m_lastDecodedAccessTime(0)
- , m_sendResourceLoadCallbacks(sendResourceLoadCallbacks)
+ , m_sendResourceLoadCallbacks(true)
#if PRELOAD_SCANNER_ENABLED
, m_preloadCount(0)
, m_preloadResult(PreloadNotReferenced)
, m_requestedFromNetworkingLayer(false)
#endif
- , m_inCache(forCache)
+ , m_inCache(false)
+ , m_loading(false)
, m_docLoader(0)
{
m_url = URL;
@@ -74,6 +75,7 @@
{
ASSERT(!inCache());
ASSERT(!m_deleted);
+ ASSERT(cache()->resourceForURL(url()) != this);
#ifndef NDEBUG
m_deleted = true;
#endif
@@ -82,6 +84,13 @@
m_docLoader->removeCachedResource(this);
}
+void CachedResource::load(DocLoader* docLoader, bool incremental, bool skipCanLoadCheck, bool sendResourceLoadCallbacks)
+{
+ m_sendResourceLoadCallbacks = sendResourceLoadCallbacks;
+ cache()->loader()->load(docLoader, this, incremental, skipCanLoadCheck, sendResourceLoadCallbacks);
+ m_loading = true;
+}
+
void CachedResource::finish()
{
m_status = Cached;
--- a/webengine/osswebengine/WebCore/loader/CachedResource.h Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebCore/loader/CachedResource.h Fri Jul 03 15:54:40 2009 +0100
@@ -34,6 +34,7 @@
class Cache;
class CachedResourceClient;
+class CacheHandleBase;
class DocLoader;
class Request;
@@ -64,8 +65,10 @@
Cached // regular case
};
- CachedResource(const String& URL, Type, bool forCache = true, bool sendResourceLoadCallbacks = false);
+ CachedResource(const String& URL, Type);
virtual ~CachedResource();
+ virtual void load(DocLoader* docLoader) { load(docLoader, false, false, true); }
+ void load(DocLoader*, bool incremental, bool skipCanLoadCheck, bool sendResourceLoadCallbacks);
virtual void setEncoding(const String&) { }
virtual void data(PassRefPtr<SharedBuffer> data, bool allDataReceived) = 0;
@@ -87,7 +90,7 @@
PreloadResult preloadResult() const { return m_preloadResult; }
void setRequestedFromNetworkingLayer() { m_requestedFromNetworkingLayer = true; }
#endif
- virtual void allReferencesRemoved() {};
+ virtual void allReferencesRemoved() {}
unsigned count() const { return m_clients.size(); }
@@ -144,7 +147,7 @@
bool treatAsLocal() const { return m_shouldTreatAsLocal; }
bool sendResourceLoadCallbacks() const { return m_sendResourceLoadCallbacks; }
- virtual void destroyDecodedData() {};
+ virtual void destroyDecodedData() {}
void setDocLoader(DocLoader* docLoader) { m_docLoader = docLoader; }
#if PRELOAD_SCANNER_ENABLED
--- a/webengine/osswebengine/WebCore/loader/CachedScript.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebCore/loader/CachedScript.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -37,23 +37,24 @@
namespace WebCore {
-CachedScript::CachedScript(DocLoader* dl, const String& url, const String& charset)
+CachedScript::CachedScript(const String& url, const String& charset)
: CachedResource(url, Script)
, m_encoding(charset)
+ , m_decodedDataDeletionTimer(this, &CachedScript::decodedDataDeletionTimerFired)
{
// It's javascript we want.
// But some websites think their scripts are <some wrong mimetype here>
// and refuse to serve them if we only accept application/x-javascript.
setAccept("*/*");
- // load the file
- cache()->loader()->load(dl, this, false);
- m_loading = true;
+
if (!m_encoding.isValid())
m_encoding = Latin1Encoding();
}
CachedScript::~CachedScript()
{
+ destroyDecodedData();
+ m_decodedDataDeletionTimer.stop();
}
void CachedScript::ref(CachedResourceClient* c)
@@ -70,15 +71,25 @@
m_encoding = encoding;
}
+void CachedScript::allReferencesRemoved()
+{
+ destroyDecodedData();
+}
+
+const String& CachedScript::script()
+{
+ if (!m_script && m_data) {
+ m_script = m_encoding.decode(m_data->data(), encodedSize());
+ setDecodedSize(m_script.length() * sizeof(UChar));
+ }
+ m_decodedDataDeletionTimer.startOneShot(0);
+ return m_script;
+}
+
void CachedScript::data(PassRefPtr<SharedBuffer> data, bool allDataReceived)
{
- if (!allDataReceived)
- return;
-
m_data = data;
setEncodedSize(m_data.get() ? m_data->size() : 0);
- if (m_data.get())
- m_script = m_encoding.decode(m_data->data(), encodedSize());
m_loading = false;
checkNotify();
}
@@ -100,4 +111,15 @@
checkNotify();
}
+void CachedScript::destroyDecodedData()
+{
+ m_script = String();
+ setDecodedSize(0);
}
+
+void CachedScript::decodedDataDeletionTimerFired(Timer<CachedScript>*)
+{
+ destroyDecodedData();
+}
+
+}
--- a/webengine/osswebengine/WebCore/loader/CachedScript.h Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebCore/loader/CachedScript.h Fri Jul 03 15:54:40 2009 +0100
@@ -30,6 +30,7 @@
#include "CachedResource.h"
#include "TextEncoding.h"
+#include "Timer.h"
namespace WebCore {
@@ -37,12 +38,13 @@
class CachedScript : public CachedResource {
public:
- CachedScript(DocLoader*, const String& URL, const String& charset);
+ CachedScript(const String& url, const String& charset);
virtual ~CachedScript();
- const String& script() const { return m_script; }
+ const String& script();
virtual void ref(CachedResourceClient*);
+ virtual void allReferencesRemoved();
virtual void setEncoding(const String&);
virtual void data(PassRefPtr<SharedBuffer> data, bool allDataReceived);
@@ -51,10 +53,13 @@
virtual bool schedule() const { return false; }
void checkNotify();
+ virtual void destroyDecodedData();
private:
+ void decodedDataDeletionTimerFired(Timer<CachedScript>*);
String m_script;
TextEncoding m_encoding;
+ Timer<CachedScript> m_decodedDataDeletionTimer;
};
}
--- a/webengine/osswebengine/WebCore/loader/CachedXBLDocument.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebCore/loader/CachedXBLDocument.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -40,15 +40,12 @@
namespace WebCore {
-CachedXBLDocument::CachedXBLDocument(DocLoader* dl, const String &url)
+CachedXBLDocument::CachedXBLDocument(const String &url)
: CachedResource(url, XBL), m_document(0)
{
// It's XML we want.
setAccept("text/xml, application/xml, application/xhtml+xml, text/xsl, application/rss+xml, application/atom+xml");
- // Load the file
- Cache::loader()->load(dl, this, false);
- m_loading = true;
m_decoder = new TextResourceDecoder("application/xml");
}
--- a/webengine/osswebengine/WebCore/loader/CachedXBLDocument.h Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebCore/loader/CachedXBLDocument.h Fri Jul 03 15:54:40 2009 +0100
@@ -41,7 +41,7 @@
#if ENABLE(XBL)
class CachedXBLDocument : public CachedResource {
public:
- CachedXBLDocument(DocLoader*, const String& url);
+ CachedXBLDocument(const String& url);
virtual ~CachedXBLDocument();
XBL::XBLDocument* document() const { return m_document; }
--- a/webengine/osswebengine/WebCore/loader/DocLoader.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebCore/loader/DocLoader.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -62,6 +62,7 @@
for (HashMap<String, CachedResource*>::iterator it = m_docResources.begin(); it != end; ++it)
it->second->setDocLoader(0);
m_cache->removeDocLoader(this);
+ m_reloadedURLs.clear();
}
void DocLoader::checkForReload(const KURL& fullURL)
@@ -99,7 +100,7 @@
CachedImage* DocLoader::requestImage(const String& url)
{
- CachedImage* resource = static_cast<CachedImage*>(requestResource(CachedResource::ImageResource, url));
+ CachedImage* resource = static_cast<CachedImage*>(requestResource(CachedResource::ImageResource, url, String()));
if (autoLoadImages() && resource && resource->stillNeedsLoad()) {
resource->setLoading(true);
cache()->loader()->load(this, resource, true);
@@ -107,50 +108,39 @@
return resource;
}
-CachedCSSStyleSheet* DocLoader::requestCSSStyleSheet(const String& url, const String& charset, bool isUserStyleSheet)
+CachedCSSStyleSheet* DocLoader::requestCSSStyleSheet(const String& url, const String& charset)
{
- // FIXME: Passing true for "skipCanLoadCheck" here in the isUserStyleSheet case won't have any effect
- // if this resource is already in the cache. It's theoretically possible that what's in the cache already
- // is a load that failed because of the canLoad check. Probably not an issue in practice.
- CachedCSSStyleSheet *sheet = static_cast<CachedCSSStyleSheet*>(requestResource(CachedResource::CSSStyleSheet, url, &charset, isUserStyleSheet, !isUserStyleSheet));
-
- // A user style sheet can outlive its DocLoader so don't store any pointers to it
- if (sheet && isUserStyleSheet) {
- sheet->setDocLoader(0);
- m_docResources.remove(sheet->url());
- }
-
- return sheet;
+ return static_cast<CachedCSSStyleSheet*>(requestResource(CachedResource::CSSStyleSheet, url, charset));
}
CachedCSSStyleSheet* DocLoader::requestUserCSSStyleSheet(const String& url, const String& charset)
{
- return requestCSSStyleSheet(url, charset, true);
+ return cache()->requestUserCSSStyleSheet(this, url, charset);
}
CachedScript* DocLoader::requestScript(const String& url, const String& charset)
{
- return static_cast<CachedScript*>(requestResource(CachedResource::Script, url, &charset));
+ return static_cast<CachedScript*>(requestResource(CachedResource::Script, url, charset));
}
#if ENABLE(XSLT)
CachedXSLStyleSheet* DocLoader::requestXSLStyleSheet(const String& url)
{
- return static_cast<CachedXSLStyleSheet*>(requestResource(CachedResource::XSLStyleSheet, url));
+ return static_cast<CachedXSLStyleSheet*>(requestResource(CachedResource::XSLStyleSheet, url, String()));
}
#endif
#if ENABLE(XBL)
CachedXBLDocument* DocLoader::requestXBLDocument(const String& url)
{
- return static_cast<CachedXSLStyleSheet*>(requestResource(CachedResource::XBL, url));
+ return static_cast<CachedXSLStyleSheet*>(requestResource(CachedResource::XBL, url, String()));
}
#endif
#if PRELOAD_SCANNER_ENABLED
-CachedResource* DocLoader::requestResource(CachedResource::Type type, const String& url, const String* charset, bool skipCanLoadCheck, bool sendResourceLoadCallbacks, bool isPreload)
+CachedResource* DocLoader::requestResource(CachedResource::Type type, const String& url, const String& charset, bool isPreload)
#else
-CachedResource* DocLoader::requestResource(CachedResource::Type type, const String& url, const String* charset, bool skipCanLoadCheck, bool sendResourceLoadCallbacks)
+CachedResource* DocLoader::requestResource(CachedResource::Type type, const String& url, const String& charset)
#endif
{
KURL fullURL = m_doc->completeURL(url.deprecatedString());
@@ -170,9 +160,9 @@
checkForReload(fullURL);
#if PRELOAD_SCANNER_ENABLED
- CachedResource* resource = cache()->requestResource(this, type, fullURL, charset, skipCanLoadCheck, sendResourceLoadCallbacks, isPreload);
+ CachedResource* resource = cache()->requestResource(this, type, fullURL, charset, isPreload);
#else
- CachedResource* resource = cache()->requestResource(this, type, fullURL, charset, skipCanLoadCheck, sendResourceLoadCallbacks);
+ CachedResource* resource = cache()->requestResource(this, type, fullURL, charset);
#endif
if (resource) {
m_docResources.set(resource->url(), resource);
@@ -276,7 +266,7 @@
void DocLoader::preload(CachedResource::Type type, const String& url)
{
String encoding = (type == CachedResource::Script || type == CachedResource::CSSStyleSheet) ? m_doc->frame()->loader()->encoding() : String();
- CachedResource* resource = requestResource(type, url, &encoding, true);
+ CachedResource* resource = requestResource(type, url, encoding, true);
if (!resource || m_preloads.contains(resource))
return;
resource->increasePreloadCount();
@@ -294,11 +284,17 @@
ListHashSet<CachedResource*>::iterator end = m_preloads.end();
for (ListHashSet<CachedResource*>::iterator it = m_preloads.begin(); it != end; ++it) {
CachedResource* res = *it;
- if (res->canDelete() && !res->inCache())
+ res->decreasePreloadCount();
+ if (res->canDelete())
+ {
+ if(res->inCache())
+ cache()->remove(res);
+ else
delete res;
+ }
else if (res->preloadResult() == CachedResource::PreloadNotReferenced)
cache()->remove(res);
- res->decreasePreloadCount();
+
}
m_preloads.clear();
}
--- a/webengine/osswebengine/WebCore/loader/DocLoader.h Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebCore/loader/DocLoader.h Fri Jul 03 15:54:40 2009 +0100
@@ -56,7 +56,7 @@
~DocLoader();
CachedImage* requestImage(const String& url);
- CachedCSSStyleSheet* requestCSSStyleSheet(const String& url, const String& charset, bool isUserStyleSheet = false);
+ CachedCSSStyleSheet* requestCSSStyleSheet(const String& url, const String& charset);
CachedCSSStyleSheet* requestUserCSSStyleSheet(const String& url, const String& charset);
CachedScript* requestScript(const String& url, const String& charset);
@@ -102,9 +102,9 @@
private:
#if PRELOAD_SCANNER_ENABLED
- CachedResource* requestResource(CachedResource::Type, const String& url, const String* charset = 0, bool skipCanLoadCheck = false, bool sendResourceLoadCallbacks = true, bool isPreload = false);
+ CachedResource* requestResource(CachedResource::Type, const String& url, const String& charset, bool isPreload = false);
#else
- CachedResource* requestResource(CachedResource::Type, const String& url, const String* charset = 0, bool skipCanLoadCheck = false, bool sendResourceLoadCallbacks = true);
+ CachedResource* requestResource(CachedResource::Type, const String& url, const String& charset);
#endif
void checkForReload(const KURL&);
--- a/webengine/osswebengine/WebCore/loader/DocumentLoader.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebCore/loader/DocumentLoader.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -154,6 +154,7 @@
DocumentLoader::~DocumentLoader()
{
ASSERT(!m_frame || frameLoader()->activeDocumentLoader() != this || !frameLoader()->isLoading());
+ m_mainResourceData = 0;
}
PassRefPtr<SharedBuffer> DocumentLoader::mainResourceData() const
--- a/webengine/osswebengine/WebCore/loader/TextResourceDecoder.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebCore/loader/TextResourceDecoder.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -279,6 +279,7 @@
TextResourceDecoder::~TextResourceDecoder()
{
+ m_buffer.clear();
}
void TextResourceDecoder::setEncoding(const TextEncoding& encoding, EncodingSource source)
--- a/webengine/osswebengine/WebCore/loader/icon/IconDatabase.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebCore/loader/icon/IconDatabase.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -40,6 +40,7 @@
#include "SQLStatement.h"
#include "SQLTransaction.h"
#include "SystemTime.h"
+#include "WebKitUtilsSqlite.h"
#if PLATFORM(WIN_OS)
#include <windows.h>
@@ -230,6 +231,31 @@
for (; i != end; ++i)
delete (*i).second;
m_iconURLToRecordMap.clear();
+
+ HashMap<String, PageURLRecord*>::iterator recordIter = m_pageURLToRecordMap.begin();
+ HashMap<String, PageURLRecord*>::iterator recordEnd = m_pageURLToRecordMap.end();
+ String recordString;
+ for (; recordIter != recordEnd; ++recordIter) {
+ recordString = (*recordIter).first;
+ recordString = String();
+ }
+ m_pageURLToRecordMap.clear();
+
+ HashSet<String>::iterator retainedIter = m_retainedPageURLs.begin();
+ HashSet<String>::iterator retainedEnd = m_retainedPageURLs.end();
+ String* retainedString;
+ for (; retainedIter != retainedEnd; ++retainedIter) {
+ retainedString = retainedIter.get();
+ *retainedString = String();
+ }
+ m_retainedPageURLs.clear();
+
+ delete m_client;
+ delete sharedIconDatabase;
+ m_syncLock.~Mutex();
+ m_urlAndIconLock.~Mutex();
+ m_pendingSyncLock.~Mutex();
+ m_pendingReadingLock.~Mutex();
#endif
}
@@ -989,7 +1015,9 @@
ASSERT_ICON_SYNC_THREAD();
LOG(IconDatabase, "(THREAD) IconDatabase sync thread started");
-
+ // Create the Symbian SQL TLS
+ sqlite3SymbianLibInit();
+
#ifndef NDEBUG
double startTime = currentTime();
#endif
@@ -1784,6 +1812,10 @@
#endif
m_syncThreadRunning = false;
+ // Cleanup SQL TLS that was created from sqlite3SymbianLibInit() in iconDatabaseSyncThread()
+ sqlite3SymbianLibFinalize();
+ // Cleanup STDLIB TLS
+ CloseSTDLIB();
return 0;
}
--- a/webengine/osswebengine/WebCore/page/ChromeClient.h Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebCore/page/ChromeClient.h Fri Jul 03 15:54:40 2009 +0100
@@ -26,6 +26,7 @@
namespace WebCore {
+ class Element;
class FloatRect;
class Frame;
class HitTestResult;
@@ -106,6 +107,7 @@
#if PLATFORM(SYMBIAN)
virtual void setElementVisibilityChanged(bool visibility) = 0;
virtual bool elementVisibilityChanged() = 0;
+ virtual void focusedElementChanged(Element*) = 0;
#endif
};
--- a/webengine/osswebengine/WebCore/page/EventHandler.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebCore/page/EventHandler.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -1469,6 +1469,11 @@
keyDownEvent.setIsAutoRepeat(false);
bool result = !node->dispatchKeyEvent(keyDownEvent);
+
+ //***** FL added from r12765 *****//
+ if (initialKeyEvent.isKeyDown())
+ return result;
+ //**********//
// Focus may have change during the keyDown handling, so refetch node
node = eventTargetNodeForDocument(m_frame->document());
--- a/webengine/osswebengine/WebCore/page/Frame.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebCore/page/Frame.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -176,13 +176,13 @@
{
setView(0);
loader()->clearRecordedFormValues();
+ loader()->closeURL();
+ loader()->cancelAndClear();
#if PLATFORM(MAC) || PLATFORM(SYMBIAN)
setBridge(0);
#endif
- loader()->cancelAndClear();
-
// FIXME: We should not be doing all this work inside the destructor
ASSERT(!d->m_lifeSupportTimer.isActive());
--- a/webengine/osswebengine/WebCore/page/Page.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebCore/page/Page.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -18,7 +18,7 @@
* Boston, MA 02110-1301, USA.
*/
-#include "config.h"
+
#include "Page.h"
#include "Chrome.h"
@@ -235,4 +235,18 @@
m_inLowQualityInterpolationMode = mode;
}
+#if PLATFORM(SYMBIAN)
+void deletePageStaticData()
+{
+ delete allPages;
+ allPages = NULL;
+ delete frameNamespaces;
+ frameNamespaces = NULL;
+
+#ifndef NDEBUG
+ PageCounter::count = 0;
+#endif
+}
+#endif
+
} // namespace WebCore
--- a/webengine/osswebengine/WebCore/page/Page.h Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebCore/page/Page.h Fri Jul 03 15:54:40 2009 +0100
@@ -21,6 +21,8 @@
#ifndef Page_h
#define Page_h
+#include "config.h"
+
#include "BackForwardList.h"
#include "Chrome.h"
#include "ContextMenuController.h"
@@ -146,6 +148,10 @@
#endif
};
+#if PLATFORM(SYMBIAN)
+ void deletePageStaticData();
+#endif
+
} // namespace WebCore
#endif // Page_h
--- a/webengine/osswebengine/WebCore/platform/AtomicString.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebCore/platform/AtomicString.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -38,6 +38,7 @@
namespace WebCore {
static HashSet<StringImpl*>* stringTable;
+static bool initialized = false;
struct CStringTranslator
{
@@ -170,7 +171,9 @@
void AtomicString::remove(StringImpl* r)
{
- stringTable->remove(r);
+ if( stringTable ) {
+ stringTable->remove(r);
+ }
}
StringImpl* AtomicString::add(const KJS::Identifier& str)
@@ -203,27 +206,45 @@
return m_string.deprecatedString();
}
+static const char *textAtomStr = "#text";
+static const char *commentAtomStr = "#comment";
+static const char *starAtomStr = "*";
+
DEFINE_GLOBAL(AtomicString, nullAtom)
DEFINE_GLOBAL(AtomicString, emptyAtom, "")
-DEFINE_GLOBAL(AtomicString, textAtom, "#text")
-DEFINE_GLOBAL(AtomicString, commentAtom, "#comment")
-DEFINE_GLOBAL(AtomicString, starAtom, "*")
+DEFINE_GLOBAL(AtomicString, textAtom, textAtomStr)
+DEFINE_GLOBAL(AtomicString, commentAtom, commentAtomStr)
+DEFINE_GLOBAL(AtomicString, starAtom, starAtomStr)
void AtomicString::init()
{
- static bool initialized;
if (!initialized) {
stringTable = new HashSet<StringImpl*>;
// Use placement new to initialize the globals.
new ((void*)&nullAtom) AtomicString;
new ((void*)&emptyAtom) AtomicString("");
- new ((void*)&textAtom) AtomicString("#text");
- new ((void*)&commentAtom) AtomicString("#comment");
- new ((void*)&starAtom) AtomicString("*");
+ new ((void*)&textAtom) AtomicString(textAtomStr);
+ new ((void*)&commentAtom) AtomicString(commentAtomStr);
+ new ((void*)&starAtom) AtomicString(starAtomStr);
initialized = true;
}
}
+void AtomicString::remove()
+{
+ // Cleanup the string table array
+ if( stringTable )
+ {
+ stringTable->clear();
+ delete stringTable;
+ stringTable = NULL;
+ }
+ textAtomStr = "";
+ commentAtomStr = "";
+ starAtomStr = "";
+ initialized = false;
}
+
+}
--- a/webengine/osswebengine/WebCore/platform/AtomicString.h Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebCore/platform/AtomicString.h Fri Jul 03 15:54:40 2009 +0100
@@ -78,6 +78,7 @@
bool isEmpty() const { return m_string.isEmpty(); }
static void remove(StringImpl*);
+ static void remove();
#ifdef __OBJC__
AtomicString(NSString* s) : m_string(add(String(s).impl())) { }
--- a/webengine/osswebengine/WebCore/platform/DeprecatedString.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebCore/platform/DeprecatedString.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -117,6 +117,21 @@
DeprecatedStringData *DeprecatedString::shared_null = 0;
DeprecatedStringData **DeprecatedString::shared_null_handle = 0;
+void DeprecatedString::deleteSharedNull()
+ {
+ delete shared_null;
+ shared_null=0;
+ freeHandle(shared_null_handle);
+ }
+
+struct cleanupSharedNull {
+ ~cleanupSharedNull()
+ {
+ DeprecatedString::deleteSharedNull();
+ }
+};
+struct cleanupSharedNull cleanSharedNull;
+
// -------------------------------------------------------------------------
// Utility functions
// -------------------------------------------------------------------------
--- a/webengine/osswebengine/WebCore/platform/DeprecatedString.h Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebCore/platform/DeprecatedString.h Fri Jul 03 15:54:40 2009 +0100
@@ -289,7 +289,8 @@
DeprecatedString(const QString&);
operator QString() const;
#endif
-
+ static void deleteSharedNull();
+
static DeprecatedString fromLatin1(const char *);
static DeprecatedString fromLatin1(const char *, int len);
static DeprecatedString fromUtf8(const char *);
--- a/webengine/osswebengine/WebCore/platform/DeprecatedValueListImpl.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebCore/platform/DeprecatedValueListImpl.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -122,6 +122,7 @@
DeprecatedValueListImpl::~DeprecatedValueListImpl()
{
+ d=0;
}
void DeprecatedValueListImpl::clear()
--- a/webengine/osswebengine/WebCore/platform/FontCache.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebCore/platform/FontCache.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -33,6 +33,7 @@
#include "FontFallbackList.h"
#include "FontPlatformData.h"
#include "StringHash.h"
+#include "staticobjectscontainer.h"
#include <wtf/HashMap.h>
namespace WebCore {
@@ -99,9 +100,28 @@
};
typedef HashMap<FontPlatformDataCacheKey, FontPlatformData*, FontPlatformDataCacheKeyHash, FontPlatformDataCacheKeyTraits> FontPlatformDataCache;
+typedef HashMap<FontPlatformDataCacheKey, FontPlatformData*, FontPlatformDataCacheKeyHash, FontPlatformDataCacheKeyTraits>::iterator FontPlatformDataCacheIterator;
static FontPlatformDataCache* gFontPlatformDataCache = 0;
+struct cleanupFontDataCache {
+ ~cleanupFontDataCache() {
+ if( gFontPlatformDataCache )
+ {
+ FontPlatformDataCacheIterator end = gFontPlatformDataCache->end();
+ for (FontPlatformDataCacheIterator it = gFontPlatformDataCache->begin(); it != end; ++it)
+ {
+ FontPlatformData* obj = (*it).second;
+ delete obj;
+ }
+ gFontPlatformDataCache->clear();
+ delete gFontPlatformDataCache;
+ gFontPlatformDataCache=0;
+ }
+ }
+};
+static cleanupFontDataCache cleanFontDataCache;
+
static const AtomicString& alternateFamilyName(const AtomicString& familyName)
{
#if PLATFORM(SYMBIAN)
@@ -138,7 +158,6 @@
{
if (!gFontPlatformDataCache) {
gFontPlatformDataCache = new FontPlatformDataCache;
- platformInit();
}
FontPlatformDataCacheKey key(familyName, fontDescription.computedPixelSize(), fontDescription.bold(), fontDescription.italic(),
@@ -197,7 +216,7 @@
};
typedef HashMap<FontPlatformData, FontData*, FontDataCacheKeyHash, FontDataCacheKeyTraits> FontDataCache;
-
+typedef HashMap<FontPlatformData, FontData*, FontDataCacheKeyHash, FontDataCacheKeyTraits>::iterator FontDataCacheIterator;
static FontDataCache* gFontDataCache = 0;
FontData* FontCache::getCachedFontData(const FontPlatformData* platformData)
@@ -217,6 +236,19 @@
return result;
}
+void FontCache::deleteFontDataCache()
+{
+ if( gFontDataCache ) {
+ FontDataCacheIterator end = gFontDataCache->end();
+ for (FontDataCacheIterator it = gFontDataCache->begin(); it != end; ++it) {
+ FontData* obj = (*it).second;
+ delete obj;
+ }
+ }
+ delete gFontDataCache;
+ gFontDataCache = NULL;
+}
+
const FontData* FontCache::getFontData(const Font& font, int& familyIndex)
{
FontPlatformData* result = 0;
--- a/webengine/osswebengine/WebCore/platform/FontCache.h Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebCore/platform/FontCache.h Fri Jul 03 15:54:40 2009 +0100
@@ -60,7 +60,8 @@
static const AtomicString& systemFontFamilyName( const AtomicString& familyName );
static FontPlatformData* getDeviceDefaultFont(float size);
#endif
-
+ static void deleteFontDataCache();
+
private:
static FontPlatformData* getCachedFontPlatformData(const FontDescription&, const AtomicString& family, bool checkingAlternateName = false);
static FontData* getCachedFontData(const FontPlatformData*);
--- a/webengine/osswebengine/WebCore/platform/MimeTypeRegistry.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebCore/platform/MimeTypeRegistry.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -44,7 +44,28 @@
static WTF::HashSet<String>* supportedImageResourceMIMETypes;
static WTF::HashSet<String>* supportedImageMIMETypes;
static WTF::HashSet<String>* supportedNonImageMIMETypes;
-
+
+struct cleanupMimeTypes {
+ ~cleanupMimeTypes() {
+ if( supportedImageResourceMIMETypes ) {
+ supportedImageResourceMIMETypes->clear();
+ delete supportedImageResourceMIMETypes;
+ supportedImageResourceMIMETypes = 0;
+ }
+ if( supportedImageMIMETypes ) {
+ supportedImageMIMETypes->clear();
+ delete supportedImageMIMETypes;
+ supportedImageMIMETypes = 0;
+ }
+ if( supportedNonImageMIMETypes ) {
+ supportedNonImageMIMETypes->clear();
+ delete supportedNonImageMIMETypes;
+ supportedNonImageMIMETypes = 0;
+ }
+ }
+};
+struct cleanupMimeTypes cleanMimeTypes;
+
#if PLATFORM(CG)
extern String getMIMETypeForUTI(const String& uti);
#endif
--- a/webengine/osswebengine/WebCore/platform/PlatformKeyboardEvent.h Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebCore/platform/PlatformKeyboardEvent.h Fri Jul 03 15:54:40 2009 +0100
@@ -63,6 +63,9 @@
String unmodifiedText() const { return m_unmodifiedText; }
String keyIdentifier() const { return m_keyIdentifier; }
bool isKeyUp() const { return m_isKeyUp; }
+ //***** FL added from r12765 *****//
+ bool isKeyDown() const { return m_isKeyDown; }
+ //**********//
bool isAutoRepeat() const { return m_autoRepeat; }
void setIsAutoRepeat(bool in) { m_autoRepeat = in; }
int WindowsKeyCode() const { return m_WindowsKeyCode; }
@@ -99,6 +102,9 @@
String m_unmodifiedText;
String m_keyIdentifier;
bool m_isKeyUp;
+ //***** FL added from r12765 *****//
+ bool m_isKeyDown;
+ //**********//
bool m_autoRepeat;
int m_WindowsKeyCode;
bool m_isKeypad;
--- a/webengine/osswebengine/WebCore/platform/RegularExpression.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebCore/platform/RegularExpression.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -134,6 +134,7 @@
RegularExpression::~RegularExpression()
{
+ d=0;
}
RegularExpression &RegularExpression::operator=(const RegularExpression &re)
--- a/webengine/osswebengine/WebCore/platform/TextEncodingRegistry.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebCore/platform/TextEncodingRegistry.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -23,7 +23,7 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#include "config.h"
+
#include "TextEncodingRegistry.h"
#include "PlatformString.h"
@@ -248,4 +248,15 @@
return !didExtendTextCodecMaps;
}
+#if PLATFORM(SYMBIAN)
+void deleteEncodingMaps()
+{
+ delete textEncodingNameMap;
+ textEncodingNameMap = NULL;
+ delete textCodecMap;
+ textCodecMap = NULL;
+ didExtendTextCodecMaps = false;
+}
+#endif
+
} // namespace WebCore
--- a/webengine/osswebengine/WebCore/platform/TextEncodingRegistry.h Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebCore/platform/TextEncodingRegistry.h Fri Jul 03 15:54:40 2009 +0100
@@ -26,6 +26,7 @@
#ifndef TextEncodingRegistry_h
#define TextEncodingRegistry_h
+#include "config.h"
#include <memory>
#include <wtf/unicode/Unicode.h>
@@ -48,6 +49,10 @@
// Only TextEncoding should use this function directly.
bool noExtendedTextEncodingNameUsed();
+#if PLATFORM(SYMBIAN)
+ void deleteEncodingMaps();
+#endif
+
}
#endif // TextEncodingRegistry_h
--- a/webengine/osswebengine/WebCore/platform/Timer.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebCore/platform/Timer.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -49,6 +49,16 @@
static Vector<TimerBase*>* timerHeap;
static HashSet<const TimerBase*>* timersReadyToFire;
+struct timerCleaner {
+ ~timerCleaner() {
+ if( timerHeap ) {
+ delete timerHeap;
+ timerHeap = 0;
+ }
+ }
+};
+struct timerCleaner cleanTimer;
+
// ----------------
// Class to represent elements in the heap when calling the standard library heap algorithms.
--- a/webengine/osswebengine/WebCore/platform/graphics/symbian/ImageSymbian.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebCore/platform/graphics/symbian/ImageSymbian.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -60,7 +60,7 @@
namespace WebCore {
-CMaskedBitmap* loadAknIcon(int id, float sizeAdjust);
+CMaskedBitmap* loadAknIconL(int id, float sizeAdjust);
void FrameData::clear()
{
@@ -126,9 +126,26 @@
BitmapImage::~BitmapImage()
{
+ //find if m_maskedbitmap is in m_frames so it wont get deleted twice
+ for(TInt i=0; i<m_frames.size(); i++)
+ {
+ if(m_maskedBitmap==m_frames[i].m_frame)
+ {
+ //masked bitmap gets deleted when decoded data is destroyed,
+ m_maskedBitmap = NULL;
+ }
+ }
destroyDecodedData();
stopAnimation();
+ delete m_maskedBitmap;
+ m_maskedBitmap = NULL;
invalidatePlatformData();
+
+ for(TInt i=0; i<m_frames.size(); i++)
+ {
+ m_frames[i].clear();
+ }
+ m_frames.clear();
}
void BitmapImage::destroyDecodedData(bool)
@@ -313,7 +330,8 @@
resourceIds.set("checkBoxOff", &checkBoxOffData);
}
if (const IconData* data = resourceIds.get(name)) {
- CMaskedBitmap* bm = loadAknIcon(data->m_id,data->m_sizeAdjust);
+ CMaskedBitmap* bm = NULL;
+ TRAP_IGNORE(bm = loadAknIconL(data->m_id,data->m_sizeAdjust));
if (bm) {
BitmapImage* im = new BitmapImage(bm);
return im;
@@ -325,6 +343,7 @@
void BitmapImage::draw(GraphicsContext* ctxt, const FloatRect& dst, const FloatRect& src, CompositeOperator op)
{
WebCoreGraphicsContext* context = ctxt->platformContext();
+
if (!context) {
return;
}
@@ -348,28 +367,37 @@
_LIT( KBrowserSvgFile, "webkiticons.mif" );
#endif
+static HBufC* iconFileNameBuf = NULL;
+struct cleanupIconFileName {
+ ~cleanupIconFileName() {
+ delete iconFileNameBuf;
+ iconFileNameBuf = NULL;
+ }
+};
+struct cleanupIconFileName cleanIconFileName;
+
TPtrC iconFileName()
{
- static HBufC* filename = 0;
- if (!filename) {
+ if (!iconFileNameBuf) {
TFileName mbmDrive;
TParse parse;
Dll::FileName( mbmDrive );
Dll::FileName( mbmDrive );
parse.Set( mbmDrive, NULL, NULL );
mbmDrive = parse.Drive();
- filename = HBufC::New( KMaxFileName );
- filename->Des().Append( mbmDrive );
- filename->Des().Append( KDC_APP_BITMAP_DIR );
- filename->Des().Append( KBrowserSvgFile );
+ iconFileNameBuf = HBufC::New( KMaxFileName );
+ iconFileNameBuf->Des().Append( mbmDrive );
+ iconFileNameBuf->Des().Append( KDC_APP_BITMAP_DIR );
+ iconFileNameBuf->Des().Append( KBrowserSvgFile );
}
- return *filename;
+ return *iconFileNameBuf;
}
-CMaskedBitmap* loadAknIcon(int id, float sizeAdjust)
+CMaskedBitmap* loadAknIconL(int id, float sizeAdjust)
{
CEikonEnv* eikEnv = CEikonEnv::Static();
CWsScreenDevice& screenDev = *eikEnv->ScreenDevice();
+ CMaskedBitmap* result = NULL;
int dpi = screenDev.VerticalTwipsToPixels(KTwipsPerInch);
int px = (int)10*sizeAdjust;
@@ -386,19 +414,20 @@
CFbsBitmap* bitmap=0;
CFbsBitmap* mask=0;
MAknsSkinInstance* skin = AknsUtils::SkinInstance();
- TRAPD(error, AknsUtils::CreateIconL( skin,
+
+ AknsUtils::CreateIconLC( skin,
KAknsIIDDefault,
bitmap,
mask,
iconFileName(),
id,
- id+1));
- if (error!=KErrNone)
- return 0;
+ id+1);
AknIconUtils::SetSize(bitmap,TSize(px,px)); //rect.Rect().Size());
AknIconUtils::SetSize(mask,TSize(px,px)); //rect.Rect().Size());
- return new CMaskedBitmap(bitmap,mask);
+ result = new (ELeave) CMaskedBitmap(bitmap,mask);
+ CleanupStack::Pop( 2 );//bitmap, mask
+ return result;
}
CMaskedBitmap* BitmapImage::getMaskedBitmap()
@@ -406,8 +435,7 @@
if (m_maskedBitmap)
return m_maskedBitmap;
- m_maskedBitmap = m_source.createFrameAtIndex(0);
- return m_maskedBitmap;
+ return m_source.createFrameAtIndex(0);
}
void BitmapImage::drawPattern(GraphicsContext* ctxt, const FloatRect& srcRect, const AffineTransform& patternTransform,
--- a/webengine/osswebengine/WebCore/platform/network/symbian/HttpConnection.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebCore/platform/network/symbian/HttpConnection.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -106,8 +106,14 @@
void ReceivedFinished::RunL()
{
+ m_done = true;
+ /*
+ * this callback will call deRef on HttpConnection which
+ * will delete ReceivedFinished object since it's a
+ * member of HttpConnection. Therefore this call has to
+ * the last one.
+ */
m_callback(m_ctx, m_error);
- m_done = true;
}
TInt ReceivedFinished::RunError(TInt aError)
@@ -426,6 +432,32 @@
THTTPHdrVal hdrVal;
RHTTPHeaders httpHeaders = m_transaction->Response().GetHeaderCollection();
RStringPool stringPool = m_transaction->Session().StringPool();
+
+ THTTPHdrFieldIter it = httpHeaders.Fields();
+
+ HBufC8* headerStr;
+ TBool isRefresh = EFalse;
+ TPtrC8 headerValue; ;
+ while( it.AtEnd() == EFalse )
+ {
+ // Get name of next header field
+ RStringTokenF fieldName = it();
+ RStringF fieldNameStr = stringPool.StringF( fieldName );
+ httpHeaders.GetRawField( fieldNameStr, headerValue );
+ headerStr = HBufC8::NewLC( fieldNameStr.DesC().Length() );
+ TPtr8 headerPtr( headerStr->Des() );
+ headerPtr.Copy( fieldNameStr.DesC() );
+ if (equalIgnoringCase(headerPtr, "refresh"))
+ {
+ isRefresh = ETrue;
+ CleanupStack::PopAndDestroy(); // headerStr
+ break;
+ }
+
+ CleanupStack::PopAndDestroy(); // headerStr
+ ++it;
+ }
+
const TStringTable& stringTable = RHTTPSession::GetTable();
if( httpHeaders.GetField( stringPool.StringF( HTTP::EContentType, stringTable ), 0,
hdrVal) == KErrNone ) {
@@ -456,11 +488,19 @@
//HTTP status text
response.setHTTPStatusText(((m_transaction->Response()).StatusText().DesC()));
+
+
if (m_contentType && m_contentType->Length()) {
response.setHTTPHeaderField("Content-Type", *m_contentType);
}
-
- TPtrC8 result;
+
+ // Add Refresh field only when Refresh existed in recieved header.
+ if (isRefresh)
+ {
+ response.setHTTPHeaderField("Refresh",headerValue);
+ }
+
+ TPtrC8 result;
if( httpHeaders.GetRawField( stringPool.StringF( HTTP::EContentDisposition, stringTable ), result) == KErrNone )
response.setHTTPHeaderField("Content-Disposition", result);
--- a/webengine/osswebengine/WebCore/platform/network/symbian/HttpRequestHeaderManager.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebCore/platform/network/symbian/HttpRequestHeaderManager.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -114,6 +114,8 @@
m_AcceptLangStr = NULL;
delete m_InstalledLangBuf;
m_InstalledLangBuf = NULL;
+ delete m_CharsetBuf;
+ m_CharsetBuf = NULL;
}
//-----------------------------------------------------------------------------
@@ -418,8 +420,9 @@
TPtrC8 userSelectedLangPtr(userSelectedLangString.DesC());
//
TInt xtraDataPerLang = KCommaSeperator().Length() + KLangStrLen + KQHalfValue().Length();
- TInt reqdBufSize = userSelectedLangPtr.Length() +
- ((systemEpocLanguageCodes->Count()-1) * xtraDataPerLang);
+ TInt reqdBufSize = ((userSelectedLangPtr.Length() + xtraDataPerLang)
+ * (systemEpocLanguageCodes->Count()));
+
delete m_InstalledLangBuf;
m_InstalledLangBuf = NULL;
m_InstalledLangBuf = HBufC8::NewL(reqdBufSize);
--- a/webengine/osswebengine/WebCore/platform/network/symbian/HttpSessionManager.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebCore/platform/network/symbian/HttpSessionManager.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -71,6 +71,8 @@
m_httpDownload = NULL;
delete m_SelfDownloadContentHandler;
m_SelfDownloadContentHandler = NULL;
+ delete m_SelfDownloadContentTypes;
+ m_SelfDownloadContentTypes = NULL;
m_ClientAcceptHeaders.ResetAndDestroy();
m_ClientAcceptHeaders.Close();
closeHttpSession();
--- a/webengine/osswebengine/WebCore/platform/network/symbian/ResourceHandleManagerSymbian.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebCore/platform/network/symbian/ResourceHandleManagerSymbian.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -40,6 +40,15 @@
static CResourceHandleManager* s_self = 0;
+struct cleanupHandleManager {
+ ~cleanupHandleManager() {
+ if(s_self){
+ delete s_self;
+ s_self = 0;
+ }
+ }
+};
+static cleanupHandleManager deleteResourceHandleManager;
CResourceHandleManager::CResourceHandleManager()
{
@@ -131,7 +140,7 @@
int needed = std::max(contentLength, std::max(client->receivedDataBufferSize(), data.Length()));
OOM_PRE_CHECK(needed<<2, needed<<1, "CResourceHandleManager::receiveData()")
client->didReceiveData(resource, (const char*)data.Ptr(), data.Length(), data.Length());
- OOM_POST_CHECK_FAILED(client->didFail(resource, ResourceError(String(), KErrNoMemory, String(), String()));)
+ OOM_POST_CHECK_FAILED(connection->handleError(KErrNoMemory);)
}
}
--- a/webengine/osswebengine/WebCore/platform/network/symbian/ResourceHandleManagerSymbian.h Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebCore/platform/network/symbian/ResourceHandleManagerSymbian.h Fri Jul 03 15:54:40 2009 +0100
@@ -39,7 +39,7 @@
int add(ResourceHandle*);
void cancel(ResourceHandle*);
-
+ virtual ~CResourceHandleManager();
public :
void receivedResponse(ResourceHandle* resource, ResourceResponse& response, MUrlConnection* connection);
void receivedData(ResourceHandle* resource, const TDesC8&, int contentLength, MUrlConnection* connection);
@@ -47,7 +47,7 @@
private:
CResourceHandleManager();
- virtual ~CResourceHandleManager();
+
};
--- a/webengine/osswebengine/WebCore/platform/network/symbian/ResourceLoaderDelegate.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebCore/platform/network/symbian/ResourceLoaderDelegate.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -95,6 +95,11 @@
connection->download(handle, request, response);
}
+static void cleanupConnection( TAny* connection )
+{
+ delete (ResolvedConnection*) connection;
+}
+
MUrlConnection* ResourceLoaderDelegate::checkLinkResolverL(ResourceHandle* handle, Frame* frame)
{
CBrCtl* brctl = control(frame);
@@ -117,9 +122,10 @@
}
}
connection = new (ELeave) ResolvedConnection(handle, frame);
- CleanupStack::PushL(connection);
+ TCleanupItem cleaner( cleanupConnection, connection );
+ CleanupStack::PushL(cleaner);
TBool ret = brctl->brCtlLinkResolver()->ResolveLinkL(url->Des(), currentUrlPtr, *connection);
- CleanupStack::Pop(); // connection
+ CleanupStack::Pop(); // cleaner( connection )
if (!ret) {
delete connection;
connection = NULL;
@@ -141,10 +147,11 @@
}
}
connection = new (ELeave) ResolvedConnection(handle, frame);
- CleanupStack::PushL(connection);
+ TCleanupItem cleaner( cleanupConnection, connection );
+ CleanupStack::PushL(cleaner);
TBool ret = brctl->brCtlLinkResolver()->ResolveEmbeddedLinkL(url->Des(), currentUrlPtr,
ELoadContentTypeAny, *connection);
- CleanupStack::Pop(); // connection
+ CleanupStack::Pop(); // cleaner( connection )
if (!ret) {
delete connection;
connection = NULL;
--- a/webengine/osswebengine/WebCore/platform/network/symbian/UrlConnection.h Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebCore/platform/network/symbian/UrlConnection.h Fri Jul 03 15:54:40 2009 +0100
@@ -39,6 +39,7 @@
virtual WebCore::ResourceHandle* handle() { return m_handle; }
virtual int totalContentSize() = 0;
virtual void setDefersLoading(bool /*defers*/) {}
+ virtual void handleError(int error) {};
public: // data
WebCore::ResourceHandle* m_handle;
--- a/webengine/osswebengine/WebCore/platform/symbian/FontCacheSymbian.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebCore/platform/symbian/FontCacheSymbian.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -133,6 +133,7 @@
}
iFontCache.clear();
delete [] iSupportedNames;
+ iDeviceDefaultFont = "";
}
const AtomicString& PlatformFontCache::SystemFontFamily( const AtomicString& familyName )
--- a/webengine/osswebengine/WebCore/platform/symbian/FontDataSymbian.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebCore/platform/symbian/FontDataSymbian.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -56,7 +56,8 @@
void FontData::platformDestroy()
{
- StaticObjectsContainer::instance()->fontCache()->ReleaseFont( m_font.Font() );
+ // Do Nothing. m_font is owned by the Font Cache
+ // and maybe shared with other FontData instances
}
FontData* FontData::smallCapsFontData(const FontDescription& fontDescription) const
--- a/webengine/osswebengine/WebCore/platform/symbian/FontSymbian.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebCore/platform/symbian/FontSymbian.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -11,7 +11,7 @@
*
* Contributors:
*
-* Description:
+* Description:
*
*/
@@ -51,14 +51,14 @@
}
TextRun end(run.characters() + from, to - from);
- float w = floatWidthForComplexText(end, style);
-
+ float w = floatWidthForComplexText(end, style);
+
FloatRect rect(b + point.x(), point.y(), w, h);
return rect;
}
-void Font::drawComplexText(GraphicsContext* graphicsContext, const TextRun& run, const TextStyle& style, const FloatPoint& point, int from, int to) const
+void Font::drawComplexText(GraphicsContext* graphicsContext, const TextRun& run, const TextStyle& style, const FloatPoint& point, int from, int to) const
{
PlatformFontCache* cache = StaticObjectsContainer::instance()->fontCache();
CFont* font = cache->zoomedFont(m_fontDescription, cache->fontZoomFactor());
@@ -74,28 +74,28 @@
TPoint startPos = point;
if (from) {
-
+
// the text run before the selection
TextRun leftRun(run.characters(), from);
// the selection start point
startPos.iX += floatWidthForComplexText(leftRun, style);
}
-
+
TPtrC str( (const TUint16*)(run.characters() + from), to - from);
-
+
TInt numSpaces(0);
TInt indexOfFirstNonRegularSpace(-1);
TInt strLength(str.Length());
-
+
// a) search for nbsp and similar
// b) count the spaces for word spacing
for( TInt n = 0; n<strLength; ++n) {
-
+
if ( str[n] == ' ' ) {
numSpaces++;
}
else if( TChar(str[n]).IsSpace() ) {
-
+
if (indexOfFirstNonRegularSpace==-1) {
indexOfFirstNonRegularSpace = n;
}
@@ -116,7 +116,7 @@
HBufC* text = 0;
text = str.Alloc();
if (text){
-
+
TPtr newStr(text->Des());
if (isSmallCaps()) {
// proper small caps implementation would use smaller font, but that get complicated
@@ -128,43 +128,41 @@
// and replace them with regular spaces. otherwise they show up as boxes.
if (indexOfFirstNonRegularSpace > -1) {
for(; indexOfFirstNonRegularSpace<strLength; ++indexOfFirstNonRegularSpace ) {
- // if ZERO WIDTH SPACE found do not replace it with regular space
- if( TChar(newStr[indexOfFirstNonRegularSpace]).IsSpace() &&
- !(Font::treatAsZeroWidthSpace (newStr[indexOfFirstNonRegularSpace]))) {
+ if( TChar(newStr[indexOfFirstNonRegularSpace]).IsSpace()) {
newStr[indexOfFirstNonRegularSpace] = ' ';
}
}
}
-
+
if (style.rtl()) {
TBidiText* bidiText = TBidiText::NewL( newStr, 1, TBidiText::ERightToLeft );
bidiText->WrapText(xForm(width(run)), *font );
- bitgc.DrawText( bidiText->DisplayText(),xForm(startPos));
- delete bidiText;
+ bitgc.DrawText( bidiText->DisplayText(),xForm(startPos));
+ delete bidiText;
}
else{
- bitgc.DrawText( newStr, xForm(startPos) );
+ bitgc.DrawText( newStr, xForm(startPos) );
}
-
+
if (graphicsContext && StaticObjectsContainer::instance()->pictograph())
StaticObjectsContainer::instance()->pictograph()->DrawPictographsInText(graphicsContext->platformContext(), bitgc, *font, newStr, startPos );
-
+
delete text;
}
-
+
}else {
bitgc.DrawText( str, xForm(startPos) );
- if (graphicsContext && StaticObjectsContainer::instance()->pictograph())
+ if (graphicsContext && StaticObjectsContainer::instance()->pictograph())
StaticObjectsContainer::instance()->pictograph()->DrawPictographsInText(graphicsContext->platformContext(), bitgc, *font, str, startPos );
}
-
+
bitgc.DiscardFont();
}
inline float floatWidthForComplexTextSymbian(const Font* f, const TextRun& run, const TextStyle& style, int maxWidth, int& chars){
const CFont& font( f->primaryFont()->platformData() );
TPtrC str( (const TUint16*)(run.characters()), run.length());
-
+
TInt numSpaces(0);
TInt indexOfFirstNonRegularSpace(-1);
TInt strLength(str.Length());
--- a/webengine/osswebengine/WebCore/platform/symbian/Libxml2/Libxml2_globals.h Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebCore/platform/symbian/Libxml2/Libxml2_globals.h Fri Jul 03 15:54:40 2009 +0100
@@ -36,6 +36,7 @@
XMLPUBFUN void XMLCALL xeSetTLS(void* ptr);
XMLPUBFUN xmlGlobalStatePtr XMLCALL xeGetTLS();
+XMLPUBFUN void XMLCALL xecleanTLS();
//#if defined (XMLENGINE_USE_DOMSTRINGARGUMENT)
XMLPUBFUN void XMLCALL xeCleanupDOMStringConverter();
--- a/webengine/osswebengine/WebCore/platform/symbian/Libxml2/Libxml2_parser.c Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebCore/platform/symbian/Libxml2/Libxml2_parser.c Fri Jul 03 15:54:40 2009 +0100
@@ -12412,22 +12412,23 @@
void
xmlCleanupParser(void) {
- if (!xmlParserInitialized)
- return;
-
- xmlCleanupCharEncodingHandlers();
-#ifdef LIBXML_CATALOG_ENABLED
- xmlCatalogCleanup();
-#endif
- xmlCleanupInputCallbacks();
-#ifdef LIBXML_OUTPUT_ENABLED
- xmlCleanupOutputCallbacks();
-#endif
- xmlCleanupGlobals();
- xmlResetLastError();
- xmlCleanupThreads(); /* must be last if called not from the main thread */
- xmlCleanupMemory();
- xmlParserInitialized = 0;
+ if (xmlParserInitialized)
+ {
+ xmlCleanupCharEncodingHandlers();
+ #ifdef LIBXML_CATALOG_ENABLED
+ xmlCatalogCleanup();
+ #endif
+ xmlCleanupInputCallbacks();
+ #ifdef LIBXML_OUTPUT_ENABLED
+ xmlCleanupOutputCallbacks();
+ #endif
+ xmlCleanupGlobals();
+ xmlResetLastError();
+ xmlCleanupThreads(); /* must be last if called not from the main thread */
+ xmlCleanupMemory();
+ xmlParserInitialized = 0;
+ }
+ xecleanTLS();
}
/************************************************************************
--- a/webengine/osswebengine/WebCore/platform/symbian/Libxml2/XmlEnglibxml2dll.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebCore/platform/symbian/Libxml2/XmlEnglibxml2dll.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -54,3 +54,10 @@
{
return STATIC_CAST(xmlGlobalStatePtr, Dll::Tls());
}
+
+void xecleanTLS()
+{
+ xmlGlobalStatePtr gs = xeGetTLS();
+ delete gs;
+ xeSetTLS(NULL);
+}
--- a/webengine/osswebengine/WebCore/platform/symbian/OOMHandler.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebCore/platform/symbian/OOMHandler.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -64,7 +64,7 @@
OOMHandler::~OOMHandler()
{
MemoryManager::RemoveCollector(this);
- MemoryManager::AddStopper(this);
+ MemoryManager::RemoveStopper(this);
}
TUint OOMHandler::Collect(TUint aRequired)
--- a/webengine/osswebengine/WebCore/platform/symbian/PlatformKeyEventSymbian.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebCore/platform/symbian/PlatformKeyEventSymbian.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -661,6 +661,9 @@
PlatformKeyboardEvent::PlatformKeyboardEvent( TKeyEvent event, TEventCode eventCode, bool forceAutoRepeat ) :
m_keyIdentifier(KeyIdentifierForKeyEvent(event.iCode))
, m_isKeyUp( eventCode == EEventKeyUp )
+ //***** FL added from r12765 *****//
+ , m_isKeyDown( eventCode == EEventKeyDown )
+ //**********//
, m_autoRepeat(event.iRepeats>0 || forceAutoRepeat )
, m_WindowsKeyCode(WindowsKeyCodeForKeyEvent(event))
, m_shiftKey( event.iModifiers & EModifierShift )
--- a/webengine/osswebengine/WebCore/platform/symbian/RenderThemeSymbian.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebCore/platform/symbian/RenderThemeSymbian.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -15,125 +15,26 @@
*
*/
-
-#include "config.h"
+#include "RenderThemeSymbian.h"
+#include "staticobjectscontainer.h"
+// implement Symbian theme here
-#include "RenderTheme.h"
-#include "Event.h"
-#include "Document.h"
-#include "Image.h"
-#include "GraphicsContext.h"
-#include <../bidi.h>
-#include <eikenv.h>
-#include "RenderBox.h"
-#include <BitmapTransforms.h>
-#include "WebCoreGraphicsContext.h"
-#include "MaskedBitmap.h"
-#include "BitmapImage.h"
-#include "WebCoreWidget.h"
-// implement Symbian theme here
+
namespace WebCore {
-enum {
- ECheckBoxOn,
- ECheckBoxOff,
- ERadioOn,
- ERadioOff,
- ESelectArrow
-};
-
-class RenderThemeSymbian : public RenderTheme
-{
-public:
- RenderThemeSymbian();
- // A method asking if the theme's controls actually care about redrawing when hovered.
- bool supportsHover(const RenderStyle*) const { return true; }
-
- void setCheckboxSize(RenderStyle*) const;
- void setRadioSize(RenderStyle*) const;
-
- void adjustButtonStyle(CSSStyleSelector*, RenderStyle*, Element*) const;
- void adjustTextFieldStyle(CSSStyleSelector*, RenderStyle*, Element*) const;
- void adjustMenuListStyle(CSSStyleSelector* selector, RenderStyle* style, Element* e) const;
- void adjustMenuListButtonStyle(CSSStyleSelector* selector, RenderStyle* style, Element* e) const;
-
- bool paintCheckbox(RenderObject* o, const RenderObject::PaintInfo& i, const IntRect& r);
- bool paintButton(RenderObject*, const RenderObject::PaintInfo&, const IntRect&);
- bool paintMenuListButton(RenderObject* o, const RenderObject::PaintInfo& i, const IntRect& r);
- bool paintMenuList(RenderObject* o, const RenderObject::PaintInfo& i, const IntRect& r);
- bool paintRadio(RenderObject* o, const RenderObject::PaintInfo& i, const IntRect& r);
- bool paintTextField(RenderObject*, const RenderObject::PaintInfo&, const IntRect&);
- bool paintTextArea(RenderObject*, const RenderObject::PaintInfo&, const IntRect&);
-
-
- bool isControlStyled(const RenderStyle*, const BorderData&,
- const BackgroundLayer&, const Color&) const;
- bool controlSupportsTints(const RenderObject*) const;
- void systemFont(int propId, FontDescription&) const;
-
- Color platformActiveSelectionBackgroundColor() const;
- Color platformInactiveSelectionBackgroundColor() const;
- Color platformActiveSelectionForegroundColor() const;
- Color platformInactiveSelectionForegroundColor() const;
-
- void addIntrinsicMargins(RenderStyle*) const;
- void close();
- bool supportsFocus(EAppearance) const;
- void paintButtonDecorations(RenderObject* o, const RenderObject::PaintInfo& i, const IntRect& r);
-
- bool supportsFocusRing(const RenderStyle*) const;
- void scaleImage(int type, int scalingFactor);
- void scaleImageL(int type, int scalingFactor);
-
- void cancel();
- void run();
-
- Image* m_checkBoxOn;
- Image* m_checkBoxOff;
- Image* m_scaledCheckBoxOn;
- Image* m_scaledCheckBoxOff;
- int m_scalingForCheckBoxOn;
- int m_scalingForCheckBoxOff;
-
- Image* m_radioButtonOn;
- Image* m_radioButtonOff;
- Image* m_scaledRadioOn;
- Image* m_scaledRadioOff;
- int m_scalingForRadioOn;
- int m_scalingForRadioOff;
-
- Image* m_selectArrow;
- Image* m_scaledSelectArrow;
- int m_scalingForSelectArrow;
-
- CBitmapScaler* m_bitmapScaler;
- CActiveSchedulerWait* m_asw;
-};
-
RenderTheme* theme()
{
- static RenderThemeSymbian symbianTheme;
- return &symbianTheme;
+ return StaticObjectsContainer::instance()->theme();
}
+
+
MScrollView* scrollView(const RenderObject::PaintInfo& i)
{
return &(i.context->platformContext()->view());
}
-class SyncScaler : public CActive
-{
-public:
- SyncScaler();
- ~SyncScaler();
- void init();
- void RunL();
- void DoCancel();
- TInt RunError(TInt aError);
- int m_error;
-};
-
SyncScaler::SyncScaler() : CActive (CActive::EPriorityHigh)
{
CActiveScheduler::Add(this);
@@ -194,6 +95,48 @@
m_asw = NULL;
}
+RenderThemeSymbian::~RenderThemeSymbian()
+{
+RDebug::Printf("RenderThemeSymbian::~RenderThemeSymbian");
+
+ delete m_checkBoxOn;
+ m_checkBoxOn = 0;
+
+ delete m_checkBoxOff;
+ m_checkBoxOff = 0;
+
+ delete m_scaledCheckBoxOn;
+ m_scaledCheckBoxOn = 0;
+
+ delete m_scaledCheckBoxOff;
+ m_scaledCheckBoxOff = 0;
+
+ delete m_radioButtonOn;
+ m_radioButtonOn = 0;
+
+ delete m_radioButtonOff;
+ m_radioButtonOff = 0;
+
+ delete m_scaledRadioOn;
+ m_scaledRadioOn = 0;
+
+ delete m_scaledRadioOff;
+ m_scaledRadioOff = 0;
+
+ delete m_selectArrow;
+ m_selectArrow = 0;
+
+ delete m_scaledSelectArrow;
+ m_scaledSelectArrow = 0;
+
+ delete m_bitmapScaler;
+ m_bitmapScaler = 0;
+
+ delete m_asw;
+ m_asw = 0;
+}
+
+
void RenderThemeSymbian::systemFont(int propId, FontDescription& fontDescription) const
{
}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/webengine/osswebengine/WebCore/platform/symbian/RenderThemeSymbian.h Fri Jul 03 15:54:40 2009 +0100
@@ -0,0 +1,131 @@
+/*
+* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+#ifndef __RENDERTHEMESYMBIAN_H__
+#define __RENDERTHEMESYMBIAN_H__
+
+#include "config.h"
+
+#include "RenderTheme.h"
+#include "Event.h"
+#include "Document.h"
+#include "Image.h"
+#include "GraphicsContext.h"
+#include <../bidi.h>
+#include <eikenv.h>
+#include "RenderBox.h"
+#include <BitmapTransforms.h>
+#include "WebCoreGraphicsContext.h"
+#include "MaskedBitmap.h"
+#include "BitmapImage.h"
+#include "WebCoreWidget.h"
+
+// implement Symbian theme here
+
+namespace WebCore {
+
+enum {
+ ECheckBoxOn,
+ ECheckBoxOff,
+ ERadioOn,
+ ERadioOff,
+ ESelectArrow
+};
+
+class RenderThemeSymbian : public RenderTheme
+{
+public:
+ RenderThemeSymbian();
+ virtual ~RenderThemeSymbian();
+ // A method asking if the theme's controls actually care about redrawing when hovered.
+ bool supportsHover(const RenderStyle*) const { return true; }
+
+ void setCheckboxSize(RenderStyle*) const;
+ void setRadioSize(RenderStyle*) const;
+
+ void adjustButtonStyle(CSSStyleSelector*, RenderStyle*, Element*) const;
+ void adjustTextFieldStyle(CSSStyleSelector*, RenderStyle*, Element*) const;
+ void adjustMenuListStyle(CSSStyleSelector* selector, RenderStyle* style, Element* e) const;
+ void adjustMenuListButtonStyle(CSSStyleSelector* selector, RenderStyle* style, Element* e) const;
+
+ bool paintCheckbox(RenderObject* o, const RenderObject::PaintInfo& i, const IntRect& r);
+ bool paintButton(RenderObject*, const RenderObject::PaintInfo&, const IntRect&);
+ bool paintMenuListButton(RenderObject* o, const RenderObject::PaintInfo& i, const IntRect& r);
+ bool paintMenuList(RenderObject* o, const RenderObject::PaintInfo& i, const IntRect& r);
+ bool paintRadio(RenderObject* o, const RenderObject::PaintInfo& i, const IntRect& r);
+ bool paintTextField(RenderObject*, const RenderObject::PaintInfo&, const IntRect&);
+ bool paintTextArea(RenderObject*, const RenderObject::PaintInfo&, const IntRect&);
+
+
+ bool isControlStyled(const RenderStyle*, const BorderData&,
+ const BackgroundLayer&, const Color&) const;
+ bool controlSupportsTints(const RenderObject*) const;
+ void systemFont(int propId, FontDescription&) const;
+
+ Color platformActiveSelectionBackgroundColor() const;
+ Color platformInactiveSelectionBackgroundColor() const;
+ Color platformActiveSelectionForegroundColor() const;
+ Color platformInactiveSelectionForegroundColor() const;
+
+ void addIntrinsicMargins(RenderStyle*) const;
+ void close();
+ bool supportsFocus(EAppearance) const;
+ void paintButtonDecorations(RenderObject* o, const RenderObject::PaintInfo& i, const IntRect& r);
+
+ bool supportsFocusRing(const RenderStyle*) const;
+ void scaleImage(int type, int scalingFactor);
+ void scaleImageL(int type, int scalingFactor);
+
+ void cancel();
+ void run();
+
+ Image* m_checkBoxOn;
+ Image* m_checkBoxOff;
+ Image* m_scaledCheckBoxOn;
+ Image* m_scaledCheckBoxOff;
+ int m_scalingForCheckBoxOn;
+ int m_scalingForCheckBoxOff;
+
+ Image* m_radioButtonOn;
+ Image* m_radioButtonOff;
+ Image* m_scaledRadioOn;
+ Image* m_scaledRadioOff;
+ int m_scalingForRadioOn;
+ int m_scalingForRadioOff;
+
+ Image* m_selectArrow;
+ Image* m_scaledSelectArrow;
+ int m_scalingForSelectArrow;
+
+ CBitmapScaler* m_bitmapScaler;
+ CActiveSchedulerWait* m_asw;
+};
+
+
+class SyncScaler : public CActive
+{
+public:
+ SyncScaler();
+ ~SyncScaler();
+ void init();
+ void RunL();
+ void DoCancel();
+ TInt RunError(TInt aError);
+ int m_error;
+};
+
+}
+#endif// !__RENDERTHEMESYMBIAN_H__
--- a/webengine/osswebengine/WebCore/platform/symbian/StaticObjectsContainer.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebCore/platform/symbian/StaticObjectsContainer.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -35,8 +35,25 @@
#include "WebCannedImages.h"
#include "OOMHandler.h"
#include "SharedTimer.h"
+#include "TextEncodingRegistry.h"
+#include "CSSStyleSelector.h"
+#include "RenderStyle.h"
+#include "Page.h"
+#include "Cache.h"
+#include "StreamingTextCodecSymbian.h"
+#include "HTMLNames.h"
+#include "XMLNames.h"
+#include "FontCache.h"
+#include "RenderThemeSymbian.h"
+#include "qualifiedname.h"
+#include "XMLTokenizer.h"
#include <eikenv.h>
+#include "WidgetEngineBridge.h"
+#if defined(BRDO_LIW_FF)
+#include "DeviceBridge.h"
+#endif
+
const TInt KLowResolutionDpi = 130;
const TInt KMediumResolutionDpi = 200;
@@ -60,6 +77,7 @@
,m_oomHandler(0)
,m_fullScreenMode(false)
,m_pluginFullscreen(false)
+ ,m_symbianTheme(NULL)
{
// Check the device resolution
CEikonEnv* eikEnv = CEikonEnv::Static();
@@ -83,7 +101,11 @@
StaticObjectsContainer::~StaticObjectsContainer()
{
+ // Run KJS collector to cleanup any remaining references
+ // This must be run before Cache::deleteStaticCache to properly free resources
+ KJS::Collector::collect();
delete m_oomHandler;
+ FontCache::deleteFontDataCache();
delete m_fontCache;
delete m_formFillController;
delete m_pictograph;
@@ -94,8 +116,27 @@
delete m_cannedimg;
delete m_cursor;
delete m_pluginhandler;
+ delete m_symbianTheme;
gInstance = NULL;
+ deletePageStaticData();
+ CSSStyleSelector::deleteDefaultStyle();
+ deleteEncodingMaps();
+ RenderStyle::deleteDefaultRenderStyle();
+ Cache::deleteStaticCache();
+ TextCodecSymbian::deleteStatAvailCharsets();
+ QualifiedName::cleanup();
+ XMLNames::remove();
+ // HTMLNames::remove() will destroy the AtomicString table
+ // All other atomic string destruction must be done before this call
+ //
+ HTMLNames::remove();
+ XMLTokenizer::cleanupXMLStringParser();
shutdownSharedTimer();
+ m_widgetLibrary.Close();
+#if defined(BRDO_LIW_FF)
+ m_deviceLibrary.Close();
+#endif
+ CloseSTDLIB();
}
StaticObjectsContainer* StaticObjectsContainer::instance()
@@ -198,6 +239,40 @@
return m_pluginhandler;
}
+#if defined(BRDO_LIW_FF)
+MDeviceBridge* StaticObjectsContainer::getDeviceBridgeL()
+{
+ MDeviceBridge* device(NULL);
+
+ if( !m_deviceLibrary.Handle() ) {
+ _LIT( KDeviceDLLName, "jsdevice.dll" );
+ User::LeaveIfError( m_deviceLibrary.Load(KDeviceDLLName) );
+ }
+
+ TLibraryFunction device_entry = m_deviceLibrary.Lookup(1);
+ if (device_entry) {
+ device = (MDeviceBridge*) device_entry();
+ }
+ return device;
+}
+#endif
+
+MWidgetEngineBridge* StaticObjectsContainer::getWidgetEngineBridgeL()
+{
+ MWidgetEngineBridge* widget(NULL);
+
+ if( !m_widgetLibrary.Handle() ) {
+ _LIT( KBrowserWidgetEngineName, "widgetengine.dll" );
+ User::LeaveIfError( m_widgetLibrary.Load(KBrowserWidgetEngineName) );
+ }
+
+ TLibraryFunction entry = m_widgetLibrary.Lookup(1);
+ if (entry) {
+ widget = (MWidgetEngineBridge*) entry();
+ }
+ return widget;
+}
+
CBrCtl* StaticObjectsContainer::brctl() const
{
if (m_activeBrCtls.size() > 0)
@@ -236,6 +311,13 @@
bool StaticObjectsContainer::fullScreenMode(void){
return m_fullScreenMode;
}
+
+RenderTheme* StaticObjectsContainer::theme()
+{
+ if(!m_symbianTheme)
+ m_symbianTheme = new RenderThemeSymbian();
+ return m_symbianTheme;
+}
}
// END OF FILE
--- a/webengine/osswebengine/WebCore/platform/symbian/StaticObjectsContainer.h Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebCore/platform/symbian/StaticObjectsContainer.h Fri Jul 03 15:54:40 2009 +0100
@@ -19,6 +19,7 @@
#ifndef __STATICOBJECTCONTAINER_H__
#define __STATICOBJECTCONTAINER_H__
+#include <Browser_Platform_Variant.hrh>
#include <e32base.h>
#include <e32std.h>
#include <wtf/Noncopyable.h>
@@ -34,9 +35,12 @@
class PluginHandler;
class WebCannedImages;
class CBrCtl;
+class MWidgetEngineBridge;
+class MDeviceBridge;
namespace WebCore {
-
+class RenderThemeSymbian;
+class RenderTheme;
typedef enum
{
ELowScreenResolution,
@@ -68,7 +72,12 @@
PluginHandler* pluginHandler();
void setPluginFullscreen(bool val) { m_pluginFullscreen = val; }
bool isPluginFullscreen() { return m_pluginFullscreen; }
-
+#if defined(BRDO_LIW_FF)
+ MDeviceBridge* getDeviceBridgeL();
+#endif
+ MWidgetEngineBridge* getWidgetEngineBridgeL();
+ RenderTheme* theme();
+
virtual ~StaticObjectsContainer();
void ref(CBrCtl& brctl);
@@ -101,6 +110,11 @@
OOMHandler* m_oomHandler;
bool m_fullScreenMode;
bool m_pluginFullscreen;
+ RLibrary m_widgetLibrary;
+#if defined(BRDO_LIW_FF)
+ RLibrary m_deviceLibrary;
+#endif
+ RenderThemeSymbian* m_symbianTheme;
};
}
--- a/webengine/osswebengine/WebCore/platform/symbian/StreamingTextCodecSymbian.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebCore/platform/symbian/StreamingTextCodecSymbian.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -254,6 +254,12 @@
}
+void TextCodecSymbian::deleteStatAvailCharsets()
+{
+ delete s_availableCharsets;
+ s_availableCharsets = 0;
+}
+
}
// END OF FILE
--- a/webengine/osswebengine/WebCore/platform/symbian/StreamingTextCodecSymbian.h Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebCore/platform/symbian/StreamingTextCodecSymbian.h Fri Jul 03 15:54:40 2009 +0100
@@ -35,6 +35,8 @@
virtual String decode(const char*, size_t length, bool flush = false);
virtual CString encode(const UChar*, size_t length, bool allowEntities = false);
+
+ static void deleteStatAvailCharsets();
private:
bool initializeConverter();
--- a/webengine/osswebengine/WebCore/platform/symbian/TextBreakIteratorSymbian.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebCore/platform/symbian/TextBreakIteratorSymbian.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -165,44 +165,55 @@
return -1;
}
+static WordBreakIteratorSymbian *wordIterator = 0;
+static CharBreakIteratorSymbian *charIterator = 0;
+static LineBreakIteratorSymbian *lineIterator = 0;
+struct cleanupIterators {
+ ~cleanupIterators() {
+ delete wordIterator;
+ wordIterator = NULL;
+ delete charIterator;
+ charIterator = NULL;
+ delete lineIterator;
+ lineIterator = NULL;
+ }
+};
+static cleanupIterators deleteBreakIterator;
TextBreakIterator* wordBreakIterator(const UChar* string, int length)
{
- static WordBreakIteratorSymbian *iterator = 0;
- if (!iterator)
- iterator = new WordBreakIteratorSymbian;
+ if (!wordIterator)
+ wordIterator = new WordBreakIteratorSymbian;
- iterator->string = string;
- iterator->length = length;
- iterator->currentPos = 0;
+ wordIterator->string = string;
+ wordIterator->length = length;
+ wordIterator->currentPos = 0;
- return iterator;
+ return wordIterator;
}
TextBreakIterator* characterBreakIterator(const UChar* string, int length)
{
- static CharBreakIteratorSymbian *iterator = 0;
- if (!iterator)
- iterator = new CharBreakIteratorSymbian;
+ if (!charIterator)
+ charIterator = new CharBreakIteratorSymbian;
- iterator->string = string;
- iterator->length = length;
- iterator->currentPos = 0;
+ charIterator->string = string;
+ charIterator->length = length;
+ charIterator->currentPos = 0;
- return iterator;
+ return charIterator;
}
TextBreakIterator* lineBreakIterator(const UChar* string, int length)
{
- static LineBreakIteratorSymbian *iterator = 0;
- if (!iterator)
- iterator = new LineBreakIteratorSymbian;
+ if (!lineIterator)
+ lineIterator = new LineBreakIteratorSymbian;
- iterator->string = string;
- iterator->length = length;
- iterator->currentPos = 0;
+ lineIterator->string = string;
+ lineIterator->length = length;
+ lineIterator->currentPos = 0;
- return iterator;
+ return lineIterator;
}
TextBreakIterator* sentenceBreakIterator(const UChar*, int)
@@ -244,3 +255,5 @@
}
+
+
--- a/webengine/osswebengine/WebCore/platform/symbian/bitmap/MaskedBitmap.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebCore/platform/symbian/bitmap/MaskedBitmap.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -644,6 +644,7 @@
return iScaledBitmap;
delete iScaledBitmap;
+ iScaledBitmap = NULL;
iScaledBitmap = CMaskedBitmap::NewL();
CFbsBitmap& bmp = iScaledBitmap->BitmapModifyable();
--- a/webengine/osswebengine/WebCore/rendering/RenderBox.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebCore/rendering/RenderBox.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -54,6 +54,17 @@
typedef WTF::HashMap<const RenderBox*, int> OverrideSizeMap;
static OverrideSizeMap* gOverrideSizeMap = 0;
+struct cleanOverridSizeMap {
+ ~cleanOverridSizeMap() {
+ if( gOverrideSizeMap ) {
+ gOverrideSizeMap->clear();
+ delete gOverrideSizeMap;
+ gOverrideSizeMap = 0;
+ }
+ }
+};
+struct cleanOverridSizeMap cleanOSizeMap;
+
RenderBox::RenderBox(Node* node)
: RenderObject(node)
, m_width(0)
--- a/webengine/osswebengine/WebCore/rendering/RenderStyle.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebCore/rendering/RenderStyle.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -19,7 +19,6 @@
*
*/
-#include "config.h"
#include "RenderStyle.h"
#include "CSSStyleSelector.h"
@@ -1443,4 +1442,15 @@
return noneList;
}
+#if PLATFORM(SYMBIAN)
+void RenderStyle::deleteDefaultRenderStyle()
+{
+ //goes to overridden delete operator but calls destructor
+ delete defaultStyle;
+ //release cell allocated because overridder delete does not do that.
+ free(defaultStyle);
+ defaultStyle = NULL;
}
+#endif
+
+}
--- a/webengine/osswebengine/WebCore/rendering/RenderStyle.h Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebCore/rendering/RenderStyle.h Fri Jul 03 15:54:40 2009 +0100
@@ -27,6 +27,7 @@
#ifndef RenderStyle_h
#define RenderStyle_h
+#include "config.h"
/*
* WARNING:
* --------
@@ -1911,9 +1912,11 @@
static bool initialVisuallyOrdered() { return false; }
static float initialTextStrokeWidth() { return 0; }
static unsigned short initialColumnCount() { return 1; }
+
#if PLATFORM(SYMBIAN)
static const AtomicString& initialWapInputFormat() { return nullAtom; }
static bool initialWapInputRequired() { return false; }
+ static void deleteDefaultRenderStyle();
#endif
// Keep these at the end.
--- a/webengine/osswebengine/WebCore/rendering/RenderWidget.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebCore/rendering/RenderWidget.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -41,12 +41,27 @@
using namespace EventNames;
+static HashMap<const Widget*, RenderWidget*>* staticWidgetRendererMap;
+
static HashMap<const Widget*, RenderWidget*>& widgetRendererMap()
{
- static HashMap<const Widget*, RenderWidget*>* staticWidgetRendererMap = new HashMap<const Widget*, RenderWidget*>;
+ if( !staticWidgetRendererMap ) {
+ staticWidgetRendererMap = new HashMap<const Widget*, RenderWidget*>;
+ }
return *staticWidgetRendererMap;
}
+struct renderMapCleaner {
+ ~renderMapCleaner() {
+ if( staticWidgetRendererMap ) {
+ staticWidgetRendererMap->clear();
+ delete staticWidgetRendererMap;
+ staticWidgetRendererMap = 0;
+ }
+ }
+};
+struct renderMapCleaner renderMapClean;
+
RenderWidget::RenderWidget(Node* node)
: RenderReplaced(node)
, m_widget(0)
--- a/webengine/osswebengine/WebCore/rendering/RootInlineBox.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebCore/rendering/RootInlineBox.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -38,6 +38,17 @@
typedef WTF::HashMap<const RootInlineBox*, EllipsisBox*> EllipsisBoxMap;
static EllipsisBoxMap* gEllipsisBoxMap = 0;
+struct EllipsisBoxCleanup {
+ ~EllipsisBoxCleanup() {
+ if( gEllipsisBoxMap ) {
+ gEllipsisBoxMap->clear();
+ delete gEllipsisBoxMap;
+ gEllipsisBoxMap = 0;
+ }
+ }
+};
+struct EllipsisBoxCleanup ellipsisCleaner;
+
void* RootInlineBox::Overflow::operator new(size_t sz, RenderArena* renderArena) throw()
{
return renderArena->allocate(sz);
--- a/webengine/osswebengine/WebCore/rendering/bidi.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebCore/rendering/bidi.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -95,6 +95,19 @@
static bool previousLineBrokeCleanly = true;
static int numSpaces;
+struct cleanupMidpoints {
+ ~cleanupMidpoints() {
+ if(smidpoints)
+ {
+ smidpoints->clear();
+ delete smidpoints;
+ smidpoints = 0;
+ }
+ }
+};
+static cleanupMidpoints deleteMidPoints;
+
+
static int getBPMWidth(int childValue, Length cssUnit)
{
if (!cssUnit.isIntrinsicOrAuto())
--- a/webengine/osswebengine/WebKit.pri Fri May 08 08:25:06 2009 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,64 +0,0 @@
-# Include file to make it easy to include WebKit into Qt projects
-
-
-isEmpty(OUTPUT_DIR) {
- CONFIG(release):OUTPUT_DIR=$$PWD/WebKitBuild/Release
- CONFIG(debug):OUTPUT_DIR=$$PWD/WebKitBuild/Debug
-}
-
-!gtk-port:CONFIG += qt-port
-qt-port:DEFINES += BUILDING_QT__=1
-qt-port:!building-libs {
- QMAKE_LIBDIR = $$OUTPUT_DIR/lib $$QMAKE_LIBDIR
- LIBS += -lQtWebKit
-}
-gtk-port:CONFIG += link_pkgconfig
-gtk-port:PKGCONFIG += cairo cairo-ft gdk-2.0 gtk+-2.0 libcurl
-gtk-port:DEFINES += BUILDING_GTK__=1 BUILDING_CAIRO__
-gtk-port:LIBS += -L$$OUTPUT_DIR/lib -lWebKitGtk $$system(icu-config --ldflags) -ljpeg -lpng
-gtk-port:QMAKE_CXXFLAGS += $$system(icu-config --cppflags)
-
-DEFINES += USE_SYSTEM_MALLOC
-CONFIG(release) {
- DEFINES += NDEBUG
-}
-
-BASE_DIR = $$PWD
-qt-port:INCLUDEPATH += \
- $$PWD/WebKit/qt/Api
-gtk-port:INCLUDEPATH += \
- $$BASE_DIR/WebCore/platform/gtk \
- $$BASE_DIR/WebCore/platform/network/curl \
- $$BASE_DIR/WebCore/platform/graphics/cairo \
- $$BASE_DIR/WebCore/loader/gtk \
- $$BASE_DIR/WebCore/page/gtk \
- $$BASE_DIR/WebKit/gtk/Api \
- $$BASE_DIR/WebKit/gtk/WebCoreSupport
-INCLUDEPATH += \
- $$BASE_DIR/JavaScriptCore/ \
- $$BASE_DIR/JavaScriptCore/kjs \
- $$BASE_DIR/JavaScriptCore/bindings \
- $$BASE_DIR/JavaScriptCore/bindings/c \
- $$BASE_DIR/JavaScriptCore/wtf \
- $$BASE_DIR/JavaScriptCore/ForwardingHeaders \
- $$BASE_DIR/WebCore \
- $$BASE_DIR/WebCore/ForwardingHeaders \
- $$BASE_DIR/WebCore/platform \
- $$BASE_DIR/WebCore/platform/network \
- $$BASE_DIR/WebCore/platform/graphics \
- $$BASE_DIR/WebCore/loader \
- $$BASE_DIR/WebCore/page \
- $$BASE_DIR/WebCore/css \
- $$BASE_DIR/WebCore/dom \
- $$BASE_DIR/WebCore/bridge \
- $$BASE_DIR/WebCore/editing \
- $$BASE_DIR/WebCore/rendering \
- $$BASE_DIR/WebCore/history \
- $$BASE_DIR/WebCore/xml \
- $$BASE_DIR/WebCore/html
-
-
-macx {
- INCLUDEPATH += /usr/include/libxml2
- LIBS += -lxml2 -lxslt
-}
--- a/webengine/osswebengine/WebKit.pro Fri May 08 08:25:06 2009 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,17 +0,0 @@
-TEMPLATE = subdirs
-CONFIG += ordered
-!gtk-port:CONFIG += qt-port
-qt-port:!win32-*:SUBDIRS += WebKit/qt/Plugins
-SUBDIRS += \
- JavaScriptCore/pcre/dftables.pro \
- WebCore \
- JavaScriptCore/kjs/testkjs.pro
-
-qt-port {
- SUBDIRS += WebKit/qt/QtLauncher
-
- !win32-*: SUBDIRS += WebKitTools/DumpRenderTree/qt/DumpRenderTree.pro
-}
-
-gtk-port:SUBDIRS += \
- WebKitTools/GtkLauncher
--- a/webengine/osswebengine/WebKit/gtk/Api/headers.pri Fri May 08 08:25:06 2009 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,7 +0,0 @@
-WEBKIT_API_HEADERS = $$PWD/webkitgtkdefines.h \
- $$PWD/webkitgtkframe.h \
- $$PWD/webkitgtkframedata.h \
- $$PWD/webkitgtkglobal.h \
- $$PWD/webkitgtknetworkrequest.h \
- $$PWD/webkitgtkpage.h \
- $$PWD/webkitgtksettings.h
--- a/webengine/osswebengine/WebKit/qt/Api/headers.pri Fri May 08 08:25:06 2009 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,10 +0,0 @@
-WEBKIT_API_HEADERS = $$PWD/qcookiejar.h \
- $$PWD/qwebframe.h \
- $$PWD/qwebkitglobal.h \
- $$PWD/qwebnetworkinterface.h \
- $$PWD/qwebobjectplugin.h \
- $$PWD/qwebobjectpluginconnector.h \
- $$PWD/qwebpage.h \
- $$PWD/qwebpagehistory.h \
- $$PWD/qwebsettings.h \
- $$PWD/qwebhistoryinterface.h
--- a/webengine/osswebengine/WebKit/qt/Plugins/Plugins.pro Fri May 08 08:25:06 2009 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,10 +0,0 @@
-TEMPLATE = lib
-TARGET = qtwebico
-CONFIG += static plugin
-HEADERS += ICOHandler.h
-SOURCES += ICOHandler.cpp
-
-include(../../WebKit.pri)
-
-contains(QT_CONFIG, reduce_exports):CONFIG += hide_symbols
-unix:contains(QT_CONFIG, reduce_relocations):CONFIG += bsymbolic_functions
--- a/webengine/osswebengine/WebKit/qt/QtLauncher/QtLauncher.pro Fri May 08 08:25:06 2009 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,9 +0,0 @@
-TEMPLATE = app
-SOURCES += main.cpp
-CONFIG -= app_bundle
-DESTDIR = ../../../bin
-
-include(../../../WebKit.pri)
-
-macx:QT+=xml network
-QMAKE_RPATHDIR = $$OUTPUT_DIR/lib $$QMAKE_RPATHDIR
--- a/webengine/osswebengine/WebKit/s60/group/JavaScriptCore/JavaScriptCore.mmp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebKit/s60/group/JavaScriptCore/JavaScriptCore.mmp Fri Jul 03 15:54:40 2009 +0100
@@ -23,7 +23,11 @@
#include <platform_paths.hrh>
#include <platform/mw/Browser_platform_variant.hrh>
-LANGUAGE_IDS
+#ifdef __S60_32__
+LANG sc
+#else
+LANGUAGE_IDS
+#endif
CAPABILITY CAP_GENERAL_DLL
VENDORID VID_DEFAULT
--- a/webengine/osswebengine/WebKit/s60/group/webcore/platform/platform.mmp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebKit/s60/group/webcore/platform/platform.mmp Fri Jul 03 15:54:40 2009 +0100
@@ -28,7 +28,11 @@
START RESOURCE ../../../data/webkit.rss
HEADER
TARGETPATH RESOURCE_FILES_DIR
-LANGUAGE_IDS
+#ifdef __S60_32__
+LANG sc
+#else
+LANGUAGE_IDS
+#endif
END
START BITMAP webkit.mbm
--- a/webengine/osswebengine/WebKit/s60/group/webkit/webkit.mmp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebKit/s60/group/webkit/webkit.mmp Fri Jul 03 15:54:40 2009 +0100
@@ -51,6 +51,7 @@
SOURCE WebScrollingDecelerator.cpp
SOURCE WebScrollingDeceleratorGH.cpp
SOURCE WebScrollbarDrawer.cpp
+SOURCE WebSprite.cpp
SOURCEPATH ../../FormControls
SOURCE WebFormFill.cpp
--- a/webengine/osswebengine/WebKit/s60/misc/WebTabbedNavigation.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebKit/s60/misc/WebTabbedNavigation.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -23,6 +23,8 @@
#include "WebUtil.h"
#include "Document.h"
#include "Frame.h"
+#include "HitTestRequest.h"
+#include "HitTestResult.h"
#include "HTMLNames.h"
#include "FrameTree.h"
#include "BrCtlDefs.h"
@@ -38,6 +40,7 @@
#include "FocusController.h"
#include "RenderListBox.h"
#include "HTMLSelectElement.h"
+#include "HTMLInputElement.h"
using namespace WebCore;
using namespace HTMLNames;
@@ -75,6 +78,28 @@
}
}
+void WebTabbedNavigation::updateCursorPosition(const TPoint& pos)
+{
+ m_focusPosition = pos;
+ WebFrame* frame = StaticObjectsContainer::instance()->webCursor()->getFrameAtPoint(pos);
+ TPoint point(frame->frameView()->viewCoordsInFrameCoords(pos));
+
+ Element* node = core(frame)->document()->elementFromPoint(point.iX, point.iY);
+ if (node->isFocusable() && !node->hasTagName(iframeTag) && !node->hasTagName(frameTag))
+ m_webView->page()->focusController()->setFocusedNode(node, core(frame));
+ else
+ m_webView->page()->focusController()->setFocusedNode(NULL, core(frame));
+ m_selectedElementRect.SetRect(pos.iX, pos.iY, pos.iX + 1, pos.iY + 1);
+}
+
+void WebTabbedNavigation::focusedElementChanged(Element* element)
+{
+ m_initializedForPage = true;
+ m_firstNavigationOnPage = false;
+ m_node = element;
+ m_selectedElementRect = element->getRect().Rect();
+ m_focusPosition = StaticObjectsContainer::instance()->webCursor()->position();
+}
bool WebTabbedNavigation::navigate(int horizontalDir, int verticalDir)
{
@@ -181,6 +206,16 @@
m_focusPosition = selectedPoint;
selectedRect = newRect;
m_selectedElementRect = selectedRect;
+
+ int x, y;
+ selectedNode->renderer()->absolutePosition(x, y);
+ Vector<IntRect> rects;
+ selectedNode->renderer()->absoluteRects(rects, x, y);
+ WebFrameView* fv = kit(selectedNode->document()->frame())->frameView();
+ if (rects.size() > 0) {
+ selectedPoint = TPoint(rects[0].x(), rects[0].y());
+ selectedPoint = fv->frameCoordsInViewCoords(selectedPoint);
+ }
StaticObjectsContainer::instance()->webCursor()->updatePositionAndElemType(selectedPoint);
// special handling for Select-Multi
if (m_webView->focusedElementType() == TBrCtlDefs::EElementSelectMultiBox) {
@@ -218,6 +253,16 @@
m_webView->mainFrame()->frameView()->scrollTo(contentPos + TPoint(horizontalDir * m_webView->Rect().Width() / KScrollWhenNotFound, verticalDir * m_webView->Rect().Height() / KScrollWhenNotFound));
TPoint diff(m_webView->mainFrame()->frameView()->contentPos() - contentPos);
if (diff.iX || diff.iY) {
+ Frame* focusedFrame = m_webView->page()->focusController()->focusedFrame();
+ if (focusedFrame == NULL) focusedFrame = m_webView->page()->mainFrame();
+ Node* focusNode = focusedFrame->document()->focusedNode();
+ if (focusNode) {
+ TRect selectedRect = focusNode->getRect().Rect();
+ selectedRect = TRect(kit(focusedFrame)->frameView()->frameCoordsInViewCoords(selectedRect.iTl),
+ kit(focusedFrame)->frameView()->frameCoordsInViewCoords(selectedRect.iBr));
+ if (!selectedRect.Intersects(kit(focusedFrame)->frameView()->visibleRect()))
+ m_webView->page()->focusController()->setFocusedNode(NULL,0);
+ }
m_selectedElementRect.Move(diff);
m_focusPosition = oldFocusPoint + diff;
m_node = NULL;
@@ -289,6 +334,7 @@
int WebTabbedNavigation::distanceFunction(int horizontalDir, int verticalDir, TRect& rect, TPoint& point)
{
+ // Based on http://www.w3.org/TR/WICD/#focus-navigation
TReal x, y, euclidianDistance;
int sameAxisDist, otherAxisDist, overlap;
@@ -306,6 +352,10 @@
int top = max(m_selectedElementRect.iTl.iY, rect.iTl.iY);
int bottom = std::min(m_selectedElementRect.iBr.iY, rect.iBr.iY);
overlap = bottom - top;
+ if (overlap == rect.Height()) {
+ euclidianDistance = (euclidianDistance * rect.Height()) / m_selectedElementRect.Height();
+ otherAxisDist = 0;
+ }
}
}
else { // vertical
@@ -316,10 +366,14 @@
int top = max(m_selectedElementRect.iTl.iX, rect.iTl.iX);
int bottom = std::min(m_selectedElementRect.iBr.iX, rect.iBr.iX);
overlap = bottom - top;
+ if (overlap == rect.Width()) {
+ euclidianDistance = (euclidianDistance * rect.Width()) / m_selectedElementRect.Width();
+ otherAxisDist = 0;
+ }
}
}
long ed, o;
Math::Int(ed, euclidianDistance);
Math::Int(o, sqrt(overlap));
- return ed + sameAxisDist + 2 * otherAxisDist + o;
+ return ed + sameAxisDist + 2 * otherAxisDist - o;
}
--- a/webengine/osswebengine/WebKit/s60/misc/WebTabbedNavigation.h Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebKit/s60/misc/WebTabbedNavigation.h Fri Jul 03 15:54:40 2009 +0100
@@ -21,6 +21,10 @@
#include <e32std.h>
class WebView;
+namespace WebCore {
+ class Element;
+ class Node;
+};
class WebTabbedNavigation {
public:
@@ -30,6 +34,8 @@
bool navigate(int horizontalDir, int verticalDir);
void clear();
void initializeForPage();
+ void updateCursorPosition(const TPoint& pos);
+ void focusedElementChanged(WebCore::Element* element);
private:
bool selectNode(int horizontalDir, int verticalDir, TRect& selectedRect, TRect& newNodeRect, TPoint& selectedPoint, TPoint& newFocusPoint);
--- a/webengine/osswebengine/WebKit/s60/misc/WebUtil.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebKit/s60/misc/WebUtil.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -256,8 +256,6 @@
if (!f || !f->document() || !f->document()->renderer())
return imglist;
- CleanupStack::PushL(imglist);
-
Document* doc = f->document();
FrameView* v = doc->view();
IntRect r1 = wf_.frameView()->topView()->mainFrame()->frameView()->rect();
@@ -308,13 +306,12 @@
}
if (!imgexists)
- imglist->AppendL(tImg);
+ TRAP_IGNORE( imglist->AppendL(tImg) );
}
}
}
}
}
- CleanupStack::Pop(imglist);
return imglist;
}
@@ -326,7 +323,6 @@
if (!f || !f->document())
return linkList;
- CleanupStack::PushL(linkList);
for (Node *n = f->document(); n; n = n->traverseNextNode()) {
if (n->isElementNode() && n->hasTagName(linkTag)) {
@@ -339,11 +335,10 @@
String title = e->getAttribute(titleAttr);
TBrCtlSubscribeTo item(title.des(), href.des(), 0);
- linkList->AppendL(item);
+ TRAP_IGNORE( linkList->AppendL(item) );
}
}
}
- CleanupStack::Pop(linkList);
return linkList;
}
@@ -467,27 +462,37 @@
void addOneMenuItemAfter(CEikMenuPane& menuPane, unsigned int after, int command, int resourceId, unsigned int commandBase)
{
CEikMenuPaneItem::SData item;
- HBufC* buf = StringLoader::LoadLC(resourceId);
+ HBufC* buf = NULL;
+ TRAP_IGNORE( buf = StringLoader::LoadL(resourceId));
+ if(buf == NULL)
+ {
+ return;
+ }
item.iText.Copy(*buf);
- CleanupStack::PopAndDestroy(); // buf
+ delete buf;
buf = NULL;
item.iCommandId = command + commandBase;
item.iFlags = 0;
item.iCascadeId = 0;
- menuPane.AddMenuItemL(item, after);
+ TRAP_IGNORE( menuPane.AddMenuItemL(item, after) );
}
void insertOneMenuItem(CEikMenuPane& menuPane, int command, int resourceId, unsigned int commandBase)
{
CEikMenuPaneItem::SData item;
- HBufC* buf = StringLoader::LoadLC(resourceId);
+ HBufC* buf = NULL;
+ TRAP_IGNORE( buf = StringLoader::LoadL(resourceId));
+ if(buf == NULL)
+ {
+ return;
+ }
item.iText.Copy(*buf);
- CleanupStack::PopAndDestroy(); // buf
+ delete buf;
buf = NULL;
item.iCommandId = command + commandBase;
item.iFlags = 0;
item.iCascadeId = 0;
- menuPane.InsertMenuItemL(item, 0);
+ TRAP_IGNORE( menuPane.InsertMenuItemL(item, 0) );
}
int textMultiplier(int fontLevel, int originalSize)
@@ -601,7 +606,7 @@
url.append(telbook);
url.append(numberNameSeparator);
url.append(email);
- handleSpecialSchemeL(url, webView->brCtl());
+ TRAP_IGNORE( handleSpecialSchemeL(url, webView->brCtl()) );
}
}
}
--- a/webengine/osswebengine/WebKit/s60/plugins/NpnImplementation.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebKit/s60/plugins/NpnImplementation.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -301,6 +301,7 @@
//
NPError NpnGetValue(NPP aInstance, NPNVariable aVariable, void *aRetValue)
{
+ TInt err = NPERR_NO_ERROR;
switch (aVariable) {
@@ -354,9 +355,11 @@
if (windowObject) {
void **v = (void **)aRetValue;
*v = windowObject;
- return NPERR_NO_ERROR;
}
- return NPERR_GENERIC_ERROR;
+ else {
+ err = NPERR_GENERIC_ERROR;
+ }
+ break;
}
case NPNVDOMWindow:
case NPNVxDisplay: // Unix only: Returns the current Display
@@ -377,11 +380,14 @@
default:
+ {
*((TBool*) aRetValue) = EFalse;
+ err = NPERR_INVALID_PARAM;
+ }
break;
} // end of switch
- return NPERR_NO_ERROR;
+ return err;
}
@@ -462,7 +468,7 @@
{
NPBool* isFullScreen = (NPBool*)aSetValue;
PluginWin* pluginWin = (PluginWin*)aInstance->ndata;
- pluginWin->TogleScreenMode(*isFullScreen);
+ pluginWin->ToggleScreenMode(*isFullScreen);
break;
}
case NPPVPluginZoom:
--- a/webengine/osswebengine/WebKit/s60/plugins/PluginHandler.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebKit/s60/plugins/PluginHandler.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -533,43 +533,50 @@
// -----------------------------------------------------------------------------
//
TInt PluginHandler::findPlugin(const TDesC& mimeType)
-{
+ {
LOAD_PLUGINS
-
- HBufC* newMimeType = NULL;
- _LIT(KSeparator, "*");
- TInt pluginIndex;
+
+ TInt bufSize( KMimeTypeLength > mimeType.Length() ? KMimeTypeLength : mimeType.Length() );
+ HBufC* newMimeType = HBufC::New(bufSize);
+ if( newMimeType == NULL )
+ {
+ return KErrNoMemory;
+ }
+ _LIT(KSeparator, "*");
+ TInt pluginIndex;
TInt mimeIndex;
- if (mimeType.FindF(KMimeTypeAudio) != KErrNotFound){
- newMimeType = HBufC::NewLC(KMimeTypeLength);
+ if( mimeType.FindF(KMimeTypeAudio) != KErrNotFound )
+ {
newMimeType->Des().Copy(KMimeTypeAudio);
- newMimeType->Des().Append(KSeparator);
- }
- else if (mimeType.FindF(KMimeTypeVideo) != KErrNotFound){
- newMimeType = HBufC::NewLC(KMimeTypeLength);
+ newMimeType->Des().Append(KSeparator);
+ }
+ else if ( mimeType.FindF(KMimeTypeVideo) != KErrNotFound )
+ {
newMimeType->Des().Copy(KMimeTypeVideo);
- newMimeType->Des().Append(KSeparator);
- }
- else{
- newMimeType = HBufC::NewLC(mimeType.Length());
- newMimeType = mimeType.AllocL();
- }
- CleanupStack::Pop(); //pop newMimeType
-
- for (pluginIndex = 0; pluginIndex < m_pluginInfoArray.Count(); pluginIndex++) {
+ newMimeType->Des().Append(KSeparator);
+ }
+ else
+ {
+ newMimeType->Des().Copy(mimeType);
+ }
+
+ for (pluginIndex = 0; pluginIndex < m_pluginInfoArray.Count(); pluginIndex++)
+ {
for (mimeIndex = 0;
mimeIndex < m_pluginInfoArray[pluginIndex]->m_mimeTypes.Count();
- mimeIndex++) {
- if (!m_pluginInfoArray[pluginIndex]->m_mimeTypes[mimeIndex]->CompareF(*newMimeType)) {
+ mimeIndex++)
+ {
+ if (!m_pluginInfoArray[pluginIndex]->m_mimeTypes[mimeIndex]->CompareF(*newMimeType))
+ {
delete newMimeType;
- return m_pluginInfoArray[pluginIndex]->m_handle;
+ return m_pluginInfoArray[pluginIndex]->m_handle;
+ }
}
}
+ delete newMimeType;
+ return KErrNotFound;
}
- delete newMimeType;
- return KErrNotFound;
-}
// -----------------------------------------------------------------------------
// PluginHandler::findPluginByExtension
--- a/webengine/osswebengine/WebKit/s60/plugins/PluginLoader.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebKit/s60/plugins/PluginLoader.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -423,20 +423,20 @@
// Method to return transaction Id, using the request url
// -----------------------------------------------------------------------------
TInt CPluginLoader::GetTransactionId( const TDesC8& aRequestUrl )
+ {
+ for (TInt i = 0;i < iPluginLoadDataArray->Count(); i++)
{
- for (TInt i = 0;i < iPluginLoadDataArray->Count(); i++)
+ CPluginLoadData& loadData = iPluginLoadDataArray->At(i);
+ if (loadData.RequestUrl())
{
- CPluginLoadData& loadData = iPluginLoadDataArray->At(i);
- if (loadData.RequestUrlL())
- {
- if (aRequestUrl.Compare(*loadData.RequestUrlL()) == 0)
- {
- return loadData.TransactionId();
- }
- }
+ if (aRequestUrl.Compare(*loadData.RequestUrl()) == 0)
+ {
+ return loadData.TransactionId();
+ }
}
+ }
return KErrNotFound;
- }
+ }
// -----------------------------------------------------------------------------
// CPluginLoader::GetCompleteError
@@ -553,17 +553,16 @@
TBool CPluginLoader::SaveResponseHeader( TInt aTrId,
CUrlResponseHeaderInfo& aResponseHeader )
{
- for (TInt i = 0;i < iPluginLoadDataArray->Count(); i++)
- {
- CPluginLoadData& loadData = iPluginLoadDataArray->At(i);
- if (loadData.TransactionId() == aTrId)
+ for (TInt i = 0;i < iPluginLoadDataArray->Count(); i++)
{
- loadData.SetRequestUrlL(aResponseHeader.RequestUrl());
- return ETrue;
+ CPluginLoadData& loadData = iPluginLoadDataArray->At(i);
+ if (loadData.TransactionId() == aTrId)
+ {
+ TRAPD( error, loadData.SetRequestUrlL(aResponseHeader.RequestUrl()) );
+ return error == KErrNone;
+ }
}
- }
-
- return EFalse;
+ return EFalse;
}
// -----------------------------------------------------------------------------
--- a/webengine/osswebengine/WebKit/s60/plugins/PluginLoader.h Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebKit/s60/plugins/PluginLoader.h Fri Jul 03 15:54:40 2009 +0100
@@ -329,12 +329,12 @@
void SetRequestUrlL(const TDesC8& aRequestUrl);
/**
- * RequestUrlL
+ * RequestUrl
* Return the request url
* @since 3.1
* @return void
*/
- HBufC8* RequestUrlL() { return iRequestUrl; }
+ HBufC8* RequestUrl() { return iRequestUrl; }
/**
* SetURLLoader
--- a/webengine/osswebengine/WebKit/s60/plugins/PluginPlayer.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebKit/s60/plugins/PluginPlayer.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -130,13 +130,12 @@
DrawNow();
// not sure why we need this for bavp
m_plugin->SetRect( TRect( TPoint(x,y), m_orgrect.Size() ) );
- m_plugin->setPluginFocusL(ETrue);
-
+ TRAP_IGNORE( m_plugin->setPluginFocusL(ETrue) );
}
void PluginPlayer::stop()
{
- m_plugin->setPluginFocusL(EFalse);
+ TRAP_IGNORE( m_plugin->setPluginFocusL(EFalse) );
m_plugin->SetParent( m_orgparent );
m_plugin->SetRect( TRect( m_orgrect.iTl, m_orgrect.Size() ) );
m_plugin->makeVisible( EFalse );
--- a/webengine/osswebengine/WebKit/s60/plugins/PluginSkin.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebKit/s60/plugins/PluginSkin.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -306,24 +306,28 @@
// ----------------------------------------------------------------------------
void PluginSkin::pluginFocusChanged(TBool focus)
{
- //Trigger Webview to notify all plugins about current view set to foreground/background for playing/pausing swf files (resp.)
- control(m_frame)->webView()->notifyPlugins(focus);
if (control(m_frame)->webView()->pageFullScreenHandler() &&
!control(m_frame)->webView()->pageFullScreenHandler()->isFullScreenMode())
return;
if (focus && !m_flashContent)
{
+ TRAP_IGNORE(
control(m_frame)->webView()->LeaveFullscreenBrowsingL();
- control(m_frame)->webView()->notifyFullscreenModeChangeL( EFalse );
+ control(m_frame)->webView()->notifyFullscreenModeChangeL( EFalse );
+ );
}
else if (focus)
{
+ TRAP_IGNORE(
control(m_frame)->webView()->pageFullScreenHandler()->showEscBtnL();
+ );
}
else
{
+ TRAP_IGNORE(
control(m_frame)->webView()->pageFullScreenHandler()->hideEscBtnL();
+ );
}
}
@@ -460,20 +464,22 @@
// Set right soft key
m_frame->frameView()->topView()->brCtl()->updateDefaultSoftkeys();
pluginHandler->setActivePlugin(this);
+ pluginHandler->setPluginToActivate(NULL);
}
}
else
{
m_active = ETrue;
pluginHandler->setActivePlugin(this);
- m_frame->frameView()->topView()->openPluginPlayer(m_pluginwin);
+ TRAP_IGNORE( m_frame->frameView()->topView()->openPluginPlayerL(m_pluginwin));
consumed = ETrue;
m_active = EFalse;
pluginHandler->setActivePlugin(NULL);
}
} else {
if ( m_pluginSupported ) {
- NetscapePlugInStreamLoaderClient* pluginloader = NetscapePlugInStreamLoaderClient::NewL(*m_url, this, core(m_frame));
+ NetscapePlugInStreamLoaderClient* pluginloader = NULL;
+ TRAP_IGNORE( pluginloader = NetscapePlugInStreamLoaderClient::NewL(*m_url, this, core(m_frame)));
if (pluginloader) {
pluginloader->start();
}
@@ -619,18 +625,6 @@
}
-// -----------------------------------------------------------------------------
-// PluginSkin::ViewFocusChanged
-// From MViewFocusObserver
-// Callback from the view when the focus changes
-// -----------------------------------------------------------------------------
-void PluginSkin::viewFocusChanged(TBool focused)
- {
- if (m_pluginwin)
- {
- m_pluginwin->viewFocusChanged(focused);
- }
- }
// -----------------------------------------------------------------------------
// PluginSkin::PositionChanged
@@ -997,15 +991,6 @@
return apId;
}
-void PluginSkin::handlePluginForeground(TBool focus)
-{
- // Send Plugin Visible/Invisible event
- if (m_pluginwin)
- {
- m_pluginwin->NotifyPluginVisible(focus);
- }
-}
-
TPluginLoadMode PluginSkin::GetLoadMode(const TDesC* aWindowType)
{
--- a/webengine/osswebengine/WebKit/s60/plugins/PluginSkin.h Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebKit/s60/plugins/PluginSkin.h Fri Jul 03 15:54:40 2009 +0100
@@ -379,8 +379,6 @@
void playPluginContent(const TDesC8& aRequestUrl) {};
- void viewFocusChanged(TBool focused);
-
void positionChanged();
void stopPluginContent(const TDesC8& aRequestUrl) {};
@@ -430,7 +428,6 @@
* @return Bool.
*/
TBool RunScript();
- void handlePluginForeground(TBool focus);
private: // private member data
void setPluginWinClipedRect();
TRect frameVisibleRect() const;
--- a/webengine/osswebengine/WebKit/s60/plugins/PluginWin.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebKit/s60/plugins/PluginWin.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -227,8 +227,6 @@
void PluginWin::processEventL( TPluginEventType eventType,
TBool& consumed )
{
- CBrCtl* brCtl = control(m_pluginskin->frame());
- WebView* view = brCtl->webView();
consumed = EFalse;
switch ( eventType ) {
@@ -239,7 +237,6 @@
m_notifier->NotifyL( MPluginNotifier::EPluginActivated, (void*) &pt );
}
consumed = ETrue;
- view->setPluginActivated(true); //Setting pluginactivated flag in webview
setPluginFocusL( ETrue );
break;
@@ -249,7 +246,6 @@
m_notifier->NotifyL( MPluginNotifier::EPluginDeactivated, (void*) 0 );
}
consumed = ETrue;
- view->setPluginActivated(false);
setPluginFocusL( EFalse );
break;
@@ -420,42 +416,6 @@
{
}
-// -----------------------------------------------------------------------------
-// PluginWin::ViewFocusChanged
-//
-// Invoked by CCoeControl to WebKitView to PluginWin when the Browser focus
-// changes. This method notifies all plugins of thier current focus state.
-// NOTES:
-// iBrowserBackground means that the browser app is not top application,
-// such as when bookmarks, idle screen, or another app/view is in foreground.
-// aFocused is true if browser has focus and false if browser is out of focus
-// and a plugin has taken focus.
-// -----------------------------------------------------------------------------
-void PluginWin::viewFocusChanged( TBool focused )
-{
-if (m_notifier)
- {
- if (focused)
- {
- // The browser brings back the focus, and so are plugins.
- HandleGainingForeground();
- }
- else
- {
- // The browser doesn't have focus and this plugin focus state is...
- if ( m_pluginfocus )
- {
- // This plugin is selected to be activate, so the focus is on this plugin now.
- HandleGainingForeground();
- }
- else
- {
- // The focus on the plugin is cancelled. This happens when deactivate the selected plugin
- HandleLosingForeground();
- }
- }
- }
-}
// -----------------------------------------------------------------------------
// PluginWin::SetPluginFocusL
@@ -575,18 +535,6 @@
}
}
-// -----------------------------------------------------------------------------
-// PluginWin::FocusChanged
-//
-// virtual function from CCoeControl for plugin win
-// -----------------------------------------------------------------------------
-//
-void PluginWin::FocusChanged(TDrawNow aDrawNow)
-{
- if(m_pluginfocus) {
- m_pluginskin->pluginFocusChanged(IsFocused());
- }
-}
// -----------------------------------------------------------------------------
//
@@ -725,11 +673,13 @@
}
}
-void PluginWin::TogleScreenMode(bool aFullScreen)
+void PluginWin::ToggleScreenMode(bool aFullScreen)
{
m_fullscreen = aFullScreen;
CBrCtl* brCtl = control(m_pluginskin->frame());
-
+ WebCursor* cursor = StaticObjectsContainer::instance()->webCursor();
+
+ cursor->cursorUpdate(!aFullScreen && !AknLayoutUtils::PenEnabled());
StaticObjectsContainer::instance()->setPluginFullscreen(aFullScreen);
brCtl->reportStateChanged(TBrCtlDefs::EStatePluginFullScreen, m_fullscreen);
}
--- a/webengine/osswebengine/WebKit/s60/plugins/PluginWin.h Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebKit/s60/plugins/PluginWin.h Fri Jul 03 15:54:40 2009 +0100
@@ -106,13 +106,6 @@
*/
TInt refreshPlugin(CFbsBitGc& bitmapContext);
- /**
- * ViewFocusChanged - invoked when WebKitView gains or loses focus
- *
- * @since 3.1
- * @return void
- */
- void viewFocusChanged(TBool focused);
/**
* ResizePluginRect
@@ -288,13 +281,6 @@
*/
void Draw(const TRect& rect) const;
- /**
- * FocusChanged
- * From CCoeControl
- *
- */
- void FocusChanged(TDrawNow aDrawNow);
-
public: //From MCoeForegroundObserver
/**
@@ -488,7 +474,7 @@
HBufC8* PluginDataUrl();
- void TogleScreenMode(bool aFullScreen);
+ void ToggleScreenMode(bool aFullScreen);
void PlayPausePluginL ();
void HandlePointerEventFromPluginL(const TPointerEvent& aEvent);
TBool HandleGesture(const RT_GestureHelper::TGestureEvent& aEvent);
--- a/webengine/osswebengine/WebKit/s60/webcoresupport/WebChromeClient.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebKit/s60/webcoresupport/WebChromeClient.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -54,6 +54,11 @@
m_visibility = false;
}
+void WebChromeClient::chromeDestroyed()
+{
+ delete this;
+}
+
FloatRect WebChromeClient::windowRect() { notImplemented(); return FloatRect(); }
FloatRect WebChromeClient::pageRect() { notImplemented(); return FloatRect(); }
float WebChromeClient::scaleFactor() { notImplemented(); return 1.0; }
@@ -72,7 +77,9 @@
}
if (name) {
bool userGesture = frame->scriptProxy()->interpreter()->wasRunByUserGesture();
+ TRAP_IGNORE(
newBrCtl = m_webView->brCtl()->getWindowL(*name, userGesture);
+ );
delete name;
if (newBrCtl) {
page = newBrCtl->webView()->page();
@@ -136,6 +143,14 @@
void WebChromeClient::addMessageToConsole(const WebCore::String& message, MessageLevel messageLevel, unsigned int line, const WebCore::String& sourceURL)
{
+ TRAP_IGNORE(
+ addMessageToConsoleL(message, messageLevel, line, sourceURL);
+ );
+}
+
+void WebChromeClient::addMessageToConsoleL(const WebCore::String& message, MessageLevel messageLevel, unsigned int line, const WebCore::String& sourceURL)
+{
+
RFs fsSession;
User::LeaveIfError( fsSession.Connect());
@@ -337,4 +352,8 @@
void WebChromeClient::addToDirtyRegion(const IntRect&){}
void WebChromeClient::scrollBackingStore(int dx, int dy, const IntRect& scrollViewRect, const IntRect& clipRect){}
+void WebChromeClient::focusedElementChanged(Element* element)
+{
+ m_webView->focusedElementChanged(element);
+}
--- a/webengine/osswebengine/WebKit/s60/webcoresupport/WebChromeClient.h Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebKit/s60/webcoresupport/WebChromeClient.h Fri Jul 03 15:54:40 2009 +0100
@@ -38,7 +38,7 @@
WebView *webView() { return m_webView; }
virtual ~WebChromeClient() { }
- virtual void chromeDestroyed() {}
+ virtual void chromeDestroyed();
virtual void setWindowRect(const WebCore::FloatRect&) {}
virtual WebCore::FloatRect windowRect();
@@ -106,6 +106,11 @@
bool elementVisibilityChanged() {
return m_visibility;
}
+ virtual void focusedElementChanged(WebCore::Element*);
+
+protected: // new functions
+ void addMessageToConsoleL(const WebCore::String& aMessage, WebCore::MessageLevel aMessageLevel, unsigned int aLine, const WebCore::String& aSourceURL);
+
private:
WebView *m_webView;
void GetDateAndTimeL(TDes& date, TDes& time) const;
--- a/webengine/osswebengine/WebKit/s60/webcoresupport/WebContextMenuClient.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebKit/s60/webcoresupport/WebContextMenuClient.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -23,7 +23,11 @@
using namespace WebCore;
-void WebContextMenuClient::contextMenuDestroyed() { notImplemented(); }
+void WebContextMenuClient::contextMenuDestroyed()
+{
+ delete this;
+}
+
PlatformMenuDescription WebContextMenuClient::getCustomMenuFromDefaultItems(ContextMenu*) { notImplemented(); return 0; }
void WebContextMenuClient::contextMenuItemSelected(ContextMenuItem*, const ContextMenu*) { notImplemented(); }
void WebContextMenuClient::downloadURL(const KURL& url) { notImplemented(); }
--- a/webengine/osswebengine/WebKit/s60/webcoresupport/WebDragClient.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebKit/s60/webcoresupport/WebDragClient.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -31,5 +31,8 @@
void WebDragClient::startDrag(DragImageRef dragImage, const IntPoint& dragImageOrigin, const IntPoint& eventPos, Clipboard*, Frame*, bool linkDrag) { notImplemented(); }
DragImageRef WebDragClient::createDragImageForLink(KURL&, const String& label, Frame*) { notImplemented(); return 0; }
-void WebDragClient::dragControllerDestroyed() { notImplemented(); }
+void WebDragClient::dragControllerDestroyed()
+{
+ delete this;
+}
--- a/webengine/osswebengine/WebKit/s60/webcoresupport/WebEditorClient.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebKit/s60/webcoresupport/WebEditorClient.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -287,7 +287,7 @@
//-----------------------------------------------------------------------------
void WebEditorClient::pageDestroyed()
{
- notImplemented();
+ delete this;
}
//-----------------------------------------------------------------------------
--- a/webengine/osswebengine/WebKit/s60/webcoresupport/WebFrameLoaderClient.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebKit/s60/webcoresupport/WebFrameLoaderClient.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -140,8 +140,11 @@
if (isWMLContent(m_response.mimeType())) {
// call the WmlDispatcher Headers routine to set the WML flag
if (! m_WmlContentListener) {
- m_WmlContentListener = CWmlDispatcher::NewL(brctl(m_webFrame), core(m_webFrame) );
- brctl(m_webFrame)->setWmlDispatcher(m_WmlContentListener);
+ TRAPD(err, m_WmlContentListener = CWmlDispatcher::NewL(brctl(m_webFrame), core(m_webFrame) ));
+ if((err == KErrNone) && (m_WmlContentListener != NULL))
+ {
+ brctl(m_webFrame)->setWmlDispatcher(m_WmlContentListener);
+ }
}
TRAPD(err,m_WmlContentListener->HeadersL( 0, m_response ));
}
@@ -160,7 +163,7 @@
}
if (!core(m_webFrame)->ownerElement()) {
- brctl(m_webFrame)->settings()->setTabbedNavigation(!(brctl(m_webFrame)->capabilities()&TBrCtlDefs::ECapabilityCursorNavigation));
+ brctl(m_webFrame)->settings()->setNavigationType((brctl(m_webFrame)->capabilities()&TBrCtlDefs::ECapabilityCursorNavigation) ? SettingsContainer::NavigationTypeCursor : SettingsContainer::NavigationTypeTabbed);
StaticObjectsContainer::instance()->webCursor()->cursorUpdate(true);
m_webFrame->frameView()->topView()->tabbedNavigation()->clear();
}
@@ -270,10 +273,12 @@
[download _setOriginatingURL:originalURL];
*/
StaticObjectsContainer::instance()->resourceLoaderDelegate()->download(handle, request, response);
+ TRAP_IGNORE(
brctl(m_webFrame)->HandleBrowserLoadEventL(TBrCtlDefs::EEventNewUrlContentArrived, 0, 0 ); // must send this for progress bar to go away
brctl(m_webFrame)->HandleBrowserLoadEventL(TBrCtlDefs::EEventUrlLoadingFinished, 0, 0 );
brctl(m_webFrame)->HandleBrowserLoadEventL(TBrCtlDefs::EEventContentFinished, 0, 0 );
brctl(m_webFrame)->HandleBrowserLoadEventL(TBrCtlDefs::EEventLoadFinished, 0, 0 );
+ );
}
void WebFrameLoaderClient::assignIdentifierToInitialRequest(unsigned long identifier, DocumentLoader*, const ResourceRequest&)
@@ -535,7 +540,9 @@
[webView _didChangeValueForKey:_WebMainFrameIconKey];
*/
+ TRAP_IGNORE(
brctl(m_webFrame)->HandleBrowserLoadEventL(TBrCtlDefs::EEventFaviconAvailable, 0, 0 );
+ );
notImplemented();
}
@@ -551,7 +558,9 @@
implementations.didStartProvisionalLoadForFrameFunc(frameLoadDelegate, @selector(webView:didStartProvisionalLoadForFrame:), webView, m_webFrame.get());
}
*/
+ TRAP_IGNORE(
brctl(m_webFrame)->HandleBrowserLoadEventL(TBrCtlDefs::EEventNewContentStart, 0, 0 );
+ );
notImplemented();
}
@@ -565,7 +574,9 @@
implementations.didReceiveTitleForFrameFunc(frameLoadDelegate, @selector(webView:didReceiveTitle:forFrame:), webView, title, m_webFrame.get());
}
*/
+ TRAP_IGNORE(
brctl(m_webFrame)->HandleBrowserLoadEventL(TBrCtlDefs::EEventTitleAvailable, 0, 0 );
+ );
notImplemented();
}
@@ -584,7 +595,9 @@
implementations.didCommitLoadForFrameFunc(frameLoadDelegate, @selector(webView:didCommitLoadForFrame:), webView, m_webFrame.get());
}
*/
+ TRAP_IGNORE(
brctl(m_webFrame)->HandleBrowserLoadEventL(TBrCtlDefs::EEventTitleAvailable, 0, 0 );
+ );
}
void WebFrameLoaderClient::dispatchDidFailProvisionalLoad(const ResourceError& error)
@@ -604,7 +617,9 @@
m_WmlContentListener->HandleError(0,error.errorCode());
}
//
+ TRAP_IGNORE(
brctl(m_webFrame)->HandleBrowserLoadEventL(TBrCtlDefs::EEventLoadError, 0, 0 );
+ );
notImplemented();
}
@@ -627,7 +642,9 @@
m_WmlContentListener->HandleError(0,error.errorCode());
}
//
+ TRAP_IGNORE(
brctl(m_webFrame)->HandleBrowserLoadEventL(TBrCtlDefs::EEventLoadError, 0, 0 );
+ );
m_webFrame->frameView()->topView()->pageLoadFinished();
notImplemented();
}
@@ -672,7 +689,9 @@
implementations.didFirstLayoutInFrameFunc(frameLoadDelegate, @selector(webView:didFirstLayoutInFrame:), webView, m_webFrame.get());
}
*/
+ TRAP_IGNORE(
brctl(m_webFrame)->HandleBrowserLoadEventL(TBrCtlDefs::EEventNewContentDisplayed, 0, 0 );
+ );
}
Frame* WebFrameLoaderClient::dispatchCreatePage()
@@ -834,7 +853,9 @@
void WebFrameLoaderClient::postProgressStartedNotification()
{
// [[NSNotificationCenter defaultCenter] postNotificationName:WebViewProgressStartedNotification object:getWebView(m_webFrame.get())];
+ TRAP_IGNORE(
brctl(m_webFrame)->HandleBrowserLoadEventL(TBrCtlDefs::EEventUrlLoadingStart, 0, 0 );
+ );
total_bytes = 0;
#ifdef PERF_REGRESSION_LOG
wkDebug()<<"Load started"<<mem<<flush;
@@ -848,8 +869,10 @@
#endif // PERF_REGRESSION_LOG
// [[NSNotificationCenter defaultCenter] postNotificationName:WebViewProgressEstimateChangedNotification object:getWebView(m_webFrame.get())];
double estimatedProgress = core(m_webFrame)->page()->progress()->estimatedProgress();
+ TRAP_IGNORE(
brctl(m_webFrame)->HandleBrowserLoadEventL(TBrCtlDefs::EEventNewUrlContentArrived, total_bytes / estimatedProgress, 0 );
brctl(m_webFrame)->HandleBrowserLoadEventL(TBrCtlDefs::EEventMoreUrlContentArrived, total_bytes, 0 );
+ );
}
void WebFrameLoaderClient::postProgressFinishedNotification()
@@ -907,7 +930,9 @@
void WebFrameLoaderClient::committedLoad(DocumentLoader* loader, const char* data, int length)
{
if (brctl(m_webFrame)->wmlMode()) {
+ TRAP_IGNORE(
m_WmlContentListener->ResponseL( data, length );
+ );
return;
}
m_webFrame->bridge()->receivedData(data, length, m_response.textEncodingName());
@@ -1116,7 +1141,9 @@
void WebFrameLoaderClient::frameLoadCompleted()
{
if (brctl(m_webFrame)->wmlMode()) {
+ TRAP_IGNORE(
m_WmlContentListener->CompleteL( 0, 0 );
+ );
return;
}
/*
@@ -1373,8 +1400,9 @@
void WebFrameLoaderClient::windowObjectCleared() const
{
- // [m_webFrame->_private->bridge windowObjectCleared];
- notImplemented();
+ if (m_webFrame && !m_webFrame->parentFrame()) {
+ m_webFrame->frameView()->topView()->windowObjectCleared();
+ }
}
void WebFrameLoaderClient::didPerformFirstNavigation() const
--- a/webengine/osswebengine/WebKit/s60/webcoresupport/WebInspectorClient.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebKit/s60/webcoresupport/WebInspectorClient.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -26,9 +26,8 @@
{
/*
[[m_windowController.get() webView] close];
+*/
delete this;
-*/
- notImplemented();
}
Page* WebInspectorClient::createPage()
--- a/webengine/osswebengine/WebKit/s60/webview/BrCtl.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebKit/s60/webview/BrCtl.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -284,110 +284,6 @@
void CBrCtl::Draw(const TRect& aRect) const
{
- if (m_webView->isPluginFullscreen()) return; //don't draw if in plugin fullscreen mode
-
- if (!(m_capabilities & TBrCtlDefs::ECapabilityDisplayScrollBar)
- || (getMainScrollbarWidth() == 0)
- || AknLayoutUtils::PenEnabled()) { //touch screen scrollbar is drawn
- return; //by WebScrollbarDrawer
- }
- CWindowGc& gc = SystemGc();
- TRect rect(Rect());
- int documentHeight = (m_displayHeight > m_documentHeight) ? m_displayHeight : m_documentHeight;
- int documentWidth = (m_displayWidth > m_documentWidth) ? m_displayWidth : m_documentWidth;
- gc.SetDrawMode(CGraphicsContext::EDrawModePEN);
- if (AknLayoutUtils::LayoutMirrored()) {
- // rtl
- if (m_hasHorizontalScrollbar) {
- TRect vertical(0, 0, KMainScrollbarWidth, rect.Height() - KMainScrollbarWidth);
- TRect horizontal(KMainScrollbarWidth, rect.Height() - KMainScrollbarWidth, rect.Width(), rect.Height());
- TRect verticalThumb(0, (m_displayPosY * m_displayHeight) / documentHeight,
- KMainScrollbarWidth, (m_displayPosY * m_displayHeight + m_displayHeight * m_displayHeight) / documentHeight);
- TRect horizontalThumb(KMainScrollbarWidth + (m_displayPosX * m_displayWidth) / documentWidth, rect.Height() - KMainScrollbarWidth,
- KMainScrollbarWidth + (m_displayPosX * m_displayWidth + m_displayWidth * m_displayWidth) / documentWidth, rect.Height());
- TRect corner(0, rect.Height() - KMainScrollbarWidth, KMainScrollbarWidth, rect.Height());
- vertical.Intersection(aRect);
- horizontal.Intersection(aRect);
- if (!(vertical.IsEmpty() || horizontal.IsEmpty())) {
- gc.SetBrushStyle(CGraphicsContext::ESolidBrush);
- gc.SetBrushColor(KGray);
- gc.SetPenStyle(CGraphicsContext::ESolidPen);
- gc.SetPenSize(TSize(1, 1));
- gc.SetPenColor(KBlack);
- gc.DrawRect(vertical);
- gc.DrawRect(horizontal);
- gc.SetBrushColor(KDarkGray);
- gc.DrawRect(verticalThumb);
- gc.DrawRect(horizontalThumb);
- gc.SetBrushColor(KWhite);
- gc.SetPenColor(KWhite);
- gc.DrawRect(corner);
- }
- }
- else {
- TRect vertical(0, 0, KMainScrollbarWidth, rect.Height());
- TRect verticalThumb(0, (m_displayPosY * m_displayHeight) / documentHeight,
- KMainScrollbarWidth, (m_displayPosY * m_displayHeight + m_displayHeight * m_displayHeight) / documentHeight);
- vertical.Intersection(aRect);
- if (!vertical.IsEmpty()) {
- gc.SetBrushStyle(CGraphicsContext::ESolidBrush);
- gc.SetBrushColor(KGray);
- gc.SetPenStyle(CGraphicsContext::ESolidPen);
- gc.SetPenSize(TSize(1, 1));
- gc.SetPenColor(KBlack);
- gc.DrawRect(vertical);
- gc.SetBrushColor(KDarkGray);
- gc.DrawRect(verticalThumb);
- }
- }
- }
- else {
- // ltr
- if (m_hasHorizontalScrollbar) {
- TRect vertical(rect.Width() - KMainScrollbarWidth, 0, rect.Width(), rect.Height() - KMainScrollbarWidth);
- TRect horizontal(0, rect.Height() - KMainScrollbarWidth, rect.Width() - KMainScrollbarWidth, rect.Height());
- TRect verticalThumb(rect.Width() - KMainScrollbarWidth, (m_displayPosY * m_displayHeight) / documentHeight,
- rect.Width(), (m_displayPosY * m_displayHeight + m_displayHeight * m_displayHeight) / documentHeight);
- TRect horizontalThumb((m_displayPosX * m_displayWidth) / documentWidth, rect.Height() - KMainScrollbarWidth,
- (m_displayPosX * m_displayWidth + m_displayWidth * m_displayWidth) / documentWidth, rect.Height());
- TRect corner(rect.Width() - KMainScrollbarWidth, rect.Height() - KMainScrollbarWidth, rect.Width(), rect.Height());
- vertical.Intersection(aRect);
- horizontal.Intersection(aRect);
- if (!(vertical.IsEmpty() || horizontal.IsEmpty())) {
- gc.SetBrushStyle(CGraphicsContext::ESolidBrush);
- gc.SetBrushColor(KGray);
- gc.SetPenStyle(CGraphicsContext::ESolidPen);
- gc.SetPenSize(TSize(1, 1));
- gc.SetPenColor(KBlack);
- gc.DrawRect(vertical);
- gc.DrawRect(horizontal);
- gc.SetBrushColor(KDarkGray);
- gc.DrawRect(verticalThumb);
- gc.DrawRect(horizontalThumb);
- gc.SetBrushColor(KWhite);
- gc.SetPenColor(KWhite);
- gc.DrawRect(corner);
- }
- }
- else
- {
- TRect vertical(rect.Width() - KMainScrollbarWidth, 0, rect.Width(), rect.Height());
- TRect verticalThumb(rect.Width() - KMainScrollbarWidth, (m_displayPosY * m_displayHeight) / documentHeight,
- rect.Width(), (m_displayPosY * m_displayHeight + m_displayHeight * m_displayHeight) / documentHeight);
- vertical.Intersection(aRect);
- if (!vertical.IsEmpty()) {
- gc.SetBrushStyle(CGraphicsContext::ESolidBrush);
- gc.SetBrushColor(KGray);
- gc.SetPenStyle(CGraphicsContext::ESolidPen);
- gc.SetPenSize(TSize(1, 1));
- gc.SetPenColor(KBlack);
- gc.DrawRect(vertical);
- gc.SetBrushColor(KDarkGray);
- gc.DrawRect(verticalThumb);
- }
- }
- }
-
}
@@ -548,9 +444,9 @@
m_webView = WebView::NewL(*aParent, this);
m_historyHandler = HistoryHandler::initWithHandle(this);
m_settingsContainer = new (ELeave) SettingsContainer(m_webView, m_historyHandler->historyController());
- m_settingsContainer->setTabbedNavigation(!(capabilities()&TBrCtlDefs::ECapabilityCursorNavigation));
+ m_settingsContainer->setNavigationType((capabilities()&TBrCtlDefs::ECapabilityCursorNavigation) ? SettingsContainer::NavigationTypeCursor : SettingsContainer::NavigationTypeTabbed);
- m_usrAgnt = CUserAgent::NewL();
+ m_usrAgnt = CUserAgent::NewL();
if (m_brCtlLayoutObserver == NULL)
{
@@ -1078,9 +974,6 @@
TUid aCharsetUid)
{
const TText* charset = charsetForUid(aCharsetUid.iUid);
- if (charset == NULL) {
- charset = _S("iso-8859-1");
- }
HBufC8* url = HBufC8::NewLC(aUrl.Length());
url->Des().Copy(aUrl);
@@ -1852,7 +1745,7 @@
//
void CBrCtl::SizeChanged()
{
- if (m_webView->isPluginFullscreen()) return;
+ if (StaticObjectsContainer::instance()->isPluginFullscreen()) return;
TRect adjustedRect( Rect() );
TBool callDoLayout = EFalse;
TInt scrollBarWidth = getMainScrollbarWidth();
@@ -2122,7 +2015,14 @@
if (m_brCtlWindowObserver) {
newBrctl = m_brCtlWindowObserver->FindWindowL(windowName);
if (!newBrctl)
- newBrctl = m_brCtlWindowObserver->OpenWindowL(emptyUrl, &windowName, userGesture, 0);
+ {
+ if(StaticObjectsContainer::instance()->isPluginFullscreen())
+ {
+ PluginSkin* plugin=m_webView->mainFrame()->focusedPlugin();
+ plugin->deActivate();
+ }
+ newBrctl = m_brCtlWindowObserver->OpenWindowL(emptyUrl, &windowName, userGesture, 0);
+ }
}
return static_cast<CBrCtl*>(newBrctl);
}
@@ -2475,7 +2375,6 @@
int CBrCtl::getMainScrollbarWidth() const
{
- //return (AknLayoutUtils::PenEnabled() ? 0 : KMainScrollbarWidth);
return 0;
}
@@ -2486,6 +2385,9 @@
}
return m_brCtlDownloadObserver;
}
+
+
+
void CBrCtl::HandlePointerBufferReadyL()
{
m_webView->HandlePointerBufferReadyL();
--- a/webengine/osswebengine/WebKit/s60/webview/SettingsContainer.h Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebKit/s60/webview/SettingsContainer.h Fri Jul 03 15:54:40 2009 +0100
@@ -28,11 +28,12 @@
class SettingsContainer
{
public:
+ enum NavigationType { NavigationTypeCursor, NavigationTypeTabbed, NavigationTypeNone };
SettingsContainer(WebView* view, HistoryControllerInterface* historyProvider);
unsigned int brctlSetting(TBrCtlDefs::TBrCtlSettings setting);
void setBrctlSetting(TBrCtlDefs::TBrCtlSettings setting, unsigned int value);
- void setTabbedNavigation(bool on_) { m_tabbedNaviOn = on_; }
- bool getTabbedNavigation() const { return m_tabbedNaviOn; }
+ void setNavigationType(NavigationType type) { m_navigationType = type; }
+ NavigationType getNavigationType() const { return m_navigationType; }
private:
void updatePageSetting(TBrCtlDefs::TBrCtlSettings setting);
@@ -46,7 +47,7 @@
unsigned int brctlSettings[TBrCtlDefs::ESettingsMaxEnum];
WebView* m_webView;
HistoryControllerInterface* m_historyController;
- bool m_tabbedNaviOn;
+ NavigationType m_navigationType;
};
#endif // __WEBDOCUMENTLOADER_H__
--- a/webengine/osswebengine/WebKit/s60/webview/WebCannedImages.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebKit/s60/webview/WebCannedImages.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -21,10 +21,8 @@
#include "WebCannedImages.h"
#include <data_caging_path_literals.hrh>
#include "../../bidi.h"
-#include <AknsConstants.h>
#include <AknsUtils.h>
#include <AknsItemID.h>
-#include <AknsConstants.h>
#include <eikenv.h>
#ifdef __BROWSER_SDK
--- a/webengine/osswebengine/WebKit/s60/webview/WebCannedImages.h Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebKit/s60/webview/WebCannedImages.h Fri Jul 03 15:54:40 2009 +0100
@@ -26,7 +26,6 @@
#include <AknsConstants.h>
#include <AknsItemID.h>
-#include <AknsConstants.h>
// CONSTANTS
--- a/webengine/osswebengine/WebKit/s60/webview/WebCursor.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebKit/s60/webview/WebCursor.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -117,8 +117,10 @@
// -----------------------------------------------------------------------------
WebCursor::~WebCursor()
{
- m_sprite.Close();
+ delete m_sprite;
delete m_transarrowmask;
+ if ( m_transtimer )
+ m_transtimer->Cancel();
delete m_transtimer;
}
@@ -139,7 +141,7 @@
if (!m_view)
{
m_view = &view;
- constructSprite();
+ TRAP_IGNORE( constructSpriteL() );
}
m_view = &view;
setOpaqueUntil(KTransparencyTime);
@@ -147,9 +149,9 @@
}
// -----------------------------------------------------------------------------
-// WebCursor::constructSprite
+// WebCursor::constructSpriteL
// -----------------------------------------------------------------------------
-void WebCursor::constructSprite()
+void WebCursor::constructSpriteL()
{
//tot:fixme
@@ -180,17 +182,10 @@
delete gc;
CleanupStack::PopAndDestroy();
/////////////////////////////////
- m_sprite = RWsSprite(m_view->ControlEnv()->WsSession());
- RWindowTreeNode *window = (RDrawableWindow* )m_view->brCtl()->CCoeControlParent()->DrawableWindow();
- m_sprite.Construct(*window,TPoint(KInitialOffset,KInitialOffset),ESpriteNoChildClip);
-
- TSpriteMember spriteMem;
- spriteMem.iBitmap = 0;
- spriteMem.iMaskBitmap = 0;
- spriteMem.iInvertMask = ETrue;
-
- m_sprite.AppendMember(spriteMem);
- m_sprite.Activate();
+
+ CCoeControl* parent = static_cast<CCoeControl*>(m_view);
+ TPoint pos = TPoint(KInitialOffset,KInitialOffset);
+ m_sprite = CWebSprite::NewL(parent, pos, m_arrow.m_img, m_arrow.m_msk, ETrue);
}
// -----------------------------------------------------------------------------
@@ -198,24 +193,25 @@
// -----------------------------------------------------------------------------
void WebCursor::setCursor(CursorTypes type)
{
- m_sprite.SetPosition( m_pos );
+
m_type = type;
- if (m_visible && !(m_view->brCtl()->settings()->getTabbedNavigation())) {
- TSpriteMember spriteMem;
+ if (m_visible && (m_view->brCtl()->settings()->getNavigationType() == SettingsContainer::NavigationTypeCursor)) {
+ CFbsBitmap* img = NULL;
+ CFbsBitmap* msk = NULL;
switch( type )
{
case PointerCursor:
default:
{
- spriteMem.iBitmap = m_waiton ? m_wait.m_img : m_arrow.m_img;
- spriteMem.iMaskBitmap = m_waiton ? m_wait.m_img :
+ img = m_waiton ? m_wait.m_img : m_arrow.m_img;
+ msk = m_waiton ? m_wait.m_img :
(m_transparent && m_transcount > KTransparencyMoveThreshold ? m_transarrowmask : m_arrow.m_msk);
break;
}
case HandCursor:
{
- spriteMem.iBitmap = m_hand.m_img;
- spriteMem.iMaskBitmap = m_hand.m_msk;
+ img = m_hand.m_img;
+ msk = m_hand.m_msk;
break;
}
case IBeamCursor:
@@ -232,27 +228,25 @@
}
else*/
{
- spriteMem.iBitmap = m_ibeam.m_img;
- spriteMem.iMaskBitmap = m_ibeam.m_msk;
+ img = m_ibeam.m_img;
+ msk = m_ibeam.m_msk;
}
break;
}
case SelectMultiCursor:
{
- spriteMem.iBitmap = m_selectMulti.m_img;
- spriteMem.iMaskBitmap = m_selectMulti.m_msk;
+ img = m_selectMulti.m_img;
+ msk = m_selectMulti.m_msk;
break;
}
}
- spriteMem.iOffset = KCursorOffset;
- spriteMem.iInvertMask = ETrue;
- m_sprite.UpdateMember( 0, spriteMem );
- } else {
- TSpriteMember spriteMem;
- spriteMem.iBitmap = 0;
- spriteMem.iMaskBitmap = 0;
- spriteMem.iInvertMask = ETrue;
- m_sprite.UpdateMember( 0, spriteMem );
+ TPoint pos = m_pos + KCursorOffset;
+
+ m_sprite->Update(pos, img, msk);
+
+ }
+ else {
+ m_sprite->Hide();
}
}
@@ -264,7 +258,7 @@
if (!m_view || !m_view->brCtl()->settings())
return;
if ( m_view->showCursor() ) {
- m_visible = visible && (!m_view->brCtl()->settings()->getTabbedNavigation() || m_view->focusedElementType() == TBrCtlDefs::EElementSelectMultiBox); // check for tabbedNavigation here because it is called from so many places.
+ m_visible = visible && ((m_view->brCtl()->settings()->getNavigationType() == SettingsContainer::NavigationTypeCursor)|| m_view->focusedElementType() == TBrCtlDefs::EElementSelectMultiBox); // check for tabbedNavigation here because it is called from so many places.
}
resetTransparency();
@@ -279,7 +273,7 @@
else if ( elType == TBrCtlDefs::EElementSmartLinkTel
|| elType == TBrCtlDefs::EElementSmartLinkEmail )
type = IBeamCursor;
- else if ( elType == TBrCtlDefs::EElementSelectMultiBox && m_view->brCtl()->settings()->getTabbedNavigation() )
+ else if ( elType == TBrCtlDefs::EElementSelectMultiBox && m_view->brCtl()->settings()->getNavigationType() == SettingsContainer::NavigationTypeTabbed)
type = SelectMultiCursor;
else
type = HandCursor;
@@ -713,7 +707,7 @@
void WebCursor::updatePositionAndElemType(const TPoint& pt)
{
m_pos = pt;
- m_sprite.SetPosition(pt);
+ m_sprite->SetPos(pt);
WebFrame* frame = getFrameAtPoint(pt);
TBrCtlDefs::TBrCtlElementType elType;
TRect r;
--- a/webengine/osswebengine/WebKit/s60/webview/WebCursor.h Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebKit/s60/webview/WebCursor.h Fri Jul 03 15:54:40 2009 +0100
@@ -21,6 +21,7 @@
#include <e32base.h>
#include "WebCoreWidget.h"
#include "WebCannedImages.h"
+#include "WebSprite.h"
#include <w32std.h>
namespace WebCore {
@@ -34,6 +35,7 @@
class CWindowGc;
class WebFrame;
class CFbsBitmap;
+class CWebSprite;
class WebCursor : public CBase
{
@@ -46,7 +48,7 @@
const TPoint& position() const { return m_pos; }
const TRect& nodeRect() const { return m_nodeRect; }
- void setPosition(const TPoint& pt) { m_pos = pt; m_sprite.SetPosition(pt);}
+ void setPosition(const TPoint& pt) { m_pos = pt;}
void updatePositionAndElemType(const TPoint& pt);
void setCurrentView(WebView& view);
void offsetCursor(const TPoint& offset);
@@ -66,11 +68,11 @@
void scrollAndMoveCursor(int dir, int scrollRange, bool auto);
WebFrame* getFrameUnderCursor();
bool navigableNodeUnderCursor(WebFrame& webFrame, TPoint& aPoint, TBrCtlDefs::TBrCtlElementType& aElType, TRect& aFocusRect) const;
+ WebFrame* getFrameAtPoint(const TPoint& viewPos_);
private:
void moveCursor(int lr,int tb, int scrollRange);
- WebFrame* getFrameAtPoint(const TPoint& viewPos_);
bool determineCursorPosition(WebFrame& webFrame, TBrCtlDefs::TBrCtlElementType& aElType, TRect& aFocusRect, TRect& aSearchRect,
TPoint& aCursorPosition, bool aInitialize);
void increaseSearchRect(int lr,int tb,TRect& aRect);
@@ -85,7 +87,7 @@
WebCursor();
void ConstructL();
TRect calcSearchRect(int lr, int tb, int scrollRange);
- void constructSprite();
+ void constructSpriteL();
TPoint m_pos;
@@ -103,7 +105,8 @@
WebView* m_view;
bool m_visible;
- RWsSprite m_sprite;
+
+ CWebSprite* m_sprite;
bool m_waiton;
int m_flipcounter;
bool m_transparent;
--- a/webengine/osswebengine/WebKit/s60/webview/WebFrameView.h Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebKit/s60/webview/WebFrameView.h Fri Jul 03 15:54:40 2009 +0100
@@ -75,7 +75,7 @@
// accessors
WebFrame* frame() const { return m_frame.get(); }
- WebView* topView() const { return m_topView.get(); }
+ WebView* topView() const { return m_topView; }
void setWebFrame(WebFrame*);
void setTopView(WebView*);
TPoint contentPos() { return m_contentPos; }
@@ -107,7 +107,7 @@
WebFrameView& operator=(const WebFrameView&); // not implemented
RefPtr<WebFrame> m_frame; // the frame associated with this view
- RefPtr<WebView> m_topView; // the top drawable view
+ WebView* m_topView; // the top drawable view
WebFrameView* m_parent; // the parent view
TRect m_frameRect; // the location and size of this frame in its parent frame
--- a/webengine/osswebengine/WebKit/s60/webview/WebPageFullScreenHandler.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebKit/s60/webview/WebPageFullScreenHandler.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -41,7 +41,7 @@
{
WebPageFullScreenHandler* self = new (ELeave) WebPageFullScreenHandler( webView );
CleanupStack::PushL(self);
- self->constructL();
+ self->ConstructL();
CleanupStack::Pop(); //self
return self;
}
@@ -52,8 +52,7 @@
// might leave.
// -----------------------------------------------------------------------------
//
-WebPageFullScreenHandler::WebPageFullScreenHandler(WebView& webView)
-: m_webView(&webView), m_spriteVisible(EFalse), m_tappedOnSprite(EFalse)
+WebPageFullScreenHandler::WebPageFullScreenHandler(WebView& webView) : m_webView(&webView)
{
}
@@ -62,8 +61,12 @@
// The constructor that can contain code that might leave.
// -----------------------------------------------------------------------------
//
-void WebPageFullScreenHandler::constructL()
+void WebPageFullScreenHandler::ConstructL()
{
+ m_buttonIcon = StaticObjectsContainer::instance()->webCannedImages()->getImage(WebCannedImages::EImageEscFullScreen);
+ TPoint pos = CalculatePosition();
+ BaseConstructL(m_webView, pos, m_buttonIcon.m_img, m_buttonIcon.m_msk, ETrue);
+ Hide();
}
// -----------------------------------------------------------------------------
@@ -75,6 +78,17 @@
}
+TPoint WebPageFullScreenHandler::CalculatePosition()
+{
+ TPoint pos = m_webView->Rect().iBr;
+ TSize iconSize = m_buttonIcon.m_img->SizeInPixels();
+
+ pos -= iconSize;
+ pos -= TPoint(KFullScreenButtonBuff, KFullScreenButtonBuff);
+ //pos -= m_webView->PositionRelativeToScreen();
+ return pos;
+}
+
//-------------------------------------------------------------------------------
// WebPageFullScreenHandler::showEscBtnL
// Draws the full screen button on the screen
@@ -82,10 +96,8 @@
void WebPageFullScreenHandler::showEscBtnL()
{
- if (AknLayoutUtils::PenEnabled() && !m_spriteVisible) {
- constructSprite();
- SizeChanged();
- AddWsObserverToControl();
+ if (AknLayoutUtils::PenEnabled()) {
+ Show();
}
}
@@ -96,9 +108,8 @@
void WebPageFullScreenHandler::hideEscBtnL()
{
- if (AknLayoutUtils::PenEnabled() && m_spriteVisible) {
- destructSprite();
- m_eventMonitor->RemoveObserver(this);
+ if (AknLayoutUtils::PenEnabled()) {
+ Hide();
}
}
@@ -109,12 +120,9 @@
void WebPageFullScreenHandler::SizeChanged(void)
{
- if (AknLayoutUtils::PenEnabled() && m_spriteVisible) {
- m_pos = m_webView->Rect().iBr;
- TPoint point (m_webView->PositionRelativeToScreen());
- m_pos -= TSize( KFullScreenButtonWidth + KFullScreenButtonBuff,
- KFullScreenButtonHeight - point.iY + KFullScreenButtonBuff);
- m_sprite.SetPosition(m_pos);
+ if (AknLayoutUtils::PenEnabled()) {
+ TPoint pos = CalculatePosition();
+ SetPos(pos);
}
}
@@ -129,101 +137,23 @@
}
-//-------------------------------------------------------------------------------
-// WebPageFullScreenHandler::HitRegionContains
-// Defines a control's hit region
-//-------------------------------------------------------------------------------
-
-TBool WebPageFullScreenHandler::HitRegionContains(const TPoint& aPoint)
-{
- TRect spriteRect (m_pos, TSize(KFullScreenButtonHeight, KFullScreenButtonWidth));
- return spriteRect.Contains(aPoint);
-}
-
-
-//-------------------------------------------------------------------------------
-// WebPageFullScreenHandler::destructSprite
-// close/hide sprite for time being
-//-------------------------------------------------------------------------------
-
-void WebPageFullScreenHandler::destructSprite()
+void WebPageFullScreenHandler::HandlePointerEventL(const TPointerEvent& aPointerEvent)
{
- m_sprite.Close();
- m_spriteVisible = EFalse;
-}
-
-//-------------------------------------------------------------------------------
-// WebPageFullScreenHandler::constructSprite
-// Show/create sprite at m_pos
-//-------------------------------------------------------------------------------
+ switch (aPointerEvent.iType)
+ {
+ case TPointerEvent::EButton1Down:
+ m_isTouchDown = ETrue;
+ break;
-void WebPageFullScreenHandler::constructSprite()
-{
- m_sprite = RWsSprite(m_webView->brCtl()->CCoeControlParent()->ControlEnv()->WsSession());
- m_sprite.Construct(m_webView->brCtl()->CCoeControlParent()->ControlEnv()->RootWin(), m_pos, ESpriteNoShadows);
- TCannedImageData cannedImage = StaticObjectsContainer::instance()->webCannedImages()->getImage(WebCannedImages::EImageEscFullScreen);
-
- TSpriteMember spriteMem;
- spriteMem.iBitmap = cannedImage.m_img;
- spriteMem.iMaskBitmap = cannedImage.m_msk; //masked bitmap still of the canned image need to be changed
-
- m_sprite.AppendMember(spriteMem);
- m_sprite.Activate();
-
- m_spriteVisible = ETrue;
+ case TPointerEvent::EButton1Up:
+ {
+ if (m_isTouchDown) {
+ Hide();
+ m_webView->notifyFullscreenModeChangeL( false );
+ }
+ m_isTouchDown = EFalse;
+ }
+ break;
+ }
}
-//-------------------------------------------------------------------------------
-// WebPageFullScreenHandler::HandleWsEventL
-// check if click region hits sprite
-//-------------------------------------------------------------------------------
-
-void WebPageFullScreenHandler::HandleWsEventL(const TWsEvent& aEvent,CCoeControl* aDestination)
-{
- if (!aDestination) return;
-
- if(aEvent.Type() == EEventPointer)
- {
- switch (aEvent.Pointer()->iType)
- {
- case TPointerEvent::EButton1Down:
- if (m_spriteVisible)
- {
- TPoint point (aDestination->PositionRelativeToScreen());
- m_tappedOnSprite = HitRegionContains(aEvent.Pointer()->iPosition + point);
- }
- break;
-
- case TPointerEvent::EButton1Up:
- {
- TPoint point (aDestination->PositionRelativeToScreen());
- if (m_spriteVisible && m_tappedOnSprite &&
- HitRegionContains(aEvent.Pointer()->iPosition + point))
- {
- hideEscBtnL();
- m_webView->notifyFullscreenModeChangeL( false );
- }
- m_tappedOnSprite = EFalse;
- }
- break;
-
- }
- }
-}
-
-
-//-------------------------------------------------------------------------------
-// WebPageFullScreenHandler::AddWsObserverToControl
-// register for events from WSession
-//-------------------------------------------------------------------------------
-
-void WebPageFullScreenHandler::AddWsObserverToControl()
-{
- m_eventMonitor = ((CAknAppUi*)m_webView->ControlEnv()->AppUi())->EventMonitor();
-
- if(m_eventMonitor)
- {
- m_eventMonitor->AddObserverL(this);
- m_eventMonitor->Enable(ETrue);
- }
-}
--- a/webengine/osswebengine/WebKit/s60/webview/WebPageFullScreenHandler.h Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebKit/s60/webview/WebPageFullScreenHandler.h Fri Jul 03 15:54:40 2009 +0100
@@ -24,7 +24,9 @@
#include <e32base.h>
#include <coedef.h>
#include <w32std.h>
-#include <AknWsEventObserver.h>
+#include "WebSprite.h"
+#include "WebCannedImages.h"
+
// MACROS
// FORWARD DECLARATIONS
@@ -32,7 +34,8 @@
class WebFrame;
// CLASS DECLARATION
-class WebPageFullScreenHandler: public CBase, public MAknWsEventObserver {
+class WebPageFullScreenHandler: public CWebSprite
+{
public: // Constructor and destructor
/**
@@ -55,14 +58,10 @@
/**
* By default Symbian 2nd phase constructor is private.
**/
- void constructL();
+ void ConstructL();
- TBool HitRegionContains(const TPoint& aPoint);
- void HandleWsEventL(const TWsEvent& aEvent,CCoeControl* aDestination);
- void AddWsObserverToControl();
- void constructSprite();
- void destructSprite();
-
+ TPoint CalculatePosition();
+
public: // New functions
@@ -94,17 +93,14 @@
**/
void SizeChanged(void);
-
+ void HandlePointerEventL(const TPointerEvent& aPointerEvent);
private:
// Pointer to owning view
WebView* m_webView; // not owned
- CAknWsEventMonitor* m_eventMonitor; // not owned
- RWsSprite m_sprite;
- TBool m_spriteVisible;
- TBool m_tappedOnSprite;
- TPoint m_pos;
+ TBool m_isTouchDown;
+ TCannedImageData m_buttonIcon;
};
#endif //WEBPAGEFULLSCREENHANDLER_H
--- a/webengine/osswebengine/WebKit/s60/webview/WebPageScrollHandler.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebKit/s60/webview/WebPageScrollHandler.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -251,10 +251,7 @@
{
m_scrollTimer->Cancel();
if (m_scrollableView.m_scrollingElement) {
- if (m_scrollableView.m_scrollingElement) {
- m_scrollableView.m_scrollingElement->deref();
- m_scrollableView.m_scrollingElement = NULL;
- }
+ clearScrollingElement();
}
else {
if (m_lastMoveEventTime != 0)
@@ -281,10 +278,11 @@
}
void WebPageScrollHandler::setupScrolling(const TPoint& aNewPosition)
-{
+{
if (m_lastPosition == TPoint(0, 0)) {
m_lastPosition = aNewPosition;
}
+
if(m_lastPosition == aNewPosition)
return; // no displacement -- means no need for scrolling
@@ -305,19 +303,31 @@
m_webView->setViewIsScrolling(true);
m_webView->toggleRepaintTimer(false);
}
+}
-}
+void WebPageScrollHandler::clearScrollingElement()
+{
+ if (m_scrollableView.m_scrollingElement) {
+ m_scrollableView.m_scrollingElement->deref();
+ m_scrollableView.m_scrollingElement = NULL;
+ }
+}
void WebPageScrollHandler::scrollContent()
{
TPoint scrollDelta = m_lastPosition - m_currentPosition;
-
+ scrollContent(scrollDelta);
+}
+
+void WebPageScrollHandler::scrollContent(TPoint& aScrollDelta)
+{
if(!m_scrollableView.activeFrameView())
return;
- int absX = Abs(scrollDelta.iX);
- int absY = Abs(scrollDelta.iY);
+
+ int absX = Abs(aScrollDelta.iX);
+ int absY = Abs(aScrollDelta.iY);
if(absX || absY) //move only if necessary
{
@@ -331,8 +341,8 @@
{
case ScrollDirectionX: //scroll in X dir
{
- scrollDelta.iY = 0;
- scrollDelta.iX *= 100;
+ aScrollDelta.iY = 0;
+ aScrollDelta.iX *= 100;
//Fallback to XY state if the current position is out of bounds
TPoint boundaryCheckpoint = m_focalPoint - m_currentPosition;
if(Abs(boundaryCheckpoint.iY) > KScrollDirectionBoundary)
@@ -341,8 +351,8 @@
}
case ScrollDirectionY: //scroll in Y dir
{
- scrollDelta.iX = 0;
- scrollDelta.iY *= 100;
+ aScrollDelta.iX = 0;
+ aScrollDelta.iY *= 100;
//Fallback to XY state if the current position is out of bounds
TPoint boundaryCheckpoint = m_focalPoint - m_currentPosition;
if(Abs(boundaryCheckpoint.iX) > KScrollDirectionBoundary)
@@ -351,8 +361,8 @@
}
case ScrollDirectionXY: //scroll in XY
{
- scrollDelta.iX *= 100;
- scrollDelta.iY *= 100;
+ aScrollDelta.iX *= 100;
+ aScrollDelta.iY *= 100;
m_scrollDirectionState = ScrollDirectionUnassigned;
break;
}
@@ -360,17 +370,16 @@
if (m_scrollableView.m_scrollingElement) {
bool shouldScrollVertically = false;
bool shouldScrollHorizontally = false;
- //WebFrameView* mfv = m_webView->mainFrame()->frameView();
WebFrame* frame = kit(m_scrollableView.m_scrollingElement->document()->frame());
- IntPoint currPoint = frame->frameView()->viewCoordsInFrameCoords(m_currentPosition);
RenderObject* render = m_scrollableView.m_scrollingElement->renderer();
__ASSERT_DEBUG(render->isScrollable(), User::Panic(_L(""), KErrGeneral));
- if (scrollDelta.iY)
- shouldScrollVertically = !render->scroll(ScrollDown, ScrollByPixel, frame->frameView()->toDocCoords(scrollDelta).iY / 100);
- if (scrollDelta.iX)
- shouldScrollHorizontally = !render->scroll(ScrollRight, ScrollByPixel, frame->frameView()->toDocCoords(scrollDelta).iX / 100);
+ if (aScrollDelta.iY)
+ shouldScrollVertically = !render->scroll(ScrollDown, ScrollByPixel, frame->frameView()->toDocCoords(aScrollDelta).iY / 100);
+ if (aScrollDelta.iX)
+ shouldScrollHorizontally = !render->scroll(ScrollRight, ScrollByPixel, frame->frameView()->toDocCoords(aScrollDelta).iX / 100);
+
TPoint scrollPos = frame->frameView()->contentPos();
- TPoint newscrollDelta = frame->frameView()->toDocCoords(scrollDelta);
+ TPoint newscrollDelta = frame->frameView()->toDocCoords(aScrollDelta);
m_currentNormalizedPosition += newscrollDelta;
if (shouldScrollHorizontally) {
@@ -379,21 +388,25 @@
if (shouldScrollVertically) {
scrollPos.iY = m_currentNormalizedPosition.iY/100;
}
- frame->frameView()->scrollTo(scrollPos);
+
+
+ if (shouldScrollVertically || shouldScrollHorizontally){
+ if (m_scrollableView.m_frameView->needScroll(scrollPos)) {
+ frame->frameView()->scrollTo(scrollPos);
+ updateScrollbars(scrollPos, newscrollDelta);
+ core(frame)->sendScrollEvent();
+ }
+ }
+ else {
+ m_webView->syncRepaint();
+ }
m_lastPosition = m_currentPosition;
m_currentNormalizedPosition.iX = frame->frameView()->contentPos().iX * 100;
m_currentNormalizedPosition.iY = frame->frameView()->contentPos().iY * 100;
- if (shouldScrollVertically || shouldScrollHorizontally)
- updateScrollbars(scrollPos, newscrollDelta);
- currPoint = frame->frameView()->viewCoordsInFrameCoords(m_currentPosition);
- if (shouldScrollHorizontally || shouldScrollVertically) {
- core(frame)->sendScrollEvent();
- m_webView->DrawNow();
- }
}
else {
TPoint scrollPos;
- TPoint newscrollDelta = m_scrollableView.m_frameView->toDocCoords(scrollDelta);
+ TPoint newscrollDelta = m_scrollableView.m_frameView->toDocCoords(aScrollDelta);
m_currentNormalizedPosition += newscrollDelta;
scrollPos.iX = m_currentNormalizedPosition.iX/100;
scrollPos.iY = m_currentNormalizedPosition.iY/100;
@@ -406,6 +419,7 @@
m_currentNormalizedPosition.iY = m_scrollableView.contentPos().iY * 100;
}
else {
+
m_scrollableView.m_frameView->scrollTo(scrollPos);
m_lastPosition = m_currentPosition;
#ifndef BRDO_USE_GESTURE_HELPER
@@ -420,7 +434,7 @@
bool WebPageScrollHandler::calculateScrollableFrameView(const TPoint& aNewPosition)
{
- if (calculateScrollableElement(aNewPosition)) return true;
+ calculateScrollableElement(aNewPosition);
//First figure out the direction we are scrolling
bool x_r = false;
@@ -634,19 +648,11 @@
else {
m_scrollTimer->Cancel();
m_lastPosition = TPoint(0, 0);
- if (m_scrollableView.m_scrollingElement) {
- if (m_scrollableView.m_scrollingElement) {
- m_scrollableView.m_scrollingElement->deref();
- m_scrollableView.m_scrollingElement = NULL;
- }
- }
- else {
- decelDoesScrollbars = startDeceleration(aEvent);
+ decelDoesScrollbars = startDeceleration(aEvent);
- if (m_webView->viewIsScrolling()) {
- Frame* frame = m_webView->page()->focusController()->focusedOrMainFrame();
- frame->bridge()->sendScrollEvent();
- }
+ if (m_webView->viewIsScrolling()) {
+ Frame* frame = m_webView->page()->focusController()->focusedOrMainFrame();
+ frame->bridge()->sendScrollEvent();
}
if (!decelDoesScrollbars) {
--- a/webengine/osswebengine/WebKit/s60/webview/WebPageScrollHandler.h Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebKit/s60/webview/WebPageScrollHandler.h Fri Jul 03 15:54:40 2009 +0100
@@ -124,6 +124,13 @@
* @since 5.0
* param
* return
+ */
+ void clearScrollingElement();
+
+ /**
+ * @since 5.0
+ * param
+ * return
*/
WebFrameView* currentScrollingFrameView() { return m_scrollableView.m_frameView;}
@@ -132,6 +139,13 @@
* param
* return
*/
+ WebCore::Element* currentScrollingElement() { return m_scrollableView.m_scrollingElement;}
+
+ /**
+ * @since 5.0
+ * param
+ * return
+ */
void updateScrolling(const TPointerEvent& pointerEvent);
/**
@@ -140,6 +154,14 @@
* return
*/
void scrollContent();
+
+ /**
+ * @since 5.0
+ * param
+ * return
+ */
+ void scrollContent(TPoint& scrollDelta);
+
/**
* @since 5.0
* param
--- a/webengine/osswebengine/WebKit/s60/webview/WebPointerEventHandler.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebKit/s60/webview/WebPointerEventHandler.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -54,6 +54,7 @@
#include "ChromeClient.h"
#include "FocusController.h"
#include "WebTabbedNavigation.h"
+#include "SettingsContainer.h"
#include "PluginHandler.h"
#include "WebKitLogger.h"
@@ -295,7 +296,8 @@
{
m_highlightPos = TPoint(-1,-1);
m_highlightedNode = NULL;
-
+ PluginHandler* pluginHandler = WebCore::StaticObjectsContainer::instance()->pluginHandler();
+ pluginHandler->setPluginToActivate(NULL);
m_webview->pageScrollHandler()->handleTouchUpGH(aEvent);
}
@@ -306,17 +308,11 @@
{
TBrCtlDefs::TBrCtlElementType elType = m_webview->focusedElementType();
TPoint curPos = aEvent.CurrentPos();
-
+ PluginHandler* pluginHandler = WebCore::StaticObjectsContainer::instance()->pluginHandler();
+ pluginHandler->setPluginToActivate(NULL);
m_buttonDownTimer.stop();
HandleHighlightChange(curPos);
- if (elType == TBrCtlDefs::EElementActivatedObjectBox) {
- PluginSkin* plugin = m_webview->mainFrame()->focusedPlugin();
- if (plugin) {
- plugin->deActivate();
- }
- }
-
m_webview->pageScrollHandler()->handleScrollingGH(aEvent);
}
@@ -350,6 +346,20 @@
else if (aPointerEvent.iType == TPointerEvent::EButton1Up) {
m_webview->GetContainerWindow().DisablePointerMoveBuffer();
}
+ if (m_webview->brCtl()->settings()->getNavigationType() == SettingsContainer::NavigationTypeNone) {
+ TPointerEvent event;
+ event.iPosition = aPointerEvent.iPosition;
+ event.iModifiers = 0;
+ event.iType = aPointerEvent.iType;
+
+ if (event.iType == TPointerEvent::EDrag) event.iType = TPointerEvent::EMove;
+ m_webview->sendMouseEventToEngine(event.iType, event.iPosition, core(m_webview->mainFrame()));
+ return;
+ }
+ }
+
+ if (m_webview->brCtl()->settings()->getNavigationType() == SettingsContainer::NavigationTypeTabbed) {
+ m_webview->tabbedNavigation()->updateCursorPosition(aPointerEvent.iPosition);
}
#ifdef BRDO_USE_GESTURE_HELPER
--- a/webengine/osswebengine/WebKit/s60/webview/WebPopupDrawer.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebKit/s60/webview/WebPopupDrawer.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -82,10 +82,13 @@
User::Leave(KErrArgument);
}
m_textToDraw = textToDraw.AllocL();
+ CleanupStack::PushL(m_textToDraw);
m_removePopupPeriodic = CPeriodic::NewL( CActive::EPriorityLow );
+ CleanupStack::PushL(m_removePopupPeriodic);
m_removePopupPeriodic->Start( KPopupTimeout, 0, TCallBack( &removePopupCallback, this ) );
sizeChangedL();
constructSprite();
+ CleanupStack::Pop(2, m_textToDraw); //m_removePopupPeriodic, m_textToDraw
}
// -----------------------------------------------------------------------------
@@ -105,6 +108,10 @@
delete m_spriteMaskBitmapDevice;
delete m_spriteMaskBitmapContext;
delete m_spriteMaskBitmap;
+ delete m_icon;
+ delete m_spriteBitmapDevice;
+ delete m_spriteBitmapContext;
+ delete m_spriteBitmap;
}
// -----------------------------------------------------------------------------
@@ -231,8 +238,10 @@
delete m_spriteBitmap;
m_spriteBitmap = NULL;
m_spriteBitmap = new (ELeave) CFbsBitmap;
+ CleanupStack::PushL(m_spriteBitmap);
User::LeaveIfError( m_spriteBitmap->Create( m_size, EColor16MA ) );
m_spriteBitmapDevice = CFbsBitmapDevice::NewL( m_spriteBitmap );
+ CleanupStack::PushL(m_spriteBitmapDevice);
User::LeaveIfError( m_spriteBitmapDevice->CreateContext( m_spriteBitmapContext ) );
//mask
delete m_spriteMaskBitmapDevice;
@@ -242,8 +251,10 @@
delete m_spriteMaskBitmap;
m_spriteMaskBitmap = NULL;
m_spriteMaskBitmap = new (ELeave) CFbsBitmap;
+ CleanupStack::PushL(m_spriteMaskBitmap);
User::LeaveIfError( m_spriteMaskBitmap->Create( m_size, EGray2 ) );
m_spriteMaskBitmapDevice = CFbsBitmapDevice::NewL( m_spriteMaskBitmap );
+ CleanupStack::PushL(m_spriteMaskBitmapDevice);
User::LeaveIfError( m_spriteMaskBitmapDevice->CreateContext( m_spriteMaskBitmapContext ) );
TRect r( TPoint( 0, 0 ), m_spriteMaskBitmap->SizeInPixels());
m_spriteMaskBitmapContext->SetBrushStyle( CGraphicsContext::ESolidBrush );
@@ -276,6 +287,8 @@
}
m_spriteBitmapContext->DiscardFont();
}
+
+ CleanupStack::Pop(4, m_spriteBitmap);
}
void WebPopupDrawer::constructSprite()
--- a/webengine/osswebengine/WebKit/s60/webview/WebScrollbarDrawer.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebKit/s60/webview/WebScrollbarDrawer.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -27,10 +27,12 @@
#include "BrCtl.h"
#include "StaticObjectsContainer.h"
#include "WebSurface.h"
+#include "WebSprite.h"
#include "WebKitLogger.h"
-const int KScrollbarWidth = 15;
+const int KMinScrollbarWidth = 10;
+const int KMaxScrollbarWidth = 15;
const TUint32 KMinScrollBarTransparency = 150;
const int KScrollBarFadeInterval = 30000;
const TInt32 KScrollBarTransparencyStep = 10;
@@ -60,8 +62,8 @@
WebScrollbarDrawer::WebScrollbarDrawer():
m_webView(NULL),
m_scrollBarTransparency(KMinScrollBarTransparency),
- m_scrollBarWidth(KScrollbarWidth),
- m_dX(0), m_dY(0)
+ m_scrollBarWidth(KMinScrollbarWidth),
+ m_dX(0), m_dY(0), m_spriteV(NULL), m_spriteH(NULL)
{
}
@@ -74,7 +76,9 @@
}
delete m_scrollBarFader;
- removeBitmaps();
+ removeBitmaps();
+ delete m_spriteV;
+ delete m_spriteH;
}
@@ -97,13 +101,33 @@
m_scrollBarTransparency = KMinScrollBarTransparency;
m_dY = 0.0;
m_dX = 0.0;
+ m_rectVThum = TRect();
+ m_rectHThum = TRect();
+ m_rect.SetRect(m_webView->brCtl()->Rect().iTl,
+ m_webView->brCtl()->Rect().Size());
+ m_scrollBarWidth = Max(0.04 * Min(m_rect.Width(), m_rect.Height()), KMinScrollbarWidth);
calculateBitmapRects();
err = SetupBitmaps();
-
+
if (err == KErrNone) {
- constructSprite(m_spriteV, m_rectVThum.iTl, m_scrollBarV, m_scrollBarVMask);
- constructSprite(m_spriteH, m_rectHThum.iTl, m_scrollBarH, m_scrollBarHMask);
+ if (!m_spriteV) {
+ m_spriteV = CWebSprite::NewL(m_webView, m_rectVThum.iTl, m_scrollBarV, m_scrollBarVMask, ETrue);
+ }
+ else {
+ m_spriteV->SetBitmap(m_scrollBarV, m_scrollBarVMask, ETrue);
+ m_spriteV->SetPos(m_rectVThum.iTl);
+ }
+
+ if (!m_spriteH) {
+ m_spriteH = CWebSprite::NewL(m_webView, m_rectHThum.iTl, m_scrollBarH, m_scrollBarHMask, ETrue);
+ }
+ else {
+ m_spriteH->SetBitmap(m_scrollBarH, m_scrollBarHMask, ETrue);
+ m_spriteH->SetPos(m_rectHThum.iTl);
+ }
+ m_spriteV->Hide();
+ m_spriteH->Hide();
}
return err;
@@ -144,8 +168,17 @@
void WebScrollbarDrawer::clearSprites()
{
- m_spriteV.Close();
- m_spriteH.Close();
+ if (m_spriteV) {
+ m_spriteV->Hide();
+ m_spriteV->Update(NULL, NULL);
+
+ }
+
+ if (m_spriteH) {
+ m_spriteH->Hide();
+ m_spriteH->Update(NULL, NULL);
+
+ }
}
void WebScrollbarDrawer::fade()
@@ -166,34 +199,35 @@
if (m_hasVScroll) {
drawThumbMask(m_gcVMask, m_rectVThum);
- updateSprite(m_spriteV, m_scrollBarV, m_scrollBarVMask);
+ if (m_spriteV) {
+ m_spriteV->Update(m_scrollBarV, m_scrollBarVMask);
+ }
}
if (m_hasHScroll) {
drawThumbMask(m_gcHMask, m_rectHThum);
- updateSprite(m_spriteH, m_scrollBarH, m_scrollBarHMask);
+ if (m_spriteH) {
+ m_spriteH->Update(m_scrollBarH, m_scrollBarHMask);
+ }
}
}
}
+TBool WebScrollbarDrawer::canRedraw()
+{
+ return ((m_webView && m_spriteV && m_spriteH) &&
+ (m_spriteV->IsShown() || m_spriteH->IsShown()));
+}
+
void WebScrollbarDrawer::redrawScrollbar()
{
- if (m_webView) {
- TInt err = KErrNone;
- calculateBitmapRects();
- removeBitmaps();
- err = SetupBitmaps();
- if (err == KErrNone) {
- m_spriteV.SetPosition(m_rectVThum.iTl);
- updateSprite(m_spriteV, m_scrollBarV, m_scrollBarVMask);
- m_spriteH.SetPosition(m_rectHThum.iTl);
- updateSprite(m_spriteH, m_scrollBarH, m_scrollBarHMask);
- }
- else {
- clearSprites();
- }
+ if (canRedraw()) {
+ clearSprites();
+ removeBitmaps();
+ InitScrollbar(m_webView);
}
}
+
void WebScrollbarDrawer::drawScrollbar(WebView* view)
{
TPoint p = TPoint(1,1);
@@ -219,15 +253,30 @@
InitScrollbar(view);
}
+ /*
+ * According to spec vertical scrollbar is always visible
+ * even if user is not scrolling in vertical direction
+ * Horizontal scrollbar is shown only if user scroll in
+ * horizontal direction. If content height < screen height
+ * vertical scrollbar is not shown. The same for horizontal one.
+ */
if (!m_hasHScroll) { //set it only once
- m_hasHScroll = (scrollPos.iX != 0) && (m_displayWidth < m_docWidth);
+ m_hasHScroll = (Abs(scrollPos.iX) > 1) && (m_displayWidth < m_docWidth);
+ if (m_hasHScroll) {
+ m_spriteH->Update(m_rectHThum.iTl, m_scrollBarH, m_scrollBarHMask);
+
+ }
}
if (!m_hasVScroll) { //set it only once
- m_hasVScroll = (scrollPos.iY != 0) && (m_displayHeight < m_docHeight);
+ m_hasVScroll = ( (Abs(scrollPos.iY) > 1) || (Abs(scrollPos.iX) > 1) ) &&
+ (m_displayHeight < m_docHeight);
+ if (m_hasVScroll) {
+ m_spriteV->Update(m_rectVThum.iTl, m_scrollBarV, m_scrollBarVMask);
+ }
}
- if ((scrollPos.iY != 0) && (m_displayHeight < m_docHeight)) {
+ if (m_hasVScroll) {
m_dY += m_zoomFactor * ((float)scrollPos.iY * (float)m_displayHeight ) / (float)m_docHeight / 100;
if (m_rectVThum.iTl.iY + m_dY < m_rectV.iTl.iY) {
@@ -247,12 +296,12 @@
m_dY = 0.0;
}
- m_spriteV.SetPosition(m_rectVThum.iTl);
- updateSprite(m_spriteV, m_scrollBarV, m_scrollBarVMask);
+ m_spriteV->SetPos(m_rectVThum.iTl);
+ //m_spriteV->Update(m_rectVThum.iTl, m_scrollBarV, m_scrollBarVMask);
}
- if ((scrollPos.iX != 0) && (m_displayWidth < m_docWidth)) {
+ if (m_hasHScroll) {
m_dX = m_zoomFactor * ((float)scrollPos.iX * (float)m_displayWidth ) / (float)m_docWidth / 100;
if (m_rectHThum.iTl.iX + m_dX < m_rectH.iTl.iX) {
@@ -271,39 +320,11 @@
m_rectHThum.Move(m_dX, 0);
}
- m_spriteH.SetPosition(m_rectHThum.iTl);
- updateSprite(m_spriteH, m_scrollBarH, m_scrollBarHMask);
- }
-
-
-
+ m_spriteH->SetPos(m_rectHThum.iTl);
+ //m_spriteH->Update(m_rectHThum.iTl, m_scrollBarH, m_scrollBarHMask);
+ }
}
-void WebScrollbarDrawer::constructSprite(RWsSprite& sprite, TPoint& pos,
- CFbsBitmap* bitmap, CFbsBitmap* bitmapMask)
-{
- sprite = RWsSprite(m_webView->brCtl()->CCoeControlParent()->ControlEnv()->WsSession());
- RDrawableWindow *window = (RDrawableWindow* )m_webView->brCtl()->CCoeControlParent()->DrawableWindow();
- sprite.Construct(*window, pos, ESpriteNoChildClip);
-
- TSpriteMember spriteMem;
- spriteMem.iBitmap = 0;//bitmap;
- spriteMem.iMaskBitmap = 0;//bitmapMask;
- spriteMem.iInvertMask = EFalse;
-
- sprite.AppendMember(spriteMem);
- sprite.Activate();
-}
-
-void WebScrollbarDrawer::updateSprite(RWsSprite& sprite, CFbsBitmap* bitmap,
- CFbsBitmap* bitmapMask)
-{
- TSpriteMember spriteMem;
- spriteMem.iBitmap = bitmap;
- spriteMem.iMaskBitmap = bitmapMask;
- spriteMem.iInvertMask = ETrue;
- sprite.UpdateMember(0, spriteMem);
-}
TInt WebScrollbarDrawer::createBitmap(CFbsBitmap*& bm, CFbsBitGc*& gc,
CFbsBitmapDevice*& dev, TRect& rect)
@@ -314,11 +335,13 @@
err = KErrNoMemory;
}
if (err == KErrNone) {
- bm->Create(rect.Size(), EColor256);
+ err = bm->Create(rect.Size(), EColor256);
}
- TRAP(err, dev = CFbsBitmapDevice::NewL(bm));
+ if (err == KErrNone) {
+ TRAP(err, dev = CFbsBitmapDevice::NewL(bm));
+ }
if (err == KErrNone && dev != NULL) {
- err = dev->CreateContext(gc);
+ err = dev->CreateContext(gc);
}
if (err != KErrNone) {
delete dev;
@@ -348,8 +371,9 @@
TInt WebScrollbarDrawer::SetupBitmaps()
{
- TInt err = KErrNone;
- if (!m_scrollBarV) {
+ // if rect is empty don't create bitmap
+ TInt err = (m_rectVThum != TRect(0,0,0,0)) ? KErrNone : KErrNotReady;
+ if (!m_scrollBarV && err == KErrNone) {
err = createBitmap(m_scrollBarV, m_gcV, m_devV, m_rectVThum);
}
@@ -362,6 +386,11 @@
drawThumbMask(m_gcVMask, m_rectVThum);
}
+ // if rect is empty don't create bitmap
+ if (err == KErrNotReady || KErrNone) {
+ err = (m_rectHThum != TRect(0,0,0,0)) ? KErrNone : KErrNotReady;
+ }
+
if (!m_scrollBarH && err == KErrNone) {
err = createBitmap(m_scrollBarH, m_gcH, m_devH, m_rectHThum);
}
@@ -375,6 +404,9 @@
drawThumbMask(m_gcHMask, m_rectHThum);
}
+ if (err == KErrNotReady) {
+ err = KErrNone;
+ }
return err;
}
@@ -382,8 +414,6 @@
void WebScrollbarDrawer::calculateBitmapRects()
{
m_zoomFactor = ((float)m_webView->scalingFactor() / 100);
- m_rect.SetRect(m_webView->brCtl()->Rect().iTl,
- m_webView->brCtl()->Rect().Size());
int delta = 0;
int posX = m_zoomFactor * m_webView->mainFrame()->frameView()->contentPos().iX;
int posY = m_zoomFactor * m_webView->mainFrame()->frameView()->contentPos().iY;
--- a/webengine/osswebengine/WebKit/s60/webview/WebScrollbarDrawer.h Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebKit/s60/webview/WebScrollbarDrawer.h Fri Jul 03 15:54:40 2009 +0100
@@ -27,6 +27,7 @@
class WebView;
+class CWebSprite;
class WebScrollbarDrawer: public CBase
{
@@ -46,10 +47,6 @@
private:
WebScrollbarDrawer();
void ConstructL();
- void constructSprite(RWsSprite& sprite, TPoint& pos,
- CFbsBitmap* bitmap, CFbsBitmap* bitmapMask);
- void updateSprite(RWsSprite& sprite, CFbsBitmap* bitmap,
- CFbsBitmap* bitmapMask);
TInt InitScrollbar(WebView* view);
TInt SetupBitmaps();
@@ -62,11 +59,12 @@
void removeBitmaps();
void clearSprites();
void calculateBitmapRects();
+ TBool canRedraw();
private:
WebView* m_webView;
- RWsSprite m_spriteV;
- RWsSprite m_spriteH;
+ CWebSprite* m_spriteV;
+ CWebSprite* m_spriteH;
TRect m_rect;
int m_scrollBarTransparency;
CPeriodic* m_scrollBarFader;
--- a/webengine/osswebengine/WebKit/s60/webview/WebScrollingDeceleratorGH.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebKit/s60/webview/WebScrollingDeceleratorGH.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -163,27 +163,25 @@
TPoint cpos = scrollingView->contentPos();
dist = scrollingView->toDocCoords(dist);
TPoint pos = m_startPos + dist;
-
- if ((vx * m_initSpeed.iX < 0) || (vy * m_initSpeed.iY < 0) || (vx + vy == 0) ||
- (m_numscrollsteps > 1 && !scrollingView->needScroll(pos))) {
+
+ WebPageScrollHandler* handler = m_webView.pageScrollHandler();
+
+ if ((vx * m_initSpeed.iX < 0) || (vy * m_initSpeed.iY < 0) || (vx + vy == 0) ||
+ (m_numscrollsteps > 1 && !scrollingView->needScroll(pos) &&
+ !handler->currentScrollingElement())) {
if (m_scrollbarDrawer) {
m_scrollbarDrawer->fadeScrollbar();
}
m_decelTimer->Cancel();
+ handler->clearScrollingElement();
m_webView.setViewIsScrolling(false);
m_webView.toggleRepaintTimer(true);
}
else {
- scrollingView->scrollTo(pos);
- if (m_scrollbarDrawer) {
- TPoint scrollDelta = pos - m_lastPos;
- scrollDelta.iX *= 100;
- scrollDelta.iY *= 100;
- m_webView.pageScrollHandler()->updateScrollbars(pos, scrollDelta);
- }
+ TPoint scrollDelta = pos - m_lastPos;
+ handler->scrollContent(scrollDelta);
m_lastPos = pos;
- }
-
+ }
}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/webengine/osswebengine/WebKit/s60/webview/WebSprite.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -0,0 +1,376 @@
+/*
+* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Handles the viewing of a single frame. If the page is not frame
+* enabled, this class is used as the single view. If frame
+* enabled, there is one instance of this class for each frame.
+*
+*/
+
+#include "../../bidi.h"
+#include <fbs.h>
+#include <coemain.h>
+#include "WebSprite.h"
+
+
+/*
+ * CWebSprite class serves as a replacement for Symbian RWsSprite
+ * in the cases when transparent window is possible (platform supports it).
+ * It's a window owning CCoeControl which window gets highest priority and
+ * smallest ordinal number. That allows to CWebSprite be on top of all windows
+ * in the same window group. The movement is restricted by boundaries of the
+ * parent CCoeControl window or Root Window if parent is NULL.
+ * Only one bitmap is supported, so animation is not possible.
+ * If platform doesn't support window transparency CWebSprite acts as wrapper
+ * around RWsSprite.
+ */
+
+// ======================================================================
+// CWebSprite::NewL
+// ======================================================================
+CWebSprite* CWebSprite::NewL(TPoint& aPos, CFbsBitmap* aBitmap,
+ CFbsBitmap* aMask, TBool aInvertMask)
+ {
+ CWebSprite* self = new(ELeave)CWebSprite(NULL, aBitmap, aMask, aInvertMask);
+ CleanupStack::PushL(self);
+ self->ConstructL(aPos);
+ CleanupStack::Pop();
+ return self;
+ }
+
+// ======================================================================
+// CWebSprite::NewL
+// ======================================================================
+CWebSprite* CWebSprite::NewL(CCoeControl* aParent, TPoint& aPos,
+ CFbsBitmap* aBitmap, CFbsBitmap* aMask,
+ TBool aInvertMask)
+ {
+ CWebSprite* self = new(ELeave)CWebSprite(aParent, aBitmap, aMask, aInvertMask);
+ CleanupStack::PushL(self);
+ self->ConstructL(aParent, aPos);
+ CleanupStack::Pop();
+ return self;
+ }
+
+// ======================================================================
+// CWebSprite::BaseConstructL
+// ======================================================================
+void CWebSprite::BaseConstructL(TPoint& aPos, CFbsBitmap* aBitmap,
+ CFbsBitmap* aMask, TBool aInvertMask)
+ {
+ iBitmap = aBitmap;
+ iMask = aMask;
+ iInvertMask = aInvertMask;
+ iParent = NULL;
+ ConstructL(aPos);
+ }
+
+// ======================================================================
+// CWebSprite::BaseConstructL
+// ======================================================================
+void CWebSprite::BaseConstructL(CCoeControl* aParent, TPoint& aPos,
+ CFbsBitmap* aBitmap, CFbsBitmap* aMask,
+ TBool aInvertMask)
+ {
+ iBitmap = aBitmap;
+ iMask = aMask;
+ iInvertMask = aInvertMask;
+ iParent = aParent;
+ ConstructL(aParent, aPos);
+ }
+
+// ======================================================================
+// CWebSprite::CWebSprite()
+// ======================================================================
+CWebSprite::CWebSprite()
+ {
+ }
+
+// ======================================================================
+// CWebSprite::CWebSprite()
+// ======================================================================
+CWebSprite::CWebSprite(CCoeControl* aParent, CFbsBitmap* aBitmap,
+ CFbsBitmap* aMask, TBool aInvertMask) :
+ iParent(aParent), iBitmap(aBitmap), iMask(aMask),
+ iInvertMask(aInvertMask), iWin(NULL)
+ {
+ }
+
+// ======================================================================
+// CWebSprite::ConstructL
+// ======================================================================
+void CWebSprite::ConstructL(TPoint& aPos)
+ {
+ ConstructL(NULL, aPos);
+ }
+
+// ======================================================================
+// CWebSprite::ConstructL
+// ======================================================================
+void CWebSprite::ConstructL(CCoeControl* aParent, TPoint& aPos)
+ {
+ TInt err = KErrNone;
+ if (aParent)
+ {
+ CreateWindowL(aParent);
+ }
+ else
+ {
+ CreateWindowL();
+ }
+
+ iWin = &(Window());
+ iWin->SetRequiredDisplayMode(EColor16MA);
+ err = iWin->SetTransparencyAlphaChannel();
+ if (err != KErrNone)
+ {
+ // Transparency is not possible - close window and use sprites
+ CloseWindow();
+ iWin = NULL;
+ }
+
+ if (iWin)
+ {
+ iWin->SetOrdinalPosition(0, KPasswordWindowGroupPriority - 1);
+ iWin->SetBackgroundColor(TRgb(0,0));
+ if (iBitmap)
+ {
+ init(aPos, iBitmap->SizeInPixels());
+ ActivateL();
+ }
+ else
+ {
+ SetPosition(aPos);
+ Hide();
+ }
+ }
+ else
+ {
+ MakeVisible(EFalse);
+ CreateSprite(aPos);
+ }
+ }
+
+// ======================================================================
+// CWebSprite::CreateSprite
+// ======================================================================
+void CWebSprite::CreateSprite(TPoint& aPos)
+ {
+ /*
+ * We should come here only if iWin is NULL since it will mean that
+ * transparent windowis not possible and we are using sprite
+ */
+ RWindowTreeNode* window = iParent ? static_cast<RWindowTreeNode*>(iParent->DrawableWindow()) :
+ static_cast<RWindowTreeNode*>(&(ControlEnv()->RootWin()));
+ iSprite = RWsSprite(ControlEnv()->WsSession());
+ iSprite.Construct(*window, aPos, ESpriteNoChildClip);
+
+ TSpriteMember spriteMem;
+ spriteMem.iBitmap = iBitmap;
+ spriteMem.iMaskBitmap = iMask;
+ spriteMem.iInvertMask = iInvertMask;
+
+ iSprite.AppendMember(spriteMem);
+ iSprite.Activate();
+ }
+
+// ======================================================================
+// CWebSprite::UpdateSprite
+// ======================================================================
+void CWebSprite::UpdateSprite()
+ {
+ /*
+ * We should come here only if iWin is NULL since it will mean that
+ * transparent windowis not possible and we are using sprite
+ */
+ TSpriteMember spriteMem;
+ spriteMem.iBitmap = iBitmap;
+ spriteMem.iMaskBitmap = iMask;
+ spriteMem.iInvertMask = iInvertMask;
+
+ iSprite.UpdateMember(0, spriteMem);
+ }
+
+// ======================================================================
+// CWebSprite::init
+// ======================================================================
+void CWebSprite::init(TPoint& aPos, TSize aSize)
+ {
+ if (iWin)
+ { // we have a window - let's set position and size
+ SetPosition(aPos);
+ SetSizeWithoutNotification(aSize);
+ }
+ }
+
+// ======================================================================
+// CWebSprite::Draw
+// ======================================================================
+void CWebSprite::Draw(const TRect& aRect) const
+ {
+ if (IsActivated() && iBitmap)
+ {
+ CWindowGc& gc = SystemGc();
+ gc.Clear(aRect);
+ Window().SetOrdinalPosition(0, KPasswordWindowGroupPriority - 1);
+ TPoint pt = TPoint(0,0);
+ TRect rect = TRect(pt, iBitmap->SizeInPixels());
+ gc.BitBltMasked(pt, iBitmap, rect, iMask, iInvertMask);
+ }
+ }
+
+// ======================================================================
+// CWebSprite::SetBitmap
+// ======================================================================
+void CWebSprite::SetBitmap(CFbsBitmap* aBitmap, CFbsBitmap* aMask, TBool aInvertMask)
+ {
+ iBitmap = aBitmap;
+ iMask = aMask;
+ iInvertMask = aInvertMask;
+
+ if(iWin && aBitmap)
+ {
+ TPoint pos = Position();
+ init(pos, aBitmap->SizeInPixels());
+ }
+ }
+
+// ======================================================================
+// CWebSprite::Update
+// ======================================================================
+void CWebSprite::Update(const TPoint& aPos, CFbsBitmap* aBitmap,
+ CFbsBitmap* aMask)
+ {
+ SetPos(aPos);
+ Update(aBitmap, aMask);
+ }
+
+// ======================================================================
+// CWebSprite::Update
+// ======================================================================
+void CWebSprite::Update(CFbsBitmap* aBitmap, CFbsBitmap* aMask)
+ {
+ TInt err = KErrNone;
+ if(iWin && aBitmap) // if we have a window and bitmap check if we need
+ { // to finish initialization
+ if (!IsActivated() || !iBitmap) // if control wasn't activated
+ { // or bitmap was reset last time to NULL,
+ TPoint pos = Position(); // because somebody wanted to reuse this control,
+ init(pos, aBitmap->SizeInPixels()); // we will try to initialize the control.
+ TRAP(err, ActivateL());
+ }
+ }
+
+ if (err == KErrNone)
+ {
+ iBitmap = aBitmap;
+ iMask = aMask;
+ }
+ else
+ {
+ iBitmap = NULL;
+ iMask = NULL;
+ }
+
+ if (!iWin)
+ {
+ UpdateSprite();
+ }
+ else if (iBitmap)
+ {
+ Show();
+ DrawNow();
+ }
+ }
+
+// ======================================================================
+// CWebSprite::Update
+// ======================================================================
+void CWebSprite::Update(CFbsBitmap* aBitmap, CFbsBitmap* aMask,
+ TBool aInvertMask)
+ {
+ iInvertMask = aInvertMask;
+ Update(aBitmap, aMask);
+ }
+
+// ======================================================================
+// CWebSprite::Show
+// ======================================================================
+void CWebSprite::Show()
+ {
+ if (iWin)
+ {
+ MakeVisible(ETrue);
+ }
+ else
+ {
+ UpdateSprite();
+ }
+ }
+
+// ======================================================================
+// CWebSprite::Hide
+// ======================================================================
+void CWebSprite::Hide()
+ {
+ if (iWin)
+ {
+ MakeVisible(EFalse);
+ }
+ else
+ {
+ Update(NULL, NULL);
+ }
+ }
+
+// ======================================================================
+// CWebSprite::~CWebSprite
+// ======================================================================
+CWebSprite::~CWebSprite()
+ {
+ if (!iWin)
+ {
+ iSprite.Close();
+ }
+ }
+
+// ======================================================================
+// CWebSprite::SetPos
+// ======================================================================
+void CWebSprite::SetPos(const TPoint& aPos)
+ {
+ if (!iWin)
+ {
+ iSprite.SetPosition(aPos);
+ }
+ else
+ {
+ TPoint pos = Position();
+ if (pos != aPos)
+ {
+ CCoeControl::SetPosition(aPos);
+ }
+ }
+ }
+
+
+// ======================================================================
+// CWebSprite::IsShown
+// ======================================================================
+TBool CWebSprite::IsShown()
+ {
+ // if it's a window owning CoeControl just return IsVisible()
+ // otherwise check if bitmap != NULL and if it's not then
+ // sprite is shown.
+ return (iWin && IsVisible()) || iBitmap != NULL;
+ }
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/webengine/osswebengine/WebKit/s60/webview/WebSprite.h Fri Jul 03 15:54:40 2009 +0100
@@ -0,0 +1,74 @@
+/*
+* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Handles the viewing of a single frame. If the page is not frame
+* enabled, this class is used as the single view. If frame
+* enabled, there is one instance of this class for each frame.
+*
+*/
+
+#ifndef WEBSPRITE_H_
+#define WEBSPRITE_H_
+
+#include <e32base.h>
+#include <w32std.h>
+#include <coecntrl.h>
+
+class CFbsBitmap;
+
+
+NONSHARABLE_CLASS(CWebSprite) : public CCoeControl
+{
+ public:
+ static CWebSprite* NewL(TPoint& aPos, CFbsBitmap* aBitmap, CFbsBitmap* aMask,
+ TBool aInvertMask);
+ static CWebSprite* NewL(CCoeControl* aParent, TPoint& aPos, CFbsBitmap* aBitmap,
+ CFbsBitmap* aMask, TBool aInvertMask);
+ CWebSprite();
+ virtual ~CWebSprite();
+
+ void Update(const TPoint& aPos, CFbsBitmap* aBitmap, CFbsBitmap* aMask);
+ void Update(CFbsBitmap* aBitmap, CFbsBitmap* aMask);
+ void Update(CFbsBitmap* aBitmap, CFbsBitmap* aMask, TBool aInvertMask);
+ void SetBitmap(CFbsBitmap* aBitmap, CFbsBitmap* aMask, TBool aInvertMask);
+ void Hide();
+ void Show();
+ void Draw(const TRect& aRect) const;
+ void SetPos(const TPoint& aPos);
+ TPoint GetPos() { return Position(); }
+ TBool IsShown();
+
+ protected:
+ void BaseConstructL(TPoint& aPos, CFbsBitmap* aBitmap, CFbsBitmap* aMask,
+ TBool aInvertMask);
+ void BaseConstructL(CCoeControl* aParent, TPoint& aPos, CFbsBitmap* aBitmap,
+ CFbsBitmap* aMask, TBool aInvertMask);
+ private:
+ CWebSprite(CCoeControl* aParent, CFbsBitmap* aBitmap, CFbsBitmap* aMask, TBool aInvertMask);
+ void ConstructL(TPoint& aPos);
+ void ConstructL(CCoeControl* aParent, TPoint& aPos);
+ void init(TPoint& aPos, TSize aSize);
+ void CreateSprite(TPoint& aPos);
+ void UpdateSprite();
+
+ private:
+ CFbsBitmap* iBitmap;
+ CFbsBitmap* iMask;
+ TBool iInvertMask;
+
+ RWsSprite iSprite;
+ RWindow* iWin;
+ CCoeControl* iParent;
+};
+
+#endif /* WEBSPRITE_H_ */
--- a/webengine/osswebengine/WebKit/s60/webview/WebView.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebKit/s60/webview/WebView.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -59,6 +59,7 @@
#include "PluginSkin.h"
#include "PluginWin.h"
#include "PluginPlayer.h"
+#include "WebKitLogger.h"
#include "Page.h"
@@ -83,6 +84,10 @@
#include "WidgetExtension.h"
#include "Cache.h"
#include "RenderWidget.h"
+#include "HTMLNames.h"
+#include "HTMLInputElement.h"
+
+using namespace HTMLNames;
#include <AknUtils.h>
#include <CUserAgent.h>
@@ -98,6 +103,7 @@
const int KRepaintDelayLoading = 500*1000; // dont do repaints more often than this during loading (0.5s)
const int KRepaintDelayComplete = 100*1000; // faster updates after load so dynamic scripts etc have better frame rate (0.1s)
+const int KRepaintDelayNavNone = 70*1000;
const int KNormalScrollRange = 60;
const int KPanningStartSpeed = 30;
@@ -185,7 +191,6 @@
, m_pageFullScreenHandler(NULL)
, m_viewIsScrolling(false)
, m_ptrbuffer(0)
-, m_pluginActivated(false)
, m_showCursor(false)
, m_allowRepaints(true)
{
@@ -200,6 +205,8 @@
delete m_pageZoomHandler;
m_pageZoomHandler = NULL;
+ m_zoomLevelArray.Close();
+
// prevent frameViews to access members when topView is
// closing down.
m_isClosing = true;
@@ -229,6 +236,8 @@
delete m_tabbedNavigation;
delete m_userAgent;
delete m_pageFullScreenHandler;
+ delete m_bridge;
+ delete m_frameView;
}
// -----------------------------------------------------------------------------
@@ -242,7 +251,7 @@
CCoeControl::MakeVisible(ETrue);
- WebFrameView *frameView = new WebFrameView();
+ m_frameView = new WebFrameView();
m_page = new Page(new WebChromeClient(this), new WebContextMenuClient(), new WebEditorClient(this), new WebDragClient(), new WebInspectorClient());
m_page->backForwardList()->setCapacity(0);
m_page->setGroupName("com.s60.browser");
@@ -261,8 +270,8 @@
m_tabbedNavigation = new WebTabbedNavigation(this);
- WebFrameBridge* bridge = new WebFrameBridge();
- bridge->initMainFrameWithPage(m_page, "", frameView);
+ m_bridge = new WebFrameBridge();
+ m_bridge->initMainFrameWithPage(m_page, "", m_frameView);
// Create and offscreen device and context
m_bitmapdevice = CFbsBitmapDevice::NewL( StaticObjectsContainer::instance()->webSurface()->offscreenBitmap() );
@@ -364,7 +373,7 @@
//-------------------------------------------------------------------------------
void WebView::Draw( const TRect& rect ) const
{
- if (m_pluginFullscreen) return;
+ if (StaticObjectsContainer::instance()->isPluginFullscreen()) return;
CWindowGc& gc = SystemGc();
CEikBorderedControl::Draw( rect );
@@ -549,7 +558,7 @@
return;
}
- if (isPluginFullscreen()) return;
+ if (StaticObjectsContainer::instance()->isPluginFullscreen()) return;
CFbsBitGc& gc = m_webcorecontext->gc();
gc.Reset();
@@ -561,6 +570,15 @@
layoutPending = f->view()->layoutPending();
f = f->tree()->traverseNext();
}
+
+ if (layoutPending && m_brctl->settings()->getNavigationType() == SettingsContainer::NavigationTypeNone) {
+ Frame* f = m_page->mainFrame();
+ while ( f ) {
+ f->view()->layout();
+ f = f->tree()->traverseNext();
+ }
+ layoutPending = false;
+ }
if (!layoutPending) {
bool needsDraw = false;
m_repaints.Tidy();
@@ -588,8 +606,11 @@
// tot:fixme TBool complete = iWebkitControl->IsProgressComplete(); && CImageRendererFactory::Instance()->DecodeCount()==0;
TBool complete = ETrue;
+ int timeout = complete ? KRepaintDelayComplete : KRepaintDelayLoading;
+ if (complete && m_brctl->settings() && m_brctl->settings()->getNavigationType() == SettingsContainer::NavigationTypeNone)
+ timeout = KRepaintDelayNavNone;
if ( !m_pageZoomHandler->isActive() && m_allowRepaints){
- m_repainttimer->Start(complete ? KRepaintDelayComplete : KRepaintDelayLoading,
+ m_repainttimer->Start(timeout,
0, TCallBack( &doRepaintCb, this ) );
}
// need to draw formfill popup here.
@@ -633,15 +654,23 @@
//-------------------------------------------------------------------------------
void WebView::collectOffscreenbitmapL(CFbsBitmap& snapshot)
{
-
- (snapshot).Create(m_brctl->Size(), StaticObjectsContainer::instance()->webSurface()->displayMode());
-
+ if ( snapshot.Handle() == 0) {
+ // Create bitmap only once
+ (snapshot).Create(m_brctl->Size(), StaticObjectsContainer::instance()->webSurface()->displayMode());
+ }
CFbsBitmapDevice* device = CFbsBitmapDevice::NewL( &snapshot);
CleanupStack::PushL(device);
WebCoreGraphicsContext* gc = WebCoreGraphicsContext::NewL( device, &snapshot, mainFrame()->frameView());
CleanupStack::PushL(gc);
-
+
+ if( snapshot.Handle() != 0 ){
+ // Clear previous offscreen bitmap
+ // frameView->draw might clear the bitmap.
+ gc->gc().Clear();
+ } else if (snapshot.SizeInPixels()!=m_brctl->Size()){
+ snapshot.Resize(m_brctl->Size());
+ }
mainFrame()->frameView()->draw( *gc, mainFrame()->frameView()->visibleRect() );
CleanupStack::PopAndDestroy(2);
@@ -673,34 +702,40 @@
void WebView::pageLoadFinished()
{
+ if (m_brctl->settings()) {
+ switch (m_brctl->settings()->getNavigationType()) {
+ case SettingsContainer::NavigationTypeTabbed:
+ m_tabbedNavigation->initializeForPage();
+ break;
+ case SettingsContainer::NavigationTypeNone:
+ break;
+ case SettingsContainer::NavigationTypeCursor:
+ {
- if (m_brctl->settings() && m_brctl->settings()->getTabbedNavigation()) {
- m_tabbedNavigation->initializeForPage();
- }
- else {
+ // Temp solution to fix a problem with scrolling large pages:
+ // if user starts scrolling while loading a page - at the end of the load we should not restore
+ // the content position from the history controller
+ // As of now scroll events are not passed to WebCore and this will be changed in future
+ // then this code should be replaces with the commented one below
- // Temp solution to fix a problem with scrolling large pages:
- // if user starts scrolling while loading a page - at the end of the load we should not restore
- // the content position from the history controller
- // As of now scroll events are not passed to WebCore and this will be changed in future
- // then this code should be replaces with the commented one below
+ TPoint ptInit(0,0);
+ TPoint ptFromHistory = m_brctl->historyHandler()->historyController()->currentEntryPosition();
+ TPoint ptCurr = mainFrame()->frameView()->contentPos();
- TPoint ptInit(0,0);
- TPoint ptFromHistory = m_brctl->historyHandler()->historyController()->currentEntryPosition();
- TPoint ptCurr = mainFrame()->frameView()->contentPos();
-
- if ( ptCurr != ptFromHistory ) {
- if ( ptInit == ptCurr ) {
- mainFrame()->frameView()->scrollTo(ptFromHistory);
- }
- else {
- m_brctl->historyHandler()->historyController()->updateCurrentEntryPositionIfNeeded();
+ if ( ptCurr != ptFromHistory ) {
+ if ( ptInit == ptCurr ) {
+ mainFrame()->frameView()->scrollTo(ptFromHistory);
+ }
+ else {
+ m_brctl->historyHandler()->historyController()->updateCurrentEntryPositionIfNeeded();
+ }
+ }
+ /*
+ if ( !core(mainFrame())->view()->wasScrolledByUser())
+ mainFrame()->frameView()->scrollTo(m_brctl->historyHandler()->historyController()->currentEntryPosition());*/
+ break;
}
}
- /*
- if ( !core(mainFrame())->view()->wasScrolledByUser())
- mainFrame()->frameView()->scrollTo(m_brctl->historyHandler()->historyController()->currentEntryPosition());*/
-
}
if (FrameLoadTypeStandard == core( mainFrame())->loader()->loadType()){
@@ -787,6 +822,8 @@
return rv;
}
+
+
bool WebView::isNaviKey(const TKeyEvent& keyevent)
{
return ( keyevent.iCode == EKeyUpArrow // North
@@ -800,24 +837,26 @@
|| keyevent.iCode == EStdKeyDevice13 // : Extra KeyEvent supports diagonal event simulator wedge
|| keyevent.iCode == EKeyLeftArrow // West
|| keyevent.iCode == EKeyLeftUpArrow // Northwest
- || keyevent.iCode == EStdKeyDevice10);
+ || keyevent.iCode == EStdKeyDevice10);
}
bool WebView::handleEditable(const TKeyEvent& keyevent, TEventCode eventcode, Frame* frame )
{
bool consumed = false;
+ if (eventcode == EEventKeyDown)
+ return false;
consumed = frame->eventHandler()->keyEvent(PlatformKeyboardEvent(keyevent,eventcode));
// exit input on up/down key
// EXCEPT on touch-enabled devices. We'll just consume in that case
if ( !consumed && isNaviKey(keyevent) ) {
if (m_webfeptexteditor->validateTextFormat() ) {
setFocusNone();
- }
+ }
else {
consumed = true;
}
}
-
+
return consumed;
}
@@ -836,23 +875,23 @@
event.iPosition = pos;
event.iModifiers = 0;
event.iType = eventType;
-
+
switch (eventType) {
case TPointerEvent::EButton1Down:
{
frame->eventHandler()->handleMousePressEvent(PlatformMouseEvent(event));
break;
}
-
- case TPointerEvent::EButton1Up:
+
+ case TPointerEvent::EButton1Up:
{
frame->eventHandler()->handleMouseReleaseEvent(PlatformMouseEvent(event));
break;
}
-
+
case TPointerEvent::EMove:
{
- frame->eventHandler()->handleMouseMoveEvent(PlatformMouseEvent(event));
+ frame->eventHandler()->handleMouseMoveEvent(PlatformMouseEvent(event));
break;
}
};
@@ -875,49 +914,62 @@
bool consumed = false;
TKeyEvent oldKeyEvent(m_currentEventKey);
+ oldKeyEvent.iCode = keyevent.iCode;
+ TEventCode oldKeyCode = m_currentEventCode;
bool downEventConsumed = false;
- if (m_currentEventCode == EEventKeyDown &&
- keyevent.iCode != EKeyDevice3 ){
- sendKeyEventToEngine(oldKeyEvent, EEventKeyDown, frame);
- }
m_currentEventKey = keyevent;
m_currentEventCode = eventcode;
- if (keyevent.iCode == EKeyDevice3) {
- // pass it to webcore
- sendMouseEventToEngine(TPointerEvent::EButton1Down,
- cursor->position(), frame);
- // mimic ccb's behavior of onFocus
- setFocusedNode(frame);
+ if (m_brctl->settings()->getNavigationType() == SettingsContainer::NavigationTypeNone) {
+ consumed = handleInputElement(keyevent, eventcode, frame);
+ if (!consumed)
+ consumed = sendKeyEventToEngine(keyevent, eventcode, frame);
+ }
+ else {
+ if (keyevent.iCode == EKeyDevice3) {
+ // pass it to webcore
+ sendMouseEventToEngine(TPointerEvent::EButton1Down,
+ cursor->position(), frame);
+
+ // mimic ccb's behavior of onFocus
+ setFocusedNode(frame);
- // Toolbar is activated on long key press only if the element
- // type is EElementNone during EEventKeyDown and EEventKey.
- // This prevents toolbar from popping up in DHTML pages. Also,
- // toolbar is activated when the user is not in fast scroll
- // mode, or in page overview mode, or on wml page.
- if ( ( m_focusedElementType == TBrCtlDefs::EElementNone ||
- m_focusedElementType == TBrCtlDefs::EElementBrokenImage ) &&
- keyevent.iRepeats && !m_brctl->wmlMode() ) {
- launchToolBarL();
- }
- consumed = true;
+ // Toolbar is activated on long key press only if the element
+ // type is EElementNone during EEventKeyDown and EEventKey.
+ // This prevents toolbar from popping up in DHTML pages. Also,
+ // toolbar is activated when the user is not in fast scroll
+ // mode, or in page overview mode, or on wml page.
+ if ( ( m_focusedElementType == TBrCtlDefs::EElementNone ||
+ m_focusedElementType == TBrCtlDefs::EElementBrokenImage ) &&
+ keyevent.iRepeats && !m_brctl->wmlMode() ) {
+ launchToolBarL();
+ }
+ consumed = true;
+ }
+ else if (isNaviKey(keyevent)) {
+
+ if (oldKeyCode == EEventKeyDown){
+ // Keydown event is automatically generated before each keypress event, but in this case
+ // we don't send a keypress event, so send a keydown event explicitly.
+ downEventConsumed = sendKeyEventToEngine(oldKeyEvent, EEventKeyDown, frame);
+ }
+
+
+ if (m_brctl->settings()->getNavigationType() == SettingsContainer::NavigationTypeTabbed) {
+ consumed = downEventConsumed || handleTabbedNavigation(keyevent, eventcode);
+ }
+ else {
+ consumed = handleKeyNavigation(keyevent, eventcode, frame);
+ }
+ } // if (m_brctl->settings()->getNavigationType()
+ else { // Not an arrow key..
+ // activate hovered input element by just start typing
+ consumed = handleInputElement(keyevent, eventcode, frame);
+ }
+ if (!consumed && !(m_brctl->settings()->getNavigationType() == SettingsContainer::NavigationTypeTabbed && isNaviKey(keyevent))) {
+ consumed = sendKeyEventToEngine(keyevent, eventcode, frame);
+ }
}
- else if (isNaviKey(keyevent)) {
- if (m_brctl->settings()->getTabbedNavigation()) {
- consumed = downEventConsumed || handleTabbedNavigation(keyevent, eventcode);
- }
- else {
- consumed = handleKeyNavigation(keyevent, eventcode, frame);
- }
- } // if (m_brctl->settings()->getTabbedNavigation()
- else { // Not an arrow key..
- // activate hovered input element by just start typing
- consumed = handleInputElement(keyevent, eventcode, frame);
- }
-
- if (!consumed) {
- consumed = sendKeyEventToEngine(keyevent, eventcode, frame);
- }
return consumed;
}
@@ -925,15 +977,22 @@
bool WebView::handleInputElement(const TKeyEvent& keyevent, TEventCode eventcode, Frame* frame)
{
WebCursor* cursor = StaticObjectsContainer::instance()->webCursor();
- if (m_focusedElementType == TBrCtlDefs::EElementInputBox ||
- m_focusedElementType == TBrCtlDefs::EElementSelectBox ||
- m_focusedElementType == TBrCtlDefs::EElementSelectMultiBox ||
+ bool sendMousedEvent = false;
+ if (m_focusedElementType == TBrCtlDefs::EElementInputBox ||
m_focusedElementType == TBrCtlDefs::EElementTextAreaBox) {
-
+ sendMousedEvent = true;
+ }
+ else if (m_focusedElementType == TBrCtlDefs::EElementSelectBox ||
+ m_focusedElementType == TBrCtlDefs::EElementSelectMultiBox) {
+ if (m_brctl->settings()->getNavigationType() != SettingsContainer::NavigationTypeNone || keyevent.iCode == EKeyDevice3) {
+ sendMousedEvent = true;
+ }
+ }
+ if (sendMousedEvent) {
sendMouseEventToEngine(TPointerEvent::EButton1Down, cursor->position(), frame);
sendMouseEventToEngine(TPointerEvent::EButton1Up, cursor->position(), frame);
-
- if (m_focusedElementType == TBrCtlDefs::EElementInputBox ||
+
+ if (m_focusedElementType == TBrCtlDefs::EElementInputBox ||
m_focusedElementType == TBrCtlDefs::EElementTextAreaBox) {
if (!m_fepTimer) {
m_fepTimer = new WebCore::Timer<WebView>(this, &WebView::fepTimerFired);
@@ -944,8 +1003,9 @@
}
m_keyevent = keyevent;
m_eventcode = eventcode;
+ return true;
}
- return true;
+ return false; // not input element
}
@@ -960,7 +1020,7 @@
if (!cursor->isVisible()) {
cursor->cursorUpdate(true);
}
-
+
m_savedPosition = mainFrame()->frameView()->contentPos();
cursor->scrollAndMoveCursor(keyevent.iCode, m_scrollingSpeed, fastscroll);
updateScrollbars();
@@ -975,7 +1035,7 @@
if (!fastscroll) {
sendMouseEventToEngine(TPointerEvent::EMove, cursor->position(), frame);
}
-
+
consumed = true;
return consumed;
}
@@ -984,7 +1044,7 @@
bool WebView::handleMinimapNavigation()
{
int scrollingTime = millisecondsScrolled();
- if (!AknLayoutUtils::PenEnabled() && m_pageScalerEnabled &&
+ if (!AknLayoutUtils::PenEnabled() && m_pageScalerEnabled &&
m_pageScaler && !isSmallPage() &&
m_brctl->settings()->brctlSetting(TBrCtlDefs::ESettingsPageOverview) &&
(scrollingTime > KPanningPageScalerStart || m_pageScaler->Visible())) {
@@ -1051,6 +1111,7 @@
bool consumed = false;
TInt delay = 2 * KCursorInitialDelay;
WebCursor* cursor = StaticObjectsContainer::instance()->webCursor();
+
m_fastScrollTimer->Cancel();
m_scrollingSpeed = KNormalScrollRange*100/scalingFactor();
@@ -1064,38 +1125,42 @@
}
m_pageScrollHandler->scrollbarDrawer()->fadeScrollbar(delay);
- if ( (keyevent.iScanCode == EStdKeyDevice3) ||
- (keyevent.iScanCode == EStdKeyEnter) ) {
- // pass it to webcore
-
- if (m_focusedElementType == TBrCtlDefs::EElementInputBox ||
+ if ( (keyevent.iScanCode == EStdKeyDevice3) ||
+ (keyevent.iScanCode == EStdKeyEnter) ) {
+ // pass it to webcore
+
+ if (m_focusedElementType == TBrCtlDefs::EElementInputBox ||
m_focusedElementType == TBrCtlDefs::EElementTextAreaBox) {
setEditable(true);
}
- sendMouseEventToEngine(TPointerEvent::EButton1Up, cursor->position(), frame);
- consumed = true;
+ if (m_brctl->settings()->getNavigationType() != SettingsContainer::NavigationTypeNone) {
+ sendMouseEventToEngine(TPointerEvent::EButton1Up, cursor->position(), frame);
+ consumed = true;
+ }
}
- if (!consumed) {
- sendKeyEventToEngine(keyevent, eventcode, frame);
- }
- m_currentEventKey = KNullKeyEvent;
- m_currentEventCode = EEventNull;
+
+ if (!consumed) {
+
+ TKeyEvent correctedKeyEvent(keyevent);
+ correctedKeyEvent.iCode = m_currentEventKey.iCode;
+ sendKeyEventToEngine(correctedKeyEvent, eventcode, frame);
+ }
+ m_currentEventKey = KNullKeyEvent;
+ m_currentEventCode = EEventNull;
return consumed;
}
-bool WebView::sendKeyEventToEngine(const TKeyEvent& keyevent,
+bool WebView::sendKeyEventToEngine(const TKeyEvent& keyevent,
TEventCode eventcode, Frame* frame)
{
bool consumed = frame->eventHandler()->keyEvent(PlatformKeyboardEvent(keyevent,eventcode));
-
- if (!consumed && eventcode == EEventKey &&
+ if (!consumed && eventcode == EEventKey &&
(m_brctl->capabilities() & TBrCtlDefs::ECapabilityAccessKeys)) {
-
TKeyEvent ke = keyevent;
TChar c(ke.iCode);
// Not consumed by WebCore, is alphanumeric and does not have any modifier
- if (c.IsAlphaDigit() &&
+ if (c.IsAlphaDigit() &&
!(ke.iModifiers & (EModifierCtrl | EModifierAlt | EModifierShift))) {
ke.iModifiers = EModifierCtrl;
frame->eventHandler()->keyEvent(PlatformKeyboardEvent(ke,EEventKeyDown));
@@ -1130,12 +1195,12 @@
if (!coreFrame)
return EKeyWasNotConsumed;
coreFrame = page()->focusController()->focusedOrMainFrame();
-
+
// edit events
if (m_isEditable) {
consumed = handleEditable(keyevent, eventcode, coreFrame);
}
-
+
// scroll events
if (!consumed) {
switch( eventcode ) {
@@ -1162,6 +1227,8 @@
(displayPosY * scalingFactor()) / 100, (documentWidth * scalingFactor()) / 100, Rect().Width(),
(displayPosX * scalingFactor()) / 100);
}
+
+
void WebView::updateScrollbars()
{
TPoint scrollDelta = mainFrame()->frameView()->contentPos() - m_savedPosition;
@@ -1177,6 +1244,7 @@
}
}
+
void WebView::openPageViewL()
{
// don't show pageview if we are in lite mode
@@ -1404,28 +1472,6 @@
void WebView::FocusChanged(TDrawNow aDrawNow)
{
-if (m_isPluginsVisible && !m_pluginActivated) {
- Frame* coreFrame =core(mainFrame());
- MWebCoreObjectWidget* view = NULL;
- TBool focus(IsFocused());
- for (Frame* frame = coreFrame; frame; frame = frame->tree()->traverseNext(coreFrame)) {
- PassRefPtr<HTMLCollection> objects = frame->document()->objects();
- for (Node* n = objects->firstItem(); n; n = objects->nextItem()) {
- view = widget(n);
- if (view) {
- static_cast<PluginSkin*>(view)->viewFocusChanged(focus);
- }
- }
-
- PassRefPtr<HTMLCollection> embeds = frame->document()->embeds();
- for (Node* n = embeds->firstItem(); n; n = embeds->nextItem()) {
- view = widget(n);
- if (view) {
- static_cast<PluginSkin*>(view)->viewFocusChanged(focus);
- }
- }
- }
- }
if (m_pageFullScreenHandler && m_pageFullScreenHandler->isFullScreenMode()) {
if (IsFocused()) m_pageFullScreenHandler->showEscBtnL();
else m_pageFullScreenHandler->hideEscBtnL();
@@ -1447,9 +1493,11 @@
if (m_pageFullScreenHandler) {
m_pageFullScreenHandler->SizeChanged();
}
- if (m_viewIsScrolling) {
+
+ if (m_pageScrollHandler) {
m_pageScrollHandler->scrollbarDrawer()->redrawScrollbar();
}
+
}
TSize WebView::maxBidiSize() const
@@ -1582,9 +1630,9 @@
{
if (!m_findKeyword) {
WebFrame* frame = mainFrame()->findFrameWithSelection();
- if (frame) {
- frame->clearSelection();
- }
+ if(frame) {
+ frame->clearSelection();
+ }
return TBrCtlDefs::EFindNoMatches;
}
return search(*m_findKeyword, forward, true);
@@ -1681,8 +1729,12 @@
TPtr8 ptr((TUint8 *)m_ptrbuffer,256*sizeof(TPoint));
TInt numPnts = Window().RetrievePointerMoveBuffer(ptr);
-
- for (int i = 0; i < numPnts; i++) {
+ int i = 0;
+ if (m_brctl->settings()->getNavigationType() == SettingsContainer::NavigationTypeNone) {
+ if (numPnts > 20)
+ i = numPnts - 20;
+ }
+ for (; i < numPnts; i++) {
TPointerEvent pe;
pe.iType = TPointerEvent::EDrag;
pe.iPosition = m_ptrbuffer[i];
@@ -1703,9 +1755,12 @@
{
if (name == "navigation") {
if (value == "tabbed") {
- m_brctl->settings()->setTabbedNavigation(true);
+ m_brctl->settings()->setNavigationType(SettingsContainer::NavigationTypeTabbed);
StaticObjectsContainer::instance()->webCursor()->cursorUpdate(true);
}
+ else if (value == "none") {
+ m_brctl->settings()->setNavigationType(SettingsContainer::NavigationTypeNone);
+ }
}
}
@@ -1884,7 +1939,7 @@
//-------------------------------------------------------------------------------
void WebView::resetZoomLevel(void)
{
- if( m_widgetextension && m_widgetextension->IsWidgetPublising()) {
+ if( m_widgetextension ) {
return ;
}
if (m_historyLoad) {
@@ -1962,8 +2017,10 @@
{
m_minZoomLevel = newMinZoomLevel;
if (m_pageZoomHandler->isActive()) {
+ TRAP_IGNORE(
m_pageZoomHandler->hideZoomSliderL();
m_pageZoomHandler->showZoomSliderL();
+ );
}
else {
UpdateZoomArray(); //for non-touch
@@ -2097,25 +2154,25 @@
// Double Tap Zooming: it toggles between default, maxiZoomLevel.
// Depending on the current zoom level:
- // A. If the current is already the max, it zooms to the max
+ // A. If the current is already the max, it zooms to the max
// B. If the current is bigger than/equal to the default zoom level zooms to the default, it zooms to the max
- // C. Otherwise it zooms to the default level first.
+ // C. Otherwise it zooms to the default level first.
// For the mobile pages, such as google.com and cnn.com, minimum zoom level equals
// to the default zoom level. Zooming is only possible between default and maximum
// zoom level, double tap only won't reach logic C
//
- // For both mobile and non-mobile pages, it creates the same end user double tap
- // experiences
-
+ // For both mobile and non-mobile pages, it creates the same end user double tap
+ // experiences
+
if (m_currentZoomLevel == m_maxZoomLevel ) {
- zoomLevel = KZoomLevelDefaultValue;
+ zoomLevel = KZoomLevelDefaultValue;
}
else if (m_currentZoomLevel >= KZoomLevelDefaultValue ) {
zoomLevel = m_maxZoomLevel;
- }
+ }
else {
- zoomLevel = KZoomLevelDefaultValue;
- }
+ zoomLevel = KZoomLevelDefaultValue;
+ }
// move the content
WebFrameView* view = mainFrame()->frameView();
@@ -2139,11 +2196,11 @@
}
//-------------------------------------------------------------------------------
-// WebView::openPluginPlayer
+// WebView::openPluginPlayerL
// Called when user clicks a plugin which is able to accept user input,
// this feature is only used in US build
//-------------------------------------------------------------------------------
-void WebView::openPluginPlayer(PluginWin* plugin)
+void WebView::openPluginPlayerL(PluginWin* plugin)
{
if (!m_pluginplayer) {
PluginSkin* pluginskin = mainFrame()->focusedPlugin();
@@ -2194,6 +2251,8 @@
#endif
}
+ //Widgets dont need memory cache for dead objects. hence set it to 0
+ cache()->setCapacities(0, 0, 0);
return m_widgetextension;
}
@@ -2327,7 +2386,7 @@
}
//-------------------------------------------------------------------------------
-// WebView::notifyFullscreenModeChangeL
+// WebView::nootifyFullscreenModeChangeL
//-------------------------------------------------------------------------------
void WebView::notifyFullscreenModeChangeL(bool mode)
{
@@ -2389,32 +2448,6 @@
void WebView::setRedirectWithLockedHistory(bool value) {
m_redirectWithLockedHistory = value;
}
-//-------------------------------------------------------------------------------
-// WebView::notifyPlugins
-// Webview notifies plugins to handle play/pause of .swf files when user switches to menu/another application
-//-------------------------------------------------------------------------------
-void WebView::notifyPlugins(TBool focus)
-{
- Frame* coreFrame =core(mainFrame());
- MWebCoreObjectWidget* view = NULL;
- for (Frame* frame = coreFrame; frame; frame = frame->tree()->traverseNext(coreFrame)) {
- PassRefPtr<HTMLCollection> objects = frame->document()->objects();
- for (Node* n = objects->firstItem(); n; n = objects->nextItem()) {
- view = widget(n);
- if (view) {
- static_cast<PluginSkin*>(view)->handlePluginForeground(focus);
- }
- }
-
- PassRefPtr<HTMLCollection> embeds = frame->document()->embeds();
- for (Node* n = embeds->firstItem(); n; n = embeds->nextItem()) {
- view = widget(n);
- if (view) {
- static_cast<PluginSkin*>(view)->handlePluginForeground(focus);
- }
- }
- }
-}
void WebView::setFastScrollingMode(bool fastScrolling)
@@ -2519,4 +2552,56 @@
StaticObjectsContainer::instance()->webCursor()->setCursorVisible(showCursor);
}
+void WebView::focusedElementChanged(Element* element)
+{
+ Frame* frame = element->document()->frame();
+ WebFrameView* fv = kit(frame)->frameView();
+ if (m_brctl->settings()->getNavigationType() == SettingsContainer::NavigationTypeTabbed || m_brctl->settings()->getNavigationType() == SettingsContainer::NavigationTypeNone) {
+ if (!element || !element->document() ||!element->renderer()) return;
+ if (element->hasTagName(textareaTag) || (element->hasTagName(inputTag) && (reinterpret_cast<HTMLInputElement*>(element))->isTextField())) {
+ TPoint point = TRect(element->getRect()).iTl;
+ point = fv->frameCoordsInViewCoords(point);
+ StaticObjectsContainer::instance()->webCursor()->setPosition(point);
+ TPointerEvent event;
+ event.iPosition = StaticObjectsContainer::instance()->webCursor()->position();
+ event.iModifiers = 0;
+ event.iType = TPointerEvent::EMove;
+ core(mainFrame())->eventHandler()->handleMouseMoveEvent(PlatformMouseEvent(event));
+
+ }
+ else {
+ int x, y;
+ element->renderer()->absolutePosition(x, y);
+ Vector<IntRect> rects;
+ element->renderer()->absoluteRects(rects, x, y);
+ TPoint point;
+ if (rects.size() > 0) {
+ point = TPoint(rects[0].x(), rects[0].y());
+ point = fv->frameCoordsInViewCoords(point);
+ StaticObjectsContainer::instance()->webCursor()->setPosition(point);
+ TPointerEvent event;
+ event.iPosition = StaticObjectsContainer::instance()->webCursor()->position();
+ event.iModifiers = 0;
+ event.iType = TPointerEvent::EMove;
+ core(mainFrame())->eventHandler()->handleMouseMoveEvent(PlatformMouseEvent(event));
+ }
+ }
+
+ if (m_brctl->settings()->getNavigationType() == SettingsContainer::NavigationTypeTabbed) {
+ m_tabbedNavigation->focusedElementChanged(element);
+ }
+ // onload event on the first page could happen before the view becomes visible
+ m_savedCursorPosition = StaticObjectsContainer::instance()->webCursor()->position();
+ m_focusedElementType = nodeTypeB(element, frame);
+ }
+}
+
+void WebView::windowObjectCleared() const
+{
+ if (m_widgetextension) {
+ WebView* that = const_cast<WebView*>(this);
+ that->m_widgetextension->windowObjectCleared();
+ }
+}
+
// END OF FILE
--- a/webengine/osswebengine/WebKit/s60/webview/WebView.h Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebKit/s60/webview/WebView.h Fri Jul 03 15:54:40 2009 +0100
@@ -22,7 +22,7 @@
// INCLUDES
#include <e32std.h>
#include <eikscrlb.h>
-#include "platform/Shared.h"
+#include "platform\Shared.h"
#include "BrCtlDefs.h"
#include "PageScaler.h"
#include "Timer.h"
@@ -64,6 +64,8 @@
class WebPageZoomHandler;
class WebPointerEventHandler;
class WebPageFullScreenHandler;
+class WebFrameView;
+class WebFrameBridge;
class WebView : public CEikBorderedControl, public WebCore::Shared<WebView>, private MPageScalerCallback, public MOOMStopper
{
@@ -184,7 +186,7 @@
PluginPlayer* pluginPlayer() { return m_pluginplayer; }
void closePluginPlayer();
- void openPluginPlayer(PluginWin* plugin);
+ void openPluginPlayerL(PluginWin* plugin);
void setAccessPointId(TUint32 apid) {m_apid = apid;}
TUint32 accessPointId() { return m_apid; }
@@ -384,7 +386,6 @@
TBool TouchScrolling() ;
CCoeControl& PageControlView();
- void notifyPlugins(TBool focus);
protected: // From CCoeControl
@@ -454,24 +455,27 @@
bool handleInputElement(const TKeyEvent& keyevent, TEventCode eventcode, WebCore::Frame* frame);
bool handleEventKeyL(const TKeyEvent& keyevent, TEventCode eventcode, WebCore::Frame* frame);
void setFocusedNode(WebCore::Frame* frame);
- void sendMouseEventToEngine(TPointerEvent::TType eventType, TPoint pos, WebCore::Frame* frame);
+
bool handleEventKeyUp(const TKeyEvent& keyevent, TEventCode eventcode, WebCore::Frame* frame);
bool handleEditable(const TKeyEvent& keyevent, TEventCode eventcode, WebCore::Frame* frame );
bool isNaviKey(const TKeyEvent& keyevent);
public:
+ void sendMouseEventToEngine(TPointerEvent::TType eventType, TPoint pos, WebCore::Frame* frame);
void fepTimerFired(WebCore::Timer<WebView>*);
void fepVKBTimerFired(WebCore::Timer<WebView>*);
bool isClosing() const { return m_isClosing; }
void synchRequestPending(bool);
bool isSynchRequestPending() const { return m_synchRequestPending; }
- void setPluginFullscreen(bool val) { m_pluginFullscreen = val; }
- bool isPluginFullscreen() { return m_pluginFullscreen; }
- void setPluginActivated(bool option) {m_pluginActivated = option;}
TInt getWidgetId();
+ void focusedElementChanged(WebCore::Element* element);
+ void windowObjectCleared() const;
+
private:
- WebCore::Page* m_page;
- CBrCtl* m_brctl;
+ WebCore::Page* m_page;
+ WebFrameView* m_frameView;
+ WebFrameBridge* m_bridge;
+ CBrCtl* m_brctl;
RRegion m_repaints;
CPeriodic* m_repainttimer;
WebCoreGraphicsContext* m_webcorecontext; // owned
@@ -544,9 +548,7 @@
// synchronous requests
bool m_synchRequestPending;
- bool m_pluginFullscreen;
//Indicates any plugin is activated/deactivated
- bool m_pluginActivated;
bool m_showCursor;
bool m_allowRepaints;
};
--- a/webengine/osswebengine/WebKit/s60/webview/WidgetExtension.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebKit/s60/webview/WidgetExtension.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -69,44 +69,31 @@
CWidgetExtension::~CWidgetExtension()
{
delete m_widgetengine;
- m_widgetLibrary.Close();
#if defined(BRDO_LIW_FF)
delete m_deviceBridge;
- m_deviceLibrary.Close();
#endif
}
void CWidgetExtension::ConstructL(MWidgetCallback& aWidgetCallback)
{
if (!m_widgetengine) {
- _LIT( KBrowserWidgetEngineName, "widgetengine.dll" );
- User::LeaveIfError( m_widgetLibrary.Load(KBrowserWidgetEngineName) );
- TLibraryFunction entry = m_widgetLibrary.Lookup(1);
- if (!entry) {
+
+ m_widgetengine = WebCore::StaticObjectsContainer::instance()->getWidgetEngineBridgeL();
+ if(!m_widgetengine) {
User::Leave(KErrNotFound);
}
- m_widgetengine = (MWidgetEngineBridge*) entry();
+
m_widgetcallback = &aWidgetCallback;
- if (m_widgetengine) {
- AddJSExtension(_L("widget"),m_widgetengine->Widget(*m_widgetcallback, *this));
- AddJSExtension(_L("menu"),m_widgetengine->Menu(*m_widgetcallback, *this));
- AddJSExtension(_L("MenuItem"),m_widgetengine->MenuItem(*m_widgetcallback, *this));
- }
#if defined(BRDO_LIW_FF)
// device for SAPI
- _LIT( KDeviceDLLName, "jsdevice.dll" );
- User::LeaveIfError( m_deviceLibrary.Load(KDeviceDLLName) );
- TLibraryFunction device_entry = m_deviceLibrary.Lookup(1);
- if (!device_entry) {
+
+ m_deviceBridge = WebCore::StaticObjectsContainer::instance()->getDeviceBridgeL();
+ if (!m_deviceBridge) {
User::Leave(KErrNotFound);
}
- m_deviceBridge = (MDeviceBridge*) device_entry();
-
- if (m_deviceBridge) {
- AddJSExtension(_L("device"), m_deviceBridge->Device(0));
- }
+
#endif
if (m_webview && m_webview->page()) {
@@ -224,10 +211,38 @@
void CWidgetExtension::setTabbednavigation(bool aOn)
{
- m_webview->brCtl()->settings()->setTabbedNavigation(aOn);
+ m_webview->brCtl()->settings()->setNavigationType(aOn ? SettingsContainer::NavigationTypeTabbed : SettingsContainer::NavigationTypeCursor);
+ WebCore::StaticObjectsContainer::instance()->webCursor()->cursorUpdate(true);
+}
+
+void CWidgetExtension::setNavigationType(const TDesC& aType)
+{
+ if (aType.Compare(_L("cursor")) == 0)
+ m_webview->brCtl()->settings()->setNavigationType(SettingsContainer::NavigationTypeCursor);
+ else if (aType.Compare(_L("tabbed")) == 0)
+ m_webview->brCtl()->settings()->setNavigationType(SettingsContainer::NavigationTypeTabbed);
+ else if (aType.Compare(_L("none")) == 0)
+ m_webview->brCtl()->settings()->setNavigationType(SettingsContainer::NavigationTypeNone);
WebCore::StaticObjectsContainer::instance()->webCursor()->cursorUpdate(true);
}
+void CWidgetExtension::windowObjectCleared()
+{
+ if (m_widgetengine) {
+ m_widgetengine->Clear();
+ AddJSExtension(_L("widget"),m_widgetengine->Widget(*m_widgetcallback, *this));
+ AddJSExtension(_L("menu"),m_widgetengine->Menu(*m_widgetcallback, *this));
+ AddJSExtension(_L("MenuItem"),m_widgetengine->MenuItem(*m_widgetcallback, *this));
+ }
+
+#if defined(BRDO_LIW_FF)
+ if (m_deviceBridge) {
+ m_deviceBridge->Clear();
+ AddJSExtension(_L("device"), m_deviceBridge->Device(0));
+ m_deviceBridge->SetUid( iWidgetId);
+ }
+#endif
+}
//END OF FILE
--- a/webengine/osswebengine/WebKit/s60/webview/WidgetExtension.h Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebKit/s60/webview/WidgetExtension.h Fri Jul 03 15:54:40 2009 +0100
@@ -66,13 +66,14 @@
void setLeftSoftKeyLabel(const TDesC& aText);
void setTabbednavigation(bool aOn);
bool IsWidgetPublising(){ return m_isWidgetPublishing;}
+ void setNavigationType(const TDesC& aType);
+ void windowObjectCleared();
private:
void AddJSExtension(const TDesC& id, void* obj);
CWidgetExtension(WebView& aWebKitView);
void ConstructL(MWidgetCallback& aWidgetCallback);
- RLibrary m_widgetLibrary;
WebView* m_webview;
MWidgetEngineBridge* m_widgetengine;
@@ -81,7 +82,6 @@
bool m_isWidgetPublishing;
#if defined(BRDO_LIW_FF)
- RLibrary m_deviceLibrary;
MDeviceBridge* m_deviceBridge;
#endif
};
--- a/webengine/osswebengine/WebKit/s60/webview/webview_api_test/tsrc/group/WebViewApiTest.mmp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebKit/s60/webview/webview_api_test/tsrc/group/WebViewApiTest.mmp Fri Jul 03 15:54:40 2009 +0100
@@ -30,7 +30,11 @@
/* Remove comments and replace 0x00000000 with correct secure id */
// SECUREID 0x00000000
-LANGUAGE_IDS
+#ifdef __S60_32__
+LANG sc
+#else
+LANGUAGE_IDS
+#endif
DEFFILE WebViewApiTest.def
--- a/webengine/osswebengine/WebKitTools/GtkLauncher/GtkLauncher.pro Fri May 08 08:25:06 2009 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,10 +0,0 @@
-TEMPLATE = app
-SOURCES += main.cpp
-CONFIG -= app_bundle
-
-BASE_DIR = $$PWD/../..
-
-include(../../WebKit.pri)
-
-
-QMAKE_RPATHDIR += $$OUTPUT_DIR/lib
Binary file webengine/osswebengine/cache/conf/httpcachemanager.confml has changed
--- a/webengine/osswebengine/cache/inc/HttpCacheLookupTable.h Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/cache/inc/HttpCacheLookupTable.h Fri Jul 03 15:54:40 2009 +0100
@@ -94,6 +94,14 @@
* @param
* @return
*/
+ TInt RemoveByPosition( TInt aPos );
+
+ /**
+ *
+ * @since 3.1
+ * @param
+ * @return
+ */
TInt RemoveAll();
/**
@@ -144,6 +152,14 @@
*/
void MergeL( CHttpCacheLookupTable* aHttpCacheLookupTable, RFs aRfs );
+ /**
+ *
+ * @since 7.1
+ * @param
+ * @return
+ */
+ void FindCacheEntryIndex( const CHttpCacheEntry& aCacheEntry, TInt* aIndex );
+
private:
/**
--- a/webengine/osswebengine/cache/src/HttpCacheHandler.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/cache/src/HttpCacheHandler.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -681,7 +681,7 @@
iStreamHandler->Detach( *entry );
// Clear the flushed cache buffer, we were using for incoming body
- entry->SetCacheBufferL( KBufferSizeZero );
+ TRAP_IGNORE( entry->SetCacheBufferL( KBufferSizeZero ) );
}
}
else if( entry->State() == CHttpCacheEntry::ECacheDestroyed )
@@ -1003,16 +1003,40 @@
CArrayPtrFlat<CHttpCacheEntry>* evictedList = iEvictionHandler->EvictL( aSize );
if ( evictedList && evictedList->Count() )
{
- // destroy items
+ // Delete entry items marked for eviction
CHttpCacheEntry* entry;
- for( TInt i = 0; i < evictedList->Count(); i++ )
+ for ( TInt i = 0; i < evictedList->Count(); i++ )
{
- //
entry = evictedList->At( i );
- if( entry )
+
+ if ( entry )
{
- // destroy
- iLookupTable->Remove( entry->Url() );
+ // Handle removing valid and invalid entries. Check entry
+ // for validity, and if in lookup table. It has been
+ // found that the evictList can have invalid entries in it.
+ // These invalid entries are not in the lookup table.
+ TInt lookupTableIndex( -1 );
+ iLookupTable->FindCacheEntryIndex( *entry, &lookupTableIndex );
+
+ TInt sizeBody = entry->BodySize();
+ if ( sizeBody == 0 && lookupTableIndex >= 0 )
+ {
+ // This is an empty body cache entry that exists
+ // in the lookup table, remove it from file system and
+ // lookup table.
+ // Use CreateNewFilesL() to open file handles, so we can delete
+ // the files associated with the cache entry. We don't check
+ // return value of RemoveByPosition(), because we already
+ // checked for index in FindCacheEntryIndex().
+ iStreamHandler->CreateNewFilesL( *entry );
+ iStreamHandler->EraseCacheFile( *entry );
+ iLookupTable->RemoveByPosition( lookupTableIndex );
+ }
+ else if ( lookupTableIndex >= 0 )
+ {
+ // Remove valid entries that are found in lookup table
+ iLookupTable->Remove( entry->Url() );
+ }
}
}
@@ -1029,6 +1053,8 @@
#endif
ok = EFalse;
}
+
+ // Cleanup the evicted list, including any invalid entries
delete evictedList;
}
return ok;
@@ -1212,9 +1238,14 @@
}
if( ret == KErrNone )
{
- CleanupClosePushL( readStream );
- aLookupTable->InternalizeL( readStream, iDirectory->Des() );
- CleanupStack::PopAndDestroy(1); // readStream
+ TRAPD ( err, aLookupTable->InternalizeL( readStream, iDirectory->Des() ) );
+ readStream.Close();
+ if ( err != KErrNone )
+ {
+ // In case Bad Things Happen (TM), do RemoveAllL() which clears this cache's
+ // in-memory data structures + saves an updated lookup table to disk replacing the old one.
+ TRAP_IGNORE( RemoveAllL() );
+ }
}
}
@@ -1232,7 +1263,9 @@
RFileWriteStream writeStream;
// Don't get notified about own changes
- iHttpCacheObserver->Cancel();
+ if ( iHttpCacheObserver )
+ iHttpCacheObserver->Cancel();
+
TInt ret = KErrNone;
TInt tryCount = 0;
for (tryCount = 0; tryCount < 5; tryCount++)
@@ -1256,7 +1289,9 @@
writeStream.CommitL();
CleanupStack::PopAndDestroy(); // writeStream
}
- iHttpCacheObserver->StartObserver();
+
+ if ( iHttpCacheObserver )
+ iHttpCacheObserver->StartObserver();
}
// -----------------------------------------------------------------------------
@@ -1327,7 +1362,9 @@
void CHttpCacheHandler::UpdateLookupTable()
{
TRAP_IGNORE(UpdateLookupTableL());
- iHttpCacheObserver->StartObserver();
+
+ if ( iHttpCacheObserver )
+ iHttpCacheObserver->StartObserver();
}
// -----------------------------------------------------------------------------
--- a/webengine/osswebengine/cache/src/HttpCacheLookupTable.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/cache/src/HttpCacheLookupTable.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -233,6 +233,27 @@
}
// -----------------------------------------------------------------------------
+// CHttpCacheLookupTable::RemoveByPosition
+//
+// -----------------------------------------------------------------------------
+//
+TInt CHttpCacheLookupTable::RemoveByPosition( TInt aPos )
+ {
+ TInt status( KErrNotFound );
+
+ if ( Valid( aPos ) )
+ {
+ CHttpCacheEntry* entry = iEntries->At( aPos );
+ SetDeleted( aPos );
+ delete entry;
+ iCount--;
+ status = KErrNone;
+ }
+
+ return status;
+ }
+
+// -----------------------------------------------------------------------------
// CHttpCacheLookupTable::EraseCacheEntry
//
// -----------------------------------------------------------------------------
@@ -350,21 +371,26 @@
CHttpCacheEntry* entry = CHttpCacheEntry::NewLC( KNullDesC8, *iEvictionHandler );
// read it
err = entry->Internalize( aReadStream );
- // leave only on no memory
- if( err == KErrNone )
+
+ if ( err == KErrNone && entry->BodySize() > 0 )
{
- // insert to the table
+ // cacheEntry is valid, insert into the table
InsertL( entry );
contentSize += entry->HeaderSize();
contentSize += entry->BodySize();
}
else if ( err == KErrNoMemory )
{
+ // Only leave if no memory
User::Leave( KErrNoMemory );
}
- else
+ else if ( entry->BodySize() == 0 )
{
- // suggestions
+ // This is an empty cache entry, remove it from file system.
+ // Use CreateNewFilesL() to open file handles, so we can delete
+ // the files associated with the cache entry.
+ iStreamHandler->CreateNewFilesL( *entry );
+ iStreamHandler->EraseCacheFile( *entry );
}
// takes ownership
@@ -690,8 +716,7 @@
//
// -----------------------------------------------------------------------------
//
-TBool CHttpCacheLookupTable::Valid(
- TInt aPos )
+TBool CHttpCacheLookupTable::Valid( TInt aPos )
{
return( BoundaryCheck( aPos ) && !Empty( aPos ) && !Deleted( aPos ) );
}
@@ -701,8 +726,7 @@
//
// -----------------------------------------------------------------------------
//
-TBool CHttpCacheLookupTable::Empty(
- TInt aPos )
+TBool CHttpCacheLookupTable::Empty( TInt aPos )
{
return( BoundaryCheck( aPos ) && iEntries->At( aPos ) == NULL );
}
@@ -809,4 +833,30 @@
}
}
}
+
+// -----------------------------------------------------------------------------
+// CHttpCacheLookupTable::FindCacheEntryIndex
+//
+// -----------------------------------------------------------------------------
+//
+void CHttpCacheLookupTable::FindCacheEntryIndex(
+ const CHttpCacheEntry& aCacheEntry,
+ TInt* aIndex )
+ {
+ *aIndex = -1;
+ for ( TInt i = 0; i < iEntries->Count(); i++ )
+ {
+ CHttpCacheEntry* entry = iEntries->At( i );
+
+ if ( entry == &aCacheEntry )
+ {
+ if ( aIndex )
+ {
+ *aIndex = i;
+ }
+ break;
+ }
+ }
+ }
+
// End of File
--- a/webengine/webkitutils/HistoryProvider/HistoryController.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/webkitutils/HistoryProvider/HistoryController.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -56,7 +56,7 @@
HistoryController::~HistoryController()
{
- clearHistoryList();
+ m_historyStack.ResetAndDestroy();
}
/**
@@ -229,6 +229,7 @@
delete deadEntry;
}
}
+
m_currentIndex = (m_currentIndex != -1) ? 0: m_currentIndex ;
m_tempCurrentIndex = m_currentIndex;
m_historyLoadOffset = 0;
--- a/webengine/webkitutils/HistoryProvider/HistoryEntry.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/webkitutils/HistoryProvider/HistoryEntry.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -149,8 +149,10 @@
}
if (m_thumbnailBuf) {
RBufWriteStream stream(*m_thumbnailBuf);
+ CleanupClosePushL(stream);
TRAPD(err, thumbnail->ExternalizeRectangleL(stream, area));
stream.Close();
+ CleanupStack::PopAndDestroy(); //stream
if (err) {
delete m_thumbnailBuf;
m_thumbnailBuf = 0;
--- a/webengine/webkitutils/ToolBar/ToolBar.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/webkitutils/ToolBar/ToolBar.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -523,7 +523,10 @@
// ----------------------------------------------------------------------------
CToolBar::~CToolBar()
{
- iToolBarCallback->SetAndUpdateCursorPosition(iOrigCursorPos);
+ if( iToolBarCallback )
+ {
+ iToolBarCallback->SetAndUpdateCursorPosition(iOrigCursorPos);
+ }
if (iButtonArray != NULL)
{
iButtonArray->ResetAndDestroy();
--- a/webengine/webkitutils/ToolBar/ToolBarButton.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/webkitutils/ToolBar/ToolBarButton.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -843,53 +843,84 @@
TRect boundingRect(TPoint(0,0),TSize(w,h));
//mask
- iToolTipMask = new (ELeave) CFbsBitmap;
- User::LeaveIfError( iToolTipMask->Create( TSize(w,h), EColor16MA ) );
- iToolTipMaskDevice = CFbsBitmapDevice::NewL( iToolTipMask );
- User::LeaveIfError( iToolTipMaskDevice->CreateContext( iToolTipMaskContext ) );
- iToolTipMaskContext->SetPenColor(KRgbBlack);
- iToolTipMaskContext->SetBrushColor(KRgbBlack);
- iToolTipMaskContext->SetBrushStyle(CGraphicsContext::ESolidBrush);
- iToolTipMaskContext->SetPenStyle(CGraphicsContext::ESolidPen);
- iToolTipMaskContext->DrawRoundRect(boundingRect,TSize(4,4));
-
- //bitmap
- iToolTipBitmap = new (ELeave) CFbsBitmap;
- User::LeaveIfError( iToolTipBitmap->Create( TSize(w,h), EColor16MA ) );
- iToolTipBitmapDevice = CFbsBitmapDevice::NewL( iToolTipBitmap );
- User::LeaveIfError( iToolTipBitmapDevice->CreateContext( iToolTipBitmapContext ) );
- iToolTipBitmapContext->SetPenColor(KRgbBlack);
- iToolTipBitmapContext->SetBrushColor(TRgb(0xfa,0xfa,0xd2));
- iToolTipBitmapContext->SetBrushStyle(CGraphicsContext::ESolidBrush);
- iToolTipBitmapContext->SetPenStyle(CGraphicsContext::ESolidPen);
- iToolTipBitmapContext->DrawRoundRect(boundingRect,TSize(4,4));
+ TRAP( err,
+ {
+ iToolTipMask = new (ELeave) CFbsBitmap;
+ if(KErrNone == iToolTipMask->Create( TSize(w,h), EColor16MA ))
+ {
+ iToolTipMaskDevice = CFbsBitmapDevice::NewL( iToolTipMask );
+ User::LeaveIfError( iToolTipMaskDevice->CreateContext( iToolTipMaskContext ) );
+ }
+ }
+ );
+ if( KErrNone != err)
+ {
+ delete iToolTipMask;
+ iToolTipMask = NULL;
+ delete iToolTipMaskDevice;
+ iToolTipMaskDevice = NULL;
+ }
+ else
+ {
+ iToolTipMaskContext->SetPenColor(KRgbBlack);
+ iToolTipMaskContext->SetBrushColor(KRgbBlack);
+ iToolTipMaskContext->SetBrushStyle(CGraphicsContext::ESolidBrush);
+ iToolTipMaskContext->SetPenStyle(CGraphicsContext::ESolidPen);
+ iToolTipMaskContext->DrawRoundRect(boundingRect,TSize(4,4));
- //add text
- iToolTipBitmapContext->SetPenColor(KRgbBlack);
- iToolTipBitmapContext->SetBrushStyle(CGraphicsContext::ENullBrush);
-
- iToolTipBitmapContext->UseFont(myFont);
- TPoint pt = boundingRect.iTl;
- pt += TPoint(KToolTipBorder + KTextMargin,KToolTipBorder + KTextMargin);
- iToolTipBitmapContext->DrawText(*visualText,
- TPoint(pt.iX,pt.iY + myFont->AscentInPixels()));
- iToolTipBitmapContext->DiscardFont();
-
- CCoeControl& view = iParent->ToolBarCallback().View();
+ //bitmap
+ TRAP( err,
+ {
+ iToolTipBitmap = new (ELeave) CFbsBitmap;
+ if( KErrNone == iToolTipBitmap->Create( TSize(w,h), EColor16MA ))
+ {
+ iToolTipBitmapDevice = CFbsBitmapDevice::NewL( iToolTipBitmap );
+ User::LeaveIfError( iToolTipBitmapDevice->CreateContext( iToolTipBitmapContext ) );
+ }
+ }
+ );
+ if( KErrNone != err )
+ {
+ delete iToolTipBitmap;
+ iToolTipBitmap = NULL;
+ delete iToolTipBitmapDevice;
+ iToolTipBitmapDevice = NULL;
+ }
+ else
+ {
+ iToolTipBitmapContext->SetPenColor(KRgbBlack);
+ iToolTipBitmapContext->SetBrushColor(TRgb(0xfa,0xfa,0xd2));
+ iToolTipBitmapContext->SetBrushStyle(CGraphicsContext::ESolidBrush);
+ iToolTipBitmapContext->SetPenStyle(CGraphicsContext::ESolidPen);
+ iToolTipBitmapContext->DrawRoundRect(boundingRect,TSize(4,4));
- iToolTipSprite = RWsSprite(view.ControlEnv()->WsSession());
- RWindowTreeNode *window = (RDrawableWindow* )iParent->ToolBarCallback().CCoeControlParent().DrawableWindow();
- iToolTipSprite.Construct(*window,p, ESpriteNoChildClip);
+ //add text
+ iToolTipBitmapContext->SetPenColor(KRgbBlack);
+ iToolTipBitmapContext->SetBrushStyle(CGraphicsContext::ENullBrush);
+
+ iToolTipBitmapContext->UseFont(myFont);
+ TPoint pt = boundingRect.iTl;
+ pt += TPoint(KToolTipBorder + KTextMargin,KToolTipBorder + KTextMargin);
+ iToolTipBitmapContext->DrawText(*visualText,
+ TPoint(pt.iX,pt.iY + myFont->AscentInPixels()));
+ iToolTipBitmapContext->DiscardFont();
+
+ CCoeControl& view = iParent->ToolBarCallback().View();
- TSpriteMember spriteMem;
- spriteMem.iBitmap = iToolTipBitmap;
- spriteMem.iMaskBitmap = iToolTipMask;
- spriteMem.iInvertMask = ETrue;
+ iToolTipSprite = RWsSprite(view.ControlEnv()->WsSession());
+ RWindowTreeNode *window = (RDrawableWindow* )iParent->ToolBarCallback().CCoeControlParent().DrawableWindow();
+ iToolTipSprite.Construct(*window,p, ESpriteNoChildClip);
- iToolTipSprite.AppendMember(spriteMem);
- iToolTipSprite.Activate();
- delete visualText;//visual text
+ TSpriteMember spriteMem;
+ spriteMem.iBitmap = iToolTipBitmap;
+ spriteMem.iMaskBitmap = iToolTipMask;
+ spriteMem.iInvertMask = ETrue;
+ iToolTipSprite.AppendMember(spriteMem);
+ iToolTipSprite.Activate();
+ delete visualText;//visual text
+ }
+ }
}
else // aVisible = false
{
--- a/webengine/webkitutils/group/WebKitUtils.mmp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/webkitutils/group/WebKitUtils.mmp Fri Jul 03 15:54:40 2009 +0100
@@ -42,7 +42,11 @@
START RESOURCE ../data/webkitutils.rss
HEADER
TARGETPATH RESOURCE_FILES_DIR
-LANGUAGE_IDS
+#ifdef __S60_32__
+LANG sc
+#else
+LANGUAGE_IDS
+#endif
END
SOURCEPATH ../ToolBar
--- a/webengine/webkitutils/group/bld.inf Fri May 08 08:25:06 2009 +0300
+++ b/webengine/webkitutils/group/bld.inf Fri Jul 03 15:54:40 2009 +0100
@@ -18,7 +18,9 @@
#include <platform_paths.hrh>
#include "../../../web_plat/browser_platform_api/inc/Browser_platform_variant.hrh"
+#ifdef BRDO_USE_GESTURE_HELPER
#include "../rt_gesturehelper/group/bld.inf"
+#endif
PRJ_PLATFORMS
DEFAULT
--- a/webengine/widgetengine/group/WidgetEngine.mmp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/widgetengine/group/WidgetEngine.mmp Fri Jul 03 15:54:40 2009 +0100
@@ -118,7 +118,11 @@
START RESOURCE ../Src/WidgetMenu.rss
HEADER
TARGETPATH RESOURCE_FILES_DIR
-LANGUAGE_IDS
+#ifdef __S60_32__
+LANG sc
+#else
+LANGUAGE_IDS
+#endif
END
LIBRARY apgrfx.lib
--- a/webengine/widgetengine/inc/Menu.h Fri May 08 08:25:06 2009 +0300
+++ b/webengine/widgetengine/inc/Menu.h Fri Jul 03 15:54:40 2009 +0100
@@ -35,6 +35,7 @@
// CLASS DECLARATION
class MJSMenuCallbacks;
+class MJSObjectProtector;
/**
* CMenu
@@ -49,10 +50,12 @@
struct MenuPrivate
{
MenuPrivate(MJSMenuCallbacks* callbacks,
+ MJSObjectProtector* protector,
WidgetEventHandler* onShowCallback = NULL,
WidgetEventHandler* rightKeyCallback = NULL,
WidgetEventHandler* leftKeyCallback = NULL) :
m_callbacks(callbacks),
+ m_protector(protector),
m_onShowCallback(onShowCallback),
m_rightKeyCallback(rightKeyCallback),
m_leftKeyCallback(leftKeyCallback)
@@ -65,6 +68,7 @@
delete m_leftKeyCallback;}
MJSMenuCallbacks* m_callbacks;
+ MJSObjectProtector* m_protector;
WidgetEventHandler* m_onShowCallback;
WidgetEventHandler* m_rightKeyCallback;
WidgetEventHandler* m_leftKeyCallback;
@@ -74,7 +78,7 @@
{
public:
- JSMenu(MJSMenuCallbacks* aMenuCallbacks);
+ JSMenu(MJSMenuCallbacks* aMenuCallbacks, MJSObjectProtector* aProtector);
virtual ~JSMenu();
//From JSObject
--- a/webengine/widgetengine/inc/MenuClient.h Fri May 08 08:25:06 2009 +0300
+++ b/webengine/widgetengine/inc/MenuClient.h Fri Jul 03 15:54:40 2009 +0100
@@ -46,6 +46,7 @@
// CLASS DECLARATION
class CMenuItem;
+class MJSObjectProtector;
namespace KJS {
class JSMenu;
@@ -67,8 +68,8 @@
virtual ~CMenuClient();
public:
- KJS::JSMenu* jsmenu();
- KJS::JSMenuItemConstructor* jsmenuitem();
+ KJS::JSMenu* jsmenu(MJSObjectProtector*);
+ KJS::JSMenuItemConstructor* jsmenuitem(MJSObjectProtector*);
void addOptionMenuItemsL( CEikMenuPane& aMenuPane,TInt aResourceId );
void menuShowed();
--- a/webengine/widgetengine/inc/MenuItem.h Fri May 08 08:25:06 2009 +0300
+++ b/webengine/widgetengine/inc/MenuItem.h Fri Jul 03 15:54:40 2009 +0100
@@ -35,6 +35,7 @@
// CLASS DECLARATION
class MJSMenuItemCallbacks;
+class MJSObjectProtector;
/**
* CMenuItem
@@ -46,17 +47,31 @@
class WidgetEventHandler;
+struct MenuItemConstructorPrivate
+{
+ MenuItemConstructorPrivate( MJSMenuItemCallbacks* callbacks,
+ MJSObjectProtector* protector,
+ int internalId) : m_callbacks(callbacks), m_protector(protector), m_internalId(internalId)
+ {
+ }
+
+ MJSMenuItemCallbacks* m_callbacks;
+ MJSObjectProtector* m_protector;
+ int m_internalId;
+};
+
class JSMenuItemConstructor : public JSObject
{
public:
- JSMenuItemConstructor(MJSMenuItemCallbacks* callbacks);
+ JSMenuItemConstructor(MJSMenuItemCallbacks* callbacks, MJSObjectProtector* protector);
virtual bool implementsConstruct() const;
virtual JSObject* construct( ExecState *exec, const List &args );
+ virtual ~JSMenuItemConstructor();
+
private:
- MJSMenuItemCallbacks* m_callbacks;
- int m_internalId;
+ MenuItemConstructorPrivate* d;
};
@@ -64,13 +79,16 @@
struct MenuItemPrivate
{
MenuItemPrivate(MJSMenuItemCallbacks* callbacks,
+ MJSObjectProtector* protector,
int cmdId, int internalId,
- WidgetEventHandler* selectCallback = NULL) : m_callbacks(callbacks),
+ WidgetEventHandler* selectCallback = NULL)
+ : m_callbacks(callbacks),
m_cmdId(cmdId),
m_internalId(internalId),
m_dimmed(false),
m_show(false),
- m_onSelectCallback(selectCallback)
+ m_onSelectCallback(selectCallback),
+ m_protector(protector)
{
}
@@ -78,6 +96,7 @@
virtual ~MenuItemPrivate() { delete m_onSelectCallback; }
MJSMenuItemCallbacks* m_callbacks;
+ MJSObjectProtector* m_protector;
const int m_cmdId;
bool m_dimmed;
bool m_show;
@@ -90,7 +109,8 @@
class JSMenuItem : public JSObject
{
public:
- JSMenuItem(ExecState* exec, MJSMenuItemCallbacks* callbacks,
+ JSMenuItem(ExecState* exec, MJSMenuItemCallbacks* callbacks,
+ MJSObjectProtector* protector,
TDesC& text, int cmdId, int internalId,
WidgetEventHandler* selectCallback = NULL );
--- a/webengine/widgetengine/inc/Preferences.h Fri May 08 08:25:06 2009 +0300
+++ b/webengine/widgetengine/inc/Preferences.h Fri Jul 03 15:54:40 2009 +0100
@@ -155,7 +155,7 @@
/**
* Get preference for a particular key
*/
- TInt preferenceL( const TDesC& akey, TPtrC& avalue);
+ TInt preferenceL( const TDesC& akey, HBufC*& avalue);
/**
--- a/webengine/widgetengine/inc/Widget.h Fri May 08 08:25:06 2009 +0300
+++ b/webengine/widgetengine/inc/Widget.h Fri Jul 03 15:54:40 2009 +0100
@@ -36,6 +36,7 @@
// CLASS DECLARATION
class MJSWidgetCallbacks;
+class MJSObjectProtector;
/**
* CWidget
@@ -54,12 +55,14 @@
WidgetEventHandler* showCallback,
WidgetEventHandler* hideCallback,
WidgetEventHandler* exitCallback,
- bool visibility) :
+ bool visibility,
+ MJSObjectProtector* protector) :
m_callbacks(callbacks),
m_showCallback(showCallback),
m_hideCallback(hideCallback),
m_exitCallback(exitCallback),
m_visibility(visibility),
+ m_protector(protector),
m_wrt(0)
{
}
@@ -69,10 +72,11 @@
delete m_hideCallback;
delete m_showCallback; }
- MJSWidgetCallbacks* m_callbacks;
- WidgetEventHandler* m_showCallback;
- WidgetEventHandler* m_hideCallback;
- WidgetEventHandler* m_exitCallback;
+ MJSWidgetCallbacks* m_callbacks;
+ WidgetEventHandler* m_showCallback;
+ WidgetEventHandler* m_hideCallback;
+ WidgetEventHandler* m_exitCallback;
+ MJSObjectProtector* m_protector;
bool m_visibility;
JSWrt* m_wrt;
@@ -82,7 +86,7 @@
{
public:
- JSWidget(MJSWidgetCallbacks* aWidgetCallbacks);
+ JSWidget(MJSWidgetCallbacks* aWidgetCallbacks, MJSObjectProtector* aProtector);
virtual ~JSWidget();
//From JSObject
@@ -107,6 +111,7 @@
performTransition,
setPreferenceForKey,
setNavigationEnabled,
+ setNavigationType,
setDisplayLandscape,
setDisplayPortrait,
isRotationSupported,
--- a/webengine/widgetengine/inc/Widget.lut.h Fri May 08 08:25:06 2009 +0300
+++ b/webengine/widgetengine/inc/Widget.lut.h Fri Jul 03 15:54:40 2009 +0100
@@ -22,29 +22,32 @@
namespace KJS {
static const struct HashEntry WidgetTableEntries[] = {
- { "performTransition", JSWidget::performTransition, DontDelete|Function, 0, &WidgetTableEntries[16] }/* 3947827008 */ ,
- { "openApplication", JSWidget::openApplication, DontDelete|Function, 1, &WidgetTableEntries[17] }/* 78708705 */ ,
- { "setDisplayPortrait", JSWidget::setDisplayPortrait, DontDelete|Function, 0, 0 }/* 4273345218 */ ,
- { "wrt", JSWidget::wrt, DontDelete|ReadOnly, 0, 0 }/* 1862342003 */ ,
- { "preferenceForKey", JSWidget::preferenceForKey, DontDelete|Function, 1, &WidgetTableEntries[20] }/* 2710796932 */ ,
+ { "setNavigationType", JSWidget::setNavigationType, DontDelete|Function, 1, 0 }/* 1921159715 */ ,
+ { "openURL", JSWidget::openURL, DontDelete|Function, 1, &WidgetTableEntries[17] }/* 120566279 */ ,
+ { "performTransition", JSWidget::performTransition, DontDelete|Function, 0, &WidgetTableEntries[21] }/* 3947827008 */ ,
+ { 0, 0, 0, 0, 0 },
+ { "onremove", JSWidget::onremove, DontDelete|ReadOnly, 0, 0 }/* 853904071 */ ,
+ { 0, 0, 0, 0, 0 },
+ { 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0 },
{ 0, 0, 0, 0, 0 },
- { "openURL", JSWidget::openURL, DontDelete|Function, 1, &WidgetTableEntries[18] }/* 120566279 */ ,
+ { "onshow", JSWidget::onshow, DontDelete|ReadOnly, 0, &WidgetTableEntries[19] }/* 2917788702 */ ,
+ { "identifier", JSWidget::identifier, DontDelete|ReadOnly, 0, &WidgetTableEntries[23] }/* 4053269040 */ ,
{ 0, 0, 0, 0, 0 },
- { "setNavigationEnabled", JSWidget::setNavigationEnabled, DontDelete|Function, 1, 0 }/* 2136509817 */ ,
- { "prepareForTransition", JSWidget::prepareForTransition, DontDelete|Function, 1, 0 }/* 3355888042 */ ,
- { 0, 0, 0, 0, 0 },
- { "setDisplayLandscape", JSWidget::setDisplayLandscape, DontDelete|Function, 0, 0 }/* 1431294652 */ ,
+ { "onhide", JSWidget::onhide, DontDelete|ReadOnly, 0, 0 }/* 236865857 */ ,
{ "setPreferenceForKey", JSWidget::setPreferenceForKey, DontDelete|Function, 2, 0 }/* 1304460605 */ ,
- { "onshow", JSWidget::onshow, DontDelete|ReadOnly, 0, 0 }/* 2917788702 */ ,
+ { "openApplication", JSWidget::openApplication, DontDelete|Function, 1, &WidgetTableEntries[22] }/* 78708705 */ ,
{ 0, 0, 0, 0, 0 },
- { "identifier", JSWidget::identifier, DontDelete|ReadOnly, 0, &WidgetTableEntries[19] }/* 4053269040 */ ,
- { "onhide", JSWidget::onhide, DontDelete|ReadOnly, 0, 0 }/* 236865857 */ ,
- { "onremove", JSWidget::onremove, DontDelete|ReadOnly, 0, 0 }/* 853904071 */ ,
+ { "prepareForTransition", JSWidget::prepareForTransition, DontDelete|Function, 1, 0 }/* 3355888042 */ ,
+ { "preferenceForKey", JSWidget::preferenceForKey, DontDelete|Function, 1, &WidgetTableEntries[18] }/* 2710796932 */ ,
+ { "setNavigationEnabled", JSWidget::setNavigationEnabled, DontDelete|Function, 1, &WidgetTableEntries[20] }/* 2136509817 */ ,
{ "onexit", JSWidget::onexit, DontDelete|ReadOnly, 0, 0 }/* 3671980544 */ ,
- { "isrotationsupported", JSWidget::isRotationSupported, DontDelete|ReadOnly, 0, 0 }/* 3247979316 */
+ { "setDisplayLandscape", JSWidget::setDisplayLandscape, DontDelete|Function, 0, 0 }/* 1431294652 */ ,
+ { "setDisplayPortrait", JSWidget::setDisplayPortrait, DontDelete|Function, 0, 0 }/* 4273345218 */ ,
+ { "isrotationsupported", JSWidget::isRotationSupported, DontDelete|ReadOnly, 0, 0 }/* 3247979316 */ ,
+ { "wrt", JSWidget::wrt, DontDelete|ReadOnly, 0, 0 }/* 1862342003 */
};
-const struct HashTable WidgetTable = { 2, 21, WidgetTableEntries, 16 };
+const struct HashTable WidgetTable = { 2, 24, WidgetTableEntries, 17 };
} // namespace
--- a/webengine/widgetengine/inc/WidgetCallbacks.h Fri May 08 08:25:06 2009 +0300
+++ b/webengine/widgetengine/inc/WidgetCallbacks.h Fri Jul 03 15:54:40 2009 +0100
@@ -29,12 +29,13 @@
virtual void openApplication( const TUid& aAppUid, const TDesC& aParam ) = 0;
virtual void openUrl( const TDesC& aUrl ) = 0;
virtual TDesC& getWidgetBundleId() = 0;
- virtual TInt preferenceForKey( const TDesC& aKey, TPtrC& aValue ) = 0;
+ virtual TInt preferenceForKey( const TDesC& aKey, HBufC*& aValue ) = 0;
virtual void prepareForTransition( const TDesC& aTransition ) = 0;
virtual void performTransition() = 0;
virtual void setPreferenceForKey( const TDesC& aKey, const TDesC& aValue ) = 0;
virtual void removePreferenceForKey( const TDesC& aKey, const TDesC& aValue ) = 0;
virtual void setNavigationEnabled( TBool aEnable ) = 0;
+ virtual void setNavigationType( const TDesC& aType ) = 0;
virtual void setDisplayLandscape() = 0;
virtual void setDisplayPortrait() = 0;
};
--- a/webengine/widgetengine/inc/WidgetClient.h Fri May 08 08:25:06 2009 +0300
+++ b/webengine/widgetengine/inc/WidgetClient.h Fri Jul 03 15:54:40 2009 +0100
@@ -35,6 +35,7 @@
// FORWARD DECLARATION
class WidgetRenderer;
class WidgetPreferences;
+class MJSObjectProtector;
namespace KJS {
class JSWidget;
@@ -51,7 +52,7 @@
{
public:
- static CWidgetClient* NewL(MWidgetCallback& aWidgetCallback, MWidgetEngineCallbacks& aWidgetEngineCallback, WidgetPreferences* preferences);
+ static CWidgetClient* NewL(MWidgetCallback& aWidgetCallback, MJSObjectProtector* aProtector, MWidgetEngineCallbacks& aWidgetEngineCallback, WidgetPreferences* preferences);
virtual ~CWidgetClient();
public:
@@ -69,9 +70,10 @@
void openUrl( const TDesC& aUrl );
TDesC& getWidgetBundleId();
void setNavigationEnabled( TBool aEnable );
+ void setNavigationType( const TDesC& aType );
void prepareForTransition( const TDesC& aTransition );
void performTransition();
- TInt preferenceForKey( const TDesC& aKey, TPtrC& aValue );
+ TInt preferenceForKey( const TDesC& aKey, HBufC*& aValue );
void setPreferenceForKey( const TDesC& aKey, const TDesC& aValue );
void removePreferenceForKey( const TDesC& aKey, const TDesC& aValue );
void setDisplayLandscape();
@@ -81,7 +83,7 @@
void launchApplicationL( const TUid& aUid, const TDesC& aParam );
protected:
- void ConstructL(MWidgetEngineCallbacks& aWidgetEngineCallback);
+ void ConstructL(MWidgetEngineCallbacks& aWidgetEngineCallback, MJSObjectProtector* protector);
CWidgetClient(MWidgetCallback& aWidgetCallback, MWidgetEngineCallbacks& aWidgetEngineCallback, WidgetPreferences* preferences);
private:
--- a/webengine/widgetengine/inc/WidgetEngineBridge.h Fri May 08 08:25:06 2009 +0300
+++ b/webengine/widgetengine/inc/WidgetEngineBridge.h Fri Jul 03 15:54:40 2009 +0100
@@ -26,6 +26,8 @@
#include <eikenv.h>
#include "BrCtlDefs.h"
#include "WidgetEngineCallbacks.h"
+#include "WidgetJSObjectProtector.h"
+#include "wtf/HashSet.h"
// CONSTANTS
@@ -41,6 +43,10 @@
class MWidgetCallback;
class WidgetPreferences;
+namespace KJS {
+ class JSValue;
+}
+
// CLASS DECLARATION
class MWidgetEngineBridge
{
@@ -57,7 +63,8 @@
virtual void AddOptionMenuItemsL(CEikMenuPane& aMenuPane, TInt aResourceId) = 0;
virtual void MenuItemSelected( TInt aInternalId ) = 0;
virtual void MenuShowed() = 0;
- virtual void DrawTransition(CWindowGc& gc, CFbsBitmap* fbsBm) = 0;
+ virtual void DrawTransition(CWindowGc& gc, CFbsBitmap* fbsBm) = 0;
+ virtual void Clear() = 0;
};
@@ -68,7 +75,7 @@
* @since 3.1
*/
-NONSHARABLE_CLASS( WidgetEngineBridge ): public MWidgetEngineBridge
+NONSHARABLE_CLASS( WidgetEngineBridge ): public MWidgetEngineBridge, public MJSObjectProtector
{
public:
WidgetEngineBridge();
@@ -87,12 +94,17 @@
void AddOptionMenuItemsL(CEikMenuPane& aMenuPane, TInt aResourceId);
void MenuItemSelected( TInt aInternalId );
void MenuShowed();
- void DrawTransition(CWindowGc& gc, CFbsBitmap* fbsBm);
+ void DrawTransition(CWindowGc& gc, CFbsBitmap* fbsBm);
+ void Clear();
+
+ void Protect(KJS::JSValue* obj);
+ void Unprotect(KJS::JSValue* obj);
private:
- CMenuClient* m_menuclient;
- CWidgetClient* m_widgetclient;
- WidgetPreferences* m_preferences;
+ CMenuClient* m_menuclient;
+ CWidgetClient* m_widgetclient;
+ WidgetPreferences* m_preferences;
+ WTF::HashSet<KJS::JSValue*> m_protectedObjects;
};
--- a/webengine/widgetengine/inc/WidgetEngineCallbacks.h Fri May 08 08:25:06 2009 +0300
+++ b/webengine/widgetengine/inc/WidgetEngineCallbacks.h Fri Jul 03 15:54:40 2009 +0100
@@ -30,6 +30,7 @@
virtual void setRightSoftKeyLabel( const TDesC& aText ) = 0;
virtual void setLeftSoftKeyLabel( const TDesC& aText ) = 0;
virtual void setTabbednavigation(bool aOn) = 0;
+ virtual void setNavigationType(const TDesC& aType) = 0;
};
--- a/webengine/widgetengine/inc/WidgetEventHandler.h Fri May 08 08:25:06 2009 +0300
+++ b/webengine/widgetengine/inc/WidgetEventHandler.h Fri Jul 03 15:54:40 2009 +0100
@@ -19,6 +19,8 @@
#include <e32base.h>
+class MJSObjectProtector;
+
namespace KJS {
@@ -29,7 +31,7 @@
class WidgetEventHandler : public CBase
{
public:
- WidgetEventHandler( JSValue* aValue, ExecState* aExecState );
+ WidgetEventHandler( JSValue* aValue, ExecState* aExecState, MJSObjectProtector* aProtector);
virtual ~WidgetEventHandler();
public:
@@ -40,6 +42,8 @@
JSValue* iEventHandler;
ExecState* iGlobalExecState;
+
+ MJSObjectProtector* iProtector;
TBool iInUse;
TBool iSelfDelete;
--- a/webengine/widgetengine/inc/WidgetFuncs.h Fri May 08 08:25:06 2009 +0300
+++ b/webengine/widgetengine/inc/WidgetFuncs.h Fri Jul 03 15:54:40 2009 +0100
@@ -44,6 +44,7 @@
performTransition,
setPreferenceForKey,
setNavigationMode,
+ setNavigationType,
setDisplayLandscape,
setDisplayPortrait
};
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/webengine/widgetengine/inc/WidgetJSObjectProtector.h Fri Jul 03 15:54:40 2009 +0100
@@ -0,0 +1,32 @@
+/*
+* Copyright (c) 2004 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+#ifndef __WIDGETJSOBJECTPROTECTOR_H__
+#define __WIDGETJSOBJECTPROTECTOR_H__
+
+namespace KJS {
+ class JSValue;
+}
+
+class MJSObjectProtector
+{
+public:
+ virtual void Protect(KJS::JSValue*) = 0;
+ virtual void Unprotect(KJS::JSValue*) = 0;
+};
+
+#endif // !__WIDGETJSOBJECTPROTECTOR_H__
--- a/webengine/widgetengine/src/Menu.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/widgetengine/src/Menu.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -60,9 +60,9 @@
//
//
// ----------------------------------------------------------------------------
-JSMenu::JSMenu(MJSMenuCallbacks* aMenuCallbacks)
+JSMenu::JSMenu(MJSMenuCallbacks* aMenuCallbacks, MJSObjectProtector* aProtector)
: JSObject(),
- d(new MenuPrivate(aMenuCallbacks,0,0))
+ d(new MenuPrivate(aMenuCallbacks, aProtector, 0,0))
{
}
@@ -114,7 +114,7 @@
d->m_rightKeyCallback = NULL;
if ( value && !value->isNull() ) {
- d->m_rightKeyCallback = new WidgetEventHandler(value, exec->lexicalInterpreter()->globalExec());
+ d->m_rightKeyCallback = new WidgetEventHandler(value, exec->lexicalInterpreter()->globalExec(), d->m_protector);
}
}
@@ -131,7 +131,7 @@
d->m_leftKeyCallback = NULL;
if ( value && !value->isNull() ) {
- d->m_leftKeyCallback = new WidgetEventHandler(value, exec->lexicalInterpreter()->globalExec());
+ d->m_leftKeyCallback = new WidgetEventHandler(value, exec->lexicalInterpreter()->globalExec(), d->m_protector);
}
}
@@ -244,7 +244,7 @@
case OnShow: {
delete d->m_onShowCallback;
d->m_onShowCallback = NULL;
- d->m_onShowCallback = new WidgetEventHandler(value, exec->lexicalInterpreter()->globalExec());
+ d->m_onShowCallback = new WidgetEventHandler(value, exec->lexicalInterpreter()->globalExec(), d->m_protector);
break;
}
default:
--- a/webengine/widgetengine/src/MenuClient.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/widgetengine/src/MenuClient.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -139,15 +139,6 @@
}
iCascadeArr.Close();
-
- if (m_jsmenu) {
- KJS::Collector::unprotect(m_jsmenu);
- }
-
- if (m_jsmenuitemctr) {
- KJS::Collector::unprotect(m_jsmenuitemctr);
- }
-
}
@@ -168,11 +159,10 @@
//
//
// ----------------------------------------------------------------------------
-KJS::JSMenu* CMenuClient::jsmenu()
+KJS::JSMenu* CMenuClient::jsmenu(MJSObjectProtector* aProtector)
{
if (!m_jsmenu) {
- m_jsmenu = new KJS::JSMenu(this);
- KJS::Collector::protect(m_jsmenu);
+ m_jsmenu = new KJS::JSMenu(this, aProtector);
}
return m_jsmenu;
@@ -185,11 +175,10 @@
//
//
// ----------------------------------------------------------------------------
-KJS::JSMenuItemConstructor* CMenuClient::jsmenuitem()
+KJS::JSMenuItemConstructor* CMenuClient::jsmenuitem(MJSObjectProtector* protector)
{
if (!m_jsmenuitemctr){
- m_jsmenuitemctr = new KJS::JSMenuItemConstructor(this);
- KJS::Collector::protect(m_jsmenuitemctr);
+ m_jsmenuitemctr = new KJS::JSMenuItemConstructor(this, protector);
}
return m_jsmenuitemctr;
--- a/webengine/widgetengine/src/MenuItem.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/widgetengine/src/MenuItem.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -24,6 +24,7 @@
#include "MenuItem.h"
#include "MenuItemFuncs.h"
#include "MenuItemCallbacks.h"
+#include "WidgetJSObjectProtector.h"
using namespace KJS;
@@ -33,13 +34,16 @@
//
//
// ----------------------------------------------------------------------------
-JSMenuItemConstructor::JSMenuItemConstructor(MJSMenuItemCallbacks* callbacks)
- : JSObject(),
- m_callbacks(callbacks),
- m_internalId(0)
+JSMenuItemConstructor::JSMenuItemConstructor(MJSMenuItemCallbacks* callbacks, MJSObjectProtector* protector)
+ : JSObject(),
+ d(new MenuItemConstructorPrivate(callbacks, protector, 0))
{
}
+JSMenuItemConstructor::~JSMenuItemConstructor()
+{
+ delete d;
+}
// ----------------------------------------------------------------------------
// JSMenuItemConstructor::implementsConstruct
@@ -83,9 +87,9 @@
TPtrC tptrc((const unsigned short*)(text.data()), textlen);
- JSMenuItem* mi = new JSMenuItem(exec, m_callbacks, tptrc, cmdId, m_internalId );
- KJS::Collector::protect(mi);
- m_callbacks->createOptionsMenuItem( tptrc, cmdId, m_internalId++, (void*) mi );
+ JSMenuItem* mi = new JSMenuItem(exec, d->m_callbacks, d->m_protector, tptrc, cmdId, d->m_internalId, 0);
+
+ d->m_callbacks->createOptionsMenuItem( tptrc, cmdId, d->m_internalId++, (void*) mi );
return static_cast<KJS::JSObject*>(mi);
}
@@ -119,13 +123,15 @@
JSMenuItem::JSMenuItem(
ExecState* exec,
MJSMenuItemCallbacks* callbacks,
+ MJSObjectProtector* protector,
TDesC& text,
int cmdId,
int internalId,
WidgetEventHandler* onSelectCallback )
: JSObject(exec->lexicalInterpreter()->builtinObjectPrototype()),
- d(new MenuItemPrivate(callbacks,cmdId,internalId,onSelectCallback))
+ d(new MenuItemPrivate(callbacks, protector, cmdId, internalId, onSelectCallback))
{
+ d->m_protector->Protect(this);
}
// ----------------------------------------------------------------------------
@@ -199,7 +205,8 @@
// ----------------------------------------------------------------------------
void JSMenuItem::DeleteMenuItem()
{
- d->m_callbacks->deleteMenuItem( d->m_internalId );
+ d->m_callbacks->deleteMenuItem( d->m_internalId );
+ d->m_protector->Unprotect(this);
}
// ----------------------------------------------------------------------------
@@ -242,7 +249,7 @@
case OnSelect: {
delete d->m_onSelectCallback;
d->m_onSelectCallback = NULL;
- d->m_onSelectCallback = new WidgetEventHandler ( value, exec->lexicalInterpreter()->globalExec() );
+ d->m_onSelectCallback = new WidgetEventHandler(value, exec->lexicalInterpreter()->globalExec(), d->m_protector);
d->m_callbacks->setMenuItemObserver( d->m_internalId, d->m_onSelectCallback );
break;
}
--- a/webengine/widgetengine/src/Preferences.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/widgetengine/src/Preferences.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -115,7 +115,7 @@
//
//
// ----------------------------------------------------------------------------
-TInt WidgetPreferences::preferenceL( const TDesC& akey, TPtrC& avalue)
+TInt WidgetPreferences::preferenceL( const TDesC& akey, HBufC*& avalue)
{
TInt rSuccess = KErrNotFound;
@@ -159,7 +159,7 @@
HBufC* v = HBufC::NewLC( len );
TPtr ptrvalue = v->Des();
readStream.ReadL( ptrvalue, len );
- avalue.Set( *v );
+ avalue = v; // ownership xfered
CleanupStack::Pop( v );
rSuccess = KErrNone;
}
@@ -170,7 +170,7 @@
}
}
else if ( size >= 0 ) {
- avalue.Set( pref->value() );
+ avalue = pref->value().AllocL();
rSuccess = KErrNone;
}
--- a/webengine/widgetengine/src/Widget.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/widgetengine/src/Widget.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -26,6 +26,7 @@
#include "WidgetFuncs.h"
#include "WidgetCallbacks.h"
#include "WidgetEventHandler.h"
+#include "WidgetJSObjectProtector.h"
#include "Wrt.h"
// EXTERNAL DATA STRUCTURES
@@ -48,7 +49,7 @@
// ============================= LOCAL FUNCTIONS ===============================
/*
-@begin WidgetTable 16
+@begin WidgetTable 17
openApplication JSWidget::openApplication DontDelete|Function 1
openURL JSWidget::openURL DontDelete|Function 1
preferenceForKey JSWidget::preferenceForKey DontDelete|Function 1
@@ -56,6 +57,7 @@
performTransition JSWidget::performTransition DontDelete|Function 0
setPreferenceForKey JSWidget::setPreferenceForKey DontDelete|Function 2
setNavigationEnabled JSWidget::setNavigationEnabled DontDelete|Function 1
+ setNavigationType JSWidget::setNavigationType DontDelete|Function 1
identifier JSWidget::identifier DontDelete|ReadOnly
onhide JSWidget::onhide DontDelete|ReadOnly
onremove JSWidget::onremove DontDelete|ReadOnly
@@ -76,9 +78,9 @@
//
//
// ----------------------------------------------------------------------------
-JSWidget::JSWidget(MJSWidgetCallbacks* aWidgetCallbacks) :
+JSWidget::JSWidget(MJSWidgetCallbacks* aWidgetCallbacks, MJSObjectProtector* aProtector) :
JSObject(),
- d(new WidgetPrivate(aWidgetCallbacks,0,0,0,0))
+ d(new WidgetPrivate(aWidgetCallbacks,0,0,0,0, aProtector))
{
}
@@ -165,6 +167,7 @@
case performTransition:
case setPreferenceForKey:
case setNavigationEnabled:
+ case setNavigationType:
case setDisplayLandscape:
case setDisplayPortrait: {
JSWidgetFunc *wf = new JSWidgetFunc(exec,token,d->m_callbacks);
@@ -211,13 +214,13 @@
case onhide: {
delete d->m_hideCallback;
d->m_hideCallback = NULL;
- d->m_hideCallback = new WidgetEventHandler(value, exec->lexicalInterpreter()->globalExec());
+ d->m_hideCallback = new WidgetEventHandler(value, exec->lexicalInterpreter()->globalExec(), d->m_protector);
break;
}
case onshow: {
delete d->m_showCallback;
d->m_showCallback = NULL;
- d->m_showCallback = new WidgetEventHandler(value, exec->lexicalInterpreter()->globalExec());
+ d->m_showCallback = new WidgetEventHandler(value, exec->lexicalInterpreter()->globalExec(), d->m_protector);
// fire the onShow if the SetVisibilty was called before the onShowCallback was created
if (d->m_visibility) {
d->m_visibility = !d->m_visibility;
@@ -228,7 +231,7 @@
case onexit: {
delete d->m_exitCallback;
d->m_exitCallback = NULL;
- d->m_exitCallback = new WidgetEventHandler(value, exec->lexicalInterpreter()->globalExec());
+ d->m_exitCallback = new WidgetEventHandler(value, exec->lexicalInterpreter()->globalExec(), d->m_protector);
break;
}
default:
--- a/webengine/widgetengine/src/WidgetClient.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/widgetengine/src/WidgetClient.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -54,13 +54,15 @@
//
// ----------------------------------------------------------------------------
//
-CWidgetClient* CWidgetClient::NewL(MWidgetCallback& aWidgetCallback,
- MWidgetEngineCallbacks& aWidgetEngineCallback,
- WidgetPreferences* preferences)
+CWidgetClient* CWidgetClient::NewL( MWidgetCallback& aWidgetCallback,
+ MJSObjectProtector* protector,
+ MWidgetEngineCallbacks& aWidgetEngineCallback,
+ WidgetPreferences* preferences
+ )
{
CWidgetClient* self = new ( ELeave ) CWidgetClient(aWidgetCallback, aWidgetEngineCallback, preferences);
CleanupStack::PushL( self );
- self->ConstructL(aWidgetEngineCallback);
+ self->ConstructL(aWidgetEngineCallback, protector);
CleanupStack::Pop();
return self;
}
@@ -92,10 +94,6 @@
//
CWidgetClient::~CWidgetClient()
{
- if (m_jswidget) {
- KJS::Collector::unprotect(m_jswidget);
- }
-
delete m_renderer;
}
@@ -107,11 +105,10 @@
//
// ----------------------------------------------------------------------------
//
-void CWidgetClient::ConstructL(MWidgetEngineCallbacks& aWidgetEngineCallback)
+void CWidgetClient::ConstructL(MWidgetEngineCallbacks& aWidgetEngineCallback, MJSObjectProtector* protector)
{
- m_jswidget = new KJS::JSWidget(this);
+ m_jswidget = new KJS::JSWidget(this, protector);
m_renderer = new (ELeave) WidgetRenderer(aWidgetEngineCallback);
- KJS::Collector::protect(m_jswidget);
}
@@ -280,6 +277,18 @@
}
// ----------------------------------------------------------------------------
+// CWidgetClient::setNavigationType
+//
+//
+//
+// ----------------------------------------------------------------------------
+//
+void CWidgetClient::setNavigationType( const TDesC& aType )
+{
+ m_widgetenginecallback->setNavigationType(aType);
+}
+
+// ----------------------------------------------------------------------------
// CWidgetClient::prepareForTransition
//
//
@@ -310,7 +319,7 @@
//
// ----------------------------------------------------------------------------
//
-TInt CWidgetClient::preferenceForKey( const TDesC& aKey, TPtrC& aValue )
+TInt CWidgetClient::preferenceForKey( const TDesC& aKey, HBufC*& aValue )
{
TInt ret = KErrNotFound;
TRAP_IGNORE( ret = m_preferences->preferenceL( aKey, aValue ) );
--- a/webengine/widgetengine/src/WidgetEngineBridge.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/widgetengine/src/WidgetEngineBridge.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -53,6 +53,7 @@
// ============================= LOCAL FUNCTIONS ===============================
// ============================ MEMBER FUNCTIONS ===============================
+using namespace KJS;
// ----------------------------------------------------------------------------
// CreateWidgetEngineBridge
@@ -83,10 +84,30 @@
//
// ----------------------------------------------------------------------------
WidgetEngineBridge::~WidgetEngineBridge()
+{
+ Clear();
+ delete m_preferences;
+ m_preferences = NULL;
+}
+// ----------------------------------------------------------------------------
+// WidgetEngineBridge::Clear
+//
+//
+//
+// ----------------------------------------------------------------------------
+void WidgetEngineBridge::Clear()
{
+ // unprotect objects
+ HashSet<JSValue*>::iterator end = m_protectedObjects.end();
+ for (HashSet<JSValue*>::iterator it = m_protectedObjects.begin(); it != end; ++it) {
+ Collector::unprotect(*it);
+ }
+ m_protectedObjects.clear();
+
delete m_menuclient;
+ m_menuclient = NULL;
delete m_widgetclient;
- delete m_preferences;
+ m_widgetclient = NULL;
}
// ----------------------------------------------------------------------------
@@ -103,7 +124,7 @@
if (!m_preferences)
m_preferences = new (ELeave) WidgetPreferences();
- m_widgetclient = CWidgetClient::NewL(aWidgetCallback,aWidgetEngineCallback,m_preferences);
+ m_widgetclient = CWidgetClient::NewL(aWidgetCallback, this, aWidgetEngineCallback,m_preferences);
}
return m_widgetclient->jswidget();
}
@@ -120,7 +141,7 @@
if (!m_menuclient){
m_menuclient = CMenuClient::NewL(aWidgetCallback,aWidgetEngineCallback);
}
- return m_menuclient->jsmenu();
+ return m_menuclient->jsmenu(this);
}
// ----------------------------------------------------------------------------
@@ -135,7 +156,7 @@
if (!m_menuclient){
m_menuclient = CMenuClient::NewL(aWidgetCallback,aWidgetEngineCallback);
}
- return m_menuclient->jsmenuitem();
+ return m_menuclient->jsmenuitem(this);
}
// ----------------------------------------------------------------------------
@@ -285,6 +306,18 @@
}
+void WidgetEngineBridge::Protect(JSValue* obj)
+{
+ m_protectedObjects.add(obj);
+ Collector::protect(obj);
+}
+
+void WidgetEngineBridge::Unprotect(JSValue* obj)
+{
+ m_protectedObjects.remove(obj);
+ Collector::unprotect(obj);
+}
+
//END OF FILE
--- a/webengine/widgetengine/src/WidgetEventHandler.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/widgetengine/src/WidgetEventHandler.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -17,6 +17,7 @@
#include "WidgetEventHandler.h"
#include "config.h"
#include <kjs/object.h>
+#include "WidgetJSObjectProtector.h"
// ============================ MEMBER FUNCTIONS ===============================
using namespace KJS;
@@ -28,10 +29,13 @@
//
//
// ----------------------------------------------------------------------------
-WidgetEventHandler::WidgetEventHandler( JSValue* aValue, ExecState* aExecState ) : iGlobalExecState (aExecState)
+WidgetEventHandler::WidgetEventHandler( JSValue* aValue, ExecState* aExecState, MJSObjectProtector* aProtector) : iGlobalExecState (aExecState), iProtector(aProtector)
{
iEventHandler = aValue;
- Collector::protect(iEventHandler);
+ if(iProtector)
+ {
+ iProtector->Protect(iEventHandler);
+ }
}
@@ -43,7 +47,10 @@
// ----------------------------------------------------------------------------
WidgetEventHandler::~WidgetEventHandler()
{
- Collector::unprotect(iEventHandler);
+ if(iProtector)
+ {
+ iProtector->Unprotect(iEventHandler);
+ }
}
// ----------------------------------------------------------------------------
--- a/webengine/widgetengine/src/WidgetFuncs.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/widgetengine/src/WidgetFuncs.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -100,7 +100,7 @@
args[0]->toString(exec).size() >= 0 ) {
TPtrC tstrKey(KNullDesC);
- TPtrC tstrValue(KNullDesC);
+ HBufC* tstrValue(NULL);
TInt retCode = KErrNone;
if ( args[0]->type() == NumberType ) {
@@ -115,7 +115,13 @@
if (retCode == KErrNone) {
- return jsString(UString((const UChar *)tstrValue.Ptr(),tstrValue.Length()));
+ UString u((const UChar *)tstrValue->Ptr(),tstrValue->Length());
+ JSCell* rtn=jsString(u);
+ delete tstrValue;
+ return rtn;
+ }
+ else {
+ delete tstrValue;
}
}
@@ -175,6 +181,13 @@
}
break;
}
+ case setNavigationType: {
+ if ( args[0]->type() == StringType && args[0]->toString(exec).size() > 0 ) {
+ TPtrC type((const TUint16 *)args[0]->toString(exec).data(), args[0]->toString(exec).size());
+ m_callbacks->setNavigationType(type);
+ }
+ break;
+ }
case setDisplayLandscape: {
m_callbacks->setDisplayLandscape();
break;
--- a/webengine/widgetregistry/Data/Widget_lproj.xml Fri May 08 08:25:06 2009 +0300
+++ b/webengine/widgetregistry/Data/Widget_lproj.xml Fri Jul 03 15:54:40 2009 +0100
@@ -10,85 +10,13 @@
<LangDir>de</LangDir>
<LangID>4</LangID>
-<LangDir>sp</LangDir>
-
-<LangID>14</LangID>
-<LangDir>tr</LangDir>
-
-<LangID>9</LangID>
-<LangDir>fi</LangDir>
-
-<LangID>6</LangID>
-<LangDir>sv</LangDir>
-
-<LangID>16</LangID>
-<LangDir>ru</LangDir>
-
-<LangID>37</LangID>
-<LangDir>ar</LangDir>
-
-<LangID>57</LangID>
-<LangDir>he</LangDir>
+<LangDir>es</LangDir>
<LangID>5</LangID>
<LangDir>it</LangDir>
-<LangID>27</LangID>
-<LangDir>pl</LangDir>
-
-<LangID>17</LangID>
-<LangDir>hu</LangDir>
-
-<LangID>82</LangID>
-<LangDir>es</LangDir>
-
-<LangID>18</LangID>
-<LangDir>nl</LangDir>
-
-<LangID>76</LangID>
-<LangDir>pt</LangDir>
-
-<LangID>51</LangID>
-<LangDir>frm</LangDir>
-
-<LangID>67</LangID>
-<LangDir>lv</LangDir>
-
-<LangID>54</LangID>
-<LangDir>el</LangDir>
-
-<LangID>49</LangID>
-<LangDir>et</LangDir>
-
-<LangID>68</LangID>
-<LangDir>lt</LangDir>
-
-<LangID>78</LangID>
-<LangDir>ro</LangDir>
-
-<LangID>93</LangID>
-<LangDir>uk</LangDir>
-
-<LangID>42</LangID>
-<LangDir>bg</LangDir>
-
-<LangID>45</LangID>
-<LangDir>hr</LangDir>
-
-<LangID>79</LangID>
-<LangDir>sr</LangDir>
-
-<LangID>59</LangID>
-<LangDir>id</LangDir>
-
-<LangID>70</LangID>
-<LangDir>ms</LangDir>
-
-<LangID>39</LangID>
-<LangDir>tl</LangDir>
-
-<LangID>15</LangID>
-<LangDir>is</LangDir>
+<LangID>6</LangID>
+<LangDir>sv</LangDir>
<LangID>7</LangID>
<LangDir>da</LangDir>
@@ -96,11 +24,38 @@
<LangID>8</LangID>
<LangDir>no</LangDir>
-<LangID>58</LangID>
-<LangDir>hi</LangDir>
+<LangID>9</LangID>
+<LangDir>fi</LangDir>
+
+<LangID>10</LangID>
+<LangDir>en-US</LangDir>
+
+<LangID>11</LangID>
+<LangDir>fr-CH</LangDir>
+
+<LangID>12</LangID>
+<LangDir>ge-CH</LangDir>
+
+<LangID>13</LangID>
+<LangDir>pt</LangDir>
-<LangID>94</LangID>
-<LangDir>ur</LangDir>
+<LangID>14</LangID>
+<LangDir>tr</LangDir>
+
+<LangID>15</LangID>
+<LangDir>is</LangDir>
+
+<LangID>16</LangID>
+<LangDir>ru</LangDir>
+
+<LangID>17</LangID>
+<LangDir>hu</LangDir>
+
+<LangID>18</LangID>
+<LangDir>nl</LangDir>
+
+<LangID>20</LangID>
+<LangDir>en-AU</LangDir>
<LangID>25</LangID>
<LangDir>cs</LangDir>
@@ -108,17 +63,20 @@
<LangID>26</LangID>
<LangDir>sk</LangDir>
+<LangID>27</LangID>
+<LangDir>pl</LangDir>
+
<LangID>28</LangID>
<LangDir>sl</LangDir>
<LangID>29</LangID>
-<LangDir>zh_Hant</LangDir>
+<LangDir>zh-Hant</LangDir>
<LangID>30</LangID>
-<LangDir>zh_Hant</LangDir>
+<LangDir>zh-Hant</LangDir>
<LangID>31</LangID>
-<LangDir>zh_Hans</LangDir>
+<LangDir>zh-Hans</LangDir>
<LangID>32</LangID>
<LangDir>ja</LangDir>
@@ -126,19 +84,114 @@
<LangID>33</LangID>
<LangDir>th</LangDir>
-<LangID>96</LangID>
-<LangDir>vi</LangDir>
+<LangID>37</LangID>
+<LangDir>ar</LangDir>
-<LangID>326</LangID>
-<LangDir>ml</LangDir>
+<LangID>39</LangID>
+<LangDir>tl</LangDir>
+
+<LangID>42</LangID>
+<LangDir>bg</LangDir>
<LangID>44</LangID>
<LangDir>ca</LangDir>
-<LangID>401</LangID>
+<LangID>45</LangID>
+<LangDir>hr</LangDir>
+
+<LangID>46</LangID>
+<LangDir>en-CA</LangDir>
+
+<LangID>49</LangID>
+<LangDir>et</LangDir>
+
+<LangID>50</LangID>
+<LangDir>fa</LangDir>
+
+<LangID>51</LangID>
+<LangDir>fr-CA</LangDir>
+
+<LangID>54</LangID>
+<LangDir>el</LangDir>
+
+<LangID>57</LangID>
+<LangDir>he</LangDir>
+
+<LangID>58</LangID>
+<LangDir>hi</LangDir>
+
+<LangID>59</LangID>
+<LangDir>id</LangDir>
+
+<LangID>65</LangID>
+<LangDir>ko</LangDir>
+
+<LangID>67</LangID>
+<LangDir>lv</LangDir>
+
+<LangID>68</LangID>
+<LangDir>lt</LangDir>
+
+<LangID>70</LangID>
+<LangDir>ms</LangDir>
+
+<LangID>71</LangID>
+<LangDir>ml</LangDir>
+
+<LangID>76</LangID>
+<LangDir>pt-BR</LangDir>
+
+<LangID>78</LangID>
+<LangDir>ro</LangDir>
+
+<LangID>79</LangID>
+<LangDir>sr</LangDir>
+
+<LangID>82</LangID>
+<LangDir>es</LangDir>
+
+<LangID>83</LangID>
+<LangDir>es-419</LangDir>
+
+<LangID>93</LangID>
+<LangDir>uk</LangDir>
+
+<LangID>94</LangID>
+<LangDir>ur</LangDir>
+
+<LangID>96</LangID>
+<LangDir>vi</LangDir>
+
+<LangID>102</LangID>
<LangDir>eu</LangDir>
-<LangID>402</LangID>
+<LangID>103</LangID>
<LangDir>gl</LangDir>
+<LangID>129</LangID>
+<LangDir>en-APAC</LangDir>
+
+<LangID>157</LangID>
+<LangDir>en-TW</LangDir>
+
+<LangID>158</LangID>
+<LangDir>en-CN</LangDir>
+
+<LangID>159</LangID>
+<LangDir>en-HK</LangDir>
+
+<LangID>160</LangID>
+<LangDir>en-JP</LangDir>
+
+<LangID>161</LangID>
+<LangDir>en-TH</LangDir>
+
+<LangID>230</LangID>
+<LangDir>en-IN</LangDir>
+
+<LangID>326</LangID>
+<LangDir>ms-APAC</LangDir>
+
+<LangID>327</LangID>
+<LangDir>id-APAC</LangDir>
</LPROJ>
\ No newline at end of file
--- a/webengine/widgetregistry/Server/src/WidgetRegistry.cpp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/widgetregistry/Server/src/WidgetRegistry.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -29,6 +29,7 @@
#include <libc\stdlib.h>
#include <libxml2_parser.h>
#include <libxml2_tree.h>
+#include <xmlengxestd.h>
#include "WidgetMMCHandler.h"
#include "UidAllocator.h"
#if defined( BRDO_WRT_SECURITY_MGR_FF )
@@ -1664,7 +1665,7 @@
xmlFreeDoc(doc);
xmlCleanupParser();
- xmlCleanupGlobalData();
+ XmlEngineCleanup();
CleanupStack::PopAndDestroy( buf );
}
--- a/webengine/wmlengine/group/fbox/fbox.mmp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/wmlengine/group/fbox/fbox.mmp Fri Jul 03 15:54:40 2009 +0100
@@ -29,7 +29,11 @@
SOURCEPATH ../../src/fbox/src/
-LANGUAGE_IDS
+#ifdef __S60_32__
+LANG sc
+#else
+LANGUAGE_IDS
+#endif
#include "../webkitcommon.mmpi"
--- a/webengine/wmlengine/group/wml1x/wml1x.mmp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/wmlengine/group/wml1x/wml1x.mmp Fri Jul 03 15:54:40 2009 +0100
@@ -28,7 +28,11 @@
MACRO NOKIA_MOBILE_BROWSER
#define NOKIA_MOBILE_BROWSER 1
-LANGUAGE_IDS
+#ifdef __S60_32__
+LANG sc
+#else
+LANGUAGE_IDS
+#endif
SOURCEPATH ../../src/wml1x/src/
--- a/webengine/wmlengine/group/wmlengine/wmlengine.mmp Fri May 08 08:25:06 2009 +0300
+++ b/webengine/wmlengine/group/wmlengine/wmlengine.mmp Fri Jul 03 15:54:40 2009 +0100
@@ -37,7 +37,11 @@
deffile ../EABI/WmlEngine.def
#endif
-LANGUAGE_IDS
+#ifdef __S60_32__
+LANG sc
+#else
+LANGUAGE_IDS
+#endif
MACRO NOKIA_MOBILE_BROWSER
#define NOKIA_MOBILE_BROWSER
--- a/widgets/widgetapp/data/WidgetUi.rss Fri May 08 08:25:06 2009 +0300
+++ b/widgets/widgetapp/data/WidgetUi.rss Fri Jul 03 15:54:40 2009 +0100
@@ -65,7 +65,7 @@
{
CBA_BUTTON {id=EAknSoftkeyOptions; txt=text_softkey_option;},
CBA_BUTTON {id=EAknSoftkeyExit; txt=text_softkey_exit;},
- CBA_BUTTON {id=ECmdMsk; txt=text_softkey_empty;}
+ CBA_BUTTON {id=EAknSoftkeyForwardKeyEvent; txt=text_softkey_empty;}
};
}
--- a/widgets/widgetapp/group/WidgetUi.mmp Fri May 08 08:25:06 2009 +0300
+++ b/widgets/widgetapp/group/WidgetUi.mmp Fri Jul 03 15:54:40 2009 +0100
@@ -39,7 +39,11 @@
START RESOURCE ../Data/WidgetUi.rss
HEADER
TARGETPATH APP_RESOURCE_DIR
-LANGUAGE_IDS
+#ifdef __S60_32__
+LANG sc
+#else
+LANGUAGE_IDS
+#endif
END
// SRC INFO
--- a/widgets/widgetapp/src/WidgetUiObserver.cpp Fri May 08 08:25:06 2009 +0300
+++ b/widgets/widgetapp/src/WidgetUiObserver.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -190,8 +190,12 @@
TBrCtlDefs::TBrCtlElementType elementtype =
iWindow->WindowManager().ActiveWindow()->Engine()->FocusedElementType();
// Check if focused element type is editing type
- if ((elementtype != TBrCtlDefs::EElementActivatedInputBox) &&
- (elementtype != TBrCtlDefs::EElementActivatedObjectBox))
+ if ((elementtype == TBrCtlDefs::EElementActivatedInputBox) ||
+ (elementtype == TBrCtlDefs::EElementActivatedObjectBox))
+ {
+ iWindow->WindowManager().View()->ShowActivatedObject( ETrue );
+ }
+ else
{
iWindow->WindowManager().View()->ShowActivatedObject( EFalse );
}
@@ -459,7 +463,6 @@
TDataRecognitionResult dataType;
RApaLsSession apaSession;
TInt ret;
- HBufC* contentTypeString = KNullDesC().AllocL();
CleanupClosePushL(apaSession);
User::LeaveIfError( apaSession.Connect() );
@@ -469,20 +472,19 @@
apaSession.Close();
CleanupStack::PopAndDestroy(1, &apaSession);
+ TPtrC8 mimeTypePtr = dataType.iDataType.Des8();
+ TInt len = mimeTypePtr.Length() + 1;
+ HBufC* contentTypeString = HBufC::NewLC( len );;
+
if ( ret == KErrNone &&
( dataType.iConfidence == CApaDataRecognizerType::ECertain ) ||
( dataType.iConfidence == CApaDataRecognizerType::EProbable ) )
{
// If the file type was found, try to match it to a known file type
- TPtrC8 mimeTypePtr = dataType.iDataType.Des8();
- TInt len = mimeTypePtr.Length() + 1;
- contentTypeString = HBufC::NewL( len );
contentTypeString->Des().Copy( mimeTypePtr );
contentTypeString->Des().ZeroTerminate();
}
- CleanupStack::PushL( contentTypeString );
-
return contentTypeString;
}
--- a/widgets/widgetapp/src/WidgetUiWindow.cpp Fri May 08 08:25:06 2009 +0300
+++ b/widgets/widgetapp/src/WidgetUiWindow.cpp Fri Jul 03 15:54:40 2009 +0100
@@ -503,7 +503,7 @@
if (aCurrent)
{
- //UpdateCba();
+ UpdateCba();
Engine()->MakeVisible( iWidgetLoaded );
// redraw incase the orientation changed while in the background
Relayout();
@@ -671,6 +671,7 @@
RWidgetRegistryClientSession clientSession = iWindowManager.WidgetUIClientSession();
CWidgetPropertyValue* propValue = clientSession.GetWidgetPropertyValueL( iUid, EMiniViewEnable );
TInt hasMiniview = *propValue;
+ delete propValue;
return hasMiniview;
}
@@ -686,12 +687,15 @@
RWidgetRegistryClientSession& widgetRegistry
= iWindowManager.WidgetUIClientSession();
- TInt networkAccess = *(widgetRegistry.GetWidgetPropertyValueL(
- iUid, EAllowNetworkAccess ));
- TInt fullAccess = *(widgetRegistry.GetWidgetPropertyValueL(
- iUid, EAllowFullAccess ));
- TInt blanketPermission = *(widgetRegistry.GetWidgetPropertyValueL(
- iUid, EBlanketPermGranted ));
+ CWidgetPropertyValue* propValue = widgetRegistry.GetWidgetPropertyValueL( iUid, EAllowNetworkAccess );
+ TInt networkAccess = *propValue;
+ delete propValue;
+ propValue = widgetRegistry.GetWidgetPropertyValueL( iUid, EAllowFullAccess );
+ TInt fullAccess = *propValue;
+ delete propValue;
+ propValue = widgetRegistry.GetWidgetPropertyValueL( iUid, EBlanketPermGranted );
+ TInt blanketPermission = *propValue;
+ delete propValue;
TInt inMiniView = widgetRegistry.IsWidgetInMiniView( iUid);
if ( !( networkAccess || fullAccess ) ||
( inMiniView && !blanketPermission ))
--- a/widgets/widgetinstaller/group/WidgetInstallerUI.mmp Fri May 08 08:25:06 2009 +0300
+++ b/widgets/widgetinstaller/group/WidgetInstallerUI.mmp Fri Jul 03 15:54:40 2009 +0100
@@ -40,7 +40,11 @@
DEPENDS swinstcommonui.rsg
HEADER
TARGETPATH Resource
-LANGUAGE_IDS
+#ifdef __S60_32__
+LANG sc
+#else
+LANGUAGE_IDS
+#endif
END
// Sources