Closed
Bug 956602
Opened 12 years ago
Closed 12 years ago
CustomizeMode doesn't handle well dragging special widgets into the palette
Categories
(Firefox :: Toolbars and Customization, defect)
Firefox
Toolbars and Customization
Tracking
()
VERIFIED
FIXED
Firefox 29
People
(Reporter: quicksaver, Assigned: Gijs)
References
(Blocks 1 open bug)
Details
(Whiteboard: [Australis:P3])
Attachments
(1 file)
|
3.87 KB,
patch
|
Unfocused
:
review+
|
Details | Diff | Splinter Review |
STR:
1) Open Nightly in a new profile
2) Open the browser console
3) Type in "CustomizableUI.addWidgetToArea('separator', 'nav-bar')".
3.1) Separator is added to the nav-bar as expected
4) Enter customization mode
5) Drag the separator out of the toolbar into the palette
The following error message will appear in the console:
> "[CustomizeMode]" TypeError: Argument 1 of Node.insertBefore is not an object.
> Stack trace:
> CustomizeMode.prototype._applyDrop@resource://app/modules/CustomizeMode.jsm:1128
> CustomizeMode.prototype._onDragDrop@resource://app/modules/CustomizeMode.jsm:1091
> CustomizeMode.prototype.handleEvent@resource://app/modules/CustomizeMode.jsm:880
This doesn't seem to affect the placements of the nav-bar, as the separator is removed from it as soon as it's dragged out. And although this is the expected behavior (no special widgets in the palette), I suspect this may be happening by accident because it is throwing when it tries to append.
Maybe a special check for "If we're dragging a special widget to the palette, don't try to append" would be simple enough.
| Reporter | ||
Comment 1•12 years ago
|
||
Quick link to the method in question (if I'm not mistaken): http://mxr.mozilla.org/mozilla-central/source/browser/components/customizableui/src/CustomizeMode.jsm#1078
Updated•12 years ago
|
Whiteboard: [Australis:P2]
| Assignee | ||
Updated•12 years ago
|
Assignee: nobody → gijskruitbosch+bugs
Status: NEW → ASSIGNED
| Assignee | ||
Comment 2•12 years ago
|
||
By default there ought not to be any separators anyway, and this error isn't fatal, so I'm downgrading this to a P3. Test + patch hopefully soon.
Whiteboard: [Australis:P2] → [Australis:P3]
| Assignee | ||
Comment 3•12 years ago
|
||
This works. I wonder if we should ensure these items can't go intot go into the menupanel...
Attachment #8357108 -
Flags: review?(bmcbride)
| Reporter | ||
Comment 4•12 years ago
|
||
(In reply to :Gijs Kruitbosch from comment #3)
> I wonder if we should ensure these items can't go intot go into
> the menupanel...
I don't know if the plan is to never have these items in the menu panel or not, but for what's worth, I got them to work (and display nicely I think) in there and in the palette: https://addons.mozilla.org/en-us/firefox/addon/the-puzzle-piece/versions/?page=1#version-1.2b1
| Reporter | ||
Comment 5•12 years ago
|
||
What I meant with that was mostly, at least not in a way that can't be overridden, please. :)
Comment 6•12 years ago
|
||
Comment on attachment 8357108 [details] [diff] [review]
special widgets are removed when going to the palette; cope in Australis drop code,
Review of attachment 8357108 [details] [diff] [review]:
-----------------------------------------------------------------
r+ given the following fix
::: browser/components/customizableui/src/CustomizeMode.jsm
@@ +1106,5 @@
> }
>
> CustomizableUI.removeWidgetFromArea(aDraggedItemId);
> + // Special widgets are removed outright, we can return here:
> + if (!draggedItem.parentNode) {
This is making an assumption - it's more correct to use CustomizableUI.isSpecialWidget() here. It *should* be the same, but it could also mask another error - if that does ever happen, we're better of knowing about it.
Attachment #8357108 -
Flags: review?(bmcbride) → review+
| Assignee | ||
Comment 7•12 years ago
|
||
(In reply to Blair McBride [:Unfocused] from comment #6)
> Comment on attachment 8357108 [details] [diff] [review]
> special widgets are removed when going to the palette; cope in Australis
> drop code,
>
> Review of attachment 8357108 [details] [diff] [review]:
> -----------------------------------------------------------------
>
> r+ given the following fix
>
> ::: browser/components/customizableui/src/CustomizeMode.jsm
> @@ +1106,5 @@
> > }
> >
> > CustomizableUI.removeWidgetFromArea(aDraggedItemId);
> > + // Special widgets are removed outright, we can return here:
> > + if (!draggedItem.parentNode) {
>
> This is making an assumption - it's more correct to use
> CustomizableUI.isSpecialWidget() here. It *should* be the same, but it could
> also mask another error - if that does ever happen, we're better of knowing
> about it.
Excellent point, landed with that change:
remote: https://hg.mozilla.org/integration/fx-team/rev/8e0ec2d5fa85
Whiteboard: [Australis:P3] → [Australis:P3][fixed-in-fx-team]
Status: ASSIGNED → RESOLVED
Closed: 12 years ago
Resolution: --- → FIXED
Whiteboard: [Australis:P3][fixed-in-fx-team] → [Australis:P3]
Target Milestone: --- → Firefox 29
Updated•12 years ago
|
Updated•12 years ago
|
QA Contact: cornel.ionce
Comment 9•12 years ago
|
||
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:29.0) Gecko/20100101 Firefox/29.0
Mozilla/5.0 (X11; Linux i686; rv:29.0) Gecko/20100101 Firefox/29.0
Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:29.0) Gecko/20100101 Firefox/29.0
The mentioned error message is no longer displayed in the Error Console using Firefox 29 beta 6, build ID: 20140407135746.
Marking issue verified.
Status: RESOLVED → VERIFIED
You need to log in
before you can comment on or make changes to this bug.
Description
•