touch browser crashes when invoking contextual menu in landscape orientation

Bug #1425379 reported by unerds
84
This bug affects 17 people
Affects Status Importance Assigned to Milestone
ubuntu-ui-toolkit (Ubuntu)
Fix Released
Critical
Cris Dywan
webbrowser-app (Ubuntu)
Fix Released
Critical
Unassigned

Bug Description

copy text works fine in portrait, crashes in landscape..

to reproduce exactly, was looking up how to sync my google calendar on https://help.ubuntu.com/community/SyncEvolution

tried to copy one of the text boxes containing terminal commands - crashes every time in landscape mode

TEST CASE
1. Launch the web browser and open the amazon.com
2. Rotate the device to landscape orientation
3. Tap on the screen and hold your finger for a while

ACTUAL RESULT
Observe that webbrowser-app disappeared (closed or crashed)

EXPECTED RESULT
No Crash

---

1 - OS version 15.04 r111 (has been occurring over several updates though)
1a- installed on nexus 4 via multirom

2 - webbrowser-app version 0.23+15.04.20150217.1-0ubuntu1

3 - i expected to get the selected text copied to the clipboard so i could paste it into the terminal

4 - browser shut down and i was returned to the apps launcher

Tags: landscape

Related branches

Revision history for this message
Olivier Tilloy (osomon) wrote : Re: touch browser crashes when selecting text in landscape mode
Download full text (4.3 KiB)

I can reliably reproduce the issue. Here is the backtrace of the crash:

#0 0xb6cc5fb4 in validityError (source=0x0, position=0x0, this=0xb88dd6c0) at io/qurl.cpp:1562
#1 QUrl::isValid (this=0xb88dd5c4) at io/qurl.cpp:1807
#2 0xb6ccae42 in QUrl::toString (this=this@entry=0xb88dd5c4, options=...) at io/qurl.cpp:3208
#3 0xb677119c in QQmlExpression::QQmlExpression (this=0xbed12c00, script=..., ctxt=<optimized out>,
    scope=<optimized out>, parent=0x0) at qml/qqmlexpression.cpp:152
#4 0xb64295e4 in QQuickScriptActionPrivate::execute (this=<optimized out>) at util/qquickanimation.cpp:990
#5 0xb67f5fca in QAbstractAnimationJob::setState (this=0xb890abb8, newState=QAbstractAnimationJob::Running)
    at animations/qabstractanimationjob.cpp:360
#6 0xb67f705c in QSequentialAnimationGroupJob::activateCurrentAnimation (this=0xb88e9e60,
    intermediate=<optimized out>) at animations/qsequentialanimationgroupjob.cpp:310
#7 0xb67f70e4 in QSequentialAnimationGroupJob::uncontrolledAnimationFinished (this=0xb88e9e60, animation=0xb889bcd8)
    at animations/qsequentialanimationgroupjob.cpp:326
#8 0xb67f56ec in QAbstractAnimationJob::finished (this=this@entry=0xb889bcd8)
    at animations/qabstractanimationjob.cpp:594
#9 0xb67f6064 in QAbstractAnimationJob::setState (this=0xb889bcd8,
    newState=newState@entry=QAbstractAnimationJob::Stopped) at animations/qabstractanimationjob.cpp:393
#10 0xb67f6100 in QAbstractAnimationJob::stop (this=this@entry=0xb889bcd8) at animations/qabstractanimationjob.cpp:530
#11 0xb6459918 in QQuickAnimatorProxyJob::setWindow (this=0xb889bcd0, window=0x0) at util/qquickanimatorjob.cpp:150
#12 0xb6d54a00 in QMetaObject::activate (sender=0xb88dde48, signalOffset=<optimized out>,
    local_signal_index=local_signal_index@entry=11, argv=argv@entry=0xbed12dfc) at kernel/qobject.cpp:3716
#13 0xb6d54d96 in QMetaObject::activate (sender=<optimized out>, m=<optimized out>,
    local_signal_index=local_signal_index@entry=11, argv=argv@entry=0xbed12dfc) at kernel/qobject.cpp:3582
#14 0xb6499ec4 in QQuickItem::windowChanged (this=<optimized out>, _t1=0x0) at .moc/moc_qquickitem.cpp:1036
#15 0xb64a3ec8 in QQuickItemPrivate::derefWindow (this=0xb88de0d8) at items/qquickitem.cpp:2861
#16 0xb64a3e90 in QQuickItemPrivate::derefWindow (this=this@entry=0xb88dda10) at items/qquickitem.cpp:2854
#17 0xb64a48e0 in QQuickItem::setParentItem (this=this@entry=0xb88dd9f8, parentItem=parentItem@entry=0x0)
    at items/qquickitem.cpp:2539
#18 0xb64a4bac in QQuickItem::~QQuickItem (this=0xb88dd9f8, __in_chrg=<optimized out>) at items/qquickitem.cpp:2240
#19 0xb64b514c in ~QQmlElement (this=0xb88dd9f8, __in_chrg=<optimized out>)
    at ../../include/QtQml/../../src/qml/qml/qqmlprivate.h:98
#20 QQmlPrivate::QQmlElement<QQuickItem>::~QQmlElement (this=0xb88dd9f8, __in_chrg=<optimized out>)
    at ../../include/QtQml/../../src/qml/qml/qqmlprivate.h:98
#21 0xb6d556c2 in QObject::event (this=this@entry=0xb88dd9f8, e=e@entry=0xb890b1e8) at kernel/qobject.cpp:1236
#22 0xb64a24d0 in QQuickItem::event (this=0xb88dd9f8, ev=0xb890b1e8) at items/qquickitem.cpp:7305
#23 0xb5f9fbc4 in QApplicationPrivate::notify_helper (this...

Read more...

summary: - touch browser crashes when copying text in landscape mode
+ touch browser crashes when selecting text in landscape mode
Changed in webbrowser-app (Ubuntu):
status: New → Confirmed
Changed in webbrowser-app:
status: New → Confirmed
importance: Undecided → Critical
Revision history for this message
Olivier Tilloy (osomon) wrote :

The same happens when invoking the contextual menu in any other orientation than the default, portrait one (including inverted portrait).

Revision history for this message
Olivier Tilloy (osomon) wrote :

An issue that might be related: if I browse to a page that displays a javascript alert dialog, and then rotate the device, the dialog is rotated, but its background isn’t resized.

summary: - touch browser crashes when selecting text in landscape mode
+ touch browser crashes when invoking contextual menu in landscape
+ orientation
Revision history for this message
Olivier Tilloy (osomon) wrote :

This seems to be an issue in the UITK, I can reproduce with the following sample scene:

import QtQuick 2.0
import Ubuntu.Components 1.1
import Ubuntu.Components.Popups 1.0

OrientationHelper {
    MouseArea {
        anchors.fill: parent
        onClicked: {
            PopupUtils.open(popover)
        }
        Component {
            id: popover
            ActionSelectionPopover {
                actions: Action { text: "test" }
            }
        }
    }
}

Revision history for this message
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in ubuntu-ui-toolkit (Ubuntu):
status: New → Confirmed
Cris Dywan (kalikiana)
Changed in ubuntu-ui-toolkit (Ubuntu):
assignee: nobody → Christian Dywan (kalikiana)
status: Confirmed → Triaged
importance: Undecided → Critical
Revision history for this message
Cris Dywan (kalikiana) wrote :

Unfortunately this proves difficult to debug as QtCreator can't handle crashes well and Autopilot is still unable to run tests in Landscape https://code.launchpad.net/~canonical/unity8/fake_platform_sensors_module/+merge/247334

Cris Dywan (kalikiana)
tags: added: landscape
Revision history for this message
Cris Dywan (kalikiana) wrote :

Small update: I've found a way to simulate orientation in a way that can be used for manual and automated testing.

Changed in ubuntu-ui-toolkit (Ubuntu):
status: Triaged → In Progress
Changed in ubuntu-ui-toolkit (Ubuntu):
assignee: Christian Dywan (kalikiana) → Daniel d'Andrada (dandrader)
Changed in ubuntu-ui-toolkit (Ubuntu):
assignee: Daniel d'Andrada (dandrader) → Christian Dywan (kalikiana)
description: updated
Olivier Tilloy (osomon)
no longer affects: webbrowser-app
Changed in webbrowser-app (Ubuntu):
importance: Undecided → Critical
Revision history for this message
Pietro Albini (pietroalbini) wrote :

This bug doesn't appear anymore with the unity8 shell rotation, in the latest OTA.

Revision history for this message
TenLeftFingers (tenleftfingers) wrote :

Since OTA-5, this has not happened on my BQ E4.5.

Revision history for this message
Olivier Tilloy (osomon) wrote :

I confirm that this has been fixed with the shell rotation in unity8.

Changed in webbrowser-app (Ubuntu):
status: Confirmed → Fix Released
Changed in ubuntu-ui-toolkit (Ubuntu):
status: In Progress → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.