Bug 287689

Summary: kdewebkit does not ask whether to remember password on renren.com
Product: [Frameworks and Libraries] kdelibs Reporter: moriramar
Component: kdewebkitAssignee: webkit-devel
Status: CONFIRMED ---    
Severity: minor CC: adawit, bugz57, marcus
Priority: NOR    
Version: 4.7   
Target Milestone: ---   
Platform: Gentoo Packages   
OS: Linux   
Latest Commit: Version Fixed In:

Description moriramar 2011-11-27 15:50:07 UTC
Version:           unspecified (using KDE 4.7.2) 
OS:                Linux

I go to renren.com and log in, but KWebkitPart does not ask me whether to remember password there.

I am using kwebkitpart 1.2.0 from Gentoo Portage.

Thank you.

Reproducible: Always

Steps to Reproduce:
1. Open Konqueror 4.7.2 and enable Webkit mode.
2. Go to http://www.renren.com .
3. Type an email address string in the first textbox and an password-like string in the second textbox.
4. Click the blue box (not the green one) just under the two textboxes.

Actual Results:  
The form is submitted but KWebkitpart does not tell me to remember password.

Expected Results:  
KWebkitpart asks me whether to remember password.

Portage 2.1.10.38 (hardened/linux/x86/desktop, gcc-4.5.3, glibc-2.13-r4, 3.0.4-hardened-r5 i686)
=================================================================
System uname: Linux-3.0.4-hardened-r5-i686-AMD_Athlon-tm-_II_Neo_K345_Dual-Core_Processor-with-gentoo-2.1
Timestamp of tree: Sat, 26 Nov 2011 16:30:01 +0000
app-shells/bash:          4.2_p10
dev-lang/python:          2.7.2-r3, 3.2.2
dev-util/cmake:           2.8.6-r1
dev-util/pkgconfig:       0.26
sys-apps/baselayout:      2.1
sys-apps/openrc:          0.9.4
sys-apps/sandbox:         2.5
sys-devel/autoconf:       2.68
sys-devel/automake:       1.10.3, 1.11.1-r1
sys-devel/binutils:       2.21.1-r1
sys-devel/gcc:            4.5.3-r1
sys-devel/gcc-config:     1.4.1-r1
sys-devel/libtool:        2.4-r4
sys-devel/make:           3.82-r3
sys-kernel/linux-headers: 2.6.39 (virtual/os-headers)
sys-libs/glibc:           2.13-r4
Repositories: gentoo gentoo-zh gentoo-haskell science kde sunrise local
ACCEPT_KEYWORDS="x86 ~x86"
ACCEPT_LICENSE="* -@EULA skype-eula"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-march=i686 -O2 -pipe -fomit-frame-pointer"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/config /usr/share/gnupg/qualified.txt /usr/share/openvpn/easy-rsa"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c"
CXXFLAGS="-march=i686 -O2 -pipe -fomit-frame-pointer"
DISTDIR="/var/pkg/dist"
EMERGE_DEFAULT_OPTS="--keep-going y --with-bdeps y"
FEATURES="assume-digests binpkg-logs distlocks ebuild-locks fixlafiles news parallel-fetch protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch"
FFLAGS=""
GENTOO_MIRRORS="http://mirrors.163.com/gentoo"
LANG="en_GB.UTF-8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
LINGUAS="zh_TW zh af ak am ar as as_IN ast az be be_BY bg bn bn_BD bn_IN bo br brx bs ca ca_XV ca@valencia crh cs csb cy da de de_FR dgo dz ee el en en_CA en_GB en_US en_ZA eo es es_AR es_CL es_CR es_ES es_LA es_MX et et_EE eu fa fi fil fo fr fr_CA fy fy_NL ga ga_IE gd gl gu gu_IN he hi hi_IN hne hr hsb hu hy hy_AM ia id is it ja ka kk km kn kn_IN ko ko_KR kok ks ku ky la lb lg lo lt lv mai me mk ml ml_IN mn mni mr mr_IN ms mt my nb nb_NO nds ne nl nn nn_NO no nr ns nso oc om or or_IN pa pa_IN pap pl ps pt pt_BR pt_PT rm ro ru rw sa_IN sat sd se sh sh_YU son si sk sl sq sr sr@ijekavian sr@ijekavianlatin sr@latin sr@Latn sr_CS ss st sv sv_SE sw sw_TZ ta ta_IN ta_LK te te_IN tg th ti ti_ER tk tl tn tr ts ug uk ur_IN ur_PK uz uz@cyrillic ve vi wa xh zh_CN zh_HK zu"
MAKEOPTS="-j2"
PKGDIR="/var/pkg/bin"
PORTAGE_COMPRESS=""
PORTAGE_COMPRESS_FLAGS=""
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/var/pkg/portage"
PORTDIR_OVERLAY="/var/pkg/gentoo-zh /var/pkg/haskell /var/pkg/science /var/pkg/kde /var/pkg/sunrise /var/pkg/usr"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="X a52 aac acl acpi avahi bash-completion berkdb bluetooth branding bzip2 cairo cdda cdr cjk cli consolekit cracklib crypt cups cxx dbus djvu dri dts dvd dvdr emboss encode exif fam ffmpeg firefox flac fontconfig gdbm gdu gif gpm gstreamer hardened iconv ipv6 jpeg jpeg2k kde lame lcms ldap libnotify mad mms mmx mmxext mng modules mp3 mp4 mpeg msn mudflap ncurses nls nptl nptlonly ogg opengl openmp pam pango pax_kernel pcre pdf pic png policykit ppds pppd pulseaudio qt3support qt4 readline samba sdl semantic-desktop session spell sqlite ssl startup-notification svg sysfs syslog taglib tcpd threads tiff truetype udev unicode upnp urandom usb v4l vaapi vim-syntax vorbis wifi x264 x86 xcb xcomposite xml xorg xulrunner xv xvid xvmc zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1 emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="kexi words flow plan stage tables krita karbon braindump" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" DRACUT_MODULES="crypt crypt-gpg syslog" ELIBC="glibc" INPUT_DEVICES="acecad aiptek elographics evdev fpit hyperpen joystick keyboard mouse mutouch penmount synaptics wacom" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" USERLAND="GNU" VIDEO_CARDS="apm ark ast chips cirrus epson geode glint i128 i740 intel mach64 mga neomagic nouveau r128 radeon rendition s3 s3virge savage siliconmotion sis sisusb tdfx tga trident tseng v4l vesa via"
Comment 1 Dawit Alemayehu 2011-12-04 04:47:36 UTC
(In reply to comment #0)
> Version:           unspecified (using KDE 4.7.2) 
> OS:                Linux
> 
> I go to renren.com and log in, but KWebkitPart does not ask me whether to
> remember password there.
> 
> I am using kwebkitpart 1.2.0 from Gentoo Portage.
> 
> Thank you.
> 
> Reproducible: Always
> 
> Steps to Reproduce:
> 1. Open Konqueror 4.7.2 and enable Webkit mode.
> 2. Go to http://www.renren.com .
> 3. Type an email address string in the first textbox and an password-like
> string in the second textbox.
> 4. Click the blue box (not the green one) just under the two textboxes.
> 
> Actual Results:  
> The form is submitted but KWebkitpart does not tell me to remember password.
> 
> Expected Results:  
> KWebkitpart asks me whether to remember password.

I cannot get past the the login captcha or is it the site telling me the fake login/password I am was is wrong ??? I have no idea since I cannot read Chinese ; so I am unable to test the page.
Comment 2 moriramar 2011-12-04 05:30:20 UTC
The red line on the right upper part of the login box is just saying fake login/password.

My login account is moriramar@gmail.com . and the password is testpass . (I am going to abandon this account so it does not matter.)
Comment 3 Dawit Alemayehu 2011-12-28 23:03:10 UTC
Git commit e80f2b3c88911b549c2870091542ee32233d9293 by Dawit Alemayehu.
Committed on 27/12/2011 at 15:21.
Pushed by adawit into branch 'KDE/4.8'.

Since QWebFrame::url() always returns an empty URL for child frames, use
QWebFrame::baseUrl() instead.

M  +10   -5    kdewebkit/kwebwallet.cpp

http://commits.kde.org/kdelibs/e80f2b3c88911b549c2870091542ee32233d9293
Comment 4 Dawit Alemayehu 2011-12-28 23:19:07 UTC
(In reply to comment #2)
> The red line on the right upper part of the login box is just saying fake
> login/password.
> 
> My login account is moriramar@gmail.com . and the password is testpass . (I am
> going to abandon this account so it does not matter.)

Well now I get a yellow box over the login input boxes with the following text

您的帐号由于以下某种原因需要解
            锁才能登录
      删除过帐号
      长时间没有登录网站
      安全原因

Followed by a link that states 立即解锁. When KDE 4.8.0 comes out, please test and see if the patch I applied in comment #3 helps resolve this issue.

No clue what
Comment 5 Sebastian Trueg 2012-01-27 13:20:48 UTC
Git commit 2bcb2bc6ff83f91d1462774ca9bd104d3a2bb9f7 by Sebastian Trueg, on behalf of Dawit Alemayehu.
Committed on 27/12/2011 at 15:21.
Pushed by trueg into branch 'KDE/4.8'.

Since QWebFrame::url() always returns an empty URL for child frames, use
QWebFrame::baseUrl() instead.

M  +10   -5    kdewebkit/kwebwallet.cpp

http://commits.kde.org/kdelibs/2bcb2bc6ff83f91d1462774ca9bd104d3a2bb9f7
Comment 6 Dawit Alemayehu 2012-02-22 18:41:55 UTC
Ok, this is caused by a known issue. Namely, the hack we use to capture the login information from a website will not work if the login is handled through Javascript through XMLHttpRequest or Ajax. Will have to figure out an elegant solution to address this whole capture login information stuff.
Comment 7 Marcus Harrison 2013-10-25 07:17:44 UTC
What source code/documentation would I have to study to understand how form information is captured?
Comment 8 Dawit Alemayehu 2013-10-25 13:21:16 UTC
kdelibs/kdewebkit/kwebwallet.*

The code that does the capturing is written in javascript for the reasons listed in bug# 323663.
Comment 9 Marcus Harrison 2013-10-25 14:32:29 UTC
I've not had chance to look at the source code yet, but I've followed the trail of bug-reports back to QWebFrame::findAllElements() not actually finding all the elements. Is sloppily hacking around that a worthwhile endeavour, or should I not bother?