Issue 234

6th May 2012 by KDE Commit-Digest Team


Marta Rybczynska
Mutlu Inek
Jaka Kranjc
Myriam Schweingruber

This Week...

Marble gets first version of FlightGear position provider. KPhotoAlbum saves the video length in a database; search for the length is also possible. KWebkitParts gets an option that allows the user to disable the internal handling of flash and java applets. KDE-PIM extends the notes class, there are some new properties. Calligra allows dragging of selected text, it works with drag and drop too. Amarok can write album covers to iPods and USB Mass Storage devices; changes in cover art reading and writing. Solid adds proper support for volumes, storage disks and storage access, which was not working on Windows. Soprano uses non-Qt local socket communication on Unix systems.
KDE-Accessibility activity by Frederik Gladhorn

Hello dear KDE Commit Digest reader,

I was asked to talk a bit about what's happening when it comes to KDE and accessibility at the moment, something I'm happy to do. For me KDE is about inclusiveness and enabling people to use technology. Don't think this doesn't affect you, it's a broad subject and everyone benefits in some way.

Accessibility is a broad term. In the context of computer technology, it generally means giving as many people the ability to use the technology as possible. Because people are so different, there is of course not one solution for all. We aim therefore to cover a broad spectrum of use cases. Many issues that severely impact computer usage are, of course, visual or motorical difficulties. Hearing problems can be another barrier. For KDE this means following the human interface guidelines, which ensure for example that users can adjust font sizes or the contrast of color schemes. Sometimes more advanced solutions are needed, such as using a screen reader for blind users.

And hey, this is the commit digest, I bet you're itching to get your hands onto some code, right? Join us and dive into a fun community effort, what's stopping you? We have a growing and ever more active team now, meeting in #kde-accessibility on irc (freenode). The mailing list is of course another good point of contact: kde-accessibility

For developers to get started, I wrote a few points that you can check in order to make your application usable by as many people as possible: checklist

Since this is the first post about accessibility here, I'd like to mention what's currently going on. There are several areas where we're improving, one great newcomer is of course Simon, an application that lets you control your computer via speech. I'll for now refer you to the Simon blog for the latest news.

The other big thing going on is that qt-at-spi has seen many improvements. Now I don't expect everyone to know what qt-at-spi is... and that's the way it should be. Qt-at-spi is a plugin for Qt, that exposes information about what is on screen via the AT-SPI api that the Gnome accessibility tools use. After some research and help from the great Gnome accessibility team, I spent some time during the last year to get this plugin into shape. It exposes semantics about applications so that Assistive Technologies (ATs) use the information to support the user. One classical example is a screen reader. Screen readers are programs that "read" the user interface so that people that are blind can use applications.

Orca from Gnome now works to some degree with KDE applications thanks to the plugin. Now we reached a phase where more and more feedback from users benefiting from this comes in and we can start polishing the experience. As you can imagine, the mouse is not all that helpful when you cannot see where the pointer is, therefor having a working keyboard interface to our applications is important.

Let's just imagine a dialog with an OK and Cancel button. With the accessibility tools, the screen reader "knows" that there is a button with label "OK" at this position. It can check the state and find out that it's currently focused. When you press the tab key, the focus moves over to the "Cancel" button. Now the screen reader gets a notification on focus changes and will read "Cancel - Button" for example. If you want to see how that is done, you can of course read the Qt sources and the qt-at-spi plugin sources. There's lots to do, for an easy starter, adding more unit tests would be a good idea. Get the code here: qtsami, there are still many low hanging fruits as well as tricky issues to be tackled.

But that's not all that's happening in accessibility land currently: we have summer of code projects for Simon and one to improve KMag. Let me talk about KMag in this context. When using a magnifier, it's still important to know where the focus is. Since we don't have focus follows mind (link) yet, we need to figure out where the focus is at. Guess what - we're using AT- SPI to do that. Amandeep Singh is working with Sebastian Sauer to make the pieces fit together. In order to let not only KMag benefit from the work, the changes are actually done in a client side AT-SPI library for Qt/KDE applications. You can follow the progress here: libkdeaccessibilityclient and in KMag of course.

Now if you're as excited about this all and want to read more (you know you do!), here are some more helpful links:

Accessibility - userbase

Accessibility - techbase

Cheers Frederik


Commits 1937 by 170 developers
Open Bugs 22051
Open Wishes 16775
Bugs Opened 382 in the last 7 days
Bugs Closed 417 in the last 7 days

Commit Summary

Module Commits
Files Developer Commits
Burkhard Lück
Gilles Caulier
Laurent Montel
David Faure
Marco Martin
Matěj Laitl
Allen Winter
Miha Čančula
Sairan Kikkarin
Stephen Kelly

Internationalization (i18n) Status

Language Percentage Complete
Portuguese (pt)
Polish (pl)
Dutch (nl)
Estonian (et)
German (de)
French (fr)
Italian (it)
Danish (da)
Low Saxon (nds)
Chinese Traditional (zh_TW)

Bug Killers

Person Bugs Closed
Jekyll Wu
Myriam Schweingruber
Martin Gräßlin
Christian Esken
Christoph Feck
C. Boemann
Peter Penz
Christophe Giboudeaux
Tom Albers
Thomas Lübking

Commit Countries

Commit Demographics




  Bug Fixes Features Optimization Security Other



Development Tools





[] []    

KDE Base

[] [] []   


[] []    []


[] []    




[] [] []   

Networking Tools

[] [] []   

User Interface







  [] []   []

There are 68 selections this week

Bug Fixes

Development Tools

Milian Wolff committed changes in [kdevplatform] shell/projectcontroller.cpp:

don't overwrite previously defined project name in *.kdev4 file

REVIEW: 104641

Milian Wolff committed changes in [kdevelop/4.3] /cpp/codegen:

fix crash in signature assistant when view gets closed before parse update

the question remains whether we might not want to delete the assistant before
the view anyways, similar to how we do it with the rename assistant


Marcel Wiesweg committed changes in [digikam] /queuemanager/basetools:

Port all BQM tools (with some exceptions *) to record their filter actions in the image,
thus properly supporting versioning

* The tools which actually tune the saving format do not apply history.
Watermark tool is missing as it is not based on a filter.
Rotation does not add an action for some cases intentionally

Jesper Pedersen committed changes in [kphotoalbum] ImageManager/VideoThumbnails.cpp:

avoid race condition, which could course delete to be called again before a new instance had been created

Miika Turkia committed changes in [kphotoalbum] /:

Allow inclusion of collapsed stacks for selection.

By default, ThumbnailFacade::selection now includes images of collapsed
stacks, not just the stack head. You can revert to the old behaviour by
using ThumbnailFacade::selection(ThumbnailView::NoExpandCollapsedStacks)

Aurélien Gâteau committed changes in [gwenview/KDE/4.8] /:

Fix leaking documents

Documents were never released because DocumentInfoProvider kept loading them.
A big thank you to Benni Hill for discovering the bug and proposing the
initial patch.


KDE Base

Jekyll Wu committed changes in [konsole] src/TerminalDisplay.cpp:

Do not forward the button release event when Shift is also pressed.

FIXED-IN: 4.8.4

Martin Gräßlin committed changes in [kde-workspace] /effects:

Properly detect effects which need OpenGL 2

Effects that need GLSL require that OpenGL 2 is active.
It does not matter whether the GPU would support it if
OpenGL 2 is not used.

Cherry-picked from db42152

Thomas Lübking committed changes in [kde-workspace] kwin/toplevel.cpp:

invoke decorationRect() in calculations for visibleRect()

FIXED-IN: 4.9.0
REVIEW: 104865

Christoph Cullmann committed changes in [kate] part/syntax/katehighlight.cpp:

Patch by Valery Yundin


Memory corruption in dropDynamicContexts due to undefined value of base_startctx. The patch adds to dropDynamicContexts guards against unused highlights and "normal text" highlight.

Testing Done:

valgrind --tool=memcheck reports access to uninitialized memory when using test case from bug 245663

Thomas Lübking committed changes in [kde-workspace] /:

add desktopChanged signal to effects that carries the optionally changing widget


Lukáš Tinkl committed changes in [kde-workspace] /plasmaclock:

re-read the calendar on locale changes, fixes crash report in #299237
and a dozen of dupes

Lamarque Souza committed changes in [plasma-mobile] /:

Add signal finishedListingChanged to MetadataModel so that we can stop
the busy indicator in ViewSearch.qml when the nepomuk query finishes.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8 Revision 8eef793...
Peter Penz committed changes in [kde-baseapps] dolphin/src/views/dolphinview.cpp:

Assure that a newly created item gets selected/focused and visible

Thanks to Franz Fellner for the patch!

Peter Penz committed changes in [kde-baseapps] /src/kitemviews:

Fix crash when closing Dolphin during generating previews

FIXED-IN: 4.9.0

Thomas Lübking committed changes in [kde-workspace] /tabbox:

elevate tabbox when elevating highlighted windows

REVIEW: 104845


André Wöbbeking committed changes in [kdepimlibs] akonadi/contact/contactstreemodel.cpp:

Also show birthdays with invalid time (who cares for the time anyway?)

(cherry picked from commit 44ab1484c5d45a0cbd4d77042a37b5ce995a3613)

Laurent Montel committed changes in [kdepim] mailcommon/searchpatternedit.cpp:

Fix Bug 299265 - Total number of filter criteria variable

FIXED-IN: 4.8.4

Laurent Montel committed changes in [kdepim] /:

Fix Bug 299289 - "Replace smileys by emoticons" causes another message

to be displayed
It was a bug when we saved aggregation combobox it reloaded config
=> reload last selected item.
Now save it before when we apply config so it avoid to select last saved

FIXED-IN: 4.8.4


Thorsten Zachmann committed changes in [calligra] plugins/pathshapes/rectangle/RectangleShape.cpp:

Load draw:corner-radius correctly

Thr draw:corner-radius can be bigger then the actual shape is wide or high. In that case
make the radius half the width/height.

This fixes the problem that the shape in bug 260226 is shown as big as it should.

The actual problem described in the bug report had already be fixed.

Ok to backport?

Thorsten Zachmann committed changes in [calligra/calligra/2.4] /defaultTools/defaulttool:

Fix painting artefacts after snapping has be used.

Update the position the snap is shown before and after moving.
Reset the data once the action is finished.
Update the canvas when the interaction is finished so the snap guid is no longer visible.

Reviewed by: boemann
(cherry picked from commit 6213b81369b108a8650377e9f30e1e2e3d8c1ff5)

Jarosław Staniek committed changes in [calligra] /:

KexiDB: fix crashed when saving query design

*put DESC/ASC after COLLATE section, not before (needed at least for sqlite driver)
*fixed crash because of invalid deletion order of query structures
*fixed crash because of invalid deletion relationship structures


C. Boemann committed changes in [calligra] libs/flake/KoPathShape.cpp:

Fix artifacts due to linewidth
We just use the method already used for lines with markers.
It's similar idea to what the bug owner posted, just more advanced

Matus Uzak committed changes in [calligra] filters/words/msword-odf/document.cpp:

doc: Comments are not part of the SttbfAssoc structure.
TODO: Locate comments from the document properties.

Inge Wallin committed changes in [calligra] /pictureshape/filters:

Fix image effects 'grayscale' and 'mono'.

The original author had forgotten to take the alpha channel into account.

Thorsten Zachmann committed changes in [calligra] /:

Add workaround for loading partial circles from OO

When saving a partion circle/ellipse LO/OO saved the svg:width, svg:height
svg:x and svg:y as there would be a full circle. However according to ODF the
values should be dervived from the bounding box of the displayed shape.

This fixes the problem that the circles in the file attached to the bugreport are displayed

OK to backport?

Sven Langkamp committed changes in [calligra] libs/flake/KoCanvasResourceManager.cpp:

intialize colors in resource manager

Jarosław Staniek committed changes in [calligra/kexi-features-staniek] /:

KexiDB: fix crashed when saving query design

*put DESC/ASC after COLLATE section, not before (needed at least for sqlite driver)
*fixed crash because of invalid deletion order of query structures
*fixed crash because of invalid deletion relationship structures

Alvaro Soliverez committed changes in [kmymoney] /reports:

Multi-currency transaction reports: each individual should be shown in
its own currency, not the one of the main split.
Fixed the display of currency for those cases when the currency is
different from the base currency.
Added test for Transaction by Account report with multiple currencies,
contributed by Cristian Onet.

There might be some more fixing to do, as it's one of the most complex


Robby Stephenson committed changes in [tellico/2.3] /:

Use a temporary directory when using a local image directory for new files

When using a local image directory, whose name depends on the Tellico
file name, use a temporary directory until the file is saved the first

FIXED-IN: 2.3.6

Inge Wallin committed changes in [calligra] /:

Fix bug 260535 - kpresenter:openoffice:Shadow of the picture is not getting displayed.

This patch solves the problem that only shapes with a fill/background
and/or a stroke can have a shadow. This was bad for the picture shape
that most of the time had neither.

REVIEW: 104844

Boudewijn Rempt committed changes in [calligra] krita/plugins/formats/xcf/kis_xcf_import.cpp:
Sven Langkamp committed changes in [calligra] /pictureshape:

don't change the size of the pictureshape when inserted or replaced

Thorsten Zachmann committed changes in [calligra] libs/kotext/styles/KoListLevelProperties.cpp:

Add collection to datacenters so images are saved

If there was no image in the document the image bullets where not saved as the image collection
was not added to the data centers and therefore the images where not saved. This fixes that by
adding the image collection to the datacenters.
Reorder the way the attributes are added. They need to be added before a child element is added
therefore they are moved up.
Parts of the patch are provided by gopalK.

Is it ok to include KoImageData_p.h in a lib of our own code or should we find a different solution?

Ok to backport?


Matěj Laitl committed changes in [amarok] /:

Fix drag & drop in playlist layout editor, filter editor etc. in non-english locales

The implementation relies on custom mime-type specified in .ui files.
However, the strings weren't marked as non-translatable, so language
teams that decided to translate application/x-amarok-tag-token effectively
broke drag & drop for their users. (the blame goes to Amarok team, of

Myriam, more than 2-year-old bug fixed in a couple of hours, don't you
like your GSoC student? :-)

* Fix drag & drop in playlist layout editor, filename layout editor,
filter editor for non-english locales. (BR 215402)


Matěj Laitl committed changes in [amarok] /:

TranscodingJob: fix transcoding with ffmpeg >= 0.10

* Fix transcoding with ffmpeg >= 0.10; patch by Julian Simioni.

REVIEW: 104839
DIGEST: bugfix

Matěj Laitl committed changes in [amarok] /:

SqlCollectionLocation: preserve statistics in copyUrlsToCollection()

* Preserve statistics when copying or moving tracks to Local Collection.

DIGEST: Bugfix: Amarok now preserves track statistics during copy

Sam Lade committed changes in [amarok] /:

Fix external URLs in service config dialogs

Affects MP3tunes,, Magnatune worked already.


Matěj Laitl committed changes in [amarok] /:

QtGroupingProxy: don't re-enter beginInsertRows() (crashfix)

This should fix a nasty crash that was only reproducible when Qt was
build with debugging assertions enabled. (and perhaps only if you have
empty playlist providers) The fix is based on an assumption that
addSourceRow() in QtGroupingProxy is only called from:

a) buildTree(), which encompasses it in {begin/end}ResetModel()
b) modelRowsInserted(), but that should be always preceeded by
modelRowsAboutToBeInserted() that calls beginInsertRows()

Bart, this is largely your code, is this correct?

* Fix crash on start when Qt is build with debugging assertions

DIGEST: fix rather nasty crash

Matěj Laitl committed changes in [amarok] /core-impl/collections/ipodcollection:

IpodCollection: more robust iPhone (and the like) mounting

* determined mount-point is checked first for some well-known
directories to detect whether iPhone is already connected
* detailed debugging information is shown to the user in details tab
of a sorry dialog upon failure -> no need to run amarok with --debug
* output of the called commands is now shown in the details too to aid
* the code is significantly refactored to eliminate convoluted logic

This is not the final solution of course - that would be using solid to
do all the dirty job, and thanks to work on fuse backed this may one
day become true.

I'd like to thank avlas for testing as seen on my blog post [1].


DIGEST: Bugfix: Amarok's iPhone mounting gets more robust

Diffs: 1, 2, 3 Revision f0a2caa...

Networking Tools

Martin Klapetek committed changes in [ktp-contact-list] global-presence-chooser.cpp:

Hide the "Edit presence message" button when offline or invisible

REVIEW: 104594

User Interface

Hugo Pereira Da Costa committed changes in [oxygen-gtk] /:

Register all GtkMenuItems to MenuItemEngine via their parent menu, the first time it is shown.


Rolf Eike Beer committed changes in [kgpg/KDE/4.8] /:

prevent that a key shows up twice after reloading it from keyserver




Ralf Habacker committed changes in [marble] /:

first version of flightgear position provider

Diffs: 1, 2, 3, 4, 5 Revision 7b5f2f3...


Jesper Pedersen committed changes in [kphotoalbum] /:

video length is now saved to the XML database

Diffs: 1, 2, 3, 4, 5, 6 Revision 1102bb3...
Jesper Pedersen committed changes in [kphotoalbum] /:

added searching for videos without a length in the database

This also introduces a first attempt at a job manager for background tasks.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 1 more) Revision 954410f...

KDE Base

Dawit Alemayehu committed changes in [kwebkitpart] /:

Added an option, "DisableInternalPluginHandling", that allows the user to disable
the internal handling of flash and java applets.

Currently it lacks GUI configuration, but it can be activated by adding the
aforementioned option to the "General" section of $KDEHOME/share/config/kwebkitpartrc
and setting it to "true".

FIXED-IN: 4.9.0

Hugo Pereira Da Costa committed changes in [kde-workspace] /oxygen:

added option "ViewInvertSortIndicator" to inverse the tree view sort indicator arrow direction.

Martin Gräßlin committed changes in [kde-workspace] /:

Show detailed information why an effect cannot be loaded

Effects can specify their minimum requirements in their
desktop file:
* OpenGL
* OpenGL 2 (GLSL required)
* Shaders (either ARB or OpenGL 2)

The configuration module uses this information in combination
with which backend KWin is currently using. So if e.g. OpenGL
is used and an effect requires OpenGL 2 a detailed error
message can be showed that OpenGL 2 is required.

FIXED-IN: 4.9.0
REVIEW: 104847

Martin Gräßlin committed changes in [kde-workspace] /tabbox:

Add layout name to D-Bus interface to open TabBox

If the layout name is specified a custom layout config is
passed to the TabBoxHandler with the configured name.

This can be used by Plasma Active to specify the window strip
(overwrites any settings) and for Netbook shell as a replacement
to opening Present Windows Effect.

REVIEW: 104838


Christian Mollekopf committed changes in [kdepimlibs] /notes:

Extended notes class with some properties.

New are:
- uid
- lastModifiedDate
- classification
- attachments
- custom

Diffs: 1, 2, 3, 4, 5 Revision 4f8342f...
Laurent Montel committed changes in [kdepim] archivemailagent/archivemaildialog.cpp:

Save/load config


C. Boemann committed changes in [calligra] /:

New feature: Allow dragging of selected text, it works with drag and drop
so you can drag to and from other applications too.

Dragging between textshapes unfortunately doesn't work. (Because the other textshape is not
selected, doing that would be sort of trivial but would also mess up the texttool sourcecode
even more)

REVIEW: 104773

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 2 more) Revision 9a9d061...
Silvio Heinrich committed changes in [calligra] /plugins/paintops/colorsmudge:

Add a new smudging behavior to the the Color Smudge brush.

I added an option to the "Smudge Rate" setting to choose between
the default smudging (smearing) behaviour and an behaviour similar to mypaint smudging (dulling).

Diffs: 1, 2, 3, 4, 5, 6, 7 Revision ad11929...


Daniel Faust committed changes in [amarok] /:

Some changes to the handling of cover art reading and writing

The maximum dimensions for embedded covers are now configurable.
When writing covers to files, all existing covers will be replaced.

REVIEW: 104513
GUI: New configuration option for the maximum cover size in the 'local collection' tab

Matěj Laitl committed changes in [amarok] /:

MetaFile::Album: support for setting album cover and common album actions

* Support for setting cover images for albums on USB Mass Storage devices.

DIGEST: Feature

Diffs: 1, 2, 3 Revision 8997725...
Sven Krohlas committed changes in [amarok] /:

Amazon store: ability to check single items out directly

So the user does not have to use the integrated shopping cart (which
does not work for at all, due to their API limitations).
This currenly only works correctly for, some server side
changes are required for the other locales. Those will show up shortly.


Matěj Laitl committed changes in [amarok] /:

PlaylistDock: provide Repopulate and Turn off links in "Dynamic mode enabled" msg

I hope this will be agreed upon. The link's colour is rather similar to
background in my palette, but still readable. Any improvements welcome,
I can even make these small buttons.

Or perhaps we may move the "turn dynamic playlist on/off" button down
to the playlist statusbar? Perhaps hiding "track progression" button
that has no sense when dynamic is enabled? I have no strong opinion.

* Provide Repopulate and Turn off link in "Dynamic Mode Enabled" bagde.

DIGEST: Feature
GUI: Repopulate and Turn off links added to "Dynamic Mode Enabled" message

Diffs: 1, 2, 3 Revision aa5bb1b...
Matěj Laitl committed changes in [amarok] /:

IpodCollection: support for writing album covers to iPods

* Support for setting and unsetting cover images for iPod albums, can
write back covers to file meta-data too, respects configuration.

DIGEST: Feature

Diffs: 1, 2, 3, 4, 5 Revision f4b20e2...

Networking Tools

Dominik Cermak committed changes in [ktp-contact-list] /:

Make it possible to filter for blocked/unblocked contacts

This adds a submenu to the wrench-button-menu where you can set which
contacts should be shown:
* Show all contacts [that's how it was up until now]
* Show unblocked contacts [default]
* Show blocked contacts

REVIEW: 104667

Andrea Diamantini committed changes in [rekonq] /:

First working implementation for syncing with Opera Link, code needs lots of refactoring.

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 2 more) Revision c7f8174...


Patrick von Reth committed changes in [kdelibs/KDE/4.8] /solid/backends/wmi:

Added propper support for volumes,storagedisks and storageacces

DIGEST:Added propper support for volumes,storagedisks and storageacces
previously the informations gathered by solid on windows
where useless

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 3 more) Revision 6b2cdd1...


KDE Base

Martin Gräßlin committed changes in [kde-workspace] /effects:

Delay creation of EffectFrames till needed

Creating an EffectFrame requires I/O which takes on my system
during testing between 10 and 40 msec. Also it needs a little
bit of memory.

This changes moves out the creation of EffectFrames at Effect
load till the Effect actually needs the EffectFrame. E.g. if a
user does not filter in PresentWindows there is no need to ever
create it.

BoxSwitch effect is ignored as it should be dropped for 4.9.

REVIEW: 104815

Diffs: 1, 2, 3, 4, 5 Revision bbf561e...


Nicolás Alvarez committed changes in [kde-ruleset] kdemultimedia/rules/audiocd-kio:

Optimize audiocd-kio recursion rules.

This is bdba02f4 applied to the audiocd-kio kdebase rules,
plus ignoring the new-style (branches/KDE/$version) branch names
for kdebase (kio_audiocd moved to kdemm way before that branch rename).

This speeds up the conversion run from 1m:34s to 1m:08s.

Networking Tools

Andrea Diamantini committed changes in [rekonq] /sync:

Refactored code and tried to stablize support for syncing with Opera Bookmarks.


Sebastian Trueg committed changes in [soprano] /:

Non-Qt local socket communication on Unix systems.

The new class Socket handles thread-safe unix communication now. On
windows systems the old code is used.
The server code still uses the QLocalSocket class since each connection
has its own thread anyway. Porting is not as important.

This allows us to use a single thread on the client side and avoiding all
that ugly and error-prone code that tries to maintain one socket per
client thread.
The result is less crashes, lower resource consumption and cleaner code
(not counting the #ifdefs).

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 2 more) Revision 3d66d42...



Dan Vratil committed changes in [kdepim-runtime] /:

Move Akonadi resources for Google Contacts and Calendar to kdepim-runtime

REVIEW: 104775

Diffs: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 (+ 26 more) Revision bdeb74c...


Alex Fiestas committed changes in [web-accounts] /facebook:

FCreredentials polished, code copyied from credentials.

Facebook Credentials and Google credentials keep being the same, so
soon enough we should unify them.