Bug 71748

Summary: Add CredentialStorage.cpp to WebCore/CMakeLists.txt
Product: WebKit Reporter: Daniel Bates <dbates>
Component: Tools / TestsAssignee: Daniel Bates <dbates>
Status: RESOLVED FIXED    
Severity: Normal CC: gyuyoung.kim, leandro, paroga, rakuco, ryuan.choi, tonikitoo
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
Patch none

Description Daniel Bates 2011-11-07 16:31:15 PST
We should add CredentialStorage.cpp to the list of source files in WebCore/CMakeLists.txt. Notice, CredentialStorage.cpp provides a base implementation. A port-specific file is needed to implement CredentialStorage::getFromPersistentStorage().
Comment 1 Daniel Bates 2011-11-07 16:48:43 PST
Created attachment 113958 [details]
Patch

This patch adds a stub implementation of CredentialStorage::getFromPersistentStorage() for the WinCE port. It also adds the source file CredentialStorageCurl.cpp to the list of WebCore source files when building the EFL port with the Curl backend.

Notice that EFL uses the implementation of CredentialStorage::getFromPersistentStorage() from either CredentialStorageSoup.cpp or CredentialStorageCurl.cpp depending on which networking backend is used when building it.
Comment 2 Gyuyoung Kim 2011-11-07 20:08:31 PST
Comment on attachment 113958 [details]
Patch

LGTM.
Comment 3 Daniel Bates 2011-11-07 22:40:31 PST
Comment on attachment 113958 [details]
Patch

Clearing flags on attachment: 113958

Committed r99523: <http://trac.webkit.org/changeset/99523>
Comment 4 Daniel Bates 2011-11-07 22:40:38 PST
All reviewed patches have been landed.  Closing bug.
Comment 5 Raphael Kubo da Costa (:rakuco) 2011-11-08 07:01:07 PST
This commit has broken the EFL build when the soup backend is used:

Linking CXX shared library libwebcore_efl.so
CMakeFiles/webcore_efl.dir/platform/network/soup/CredentialStorageSoup.cpp.o: In function `WebCore::CredentialStorage:
:get(WebCore::ProtectionSpace const&)':
/home/rakuco/dev/webkit/WebKit/Source/WebCore/platform/network/soup/CredentialStorageSoup.cpp:39: multiple definition 
of `WebCore::CredentialStorage::get(WebCore::ProtectionSpace const&)'
CMakeFiles/webcore_efl.dir/platform/network/CredentialStorage.cpp.o:/home/rakuco/dev/webkit/WebKit/Source/WebCore/plat
form/network/CredentialStorage.cpp:104: first defined here
Comment 6 Daniel Bates 2011-11-08 09:30:52 PST
(In reply to comment #5)
> This commit has broken the EFL build when the soup backend is used:
> 
> Linking CXX shared library libwebcore_efl.so
> CMakeFiles/webcore_efl.dir/platform/network/soup/CredentialStorageSoup.cpp.o: In function `WebCore::CredentialStorage:
> :get(WebCore::ProtectionSpace const&)':
> /home/rakuco/dev/webkit/WebKit/Source/WebCore/platform/network/soup/CredentialStorageSoup.cpp:39: multiple definition 
> of `WebCore::CredentialStorage::get(WebCore::ProtectionSpace const&)'
> CMakeFiles/webcore_efl.dir/platform/network/CredentialStorage.cpp.o:/home/rakuco/dev/webkit/WebKit/Source/WebCore/plat
> form/network/CredentialStorage.cpp:104: first defined here

As the error message indicates, both CredentialStorage.cpp and CredentialStorageSoup.cpp define CredentialStorage::get().

I don't understand why CredentialStorageSoup.cpp defines get() given that it does't override all the other CredentialStorage methods that use CredentialStorage::protectionSpaceToCredentialMap(). I noticed that CredentialStorageQt.cpp also defines a get() as well. I think we should remove the get() method from CredentialStorageSoup.cpp.
Comment 7 Daniel Bates 2011-11-08 10:12:34 PST
Filed <https://bugs.webkit.org/show_bug.cgi?id=71825> and <https://bugs.webkit.org/show_bug.cgi?id=71829> to remove CredentialStorage::get() from CredentialStorageSoup.cpp and CredentialStorageQt.cpp, respectively.