diff --git a/web/gui/src/main/webapp/app/fw/widget/toolbar.css b/web/gui/src/main/webapp/app/fw/widget/toolbar.css
index 286296583d..36a5971b5f 100644
--- a/web/gui/src/main/webapp/app/fw/widget/toolbar.css
+++ b/web/gui/src/main/webapp/app/fw/widget/toolbar.css
@@ -18,21 +18,37 @@
ONOS GUI -- Toolbar Service -- CSS file
*/
-.light .tbarArrow svg.embeddedIcon .icon .glyph {
+.light .tbar-arrow svg.embeddedIcon .icon .glyph {
fill: #838383;
}
-.dark .tbarArrow svg.embeddedIcon .icon .glyph {
+.dark .tbar-arrow svg.embeddedIcon .icon .glyph {
fill: #B2B2B2;
}
-.tbarArrow svg.embeddedIcon .icon rect {
+div.tbar-arrow {
+ position: absolute;
+ top: 53%;
+ left: 96%;
+ margin-right: -4%;
+ transform: translate(-50%, -50%);
+ cursor: pointer;
+}
+.safari div.tbar-arrow {
+ top: 46%;
+}
+.firefox div.tbar-arrow {
+ left: 97%;
+ margin-right: -3%;
+}
+
+.tbar-arrow svg.embeddedIcon .icon rect {
stroke: none;
}
-.light .tbarArrow svg.embeddedIcon .icon rect {
+.light .tbar-arrow svg.embeddedIcon .icon rect {
fill: none;
}
-.dark .tbarArrow svg.embeddedIcon .icon rect {
+.dark .tbar-arrow svg.embeddedIcon .icon rect {
fill: none;
}
diff --git a/web/gui/src/main/webapp/app/fw/widget/toolbar.js b/web/gui/src/main/webapp/app/fw/widget/toolbar.js
index df09a2201d..00086dc8b5 100644
--- a/web/gui/src/main/webapp/app/fw/widget/toolbar.js
+++ b/web/gui/src/main/webapp/app/fw/widget/toolbar.js
@@ -58,15 +58,7 @@
function createArrow(panel) {
var arrowDiv = panel.append('div')
- .classed('tbarArrow', true)
- .style({
- 'position': 'absolute',
- 'top': '53%',
- 'left': '96%',
- 'margin-right': '-4%',
- 'transform': 'translate(-50%, -50%)',
- 'cursor': 'pointer'
- });
+ .classed('tbar-arrow', true);
is.loadIcon(arrowDiv, 'triangleUp', arrowSize, true);
return arrowDiv;
}
diff --git a/web/gui/src/main/webapp/app/view/topo/topo.css b/web/gui/src/main/webapp/app/view/topo/topo.css
index 24bee244b9..d1d4b4c786 100644
--- a/web/gui/src/main/webapp/app/view/topo/topo.css
+++ b/web/gui/src/main/webapp/app/view/topo/topo.css
@@ -298,7 +298,12 @@ html[data-platform='iPad'] #topo-p-detail {
.dark #topo-p-instance .onosInst.mastership.affinity svg rect {
filter: url(#yellow-glow);
}
-
+.light.firefox #topo-p-instance .onosInst.mastership.affinity svg rect {
+ filter: url("data:image/svg+xml;utf8, #blue-glow");
+}
+.dark.firefox #topo-p-instance .onosInst.mastership.affinity svg rect {
+ filter: url("data:image/svg+xml;utf8, #yellow-glow");
+}
/* --- Topo Nodes --- */
@@ -320,6 +325,14 @@ html[data-platform='iPad'] #topo-p-detail {
fill: #f90;
filter: url(#yellow-glow);
}
+.light.firefox #ov-topo svg .node.selected rect,
+.light.firefox #ov-topo svg .node.selected circle {
+ filter: url("data:image/svg+xml;utf8, #blue-glow");
+}
+.dark.firefox #ov-topo svg .node.selected rect,
+.dark.firefox #ov-topo svg .node.selected circle {
+ filter: url("data:image/svg+xml;utf8, #yellow-glow");
+}
#ov-topo svg .node text {
pointer-events: none;
@@ -446,6 +459,15 @@ html[data-platform='iPad'] #topo-p-detail {
.dark #ov-topo svg .link.enhanced {
filter: url(#yellow-glow);
}
+.light.firefox #ov-topo svg .link.selected,
+.light.firefox #ov-topo svg .link.enhanced {
+ filter: url("data:image/svg+xml;utf8, #blue-glow");
+}
+.dark.firefox #ov-topo svg .link.selected,
+.dark.firefox #ov-topo svg .link.enhanced {
+ filter: url("data:image/svg+xml;utf8, #yellow-glow");
+
+}
#ov-topo svg .link.inactive {
opacity: .5;
diff --git a/web/gui/src/main/webapp/tests/app/fw/widget/toolbar-spec.js b/web/gui/src/main/webapp/tests/app/fw/widget/toolbar-spec.js
index 10a22b45d5..83fd042e05 100644
--- a/web/gui/src/main/webapp/tests/app/fw/widget/toolbar-spec.js
+++ b/web/gui/src/main/webapp/tests/app/fw/widget/toolbar-spec.js
@@ -78,7 +78,7 @@ describe('factory: fw/widget/toolbar.js', function () {
// NOTE: toolbar service prefixes id with 'toolbar-'
var tbar = d3.select('#toolbar-test'),
- arrow = tbar.select('.tbarArrow');
+ arrow = tbar.select('.tbar-arrow');
expect(arrow.size()).toBe(1);
expect(arrow.select('svg').size()).toBe(1);