From 28cc1aee316a9ab1f99dd77799fbc364245ee2ec Mon Sep 17 00:00:00 2001 From: Girish Sharma Date: Fri, 21 Jun 2013 19:24:35 +0300 Subject: [PATCH 01/16] Bug 873848 - Make the developer toolbar consistent with Toolbox design, r=jwalker, paul, jaws --- browser/base/content/browser.css | 3 +- browser/base/content/browser.xul | 5 +- browser/devtools/framework/toolbox.xul | 2 + browser/themes/linux/browser.css | 71 -------------- browser/themes/linux/devtools/close-dark.png | Bin 0 -> 607 bytes .../linux/devtools/commandline-icon.png | Bin 0 -> 375 bytes browser/themes/linux/devtools/commandline.css | 14 +-- browser/themes/linux/devtools/common.css | 22 ++++- .../themes/linux/devtools/computedview.css | 6 -- browser/themes/linux/devtools/debugger.css | 5 +- browser/themes/linux/devtools/goto-mdn.png | Bin 661 -> 0 bytes .../themes/linux/devtools/toggle-tools.png | Bin 0 -> 1787 bytes browser/themes/linux/devtools/toolbox.css | 10 +- .../linux/devtools/tools-icons-small.png | Bin 2976 -> 0 bytes browser/themes/linux/devtools/webconsole.css | 2 +- browser/themes/linux/devtools/widgets.css | 2 +- browser/themes/linux/jar.mn | 6 +- browser/themes/osx/browser.css | 79 +--------------- browser/themes/osx/devtools/close-dark.png | Bin 0 -> 607 bytes .../themes/osx/devtools/commandline-icon.png | Bin 0 -> 375 bytes browser/themes/osx/devtools/commandline.css | 14 +-- browser/themes/osx/devtools/common.css | 12 ++- browser/themes/osx/devtools/computedview.css | 6 -- browser/themes/osx/devtools/debugger.css | 5 +- browser/themes/osx/devtools/goto-mdn.png | Bin 661 -> 0 bytes browser/themes/osx/devtools/toggle-tools.png | Bin 0 -> 1787 bytes .../osx/devtools/toolbarbutton-close.png | Bin 1031 -> 0 bytes browser/themes/osx/devtools/toolbox.css | 10 +- .../themes/osx/devtools/tools-icons-small.png | Bin 2976 -> 0 bytes browser/themes/osx/devtools/webconsole.css | 2 +- browser/themes/osx/devtools/widgets.css | 3 +- browser/themes/osx/jar.mn | 7 +- .../shared/devtools/commandline.inc.css | 87 +++++++++++++----- browser/themes/windows/browser.css | 66 ------------- .../themes/windows/devtools/close-dark.png | Bin 0 -> 607 bytes .../windows/devtools/commandline-icon.png | Bin 0 -> 375 bytes .../themes/windows/devtools/commandline.css | 14 +-- browser/themes/windows/devtools/common.css | 13 +-- .../themes/windows/devtools/computedview.css | 6 -- browser/themes/windows/devtools/debugger.css | 5 +- browser/themes/windows/devtools/goto-mdn.png | Bin 661 -> 0 bytes .../themes/windows/devtools/toggle-tools.png | Bin 0 -> 1787 bytes .../windows/devtools/toolbarbutton-close.png | Bin 898 -> 0 bytes browser/themes/windows/devtools/toolbox.css | 10 +- .../windows/devtools/tools-icons-small.png | Bin 2976 -> 0 bytes .../themes/windows/devtools/webconsole.css | 2 +- browser/themes/windows/devtools/widgets.css | 3 +- browser/themes/windows/jar.mn | 14 ++- 48 files changed, 155 insertions(+), 351 deletions(-) create mode 100644 browser/themes/linux/devtools/close-dark.png create mode 100644 browser/themes/linux/devtools/commandline-icon.png delete mode 100644 browser/themes/linux/devtools/goto-mdn.png create mode 100644 browser/themes/linux/devtools/toggle-tools.png delete mode 100644 browser/themes/linux/devtools/tools-icons-small.png create mode 100644 browser/themes/osx/devtools/close-dark.png create mode 100644 browser/themes/osx/devtools/commandline-icon.png delete mode 100644 browser/themes/osx/devtools/goto-mdn.png create mode 100644 browser/themes/osx/devtools/toggle-tools.png delete mode 100644 browser/themes/osx/devtools/toolbarbutton-close.png delete mode 100644 browser/themes/osx/devtools/tools-icons-small.png create mode 100644 browser/themes/windows/devtools/close-dark.png create mode 100644 browser/themes/windows/devtools/commandline-icon.png delete mode 100644 browser/themes/windows/devtools/goto-mdn.png create mode 100644 browser/themes/windows/devtools/toggle-tools.png delete mode 100644 browser/themes/windows/devtools/toolbarbutton-close.png delete mode 100644 browser/themes/windows/devtools/tools-icons-small.png diff --git a/browser/base/content/browser.css b/browser/base/content/browser.css index b5d89fe7616..83d30ded9ef 100644 --- a/browser/base/content/browser.css +++ b/browser/base/content/browser.css @@ -598,8 +598,7 @@ html|*#gcli-output-frame, } .gclitoolbar-input-node, -.gclitoolbar-complete-node, -.gclitoolbar-prompt { +.gclitoolbar-complete-node { direction: ltr; } diff --git a/browser/base/content/browser.xul b/browser/base/content/browser.xul index 14b4242a8c1..e67b2838e74 100644 --- a/browser/base/content/browser.xul +++ b/browser/base/content/browser.xul @@ -1121,11 +1121,8 @@ tooltiptext="&devToolbarCloseButton.tooltiptext;"/> #endif - - - - + @@ -42,6 +43,7 @@ #endif diff --git a/browser/themes/linux/browser.css b/browser/themes/linux/browser.css index 9e469b40f03..6ef6748ba75 100644 --- a/browser/themes/linux/browser.css +++ b/browser/themes/linux/browser.css @@ -2062,12 +2062,6 @@ toolbar[mode="text"] toolbarbutton.chevron > .toolbarbutton-icon { font-size: 120%; } -/* Developer toolbar */ - -#developer-toolbar { - border-top: 1px solid hsla(210, 8%, 5%, .65); -} - %include ../shared/devtools/responsivedesign.inc.css %include ../shared/devtools/highlighter.inc.css %include ../shared/devtools/commandline.inc.css @@ -2076,81 +2070,16 @@ toolbar[mode="text"] toolbarbutton.chevron > .toolbarbutton-icon { padding: 0; } -.gclitoolbar-input-node { - border-color: hsl(210,11%,10%); - box-shadow: 0 1px 1px hsla(210,8%,5%,.3) inset, - 0 0 0 1px hsla(210,16%,76%,.1) inset, - 0 1px 0 hsla(210,16%,76%,.15); -} - .gclitoolbar-input-node > .textbox-input-box > html|*.textbox-input::-moz-selection { color: hsl(210,11%,16%); } -.gclitoolbar-prompt { - background-color: hsl(210,11%,16%); -} - /* Web Console */ .web-console-frame { border-bottom: 1px solid #aaa; } -.web-console-frame[animated] { - transition: height 100ms; -} - -/* Developer Toolbar */ - -#developer-toolbar-toolbox-button { - min-width: 18px; -} - -#developer-toolbar-toolbox-button > .toolbarbutton-text { - display: none; -} - -#developer-toolbar-toolbox-button > .toolbarbutton-icon { - -moz-margin-end: 0; -} - -.developer-toolbar-button { - -moz-appearance: none; - min-width: 78px; - min-height: 22px; - text-shadow: 0 -1px 0 hsla(210,8%,5%,.45); - border-radius: 3px; - color: inherit; - border: 1px solid transparent; - margin: 0 5px; - padding: 0 10px; - list-style-image: url("chrome://browser/skin/devtools/tools-icons-small.png"); -} - -.developer-toolbar-button[open=true], -.developer-toolbar-button:active:hover, -.developer-toolbar-button[checked=true] { - border-color: hsla(210,8%,5%,.6); - background: rgba(0,0,0,.6); - box-shadow: 0 1px 2px rgba(0,0,0,.5) inset, 0 1px 0 hsla(210,16%,76%,.15); -} - -.developer-toolbar-button:hover, -.developer-toolbar-button[checked=true], -.developer-toolbar-button[open=true] { - color: hsl(208,100%,60%) !important; - text-shadow: 0 0 6px hsl(208,100%,60%); -} - -.developer-toolbar-button[checked=true] { - background: rgba(0,0,0,.4); -} - -#developer-toolbar-toolbox-button { - -moz-image-region: rect(64px, 22px, 80px, 0); -} - /* Error counter */ #developer-toolbar-toolbox-button[error-count]:before { diff --git a/browser/themes/linux/devtools/close-dark.png b/browser/themes/linux/devtools/close-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..548374d0725b7aeccc7ee9b1f03a4c69a90af34b GIT binary patch literal 607 zcmV-l0-*hgP)(_`g8%^e{{R4h=l}px2mk>USO5SzmjD14Z`WEM zkN^My+V;Pyoj9EL~H`6uO4Kudf@D3U)DimYmt(bk4|Ds5w0`tfB?rEQG1HiWEdm3JVKOm**9 zmvO;4&cEq`bKI{kBauvXKLEGI0*0L9)V9&LEDUTLL(Vbe9E16GI^S-Kg*b3kSVZ5l zFm3KZgaVKC296oSF=KeFHy}cRX>$*K%feM*F%DcV(KSts@;nZlaT{$) zaYQLvgkbErczJ%s%k%4RfDjx}iZ-P<<8~Yv*cJ{A0|&Z}iCae)gt)2Ja8s=z3_?uY zIu3LlhlYWHZN-5Ti(#J-Ox!x&f)Ll$8oW#fUM7RZt6F)Nkf=iq{4~gyb*O<|LLyn!%I^SM t+FX%Ut^5~fDzl}{6@Mla>3{G1YXI-}02!^WHYgn$eX zpM$d5vGDOa02D{jQ1%jNRz>FjBVai{5I=^prGc0ejsFX0IRFjj1SoqW5Pyf}VHp1# z0n3?z_yd$}4a6^@i4ewrhPNO>vg{C4a~c|-5P(^h2F-T=(fF7NZL~5PXa@iU7yuB? VM>c5s8}I-C002ovPDHLkV1f .toolbarbutton-icon { @@ -195,6 +199,18 @@ margin: -4px; } +.devtools-closebutton > .toolbarbutton-text { + display: none; +} + +.devtools-closebutton:hover { + opacity: 0.8; +} + +.devtools-closebutton:hover:active { + opacity: 1; +} + /* Splitters */ .devtools-horizontal-splitter { diff --git a/browser/themes/linux/devtools/computedview.css b/browser/themes/linux/devtools/computedview.css index 236cb032366..8995658932d 100644 --- a/browser/themes/linux/devtools/computedview.css +++ b/browser/themes/linux/devtools/computedview.css @@ -82,12 +82,6 @@ body { } /* From skin */ -.helplink { - /* FIXME: remove this image - background-image: url("chrome://browser/skin/devtools/goto-mdn.png"); - */ -} - .expander { visibility: hidden; margin-left: -12px!important; diff --git a/browser/themes/linux/devtools/debugger.css b/browser/themes/linux/devtools/debugger.css index 60d32724ac8..2887d39132a 100644 --- a/browser/themes/linux/devtools/debugger.css +++ b/browser/themes/linux/devtools/debugger.css @@ -83,13 +83,12 @@ .dbg-expression { height: 20px; - -moz-padding-start: 8px; } .dbg-expression-arrow { - width: 10px; + width: 16px; height: auto; - background: url("chrome://browser/skin/devtools/commandline.png") 0px 4px no-repeat; + background: -moz-image-rect(url("chrome://browser/skin/devtools/commandline-icon.png"), 0, 32, 16, 16); } .dbg-expression-input { diff --git a/browser/themes/linux/devtools/goto-mdn.png b/browser/themes/linux/devtools/goto-mdn.png deleted file mode 100644 index dbe064863d65ac3123a7a60070114dd465852de2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 661 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 literal 0 HcmV?d00001 diff --git a/browser/themes/linux/devtools/toolbox.css b/browser/themes/linux/devtools/toolbox.css index f9b9aa39e9c..53aca2687a9 100644 --- a/browser/themes/linux/devtools/toolbox.css +++ b/browser/themes/linux/devtools/toolbox.css @@ -26,21 +26,15 @@ list-style-image: url("chrome://browser/skin/devtools/undock.png"); } -#toolbox-close { - list-style-image: url("chrome://browser/skin/devtools/close.png"); -} - #toolbox-dock-window, #toolbox-dock-bottom, -#toolbox-dock-side, -#toolbox-close { +#toolbox-dock-side { opacity: 0.6; } #toolbox-dock-window:hover, #toolbox-dock-bottom:hover, -#toolbox-dock-side:hover, -#toolbox-close:hover { +#toolbox-dock-side:hover { opacity: 1; } diff --git a/browser/themes/linux/devtools/tools-icons-small.png b/browser/themes/linux/devtools/tools-icons-small.png deleted file mode 100644 index 12e9c72acc819abb8dcc9985d94ea3b1b9bbda2a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2976 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 Wc;m0cEV&i{0000 .toolbarbutton-menu-dropmarker { font-size: 120%; } -/* Developer toolbar */ - -#developer-toolbar { - border-top: 1px solid hsla(210, 8%, 5%, .65); - padding-top: 4px; - padding-bottom: 4px; -} - -#developer-toolbar:-moz-locale-dir(ltr) { - padding-left: 2px; - padding-right: 16px; /* use -moz-padding-end when/if bug 631729 gets fixed */ -} - -#developer-toolbar:-moz-locale-dir(rtl) { - padding-left: 4px; - padding-right: 18px; /* use -moz-padding-end when/if bug 631729 gets fixed */ -} - %include ../shared/devtools/responsivedesign.inc.css %include ../shared/devtools/highlighter.inc.css %include ../shared/devtools/commandline.inc.css -.gclitoolbar-input-node, -.gclitoolbar-complete-node, -.gclitoolbar-prompt { - border-radius: @toolbarbuttonCornerRadius@; -} - -.gclitoolbar-input-node { - border-color: hsl(210,11%,10%); - box-shadow: 0 1px 1px hsla(210,8%,5%,.3) inset, - 0 0 0 1px hsla(210,16%,76%,.1) inset, - 0 1px 0 hsla(210,16%,76%,.15); -} - .gclitoolbar-input-node > .textbox-input-box > html|*.textbox-input::-moz-selection { color: hsl(210,11%,16%); } -.gclitoolbar-prompt { - background-color: hsl(210,11%,16%); -} - /* Web Console */ .web-console-frame { border-bottom: 1px solid #aaa; } -.web-console-frame[animated] { - transition: height 100ms; -} - /* Developer Toolbar */ -#developer-toolbar-toolbox-button { - min-width: 18px; -} - -#developer-toolbar-toolbox-button > .toolbarbutton-text { - display: none; -} - -.developer-toolbar-button { - -moz-appearance: none; - min-width: 78px; - min-height: 22px; - text-shadow: 0 -1px 0 hsla(210,8%,5%,.45); - border-radius: @toolbarbuttonCornerRadius@; - color: inherit; - border: 1px solid transparent; - margin: 0 5px; - padding: 0 10px; - list-style-image: url("chrome://browser/skin/devtools/tools-icons-small.png"); -} - -.developer-toolbar-button[open=true], -.developer-toolbar-button:active:hover, -.developer-toolbar-button[checked=true] { - border-color: hsla(210,8%,5%,.6); - background: rgba(0,0,0,.6); - box-shadow: 0 1px 2px rgba(0,0,0,.5) inset, 0 1px 0 hsla(210,16%,76%,.15); -} - -.developer-toolbar-button[checked=true] { - color: hsl(208,100%,60%) !important; - background: rgba(0,0,0,.4); - text-shadow: 0 0 6px hsl(208,100%,60%); -} - -#developer-toolbar-toolbox-button { - -moz-image-region: rect(64px, 16px, 80px, 0); +#developer-toolbar-closebutton { + margin-left: 8px; + margin-right: 8px; } /* Error counter */ diff --git a/browser/themes/osx/devtools/close-dark.png b/browser/themes/osx/devtools/close-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..548374d0725b7aeccc7ee9b1f03a4c69a90af34b GIT binary patch literal 607 zcmV-l0-*hgP)(_`g8%^e{{R4h=l}px2mk>USO5SzmjD14Z`WEM zkN^My+V;Pyoj9EL~H`6uO4Kudf@D3U)DimYmt(bk4|Ds5w0`tfB?rEQG1HiWEdm3JVKOm**9 zmvO;4&cEq`bKI{kBauvXKLEGI0*0L9)V9&LEDUTLL(Vbe9E16GI^S-Kg*b3kSVZ5l zFm3KZgaVKC296oSF=KeFHy}cRX>$*K%feM*F%DcV(KSts@;nZlaT{$) zaYQLvgkbErczJ%s%k%4RfDjx}iZ-P<<8~Yv*cJ{A0|&Z}iCae)gt)2Ja8s=z3_?uY zIu3LlhlYWHZN-5Ti(#J-Ox!x&f)Ll$8oW#fUM7RZt6F)Nkf=iq{4~gyb*O<|LLyn!%I^SM t+FX%Ut^5~fDzl}{6@Mla>3{G1YXI-}02!^WHYgn$eX zpM$d5vGDOa02D{jQ1%jNRz>FjBVai{5I=^prGc0ejsFX0IRFjj1SoqW5Pyf}VHp1# z0n3?z_yd$}4a6^@i4ewrhPNO>vg{C4a~c|-5P(^h2F-T=(fF7NZL~5PXa@iU7yuB? VM>c5s8}I-C002ovPDHLkV1f .toolbarbutton-text { @@ -200,11 +202,11 @@ } .devtools-closebutton:hover { - -moz-image-region: rect(0, 32px, 16px, 16px); + opacity: 0.8; } .devtools-closebutton:active { - -moz-image-region: rect(0, 48px, 16px, 32px); + opacity: 1; } /* Splitters */ diff --git a/browser/themes/osx/devtools/computedview.css b/browser/themes/osx/devtools/computedview.css index dcc8fefd632..4f6c05b6752 100644 --- a/browser/themes/osx/devtools/computedview.css +++ b/browser/themes/osx/devtools/computedview.css @@ -100,12 +100,6 @@ body { } /* From skin */ -.helplink { - /* FIXME: remove this image - background-image: url("chrome://browser/skin/devtools/goto-mdn.png"); - */ -} - .expander { visibility: hidden; margin-left: -12px!important; diff --git a/browser/themes/osx/devtools/debugger.css b/browser/themes/osx/devtools/debugger.css index e854291dae7..c0cac5a3c09 100644 --- a/browser/themes/osx/devtools/debugger.css +++ b/browser/themes/osx/devtools/debugger.css @@ -85,13 +85,12 @@ .dbg-expression { height: 20px; - -moz-padding-start: 8px; } .dbg-expression-arrow { - width: 10px; + width: 16px; height: auto; - background: url("chrome://browser/skin/devtools/commandline.png") 0px 4px no-repeat; + background: -moz-image-rect(url("chrome://browser/skin/devtools/commandline-icon.png"), 0, 32, 16, 16); } .dbg-expression-input { diff --git a/browser/themes/osx/devtools/goto-mdn.png b/browser/themes/osx/devtools/goto-mdn.png deleted file mode 100644 index dbe064863d65ac3123a7a60070114dd465852de2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 661 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 literal 0 HcmV?d00001 diff --git a/browser/themes/osx/devtools/toolbarbutton-close.png b/browser/themes/osx/devtools/toolbarbutton-close.png deleted file mode 100644 index 887daf052a6eda0b463bd75ca65dd998449cd330..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1031 zcmV+i1o-=jP)573nYalmCEyzi@?1xZPj;#UDO+IOlt|^L6KJcihm>(3oaaUPSC3 z7!Sh0B%lFPf}o*>TJ|XV$pjD%CaORUwWDevZ2rQ~UzJ#Yr$JvG#_N6|mQ znw*lM(;Mrc=?eul)Uszp0}zpPFqN^424sL>1}5W$U!r~sRDcJd3Y5uQ2M<}JhFbP0 z`om*%1}|z|;IlR|s(V^=tRJyN7$eui8a33iCzydnyY?M^ot!fBqHIEAu{lci6%Vb1CHZwq0d1{9Z; zRn+$X8T7l_B++8Ew5!u4BeM= zAisdQ1({hlsG&Bf0Td#H!0$)HCWePc?m7NOhA?msoKH!eb*HQMSL49nL9wMx^ftQ% zFXOL${cmT@nRk~4s10JkYcR!mj-M*ZZgfd$dk-DU+nt+tjPa?WlGP@2yoZ{Q2Ds$D&vD_g}t5svo> zcb;n#`2M@;OV7^+d7UJ?W5!czLVW_$qIG_(O##>DWMT2Dyc4Ih8S^HhV`BZ(sNKL? z<<2W_0&G+

e&p*Z+6WhvA)An?`H0qk%WUTxIp`T9q3R(-$qNYHIbRbLVjnlHOpJ zcoWQJW-YIvM)d|zT+iVd6PjR-vC6m5d2pxn^0oV^GiE07PsAZ4xQDWJORqJFEUleo_WsVwZ z*)!S?a~cp25>%i@Gs45%Bwz$)6^zs>ALhn1{{Yzl!O-c}?LPnj002ovPDHLkV1g8J B@QeTe diff --git a/browser/themes/osx/devtools/toolbox.css b/browser/themes/osx/devtools/toolbox.css index 4a69e4bc4a2..1e41bbb196d 100644 --- a/browser/themes/osx/devtools/toolbox.css +++ b/browser/themes/osx/devtools/toolbox.css @@ -25,21 +25,15 @@ list-style-image: url("chrome://browser/skin/devtools/undock.png"); } -#toolbox-close { - list-style-image: url("chrome://browser/skin/devtools/close.png"); -} - #toolbox-dock-window, #toolbox-dock-bottom, -#toolbox-dock-side, -#toolbox-close { +#toolbox-dock-side { opacity: 0.6; } #toolbox-dock-window:hover, #toolbox-dock-bottom:hover, -#toolbox-dock-side:hover, -#toolbox-close:hover { +#toolbox-dock-side:hover { opacity: 1; } diff --git a/browser/themes/osx/devtools/tools-icons-small.png b/browser/themes/osx/devtools/tools-icons-small.png deleted file mode 100644 index 12e9c72acc819abb8dcc9985d94ea3b1b9bbda2a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2976 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 Wc;m0cEV&i{0000 image { + margin: auto 10px; +} + +#developer-toolbar-toolbox-button { + list-style-image: url("chrome://browser/skin/devtools/toggle-tools.png"); + -moz-image-region: rect(0px, 16px, 16px, 0px); +} + +#developer-toolbar-toolbox-button:hover { + -moz-image-region: rect(0px, 32px, 16px, 16px); +} + +#developer-toolbar-toolbox-button:hover:active { + -moz-image-region: rect(0px, 48px, 16px, 32px); +} + +#developer-toolbar-toolbox-button[checked=true] { + -moz-image-region: rect(0px, 64px, 16px, 48px); +} + +/* GCLI */ + html|*#gcli-tooltip-frame, html|*#gcli-output-frame { padding: 0; @@ -16,32 +58,39 @@ html|*#gcli-output-frame { border-width: 0; background-color: transparent; -moz-appearance: none; - margin-bottom: -2px; } .gclitoolbar-input-node, -.gclitoolbar-complete-node, -.gclitoolbar-prompt { +.gclitoolbar-complete-node { margin: 0; - -moz-margin-end: 5px; -moz-box-align: center; padding-top: 0; padding-bottom: 0; - padding-right: 4px; - border: 1px solid transparent; - border-radius: 3px; + padding-right: 8px; text-shadow: none; + box-shadow: none; + border-width: 0; + background-color: transparent; } .gclitoolbar-input-node { - padding-left: 20px; - background-color: transparent; -moz-appearance: none; - border-color: hsl(210,24%,10%); color: hsl(210,30%,85%); - text-shadow: 0 -1px 0 hsla(210,8%,5%,.45); - box-shadow: inset 0 1px 0 hsla(211,68%,6%,.05), - 0 0 0 1px hsla(210,40%,83%,.1); + padding-left: 20px; + background-color: #242b33; + background-repeat: no-repeat; + background-position: 4px center; + box-shadow: 0 1px 1px hsla(206,37%,4%,.2) inset, + 1px 0 0 hsla(206,37%,4%,.2) inset, + -1px 0 0 hsla(206,37%,4%,.2) inset; + line-height: 32px; + outline-style: none; + background-image: -moz-image-rect(url("chrome://browser/skin/devtools/commandline-icon.png"), 0, 16, 16, 0); +} + +.gclitoolbar-input-node[focused="true"] { + background-image: -moz-image-rect(url("chrome://browser/skin/devtools/commandline-icon.png"), 0, 32, 16, 16); + background-color: #232e38; } .gclitoolbar-input-node > .textbox-input-box > html|*.textbox-input::-moz-selection { @@ -54,18 +103,10 @@ html|*#gcli-output-frame { padding-left: 21px; background-color: transparent; color: transparent; + z-index: 100; + pointer-events: none; } -.gclitoolbar-prompt { - padding-left: 4px; - padding-bottom: 2px; - font-size: 150%; - font-weight: bold; - color: hsl(210,30%,85%); - background-color: hsl(210,24%,16%); -} - -.gclitoolbar-prompt-label, .gcli-in-incomplete, .gcli-in-error, .gcli-in-ontab, diff --git a/browser/themes/windows/browser.css b/browser/themes/windows/browser.css index 76f71e26903..2a12568e5e5 100644 --- a/browser/themes/windows/browser.css +++ b/browser/themes/windows/browser.css @@ -2793,82 +2793,16 @@ toolbarbutton.bookmark-item[dragover="true"][open="true"] { font-size: 120%; } -/* Developer toolbar */ - -#developer-toolbar { - border-top: 1px solid hsla(211,68%,6%,.65) !important; -} - %include ../shared/devtools/responsivedesign.inc.css %include ../shared/devtools/highlighter.inc.css %include ../shared/devtools/commandline.inc.css -.gclitoolbar-input-node { - border-color: hsl(210,24%,10%); - box-shadow: inset 0 1px 0 hsla(211,68%,6%,.05), - 0 0 0 1px hsla(210,40%,83%,.1); -} - /* Web Console */ .web-console-frame { border-bottom: 1px solid #aaa; } -.web-console-frame[animated] { - transition: height 100ms; -} - -/* Developer Toolbar */ - -#developer-toolbar-toolbox-button { - min-width: 18px; -} - -#developer-toolbar-toolbox-button > .toolbarbutton-text { - display: none; -} - -#developer-toolbar-toolbox-button > .toolbarbutton-icon { - -moz-margin-end: 0; -} - -.developer-toolbar-button { - -moz-appearance: none; - min-width: 78px; - min-height: 22px; - text-shadow: 0 -1px 0 hsla(210,8%,5%,.45); - border-radius: 3px; - color: inherit; - border: 1px solid transparent; - margin: 0 5px; - padding: 0 10px; - list-style-image: url("chrome://browser/skin/devtools/tools-icons-small.png"); -} - -.developer-toolbar-button[open=true], -.developer-toolbar-button:active:hover, -.developer-toolbar-button[checked=true] { - border-color: hsla(210,8%,5%,.6); - background: rgba(0,0,0,.6); - box-shadow: 0 1px 2px rgba(0,0,0,.5) inset, 0 1px 0 hsla(210,16%,76%,.1); -} - -.developer-toolbar-button:hover, -.developer-toolbar-button[checked=true], -.developer-toolbar-button[open=true] { - color: hsl(208,100%,60%) !important; - text-shadow: 0 0 6px hsl(208,100%,60%); -} - -.developer-toolbar-button[checked=true] { - background: rgba(0,0,0,.4); -} - -#developer-toolbar-toolbox-button { - -moz-image-region: rect(64px, 16px, 80px, 0); -} - /* Error counter */ #developer-toolbar-toolbox-button[error-count]:before { diff --git a/browser/themes/windows/devtools/close-dark.png b/browser/themes/windows/devtools/close-dark.png new file mode 100644 index 0000000000000000000000000000000000000000..548374d0725b7aeccc7ee9b1f03a4c69a90af34b GIT binary patch literal 607 zcmV-l0-*hgP)(_`g8%^e{{R4h=l}px2mk>USO5SzmjD14Z`WEM zkN^My+V;Pyoj9EL~H`6uO4Kudf@D3U)DimYmt(bk4|Ds5w0`tfB?rEQG1HiWEdm3JVKOm**9 zmvO;4&cEq`bKI{kBauvXKLEGI0*0L9)V9&LEDUTLL(Vbe9E16GI^S-Kg*b3kSVZ5l zFm3KZgaVKC296oSF=KeFHy}cRX>$*K%feM*F%DcV(KSts@;nZlaT{$) zaYQLvgkbErczJ%s%k%4RfDjx}iZ-P<<8~Yv*cJ{A0|&Z}iCae)gt)2Ja8s=z3_?uY zIu3LlhlYWHZN-5Ti(#J-Ox!x&f)Ll$8oW#fUM7RZt6F)Nkf=iq{4~gyb*O<|LLyn!%I^SM t+FX%Ut^5~fDzl}{6@Mla>3{G1YXI-}02!^WHYgn$eX zpM$d5vGDOa02D{jQ1%jNRz>FjBVai{5I=^prGc0ejsFX0IRFjj1SoqW5Pyf}VHp1# z0n3?z_yd$}4a6^@i4ewrhPNO>vg{C4a~c|-5P(^h2F-T=(fF7NZL~5PXa@iU7yuB? VM>c5s8}I-C002ovPDHLkV1f .toolbarbutton-text { @@ -208,11 +209,11 @@ } .devtools-closebutton:hover { - -moz-image-region: rect(0, 32px, 16px, 16px); + opacity: 0.8; } .devtools-closebutton:hover:active { - -moz-image-region: rect(0, 48px, 16px, 32px); + opacity: 1; } /* Splitters */ diff --git a/browser/themes/windows/devtools/computedview.css b/browser/themes/windows/devtools/computedview.css index dcc8fefd632..4f6c05b6752 100644 --- a/browser/themes/windows/devtools/computedview.css +++ b/browser/themes/windows/devtools/computedview.css @@ -100,12 +100,6 @@ body { } /* From skin */ -.helplink { - /* FIXME: remove this image - background-image: url("chrome://browser/skin/devtools/goto-mdn.png"); - */ -} - .expander { visibility: hidden; margin-left: -12px!important; diff --git a/browser/themes/windows/devtools/debugger.css b/browser/themes/windows/devtools/debugger.css index 8db7aaa84e1..9eeaf2ebad6 100644 --- a/browser/themes/windows/devtools/debugger.css +++ b/browser/themes/windows/devtools/debugger.css @@ -83,13 +83,12 @@ .dbg-expression { height: 20px; - -moz-padding-start: 8px; } .dbg-expression-arrow { - width: 10px; + width: 16px; height: auto; - background: url("chrome://browser/skin/devtools/commandline.png") 0px 4px no-repeat; + background: -moz-image-rect(url("chrome://browser/skin/devtools/commandline-icon.png"), 0, 32, 16, 16); } .dbg-expression-input { diff --git a/browser/themes/windows/devtools/goto-mdn.png b/browser/themes/windows/devtools/goto-mdn.png deleted file mode 100644 index dbe064863d65ac3123a7a60070114dd465852de2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 661 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 literal 0 HcmV?d00001 diff --git a/browser/themes/windows/devtools/toolbarbutton-close.png b/browser/themes/windows/devtools/toolbarbutton-close.png deleted file mode 100644 index 4a58465b9b7ea3b3c7c14b36214524fb9b0e38b7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 898 zcmV-|1AY97P)G?$RO%(D9DVE2wO>|IdyGXXbKuAMWsXumi@rW zizxG=3lSo^$*@vs{TpxZ=io>?+i~PBx_CVA-uLse=lObewsj)1Carg5ulx8l>ikEo z`ThB`CSjy(=l*>gv)qjuW-uASvcvAuAyldwlHG@8CuIRJG;-)bbn4h)nLJiwD;QXI zVgb^ed4Z!F9MR(rht#I0ORduxSIl5w*-2RdPGw^6Zh7SQ%fnR!1Itb<0CjyvhP3AA zOXt?Da^3BYD`qgT?4&fn^PSZ)tmf|fd~&a%LWcCpYeY?t8LySK1h|l$Enzj-?eR$0 zwr%G1W^plE(Sw0a7-0I->}l1E>J%SPL`{!bq5xynRi??w&KnY4h|1e=hurac5j8z# zCZnt+Kw$G`xu)h`UyI03Wyjk>a-*mSQPX2)GO!5)=%A`8+|&1d`tt{jBWilg5(OCD zQ7O08Y`kUtnu9Vww;(Tq?TDHlGn0X} z3$P-@a`Vg*1sJLH%V2rA45)fbN@QFOFQ{=uO^+FjvX%hnva%#tSSS%a@m4kYcqs&; zrpF8h);0hd93E|&n3{QqsOi}Sc;NR*e_5IIsd^2=H2r<{2co9O%w&|c1UQ?SDa{21 z((ZPfW=ES_WbVs%L`{#G$-vqMSbp0eYI=47hI|#$Q(7wBdeW~#VLkZ;c@}I()byB{ z46NlTq^2(G6XvQK9cyVbPkyAS1yR#uW-|450sg+{(ee<90^F_eN|#}nM(5S=Q#Bs( zcn~!`W+tPoCBPXq)u`sif`80k($hw<5X@j;?fwIms=C-ckErP}OBCR?-Wr|Tw@XML zcR{zCE3f1Bl(ht?bGamtn=6fZd2(K_7xj8Y?{`E^j~NVXioXX4P%0hz%#N%g7-cO1 zPB@)XuOH5aoE*%?6*CxEc2fCMB5>U>76;VWty05QFtF^z0;K17E*^2DFCJH8C-qyl z*5!&TW-zeqq%44U*TFp)O7_PXEIY9P{yjB&F_i2+EIaJ}4?m}M|5uu7lPWt&!KShM Y8%Lp~>GYClRsaA107*qoM6N<$g8i4Sr2qf` diff --git a/browser/themes/windows/devtools/toolbox.css b/browser/themes/windows/devtools/toolbox.css index 9cced9ea819..67ee64eb85e 100644 --- a/browser/themes/windows/devtools/toolbox.css +++ b/browser/themes/windows/devtools/toolbox.css @@ -27,21 +27,15 @@ list-style-image: url("chrome://browser/skin/devtools/undock.png"); } -#toolbox-close { - list-style-image: url("chrome://browser/skin/devtools/close.png"); -} - #toolbox-dock-window, #toolbox-dock-bottom, -#toolbox-dock-side, -#toolbox-close { +#toolbox-dock-side { opacity: 0.6; } #toolbox-dock-window:hover, #toolbox-dock-bottom:hover, -#toolbox-dock-side:hover, -#toolbox-close:hover { +#toolbox-dock-side:hover { opacity: 1; } diff --git a/browser/themes/windows/devtools/tools-icons-small.png b/browser/themes/windows/devtools/tools-icons-small.png deleted file mode 100644 index 12e9c72acc819abb8dcc9985d94ea3b1b9bbda2a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2976 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 Wc;m0cEV&i{0000 Date: Fri, 21 Jun 2013 19:01:02 +0300 Subject: [PATCH 02/16] Bug 879799 - Browser console lacks keyboard access; r=robcee --- browser/devtools/jar.mn | 2 +- browser/devtools/webconsole/test/Makefile.in | 1 + .../browser_console_keyboard_accessibility.js | 69 +++++++++++ ...webconsole_bug_585991_autocomplete_keys.js | 103 +++++++++++----- browser/devtools/webconsole/webconsole.js | 110 +++++++++++++++--- browser/devtools/webconsole/webconsole.xul | 39 +++++-- .../chrome/browser/devtools/webConsole.dtd | 16 ++- .../browser/devtools/webconsole.properties | 4 - browser/themes/linux/devtools/common.css | 2 +- browser/themes/linux/devtools/webconsole.css | 4 + browser/themes/osx/devtools/common.css | 2 +- browser/themes/osx/devtools/webconsole.css | 4 + browser/themes/windows/devtools/common.css | 2 +- .../themes/windows/devtools/webconsole.css | 4 + 14 files changed, 293 insertions(+), 69 deletions(-) create mode 100644 browser/devtools/webconsole/test/browser_console_keyboard_accessibility.js diff --git a/browser/devtools/jar.mn b/browser/devtools/jar.mn index 3476e90799e..8d91a547e52 100644 --- a/browser/devtools/jar.mn +++ b/browser/devtools/jar.mn @@ -13,7 +13,7 @@ browser.jar: content/browser/devtools/netmonitor-view.js (netmonitor/netmonitor-view.js) content/browser/devtools/NetworkPanel.xhtml (webconsole/NetworkPanel.xhtml) content/browser/devtools/webconsole.js (webconsole/webconsole.js) - content/browser/devtools/webconsole.xul (webconsole/webconsole.xul) +* content/browser/devtools/webconsole.xul (webconsole/webconsole.xul) * content/browser/devtools/scratchpad.xul (scratchpad/scratchpad.xul) content/browser/devtools/scratchpad.js (scratchpad/scratchpad.js) content/browser/devtools/splitview.css (shared/splitview.css) diff --git a/browser/devtools/webconsole/test/Makefile.in b/browser/devtools/webconsole/test/Makefile.in index 9cd61edd282..88567ee26e0 100644 --- a/browser/devtools/webconsole/test/Makefile.in +++ b/browser/devtools/webconsole/test/Makefile.in @@ -137,6 +137,7 @@ MOCHITEST_BROWSER_FILES = \ browser_console_addonsdk_loader_exception.js \ browser_console_error_source_click.js \ browser_console_clear_on_reload.js \ + browser_console_keyboard_accessibility.js \ head.js \ $(NULL) diff --git a/browser/devtools/webconsole/test/browser_console_keyboard_accessibility.js b/browser/devtools/webconsole/test/browser_console_keyboard_accessibility.js new file mode 100644 index 00000000000..aca00bd5a39 --- /dev/null +++ b/browser/devtools/webconsole/test/browser_console_keyboard_accessibility.js @@ -0,0 +1,69 @@ +/* + * Any copyright is dedicated to the Public Domain. + * http://creativecommons.org/publicdomain/zero/1.0/ + */ + +// Check that basic keyboard shortcuts work in the web console. + +function test() +{ + const TEST_URI = "http://example.com/browser/browser/devtools/webconsole/test/test-console.html"; + let hud = null; + + addTab(TEST_URI); + + browser.addEventListener("load", function onLoad() { + browser.removeEventListener("load", onLoad, true); + openConsole(null, consoleOpened); + }, true); + + function consoleOpened(aHud) + { + hud = aHud; + ok(hud, "Web Console opened"); + + content.console.log("foobarz1"); + waitForMessages({ + webconsole: hud, + messages: [{ + text: "foobarz1", + category: CATEGORY_WEBDEV, + severity: SEVERITY_LOG, + }], + }).then(onConsoleMessage); + } + + function onConsoleMessage() + { + hud.jsterm.once("messages-cleared", onClear); + info("try ctrl-k to clear output"); + EventUtils.synthesizeKey("K", { accelKey: true }); + } + + function onClear() + { + is(hud.outputNode.textContent.indexOf("foobarz1"), -1, "output cleared"); + is(hud.jsterm.inputNode.getAttribute("focused"), "true", + "jsterm input is focused"); + + info("try ctrl-f to focus filter"); + EventUtils.synthesizeKey("F", { accelKey: true }); + ok(!hud.jsterm.inputNode.getAttribute("focused"), + "jsterm input is not focused"); + is(hud.ui.filterBox.getAttribute("focused"), "true", + "filter input is focused"); + + if (Services.appinfo.OS == "Darwin") { + EventUtils.synthesizeKey("t", { ctrlKey: true }); + } + else { + EventUtils.synthesizeKey("N", { altKey: true }); + } + + let net = hud.ui.document.querySelector("toolbarbutton[category=net]"); + is(hud.ui.document.activeElement, net, + "accesskey for Network category focuses the Net button"); + + finishTest(); + } +} diff --git a/browser/devtools/webconsole/test/browser_webconsole_bug_585991_autocomplete_keys.js b/browser/devtools/webconsole/test/browser_webconsole_bug_585991_autocomplete_keys.js index 56a3eb7dfb2..21dcc603b1d 100644 --- a/browser/devtools/webconsole/test/browser_webconsole_bug_585991_autocomplete_keys.js +++ b/browser/devtools/webconsole/test/browser_webconsole_bug_585991_autocomplete_keys.js @@ -4,7 +4,7 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ const TEST_URI = "data:text/html;charset=utf-8,

bug 585991 - autocomplete popup keyboard usage test"; -let HUD; +let HUD, popup, jsterm, inputNode, completeNode; function test() { addTab(TEST_URI); @@ -16,6 +16,7 @@ function test() { function consoleOpened(aHud) { HUD = aHud; + info("web console opened"); content.wrappedJSObject.foobarBug585991 = { "item0": "value0", @@ -24,9 +25,10 @@ function consoleOpened(aHud) { "item3": "value3", }; - let jsterm = HUD.jsterm; - let popup = jsterm.autocompletePopup; - let completeNode = jsterm.completeNode; + jsterm = HUD.jsterm; + popup = jsterm.autocompletePopup; + completeNode = jsterm.completeNode; + inputNode = jsterm.inputNode; ok(!popup.isOpen, "popup is not open"); @@ -90,23 +92,20 @@ function consoleOpened(aHud) { is(completeNode.value, prefix + "watch", "completeNode.value holds watch"); - popup._panel.addEventListener("popuphidden", autocompletePopupHidden, false); - + info("press Tab and wait for popup to hide"); + popup._panel.addEventListener("popuphidden", popupHideAfterTab, false); EventUtils.synthesizeKey("VK_TAB", {}); }, false); + info("wait for completion: window.foobarBug585991."); jsterm.setInputValue("window.foobarBug585991"); EventUtils.synthesizeKey(".", {}); } -function autocompletePopupHidden() +function popupHideAfterTab() { - let jsterm = HUD.jsterm; - let popup = jsterm.autocompletePopup; - let completeNode = jsterm.completeNode; - let inputNode = jsterm.inputNode; - - popup._panel.removeEventListener("popuphidden", autocompletePopupHidden, false); + // At this point the completion suggestion should be accepted. + popup._panel.removeEventListener("popuphidden", popupHideAfterTab, false); ok(!popup.isOpen, "popup is not open"); @@ -146,11 +145,13 @@ function autocompletePopupHidden() executeSoon(testReturnKey); }, false); + info("press Escape to close the popup"); executeSoon(function() { EventUtils.synthesizeKey("VK_ESCAPE", {}); }); }, false); + info("wait for completion: window.foobarBug585991."); executeSoon(function() { jsterm.setInputValue("window.foobarBug585991"); EventUtils.synthesizeKey(".", {}); @@ -159,11 +160,6 @@ function autocompletePopupHidden() function testReturnKey() { - let jsterm = HUD.jsterm; - let popup = jsterm.autocompletePopup; - let completeNode = jsterm.completeNode; - let inputNode = jsterm.inputNode; - popup._panel.addEventListener("popupshown", function onShown() { popup._panel.removeEventListener("popupshown", onShown, false); @@ -187,28 +183,28 @@ function testReturnKey() is(popup.selectedIndex, 1, "index 1 is selected"); is(popup.selectedItem.label, "valueOf", "valueOf is selected"); is(completeNode.value, prefix + "valueOf", - "completeNode.value holds valueOf"); + "completeNode.value holds valueOf"); popup._panel.addEventListener("popuphidden", function onHidden() { popup._panel.removeEventListener("popuphidden", onHidden, false); ok(!popup.isOpen, "popup is not open after VK_RETURN"); - // modified by bug 873250 - is(inputNode.value, "", "no completion after VK_RETURN"); - isnot(jsterm.lastInputValue, "window.foobarBug585991.valueOf", - "lastInputValue is not window.foobarBug585991.valueOf"); - EventUtils.synthesizeKey("VK_UP", {}); - is(inputNode.value, jsterm.lastInputValue, "previous entry was lastInputNode") + is(inputNode.value, "window.foobarBug585991.valueOf", + "completion was successful after VK_RETURN"); ok(!completeNode.value, "completeNode is empty"); dontShowArrayNumbers(); }, false); - EventUtils.synthesizeKey("VK_RETURN", {}); + info("press Return to accept suggestion. wait for popup to hide"); + + executeSoon(() => EventUtils.synthesizeKey("VK_RETURN", {})); }, false); + info("wait for completion suggestions: window.foobarBug585991."); + executeSoon(function() { jsterm.setInputValue("window.foobarBug58599"); EventUtils.synthesizeKey("1", {}); @@ -218,6 +214,7 @@ function testReturnKey() function dontShowArrayNumbers() { + info("dontShowArrayNumbers"); content.wrappedJSObject.foobarBug585991 = ["Sherlock Holmes"]; let jsterm = HUD.jsterm; @@ -231,14 +228,56 @@ function dontShowArrayNumbers() ok(!sameItems.some(function(prop, index) { prop === "0"; }), "Completing on an array doesn't show numbers."); - popup._panel.addEventListener("popuphidden", consoleOpened, false); + popup._panel.addEventListener("popuphidden", testReturnWithNoSelection, false); - EventUtils.synthesizeKey("VK_TAB", {}); - - executeSoon(finishTest); + info("wait for popup to hide"); + executeSoon(() => EventUtils.synthesizeKey("VK_ESCAPE", {})); }, false); - jsterm.setInputValue("window.foobarBug585991"); - EventUtils.synthesizeKey(".", {}); + info("wait for popup to show"); + executeSoon(() => { + jsterm.setInputValue("window.foobarBug585991"); + EventUtils.synthesizeKey(".", {}); + }); } +function testReturnWithNoSelection() +{ + popup._panel.removeEventListener("popuphidden", testReturnWithNoSelection, false); + + info("test pressing return with open popup, but no selection, see bug 873250"); + content.wrappedJSObject.testBug873250a = "hello world"; + content.wrappedJSObject.testBug873250b = "hello world 2"; + + popup._panel.addEventListener("popupshown", function onShown() { + popup._panel.removeEventListener("popupshown", onShown); + + ok(popup.isOpen, "popup is open"); + is(popup.itemCount, 2, "popup.itemCount is correct"); + isnot(popup.selectedIndex, -1, "popup.selectedIndex is correct"); + + info("press Return and wait for popup to hide"); + popup._panel.addEventListener("popuphidden", popupHideAfterReturnWithNoSelection); + executeSoon(() => EventUtils.synthesizeKey("VK_RETURN", {})); + }); + + executeSoon(() => { + info("wait for popup to show"); + jsterm.setInputValue("window.testBu"); + EventUtils.synthesizeKey("g", {}); + }); +} + +function popupHideAfterReturnWithNoSelection() +{ + popup._panel.removeEventListener("popuphidden", popupHideAfterReturnWithNoSelection); + + ok(!popup.isOpen, "popup is not open after VK_RETURN"); + + is(inputNode.value, "", "inputNode is empty after VK_RETURN"); + is(completeNode.value, "", "completeNode is empty"); + is(jsterm.history[jsterm.history.length-1], "window.testBug", + "jsterm history is correct"); + + executeSoon(finishTest); +} diff --git a/browser/devtools/webconsole/webconsole.js b/browser/devtools/webconsole/webconsole.js index 2b5c0ded87a..f1a0a785eb2 100644 --- a/browser/devtools/webconsole/webconsole.js +++ b/browser/devtools/webconsole/webconsole.js @@ -2854,13 +2854,21 @@ JSTerm.prototype = { lastInputValue: "", /** - * Indicate input node changed since last focus. + * Tells if the input node changed since the last focus. * * @private * @type boolean */ _inputChanged: false, + /** + * Tells if the autocomplete popup was navigated since the last open. + * + * @private + * @type boolean + */ + _autocompletePopupNavigated: false, + /** * History of code that was executed. * @type array @@ -3060,8 +3068,6 @@ JSTerm.prototype = { // attempt to execute the content of the inputNode aExecuteString = aExecuteString || this.inputNode.value; if (!aExecuteString) { - this.writeOutput(l10n.getStr("executeEmptyInput"), CATEGORY_OUTPUT, - SEVERITY_LOG); return; } @@ -3598,6 +3604,8 @@ JSTerm.prototype = { /** * Clear the Web Console output. * + * This method emits the "messages-cleared" notification. + * * @param boolean aClearStorage * True if you want to clear the console messages storage associated to * this Web Console. @@ -3620,10 +3628,14 @@ JSTerm.prototype = { if (aClearStorage) { this.webConsoleClient.clearMessagesCache(); } + + this.emit("messages-cleared"); }, /** * Remove all of the private messages from the Web Console output. + * + * This method emits the "private-messages-cleared" notification. */ clearPrivateMessages: function JST_clearPrivateMessages() { @@ -3694,16 +3706,20 @@ JSTerm.prototype = { */ _keyPress: function JST__keyPress(aEvent) { + let inputNode = this.inputNode; + let inputUpdated = false; + if (aEvent.ctrlKey) { - let inputNode = this.inputNode; - let closePopup = false; switch (aEvent.charCode) { case 97: // control-a + this.clearCompletion(); + if (Services.appinfo.OS == "WINNT") { - closePopup = true; + // Allow Select All on Windows. break; } + let lineBeginPos = 0; if (this.hasMultilineInput()) { // find index of closest newline <= to cursor @@ -3717,8 +3733,8 @@ JSTerm.prototype = { } inputNode.setSelectionRange(lineBeginPos, lineBeginPos); aEvent.preventDefault(); - closePopup = true; break; + case 101: // control-e if (Services.appinfo.OS == "WINNT") { @@ -3737,7 +3753,9 @@ JSTerm.prototype = { } inputNode.setSelectionRange(lineEndPos, lineEndPos); aEvent.preventDefault(); + this.clearCompletion(); break; + case 110: // Control-N differs from down arrow: it ignores autocomplete state. // Note that we preserve the default 'down' navigation within @@ -3746,9 +3764,14 @@ JSTerm.prototype = { this.canCaretGoNext() && this.historyPeruse(HISTORY_FORWARD)) { aEvent.preventDefault(); + // Ctrl-N is also used to focus the Network category button on MacOSX. + // The preventDefault() call doesn't prevent the focus from moving + // away from the input. + inputNode.focus(); } - closePopup = true; + this.clearCompletion(); break; + case 112: // Control-P differs from up arrow: it ignores autocomplete state. // Note that we preserve the default 'up' navigation within @@ -3757,17 +3780,16 @@ JSTerm.prototype = { this.canCaretGoPrevious() && this.historyPeruse(HISTORY_BACK)) { aEvent.preventDefault(); + // Ctrl-P may also be used to focus some category button on MacOSX. + // The preventDefault() call doesn't prevent the focus from moving + // away from the input. + inputNode.focus(); } - closePopup = true; + this.clearCompletion(); break; default: break; } - if (closePopup) { - if (this.autocompletePopup.isOpen) { - this.clearCompletion(); - } - } return; } else if (aEvent.shiftKey && @@ -3777,9 +3799,7 @@ JSTerm.prototype = { return; } - let inputUpdated = false; - - switch(aEvent.keyCode) { + switch (aEvent.keyCode) { case Ci.nsIDOMKeyEvent.DOM_VK_ESCAPE: if (this.autocompletePopup.isOpen) { this.clearCompletion(); @@ -3787,18 +3807,29 @@ JSTerm.prototype = { } else if (this.sidebar) { this._sidebarDestroy(); + aEvent.preventDefault(); } break; - // Bug 873250 - always enter, ignore autocomplete case Ci.nsIDOMKeyEvent.DOM_VK_RETURN: - this.execute(); + if (this._autocompletePopupNavigated && + this.autocompletePopup.isOpen && + this.autocompletePopup.selectedIndex > -1) { + this.acceptProposedCompletion(); + } + else { + this.execute(); + this._inputChanged = false; + } aEvent.preventDefault(); break; case Ci.nsIDOMKeyEvent.DOM_VK_UP: if (this.autocompletePopup.isOpen) { inputUpdated = this.complete(this.COMPLETE_BACKWARD); + if (inputUpdated) { + this._autocompletePopupNavigated = true; + } } else if (this.canCaretGoPrevious()) { inputUpdated = this.historyPeruse(HISTORY_BACK); @@ -3811,6 +3842,9 @@ JSTerm.prototype = { case Ci.nsIDOMKeyEvent.DOM_VK_DOWN: if (this.autocompletePopup.isOpen) { inputUpdated = this.complete(this.COMPLETE_FORWARD); + if (inputUpdated) { + this._autocompletePopupNavigated = true; + } } else if (this.canCaretGoNext()) { inputUpdated = this.historyPeruse(HISTORY_FORWARD); @@ -3820,6 +3854,33 @@ JSTerm.prototype = { } break; + case Ci.nsIDOMKeyEvent.DOM_VK_HOME: + case Ci.nsIDOMKeyEvent.DOM_VK_END: + case Ci.nsIDOMKeyEvent.DOM_VK_LEFT: + if (this.autocompletePopup.isOpen || this.lastCompletion.value) { + this.clearCompletion(); + } + break; + + case Ci.nsIDOMKeyEvent.DOM_VK_RIGHT: { + let cursorAtTheEnd = this.inputNode.selectionStart == + this.inputNode.selectionEnd && + this.inputNode.selectionStart == + this.inputNode.value.length; + let haveSuggestion = this.autocompletePopup.isOpen || + this.lastCompletion.value; + let useCompletion = cursorAtTheEnd || this._autocompletePopupNavigated; + if (haveSuggestion && useCompletion && + this.complete(this.COMPLETE_HINT_ONLY) && + this.lastCompletion.value && + this.acceptProposedCompletion()) { + aEvent.preventDefault(); + } + if (this.autocompletePopup.isOpen) { + this.clearCompletion(); + } + break; + } case Ci.nsIDOMKeyEvent.DOM_VK_TAB: // Generate a completion and accept the first proposed value. if (this.complete(this.COMPLETE_HINT_ONLY) && @@ -4096,9 +4157,11 @@ JSTerm.prototype = { if (items.length > 1 && !popup.isOpen) { popup.openPopup(inputNode); + this._autocompletePopupNavigated = false; } else if (items.length < 2 && popup.isOpen) { popup.hidePopup(); + this._autocompletePopupNavigated = false; } if (items.length == 1) { @@ -4144,6 +4207,7 @@ JSTerm.prototype = { this.updateCompleteNode(""); if (this.autocompletePopup.isOpen) { this.autocompletePopup.hidePopup(); + this._autocompletePopupNavigated = false; } }, @@ -4411,10 +4475,12 @@ CommandController.prototype = { let selectedItem = this.owner.outputNode.selectedItem; return selectedItem && "url" in selectedItem; } + case "consoleCmd_clearOutput": case "cmd_fontSizeEnlarge": case "cmd_fontSizeReduce": case "cmd_fontSizeReset": case "cmd_selectAll": + case "cmd_find": return true; case "cmd_close": return this.owner.owner._browserConsole; @@ -4434,6 +4500,12 @@ CommandController.prototype = { case "consoleCmd_copyURL": this.copyURL(); break; + case "consoleCmd_clearOutput": + this.owner.jsterm.clearOutput(true); + break; + case "cmd_find": + this.owner.filterBox.focus(); + break; case "cmd_selectAll": this.selectAll(); break; diff --git a/browser/devtools/webconsole/webconsole.xul b/browser/devtools/webconsole/webconsole.xul index 8e3142a101a..a77e00d293e 100644 --- a/browser/devtools/webconsole/webconsole.xul +++ b/browser/devtools/webconsole/webconsole.xul @@ -34,6 +34,9 @@ oncommand="goDoCommand('consoleCmd_openURL');"/> + + @@ -47,6 +50,8 @@ + + @@ -72,7 +77,13 @@ + tooltiptext="&btnPageNet.tooltip;" +#ifdef XP_MACOSX + accesskey="&btnPageNet.accesskeyMacOSX;" +#else + accesskey="&btnPageNet.accesskey;" +#endif + tabindex="3"> @@ -85,7 +96,9 @@ + tooltiptext="&btnPageCSS.tooltip;" + accesskey="&btnPageCSS.accesskey;" + tabindex="4"> @@ -95,7 +108,9 @@ + tooltiptext="&btnPageJS.tooltip;" + accesskey="&btnPageJS.accesskey;" + tabindex="5"> @@ -105,7 +120,9 @@ + tooltiptext="&btnPageSecurity.tooltip;" + accesskey="&btnPageSecurity.accesskey;" + tabindex="6"> @@ -115,7 +132,9 @@ + tooltiptext="&btnPageLogging.tooltip;" + accesskey="&btnPageLogging.accesskey;" + tabindex="7"> @@ -129,23 +148,25 @@ + label="&btnClear.label;" tooltiptext="&btnClear.tooltip;" + accesskey="&btnClear.accesskey;" + tabindex="8"/> + placeholder="&filterOutput.placeholder;" tabindex="2"/> + style="direction:ltr;" tabindex="1"/> - + diff --git a/browser/locales/en-US/chrome/browser/devtools/webConsole.dtd b/browser/locales/en-US/chrome/browser/devtools/webConsole.dtd index af0ccaadf25..3196ecd811f 100644 --- a/browser/locales/en-US/chrome/browser/devtools/webConsole.dtd +++ b/browser/locales/en-US/chrome/browser/devtools/webConsole.dtd @@ -45,12 +45,22 @@ - filters. --> + + + + + + + @@ -66,6 +77,7 @@ + @@ -80,4 +92,6 @@ - + + + diff --git a/browser/locales/en-US/chrome/browser/devtools/webconsole.properties b/browser/locales/en-US/chrome/browser/devtools/webconsole.properties index 2c3d5b3b87f..2748f0505eb 100644 --- a/browser/locales/en-US/chrome/browser/devtools/webconsole.properties +++ b/browser/locales/en-US/chrome/browser/devtools/webconsole.properties @@ -160,10 +160,6 @@ longStringEllipsis=[…] # tries to expand a long string. longStringTooLong=The string you are trying to view is too long to be displayed by the Web Console. -# LOCALIZATION NOTE (executeEmptyInput): the string displayed when the user -# tries to execute code, but the input is empty. -executeEmptyInput=No value to execute. - # LOCALIZATION NOTE (NetworkPanel.fetchRemainingResponseContentLink): the # string displayed in the network panel when the response body is only # partially available. Parameters: %S is the amount of bytes that need to be diff --git a/browser/themes/linux/devtools/common.css b/browser/themes/linux/devtools/common.css index 7ec3aef9bdb..86771c1a834 100644 --- a/browser/themes/linux/devtools/common.css +++ b/browser/themes/linux/devtools/common.css @@ -46,7 +46,7 @@ .devtools-menulist:-moz-focusring, .devtools-toolbarbutton:-moz-focusring { - outline: 1px dotted hsla(210,30%,85%,0.4); + outline: 1px dotted hsla(210,30%,85%,0.7); outline-offset: -4px; } diff --git a/browser/themes/linux/devtools/webconsole.css b/browser/themes/linux/devtools/webconsole.css index 23206976467..92e7c6d5371 100644 --- a/browser/themes/linux/devtools/webconsole.css +++ b/browser/themes/linux/devtools/webconsole.css @@ -111,6 +111,10 @@ /* WebConsole colored drops */ +.webconsole-filter-button { + -moz-user-focus: normal; +} + .webconsole-filter-button[checked] { color: white !important; } diff --git a/browser/themes/osx/devtools/common.css b/browser/themes/osx/devtools/common.css index 197f21cf051..a2a61aa3204 100644 --- a/browser/themes/osx/devtools/common.css +++ b/browser/themes/osx/devtools/common.css @@ -50,7 +50,7 @@ .devtools-menulist:-moz-focusring, .devtools-toolbarbutton:-moz-focusring { - outline: 1px dotted hsla(210,30%,85%,0.4); + outline: 1px dotted hsla(210,30%,85%,0.7); outline-offset: -4px; } diff --git a/browser/themes/osx/devtools/webconsole.css b/browser/themes/osx/devtools/webconsole.css index 1b34ab2c2c1..c627641e468 100644 --- a/browser/themes/osx/devtools/webconsole.css +++ b/browser/themes/osx/devtools/webconsole.css @@ -103,6 +103,10 @@ /* WebConsole colored drops */ +.webconsole-filter-button { + -moz-user-focus: normal; +} + .webconsole-filter-button[checked] { color: white !important; } diff --git a/browser/themes/windows/devtools/common.css b/browser/themes/windows/devtools/common.css index cf5744d653c..2e13f4eae33 100644 --- a/browser/themes/windows/devtools/common.css +++ b/browser/themes/windows/devtools/common.css @@ -46,7 +46,7 @@ .devtools-menulist:-moz-focusring, .devtools-toolbarbutton:-moz-focusring { - outline: 1px dotted hsla(210,30%,85%,0.4); + outline: 1px dotted hsla(210,30%,85%,0.7); outline-offset: -4px; } diff --git a/browser/themes/windows/devtools/webconsole.css b/browser/themes/windows/devtools/webconsole.css index 6f9d9fe7f7e..5a07960dfd8 100644 --- a/browser/themes/windows/devtools/webconsole.css +++ b/browser/themes/windows/devtools/webconsole.css @@ -101,6 +101,10 @@ /* WebConsole colored drops */ +.webconsole-filter-button { + -moz-user-focus: normal; +} + .webconsole-filter-button[checked] { color: white !important; } From fca4520d153cff4c9716bc7796c5b646417d5bab Mon Sep 17 00:00:00 2001 From: Mihai Sucan Date: Fri, 21 Jun 2013 13:30:10 +0300 Subject: [PATCH 03/16] Bug 884887 - Move webconsole.css into themes/shared; r=robcee f=mconley --- browser/themes/linux/browser.css | 6 - browser/themes/linux/devtools/webconsole.css | 253 +--------------- browser/themes/linux/jar.mn | 2 +- browser/themes/osx/browser.css | 6 - browser/themes/osx/devtools/webconsole.css | 262 +---------------- .../themes/shared/devtools/webconsole.inc.css | 269 ++++++++++++++++++ browser/themes/windows/browser.css | 6 - .../themes/windows/devtools/webconsole.css | 266 +---------------- browser/themes/windows/jar.mn | 4 +- 9 files changed, 279 insertions(+), 795 deletions(-) create mode 100644 browser/themes/shared/devtools/webconsole.inc.css diff --git a/browser/themes/linux/browser.css b/browser/themes/linux/browser.css index 6ef6748ba75..e0b2ff35c7d 100644 --- a/browser/themes/linux/browser.css +++ b/browser/themes/linux/browser.css @@ -2074,12 +2074,6 @@ toolbar[mode="text"] toolbarbutton.chevron > .toolbarbutton-icon { color: hsl(210,11%,16%); } -/* Web Console */ - -.web-console-frame { - border-bottom: 1px solid #aaa; -} - /* Error counter */ #developer-toolbar-toolbox-button[error-count]:before { diff --git a/browser/themes/linux/devtools/webconsole.css b/browser/themes/linux/devtools/webconsole.css index 92e7c6d5371..87a3e1770a6 100644 --- a/browser/themes/linux/devtools/webconsole.css +++ b/browser/themes/linux/devtools/webconsole.css @@ -2,271 +2,22 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -/* General output styles */ - -.webconsole-timestamp { - color: GrayText; - margin-top: 0; - margin-bottom: 0; - font-family: "DejaVu Sans Mono", monospace; -} - -.hud-msg-node { - list-style-image: url(chrome://browser/skin/devtools/webconsole.png); - -moz-image-region: rect(0, 1px, 0, 0); -} - -.webconsole-msg-icon { - margin: 3px 4px; - width: 8px; - height: 8px; -} - -.hud-clickable { - cursor: pointer; - text-decoration: underline; -} +%include ../../shared/devtools/webconsole.inc.css +.webconsole-timestamp, .webconsole-msg-body { - margin-top: 0; - margin-bottom: 3px; - -moz-margin-start: 3px; - -moz-margin-end: 6px; - white-space: pre-wrap; font-family: "DejaVu Sans Mono", monospace; } -.webconsole-msg-body-piece { - margin: 0; -} - -.webconsole-msg-url { - margin: 0 6px; -} - -/* Repeated messages */ -.webconsole-msg-repeat { - margin: 2px 0; - padding-left: 4px; - padding-right: 4px; - color: white; - background-color: red; - border-radius: 40px; - font: message-box; - font-size: 0.9em; - font-weight: 600; -} - -/* TODO move this and other functional rules to content - bug 635359 */ -.webconsole-msg-repeat[value="1"] { - display: none; -} - -.webconsole-location { - margin-top: 0; - margin-bottom: 0; - -moz-margin-start: 0; - -moz-margin-end: 6px; - width: 10em; - text-align: end; -} - -.webconsole-mixed-content { - color: #FF0000; -} - -.webconsole-mixed-content-link { - color: #0000EE; - margin: 0; -} - -.hud-msg-node[selected="true"] > .webconsole-timestamp, -.hud-msg-node[selected="true"] > .webconsole-location { - color: inherit; -} - .jsterm-input-node, .jsterm-complete-node { font: 0.9em "DejaVu Sans Mono", monospace; } .hud-output-node { - -moz-appearance: none; - border-bottom: 1px solid ThreeDShadow; - margin: 0; font-size: 0.9em; } -.hud-filtered-by-type, -.hud-filtered-by-string { - display: none; -} - -.hidden-message { - display: block; - visibility: hidden; - height: 0; - overflow: hidden; -} - -/* WebConsole colored drops */ - -.webconsole-filter-button { - -moz-user-focus: normal; -} - -.webconsole-filter-button[checked] { - color: white !important; -} - -.webconsole-filter-button > .toolbarbutton-menubutton-button:before { - content: ""; - display: inline-block; - height: 8px; - width: 8px; - border-radius: 50%; - margin-left: 5px; - border-width: 1px; - border-style: solid; -} - -/* Network styles */ -.webconsole-filter-button[category="net"] > .toolbarbutton-menubutton-button:before { - background-image: linear-gradient(#444444, #000000); - border-color: #777; -} - -.webconsole-msg-network > .webconsole-msg-icon-container { - -moz-border-start: solid #000 6px; -} - -.webconsole-msg-network.webconsole-msg-error { - -moz-image-region: rect(0, 16px, 8px, 8px); -} - -/* CSS styles */ -.webconsole-filter-button[category="css"] > .toolbarbutton-menubutton-button:before { - background-image: linear-gradient(#2DC3F3, #00B6F0); - border-color: #1BA2CC; -} - -.webconsole-msg-cssparser > .webconsole-msg-icon-container { - -moz-border-start: solid #00b6f0 6px; -} - -.webconsole-msg-cssparser.webconsole-msg-error { - -moz-image-region: rect(8px, 16px, 16px, 8px); -} - -.webconsole-msg-cssparser.webconsole-msg-warn { - -moz-image-region: rect(8px, 24px, 16px, 16px); -} - -/* JS styles */ -.webconsole-filter-button[category="js"] > .toolbarbutton-menubutton-button:before { - background-image: linear-gradient(#FCB142, #FB9500); - border-color: #E98A00; -} - -.webconsole-msg-exception > .webconsole-msg-icon-container { - -moz-border-start: solid #fb9500 6px; -} - -.webconsole-msg-exception.webconsole-msg-error { - -moz-image-region: rect(16px, 16px, 24px, 8px); -} - -.webconsole-msg-exception.webconsole-msg-warn { - -moz-image-region: rect(16px, 24px, 24px, 16px); -} - -/* Web Developer styles */ -.webconsole-filter-button[category="logging"] > .toolbarbutton-menubutton-button:before { - background-image: linear-gradient(#B9B9B9, #AAAAAA); - border-color: #929292; -} - -.webconsole-msg-console > .webconsole-msg-icon-container { - -moz-border-start: solid #cbcbcb 6px; -} - -.webconsole-msg-console.webconsole-msg-error, -.webconsole-msg-output.webconsole-msg-error { - -moz-image-region: rect(24px, 16px, 32px, 8px); -} - -.webconsole-msg-console.webconsole-msg-warn { - -moz-image-region: rect(24px, 24px, 32px, 16px); -} - -.webconsole-msg-console.webconsole-msg-info { - -moz-image-region: rect(24px, 32px, 32px, 24px); -} - -/* Input and output styles */ -.webconsole-msg-input > .webconsole-msg-icon-container, -.webconsole-msg-output > .webconsole-msg-icon-container { - border-left: solid #808080 6px; -} - -.webconsole-msg-input { - -moz-image-region: rect(24px, 40px, 32px, 32px); -} - -.webconsole-msg-output { - -moz-image-region: rect(24px, 48px, 32px, 40px); -} - -/* JSTerm Styles */ -.jsterm-input-node, -.jsterm-complete-node { - border: none; - padding: 0 0 0 16px; - -moz-appearance: none; -} - .jsterm-input-node { width: 98%; - background: -moz-image-rect(url("chrome://browser/skin/devtools/commandline-icon.png"), 0, 32, 16, 16) no-repeat; -} - -:-moz-any(.jsterm-input-node, - .jsterm-complete-node) > .textbox-input-box > .textbox-textarea { - overflow-x: hidden; -} - -.jsterm-complete-node > .textbox-input-box > .textbox-textarea { - color: GrayText; -} - -.webconsole-msg-inspector iframe { - height: 7em; - margin-bottom: 15px; - -moz-margin-end: 15px; - border-radius: 4px; - box-shadow: 0 0 12px #dfdfdf; -} - -#webconsole-sidebar > tabs { - height: 0; - border: none; -} - -/* Security styles */ - -.webconsole-msg-security > .webconsole-msg-icon-container { - -moz-border-start: solid red 6px; -} - -.webconsole-filter-button[category="security"] > .toolbarbutton-menubutton-button:before { - background-image: linear-gradient(#FF3030, #FF7D7D); - border-color: #D12C2C; -} - -.webconsole-msg-security.webconsole-msg-error { - -moz-image-region: rect(32px, 16px, 40px, 8px); -} - -.webconsole-msg-security.webconsole-msg-warn { - -moz-image-region: rect(32px, 24px, 40px, 16px); } diff --git a/browser/themes/linux/jar.mn b/browser/themes/linux/jar.mn index ad14cf7461e..db5764548ed 100644 --- a/browser/themes/linux/jar.mn +++ b/browser/themes/linux/jar.mn @@ -131,7 +131,7 @@ browser.jar: skin/classic/browser/devtools/command-tilt.png (devtools/command-tilt.png) skin/classic/browser/devtools/alerticon-warning.png (devtools/alerticon-warning.png) skin/classic/browser/devtools/ruleview.css (devtools/ruleview.css) - skin/classic/browser/devtools/webconsole.css (devtools/webconsole.css) +* skin/classic/browser/devtools/webconsole.css (devtools/webconsole.css) skin/classic/browser/devtools/webconsole_networkpanel.css (devtools/webconsole_networkpanel.css) skin/classic/browser/devtools/webconsole.png (devtools/webconsole.png) skin/classic/browser/devtools/checkbox-dark.png (devtools/checkbox-dark.png) diff --git a/browser/themes/osx/browser.css b/browser/themes/osx/browser.css index a1e69e9a987..cf5aeccb5aa 100644 --- a/browser/themes/osx/browser.css +++ b/browser/themes/osx/browser.css @@ -3563,12 +3563,6 @@ toolbarbutton.chevron > .toolbarbutton-menu-dropmarker { color: hsl(210,11%,16%); } -/* Web Console */ - -.web-console-frame { - border-bottom: 1px solid #aaa; -} - /* Developer Toolbar */ #developer-toolbar-closebutton { diff --git a/browser/themes/osx/devtools/webconsole.css b/browser/themes/osx/devtools/webconsole.css index c627641e468..3fcfd5640e0 100644 --- a/browser/themes/osx/devtools/webconsole.css +++ b/browser/themes/osx/devtools/webconsole.css @@ -3,274 +3,16 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ %include ../shared.inc +%include ../../shared/devtools/webconsole.inc.css /* General output styles */ -.webconsole-timestamp { - color: GrayText; - margin-top: 0; - margin-bottom: 0; - font-family: Menlo, Monaco, monospace; -} - -.hud-msg-node { - list-style-image: url(chrome://browser/skin/devtools/webconsole.png); - -moz-image-region: rect(0, 1px, 0, 0); -} - -.webconsole-msg-icon { - margin: 3px 4px; - width: 8px; - height: 8px; -} - -.hud-clickable { - cursor: pointer; - text-decoration: underline; -} - +.webconsole-timestamp, .webconsole-msg-body { - margin-top: 0; - margin-bottom: 3px; - -moz-margin-start: 3px; - -moz-margin-end: 6px; - white-space: pre-wrap; font-family: Menlo, Monaco, monospace; } -.webconsole-msg-body-piece { - margin: 0; -} - -.webconsole-msg-url { - margin: 0 6px; -} - -/* Repeated messages */ -.webconsole-msg-repeat { - margin: 2px 0; - padding-left: 4px; - padding-right: 4px; - color: white; - background-color: red; - border-radius: 40px; - font: message-box; - font-size: 0.9em; - font-weight: 600; -} - -/* TODO move this and other functional rules to content - bug 635359 */ -.webconsole-msg-repeat[value="1"] { - display: none; -} - -.webconsole-location { - margin-top: 0; - margin-bottom: 0; - -moz-margin-start: 0; - -moz-margin-end: 6px; - width: 10em; - text-align: end; -} - -.hud-msg-node[selected="true"] > .webconsole-timestamp, -.hud-msg-node[selected="true"] > .webconsole-location { - color: inherit; -} - .jsterm-input-node, .jsterm-complete-node { font: 1em Menlo, Monaco, monospace; } - -.hud-output-node { - -moz-appearance: none; - border-bottom: 1px solid ThreeDShadow; - margin: 0; -} - -.hud-filtered-by-type, -.hud-filtered-by-string { - display: none; -} - -.hidden-message { - display: block; - visibility: hidden; - height: 0; - overflow: hidden; -} - -/* WebConsole colored drops */ - -.webconsole-filter-button { - -moz-user-focus: normal; -} - -.webconsole-filter-button[checked] { - color: white !important; -} - -.webconsole-filter-button > .toolbarbutton-menubutton-button:before { - content: ""; - display: inline-block; - height: 8px; - width: 8px; - border-radius: 50%; - margin-left: 5px; - border-width: 1px; - border-style: solid; -} - -/* Network styles */ -.webconsole-filter-button[category="net"] > .toolbarbutton-menubutton-button:before { - background-image: linear-gradient(#444444, #000000); - border-color: #777; -} - -.webconsole-msg-network > .webconsole-msg-icon-container { - -moz-border-start: solid #000 6px; -} - -.webconsole-msg-network.webconsole-msg-error { - -moz-image-region: rect(0, 16px, 8px, 8px); -} - -/* CSS styles */ -.webconsole-filter-button[category="css"] > .toolbarbutton-menubutton-button:before { - background-image: linear-gradient(#2DC3F3, #00B6F0); - border-color: #1BA2CC; -} - -.webconsole-msg-cssparser > .webconsole-msg-icon-container { - -moz-border-start: solid #00b6f0 6px; -} - -.webconsole-msg-cssparser.webconsole-msg-error { - -moz-image-region: rect(8px, 16px, 16px, 8px); -} - -.webconsole-msg-cssparser.webconsole-msg-warn { - -moz-image-region: rect(8px, 24px, 16px, 16px); -} - -/* JS styles */ -.webconsole-filter-button[category="js"] > .toolbarbutton-menubutton-button:before { - background-image: linear-gradient(#FCB142, #FB9500); - border-color: #E98A00; -} - -.webconsole-msg-exception > .webconsole-msg-icon-container { - -moz-border-start: solid #fb9500 6px; -} - -.webconsole-msg-exception.webconsole-msg-error { - -moz-image-region: rect(16px, 16px, 24px, 8px); -} - -.webconsole-msg-exception.webconsole-msg-warn { - -moz-image-region: rect(16px, 24px, 24px, 16px); -} - -/* Web Developer styles */ -.webconsole-filter-button[category="logging"] > .toolbarbutton-menubutton-button:before { - background-image: linear-gradient(#B9B9B9, #AAAAAA); - border-color: #929292; -} - -.webconsole-msg-console > .webconsole-msg-icon-container { - -moz-border-start: solid #cbcbcb 6px; -} - -.webconsole-msg-console.webconsole-msg-error, -.webconsole-msg-output.webconsole-msg-error { - -moz-image-region: rect(24px, 16px, 32px, 8px); -} - -.webconsole-msg-console.webconsole-msg-warn { - -moz-image-region: rect(24px, 24px, 32px, 16px); -} - -.webconsole-msg-console.webconsole-msg-info { - -moz-image-region: rect(24px, 32px, 32px, 24px); -} - -.webconsole-mixed-content { - color: #FF0000; -} - -.webconsole-mixed-content-link { - color: #0000EE; - margin: 0; -} - -/* Input and output styles */ -.webconsole-msg-input > .webconsole-msg-icon-container, -.webconsole-msg-output > .webconsole-msg-icon-container { - border-left: solid #808080 6px; -} - -.webconsole-msg-input { - -moz-image-region: rect(24px, 40px, 32px, 32px); -} - -.webconsole-msg-output { - -moz-image-region: rect(24px, 48px, 32px, 40px); -} - -/* JSTerm Styles */ -.jsterm-input-container { - background: white; -} - -.jsterm-input-node, -.jsterm-complete-node { - border: none; - padding: 0 0 0 16px; - -moz-appearance: none; -} - -.jsterm-input-node { - background: -moz-image-rect(url("chrome://browser/skin/devtools/commandline-icon.png"), 0, 32, 16, 16) no-repeat; -} - -:-moz-any(.jsterm-input-node, - .jsterm-complete-node) > .textbox-input-box > .textbox-textarea { - overflow-x: hidden; -} - -.jsterm-complete-node > .textbox-input-box > .textbox-textarea { - color: GrayText; -} - -.webconsole-msg-inspector iframe { - height: 7em; - margin-bottom: 15px; - -moz-margin-end: 15px; - border-radius: 4px; - box-shadow: 0 0 12px #dfdfdf; -} - -#webconsole-sidebar > tabs { - height: 0; - border: none; -} - -/* Security styles */ - -.webconsole-msg-security > .webconsole-msg-icon-container { - -moz-border-start: solid red 6px; -} - -.webconsole-filter-button[category="security"] > .toolbarbutton-menubutton-button:before { - background-image: linear-gradient(#FF3030, #FF7D7D); - border-color: #D12C2C; -} - -.webconsole-msg-security.webconsole-msg-error { - -moz-image-region: rect(32px, 16px, 40px, 8px); -} - -.webconsole-msg-security.webconsole-msg-warn { - -moz-image-region: rect(32px, 24px, 40px, 16px); -} diff --git a/browser/themes/shared/devtools/webconsole.inc.css b/browser/themes/shared/devtools/webconsole.inc.css new file mode 100644 index 00000000000..1218d494f5b --- /dev/null +++ b/browser/themes/shared/devtools/webconsole.inc.css @@ -0,0 +1,269 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +/* General output styles */ + +.webconsole-timestamp { + color: GrayText; + margin-top: 0; + margin-bottom: 0; + font-family: monospace; +} + +.hud-msg-node { + list-style-image: url(chrome://browser/skin/devtools/webconsole.png); + -moz-image-region: rect(0, 1px, 0, 0); +} + +.webconsole-msg-icon { + margin: 3px 4px; + width: 8px; + height: 8px; +} + +.hud-clickable { + cursor: pointer; + text-decoration: underline; +} + +.webconsole-msg-body { + margin-top: 0; + margin-bottom: 3px; + -moz-margin-start: 3px; + -moz-margin-end: 6px; + white-space: pre-wrap; + font-family: monospace; +} + +.webconsole-msg-body-piece { + margin: 0; +} + +.webconsole-msg-url { + margin: 0 6px; +} + +/* Repeated messages */ +.webconsole-msg-repeat { + margin: 2px 0; + padding-left: 4px; + padding-right: 4px; + color: white; + background-color: red; + border-radius: 40px; + font: message-box; + font-size: 0.9em; + font-weight: 600; +} + +.webconsole-msg-repeat[value="1"] { + display: none; +} + +.webconsole-location { + margin-top: 0; + margin-bottom: 0; + -moz-margin-start: 0; + -moz-margin-end: 6px; + width: 10em; + text-align: end; +} + +.webconsole-mixed-content { + color: #FF0000; +} + +.webconsole-mixed-content-link { + color: #0000EE; + margin: 0; +} + +.hud-msg-node[selected="true"] > .webconsole-timestamp, +.hud-msg-node[selected="true"] > .webconsole-location { + color: inherit; +} + +.jsterm-input-node, +.jsterm-complete-node { + font-family: monospace; +} + +.hud-output-node { + -moz-appearance: none; + border-bottom: 1px solid ThreeDShadow; + margin: 0; +} + +.hud-filtered-by-type, +.hud-filtered-by-string { + display: none; +} + +.hidden-message { + display: block; + visibility: hidden; + height: 0; + overflow: hidden; +} + +/* WebConsole colored drops */ + +.webconsole-filter-button { + -moz-user-focus: normal; +} + +.webconsole-filter-button[checked] { + color: white !important; +} + +.webconsole-filter-button > .toolbarbutton-menubutton-button:before { + content: ""; + display: inline-block; + height: 8px; + width: 8px; + border-radius: 50%; + margin-left: 5px; + border-width: 1px; + border-style: solid; +} + +/* Network styles */ +.webconsole-filter-button[category="net"] > .toolbarbutton-menubutton-button:before { + background-image: linear-gradient(#444444, #000000); + border-color: #777; +} + +.webconsole-msg-network > .webconsole-msg-icon-container { + -moz-border-start: solid #000 6px; +} + +.webconsole-msg-network.webconsole-msg-error { + -moz-image-region: rect(0, 16px, 8px, 8px); +} + +/* CSS styles */ +.webconsole-filter-button[category="css"] > .toolbarbutton-menubutton-button:before { + background-image: linear-gradient(#2DC3F3, #00B6F0); + border-color: #1BA2CC; +} + +.webconsole-msg-cssparser > .webconsole-msg-icon-container { + -moz-border-start: solid #00b6f0 6px; +} + +.webconsole-msg-cssparser.webconsole-msg-error { + -moz-image-region: rect(8px, 16px, 16px, 8px); +} + +.webconsole-msg-cssparser.webconsole-msg-warn { + -moz-image-region: rect(8px, 24px, 16px, 16px); +} + +/* JS styles */ +.webconsole-filter-button[category="js"] > .toolbarbutton-menubutton-button:before { + background-image: linear-gradient(#FCB142, #FB9500); + border-color: #E98A00; +} + +.webconsole-msg-exception > .webconsole-msg-icon-container { + -moz-border-start: solid #fb9500 6px; +} + +.webconsole-msg-exception.webconsole-msg-error { + -moz-image-region: rect(16px, 16px, 24px, 8px); +} + +.webconsole-msg-exception.webconsole-msg-warn { + -moz-image-region: rect(16px, 24px, 24px, 16px); +} + +/* Web Developer styles */ +.webconsole-filter-button[category="logging"] > .toolbarbutton-menubutton-button:before { + background-image: linear-gradient(#B9B9B9, #AAAAAA); + border-color: #929292; +} + +.webconsole-msg-console > .webconsole-msg-icon-container { + -moz-border-start: solid #cbcbcb 6px; +} + +.webconsole-msg-console.webconsole-msg-error, +.webconsole-msg-output.webconsole-msg-error { + -moz-image-region: rect(24px, 16px, 32px, 8px); +} + +.webconsole-msg-console.webconsole-msg-warn { + -moz-image-region: rect(24px, 24px, 32px, 16px); +} + +.webconsole-msg-console.webconsole-msg-info { + -moz-image-region: rect(24px, 32px, 32px, 24px); +} + +/* Input and output styles */ +.webconsole-msg-input > .webconsole-msg-icon-container, +.webconsole-msg-output > .webconsole-msg-icon-container { + border-left: solid #808080 6px; +} + +.webconsole-msg-input { + -moz-image-region: rect(24px, 40px, 32px, 32px); +} + +.webconsole-msg-output { + -moz-image-region: rect(24px, 48px, 32px, 40px); +} + +/* JSTerm Styles */ +.jsterm-input-node, +.jsterm-complete-node { + border: none; + padding: 0 0 0 16px; + -moz-appearance: none; +} + +.jsterm-input-node { + background: url("chrome://browser/skin/devtools/commandline.png") 4px 3px no-repeat; +} + +:-moz-any(.jsterm-input-node, + .jsterm-complete-node) > .textbox-input-box > .textbox-textarea { + overflow-x: hidden; +} + +.jsterm-complete-node > .textbox-input-box > .textbox-textarea { + color: GrayText; +} + +.webconsole-msg-inspector iframe { + height: 7em; + margin-bottom: 15px; + -moz-margin-end: 15px; + border-radius: 4px; + box-shadow: 0 0 12px #dfdfdf; +} + +#webconsole-sidebar > tabs { + height: 0; + border: none; +} + +/* Security styles */ + +.webconsole-msg-security > .webconsole-msg-icon-container { + -moz-border-start: solid red 6px; +} + +.webconsole-filter-button[category="security"] > .toolbarbutton-menubutton-button:before { + background-image: linear-gradient(#FF3030, #FF7D7D); + border-color: #D12C2C; +} + +.webconsole-msg-security.webconsole-msg-error { + -moz-image-region: rect(32px, 16px, 40px, 8px); +} + +.webconsole-msg-security.webconsole-msg-warn { + -moz-image-region: rect(32px, 24px, 40px, 16px); +} diff --git a/browser/themes/windows/browser.css b/browser/themes/windows/browser.css index 2a12568e5e5..4d61636b097 100644 --- a/browser/themes/windows/browser.css +++ b/browser/themes/windows/browser.css @@ -2797,12 +2797,6 @@ toolbarbutton.bookmark-item[dragover="true"][open="true"] { %include ../shared/devtools/highlighter.inc.css %include ../shared/devtools/commandline.inc.css -/* Web Console */ - -.web-console-frame { - border-bottom: 1px solid #aaa; -} - /* Error counter */ #developer-toolbar-toolbox-button[error-count]:before { diff --git a/browser/themes/windows/devtools/webconsole.css b/browser/themes/windows/devtools/webconsole.css index 5a07960dfd8..3daf77ca768 100644 --- a/browser/themes/windows/devtools/webconsole.css +++ b/browser/themes/windows/devtools/webconsole.css @@ -2,243 +2,15 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -/* General output styles */ - -.webconsole-timestamp { - color: GrayText; - margin-top: 0; - margin-bottom: 0; - font-family: Consolas, Lucida Console, monospace; -} - -.hud-msg-node { - list-style-image: url(chrome://browser/skin/devtools/webconsole.png); - -moz-image-region: rect(0, 1px, 0, 0); -} - -.webconsole-msg-icon { - margin: 3px 4px; - width: 8px; - height: 8px; -} - -.hud-clickable { - cursor: pointer; - text-decoration: underline; -} - -.webconsole-msg-body { - margin-top: 0; - margin-bottom: 3px; - -moz-margin-start: 3px; - -moz-margin-end: 6px; - white-space: pre-wrap; - font-family: Consolas, Lucida Console, monospace; -} - -.webconsole-msg-body-piece { - margin: 0; -} - -.webconsole-msg-url { - margin: 0 6px; -} - -/* Repeated messages */ -.webconsole-msg-repeat { - margin: 2px 0; - padding-left: 4px; - padding-right: 4px; - color: white; - background-color: red; - border-radius: 40px; - font: message-box; - font-size: 0.9em; - font-weight: 600; -} - -/* TODO move this and other functional rules to content - bug 635359 */ -.webconsole-msg-repeat[value="1"] { - display: none; -} - -.webconsole-location { - margin-top: 0; - margin-bottom: 0; - -moz-margin-start: 0; - -moz-margin-end: 6px; - width: 10em; - text-align: end; -} - -.hud-msg-node[selected="true"] > .webconsole-timestamp, -.hud-msg-node[selected="true"] > .webconsole-location { - color: inherit; -} +%include ../../shared/devtools/webconsole.inc.css +.webconsole-timestamp, +.webconsole-msg-body, .jsterm-input-node, .jsterm-complete-node { font-family: Consolas, Lucida Console, monospace; } -.hud-output-node { - -moz-appearance: none; - border-bottom: 1px solid ThreeDShadow; - margin: 0; -} - -.hud-filtered-by-type, -.hud-filtered-by-string { - display: none; -} - -.hidden-message { - display: block; - visibility: hidden; - height: 0; - overflow: hidden; -} - -/* WebConsole colored drops */ - -.webconsole-filter-button { - -moz-user-focus: normal; -} - -.webconsole-filter-button[checked] { - color: white !important; -} - -.webconsole-filter-button > .toolbarbutton-menubutton-button:before { - content: ""; - display: inline-block; - height: 8px; - width: 8px; - border-radius: 50%; - margin-left: 5px; - border-width: 1px; - border-style: solid; -} - -/* Network styles */ -.webconsole-filter-button[category="net"] > .toolbarbutton-menubutton-button:before { - background-image: linear-gradient(#444444, #000000); - border-color: #777; -} - -.webconsole-msg-network > .webconsole-msg-icon-container { - -moz-border-start: solid #000 6px; -} - -.webconsole-msg-network.webconsole-msg-error { - -moz-image-region: rect(0, 16px, 8px, 8px); -} - -/* CSS styles */ -.webconsole-filter-button[category="css"] > .toolbarbutton-menubutton-button:before { - background-image: linear-gradient(#2DC3F3, #00B6F0); - border-color: #1BA2CC; -} - -.webconsole-msg-cssparser > .webconsole-msg-icon-container { - -moz-border-start: solid #00b6f0 6px; -} - -.webconsole-msg-cssparser.webconsole-msg-error { - -moz-image-region: rect(8px, 16px, 16px, 8px); -} - -.webconsole-msg-cssparser.webconsole-msg-warn { - -moz-image-region: rect(8px, 24px, 16px, 16px); -} - -/* JS styles */ -.webconsole-filter-button[category="js"] > .toolbarbutton-menubutton-button:before { - background-image: linear-gradient(#FCB142, #FB9500); - border-color: #E98A00; -} - -.webconsole-msg-exception > .webconsole-msg-icon-container { - -moz-border-start: solid #fb9500 6px; -} - -.webconsole-msg-exception.webconsole-msg-error { - -moz-image-region: rect(16px, 16px, 24px, 8px); -} - -.webconsole-msg-exception.webconsole-msg-warn { - -moz-image-region: rect(16px, 24px, 24px, 16px); -} - -/* Web Developer styles */ -.webconsole-filter-button[category="logging"] > .toolbarbutton-menubutton-button:before { - background-image: linear-gradient(#B9B9B9, #AAAAAA); - border-color: #929292; -} - -.webconsole-msg-console > .webconsole-msg-icon-container { - -moz-border-start: solid #cbcbcb 6px; -} - -.webconsole-msg-console.webconsole-msg-error, -.webconsole-msg-output.webconsole-msg-error { - -moz-image-region: rect(24px, 16px, 32px, 8px); -} - -.webconsole-msg-console.webconsole-msg-warn { - -moz-image-region: rect(24px, 24px, 32px, 16px); -} - -.webconsole-msg-console.webconsole-msg-info { - -moz-image-region: rect(24px, 32px, 32px, 24px); -} - -.webconsole-mixed-content { - color: #FF0000; -} - -.webconsole-mixed-content-link { - color: #0000EE; - margin: 0; -} - -/* Input and output styles */ -.webconsole-msg-input > .webconsole-msg-icon-container, -.webconsole-msg-output > .webconsole-msg-icon-container { - border-left: solid #808080 6px; -} - -.webconsole-msg-input { - -moz-image-region: rect(24px, 40px, 32px, 32px); -} - -.webconsole-msg-output { - -moz-image-region: rect(24px, 48px, 32px, 40px); -} - -/* JSTerm Styles */ -.jsterm-input-node, -.jsterm-complete-node { - border: none; - padding: 0 0 0 16px; - -moz-appearance: none; -} - -.jsterm-input-node { - background: -moz-image-rect(url("chrome://browser/skin/devtools/commandline-icon.png"), 0, 32, 16, 16) no-repeat; -} - -:-moz-any(.jsterm-input-node, - .jsterm-complete-node) > .textbox-input-box > .textbox-textarea { - overflow-x: hidden; -} - -.jsterm-complete-node > .textbox-input-box > .textbox-textarea { - color: GrayText; -} - -/* Filter */ - /* * This hardcoded width likely due to a toolkit Windows specific bug. * See http://hg.mozilla.org/mozilla-central/annotate/f38d6df93cad/toolkit/themes/winstripe/global/textbox-aero.css#l7 @@ -247,35 +19,3 @@ .hud-filter-box { width: 200px; } - -.webconsole-msg-inspector iframe { - height: 7em; - margin-bottom: 15px; - -moz-margin-end: 15px; - border-radius: 4px; - box-shadow: 0 0 12px #dfdfdf; -} - -#webconsole-sidebar > tabs { - height: 0; - border: none; -} - -/* Security styles */ - -.webconsole-msg-security > .webconsole-msg-icon-container { - -moz-border-start: solid red 6px; -} - -.webconsole-filter-button[category="security"] > .toolbarbutton-menubutton-button:before { - background-image: linear-gradient(#FF3030, #FF7D7D); - border-color: #D12C2C; -} - -.webconsole-msg-security.webconsole-msg-error { - -moz-image-region: rect(32px, 16px, 40px, 8px); -} - -.webconsole-msg-security.webconsole-msg-warn { - -moz-image-region: rect(32px, 24px, 40px, 16px); -} diff --git a/browser/themes/windows/jar.mn b/browser/themes/windows/jar.mn index 0d134b7b8e7..73c643a4c67 100644 --- a/browser/themes/windows/jar.mn +++ b/browser/themes/windows/jar.mn @@ -166,7 +166,7 @@ browser.jar: skin/classic/browser/devtools/orion-task.png (devtools/orion-task.png) skin/classic/browser/devtools/orion-breakpoint.png (devtools/orion-breakpoint.png) skin/classic/browser/devtools/orion-debug-location.png (devtools/orion-debug-location.png) - skin/classic/browser/devtools/webconsole.css (devtools/webconsole.css) +* skin/classic/browser/devtools/webconsole.css (devtools/webconsole.css) skin/classic/browser/devtools/webconsole_networkpanel.css (devtools/webconsole_networkpanel.css) skin/classic/browser/devtools/webconsole.png (devtools/webconsole.png) skin/classic/browser/devtools/breadcrumbs-scrollbutton.png (devtools/breadcrumbs-scrollbutton.png) @@ -417,7 +417,7 @@ browser.jar: skin/classic/aero/browser/devtools/orion-task.png (devtools/orion-task.png) skin/classic/aero/browser/devtools/orion-breakpoint.png (devtools/orion-breakpoint.png) skin/classic/aero/browser/devtools/orion-debug-location.png (devtools/orion-debug-location.png) - skin/classic/aero/browser/devtools/webconsole.css (devtools/webconsole.css) +* skin/classic/aero/browser/devtools/webconsole.css (devtools/webconsole.css) skin/classic/aero/browser/devtools/webconsole_networkpanel.css (devtools/webconsole_networkpanel.css) skin/classic/aero/browser/devtools/webconsole.png (devtools/webconsole.png) skin/classic/aero/browser/devtools/breadcrumbs-scrollbutton.png (devtools/breadcrumbs-scrollbutton.png) From 4b16417f1693637905df4aefaa77910666f44652 Mon Sep 17 00:00:00 2001 From: Mihai Sucan Date: Wed, 19 Jun 2013 22:04:05 +0300 Subject: [PATCH 04/16] Bug 880868 - Browser Console JS Error/Warning filtering doesn't seem to work; r=robcee --- browser/app/profile/firefox.js | 1 + .../test/browser_console_nsiconsolemessage.js | 18 +++++++++++++++++- ...webconsole_bug_622303_persistent_filters.js | 3 ++- browser/devtools/webconsole/webconsole.js | 11 ++++++++++- browser/devtools/webconsole/webconsole.xul | 2 ++ 5 files changed, 32 insertions(+), 3 deletions(-) diff --git a/browser/app/profile/firefox.js b/browser/app/profile/firefox.js index 698392d08e5..35ad51bf50e 100644 --- a/browser/app/profile/firefox.js +++ b/browser/app/profile/firefox.js @@ -1131,6 +1131,7 @@ pref("devtools.webconsole.filter.csserror", true); pref("devtools.webconsole.filter.cssparser", true); pref("devtools.webconsole.filter.exception", true); pref("devtools.webconsole.filter.jswarn", true); +pref("devtools.webconsole.filter.jslog", true); pref("devtools.webconsole.filter.error", true); pref("devtools.webconsole.filter.warn", true); pref("devtools.webconsole.filter.info", true); diff --git a/browser/devtools/webconsole/test/browser_console_nsiconsolemessage.js b/browser/devtools/webconsole/test/browser_console_nsiconsolemessage.js index 7d1ffbc389a..dcfc19feedc 100644 --- a/browser/devtools/webconsole/test/browser_console_nsiconsolemessage.js +++ b/browser/devtools/webconsole/test/browser_console_nsiconsolemessage.js @@ -75,5 +75,21 @@ function onBrowserConsoleOpen(hud) category: CATEGORY_JS, }, ], - }).then(finishTest); + }).then(testFiltering); + + function testFiltering(results) + { + let msg = [...results[2].matched][0]; + ok(msg, "message element for do-not-show-me (nsIConsoleMessage)"); + isnot(msg.textContent.indexOf("do-not-show"), -1, "element content is correct"); + ok(!msg.classList.contains("hud-filtered-by-type"), "element is not filtered"); + + hud.setFilterState("jslog", false); + + ok(msg.classList.contains("hud-filtered-by-type"), "element is filtered"); + + hud.setFilterState("jslog", true); + + finishTest(); + } } diff --git a/browser/devtools/webconsole/test/browser_webconsole_bug_622303_persistent_filters.js b/browser/devtools/webconsole/test/browser_webconsole_bug_622303_persistent_filters.js index 1fd615fb955..0aa95af8465 100644 --- a/browser/devtools/webconsole/test/browser_webconsole_bug_622303_persistent_filters.js +++ b/browser/devtools/webconsole/test/browser_webconsole_bug_622303_persistent_filters.js @@ -12,7 +12,8 @@ let prefs = { ], "js": [ "exception", - "jswarn" + "jswarn", + "jslog", ], "logging": [ "error", diff --git a/browser/devtools/webconsole/webconsole.js b/browser/devtools/webconsole/webconsole.js index f1a0a785eb2..29638af7922 100644 --- a/browser/devtools/webconsole/webconsole.js +++ b/browser/devtools/webconsole/webconsole.js @@ -121,7 +121,7 @@ const MESSAGE_PREFERENCE_KEYS = [ // Error Warning Info Log [ "network", null, null, "networkinfo", ], // Network [ "csserror", "cssparser", null, null, ], // CSS - [ "exception", "jswarn", null, null, ], // JS + [ "exception", "jswarn", null, "jslog", ], // JS [ "error", "warn", "info", "log", ], // Web Developer [ null, null, null, null, ], // Input [ null, null, null, null, ], // Output @@ -526,6 +526,7 @@ WebConsoleFrame.prototype = { cssparser: Services.prefs.getBoolPref(FILTER_PREFS_PREFIX + "cssparser"), exception: Services.prefs.getBoolPref(FILTER_PREFS_PREFIX + "exception"), jswarn: Services.prefs.getBoolPref(FILTER_PREFS_PREFIX + "jswarn"), + jslog: Services.prefs.getBoolPref(FILTER_PREFS_PREFIX + "jslog"), error: Services.prefs.getBoolPref(FILTER_PREFS_PREFIX + "error"), info: Services.prefs.getBoolPref(FILTER_PREFS_PREFIX + "info"), warn: Services.prefs.getBoolPref(FILTER_PREFS_PREFIX + "warn"), @@ -596,6 +597,14 @@ WebConsoleFrame.prototype = { aButton.setAttribute("checked", someChecked); }, this); + + if (!this.owner._browserConsole) { + // The Browser Console displays nsIConsoleMessages which are messages that + // end up in the JS category, but they are not errors or warnings, they + // are just log messages. The Web Console does not show such messages. + let jslog = this.document.querySelector("menuitem[prefKey=jslog]"); + jslog.hidden = true; + } }, /** diff --git a/browser/devtools/webconsole/webconsole.xul b/browser/devtools/webconsole/webconsole.xul index a77e00d293e..b4e07aa49eb 100644 --- a/browser/devtools/webconsole/webconsole.xul +++ b/browser/devtools/webconsole/webconsole.xul @@ -116,6 +116,8 @@ autocheck="false" prefKey="exception"/> + Date: Thu, 20 Jun 2013 16:29:01 +0300 Subject: [PATCH 05/16] Bug 878186 - Save different filter prefs for browser vs. webdev console; r=robcee --- browser/app/profile/firefox.js | 15 ++++ browser/devtools/webconsole/HUDService.jsm | 9 ++- browser/devtools/webconsole/test/Makefile.in | 1 + .../test/browser_console_filters.js | 71 +++++++++++++++++++ browser/devtools/webconsole/webconsole.js | 49 ++++++------- 5 files changed, 115 insertions(+), 30 deletions(-) create mode 100644 browser/devtools/webconsole/test/browser_console_filters.js diff --git a/browser/app/profile/firefox.js b/browser/app/profile/firefox.js index 35ad51bf50e..8c6117c757c 100644 --- a/browser/app/profile/firefox.js +++ b/browser/app/profile/firefox.js @@ -1139,6 +1139,21 @@ pref("devtools.webconsole.filter.log", true); pref("devtools.webconsole.filter.secerror", true); pref("devtools.webconsole.filter.secwarn", true); +// Remember the Browser Console filters +pref("devtools.browserconsole.filter.network", true); +pref("devtools.browserconsole.filter.networkinfo", true); +pref("devtools.browserconsole.filter.csserror", true); +pref("devtools.browserconsole.filter.cssparser", true); +pref("devtools.browserconsole.filter.exception", true); +pref("devtools.browserconsole.filter.jswarn", true); +pref("devtools.browserconsole.filter.jslog", true); +pref("devtools.browserconsole.filter.error", true); +pref("devtools.browserconsole.filter.warn", true); +pref("devtools.browserconsole.filter.info", true); +pref("devtools.browserconsole.filter.log", true); +pref("devtools.browserconsole.filter.secerror", true); +pref("devtools.browserconsole.filter.secwarn", true); + // Text size in the Web Console. Use 0 for the system default size. pref("devtools.webconsole.fontSize", 0); diff --git a/browser/devtools/webconsole/HUDService.jsm b/browser/devtools/webconsole/HUDService.jsm index a139da97641..9133495dcb9 100644 --- a/browser/devtools/webconsole/HUDService.jsm +++ b/browser/devtools/webconsole/HUDService.jsm @@ -43,6 +43,9 @@ let l10n = new WebConsoleUtils.l10n(STRINGS_URI); const BROWSER_CONSOLE_WINDOW_FEATURES = "chrome,titlebar,toolbar,centerscreen,resizable,dialog=no"; +// The preference prefix for all of the Browser Console filters. +const BROWSER_CONSOLE_FILTER_PREFS_PREFIX = "devtools.browserconsole.filter."; + this.EXPORTED_SYMBOLS = ["HUDService"]; /////////////////////////////////////////////////////////////////////////// @@ -205,6 +208,8 @@ function WebConsole(aTarget, aIframeWindow, aChromeWindow) if (element.getAttribute("windowtype") != "navigator:browser") { this.browserWindow = HUDService.currentContext(); } + + this.ui = new this.iframeWindow.WebConsoleFrame(this); } WebConsole.prototype = { @@ -213,6 +218,7 @@ WebConsole.prototype = { browserWindow: null, hudId: null, target: null, + ui: null, _browserConsole: false, _destroyer: null, @@ -252,7 +258,6 @@ WebConsole.prototype = { */ init: function WC_init() { - this.ui = new this.iframeWindow.WebConsoleFrame(this); return this.ui.init().then(() => this); }, @@ -545,6 +550,8 @@ BrowserConsole.prototype = Heritage.extend(WebConsole.prototype, return this._bc_init; } + this.ui._filterPrefsPrefix = BROWSER_CONSOLE_FILTER_PREFS_PREFIX; + let window = this.iframeWindow; // Make sure that the closing of the Browser Console window destroys this diff --git a/browser/devtools/webconsole/test/Makefile.in b/browser/devtools/webconsole/test/Makefile.in index 88567ee26e0..cc7dcd9970a 100644 --- a/browser/devtools/webconsole/test/Makefile.in +++ b/browser/devtools/webconsole/test/Makefile.in @@ -138,6 +138,7 @@ MOCHITEST_BROWSER_FILES = \ browser_console_error_source_click.js \ browser_console_clear_on_reload.js \ browser_console_keyboard_accessibility.js \ + browser_console_filters.js \ head.js \ $(NULL) diff --git a/browser/devtools/webconsole/test/browser_console_filters.js b/browser/devtools/webconsole/test/browser_console_filters.js new file mode 100644 index 00000000000..d9aa35c8151 --- /dev/null +++ b/browser/devtools/webconsole/test/browser_console_filters.js @@ -0,0 +1,71 @@ +/* + * Any copyright is dedicated to the Public Domain. + * http://creativecommons.org/publicdomain/zero/1.0/ + */ + +// Check that the Browser Console does not use the same filter prefs as the Web +// Console. See bug 878186. + +const TEST_URI = "data:text/html;charset=utf8,

browser console filters"; +const WEB_CONSOLE_PREFIX = "devtools.webconsole.filter."; +const BROWSER_CONSOLE_PREFIX = "devtools.browserconsole.filter."; + +function test() +{ + addTab(TEST_URI); + browser.addEventListener("load", function onLoad() { + browser.removeEventListener("load", onLoad, true); + info("open the web console"); + openConsole(null, consoleOpened); + }, true); +} + +function consoleOpened(hud) +{ + ok(hud, "web console opened"); + + is(Services.prefs.getBoolPref(BROWSER_CONSOLE_PREFIX + "exception"), true, + "'exception' filter is enabled (browser console)"); + is(Services.prefs.getBoolPref(WEB_CONSOLE_PREFIX + "exception"), true, + "'exception' filter is enabled (web console)"); + + info("toggle 'exception' filter"); + hud.setFilterState("exception", false); + + is(Services.prefs.getBoolPref(BROWSER_CONSOLE_PREFIX + "exception"), true, + "'exception' filter is enabled (browser console)"); + is(Services.prefs.getBoolPref(WEB_CONSOLE_PREFIX + "exception"), false, + "'exception' filter is disabled (web console)"); + + hud.setFilterState("exception", true); + + executeSoon(() => closeConsole(null, onWebConsoleClose)); +} + +function onWebConsoleClose() +{ + info("web console closed"); + HUDConsoleUI.toggleBrowserConsole().then(onBrowserConsoleOpen); +} + +function onBrowserConsoleOpen(hud) +{ + ok(hud, "browser console opened"); + + is(Services.prefs.getBoolPref(BROWSER_CONSOLE_PREFIX + "exception"), true, + "'exception' filter is enabled (browser console)"); + is(Services.prefs.getBoolPref(WEB_CONSOLE_PREFIX + "exception"), true, + "'exception' filter is enabled (web console)"); + + info("toggle 'exception' filter"); + hud.setFilterState("exception", false); + + is(Services.prefs.getBoolPref(BROWSER_CONSOLE_PREFIX + "exception"), false, + "'exception' filter is disabled (browser console)"); + is(Services.prefs.getBoolPref(WEB_CONSOLE_PREFIX + "exception"), true, + "'exception' filter is enabled (web console)"); + + hud.setFilterState("exception", true); + + executeSoon(finishTest); +} diff --git a/browser/devtools/webconsole/webconsole.js b/browser/devtools/webconsole/webconsole.js index 29638af7922..e11b73af013 100644 --- a/browser/devtools/webconsole/webconsole.js +++ b/browser/devtools/webconsole/webconsole.js @@ -203,6 +203,7 @@ function WebConsoleFrame(aWebConsoleOwner) this._outputQueue = []; this._pruneCategoriesQueue = {}; this._networkRequests = {}; + this.filterPrefs = {}; this._toggleFilter = this._toggleFilter.bind(this); this._flushMessageQueue = this._flushMessageQueue.bind(this); @@ -309,6 +310,13 @@ WebConsoleFrame.prototype = { */ filterPrefs: null, + /** + * Prefix used for filter preferences. + * @private + * @type string + */ + _filterPrefsPrefix: FILTER_PREFS_PREFIX, + /** * The nesting depth of the currently active console group. */ @@ -519,48 +527,31 @@ WebConsoleFrame.prototype = { */ _initDefaultFilterPrefs: function WCF__initDefaultFilterPrefs() { - this.filterPrefs = { - network: Services.prefs.getBoolPref(FILTER_PREFS_PREFIX + "network"), - networkinfo: Services.prefs.getBoolPref(FILTER_PREFS_PREFIX + "networkinfo"), - csserror: Services.prefs.getBoolPref(FILTER_PREFS_PREFIX + "csserror"), - cssparser: Services.prefs.getBoolPref(FILTER_PREFS_PREFIX + "cssparser"), - exception: Services.prefs.getBoolPref(FILTER_PREFS_PREFIX + "exception"), - jswarn: Services.prefs.getBoolPref(FILTER_PREFS_PREFIX + "jswarn"), - jslog: Services.prefs.getBoolPref(FILTER_PREFS_PREFIX + "jslog"), - error: Services.prefs.getBoolPref(FILTER_PREFS_PREFIX + "error"), - info: Services.prefs.getBoolPref(FILTER_PREFS_PREFIX + "info"), - warn: Services.prefs.getBoolPref(FILTER_PREFS_PREFIX + "warn"), - log: Services.prefs.getBoolPref(FILTER_PREFS_PREFIX + "log"), - secerror: Services.prefs.getBoolPref(FILTER_PREFS_PREFIX + "secerror"), - secwarn: Services.prefs.getBoolPref(FILTER_PREFS_PREFIX + "secwarn"), - }; + let prefs = ["network", "networkinfo", "csserror", "cssparser", "exception", + "jswarn", "jslog", "error", "info", "warn", "log", "secerror", + "secwarn"]; + for (let pref of prefs) { + this.filterPrefs[pref] = Services.prefs + .getBoolPref(this._filterPrefsPrefix + pref); + } }, /** - * Sets the click events for all binary toggle filter buttons. + * Sets the events for the filter input field. * @private */ _setFilterTextBoxEvents: function WCF__setFilterTextBoxEvents() { - let timer = null; + let timer = Cc["@mozilla.org/timer;1"].createInstance(Ci.nsITimer); let timerEvent = this.adjustVisibilityOnSearchStringChange.bind(this); let onChange = function _onChange() { - let timer; - // To improve responsiveness, we let the user finish typing before we // perform the search. - if (timer == null) { - let timerClass = Cc["@mozilla.org/timer;1"]; - timer = timerClass.createInstance(Ci.nsITimer); - } - else { - timer.cancel(); - } - + timer.cancel(); timer.initWithCallback(timerEvent, SEARCH_DELAY, Ci.nsITimer.TYPE_ONE_SHOT); - }.bind(this); + }; this.filterBox.addEventListener("command", onChange, false); this.filterBox.addEventListener("input", onChange, false); @@ -750,7 +741,7 @@ WebConsoleFrame.prototype = { { this.filterPrefs[aToggleType] = aState; this.adjustVisibilityForMessageType(aToggleType, aState); - Services.prefs.setBoolPref(FILTER_PREFS_PREFIX + aToggleType, aState); + Services.prefs.setBoolPref(this._filterPrefsPrefix + aToggleType, aState); }, /** From 082e84f0d9709376a89d7bfaa3a4f68e4c67a868 Mon Sep 17 00:00:00 2001 From: Mihai Sucan Date: Fri, 21 Jun 2013 20:40:00 +0300 Subject: [PATCH 06/16] Bug 883649 - Console freezes when accessing a DeadObject's property; r=past --- browser/devtools/webconsole/test/Makefile.in | 1 + .../test/browser_console_dead_objects.js | 79 +++++++++++++++++++ toolkit/devtools/server/actors/script.js | 13 ++- .../devtools/webconsole/WebConsoleUtils.jsm | 11 ++- 4 files changed, 101 insertions(+), 3 deletions(-) create mode 100644 browser/devtools/webconsole/test/browser_console_dead_objects.js diff --git a/browser/devtools/webconsole/test/Makefile.in b/browser/devtools/webconsole/test/Makefile.in index cc7dcd9970a..e559638417b 100644 --- a/browser/devtools/webconsole/test/Makefile.in +++ b/browser/devtools/webconsole/test/Makefile.in @@ -139,6 +139,7 @@ MOCHITEST_BROWSER_FILES = \ browser_console_clear_on_reload.js \ browser_console_keyboard_accessibility.js \ browser_console_filters.js \ + browser_console_dead_objects.js \ head.js \ $(NULL) diff --git a/browser/devtools/webconsole/test/browser_console_dead_objects.js b/browser/devtools/webconsole/test/browser_console_dead_objects.js new file mode 100644 index 00000000000..1d68df857e8 --- /dev/null +++ b/browser/devtools/webconsole/test/browser_console_dead_objects.js @@ -0,0 +1,79 @@ +/* + * Any copyright is dedicated to the Public Domain. + * http://creativecommons.org/publicdomain/zero/1.0/ + */ + +// Check that Dead Objects do not break the Web/Browser Consoles. See bug 883649. + +const TEST_URI = "data:text/html;charset=utf8,

dead objects!"; + +function test() +{ + let hud = null; + + addTab(TEST_URI); + browser.addEventListener("load", function onLoad() { + browser.removeEventListener("load", onLoad, true); + info("open the browser console"); + HUDConsoleUI.toggleBrowserConsole().then(onBrowserConsoleOpen); + }, true); + + function onBrowserConsoleOpen(aHud) + { + hud = aHud; + ok(hud, "browser console opened"); + + hud.jsterm.clearOutput(); + hud.jsterm.execute("foobarzTezt = content.document", onAddVariable); + } + + function onAddVariable() + { + gBrowser.removeCurrentTab(); + + hud.jsterm.execute("foobarzTezt", onReadVariable); + } + + function onReadVariable() + { + isnot(hud.outputNode.textContent.indexOf("[object DeadObject]"), -1, + "dead object found"); + + hud.jsterm.setInputValue("foobarzTezt"); + + for (let c of ".hello") { + EventUtils.synthesizeKey(c, {}, hud.iframeWindow); + } + + hud.jsterm.execute(null, onReadProperty); + } + + function onReadProperty() + { + isnot(hud.outputNode.textContent.indexOf("can't access dead object"), -1, + "'cannot access dead object' message found"); + + // Click the second execute output. + let clickable = hud.outputNode.querySelectorAll(".webconsole-msg-output")[1] + .querySelector(".hud-clickable"); + ok(clickable, "clickable object found"); + isnot(clickable.textContent.indexOf("[object DeadObject]"), -1, + "message text check"); + + hud.jsterm.once("variablesview-fetched", onFetched); + EventUtils.synthesizeMouse(clickable, 2, 2, {}, hud.iframeWindow); + } + + function onFetched() + { + hud.jsterm.execute("delete window.foobarzTezt; 2013-26", onCalcResult); + } + + function onCalcResult() + { + isnot(hud.outputNode.textContent.indexOf("1987"), -1, "result message found"); + + // executeSoon() is needed to get out of the execute() event loop. + executeSoon(finishTest); + } +} diff --git a/toolkit/devtools/server/actors/script.js b/toolkit/devtools/server/actors/script.js index 5472ee7a5cd..cc914bba6dc 100644 --- a/toolkit/devtools/server/actors/script.js +++ b/toolkit/devtools/server/actors/script.js @@ -1616,7 +1616,18 @@ ObjectActor.prototype = { */ onPrototypeAndProperties: function OA_onPrototypeAndProperties(aRequest) { let ownProperties = Object.create(null); - for (let name of this.obj.getOwnPropertyNames()) { + let names; + try { + names = this.obj.getOwnPropertyNames(); + } catch (ex) { + // The above can throw if this.obj points to a dead object. + // TODO: we should use Cu.isDeadWrapper() - see bug 885800. + return { from: this.actorID, + prototype: this.threadActor.createValueGrip(null), + ownProperties: ownProperties, + safeGetterValues: Object.create(null) }; + } + for (let name of names) { ownProperties[name] = this._propertyDescriptor(name); } return { from: this.actorID, diff --git a/toolkit/devtools/webconsole/WebConsoleUtils.jsm b/toolkit/devtools/webconsole/WebConsoleUtils.jsm index 1ef92a61fb6..dc53c1115f5 100644 --- a/toolkit/devtools/webconsole/WebConsoleUtils.jsm +++ b/toolkit/devtools/webconsole/WebConsoleUtils.jsm @@ -795,8 +795,15 @@ function JSPropertyProvider(aScope, aInputValue) return null; } - // Skip Iterators and Generators. - if (WCU.isIteratorOrGenerator(obj)) { + try { + // Skip Iterators and Generators. + if (WCU.isIteratorOrGenerator(obj)) { + return null; + } + } + catch (ex) { + // The above can throw if |obj| is a dead object. + // TODO: we should use Cu.isDeadWrapper() - see bug 885800. return null; } } From 3036a5b69648fbd737d403be61e08565ef282c94 Mon Sep 17 00:00:00 2001 From: Victor Porof Date: Sat, 22 Jun 2013 22:01:27 +0300 Subject: [PATCH 07/16] Bug 886019 - Need a better icon for .variables-view-delete, r=msucan --- browser/devtools/debugger/debugger-panes.js | 2 +- .../devtools/shared/widgets/VariablesView.jsm | 1 + browser/themes/linux/devtools/close-dark.png | Bin 607 -> 0 bytes .../themes/linux/devtools/vview-delete.png | Bin 0 -> 833 bytes browser/themes/linux/devtools/vview-edit.png | Bin 0 -> 238 bytes browser/themes/linux/devtools/widgets.css | 18 ++++++++++-------- browser/themes/linux/jar.mn | 3 ++- browser/themes/osx/devtools/close-dark.png | Bin 607 -> 0 bytes browser/themes/osx/devtools/vview-delete.png | Bin 0 -> 833 bytes browser/themes/osx/devtools/vview-edit.png | Bin 0 -> 238 bytes browser/themes/osx/devtools/widgets.css | 18 ++++++++++-------- browser/themes/osx/jar.mn | 3 ++- .../themes/windows/devtools/close-dark.png | Bin 607 -> 0 bytes .../themes/windows/devtools/vview-delete.png | Bin 0 -> 1451 bytes .../themes/windows/devtools/vview-edit.png | Bin 0 -> 238 bytes browser/themes/windows/devtools/widgets.css | 18 ++++++++++-------- browser/themes/windows/jar.mn | 6 ++++-- 17 files changed, 40 insertions(+), 29 deletions(-) delete mode 100644 browser/themes/linux/devtools/close-dark.png create mode 100644 browser/themes/linux/devtools/vview-delete.png create mode 100644 browser/themes/linux/devtools/vview-edit.png delete mode 100644 browser/themes/osx/devtools/close-dark.png create mode 100644 browser/themes/osx/devtools/vview-delete.png create mode 100644 browser/themes/osx/devtools/vview-edit.png delete mode 100644 browser/themes/windows/devtools/close-dark.png create mode 100644 browser/themes/windows/devtools/vview-delete.png create mode 100644 browser/themes/windows/devtools/vview-edit.png diff --git a/browser/devtools/debugger/debugger-panes.js b/browser/devtools/debugger/debugger-panes.js index 435298c4bdc..1768114d74e 100644 --- a/browser/devtools/debugger/debugger-panes.js +++ b/browser/devtools/debugger/debugger-panes.js @@ -1393,7 +1393,7 @@ WatchExpressionsView.prototype = Heritage.extend(WidgetMethods, { inputNode.addEventListener("blur", this._onBlur, false); inputNode.addEventListener("keypress", this._onKeyPress, false); - aElementNode.className = "dbg-expression title"; + aElementNode.className = "dbg-expression"; aElementNode.appendChild(arrowNode); aElementNode.appendChild(inputNode); aElementNode.appendChild(closeNode); diff --git a/browser/devtools/shared/widgets/VariablesView.jsm b/browser/devtools/shared/widgets/VariablesView.jsm index 73b3ebb8e59..7a4d5531b4c 100644 --- a/browser/devtools/shared/widgets/VariablesView.jsm +++ b/browser/devtools/shared/widgets/VariablesView.jsm @@ -2373,6 +2373,7 @@ Variable.prototype = Heritage.extend(Scope.prototype, { if (!this._isUndefined || !(ownerView.getter && ownerView.setter)) { let deleteNode = this._deleteNode = this.document.createElement("toolbarbutton"); deleteNode.className = "plain variables-view-delete"; + deleteNode.setAttribute("ordinal", 2); deleteNode.addEventListener("click", this._onDelete.bind(this), false); this._title.appendChild(deleteNode); } diff --git a/browser/themes/linux/devtools/close-dark.png b/browser/themes/linux/devtools/close-dark.png deleted file mode 100644 index 548374d0725b7aeccc7ee9b1f03a4c69a90af34b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 607 zcmV-l0-*hgP)(_`g8%^e{{R4h=l}px2mk>USO5SzmjD14Z`WEM zkN^My+V;Pyoj9EL~H`6uO4Kudf@D3U)DimYmt(bk4|Ds5w0`tfB?rEQG1HiWEdm3JVKOm**9 zmvO;4&cEq`bKI{kBauvXKLEGI0*0L9)V9&LEDUTLL(Vbe9E16GI^S-Kg*b3kSVZ5l zFm3KZgaVKC296oSF=KeFHy}cRX>$*K%feM*F%DcV(KSts@;nZlaT{$) zaYQLvgkbErczJ%s%k%4RfDjx}iZ-P<<8~Yv*cJ{A0|&Z}iCae)gt)2Ja8s=z3_?uY zIu3LlhlYWHZN-5Ti(#J-Ox!x&f)Ll$8oW#fUM7RZt6F)Nkf=iq{4~gyb*O<|LLyn!%I^SM t+FX%Ut^5~fDzl}{6@Mla>3{G1YXI-}02! zgrXC?aWeOd$#xvEHACBUTU(oF%gxPcKhB(xWT0XS5>X*$rA{N67hZZLcp-TaLEY3} zVPU0olMbGqqf^e=)u7@FXYcv$<^8(}wOp>7jFJV2ZM5-r8LI3;{K>32T zDGWilDN?X0ykN!h+#)LAVG_ngnj}Y+4=`iJ$*%%g381Dr1QyVN9<q2yMc>IW%6ARZLxlE11|Fm_e6iy$ftUVNx7|?y;_M8sYyMdivY+2PPhv)>nG$Q-K8&{kO zGhs*c=PF(k)j$BWf~h%pbPuO#`J{#e6FFkQb?B8pe6B||wk&GP#(*Oy55WFda}O~# z#^xOS{+4PX1!%yibN}XX0w<1=W-rx33g`k~`RL1bp@o;s%2Dupx%SJLUCxIJ)~{7g)Z$AbzsOwlB%E>ign)=f@{0_3XLI&og|fFFu5QlaT`Uo` zse_u*vCZjyl)Xvg-R4f6^EORFHzd?vW*GY5R@t!H3kh=a|P}At4 z%(c|}21>q_p296KHhRu3nmh$w5=S@OMe@^#-sP!6KNS^Qky;M1%^YZe5| zb90|Rf4*hQmKQHxOqej?*|TR)o;>mP_Wt|#@8idh`}_NCY;1s9fBpLP=g%Lhi+dV@ z9FdYBzhDLn1q&Ao2msL_{P?8ReW1Lrr;B4qMcmX=mO=*%c$gd%b?)!{|Npv=RZLqR zAW>8M~_8GB<&Umn7z9@ Yo_8ygMt?acKhR(XPgg&ebxsLQ08YbUw*UYD literal 0 HcmV?d00001 diff --git a/browser/themes/linux/devtools/widgets.css b/browser/themes/linux/devtools/widgets.css index 0e164e372ca..2a7e552ca10 100644 --- a/browser/themes/linux/devtools/widgets.css +++ b/browser/themes/linux/devtools/widgets.css @@ -566,18 +566,20 @@ /* Variables and properties editing */ .variables-view-delete { - list-style-image: url("chrome://browser/skin/devtools/close-dark.png"); - opacity: 0; + list-style-image: url("chrome://browser/skin/devtools/vview-delete.png"); + -moz-image-region: rect(0,16px,16px,0); } .variables-view-delete:hover { - opacity: 1; + -moz-image-region: rect(0,32px,16px,16px); } -*:hover > .title > .variables-view-delete:not(:hover), -*:focus > .title > .variables-view-delete:not(:hover) { - opacity: 0.5; - transition: opacity 0.2s ease-in-out; +.variables-view-delete:active { + -moz-image-region: rect(0,48px,16px,32px); +} + +*:not(:hover) .variables-view-delete { + display: none; } .variables-view-delete > .toolbarbutton-text { @@ -585,7 +587,7 @@ } .variables-view-edit { - background: url("chrome://browser/skin/tabview/edit-light.png") center no-repeat; + background: url("chrome://browser/skin/devtools/vview-edit.png") center no-repeat; width: 20px; height: 16px; cursor: pointer; diff --git a/browser/themes/linux/jar.mn b/browser/themes/linux/jar.mn index db5764548ed..bd731297fc0 100644 --- a/browser/themes/linux/jar.mn +++ b/browser/themes/linux/jar.mn @@ -209,7 +209,8 @@ browser.jar: skin/classic/browser/devtools/tool-profiler.png (devtools/tool-profiler.png) skin/classic/browser/devtools/tool-network.png (devtools/tool-network.png) skin/classic/browser/devtools/close.png (devtools/close.png) - skin/classic/browser/devtools/close-dark.png (devtools/close-dark.png) + skin/classic/browser/devtools/vview-delete.png (devtools/vview-delete.png) + skin/classic/browser/devtools/vview-edit.png (devtools/vview-edit.png) skin/classic/browser/devtools/undock.png (devtools/undock.png) skin/classic/browser/devtools/font-inspector.css (devtools/font-inspector.css) skin/classic/browser/devtools/computedview.css (devtools/computedview.css) diff --git a/browser/themes/osx/devtools/close-dark.png b/browser/themes/osx/devtools/close-dark.png deleted file mode 100644 index 548374d0725b7aeccc7ee9b1f03a4c69a90af34b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 607 zcmV-l0-*hgP)(_`g8%^e{{R4h=l}px2mk>USO5SzmjD14Z`WEM zkN^My+V;Pyoj9EL~H`6uO4Kudf@D3U)DimYmt(bk4|Ds5w0`tfB?rEQG1HiWEdm3JVKOm**9 zmvO;4&cEq`bKI{kBauvXKLEGI0*0L9)V9&LEDUTLL(Vbe9E16GI^S-Kg*b3kSVZ5l zFm3KZgaVKC296oSF=KeFHy}cRX>$*K%feM*F%DcV(KSts@;nZlaT{$) zaYQLvgkbErczJ%s%k%4RfDjx}iZ-P<<8~Yv*cJ{A0|&Z}iCae)gt)2Ja8s=z3_?uY zIu3LlhlYWHZN-5Ti(#J-Ox!x&f)Ll$8oW#fUM7RZt6F)Nkf=iq{4~gyb*O<|LLyn!%I^SM t+FX%Ut^5~fDzl}{6@Mla>3{G1YXI-}02! zgrXC?aWeOd$#xvEHACBUTU(oF%gxPcKhB(xWT0XS5>X*$rA{N67hZZLcp-TaLEY3} zVPU0olMbGqqf^e=)u7@FXYcv$<^8(}wOp>7jFJV2ZM5-r8LI3;{K>32T zDGWilDN?X0ykN!h+#)LAVG_ngnj}Y+4=`iJ$*%%g381Dr1QyVN9<q2yMc>IW%6ARZLxlE11|Fm_e6iy$ftUVNx7|?y;_M8sYyMdivY+2PPhv)>nG$Q-K8&{kO zGhs*c=PF(k)j$BWf~h%pbPuO#`J{#e6FFkQb?B8pe6B||wk&GP#(*Oy55WFda}O~# z#^xOS{+4PX1!%yibN}XX0w<1=W-rx33g`k~`RL1bp@o;s%2Dupx%SJLUCxIJ)~{7g)Z$AbzsOwlB%E>ign)=f@{0_3XLI&og|fFFu5QlaT`Uo` zse_u*vCZjyl)Xvg-R4f6^EORFHzd?vW*GY5R@t!H3kh=a|P}At4 z%(c|}21>q_p296KHhRu3nmh$w5=S@OMe@^#-sP!6KNS^Qky;M1%^YZe5| zb90|Rf4*hQmKQHxOqej?*|TR)o;>mP_Wt|#@8idh`}_NCY;1s9fBpLP=g%Lhi+dV@ z9FdYBzhDLn1q&Ao2msL_{P?8ReW1Lrr;B4qMcmX=mO=*%c$gd%b?)!{|Npv=RZLqR zAW>8M~_8GB<&Umn7z9@ Yo_8ygMt?acKhR(XPgg&ebxsLQ08YbUw*UYD literal 0 HcmV?d00001 diff --git a/browser/themes/osx/devtools/widgets.css b/browser/themes/osx/devtools/widgets.css index bb0f6d8b184..bfa4c6dfbbe 100644 --- a/browser/themes/osx/devtools/widgets.css +++ b/browser/themes/osx/devtools/widgets.css @@ -566,18 +566,20 @@ /* Variables and properties editing */ .variables-view-delete { - list-style-image: url("chrome://browser/skin/devtools/close-dark.png"); - opacity: 0; + list-style-image: url("chrome://browser/skin/devtools/vview-delete.png"); + -moz-image-region: rect(0,16px,16px,0); } .variables-view-delete:hover { - opacity: 1; + -moz-image-region: rect(0,32px,16px,16px); } -*:hover > .title > .variables-view-delete:not(:hover), -*:focus > .title > .variables-view-delete:not(:hover) { - opacity: 0.5; - transition: opacity 0.2s ease-in-out; +.variables-view-delete:active { + -moz-image-region: rect(0,48px,16px,32px); +} + +*:not(:hover) .variables-view-delete { + display: none; } .variables-view-delete > .toolbarbutton-text { @@ -585,7 +587,7 @@ } .variables-view-edit { - background: url("chrome://browser/skin/tabview/edit-light.png") center no-repeat; + background: url("chrome://browser/skin/devtools/vview-edit.png") center no-repeat; width: 20px; height: 16px; cursor: pointer; diff --git a/browser/themes/osx/jar.mn b/browser/themes/osx/jar.mn index f3618eb1064..9713e52a651 100644 --- a/browser/themes/osx/jar.mn +++ b/browser/themes/osx/jar.mn @@ -295,7 +295,8 @@ browser.jar: skin/classic/browser/devtools/tool-profiler.png (devtools/tool-profiler.png) skin/classic/browser/devtools/tool-network.png (devtools/tool-network.png) skin/classic/browser/devtools/close.png (devtools/close.png) - skin/classic/browser/devtools/close-dark.png (devtools/close-dark.png) + skin/classic/browser/devtools/vview-delete.png (devtools/vview-delete.png) + skin/classic/browser/devtools/vview-edit.png (devtools/vview-edit.png) skin/classic/browser/devtools/undock.png (devtools/undock.png) skin/classic/browser/devtools/font-inspector.css (devtools/font-inspector.css) skin/classic/browser/devtools/computedview.css (devtools/computedview.css) diff --git a/browser/themes/windows/devtools/close-dark.png b/browser/themes/windows/devtools/close-dark.png deleted file mode 100644 index 548374d0725b7aeccc7ee9b1f03a4c69a90af34b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 607 zcmV-l0-*hgP)(_`g8%^e{{R4h=l}px2mk>USO5SzmjD14Z`WEM zkN^My+V;Pyoj9EL~H`6uO4Kudf@D3U)DimYmt(bk4|Ds5w0`tfB?rEQG1HiWEdm3JVKOm**9 zmvO;4&cEq`bKI{kBauvXKLEGI0*0L9)V9&LEDUTLL(Vbe9E16GI^S-Kg*b3kSVZ5l zFm3KZgaVKC296oSF=KeFHy}cRX>$*K%feM*F%DcV(KSts@;nZlaT{$) zaYQLvgkbErczJ%s%k%4RfDjx}iZ-P<<8~Yv*cJ{A0|&Z}iCae)gt)2Ja8s=z3_?uY zIu3LlhlYWHZN-5Ti(#J-Ox!x&f)Ll$8oW#fUM7RZt6F)Nkf=iq{4~gyb*O<|LLyn!%I^SM t+FX%Ut^5~fDzl}{6@Mla>3{G1YXI-}02!MpWQlZ*bcCC~H79=D<41}eSQ7Xvhvfj3)6E7v+^!+LIm0Q#W@AVbMu;og~i}dVPFzmfq558wTp{^M|q)wu)^XB?cx$&98p|RqtR$J3tEvF6h}mtlvkHj)M&L!WtFvM zRg%qei%a2=F{`U^6LCWYYil|jfxNn= zThr;VF2p}JSsxu8g&YEfL87rpG~h#LI3ZBZ7ytv{*VotKjtBrx#1mWzB=W|_hMm2G zw+|hMC$iZbb^wP?WBB?p7z`$r>cjF6B9q<8WDifOH;LrtL-V828AOsB6#w}z_HYNd zgCkS{a3N8tepD|%Jl+*ga3d1ki6nQDE5(&ep-}1O7M3^{5)MytMq!;%01AUcV_c5$ zMM7biP!t9=4GawCa(UbkUI;fdB;=T_Eu6;}`m+OrI9v{gi$Vb`RshRCzzz;aqX9Gq zIA~>KX=!a^3rAyc2M(BHFgOB{jBrK+03Po`#N&w$P6!7lB-9iRcY?#ez+wqlfM8<- zx3RSc00ICI%`L2~tZen7&PG5odLGX@><=^9alqQm-NVc85Stsy1H;0iOyK-T6$(yZeD&tL1E#=OT{InW##1+6_r(+T;8O5lNyLxi9~W`6DdSp-PNo0 z^|EUX4ULUWx9{9(ZT+^bt*yP|Aw*|q=MRq_b#?#v`0+1KpZ4_h^!E1k_4W7n4-5

~( z*UGuEQJX#28z>$}m#L0s`lqiQtT!hFrCwr zdpGv!vnhXd$%gNqni-})91m`q@-6M(^%+K zi|fesz=r2GWi`KibRpq#&5aM4o;Pz^TIMwwTUFo9%_WsnBv!w6UTYPc@7VT)o}WMB zV1nSC32(S3vt)Xf6cjyP^MBDOm1wUjS^CTILsG!Hq21MW$Cm~Bn_b$6pU0|OcY7<` zjk5-4(Sw8cI_l0xXWx&ru;PFLUK|dU4O(==Ef%U?JJ_phU)wru8D{b$g&^420EU5} zkelkHV1F&1?sE6`HMmj#B$T_$@a}})opAY)j*qr)&EW4(_#9||X=Q6<7vtOX({NXB zPYx|PS@KQP-@C_5nZ=<~mu{w|?Z#u##%PrA1uz(wNv?RSfB1qXVy4PW93x%Kl E4}Iy}m;e9( literal 0 HcmV?d00001 diff --git a/browser/themes/windows/devtools/vview-edit.png b/browser/themes/windows/devtools/vview-edit.png new file mode 100644 index 0000000000000000000000000000000000000000..af42a28df9c4a32ecdc6cbe670abbe5c7f4fe316 GIT binary patch literal 238 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbL!O@L2`>;M1%^YZe5| zb90|Rf4*hQmKQHxOqej?*|TR)o;>mP_Wt|#@8idh`}_NCY;1s9fBpLP=g%Lhi+dV@ z9FdYBzhDLn1q&Ao2msL_{P?8ReW1Lrr;B4qMcmX=mO=*%c$gd%b?)!{|Npv=RZLqR zAW>8M~_8GB<&Umn7z9@ Yo_8ygMt?acKhR(XPgg&ebxsLQ08YbUw*UYD literal 0 HcmV?d00001 diff --git a/browser/themes/windows/devtools/widgets.css b/browser/themes/windows/devtools/widgets.css index d67e137e6b1..5f93498dba7 100644 --- a/browser/themes/windows/devtools/widgets.css +++ b/browser/themes/windows/devtools/widgets.css @@ -569,18 +569,20 @@ /* Variables and properties editing */ .variables-view-delete { - list-style-image: url("chrome://browser/skin/devtools/close-dark.png"); - opacity: 0; + list-style-image: url("chrome://browser/skin/devtools/vview-delete.png"); + -moz-image-region: rect(0,16px,16px,0); } .variables-view-delete:hover { - opacity: 1; + -moz-image-region: rect(0,32px,16px,16px); } -*:hover > .title > .variables-view-delete:not(:hover), -*:focus > .title > .variables-view-delete:not(:hover) { - opacity: 0.5; - transition: opacity 0.2s ease-in-out; +.variables-view-delete:active { + -moz-image-region: rect(0,48px,16px,32px); +} + +*:not(:hover) .variables-view-delete { + display: none; } .variables-view-delete > .toolbarbutton-text { @@ -588,7 +590,7 @@ } .variables-view-edit { - background: url("chrome://browser/skin/tabview/edit-light.png") center no-repeat; + background: url("chrome://browser/skin/devtools/vview-edit.png") center no-repeat; width: 20px; height: 16px; cursor: pointer; diff --git a/browser/themes/windows/jar.mn b/browser/themes/windows/jar.mn index 73c643a4c67..4c114880500 100644 --- a/browser/themes/windows/jar.mn +++ b/browser/themes/windows/jar.mn @@ -235,7 +235,8 @@ browser.jar: skin/classic/browser/devtools/tool-profiler.png (devtools/tool-profiler.png) skin/classic/browser/devtools/tool-network.png (devtools/tool-network.png) skin/classic/browser/devtools/close.png (devtools/close.png) - skin/classic/browser/devtools/close-dark.png (devtools/close-dark.png) + skin/classic/browser/devtools/vview-delete.png (devtools/vview-delete.png) + skin/classic/browser/devtools/vview-edit.png (devtools/vview-edit.png) skin/classic/browser/devtools/undock.png (devtools/undock.png) skin/classic/browser/devtools/font-inspector.css (devtools/font-inspector.css) skin/classic/browser/devtools/computedview.css (devtools/computedview.css) @@ -486,7 +487,8 @@ browser.jar: skin/classic/aero/browser/devtools/tool-profiler.png (devtools/tool-profiler.png) skin/classic/aero/browser/devtools/tool-network.png (devtools/tool-network.png) skin/classic/aero/browser/devtools/close.png (devtools/close.png) - skin/classic/aero/browser/devtools/close-dark.png (devtools/close-dark.png) + skin/classic/aero/browser/devtools/vview-delete.png (devtools/vview-delete.png) + skin/classic/aero/browser/devtools/vview-edit.png (devtools/vview-edit.png) skin/classic/aero/browser/devtools/undock.png (devtools/undock.png) skin/classic/aero/browser/devtools/font-inspector.css (devtools/font-inspector.css) skin/classic/aero/browser/devtools/computedview.css (devtools/computedview.css) From 48b1ec2424c956d7402713de918327072e339e18 Mon Sep 17 00:00:00 2001 From: Girish Sharma Date: Sat, 22 Jun 2013 19:59:07 +0530 Subject: [PATCH 08/16] Bug 886015 - Console js input looks broken on OS X, r=msucan --- browser/themes/shared/devtools/webconsole.inc.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/browser/themes/shared/devtools/webconsole.inc.css b/browser/themes/shared/devtools/webconsole.inc.css index 1218d494f5b..f465ec97d46 100644 --- a/browser/themes/shared/devtools/webconsole.inc.css +++ b/browser/themes/shared/devtools/webconsole.inc.css @@ -224,7 +224,7 @@ } .jsterm-input-node { - background: url("chrome://browser/skin/devtools/commandline.png") 4px 3px no-repeat; + background: -moz-image-rect(url("chrome://browser/skin/devtools/commandline-icon.png"), 0, 32, 16, 16) no-repeat; } :-moz-any(.jsterm-input-node, From 734a08efdb88e76199b9971f54515ee03f016d5d Mon Sep 17 00:00:00 2001 From: Mihai Sucan Date: Sat, 22 Jun 2013 22:47:33 +0300 Subject: [PATCH 09/16] Bug 886015 - Console js input looks broken on OS X; r=vporof --- browser/themes/shared/devtools/webconsole.inc.css | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/browser/themes/shared/devtools/webconsole.inc.css b/browser/themes/shared/devtools/webconsole.inc.css index f465ec97d46..ca6f71af814 100644 --- a/browser/themes/shared/devtools/webconsole.inc.css +++ b/browser/themes/shared/devtools/webconsole.inc.css @@ -84,6 +84,10 @@ color: inherit; } +.jsterm-input-container { + background: white; +} + .jsterm-input-node, .jsterm-complete-node { font-family: monospace; From 22e02d83b29ecc30d0c6c2b2729bce2e6832b37e Mon Sep 17 00:00:00 2001 From: Girish Sharma Date: Wed, 29 May 2013 01:06:16 +0530 Subject: [PATCH 10/16] Bug 872670 - Visually indicate that the tool is not supported on the target type in the Options panel, r=jwalker --- browser/devtools/framework/toolbox-options.js | 60 ++++++++++++++----- .../devtools/framework/toolbox-options.xul | 9 ++- .../en-US/chrome/browser/devtools/toolbox.dtd | 7 ++- .../browser/devtools/toolbox.properties | 6 ++ browser/themes/linux/devtools/toolbox.css | 5 ++ browser/themes/osx/devtools/toolbox.css | 5 ++ browser/themes/windows/devtools/toolbox.css | 5 ++ 7 files changed, 80 insertions(+), 17 deletions(-) diff --git a/browser/devtools/framework/toolbox-options.js b/browser/devtools/framework/toolbox-options.js index cea161dd14b..07cf9738aff 100644 --- a/browser/devtools/framework/toolbox-options.js +++ b/browser/devtools/framework/toolbox-options.js @@ -9,11 +9,28 @@ const {Cu} = require("chrome"); let Promise = require("sdk/core/promise"); let EventEmitter = require("devtools/shared/event-emitter"); +Cu.import('resource://gre/modules/XPCOMUtils.jsm'); Cu.import("resource://gre/modules/Services.jsm"); Cu.import("resource:///modules/devtools/gDevTools.jsm"); exports.OptionsPanel = OptionsPanel; +XPCOMUtils.defineLazyGetter(this, "l10n", function() { + let bundle = Services.strings.createBundle("chrome://browser/locale/devtools/toolbox.properties"); + let l10n = function(aName, ...aArgs) { + try { + if (aArgs.length == 0) { + return bundle.GetStringFromName(aName); + } else { + return bundle.formatStringFromName(aName, aArgs, aArgs.length); + } + } catch (ex) { + Services.console.logStringMessage("Error reading '" + aName + "'"); + } + }; + return l10n; +}); + /** * Represents the Options Panel in the Toolbox. */ @@ -27,6 +44,10 @@ function OptionsPanel(iframeWindow, toolbox) { OptionsPanel.prototype = { + get target() { + return this.toolbox.target; + }, + open: function OP_open() { let deferred = Promise.defer(); @@ -46,6 +67,8 @@ OptionsPanel.prototype = { setupToolsList: function OP_setupToolsList() { let defaultToolsBox = this.panelDoc.getElementById("default-tools-box"); let additionalToolsBox = this.panelDoc.getElementById("additional-tools-box"); + let toolsNotSupportedLabel = this.panelDoc.getElementById("tools-not-supported-label"); + let atleastOneToolNotSupported = false; defaultToolsBox.textContent = ""; additionalToolsBox.textContent = ""; @@ -71,31 +94,36 @@ OptionsPanel.prototype = { } }; + let createToolCheckbox = tool => { + let checkbox = this.panelDoc.createElement("checkbox"); + checkbox.setAttribute("id", tool.id); + checkbox.setAttribute("tooltiptext", tool.tooltip || ""); + if (tool.isTargetSupported(this.target)) { + checkbox.setAttribute("label", tool.label); + } + else { + atleastOneToolNotSupported = true; + checkbox.setAttribute("label", + l10n("options.toolNotSupportedMarker", tool.label)); + } + checkbox.setAttribute("checked", pref(tool.visibilityswitch)); + checkbox.addEventListener("command", onCheckboxClick.bind(checkbox, tool.id)); + return checkbox; + }; + // Populating the default tools lists for (let tool of gDevTools.getDefaultTools()) { if (tool.id == "options") { continue; } - let checkbox = this.panelDoc.createElement("checkbox"); - checkbox.setAttribute("id", tool.id); - checkbox.setAttribute("label", tool.label); - checkbox.setAttribute("tooltiptext", tool.tooltip || ""); - checkbox.setAttribute("checked", pref(tool.visibilityswitch)); - checkbox.addEventListener("command", onCheckboxClick.bind(checkbox, tool.id)); - defaultToolsBox.appendChild(checkbox); + defaultToolsBox.appendChild(createToolCheckbox(tool)); } // Populating the additional tools list that came from add-ons. let atleastOneAddon = false; for (let tool of gDevTools.getAdditionalTools()) { atleastOneAddon = true; - let checkbox = this.panelDoc.createElement("checkbox"); - checkbox.setAttribute("id", tool.id); - checkbox.setAttribute("label", tool.label); - checkbox.setAttribute("tooltiptext", tool.tooltip || ""); - checkbox.setAttribute("checked", pref(tool.visibilityswitch)); - checkbox.addEventListener("command", onCheckboxClick.bind(checkbox, tool.id)); - additionalToolsBox.appendChild(checkbox); + additionalToolsBox.appendChild(createToolCheckbox(tool)); } if (!atleastOneAddon) { @@ -103,6 +131,10 @@ OptionsPanel.prototype = { additionalToolsBox.previousSibling.style.display = "none"; } + if (!atleastOneToolNotSupported) { + toolsNotSupportedLabel.style.display = "none"; + } + this.panelWin.focus(); }, diff --git a/browser/devtools/framework/toolbox-options.xul b/browser/devtools/framework/toolbox-options.xul index 8ab8e030cf2..d3b14c0e292 100644 --- a/browser/devtools/framework/toolbox-options.xul +++ b/browser/devtools/framework/toolbox-options.xul @@ -18,6 +18,9 @@ diff --git a/browser/locales/en-US/chrome/browser/devtools/toolbox.dtd b/browser/locales/en-US/chrome/browser/devtools/toolbox.dtd index f7b028e6de8..62d0268f982 100644 --- a/browser/locales/en-US/chrome/browser/devtools/toolbox.dtd +++ b/browser/locales/en-US/chrome/browser/devtools/toolbox.dtd @@ -47,12 +47,17 @@ - tools. --> - + + + diff --git a/browser/locales/en-US/chrome/browser/devtools/toolbox.properties b/browser/locales/en-US/chrome/browser/devtools/toolbox.properties index 342646ffa97..15b6699bfe1 100644 --- a/browser/locales/en-US/chrome/browser/devtools/toolbox.properties +++ b/browser/locales/en-US/chrome/browser/devtools/toolbox.properties @@ -38,3 +38,9 @@ toolbox.defaultTitle=Developer Tools # LOCALIZATION NOTE (optionsButton.tooltip): This is used as the tooltip # for the optiosn panel tab. optionsButton.tooltip=Toolbox Options + +# LOCALIZATION NOTE (options.toolNotSupported): This is the template +# used to add a * marker to the label for the Options Panel tool checkbox for the +# tool which is not supported for the current toolbox target. +# The name of the tool: %1$S. +options.toolNotSupportedMarker=%1$S * diff --git a/browser/themes/linux/devtools/toolbox.css b/browser/themes/linux/devtools/toolbox.css index 53aca2687a9..7414fe21433 100644 --- a/browser/themes/linux/devtools/toolbox.css +++ b/browser/themes/linux/devtools/toolbox.css @@ -246,3 +246,8 @@ .options-groupbox > * { padding: 2px; } + +.options-citation-label { + font-size: 0.9rem !important; + /* !important is required otherwise font-size will still be 1.4rem */ +} diff --git a/browser/themes/osx/devtools/toolbox.css b/browser/themes/osx/devtools/toolbox.css index 1e41bbb196d..15c3d9a8186 100644 --- a/browser/themes/osx/devtools/toolbox.css +++ b/browser/themes/osx/devtools/toolbox.css @@ -232,3 +232,8 @@ .options-groupbox > * { padding: 2px; } + +.options-citation-label { + font-size: 0.9rem !important; + /* !important is required otherwise font-size will still be 1.4rem */ +} diff --git a/browser/themes/windows/devtools/toolbox.css b/browser/themes/windows/devtools/toolbox.css index 67ee64eb85e..0eeb638b06b 100644 --- a/browser/themes/windows/devtools/toolbox.css +++ b/browser/themes/windows/devtools/toolbox.css @@ -241,3 +241,8 @@ .options-groupbox > * { padding: 2px; } + +.options-citation-label { + font-size: 0.9rem !important; + /* !important is required otherwise font-size will still be 1.4rem */ +} From df728353dbfd8e18f7d08e83e25f84d49f3de171 Mon Sep 17 00:00:00 2001 From: Girish Sharma Date: Fri, 21 Jun 2013 01:48:56 +0530 Subject: [PATCH 11/16] Bug 881807 - Simplify advanced settings part of options panel, r=jwalker --- browser/devtools/framework/toolbox-options.js | 44 +++++++++++++++++-- .../devtools/framework/toolbox-options.xul | 40 +++++++++++------ .../en-US/chrome/browser/devtools/toolbox.dtd | 40 +++++++++-------- browser/themes/linux/devtools/toolbox.css | 10 ++++- browser/themes/osx/devtools/toolbox.css | 10 ++++- browser/themes/windows/devtools/toolbox.css | 10 ++++- 6 files changed, 116 insertions(+), 38 deletions(-) diff --git a/browser/devtools/framework/toolbox-options.js b/browser/devtools/framework/toolbox-options.js index 07cf9738aff..c2972928689 100644 --- a/browser/devtools/framework/toolbox-options.js +++ b/browser/devtools/framework/toolbox-options.js @@ -4,7 +4,7 @@ "use strict"; -const {Cu} = require("chrome"); +const {Cu, Cc, Ci} = require("chrome"); let Promise = require("sdk/core/promise"); let EventEmitter = require("devtools/shared/event-emitter"); @@ -39,6 +39,9 @@ function OptionsPanel(iframeWindow, toolbox) { this.panelWin = iframeWindow; this.toolbox = toolbox; + // Make restart method available from xul + this.panelWin.restart = this.restart; + EventEmitter.decorate(this); }; @@ -48,11 +51,12 @@ OptionsPanel.prototype = { return this.toolbox.target; }, - open: function OP_open() { + open: function() { let deferred = Promise.defer(); this.setupToolsList(); this.populatePreferences(); + this.prepareRestartPreferences(); this._disableJSClicked = this._disableJSClicked.bind(this); @@ -64,7 +68,7 @@ OptionsPanel.prototype = { return deferred.promise; }, - setupToolsList: function OP_setupToolsList() { + setupToolsList: function() { let defaultToolsBox = this.panelDoc.getElementById("default-tools-box"); let additionalToolsBox = this.panelDoc.getElementById("additional-tools-box"); let toolsNotSupportedLabel = this.panelDoc.getElementById("tools-not-supported-label"); @@ -138,7 +142,7 @@ OptionsPanel.prototype = { this.panelWin.focus(); }, - populatePreferences: function OP_populatePreferences() { + populatePreferences: function() { let prefCheckboxes = this.panelDoc.querySelectorAll("checkbox[data-pref]"); for (let checkbox of prefCheckboxes) { checkbox.checked = Services.prefs.getBoolPref(checkbox.getAttribute("data-pref")); @@ -174,6 +178,38 @@ OptionsPanel.prototype = { } }, + /** + * Hides any label in a box with class "hidden-labels-box" at page load. The + * labels are shown again when the user click on the checkbox in the box. + */ + prepareRestartPreferences: function() { + let labels = this.panelDoc.querySelectorAll(".hidden-labels-box > label"); + for (let label of labels) { + label.style.display = "none"; + } + let checkboxes = this.panelDoc.querySelectorAll(".hidden-labels-box > checkbox"); + for (let checkbox of checkboxes) { + checkbox.addEventListener("command", function(target) { + target.nextSibling.style.display = ""; + target.nextSibling.nextSibling.style.display = ""; + }.bind(null, checkbox)); + } + }, + + restart: function() { + let canceled = Cc["@mozilla.org/supports-PRBool;1"] + .createInstance(Ci.nsISupportsPRBool); + Services.obs.notifyObservers(canceled, "quit-application-requested", "restart"); + if (canceled.data) { + return; + } + + // restart + Cc['@mozilla.org/toolkit/app-startup;1'] + .getService(Ci.nsIAppStartup) + .quit(Ci.nsIAppStartup.eAttemptQuit | Ci.nsIAppStartup.eRestart); + }, + /** * Disables JavaScript for the currently loaded tab. We force a page refresh * here because setting docShell.allowJavascript to true fails to block JS diff --git a/browser/devtools/framework/toolbox-options.xul b/browser/devtools/framework/toolbox-options.xul index d3b14c0e292..43366916178 100644 --- a/browser/devtools/framework/toolbox-options.xul +++ b/browser/devtools/framework/toolbox-options.xul @@ -39,19 +39,33 @@