Closed Bug 976454 Opened 10 years ago Closed 10 years ago

[Sora][Message][MMS]The prompt message is wrong when re-enter message.

Categories

(Core :: DOM: Core & HTML, defect, P1)

defect

Tracking

()

RESOLVED FIXED
1.4 S3 (14mar)
blocking-b2g 1.3+
Tracking Status
firefox28 --- wontfix
firefox29 --- wontfix
firefox30 --- fixed
b2g-v1.3 --- fixed
b2g-v1.3T --- fixed
b2g-v1.4 --- fixed

People

(Reporter: sync-1, Assigned: baku)

References

()

Details

(Keywords: regression)

Attachments

(2 files)

Firefox OS v1.3
 Mozilla build ID: 20140208004002
 
 DEFECT DESCRIPTION:
 ->MS have the wrong prompt message.
 
  REPRODUCING PROCEDURES:
 ->MS receive a MMS which include image/audio media files;
 ->View the MMS,tap the media file to view and select save;
 ->Save it successfully,tap home key;
 ->Re-enter"Message",MS prompt"There is no application available to open this file type.",the prompt message is wrong.(ko)
  
  EXPECTED BEHAVIOUR:
 ->Shouldn't have the prompt message.
 
  ASSOCIATE SPECIFICATION:
 
  TEST PLAN REFERENCE:
 
  TOOLS AND PLATFORMS USED:
 
  USER IMPACT:
 
  REPRODUCING RATE:100%
 
  For FT PR, Please list reference mobile's behavior:Beetle lite FF is ok.
 
 lync:zhenzhen.fu.com
 7526
Can someone confirm this on the Moz side?
Keywords: qawanted, regression
I was able to reproduce this on a 1.4 Buri

1.4 Environmental Variables:
Device: Buri 1.4 MOZ
BuildID: 20140225040205
Gaia: e0f39c7179c8b297326c0e2313950610be1f5c52
Gecko: e3daaa4c73dd
Version: 30.0a1
Firmware Version: v1.2-device.cfg
Keywords: qawanted
QA Contact: lmauritson
Can I get a video of the bug?
Keywords: qawanted
As requested:
http://youtu.be/I2PTwdGcECA
Keywords: qawanted
blocking-b2g: --- → 1.3?
I think what happens is we get an error when the user presses "home" and the activity is canceled, and we interpret errors like this. In the past, probably activities did not generate any errors when they were canceled.

Alive, can you please comment on this? Do we have different errors to distinguish between the user canceling the activity or having no application to handle this mime type?
Flags: needinfo?(alive)
When an activity is killed, gecko would do postError for the activity page.

We have a not-that-strict error for canceling here, please see:
http://mxr.mozilla.org/mozilla-central/source/dom/activities/src/ActivityWrapper.js#66

Try it out in the onerror callback.
Flags: needinfo?(alive)
Ok then we should be able to filter the "not any app" error quite easily with a safe patch.
blocking-b2g: 1.3? → 1.3+
Hey Steve, I don't know if you have the bandwidth to work on this 1.3+ issue?
Flags: needinfo?(schung)
Hi Julien,

Similar issue was fixed in earlier versions.
When ever Home button is pressed -> We are receiving ActivityCanceled event from Gecko.
We already hadled this case in https://bugzilla.mozilla.org/show_bug.cgi?id=896958

The changes are already available in master https://github.com/mozilla-b2g/gaia/blob/master/apps/sms/js/attachment.js#L244.I have tested this scenario with master code. I am not able to reproduce this issue.

Please check once as i feel both scenarios are same.

Thanks!
Right, and this piece of code is still there, so either the error name changed, either we don't get it anymore.
May be you are correct julien but i am not able to reproduce this issue on master code to check whether the error name is different.
Steve is away today so I'll investigate this.
Flags: needinfo?(schung) → needinfo?(felash)
I definitely see the issue in v1.3.

I'm trying it once again on master.
Assignee: nobody → felash
On master I don't see this.

So in SMS the piece of code hasn't changed since ages, so I'm leaning towards a regression in activity handling.

Can I please have a regression window in the 1.3 timeframe please?

In the mean time I'll debug to see whether we get the right error name.
Flags: needinfo?(felash)
Fortunately I don't even need to debug because we're putting the error name in the console ;)

So actually on 1.3 we get USER_ABORT instead of ActivityCanceled.

While I could definitely do a hacky patch in SMS to use this instead, the right fix is probably elsewhere as this can affect other apps as well.

This is more a SystemFE issue, trying to find a new owner right now.
Assignee: felash → nobody
Component: Gaia::SMS → Gaia::System
Looking.
Assignee: nobody → lissyx+mozillians
Enabled dump() in ActivitiesService.jsm and ActivityWrapper.js,

STR:
 0. In Messages app, compose a new message
 1. Tap the attachments button
 2. Select gallery
 3. Tap back

 - on v1.3, ActivityWrapper is doing some Wrapping and then nothing
 - on v1.4, ActivityWrapper is doing some Wrapping and then nothing

STR:
 0. In Messages app, compose a new message
 1. Tap the attachments button
 2. Select gallery
 3. Tap home

 - on v1.3, ActivityWrapper is doing some Wrapping and then nothing
 - on v1.4, ActivityWrapper is doing some Wrapping and then sends a ActivityCanceled message
Some more debug, on Inari/v1.4 with the same STRs:

That is when tapping back in the gallery picker:
I/Gecko   ( 1639): -- ActivitiesService.jsm 1393590308541 Looking for view
I/Gecko   ( 1639): -- ActivitiesService.jsm 1393590309639 Request successful. Record count: 6
I/Gecko   ( 1639): -- ActivitiesService.jsm 1393591013376 StartActivity: {"id":"{4c51708a-b69a-4b2e-b17c-79e10e3d95ec}","options":{"name":"pick","data":{"type":["image/*","audio/*","video/*"],"maxFileSizeBytes":307200}},"manifestURL":"app://sms.gaiamobile.org/manifest.webapp","pageURL":"app://sms.gaiamobile.org/index.html#new"}
I/Gecko   ( 1639): -- ActivitiesService.jsm 1393591013376 Looking for pick
I/Gecko   ( 1639): -- ActivitiesService.jsm 1393591013391 Request successful. Record count: 8
I/Gecko   ( 1639): -- ActivitiesService.jsm 1393591013395 {"name":"pick","options":[{"manifest":"app://video.gaiamobile.org/manifest.webapp","icon":"app://video.gaiamobile.org/style/icons/Video_120.png","description":{"filters":{"type":["video/*","video/webm","video/mp4","video/3gpp","video/ogg"]},"disposition":"inline","returnValue":true,"href":"app://video.gaiamobile.org/index.html#pick"}},{"manifest":"app://music.gaiamobile.org/manifest.webapp","icon":"app://music.gaiamobile.org/style/icons/Music_120.png","description":{"filters":{"type":["audio/*","audio/mpeg","audio/ogg","audio/mp4"]},"disposition":"inline","returnValue":true,"href":"app://music.gaiamobile.org/index.html#pick"}},{"manifest":"app://gallery.gaiamobile.org/manifest.webapp","icon":"app://gallery.gaiamobile.org/style/icons/Gallery_120.png","description":{"filters":{"type":["image/*","image/jpeg","image/png"]},"disposition":"inline","returnValue":true,"href":"app://gallery.gaiamobile.org/index.html#pick"}},{"manifest":"app://camera.gaiamobile.org/manifest.webap
I/GeckoDump( 1639): XXX FIXME : Got a mozContentEvent: activity-choice
I/Gecko   ( 1639): -- ActivitiesService.jsm 1393591014517 Activity choice: 2
I/Gecko   ( 1639): -- ActivitiesService.jsm 1393591014518 Sending system message...
I/Gecko   ( 1840): -- ActivityWrapper.js 1393591015288 : ActivityWrapper
I/Gecko   ( 1840): -- ActivityWrapper.js 1393591015289 : Wrapping {"id":"{4c51708a-b69a-4b2e-b17c-79e10e3d95ec}","payload":{"name":"pick","data":{"type":["image/*","audio/*","video/*"],"maxFileSizeBytes":307200}},"target":{"filters":{"type":["image/*","image/jpeg","image/png"]},"disposition":"inline","returnValue":true,"href":"app://gallery.gaiamobile.org/index.html#pick"}}
I/Gecko   ( 1840): -- ActivityWrapper.js 1393591016933 : Observe: aSubject=null
I/Gecko   ( 1840): -- ActivityWrapper.js 1393591016935 : Observe: aTopic="activity-error"
I/Gecko   ( 1840): -- ActivityWrapper.js 1393591016937 : Observe: aData="{4c51708a-b69a-4b2e-b17c-79e10e3d95ec}"
I/Gecko   ( 1840): -- ActivityWrapper.js 1393591017465 : Observe: aSubject={}
E/GeckoConsole( 1639): Content JS WARN at app://system.gaiamobile.org/js/activity_window.js:233 in onClose: unknown window type of activity caller.
I/Gecko   ( 1840): -- ActivityWrapper.js 1393591017468 : Observe: aTopic="inner-window-destroyed"
I/Gecko   ( 1840): -- ActivityWrapper.js 1393591017474 : Observe: aData=null
I/Gecko   ( 1840): -- ActivityWrapper.js 1393591017475 : Closing activity window 4
I/Gecko   ( 1639): -- ActivitiesService.jsm 1393591017492 !! caller is null for msg.id={4c51708a-b69a-4b2e-b17c-79e10e3d95ec}


And now, tapping Home:
I/Gecko   ( 1639): -- ActivitiesService.jsm 1393591022293 StartActivity: {"id":"{c7092803-4c26-475e-98b7-c00e9a4ff619}","options":{"name":"pick","data":{"type":["image/*","audio/*","video/*"],"maxFileSizeBytes":307200}},"manifestURL":"app://sms.gaiamobile.org/manifest.webapp","pageURL":"app://sms.gaiamobile.org/index.html#new"}
I/Gecko   ( 1639): -- ActivitiesService.jsm 1393591022293 Looking for pick
I/Gecko   ( 1639): -- ActivitiesService.jsm 1393591022305 Request successful. Record count: 8
I/Gecko   ( 1639): -- ActivitiesService.jsm 1393591022310 {"name":"pick","options":[{"manifest":"app://video.gaiamobile.org/manifest.webapp","icon":"app://video.gaiamobile.org/style/icons/Video_120.png","description":{"filters":{"type":["video/*","video/webm","video/mp4","video/3gpp","video/ogg"]},"disposition":"inline","returnValue":true,"href":"app://video.gaiamobile.org/index.html#pick"}},{"manifest":"app://music.gaiamobile.org/manifest.webapp","icon":"app://music.gaiamobile.org/style/icons/Music_120.png","description":{"filters":{"type":["audio/*","audio/mpeg","audio/ogg","audio/mp4"]},"disposition":"inline","returnValue":true,"href":"app://music.gaiamobile.org/index.html#pick"}},{"manifest":"app://gallery.gaiamobile.org/manifest.webapp","icon":"app://gallery.gaiamobile.org/style/icons/Gallery_120.png","description":{"filters":{"type":["image/*","image/jpeg","image/png"]},"disposition":"inline","returnValue":true,"href":"app://gallery.gaiamobile.org/index.html#pick"}},{"manifest":"app://camera.gaiamobile.org/manifest.webap
I/GeckoDump( 1639): XXX FIXME : Got a mozContentEvent: activity-choice
I/Gecko   ( 1639): -- ActivitiesService.jsm 1393591023766 Activity choice: 2
I/Gecko   ( 1639): -- ActivitiesService.jsm 1393591023767 Sending system message...
I/Gecko   ( 1903): -- ActivityWrapper.js 1393591024529 : ActivityWrapper
I/Gecko   ( 1903): -- ActivityWrapper.js 1393591024530 : Wrapping {"id":"{c7092803-4c26-475e-98b7-c00e9a4ff619}","payload":{"name":"pick","data":{"type":["image/*","audio/*","video/*"],"maxFileSizeBytes":307200}},"target":{"filters":{"type":["image/*","image/jpeg","image/png"]},"disposition":"inline","returnValue":true,"href":"app://gallery.gaiamobile.org/index.html#pick"}}
E/GeckoConsole( 1639): Content JS WARN at app://system.gaiamobile.org/js/activity_window.js:233 in onClose: unknown window type of activity caller.
I/Gecko   ( 1903): -- ActivityWrapper.js 1393591026947 : Observe: aSubject=null
I/Gecko   ( 1903): -- ActivityWrapper.js 1393591026947 : Observe: aTopic="activity-error"
I/Gecko   ( 1903): -- ActivityWrapper.js 1393591026948 : Observe: aData="{c7092803-4c26-475e-98b7-c00e9a4ff619}"
I/Gecko   ( 1903): -- ActivityWrapper.js 1393591027089 : Observe: aSubject={}
I/Gecko   ( 1903): -- ActivityWrapper.js 1393591027089 : Observe: aTopic="inner-window-destroyed"
I/Gecko   ( 1903): -- ActivityWrapper.js 1393591027091 : Observe: aData=null
I/Gecko   ( 1903): -- ActivityWrapper.js 1393591027092 : Closing activity window 4
I/Gecko   ( 1639): -- ActivitiesService.jsm 1393591027136 !! caller is null for msg.id={c7092803-4c26-475e-98b7-c00e9a4ff619}
Buri, 1.3, tapping back:
I/Gecko   ( 1330): -- ActivitiesService.jsm 1393591380826 StartActivity: {"id":"{58cf313c-8c29-4ba2-b2fb-d41c0bc918f9}","options":{"name":"pick","data":{"type":["image/*","audio/*","video/*"],"maxFileSizeBytes":307200}},"manifestURL":"app://sms.gaiamobile.org/manifest.webapp","pageURL":"app://sms.gaiamobile.org/index.html#new"}
I/Gecko   ( 1330): -- ActivitiesService.jsm 1393591380826 Looking for pick
I/Gecko   ( 1330): -- ActivitiesService.jsm 1393591380841 Request successful. Record count: 8
I/Gecko   ( 1330): -- ActivitiesService.jsm 1393591380849 {"name":"pick","options":[{"manifest":"app://video.gaiamobile.org/manifest.webapp","icon":"app://video.gaiamobile.org/style/icons/Video_120.png","description":{"href":"app://video.gaiamobile.org/index.html#pick","returnValue":true,"disposition":"inline","filters":{"type":["video/*","video/webm","video/mp4","video/3gpp","video/ogg"]}}},{"manifest":"app://music.gaiamobile.org/manifest.webapp","icon":"app://music.gaiamobile.org/style/icons/Music_120.png","description":{"href":"app://music.gaiamobile.org/index.html#pick","returnValue":true,"disposition":"inline","filters":{"type":["audio/*","audio/mpeg","audio/ogg","audio/mp4"]}}},{"manifest":"app://gallery.gaiamobile.org/manifest.webapp","icon":"app://gallery.gaiamobile.org/style/icons/Gallery_120.png","description":{"href":"app://gallery.gaiamobile.org/index.html#pick","returnValue":true,"disposition":"inline","filters":{"type":["image/*","image/jpeg","image/png"]}}},{"manifest":"app://camera.gaiamobile.org/manifest.webap
I/GeckoDump( 1330): XXX FIXME : Got a mozContentEvent: activity-choice
I/Gecko   ( 1330): -- ActivitiesService.jsm 1393591382113 Activity choice: 2
I/Gecko   ( 1330): -- ActivitiesService.jsm 1393591382114 Sending system message...
I/Gecko   ( 1509): -- ActivityWrapper.js 1393591382732 : ActivityWrapper
I/Gecko   ( 1509): -- ActivityWrapper.js 1393591382734 : Wrapping {"id":"{58cf313c-8c29-4ba2-b2fb-d41c0bc918f9}","payload":{"name":"pick","data":{"type":["image/*","audio/*","video/*"],"maxFileSizeBytes":307200}},"target":{"href":"app://gallery.gaiamobile.org/index.html#pick","returnValue":true,"disposition":"inline","filters":{"type":["image/*","image/jpeg","image/png"]}}}
I/Gecko   ( 1509): -- ActivityWrapper.js 1393591382736 : Sent Activity:Ready
I/Gecko   ( 1509): -- ActivityWrapper.js 1393591382746 : Handler for aMessage.id={58cf313c-8c29-4ba2-b2fb-d41c0bc918f9}
I/Gecko   ( 1509): -- ActivityWrapper.js 1393591382747 : Wrapping options={}
I/Gecko   ( 1509): -- ActivityWrapper.js 1393591382750 : Wrapped options.
I/Gecko   ( 1509): -- ActivityWrapper.js 1393591382750 : Defined innerWindowID.
I/Gecko   ( 1509): -- ActivityWrapper.js 1393591382751 : Added observers.
I/Gecko   ( 1509): -- ActivityWrapper.js 1393591384633 : Observe: aSubject=null
I/Gecko   ( 1509): -- ActivityWrapper.js 1393591384634 : Observe: aTopic="activity-error"
I/Gecko   ( 1509): -- ActivityWrapper.js 1393591384634 : Observe: aData="{58cf313c-8c29-4ba2-b2fb-d41c0bc918f9}"


Buri, 1.3, tapping home:
I/Gecko   ( 1330): -- ActivitiesService.jsm 1393591409766 StartActivity: {"id":"{084eddfd-648c-436d-ac96-614ccb32e16c}","options":{"name":"pick","data":{"type":["image/*","audio/*","video/*"],"maxFileSizeBytes":307200}},"manifestURL":"app://sms.gaiamobile.org/manifest.webapp","pageURL":"app://sms.gaiamobile.org/index.html#new"}
I/Gecko   ( 1330): -- ActivitiesService.jsm 1393591409766 Looking for pick
I/Gecko   ( 1330): -- ActivitiesService.jsm 1393591409777 Request successful. Record count: 8
I/Gecko   ( 1330): -- ActivitiesService.jsm 1393591409784 {"name":"pick","options":[{"manifest":"app://video.gaiamobile.org/manifest.webapp","icon":"app://video.gaiamobile.org/style/icons/Video_120.png","description":{"href":"app://video.gaiamobile.org/index.html#pick","returnValue":true,"disposition":"inline","filters":{"type":["video/*","video/webm","video/mp4","video/3gpp","video/ogg"]}}},{"manifest":"app://music.gaiamobile.org/manifest.webapp","icon":"app://music.gaiamobile.org/style/icons/Music_120.png","description":{"href":"app://music.gaiamobile.org/index.html#pick","returnValue":true,"disposition":"inline","filters":{"type":["audio/*","audio/mpeg","audio/ogg","audio/mp4"]}}},{"manifest":"app://gallery.gaiamobile.org/manifest.webapp","icon":"app://gallery.gaiamobile.org/style/icons/Gallery_120.png","description":{"href":"app://gallery.gaiamobile.org/index.html#pick","returnValue":true,"disposition":"inline","filters":{"type":["image/*","image/jpeg","image/png"]}}},{"manifest":"app://camera.gaiamobile.org/manifest.webap
I/GeckoDump( 1330): XXX FIXME : Got a mozContentEvent: activity-choice
I/Gecko   ( 1330): -- ActivitiesService.jsm 1393591410774 Activity choice: 2
I/Gecko   ( 1330): -- ActivitiesService.jsm 1393591410774 Sending system message...
I/Gecko   ( 1553): -- ActivityWrapper.js 1393591411434 : ActivityWrapper
I/Gecko   ( 1553): -- ActivityWrapper.js 1393591411435 : Wrapping {"id":"{084eddfd-648c-436d-ac96-614ccb32e16c}","payload":{"name":"pick","data":{"type":["image/*","audio/*","video/*"],"maxFileSizeBytes":307200}},"target":{"href":"app://gallery.gaiamobile.org/index.html#pick","returnValue":true,"disposition":"inline","filters":{"type":["image/*","image/jpeg","image/png"]}}}
I/Gecko   ( 1553): -- ActivityWrapper.js 1393591411437 : Sent Activity:Ready
I/Gecko   ( 1553): -- ActivityWrapper.js 1393591411448 : Handler for aMessage.id={084eddfd-648c-436d-ac96-614ccb32e16c}
I/Gecko   ( 1553): -- ActivityWrapper.js 1393591411449 : Wrapping options={}
I/Gecko   ( 1553): -- ActivityWrapper.js 1393591411451 : Wrapped options.
I/Gecko   ( 1553): -- ActivityWrapper.js 1393591411452 : Defined innerWindowID.
I/Gecko   ( 1553): -- ActivityWrapper.js 1393591411453 : Added observers.
I/Gecko   ( 1553): -- ActivityWrapper.js 1393591415576 : Observe: aSubject=null
I/Gecko   ( 1553): -- ActivityWrapper.js 1393591415578 : Observe: aTopic="activity-error"
I/Gecko   ( 1553): -- ActivityWrapper.js 1393591415595 : Observe: aData="{084eddfd-648c-436d-ac96-614ccb32e16c}"
We are not getting any "inner-window-destroyed" notification.
I have a better idea now: I can change the SMS app to display the error only when I have the "NO_PROVIDER" error. Will make a simple patch and it actually makes more sense than the current code.
Assignee: lissyx+mozillians → felash
Component: Gaia::System → Gaia::SMS
Attached file github pr
I tried on both v1.3 and master and this works as expected.

To test that we still have the dialog showing when no activity handler exists, I replaced the type in [1] to 'gloubiboulga'.

[1] https://github.com/julienw/gaia/blob/976454-no-provider-error/apps/sms/js/attachment.js#L235
Attachment #8383643 - Flags: review?(borja.bugzilla)
Some explanations for our friends release drivers.

We have here 2 patches: one in the Messages app in Gaia, one in Gecko. Both separately fix this bug.

The Gaia patch is very safe but fixes the issue in the Messages app only. However, while fixing this bug, we saw that this is indeed an issue in Gecko.

That's why Andrea did this Gecko patch.

Therefore the Gecko patch is more important because it impacts every apps, either from Gaia or from 3rd party. If we don't uplift it, we'll need to document that we can have different errors when a user cancels an activity. But it's certainly more risky.

Then I have several questions for Andrea:
* do you know why this works correctly on central?
* the second occurence of USER_ABORT comes from Bug 958642, but the first occurence is really old (bug 715814), therefore how safe is it to change it? And how comes we correctly got "ActivityCanceled" in the past?
Also I'll want to land the Gaia patch on master anyway, as it makes sense by itself.
Comment on attachment 8383643 [details] [review]
github pr

Hey Steve, do you have some time to review this patch for a 1.3+ bug?
Attachment #8383643 - Flags: review?(borja.bugzilla) → review?(schung)
Target Milestone: --- → 1.4 S3 (14mar)
Comment on attachment 8383643 [details] [review]
github pr

Looks good to me that only displaying the prompt when NO_PROVIDER error, thanks!
Attachment #8383643 - Flags: review?(schung) → review+
Gaia master: fd883f4f086f95f2a9d2f94c7299fa7780aee19d

Now we need to decide what we should do on v1.3.

Andrea, NI for comment 24.
Flags: needinfo?(amarchesini)
> * do you know why this works correctly on central?

I didn't test by my self but I think because the window is able to receive inner-window-destroyed.
In 1.3 it doesn't and the app is immediately killed.

> * the second occurence of USER_ABORT comes from Bug 958642, but the first
> occurence is really old (bug 715814), therefore how safe is it to change it?
> And how comes we correctly got "ActivityCanceled" in the past?

I don't see any difference between ActivityCanceled and USER_ABORT. In both cases the activity is aborted. We should merge this 2 use-cases. I want to NI fabrice about this.

BTW The patch is green on try.
Flags: needinfo?(amarchesini) → needinfo?(fabrice)
Attachment #8383706 - Flags: review+
Yep, I'm fine with that.
Flags: needinfo?(fabrice)
Fabrice, do you approve for 1.3 as well ? :)
Flags: needinfo?(fabrice)
(In reply to Julien Wajsberg [:julienw] from comment #31)
> Fabrice, do you approve for 1.3 as well ? :)

yes, you know the process ;)
Flags: needinfo?(fabrice)
Baku, is it ready to land?
Flags: needinfo?(amarchesini)
Assignee: felash → amarchesini
Blocks: 958642
Component: Gaia::SMS → DOM
Product: Firefox OS → Core
Andrea, don't forget you'll need to ask approval to land on the b2g28_v1_3 branch from Fabrice!
Comment on attachment 8383706 [details] [diff] [review]
activity.patch

Is this the approval that is needed for this patch? Fabrice?

[Approval Request Comment]
User impact if declined: the user will not be able to re-open a mms attachment.
Risk to taking this patch (and alternatives if risky): It doesn't seem some code is using USER_ABORT error message, so low risk.
Attachment #8383706 - Flags: approval-mozilla-b2g28?
Flags: needinfo?(fabrice)
Attachment #8383706 - Flags: approval-mozilla-b2g28? → approval-mozilla-b2g28+
Flags: needinfo?(fabrice)
https://hg.mozilla.org/mozilla-central/rev/3b298054783e
Status: NEW → RESOLVED
Closed: 10 years ago
Resolution: --- → FIXED
Flags: in-moztrap?
Flags: in-moztrap? → in-moztrap+
Component: DOM → DOM: Core & HTML
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: