Merge f-t to m-c
3
b2g/dev/app/moz.build
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
# 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/.
|
@ -89,13 +89,16 @@
|
|||||||
|
|
||||||
<hbox id="header-general"
|
<hbox id="header-general"
|
||||||
class="header"
|
class="header"
|
||||||
|
hidden="true"
|
||||||
data-category="paneGeneral">
|
data-category="paneGeneral">
|
||||||
<image class="header-icon"/>
|
<image class="header-icon"/>
|
||||||
<label class="header-name">&paneGeneral.title;</label>
|
<label class="header-name">&paneGeneral.title;</label>
|
||||||
</hbox>
|
</hbox>
|
||||||
|
|
||||||
<!-- Startup -->
|
<!-- Startup -->
|
||||||
<groupbox id="startupGroup" data-category="paneGeneral">
|
<groupbox id="startupGroup"
|
||||||
|
data-category="paneGeneral"
|
||||||
|
hidden="true">
|
||||||
<caption><label>&startup.label;</label></caption>
|
<caption><label>&startup.label;</label></caption>
|
||||||
|
|
||||||
<hbox align="center">
|
<hbox align="center">
|
||||||
@ -152,7 +155,9 @@
|
|||||||
</groupbox>
|
</groupbox>
|
||||||
|
|
||||||
<!-- Downloads -->
|
<!-- Downloads -->
|
||||||
<groupbox id="downloadsGroup" data-category="paneGeneral">
|
<groupbox id="downloadsGroup"
|
||||||
|
data-category="paneGeneral"
|
||||||
|
hidden="true">
|
||||||
<caption><label>&downloads.label;</label></caption>
|
<caption><label>&downloads.label;</label></caption>
|
||||||
|
|
||||||
<radiogroup id="saveWhere"
|
<radiogroup id="saveWhere"
|
||||||
@ -191,7 +196,8 @@
|
|||||||
</groupbox>
|
</groupbox>
|
||||||
|
|
||||||
<!-- Tab preferences -->
|
<!-- Tab preferences -->
|
||||||
<groupbox data-category="paneGeneral">
|
<groupbox data-category="paneGeneral"
|
||||||
|
hidden="true">
|
||||||
<caption><label>&tabsGroup.label;</label></caption>
|
<caption><label>&tabsGroup.label;</label></caption>
|
||||||
<checkbox id="linkTargeting" label="&newWindowsAsTabs.label;"
|
<checkbox id="linkTargeting" label="&newWindowsAsTabs.label;"
|
||||||
accesskey="&newWindowsAsTabs.accesskey;"
|
accesskey="&newWindowsAsTabs.accesskey;"
|
||||||
|
@ -32,6 +32,8 @@ function init_all() {
|
|||||||
|
|
||||||
let categories = document.getElementById("categories");
|
let categories = document.getElementById("categories");
|
||||||
categories.addEventListener("select", event => gotoPref(event.target.value));
|
categories.addEventListener("select", event => gotoPref(event.target.value));
|
||||||
|
|
||||||
|
gotoPref("paneGeneral");
|
||||||
}
|
}
|
||||||
|
|
||||||
function selectCategory(name) {
|
function selectCategory(name) {
|
||||||
|
@ -21,59 +21,75 @@
|
|||||||
<content>
|
<content>
|
||||||
<xul:hbox class="notification-inner outset" flex="1" xbl:inherits="type">
|
<xul:hbox class="notification-inner outset" flex="1" xbl:inherits="type">
|
||||||
<xul:hbox anonid="details" align="center" flex="1">
|
<xul:hbox anonid="details" align="center" flex="1">
|
||||||
<xul:image anonid="messageImage" class="messageImage"/>
|
<xul:image class="translate-infobar-element messageImage"
|
||||||
|
anonid="messageImage"/>
|
||||||
<xul:deck anonid="translationStates" selectedIndex="0">
|
<xul:deck anonid="translationStates" selectedIndex="0">
|
||||||
|
|
||||||
<!-- offer to translate -->
|
<!-- offer to translate -->
|
||||||
<xul:hbox class="translate-offer-box" align="center">
|
<xul:hbox class="translate-offer-box" align="center">
|
||||||
<xul:label value="&translation.thisPageIsIn.label;"/>
|
<xul:label class="translate-infobar-element" value="&translation.thisPageIsIn.label;"/>
|
||||||
<xul:menulist anonid="detectedLanguage">
|
<xul:menulist class="translate-infobar-element" anonid="detectedLanguage">
|
||||||
<xul:menupopup/>
|
<xul:menupopup/>
|
||||||
</xul:menulist>
|
</xul:menulist>
|
||||||
<xul:label value="&translation.translateThisPage.label;"/>
|
<xul:label class="translate-infobar-element" value="&translation.translateThisPage.label;"/>
|
||||||
<xul:button label="&translation.translate.button;" anonid="translate"
|
<xul:button class="translate-infobar-element"
|
||||||
|
label="&translation.translate.button;"
|
||||||
|
anonid="translate"
|
||||||
oncommand="document.getBindingParent(this).translate();"/>
|
oncommand="document.getBindingParent(this).translate();"/>
|
||||||
<xul:button label="&translation.notNow.button;" anonid="notNow"
|
<xul:button class="translate-infobar-element"
|
||||||
|
label="&translation.notNow.button;" anonid="notNow"
|
||||||
oncommand="document.getBindingParent(this).close();"/>
|
oncommand="document.getBindingParent(this).close();"/>
|
||||||
</xul:hbox>
|
</xul:hbox>
|
||||||
|
|
||||||
<!-- translating -->
|
<!-- translating -->
|
||||||
<xul:vbox class="translating-box" pack="center">
|
<xul:hbox class="translating-box" pack="center">
|
||||||
<xul:label value="&translation.translatingContent.label;"/>
|
<xul:label class="translate-infobar-element"
|
||||||
</xul:vbox>
|
value="&translation.translatingContent.label;"/>
|
||||||
|
</xul:hbox>
|
||||||
|
|
||||||
<!-- translated -->
|
<!-- translated -->
|
||||||
<xul:hbox class="translated-box" align="center">
|
<xul:hbox class="translated-box" align="center">
|
||||||
<xul:label value="&translation.translatedFrom.label;"/>
|
<xul:label class="translate-infobar-element"
|
||||||
<xul:menulist anonid="fromLanguage"
|
value="&translation.translatedFrom.label;"/>
|
||||||
|
<xul:menulist class="translate-infobar-element"
|
||||||
|
anonid="fromLanguage"
|
||||||
oncommand="document.getBindingParent(this).translate()">
|
oncommand="document.getBindingParent(this).translate()">
|
||||||
<xul:menupopup/>
|
<xul:menupopup/>
|
||||||
</xul:menulist>
|
</xul:menulist>
|
||||||
<xul:label value="&translation.translatedTo.label;"/>
|
<xul:label class="translate-infobar-element"
|
||||||
|
value="&translation.translatedTo.label;"/>
|
||||||
<xul:menulist anonid="toLanguage"
|
<xul:menulist anonid="toLanguage"
|
||||||
oncommand="document.getBindingParent(this).translate()">
|
oncommand="document.getBindingParent(this).translate()">
|
||||||
<xul:menupopup/>
|
<xul:menupopup/>
|
||||||
</xul:menulist>
|
</xul:menulist>
|
||||||
<xul:label value="&translation.translatedToSuffix.label;"/>
|
<xul:label value="&translation.translatedToSuffix.label;"/>
|
||||||
<xul:button anonid="showOriginal"
|
<xul:button anonid="showOriginal"
|
||||||
|
class="translate-infobar-element"
|
||||||
label="&translation.showOriginal.button;"
|
label="&translation.showOriginal.button;"
|
||||||
oncommand="document.getBindingParent(this).showOriginal();"/>
|
oncommand="document.getBindingParent(this).showOriginal();"/>
|
||||||
<xul:button anonid="showTranslation"
|
<xul:button anonid="showTranslation"
|
||||||
|
class="translate-infobar-element"
|
||||||
label="&translation.showTranslation.button;"
|
label="&translation.showTranslation.button;"
|
||||||
oncommand="document.getBindingParent(this).showTranslation();"/>
|
oncommand="document.getBindingParent(this).showTranslation();"/>
|
||||||
</xul:hbox>
|
</xul:hbox>
|
||||||
|
|
||||||
<!-- error -->
|
<!-- error -->
|
||||||
<xul:hbox class="translation-error" align="center">
|
<xul:hbox class="translation-error" align="center">
|
||||||
<xul:label value="&translation.errorTranslating.label;"/>
|
<xul:label class="translate-infobar-element"
|
||||||
<xul:button label="&translation.tryAgain.button;" anonid="tryAgain"
|
value="&translation.errorTranslating.label;"/>
|
||||||
|
<xul:button class="translate-infobar-element"
|
||||||
|
label="&translation.tryAgain.button;"
|
||||||
|
anonid="tryAgain"
|
||||||
oncommand="document.getBindingParent(this).translate();"/>
|
oncommand="document.getBindingParent(this).translate();"/>
|
||||||
</xul:hbox>
|
</xul:hbox>
|
||||||
|
|
||||||
</xul:deck>
|
</xul:deck>
|
||||||
<xul:spacer flex="1"/>
|
<xul:spacer flex="1"/>
|
||||||
|
|
||||||
<xul:button type="menu" anonid="options" label="&translation.options.menu;">
|
<xul:button type="menu"
|
||||||
|
class="translate-infobar-element options-menu-button"
|
||||||
|
anonid="options"
|
||||||
|
label="&translation.options.menu;">
|
||||||
<xul:menupopup onpopupshowing="document.getBindingParent(this).optionsShowing();">
|
<xul:menupopup onpopupshowing="document.getBindingParent(this).optionsShowing();">
|
||||||
<xul:menuitem anonid="neverForLanguage"
|
<xul:menuitem anonid="neverForLanguage"
|
||||||
oncommand="document.getBindingParent(this).neverForLanguage();"/>
|
oncommand="document.getBindingParent(this).neverForLanguage();"/>
|
||||||
|
@ -412,7 +412,6 @@
|
|||||||
<button id="black-boxed-message-button"
|
<button id="black-boxed-message-button"
|
||||||
class="devtools-toolbarbutton"
|
class="devtools-toolbarbutton"
|
||||||
label="&debuggerUI.blackBoxMessage.unBlackBoxButton;"
|
label="&debuggerUI.blackBoxMessage.unBlackBoxButton;"
|
||||||
image="chrome://browser/skin/devtools/debugger-blackbox-eye.png"
|
|
||||||
command="unBlackBoxCommand"/>
|
command="unBlackBoxCommand"/>
|
||||||
</vbox>
|
</vbox>
|
||||||
<vbox id="source-progress-container"
|
<vbox id="source-progress-container"
|
||||||
|
@ -52,6 +52,9 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
#TabsToolbar:not([collapsed="true"]) + #nav-bar {
|
#TabsToolbar:not([collapsed="true"]) + #nav-bar {
|
||||||
|
border-top: 1px solid hsla(0,0%,0%,.3) !important;
|
||||||
|
background-clip: padding-box;
|
||||||
|
margin-top: -1px; /* Move up into the TabsToolbar for the inner highlight at the top of the nav-bar */
|
||||||
/* Position the toolbar above the bottom of background tabs */
|
/* Position the toolbar above the bottom of background tabs */
|
||||||
position: relative;
|
position: relative;
|
||||||
z-index: 1;
|
z-index: 1;
|
||||||
@ -1373,9 +1376,14 @@ toolbarbutton[sdk-button="true"][cui-areatype="toolbar"] > .toolbarbutton-icon {
|
|||||||
|
|
||||||
%include ../shared/translation/infobar.inc.css
|
%include ../shared/translation/infobar.inc.css
|
||||||
|
|
||||||
|
notification[value="translation"] {
|
||||||
|
min-height: 40px;
|
||||||
|
}
|
||||||
|
|
||||||
notification[value="translation"],
|
notification[value="translation"],
|
||||||
notification[value="translation"] button,
|
notification[value="translation"] button,
|
||||||
notification[value="translation"] menulist {
|
notification[value="translation"] menulist {
|
||||||
|
min-height: 30px;
|
||||||
color: #5A5959;
|
color: #5A5959;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1383,6 +1391,11 @@ notification[value="translation"] {
|
|||||||
background-color: #F2F1F0;
|
background-color: #F2F1F0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
notification[value="translation"] button,
|
||||||
|
notification[value="translation"] menulist {
|
||||||
|
-moz-padding-end: 1ch;
|
||||||
|
}
|
||||||
|
|
||||||
notification[value="translation"] menulist {
|
notification[value="translation"] menulist {
|
||||||
border: 1px solid #C1C1C1;
|
border: 1px solid #C1C1C1;
|
||||||
background-color: #FFF;
|
background-color: #FFF;
|
||||||
@ -1393,6 +1406,13 @@ notification[value="translation"] button {
|
|||||||
background-color: #F2F1F0;
|
background-color: #F2F1F0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
notification[value="translation"] button,
|
||||||
|
notification[value="translation"] menulist,
|
||||||
|
notification[value="translation"] menulist > .menulist-label-box {
|
||||||
|
-moz-margin-start: 1ch;
|
||||||
|
-moz-margin-end: 1ch;
|
||||||
|
}
|
||||||
|
|
||||||
notification[value="translation"] button:hover,
|
notification[value="translation"] button:hover,
|
||||||
notification[value="translation"] button:active,
|
notification[value="translation"] button:active,
|
||||||
notification[value="translation"] menulist:hover,
|
notification[value="translation"] menulist:hover,
|
||||||
@ -1412,6 +1432,16 @@ notification[value="translation"] button[anonid="translate"]:active {
|
|||||||
background-image: linear-gradient(#8DA726, #8DA726);
|
background-image: linear-gradient(#8DA726, #8DA726);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
notification[value="translation"] button > .button-box,
|
||||||
|
notification[value="translation"] button[type="menu"] > .button-box > .button-menu-dropmarker {
|
||||||
|
padding: 0;
|
||||||
|
-moz-margin-start: 3ch;
|
||||||
|
}
|
||||||
|
|
||||||
|
notification[value="translation"] button:not([type="menu"]) > .button-box {
|
||||||
|
-moz-margin-end: 3ch;
|
||||||
|
}
|
||||||
|
|
||||||
notification[value="translation"] menulist > .menulist-dropmarker {
|
notification[value="translation"] menulist > .menulist-dropmarker {
|
||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
@ -1721,23 +1751,9 @@ richlistitem[type~="action"][actiontype="switchtab"] > .ac-url-box > .ac-action-
|
|||||||
#TabsToolbar {
|
#TabsToolbar {
|
||||||
min-height: 0;
|
min-height: 0;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
position: relative;
|
|
||||||
margin-bottom: -@tabToolbarNavbarOverlap@;
|
margin-bottom: -@tabToolbarNavbarOverlap@;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* Draw the bottom border of the tabstrip:
|
|
||||||
*/
|
|
||||||
#TabsToolbar::after {
|
|
||||||
content: "";
|
|
||||||
position: absolute;
|
|
||||||
bottom: @tabToolbarNavbarOverlap@;
|
|
||||||
left: 0;
|
|
||||||
right: 0;
|
|
||||||
z-index: 0;
|
|
||||||
border-bottom: 1px solid hsla(0,0%,0%,.3);
|
|
||||||
}
|
|
||||||
|
|
||||||
#TabsToolbar:not(:-moz-lwtheme) {
|
#TabsToolbar:not(:-moz-lwtheme) {
|
||||||
-moz-appearance: menubar;
|
-moz-appearance: menubar;
|
||||||
color: -moz-menubartext;
|
color: -moz-menubartext;
|
||||||
|
@ -244,6 +244,7 @@ browser.jar:
|
|||||||
skin/classic/browser/devtools/magnifying-glass-light.png (../shared/devtools/images/magnifying-glass-light.png)
|
skin/classic/browser/devtools/magnifying-glass-light.png (../shared/devtools/images/magnifying-glass-light.png)
|
||||||
skin/classic/browser/devtools/magnifying-glass-light@2x.png (../shared/devtools/images/magnifying-glass-light@2x.png)
|
skin/classic/browser/devtools/magnifying-glass-light@2x.png (../shared/devtools/images/magnifying-glass-light@2x.png)
|
||||||
skin/classic/browser/devtools/itemToggle.png (../shared/devtools/images/itemToggle.png)
|
skin/classic/browser/devtools/itemToggle.png (../shared/devtools/images/itemToggle.png)
|
||||||
|
skin/classic/browser/devtools/itemToggle@2x.png (../shared/devtools/images/itemToggle@2x.png)
|
||||||
skin/classic/browser/devtools/itemArrow-dark-rtl.svg (../shared/devtools/images/itemArrow-dark-rtl.svg)
|
skin/classic/browser/devtools/itemArrow-dark-rtl.svg (../shared/devtools/images/itemArrow-dark-rtl.svg)
|
||||||
skin/classic/browser/devtools/itemArrow-dark-ltr.svg (../shared/devtools/images/itemArrow-dark-ltr.svg)
|
skin/classic/browser/devtools/itemArrow-dark-ltr.svg (../shared/devtools/images/itemArrow-dark-ltr.svg)
|
||||||
skin/classic/browser/devtools/itemArrow-rtl.svg (../shared/devtools/images/itemArrow-rtl.svg)
|
skin/classic/browser/devtools/itemArrow-rtl.svg (../shared/devtools/images/itemArrow-rtl.svg)
|
||||||
@ -265,7 +266,6 @@ browser.jar:
|
|||||||
skin/classic/browser/devtools/debugger-step-out@2x.png (../shared/devtools/images/debugger-step-out@2x.png)
|
skin/classic/browser/devtools/debugger-step-out@2x.png (../shared/devtools/images/debugger-step-out@2x.png)
|
||||||
skin/classic/browser/devtools/debugger-step-over.png (../shared/devtools/images/debugger-step-over.png)
|
skin/classic/browser/devtools/debugger-step-over.png (../shared/devtools/images/debugger-step-over.png)
|
||||||
skin/classic/browser/devtools/debugger-step-over@2x.png (../shared/devtools/images/debugger-step-over@2x.png)
|
skin/classic/browser/devtools/debugger-step-over@2x.png (../shared/devtools/images/debugger-step-over@2x.png)
|
||||||
skin/classic/browser/devtools/debugger-blackbox-eye.png (../shared/devtools/images/debugger-blackbox-eye.png)
|
|
||||||
skin/classic/browser/devtools/debugger-blackbox.png (../shared/devtools/images/debugger-blackbox.png)
|
skin/classic/browser/devtools/debugger-blackbox.png (../shared/devtools/images/debugger-blackbox.png)
|
||||||
skin/classic/browser/devtools/debugger-blackbox@2x.png (../shared/devtools/images/debugger-blackbox@2x.png)
|
skin/classic/browser/devtools/debugger-blackbox@2x.png (../shared/devtools/images/debugger-blackbox@2x.png)
|
||||||
skin/classic/browser/devtools/debugger-toggleBreakpoints.png (../shared/devtools/images/debugger-toggleBreakpoints.png)
|
skin/classic/browser/devtools/debugger-toggleBreakpoints.png (../shared/devtools/images/debugger-toggleBreakpoints.png)
|
||||||
|
Before Width: | Height: | Size: 192 B After Width: | Height: | Size: 143 B |
@ -3616,6 +3616,8 @@ toolbarbutton.chevron > .toolbarbutton-menu-dropmarker {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Translation */
|
||||||
|
|
||||||
.translate-notification-icon,
|
.translate-notification-icon,
|
||||||
#translate-notification-icon {
|
#translate-notification-icon {
|
||||||
list-style-image: url(chrome://browser/skin/translation-16.png);
|
list-style-image: url(chrome://browser/skin/translation-16.png);
|
||||||
@ -3642,6 +3644,123 @@ toolbarbutton.chevron > .toolbarbutton-menu-dropmarker {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
%include ../shared/translation/infobar.inc.css
|
||||||
|
|
||||||
|
notification[value="translation"] {
|
||||||
|
color: #484848;
|
||||||
|
background-color: #EFEFEF;
|
||||||
|
background-image: none;
|
||||||
|
border-top: none;
|
||||||
|
border-bottom: 1px solid #c4c4c4;
|
||||||
|
padding-top: 1px;
|
||||||
|
padding-bottom: 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.translate-infobar-element {
|
||||||
|
margin-top: 0 !important;
|
||||||
|
margin-bottom: 0 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
button.translate-infobar-element {
|
||||||
|
background: linear-gradient(rgba(255, 255, 255, 0.8), rgba(255, 255, 255, 0.1)) repeat scroll 0% 0% padding-box transparent;
|
||||||
|
color: #333333;
|
||||||
|
border: 1px solid;
|
||||||
|
border-color: rgba(23, 51, 78, 0.15) rgba(23, 51, 78, 0.17) rgba(23, 51, 78, 0.2);
|
||||||
|
box-shadow: 0px 0px 2px rgba(255, 255, 255, 0.5) inset, 0px 1px 0px rgba(255, 255, 255, 0.2);
|
||||||
|
transition-property: background-color, border-color, box-shadow;
|
||||||
|
transition-duration: 150ms;
|
||||||
|
min-height: 22px;
|
||||||
|
min-width: 0;
|
||||||
|
padding: 0 0.8em !important;
|
||||||
|
margin-left: 0.25em;
|
||||||
|
margin-right: 0.25em;
|
||||||
|
}
|
||||||
|
|
||||||
|
button.translate-infobar-element .button-text {
|
||||||
|
margin-left: 0 !important;
|
||||||
|
margin-right: 0 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
label.translate-infobar-element {
|
||||||
|
padding-top: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
button.translate-infobar-element:hover {
|
||||||
|
background: #f0f0f0;
|
||||||
|
box-shadow: 0 1px 0 hsla(0,0%,100%,.1) inset, 0 0 0 1px hsla(0,0%,100%,.05) inset, 0 1px 0 hsla(210,54%,20%,.01), 0 0 4px hsla(206,100%,20%,.1);
|
||||||
|
}
|
||||||
|
|
||||||
|
button.translate-infobar-element:active {
|
||||||
|
box-shadow: 0 1px 1px hsla(211,79%,6%,.1) inset, 0 0 1px hsla(211,79%,6%,.2) inset;
|
||||||
|
transition-duration: 0ms;
|
||||||
|
}
|
||||||
|
|
||||||
|
button.translate-infobar-element[anonid="translate"] {
|
||||||
|
color: #ffffff;
|
||||||
|
background-image: linear-gradient(#4cb1ff, #1793e5);
|
||||||
|
box-shadow: 0 1px 0 hsla(0,0%,100%,.2) inset, 0 0 0 1px hsla(0,0%,100%,.1) inset, 0 1px 0 hsla(210,54%,20%,.03);
|
||||||
|
border-color: hsla(210,54%,20%,.15) hsla(210,54%,20%,.17) hsla(210,54%,20%,.2);
|
||||||
|
padding: 0 1.1em !important;;
|
||||||
|
}
|
||||||
|
|
||||||
|
button.translate-infobar-element[anonid="translate"]:hover {
|
||||||
|
background-image: linear-gradient(#66bdff, #0d9eff);
|
||||||
|
}
|
||||||
|
|
||||||
|
button.translate-infobar-element.options-menu-button {
|
||||||
|
-moz-padding-start: 0.5em !important;
|
||||||
|
-moz-padding-end: 0.3em !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
button.translate-infobar-element.options-menu-button > .button-box > .button-menu-dropmarker {
|
||||||
|
display: -moz-box;
|
||||||
|
list-style-image: url("chrome://browser/skin/toolbarbutton-dropmarker.png");
|
||||||
|
padding: 0 !important;
|
||||||
|
margin: 0 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (min-resolution: 1.25dppx) {
|
||||||
|
button.translate-infobar-element.options-menu-button > .button-box > .button-menu-dropmarker {
|
||||||
|
list-style-image: url("chrome://browser/skin/toolbarbutton-dropmarker@2x.png");
|
||||||
|
}
|
||||||
|
|
||||||
|
button.translate-infobar-element.options-menu-button > .button-box > .button-menu-dropmarker > .dropmarker-icon {
|
||||||
|
width: 7px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
menulist.translate-infobar-element {
|
||||||
|
text-shadow: 0 1px 1px #FEFFFE;
|
||||||
|
border: 1px solid;
|
||||||
|
border-color: rgba(23, 51, 78, 0.15) rgba(23, 51, 78, 0.17) rgba(23, 51, 78, 0.2);
|
||||||
|
box-shadow: 0 1px 1px 0 #FFFFFF, inset 0 2px 2px 0 #FFFFFF;
|
||||||
|
background-color: #F1F1F1;
|
||||||
|
background-image: linear-gradient(#FFFFFF, rgba(255,255,255,0.1));
|
||||||
|
color: #333333;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
menulist.translate-infobar-element > .menulist-label-box {
|
||||||
|
padding-top: 1px;
|
||||||
|
-moz-padding-start: 0.3em;
|
||||||
|
margin-top: 0;
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
menulist.translate-infobar-element:hover {
|
||||||
|
background-image: linear-gradient(#FFFFFF, rgba(255,255,255,0.6));
|
||||||
|
}
|
||||||
|
|
||||||
|
menulist.translate-infobar-element[open="true"] {
|
||||||
|
background-image: linear-gradient(rgba(255,255,255,0.1),
|
||||||
|
rgba(255,255,255,0.6));
|
||||||
|
}
|
||||||
|
|
||||||
|
menulist.translate-infobar-element > .menulist-dropmarker {
|
||||||
|
display: -moz-box;
|
||||||
|
list-style-image: url("chrome://global/skin/icons/menulist-dropmarker.png");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
.popup-notification-icon {
|
.popup-notification-icon {
|
||||||
width: 64px;
|
width: 64px;
|
||||||
|
@ -12,8 +12,7 @@
|
|||||||
#gcli-tooltip-root {
|
#gcli-tooltip-root {
|
||||||
border: 1px solid hsl(206,37%,4%);
|
border: 1px solid hsl(206,37%,4%);
|
||||||
box-shadow: 0 1px 0 hsla(209,29%,72%,.25) inset;
|
box-shadow: 0 1px 0 hsla(209,29%,72%,.25) inset;
|
||||||
background-image: url(background-noise-toolbar.png),
|
background-image: linear-gradient(hsla(209,18%,18%,0.9), hsl(209,23%,18%));
|
||||||
linear-gradient(hsla(209,18%,18%,0.9), hsl(209,23%,18%));
|
|
||||||
border-radius: 3px;
|
border-radius: 3px;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -36,7 +35,6 @@
|
|||||||
border-left: 1px solid hsl(206,37%,4%);
|
border-left: 1px solid hsl(206,37%,4%);
|
||||||
border-right: 1px solid hsl(206,37%,4%);
|
border-right: 1px solid hsl(206,37%,4%);
|
||||||
background-color: hsl(209,23%,18%);
|
background-color: hsl(209,23%,18%);
|
||||||
background-image: url(background-noise-toolbar.png);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.gcli-tt-description,
|
.gcli-tt-description,
|
||||||
|
@ -362,6 +362,7 @@ browser.jar:
|
|||||||
skin/classic/browser/devtools/magnifying-glass-light.png (../shared/devtools/images/magnifying-glass-light.png)
|
skin/classic/browser/devtools/magnifying-glass-light.png (../shared/devtools/images/magnifying-glass-light.png)
|
||||||
skin/classic/browser/devtools/magnifying-glass-light@2x.png (../shared/devtools/images/magnifying-glass-light@2x.png)
|
skin/classic/browser/devtools/magnifying-glass-light@2x.png (../shared/devtools/images/magnifying-glass-light@2x.png)
|
||||||
skin/classic/browser/devtools/itemToggle.png (../shared/devtools/images/itemToggle.png)
|
skin/classic/browser/devtools/itemToggle.png (../shared/devtools/images/itemToggle.png)
|
||||||
|
skin/classic/browser/devtools/itemToggle@2x.png (../shared/devtools/images/itemToggle@2x.png)
|
||||||
skin/classic/browser/devtools/itemArrow-dark-rtl.svg (../shared/devtools/images/itemArrow-dark-rtl.svg)
|
skin/classic/browser/devtools/itemArrow-dark-rtl.svg (../shared/devtools/images/itemArrow-dark-rtl.svg)
|
||||||
skin/classic/browser/devtools/itemArrow-dark-ltr.svg (../shared/devtools/images/itemArrow-dark-ltr.svg)
|
skin/classic/browser/devtools/itemArrow-dark-ltr.svg (../shared/devtools/images/itemArrow-dark-ltr.svg)
|
||||||
skin/classic/browser/devtools/itemArrow-rtl.svg (../shared/devtools/images/itemArrow-rtl.svg)
|
skin/classic/browser/devtools/itemArrow-rtl.svg (../shared/devtools/images/itemArrow-rtl.svg)
|
||||||
@ -383,7 +384,6 @@ browser.jar:
|
|||||||
skin/classic/browser/devtools/debugger-step-out@2x.png (../shared/devtools/images/debugger-step-out@2x.png)
|
skin/classic/browser/devtools/debugger-step-out@2x.png (../shared/devtools/images/debugger-step-out@2x.png)
|
||||||
skin/classic/browser/devtools/debugger-step-over.png (../shared/devtools/images/debugger-step-over.png)
|
skin/classic/browser/devtools/debugger-step-over.png (../shared/devtools/images/debugger-step-over.png)
|
||||||
skin/classic/browser/devtools/debugger-step-over@2x.png (../shared/devtools/images/debugger-step-over@2x.png)
|
skin/classic/browser/devtools/debugger-step-over@2x.png (../shared/devtools/images/debugger-step-over@2x.png)
|
||||||
skin/classic/browser/devtools/debugger-blackbox-eye.png (../shared/devtools/images/debugger-blackbox-eye.png)
|
|
||||||
skin/classic/browser/devtools/debugger-blackbox.png (../shared/devtools/images/debugger-blackbox.png)
|
skin/classic/browser/devtools/debugger-blackbox.png (../shared/devtools/images/debugger-blackbox.png)
|
||||||
skin/classic/browser/devtools/debugger-blackbox@2x.png (../shared/devtools/images/debugger-blackbox@2x.png)
|
skin/classic/browser/devtools/debugger-blackbox@2x.png (../shared/devtools/images/debugger-blackbox@2x.png)
|
||||||
skin/classic/browser/devtools/debugger-toggleBreakpoints.png (../shared/devtools/images/debugger-toggleBreakpoints.png)
|
skin/classic/browser/devtools/debugger-toggleBreakpoints.png (../shared/devtools/images/debugger-toggleBreakpoints.png)
|
||||||
|
Before Width: | Height: | Size: 159 B After Width: | Height: | Size: 127 B |
Before Width: | Height: | Size: 186 B After Width: | Height: | Size: 188 B |
@ -111,6 +111,24 @@
|
|||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Debugger unblackbox button */
|
||||||
|
|
||||||
|
#black-boxed-message-button > .button-box > .button-icon {
|
||||||
|
width: 16px;
|
||||||
|
height: 16px;
|
||||||
|
background-image: url(debugger-blackbox.png);
|
||||||
|
background-position: 0 0;
|
||||||
|
background-size: 32px 16px;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
-moz-margin-end: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (min-resolution: 2dppx) {
|
||||||
|
#black-boxed-message-button > .button-box > .button-icon {
|
||||||
|
background-image: url(debugger-blackbox@2x.png);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* Black box message and source progress meter */
|
/* Black box message and source progress meter */
|
||||||
|
|
||||||
#black-boxed-message,
|
#black-boxed-message,
|
||||||
|
Before Width: | Height: | Size: 326 B |
Before Width: | Height: | Size: 326 B |
BIN
browser/themes/shared/devtools/images/itemToggle@2x.png
Normal file
After Width: | Height: | Size: 1.0 KiB |
@ -406,6 +406,11 @@ label.requests-menu-status-code {
|
|||||||
-moz-image-region: rect(0px,16px,16px,0px);
|
-moz-image-region: rect(0px,16px,16px,0px);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#details-pane-toggle > .toolbarbutton-icon {
|
||||||
|
width: 16px;
|
||||||
|
height: 16px;
|
||||||
|
}
|
||||||
|
|
||||||
#details-pane-toggle[pane-collapsed] {
|
#details-pane-toggle[pane-collapsed] {
|
||||||
list-style-image: url("chrome://browser/skin/devtools/debugger-expand.png");
|
list-style-image: url("chrome://browser/skin/devtools/debugger-expand.png");
|
||||||
}
|
}
|
||||||
@ -414,6 +419,21 @@ label.requests-menu-status-code {
|
|||||||
-moz-image-region: rect(0px,32px,16px,16px);
|
-moz-image-region: rect(0px,32px,16px,16px);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@media (min-resolution: 2dppx) {
|
||||||
|
#details-pane-toggle {
|
||||||
|
list-style-image: url("chrome://browser/skin/devtools/debugger-collapse@2x.png");
|
||||||
|
-moz-image-region: rect(0px,32px,32px,0px);
|
||||||
|
}
|
||||||
|
|
||||||
|
#details-pane-toggle[pane-collapsed] {
|
||||||
|
list-style-image: url("chrome://browser/skin/devtools/debugger-expand@2x.png");
|
||||||
|
}
|
||||||
|
|
||||||
|
#details-pane-toggle:active {
|
||||||
|
-moz-image-region: rect(0px,64px,32px,32px);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* Network request details tabpanels */
|
/* Network request details tabpanels */
|
||||||
|
|
||||||
.theme-dark .tabpanel-content {
|
.theme-dark .tabpanel-content {
|
||||||
|
@ -70,7 +70,8 @@
|
|||||||
|
|
||||||
.side-menu-widget-item-checkbox .checkbox-check {
|
.side-menu-widget-item-checkbox .checkbox-check {
|
||||||
-moz-appearance: none;
|
-moz-appearance: none;
|
||||||
background: url(itemToggle.png);
|
background-image: url(itemToggle.png);
|
||||||
|
background-color: transparent;
|
||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
background-clip: content-box;
|
background-clip: content-box;
|
||||||
background-size: 32px 16px;
|
background-size: 32px 16px;
|
||||||
@ -80,6 +81,12 @@
|
|||||||
border: 0;
|
border: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@media (min-resolution: 2dppx) {
|
||||||
|
.side-menu-widget-item-checkbox .checkbox-check {
|
||||||
|
background-image: url(itemToggle@2x.png);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.side-menu-widget-item-checkbox[checked] .checkbox-check {
|
.side-menu-widget-item-checkbox[checked] .checkbox-check {
|
||||||
background-position: 0 0;
|
background-position: 0 0;
|
||||||
}
|
}
|
||||||
|
@ -104,10 +104,17 @@
|
|||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
background-clip: content-box;
|
background-clip: content-box;
|
||||||
background-position: 0 8px;
|
background-position: 0 8px;
|
||||||
|
background-size: 48px 24px;
|
||||||
width: 24px;
|
width: 24px;
|
||||||
height: 40px;
|
height: 40px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@media (min-resolution: 2dppx) {
|
||||||
|
.stylesheet-enabled {
|
||||||
|
background-image: url(itemToggle@2x.png);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.disabled > .stylesheet-enabled {
|
.disabled > .stylesheet-enabled {
|
||||||
background-position: -24px 8px;
|
background-position: -24px 8px;
|
||||||
}
|
}
|
||||||
@ -193,11 +200,11 @@ h3 {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.theme-light .csscoverage-report {
|
.theme-light .csscoverage-report {
|
||||||
background: url(background-noise-toolbar.png), #f0f1f2; /* Toolbars */
|
background-color: #f0f1f2; /* Toolbars */
|
||||||
}
|
}
|
||||||
|
|
||||||
.theme-dark .csscoverage-report {
|
.theme-dark .csscoverage-report {
|
||||||
background: url(background-noise-toolbar.png), #343c45; /* Toolbars */
|
background-color: #343c45; /* Toolbars */
|
||||||
}
|
}
|
||||||
|
|
||||||
.csscoverage-report-container {
|
.csscoverage-report-container {
|
||||||
|
@ -141,35 +141,28 @@ menulist {
|
|||||||
color: #333333;
|
color: #333333;
|
||||||
line-height: 20px;
|
line-height: 20px;
|
||||||
text-shadow: 0 1px 1px #FEFFFE;
|
text-shadow: 0 1px 1px #FEFFFE;
|
||||||
border: 1px solid rgba(23,50,77,0.4);
|
border: 1px solid #C1C1C1;
|
||||||
-moz-border-top-colors: none !important;
|
-moz-border-top-colors: none !important;
|
||||||
-moz-border-right-colors: none !important;
|
-moz-border-right-colors: none !important;
|
||||||
-moz-border-bottom-colors: none !important;
|
-moz-border-bottom-colors: none !important;
|
||||||
-moz-border-left-colors: none !important;
|
-moz-border-left-colors: none !important;
|
||||||
border-radius: 5px;
|
border-radius: 2px;
|
||||||
box-shadow: 0 1px 1px 0 #FFFFFF, inset 0 2px 2px 0 #FFFFFF;
|
background-color: #FBFBFB;
|
||||||
background-color: #F1F1F1;
|
|
||||||
background-image: linear-gradient(#FFFFFF, rgba(255,255,255,0.1));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
button:not([disabled="true"]):hover,
|
button:not([disabled="true"]):hover,
|
||||||
menulist:not([disabled="true"]):hover {
|
menulist:not([disabled="true"]):hover {
|
||||||
background-image: linear-gradient(#FFFFFF, rgba(255,255,255,0.6));
|
background-color: #EBEBEB;
|
||||||
}
|
}
|
||||||
|
|
||||||
button:not([disabled="true"]):hover:active,
|
button:not([disabled="true"]):hover:active,
|
||||||
menulist[open="true"]:not([disabled="true"]) {
|
menulist[open="true"]:not([disabled="true"]) {
|
||||||
background-image: linear-gradient(rgba(255,255,255,0.1),
|
background-color: #DADADA;
|
||||||
rgba(255,255,255,0.6));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
button[disabled="true"],
|
button[disabled="true"],
|
||||||
menulist[disabled="true"] {
|
menulist[disabled="true"] {
|
||||||
background-image: linear-gradient(rgba(255,255,255,0.5),
|
opacity: 0.5;
|
||||||
rgba(255,255,255,0.1));
|
|
||||||
border-color: rgba(23,50,77,0.25);
|
|
||||||
color: rgba(115,121,128,0.5);
|
|
||||||
text-shadow: 0 1px 1px #FFFFFF;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
button > .button-box,
|
button > .button-box,
|
||||||
@ -241,12 +234,12 @@ button[type="menu"] > .button-box > .button-menu-dropmarker {
|
|||||||
|
|
||||||
.spinbuttons-up {
|
.spinbuttons-up {
|
||||||
margin-top: 2px !important;
|
margin-top: 2px !important;
|
||||||
border-radius: 4px 4px 0 0;
|
border-radius: 1px 1px 0 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.spinbuttons-down {
|
.spinbuttons-down {
|
||||||
margin-bottom: 2px !important;
|
margin-bottom: 2px !important;
|
||||||
border-radius: 0 0 4px 4px;
|
border-radius: 0 0 1px 1px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.spinbuttons-button > .button-box {
|
.spinbuttons-button > .button-box {
|
||||||
@ -303,7 +296,7 @@ menulist > menupopup,
|
|||||||
button[type="menu"] > menupopup {
|
button[type="menu"] > menupopup {
|
||||||
-moz-appearance: none;
|
-moz-appearance: none;
|
||||||
border: 1px solid rgba(23,50,77,0.4);
|
border: 1px solid rgba(23,50,77,0.4);
|
||||||
border-radius: 5px;
|
border-radius: 2px;
|
||||||
background-color: #FFFFFF;
|
background-color: #FFFFFF;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -358,27 +351,21 @@ textbox {
|
|||||||
text-shadow: 0 1px 1px #FEFFFE;
|
text-shadow: 0 1px 1px #FEFFFE;
|
||||||
padding-right: 10px;
|
padding-right: 10px;
|
||||||
padding-left: 10px;
|
padding-left: 10px;
|
||||||
border: 1px solid rgba(23,50,77,0.4);
|
border: 1px solid #C1C1C1;
|
||||||
-moz-border-top-colors: none !important;
|
-moz-border-top-colors: none !important;
|
||||||
-moz-border-right-colors: none !important;
|
-moz-border-right-colors: none !important;
|
||||||
-moz-border-bottom-colors: none !important;
|
-moz-border-bottom-colors: none !important;
|
||||||
-moz-border-left-colors: none !important;
|
-moz-border-left-colors: none !important;
|
||||||
border-radius: 5px;
|
border-radius: 2px;
|
||||||
box-shadow: 0 1px 1px 0 #FFFFFF, inset 0 2px 2px 0 rgba(0,0,0,0.03);
|
background-color: #FFF;
|
||||||
background-color: #F1F1F1;
|
|
||||||
background-image: linear-gradient(#FFFFFF, rgba(255,255,255,0.8));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
textbox[focused] {
|
textbox[focused] {
|
||||||
color: #424E5A;
|
border-color: #0095DD;
|
||||||
border-color: #0096DC;
|
|
||||||
box-shadow: 0 0 2px 2px rgba(0,150,220,0.35), inset 0 0 2px 0 #0096DC;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
textbox[disabled="true"] {
|
textbox[disabled="true"] {
|
||||||
color: rgba(115,121,128,0.5);
|
opacity: 0.5;
|
||||||
border-color: rgba(23,50,77,0.25);
|
|
||||||
background-image: linear-gradient(rgba(255,255,255,0.5), rgba(255,255,255,0.4));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Links */
|
/* Links */
|
||||||
@ -388,7 +375,7 @@ textbox[disabled="true"] {
|
|||||||
html|a.inline-link {
|
html|a.inline-link {
|
||||||
font-size: 1.25rem;
|
font-size: 1.25rem;
|
||||||
line-height: 22px;
|
line-height: 22px;
|
||||||
color: #0096DC;
|
color: #0095DD;
|
||||||
}
|
}
|
||||||
|
|
||||||
.text-link:hover,
|
.text-link:hover,
|
||||||
@ -711,9 +698,9 @@ filefield {
|
|||||||
font-size: 1.25rem;
|
font-size: 1.25rem;
|
||||||
line-height: 22px;
|
line-height: 22px;
|
||||||
color: #333333;
|
color: #333333;
|
||||||
border: 1px solid rgba(23,50,77,0.4);
|
border: 1px solid #C1C1C1;
|
||||||
border-radius: 5px;
|
border-radius: 2px;
|
||||||
background-color: #F1F1F1;
|
background-color: #FBFBFB;
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -725,35 +712,32 @@ filefield {
|
|||||||
color: #333333;
|
color: #333333;
|
||||||
height: 36px;
|
height: 36px;
|
||||||
padding: 0 10px;
|
padding: 0 10px;
|
||||||
background-color: #F7F7F7;
|
background-color: #FBFBFB;
|
||||||
border: 1px solid #CCCCCC;
|
border: 1px solid #C1C1C1;
|
||||||
-moz-border-top-colors: none;
|
-moz-border-top-colors: none;
|
||||||
-moz-border-right-colors: none;
|
-moz-border-right-colors: none;
|
||||||
-moz-border-bottom-colors: none;
|
-moz-border-bottom-colors: none;
|
||||||
-moz-border-left-colors: none;
|
-moz-border-left-colors: none;
|
||||||
text-shadow: 0 1px 1px #FFFFFF;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#typeColumn:-moz-locale-dir(ltr),
|
#typeColumn:-moz-locale-dir(ltr),
|
||||||
#actionColumn:-moz-locale-dir(rtl) {
|
#actionColumn:-moz-locale-dir(rtl) {
|
||||||
border-top-left-radius: 5px;
|
border-top-left-radius: 2px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#typeColumn:-moz-locale-dir(rtl),
|
#typeColumn:-moz-locale-dir(rtl),
|
||||||
#actionColumn:-moz-locale-dir(ltr) {
|
#actionColumn:-moz-locale-dir(ltr) {
|
||||||
border-top-right-radius: 5px;
|
border-top-right-radius: 2px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#typeColumn:hover,
|
#typeColumn:hover,
|
||||||
#actionColumn:hover {
|
#actionColumn:hover {
|
||||||
border-color: #737980;
|
border-color: #0095DD;
|
||||||
}
|
}
|
||||||
|
|
||||||
#typeColumn:hover:active,
|
#typeColumn:hover:active,
|
||||||
#actionColumn:hover:active {
|
#actionColumn:hover:active {
|
||||||
padding: 0 10px;
|
padding: 0 10px;
|
||||||
border-color: #0096DC;
|
|
||||||
box-shadow: 0 0 2px 2px rgba(0,150,220,0.35), inset 0 0 2px 0 #0096DC;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#typeColumn > .treecol-sortdirection[sortDirection=ascending],
|
#typeColumn > .treecol-sortdirection[sortDirection=ascending],
|
||||||
@ -813,19 +797,16 @@ description > html|a {
|
|||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Sync Pane */
|
#offlineAppsList,
|
||||||
|
|
||||||
#syncEnginesList {
|
#syncEnginesList {
|
||||||
-moz-appearance: none;
|
-moz-appearance: none;
|
||||||
color: #333333;
|
color: #333333;
|
||||||
padding: 10px;
|
padding: 10px;
|
||||||
border: 1px solid rgba(23,50,77,0.4);
|
border: 1px solid #C1C1C1;
|
||||||
border-radius: 5px;
|
border-radius: 2px;
|
||||||
background-color: #F1F1F1;
|
background-color: #FBFBFB;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Advanced Pane */
|
|
||||||
|
|
||||||
#advancedPrefs {
|
#advancedPrefs {
|
||||||
padding-bottom: 0; /* no padding needed in inContent prefs */
|
padding-bottom: 0; /* no padding needed in inContent prefs */
|
||||||
}
|
}
|
||||||
@ -835,15 +816,6 @@ description > html|a {
|
|||||||
-moz-margin-start: 60px;
|
-moz-margin-start: 60px;
|
||||||
}
|
}
|
||||||
|
|
||||||
#offlineAppsList {
|
|
||||||
-moz-appearance: none;
|
|
||||||
color: #333333;
|
|
||||||
padding: 2px;
|
|
||||||
border: 1px solid rgba(23,50,77,0.4);
|
|
||||||
border-radius: 5px;
|
|
||||||
background-color: #F1F1F1;
|
|
||||||
}
|
|
||||||
|
|
||||||
#telemetryLearnMore,
|
#telemetryLearnMore,
|
||||||
#FHRLearnMore,
|
#FHRLearnMore,
|
||||||
#crashReporterLearnMore {
|
#crashReporterLearnMore {
|
||||||
|
@ -26,10 +26,6 @@ notification[value="translation"][state="translating"] .messageImage {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
notification[value="translation"] {
|
|
||||||
min-height: 40px;
|
|
||||||
}
|
|
||||||
|
|
||||||
notification[value="translation"] button,
|
notification[value="translation"] button,
|
||||||
notification[value="translation"] menulist {
|
notification[value="translation"] menulist {
|
||||||
-moz-appearance: none;
|
-moz-appearance: none;
|
||||||
@ -40,28 +36,9 @@ notification[value="translation"] menulist {
|
|||||||
-moz-border-left-colors: none;
|
-moz-border-left-colors: none;
|
||||||
border-radius: 2px;
|
border-radius: 2px;
|
||||||
min-width: 0;
|
min-width: 0;
|
||||||
min-height: 30px;
|
|
||||||
-moz-padding-end: 1ch;
|
|
||||||
box-shadow: 0 1px rgba(255, 255, 255, 0.5), 0 1px rgba(255, 255, 255, 0.5) inset;
|
box-shadow: 0 1px rgba(255, 255, 255, 0.5), 0 1px rgba(255, 255, 255, 0.5) inset;
|
||||||
}
|
}
|
||||||
|
|
||||||
notification[value="translation"] button > .button-box,
|
|
||||||
notification[value="translation"] button[type="menu"] > .button-box > .button-menu-dropmarker {
|
|
||||||
padding: 0;
|
|
||||||
-moz-margin-start: 3ch;
|
|
||||||
}
|
|
||||||
|
|
||||||
notification[value="translation"] button:not([type="menu"]) > .button-box {
|
|
||||||
-moz-margin-end: 3ch;
|
|
||||||
}
|
|
||||||
|
|
||||||
notification[value="translation"] button,
|
|
||||||
notification[value="translation"] menulist,
|
|
||||||
notification[value="translation"] menulist > .menulist-label-box {
|
|
||||||
-moz-margin-start: 1ch;
|
|
||||||
-moz-margin-end: 1ch;
|
|
||||||
}
|
|
||||||
|
|
||||||
notification[value="translation"] menulist > .menulist-dropmarker {
|
notification[value="translation"] menulist > .menulist-dropmarker {
|
||||||
-moz-appearance: toolbarbutton-dropdown;
|
-moz-appearance: toolbarbutton-dropdown;
|
||||||
border: none;
|
border: none;
|
||||||
|
@ -2350,10 +2350,15 @@ toolbarbutton.bookmark-item[dragover="true"][open="true"] {
|
|||||||
|
|
||||||
%include ../shared/translation/infobar.inc.css
|
%include ../shared/translation/infobar.inc.css
|
||||||
|
|
||||||
|
notification[value="translation"] {
|
||||||
|
min-height: 40px;
|
||||||
|
}
|
||||||
|
|
||||||
@media (-moz-windows-default-theme) {
|
@media (-moz-windows-default-theme) {
|
||||||
notification[value="translation"],
|
notification[value="translation"],
|
||||||
notification[value="translation"] button,
|
notification[value="translation"] button,
|
||||||
notification[value="translation"] menulist {
|
notification[value="translation"] menulist {
|
||||||
|
min-height: 30px;
|
||||||
color: #545454;
|
color: #545454;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2361,6 +2366,11 @@ toolbarbutton.bookmark-item[dragover="true"][open="true"] {
|
|||||||
background-color: #EEE;
|
background-color: #EEE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
notification[value="translation"] button,
|
||||||
|
notification[value="translation"] menulist {
|
||||||
|
-moz-padding-end: 1ch;
|
||||||
|
}
|
||||||
|
|
||||||
notification[value="translation"] menulist {
|
notification[value="translation"] menulist {
|
||||||
border: 1px solid #C1C1C1;
|
border: 1px solid #C1C1C1;
|
||||||
background-color: #FFF;
|
background-color: #FFF;
|
||||||
@ -2371,6 +2381,13 @@ toolbarbutton.bookmark-item[dragover="true"][open="true"] {
|
|||||||
background-color: #FBFBFB;
|
background-color: #FBFBFB;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
notification[value="translation"] button,
|
||||||
|
notification[value="translation"] menulist,
|
||||||
|
notification[value="translation"] menulist > .menulist-label-box {
|
||||||
|
-moz-margin-start: 1ch;
|
||||||
|
-moz-margin-end: 1ch;
|
||||||
|
}
|
||||||
|
|
||||||
notification[value="translation"] button:hover,
|
notification[value="translation"] button:hover,
|
||||||
notification[value="translation"] button:active,
|
notification[value="translation"] button:active,
|
||||||
notification[value="translation"] menulist:hover,
|
notification[value="translation"] menulist:hover,
|
||||||
@ -2395,6 +2412,16 @@ toolbarbutton.bookmark-item[dragover="true"][open="true"] {
|
|||||||
list-style-image: url("chrome://browser/skin/toolbarbutton-dropdown-arrow.png");
|
list-style-image: url("chrome://browser/skin/toolbarbutton-dropdown-arrow.png");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
notification[value="translation"] button > .button-box,
|
||||||
|
notification[value="translation"] button[type="menu"] > .button-box > .button-menu-dropmarker {
|
||||||
|
padding: 0;
|
||||||
|
-moz-margin-start: 3ch;
|
||||||
|
}
|
||||||
|
|
||||||
|
notification[value="translation"] button:not([type="menu"]) > .button-box {
|
||||||
|
-moz-margin-end: 3ch;
|
||||||
|
}
|
||||||
|
|
||||||
@media (min-resolution: 1.25dppx) {
|
@media (min-resolution: 1.25dppx) {
|
||||||
notification[value="translation"] button[type="menu"] > .button-box > .button-menu-dropmarker,
|
notification[value="translation"] button[type="menu"] > .button-box > .button-menu-dropmarker,
|
||||||
notification[value="translation"] menulist > .menulist-dropmarker {
|
notification[value="translation"] menulist > .menulist-dropmarker {
|
||||||
|
@ -282,6 +282,7 @@ browser.jar:
|
|||||||
skin/classic/browser/devtools/magnifying-glass-light.png (../shared/devtools/images/magnifying-glass-light.png)
|
skin/classic/browser/devtools/magnifying-glass-light.png (../shared/devtools/images/magnifying-glass-light.png)
|
||||||
skin/classic/browser/devtools/magnifying-glass-light@2x.png (../shared/devtools/images/magnifying-glass-light@2x.png)
|
skin/classic/browser/devtools/magnifying-glass-light@2x.png (../shared/devtools/images/magnifying-glass-light@2x.png)
|
||||||
skin/classic/browser/devtools/itemToggle.png (../shared/devtools/images/itemToggle.png)
|
skin/classic/browser/devtools/itemToggle.png (../shared/devtools/images/itemToggle.png)
|
||||||
|
skin/classic/browser/devtools/itemToggle@2x.png (../shared/devtools/images/itemToggle@2x.png)
|
||||||
skin/classic/browser/devtools/itemArrow-dark-rtl.svg (../shared/devtools/images/itemArrow-dark-rtl.svg)
|
skin/classic/browser/devtools/itemArrow-dark-rtl.svg (../shared/devtools/images/itemArrow-dark-rtl.svg)
|
||||||
skin/classic/browser/devtools/itemArrow-dark-ltr.svg (../shared/devtools/images/itemArrow-dark-ltr.svg)
|
skin/classic/browser/devtools/itemArrow-dark-ltr.svg (../shared/devtools/images/itemArrow-dark-ltr.svg)
|
||||||
skin/classic/browser/devtools/itemArrow-rtl.svg (../shared/devtools/images/itemArrow-rtl.svg)
|
skin/classic/browser/devtools/itemArrow-rtl.svg (../shared/devtools/images/itemArrow-rtl.svg)
|
||||||
@ -303,7 +304,6 @@ browser.jar:
|
|||||||
skin/classic/browser/devtools/debugger-step-out@2x.png (../shared/devtools/images/debugger-step-out@2x.png)
|
skin/classic/browser/devtools/debugger-step-out@2x.png (../shared/devtools/images/debugger-step-out@2x.png)
|
||||||
skin/classic/browser/devtools/debugger-step-over.png (../shared/devtools/images/debugger-step-over.png)
|
skin/classic/browser/devtools/debugger-step-over.png (../shared/devtools/images/debugger-step-over.png)
|
||||||
skin/classic/browser/devtools/debugger-step-over@2x.png (../shared/devtools/images/debugger-step-over@2x.png)
|
skin/classic/browser/devtools/debugger-step-over@2x.png (../shared/devtools/images/debugger-step-over@2x.png)
|
||||||
skin/classic/browser/devtools/debugger-blackbox-eye.png (../shared/devtools/images/debugger-blackbox-eye.png)
|
|
||||||
skin/classic/browser/devtools/debugger-blackbox.png (../shared/devtools/images/debugger-blackbox.png)
|
skin/classic/browser/devtools/debugger-blackbox.png (../shared/devtools/images/debugger-blackbox.png)
|
||||||
skin/classic/browser/devtools/debugger-blackbox@2x.png (../shared/devtools/images/debugger-blackbox@2x.png)
|
skin/classic/browser/devtools/debugger-blackbox@2x.png (../shared/devtools/images/debugger-blackbox@2x.png)
|
||||||
skin/classic/browser/devtools/debugger-toggleBreakpoints.png (../shared/devtools/images/debugger-toggleBreakpoints.png)
|
skin/classic/browser/devtools/debugger-toggleBreakpoints.png (../shared/devtools/images/debugger-toggleBreakpoints.png)
|
||||||
@ -677,6 +677,7 @@ browser.jar:
|
|||||||
skin/classic/aero/browser/devtools/magnifying-glass-light.png (../shared/devtools/images/magnifying-glass-light.png)
|
skin/classic/aero/browser/devtools/magnifying-glass-light.png (../shared/devtools/images/magnifying-glass-light.png)
|
||||||
skin/classic/aero/browser/devtools/magnifying-glass-light@2x.png (../shared/devtools/images/magnifying-glass-light@2x.png)
|
skin/classic/aero/browser/devtools/magnifying-glass-light@2x.png (../shared/devtools/images/magnifying-glass-light@2x.png)
|
||||||
skin/classic/aero/browser/devtools/itemToggle.png (../shared/devtools/images/itemToggle.png)
|
skin/classic/aero/browser/devtools/itemToggle.png (../shared/devtools/images/itemToggle.png)
|
||||||
|
skin/classic/aero/browser/devtools/itemToggle@2x.png (../shared/devtools/images/itemToggle@2x.png)
|
||||||
skin/classic/aero/browser/devtools/itemArrow-dark-rtl.svg (../shared/devtools/images/itemArrow-dark-rtl.svg)
|
skin/classic/aero/browser/devtools/itemArrow-dark-rtl.svg (../shared/devtools/images/itemArrow-dark-rtl.svg)
|
||||||
skin/classic/aero/browser/devtools/itemArrow-dark-ltr.svg (../shared/devtools/images/itemArrow-dark-ltr.svg)
|
skin/classic/aero/browser/devtools/itemArrow-dark-ltr.svg (../shared/devtools/images/itemArrow-dark-ltr.svg)
|
||||||
skin/classic/aero/browser/devtools/itemArrow-rtl.svg (../shared/devtools/images/itemArrow-rtl.svg)
|
skin/classic/aero/browser/devtools/itemArrow-rtl.svg (../shared/devtools/images/itemArrow-rtl.svg)
|
||||||
@ -698,7 +699,6 @@ browser.jar:
|
|||||||
skin/classic/aero/browser/devtools/debugger-step-out@2x.png (../shared/devtools/images/debugger-step-out@2x.png)
|
skin/classic/aero/browser/devtools/debugger-step-out@2x.png (../shared/devtools/images/debugger-step-out@2x.png)
|
||||||
skin/classic/aero/browser/devtools/debugger-step-over.png (../shared/devtools/images/debugger-step-over.png)
|
skin/classic/aero/browser/devtools/debugger-step-over.png (../shared/devtools/images/debugger-step-over.png)
|
||||||
skin/classic/aero/browser/devtools/debugger-step-over@2x.png (../shared/devtools/images/debugger-step-over@2x.png)
|
skin/classic/aero/browser/devtools/debugger-step-over@2x.png (../shared/devtools/images/debugger-step-over@2x.png)
|
||||||
skin/classic/aero/browser/devtools/debugger-blackbox-eye.png (../shared/devtools/images/debugger-blackbox-eye.png)
|
|
||||||
skin/classic/aero/browser/devtools/debugger-blackbox.png (../shared/devtools/images/debugger-blackbox.png)
|
skin/classic/aero/browser/devtools/debugger-blackbox.png (../shared/devtools/images/debugger-blackbox.png)
|
||||||
skin/classic/aero/browser/devtools/debugger-blackbox@2x.png (../shared/devtools/images/debugger-blackbox@2x.png)
|
skin/classic/aero/browser/devtools/debugger-blackbox@2x.png (../shared/devtools/images/debugger-blackbox@2x.png)
|
||||||
skin/classic/aero/browser/devtools/debugger-toggleBreakpoints.png (../shared/devtools/images/debugger-toggleBreakpoints.png)
|
skin/classic/aero/browser/devtools/debugger-toggleBreakpoints.png (../shared/devtools/images/debugger-toggleBreakpoints.png)
|
||||||
|
Before Width: | Height: | Size: 166 B After Width: | Height: | Size: 143 B |
Before Width: | Height: | Size: 172 B After Width: | Height: | Size: 143 B |
Before Width: | Height: | Size: 168 B After Width: | Height: | Size: 143 B |
@ -453,7 +453,8 @@ nsFrameLoader::ReallyStartLoadingInternal()
|
|||||||
{
|
{
|
||||||
NS_ENSURE_STATE(mURIToLoad && mOwnerContent && mOwnerContent->IsInDoc());
|
NS_ENSURE_STATE(mURIToLoad && mOwnerContent && mOwnerContent->IsInDoc());
|
||||||
|
|
||||||
PROFILER_LABEL("nsFrameLoader", "ReallyStartLoading");
|
PROFILER_LABEL("nsFrameLoader", "ReallyStartLoading",
|
||||||
|
js::ProfileEntry::Category::OTHER);
|
||||||
|
|
||||||
nsresult rv = MaybeCreateDocShell();
|
nsresult rv = MaybeCreateDocShell();
|
||||||
if (NS_FAILED(rv)) {
|
if (NS_FAILED(rv)) {
|
||||||
@ -2099,7 +2100,8 @@ nsFrameLoader::TryRemoteBrowser()
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
PROFILER_LABEL("nsFrameLoader", "CreateRemoteBrowser");
|
PROFILER_LABEL("nsFrameLoader", "CreateRemoteBrowser",
|
||||||
|
js::ProfileEntry::Category::OTHER);
|
||||||
|
|
||||||
MutableTabContext context;
|
MutableTabContext context;
|
||||||
nsCOMPtr<mozIApplication> ownApp = GetOwnApp();
|
nsCOMPtr<mozIApplication> ownApp = GetOwnApp();
|
||||||
|
@ -920,7 +920,8 @@ NS_IMETHODIMP
|
|||||||
nsObjectLoadingContent::OnStartRequest(nsIRequest *aRequest,
|
nsObjectLoadingContent::OnStartRequest(nsIRequest *aRequest,
|
||||||
nsISupports *aContext)
|
nsISupports *aContext)
|
||||||
{
|
{
|
||||||
PROFILER_LABEL("nsObjectLoadingContent", "OnStartRequest");
|
PROFILER_LABEL("nsObjectLoadingContent", "OnStartRequest",
|
||||||
|
js::ProfileEntry::Category::NETWORK);
|
||||||
|
|
||||||
LOG(("OBJLC [%p]: Channel OnStartRequest", this));
|
LOG(("OBJLC [%p]: Channel OnStartRequest", this));
|
||||||
|
|
||||||
@ -982,6 +983,9 @@ nsObjectLoadingContent::OnStopRequest(nsIRequest *aRequest,
|
|||||||
nsISupports *aContext,
|
nsISupports *aContext,
|
||||||
nsresult aStatusCode)
|
nsresult aStatusCode)
|
||||||
{
|
{
|
||||||
|
PROFILER_LABEL("nsObjectLoadingContent", "OnStopRequest",
|
||||||
|
js::ProfileEntry::Category::NETWORK);
|
||||||
|
|
||||||
NS_ENSURE_TRUE(nsContentUtils::IsCallerChrome(), NS_ERROR_NOT_AVAILABLE);
|
NS_ENSURE_TRUE(nsContentUtils::IsCallerChrome(), NS_ERROR_NOT_AVAILABLE);
|
||||||
|
|
||||||
if (aRequest != mChannel) {
|
if (aRequest != mChannel) {
|
||||||
|
@ -1913,7 +1913,9 @@ nsXMLHttpRequest::OnDataAvailable(nsIRequest *request,
|
|||||||
NS_IMETHODIMP
|
NS_IMETHODIMP
|
||||||
nsXMLHttpRequest::OnStartRequest(nsIRequest *request, nsISupports *ctxt)
|
nsXMLHttpRequest::OnStartRequest(nsIRequest *request, nsISupports *ctxt)
|
||||||
{
|
{
|
||||||
PROFILER_LABEL("nsXMLHttpRequest", "OnStartRequest");
|
PROFILER_LABEL("nsXMLHttpRequest", "OnStartRequest",
|
||||||
|
js::ProfileEntry::Category::NETWORK);
|
||||||
|
|
||||||
nsresult rv = NS_OK;
|
nsresult rv = NS_OK;
|
||||||
if (!mFirstStartRequestSeen && mRequestObserver) {
|
if (!mFirstStartRequestSeen && mRequestObserver) {
|
||||||
mFirstStartRequestSeen = true;
|
mFirstStartRequestSeen = true;
|
||||||
@ -2155,7 +2157,9 @@ nsXMLHttpRequest::OnStartRequest(nsIRequest *request, nsISupports *ctxt)
|
|||||||
NS_IMETHODIMP
|
NS_IMETHODIMP
|
||||||
nsXMLHttpRequest::OnStopRequest(nsIRequest *request, nsISupports *ctxt, nsresult status)
|
nsXMLHttpRequest::OnStopRequest(nsIRequest *request, nsISupports *ctxt, nsresult status)
|
||||||
{
|
{
|
||||||
PROFILER_LABEL("content", "nsXMLHttpRequest::OnStopRequest");
|
PROFILER_LABEL("nsXMLHttpRequest", "OnStopRequest",
|
||||||
|
js::ProfileEntry::Category::NETWORK);
|
||||||
|
|
||||||
if (request != mChannel) {
|
if (request != mChannel) {
|
||||||
// Can this still happen?
|
// Can this still happen?
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
|
@ -76,7 +76,8 @@ nsGenericHTMLFrameElement::BindToTree(nsIDocument* aDocument,
|
|||||||
NS_ASSERTION(!nsContentUtils::IsSafeToRunScript(),
|
NS_ASSERTION(!nsContentUtils::IsSafeToRunScript(),
|
||||||
"Missing a script blocker!");
|
"Missing a script blocker!");
|
||||||
|
|
||||||
PROFILER_LABEL("nsGenericHTMLFrameElement", "BindToTree");
|
PROFILER_LABEL("nsGenericHTMLFrameElement", "BindToTree",
|
||||||
|
js::ProfileEntry::Category::OTHER);
|
||||||
|
|
||||||
// We're in a document now. Kick off the frame load.
|
// We're in a document now. Kick off the frame load.
|
||||||
LoadSrc();
|
LoadSrc();
|
||||||
|
@ -73,7 +73,8 @@ private:
|
|||||||
NS_IMETHODIMP
|
NS_IMETHODIMP
|
||||||
PluginStreamListener::OnStartRequest(nsIRequest* request, nsISupports *ctxt)
|
PluginStreamListener::OnStartRequest(nsIRequest* request, nsISupports *ctxt)
|
||||||
{
|
{
|
||||||
PROFILER_LABEL("PluginStreamListener", "OnStartRequest");
|
PROFILER_LABEL("PluginStreamListener", "OnStartRequest",
|
||||||
|
js::ProfileEntry::Category::NETWORK);
|
||||||
|
|
||||||
nsCOMPtr<nsIContent> embed = mPluginDoc->GetPluginContent();
|
nsCOMPtr<nsIContent> embed = mPluginDoc->GetPluginContent();
|
||||||
nsCOMPtr<nsIObjectLoadingContent> objlc = do_QueryInterface(embed);
|
nsCOMPtr<nsIObjectLoadingContent> objlc = do_QueryInterface(embed);
|
||||||
|
@ -275,7 +275,8 @@ SVGIFrameElement::BindToTree(nsIDocument* aDocument,
|
|||||||
NS_ASSERTION(!nsContentUtils::IsSafeToRunScript(),
|
NS_ASSERTION(!nsContentUtils::IsSafeToRunScript(),
|
||||||
"Missing a script blocker!");
|
"Missing a script blocker!");
|
||||||
|
|
||||||
PROFILER_LABEL("SVGIFrameElement", "BindToTree");
|
PROFILER_LABEL("SVGIFrameElement", "BindToTree",
|
||||||
|
js::ProfileEntry::Category::OTHER);
|
||||||
|
|
||||||
// We're in a document now. Kick off the frame load.
|
// We're in a document now. Kick off the frame load.
|
||||||
LoadSrc();
|
LoadSrc();
|
||||||
|
@ -663,7 +663,9 @@ nsDOMWindowUtils::SendMouseEventToWindow(const nsAString& aType,
|
|||||||
bool aIsSynthesized,
|
bool aIsSynthesized,
|
||||||
uint8_t aOptionalArgCount)
|
uint8_t aOptionalArgCount)
|
||||||
{
|
{
|
||||||
PROFILER_LABEL("nsDOMWindowUtils", "SendMouseEventToWindow");
|
PROFILER_LABEL("nsDOMWindowUtils", "SendMouseEventToWindow",
|
||||||
|
js::ProfileEntry::Category::EVENTS);
|
||||||
|
|
||||||
return SendMouseEventCommon(aType, aX, aY, aButton, aClickCount, aModifiers,
|
return SendMouseEventCommon(aType, aX, aY, aButton, aClickCount, aModifiers,
|
||||||
aIgnoreRootScrollFrame, aPressure,
|
aIgnoreRootScrollFrame, aPressure,
|
||||||
aInputSourceArg, true, nullptr,
|
aInputSourceArg, true, nullptr,
|
||||||
@ -1425,7 +1427,9 @@ NS_IMETHODIMP
|
|||||||
nsDOMWindowUtils::GarbageCollect(nsICycleCollectorListener *aListener,
|
nsDOMWindowUtils::GarbageCollect(nsICycleCollectorListener *aListener,
|
||||||
int32_t aExtraForgetSkippableCalls)
|
int32_t aExtraForgetSkippableCalls)
|
||||||
{
|
{
|
||||||
PROFILER_LABEL("GC", "GarbageCollect");
|
PROFILER_LABEL("nsDOMWindowUtils", "GarbageCollect",
|
||||||
|
js::ProfileEntry::Category::GC);
|
||||||
|
|
||||||
// Always permit this in debug builds.
|
// Always permit this in debug builds.
|
||||||
#ifndef DEBUG
|
#ifndef DEBUG
|
||||||
if (!nsContentUtils::IsCallerChrome()) {
|
if (!nsContentUtils::IsCallerChrome()) {
|
||||||
|
@ -1717,7 +1717,8 @@ nsJSContext::GarbageCollectNow(JS::gcreason::Reason aReason,
|
|||||||
IsShrinking aShrinking,
|
IsShrinking aShrinking,
|
||||||
int64_t aSliceMillis)
|
int64_t aSliceMillis)
|
||||||
{
|
{
|
||||||
PROFILER_LABEL("GC", "GarbageCollectNow");
|
PROFILER_LABEL("nsJSContext", "GarbageCollectNow",
|
||||||
|
js::ProfileEntry::Category::GC);
|
||||||
|
|
||||||
MOZ_ASSERT_IF(aSliceMillis, aIncremental == IncrementalGC);
|
MOZ_ASSERT_IF(aSliceMillis, aIncremental == IncrementalGC);
|
||||||
|
|
||||||
@ -1759,7 +1760,8 @@ nsJSContext::GarbageCollectNow(JS::gcreason::Reason aReason,
|
|||||||
void
|
void
|
||||||
nsJSContext::ShrinkGCBuffersNow()
|
nsJSContext::ShrinkGCBuffersNow()
|
||||||
{
|
{
|
||||||
PROFILER_LABEL("GC", "ShrinkGCBuffersNow");
|
PROFILER_LABEL("nsJSContext", "ShrinkGCBuffersNow",
|
||||||
|
js::ProfileEntry::Category::GC);
|
||||||
|
|
||||||
KillShrinkGCBuffersTimer();
|
KillShrinkGCBuffersTimer();
|
||||||
|
|
||||||
@ -1940,7 +1942,9 @@ nsJSContext::CycleCollectNow(nsICycleCollectorListener *aListener,
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
PROFILER_LABEL("CC", "CycleCollectNow");
|
PROFILER_LABEL("nsJSContext", "CycleCollectNow",
|
||||||
|
js::ProfileEntry::Category::CC);
|
||||||
|
|
||||||
gCCStats.PrepareForCycleCollectionSlice(aExtraForgetSkippableCalls);
|
gCCStats.PrepareForCycleCollectionSlice(aExtraForgetSkippableCalls);
|
||||||
nsCycleCollector_collect(aListener);
|
nsCycleCollector_collect(aListener);
|
||||||
gCCStats.FinishCycleCollectionSlice();
|
gCCStats.FinishCycleCollectionSlice();
|
||||||
@ -1954,7 +1958,8 @@ nsJSContext::RunCycleCollectorSlice()
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
PROFILER_LABEL("CC", "RunCycleCollectorSlice");
|
PROFILER_LABEL("nsJSContext", "RunCycleCollectorSlice",
|
||||||
|
js::ProfileEntry::Category::CC);
|
||||||
|
|
||||||
gCCStats.PrepareForCycleCollectionSlice();
|
gCCStats.PrepareForCycleCollectionSlice();
|
||||||
|
|
||||||
@ -1990,7 +1995,8 @@ nsJSContext::RunCycleCollectorWorkSlice(int64_t aWorkBudget)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
PROFILER_LABEL("CC", "RunCycleCollectorWorkSlice");
|
PROFILER_LABEL("nsJSContext", "RunCycleCollectorWorkSlice",
|
||||||
|
js::ProfileEntry::Category::CC);
|
||||||
|
|
||||||
gCCStats.PrepareForCycleCollectionSlice();
|
gCCStats.PrepareForCycleCollectionSlice();
|
||||||
nsCycleCollector_collectSliceWork(aWorkBudget);
|
nsCycleCollector_collectSliceWork(aWorkBudget);
|
||||||
|
@ -196,7 +196,9 @@ nsJSUtils::EvaluateString(JSContext* aCx,
|
|||||||
JS::MutableHandle<JS::Value> aRetValue,
|
JS::MutableHandle<JS::Value> aRetValue,
|
||||||
void **aOffThreadToken)
|
void **aOffThreadToken)
|
||||||
{
|
{
|
||||||
PROFILER_LABEL("JS", "EvaluateString");
|
PROFILER_LABEL("nsJSUtils", "EvaluateString",
|
||||||
|
js::ProfileEntry::Category::JS);
|
||||||
|
|
||||||
MOZ_ASSERT_IF(aCompileOptions.versionSet,
|
MOZ_ASSERT_IF(aCompileOptions.versionSet,
|
||||||
aCompileOptions.version != JSVERSION_UNKNOWN);
|
aCompileOptions.version != JSVERSION_UNKNOWN);
|
||||||
MOZ_ASSERT_IF(aEvaluateOptions.coerceToString, aEvaluateOptions.needResult);
|
MOZ_ASSERT_IF(aEvaluateOptions.coerceToString, aEvaluateOptions.needResult);
|
||||||
|
@ -388,7 +388,9 @@ EventDispatcher::Dispatch(nsISupports* aTarget,
|
|||||||
EventDispatchingCallback* aCallback,
|
EventDispatchingCallback* aCallback,
|
||||||
nsCOMArray<EventTarget>* aTargets)
|
nsCOMArray<EventTarget>* aTargets)
|
||||||
{
|
{
|
||||||
PROFILER_LABEL("EventDispatcher", "Dispatch");
|
PROFILER_LABEL("EventDispatcher", "Dispatch",
|
||||||
|
js::ProfileEntry::Category::EVENTS);
|
||||||
|
|
||||||
NS_ASSERTION(aEvent, "Trying to dispatch without WidgetEvent!");
|
NS_ASSERTION(aEvent, "Trying to dispatch without WidgetEvent!");
|
||||||
NS_ENSURE_TRUE(!aEvent->mFlags.mIsBeingDispatched,
|
NS_ENSURE_TRUE(!aEvent->mFlags.mIsBeingDispatched,
|
||||||
NS_ERROR_DOM_INVALID_STATE_ERR);
|
NS_ERROR_DOM_INVALID_STATE_ERR);
|
||||||
|
@ -3573,7 +3573,9 @@ CreateMouseOrPointerWidgetEvent(WidgetMouseEvent* aMouseEvent,
|
|||||||
{
|
{
|
||||||
WidgetPointerEvent* sourcePointer = aMouseEvent->AsPointerEvent();
|
WidgetPointerEvent* sourcePointer = aMouseEvent->AsPointerEvent();
|
||||||
if (sourcePointer) {
|
if (sourcePointer) {
|
||||||
PROFILER_LABEL("Input", "DispatchPointerEvent");
|
PROFILER_LABEL("Input", "DispatchPointerEvent",
|
||||||
|
js::ProfileEntry::Category::EVENTS);
|
||||||
|
|
||||||
nsAutoPtr<WidgetPointerEvent> newPointerEvent;
|
nsAutoPtr<WidgetPointerEvent> newPointerEvent;
|
||||||
newPointerEvent =
|
newPointerEvent =
|
||||||
new WidgetPointerEvent(aMouseEvent->mFlags.mIsTrusted, aMessage,
|
new WidgetPointerEvent(aMouseEvent->mFlags.mIsTrusted, aMessage,
|
||||||
@ -3644,7 +3646,8 @@ EventStateManager::DispatchMouseOrPointerEvent(WidgetMouseEvent* aMouseEvent,
|
|||||||
nsIFrame* targetFrame = nullptr;
|
nsIFrame* targetFrame = nullptr;
|
||||||
|
|
||||||
if (aMouseEvent->AsMouseEvent()) {
|
if (aMouseEvent->AsMouseEvent()) {
|
||||||
PROFILER_LABEL("Input", "DispatchMouseEvent");
|
PROFILER_LABEL("Input", "DispatchMouseEvent",
|
||||||
|
js::ProfileEntry::Category::EVENTS);
|
||||||
}
|
}
|
||||||
|
|
||||||
nsEventStatus status = nsEventStatus_eIgnore;
|
nsEventStatus status = nsEventStatus_eIgnore;
|
||||||
|
@ -189,7 +189,8 @@ NS_IMETHODIMP
|
|||||||
AsyncConnectionHelper::Run()
|
AsyncConnectionHelper::Run()
|
||||||
{
|
{
|
||||||
if (NS_IsMainThread()) {
|
if (NS_IsMainThread()) {
|
||||||
PROFILER_MAIN_THREAD_LABEL("IndexedDB", "AsyncConnectionHelper::Run");
|
PROFILER_MAIN_THREAD_LABEL("AsyncConnectionHelper", "Run",
|
||||||
|
js::ProfileEntry::Category::STORAGE);
|
||||||
|
|
||||||
if (mTransaction &&
|
if (mTransaction &&
|
||||||
mTransaction->IsAborted()) {
|
mTransaction->IsAborted()) {
|
||||||
@ -271,7 +272,8 @@ AsyncConnectionHelper::Run()
|
|||||||
|
|
||||||
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
||||||
|
|
||||||
PROFILER_LABEL("IndexedDB", "AsyncConnectionHelper::Run");
|
PROFILER_LABEL("AsyncConnectionHelper", "Run",
|
||||||
|
js::ProfileEntry::Category::STORAGE);
|
||||||
|
|
||||||
IDB_PROFILER_MARK_IF(mRequest,
|
IDB_PROFILER_MARK_IF(mRequest,
|
||||||
"IndexedDB Request %llu: Beginning database work",
|
"IndexedDB Request %llu: Beginning database work",
|
||||||
@ -452,7 +454,8 @@ AsyncConnectionHelper::OnSuccess()
|
|||||||
NS_ASSERTION(NS_IsMainThread(), "Wrong thread!");
|
NS_ASSERTION(NS_IsMainThread(), "Wrong thread!");
|
||||||
NS_ASSERTION(mRequest, "Null request!");
|
NS_ASSERTION(mRequest, "Null request!");
|
||||||
|
|
||||||
PROFILER_MAIN_THREAD_LABEL("IndexedDB", "AsyncConnectionHelper::OnSuccess");
|
PROFILER_MAIN_THREAD_LABEL("AsyncConnectionHelper", "OnSuccess",
|
||||||
|
js::ProfileEntry::Category::STORAGE);
|
||||||
|
|
||||||
nsRefPtr<nsIDOMEvent> event = CreateSuccessEvent(mRequest);
|
nsRefPtr<nsIDOMEvent> event = CreateSuccessEvent(mRequest);
|
||||||
if (!event) {
|
if (!event) {
|
||||||
@ -488,7 +491,8 @@ AsyncConnectionHelper::OnError()
|
|||||||
NS_ASSERTION(NS_IsMainThread(), "Wrong thread!");
|
NS_ASSERTION(NS_IsMainThread(), "Wrong thread!");
|
||||||
NS_ASSERTION(mRequest, "Null request!");
|
NS_ASSERTION(mRequest, "Null request!");
|
||||||
|
|
||||||
PROFILER_MAIN_THREAD_LABEL("IndexedDB", "AsyncConnectionHelper::OnError");
|
PROFILER_MAIN_THREAD_LABEL("AsyncConnectionHelper", "OnError",
|
||||||
|
js::ProfileEntry::Category::STORAGE);
|
||||||
|
|
||||||
// Make an error event and fire it at the target.
|
// Make an error event and fire it at the target.
|
||||||
nsRefPtr<nsIDOMEvent> event =
|
nsRefPtr<nsIDOMEvent> event =
|
||||||
|
@ -983,7 +983,8 @@ CursorHelper::Dispatch(nsIEventTarget* aDatabaseThread)
|
|||||||
{
|
{
|
||||||
NS_ASSERTION(NS_IsMainThread(), "Wrong thread!");
|
NS_ASSERTION(NS_IsMainThread(), "Wrong thread!");
|
||||||
|
|
||||||
PROFILER_MAIN_THREAD_LABEL("IndexedDB", "CursorHelper::Dispatch");
|
PROFILER_MAIN_THREAD_LABEL("CursorHelper", "Dispatch",
|
||||||
|
js::ProfileEntry::Category::STORAGE);
|
||||||
|
|
||||||
if (IndexedDatabaseManager::IsMainProcess()) {
|
if (IndexedDatabaseManager::IsMainProcess()) {
|
||||||
return AsyncConnectionHelper::Dispatch(aDatabaseThread);
|
return AsyncConnectionHelper::Dispatch(aDatabaseThread);
|
||||||
@ -1019,7 +1020,8 @@ ContinueHelper::DoDatabaseWork(mozIStorageConnection* aConnection)
|
|||||||
NS_ASSERTION(!NS_IsMainThread(), "Wrong thread!");
|
NS_ASSERTION(!NS_IsMainThread(), "Wrong thread!");
|
||||||
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
||||||
|
|
||||||
PROFILER_LABEL("IndexedDB", "ContinueHelper::DoDatabaseWork");
|
PROFILER_LABEL("ContinueHelper", "DoDatabaseWork",
|
||||||
|
js::ProfileEntry::Category::STORAGE);
|
||||||
|
|
||||||
// We need to pick a query based on whether or not the cursor's mContinueToKey
|
// We need to pick a query based on whether or not the cursor's mContinueToKey
|
||||||
// is set. If it is unset then othing was passed to continue so we'll grab the
|
// is set. If it is unset then othing was passed to continue so we'll grab the
|
||||||
@ -1101,8 +1103,8 @@ ContinueHelper::PackArgumentsForParentProcess(CursorRequestParams& aParams)
|
|||||||
NS_ASSERTION(NS_IsMainThread(), "Wrong thread!");
|
NS_ASSERTION(NS_IsMainThread(), "Wrong thread!");
|
||||||
NS_ASSERTION(!IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
NS_ASSERTION(!IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
||||||
|
|
||||||
PROFILER_MAIN_THREAD_LABEL("IndexedDB",
|
PROFILER_MAIN_THREAD_LABEL("ContinueHelper", "PackArgumentsForParentProcess",
|
||||||
"ContinueHelper::PackArgumentsForParentProcess");
|
js::ProfileEntry::Category::STORAGE);
|
||||||
|
|
||||||
ContinueParams params;
|
ContinueParams params;
|
||||||
|
|
||||||
@ -1119,8 +1121,8 @@ ContinueHelper::SendResponseToChildProcess(nsresult aResultCode)
|
|||||||
NS_ASSERTION(NS_IsMainThread(), "Wrong thread!");
|
NS_ASSERTION(NS_IsMainThread(), "Wrong thread!");
|
||||||
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
||||||
|
|
||||||
PROFILER_MAIN_THREAD_LABEL("IndexedDB",
|
PROFILER_MAIN_THREAD_LABEL("ContinueHelper", "SendResponseToChildProcess",
|
||||||
"ContinueHelper::SendResponseToChildProcess");
|
js::ProfileEntry::Category::STORAGE);
|
||||||
|
|
||||||
IndexedDBRequestParentBase* actor = mRequest->GetActorParent();
|
IndexedDBRequestParentBase* actor = mRequest->GetActorParent();
|
||||||
NS_ASSERTION(actor, "How did we get this far without an actor?");
|
NS_ASSERTION(actor, "How did we get this far without an actor?");
|
||||||
|
@ -802,7 +802,8 @@ CreateObjectStoreHelper::DoDatabaseWork(mozIStorageConnection* aConnection)
|
|||||||
NS_ASSERTION(!NS_IsMainThread(), "Wrong thread!");
|
NS_ASSERTION(!NS_IsMainThread(), "Wrong thread!");
|
||||||
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
||||||
|
|
||||||
PROFILER_LABEL("IndexedDB", "CreateObjectStoreHelper::DoDatabaseWork");
|
PROFILER_LABEL("CreateObjectStoreHelper", "DoDatabaseWork",
|
||||||
|
js::ProfileEntry::Category::STORAGE);
|
||||||
|
|
||||||
if (IndexedDatabaseManager::InLowDiskSpaceMode()) {
|
if (IndexedDatabaseManager::InLowDiskSpaceMode()) {
|
||||||
NS_WARNING("Refusing to create additional objectStore because disk space "
|
NS_WARNING("Refusing to create additional objectStore because disk space "
|
||||||
@ -862,7 +863,8 @@ DeleteObjectStoreHelper::DoDatabaseWork(mozIStorageConnection* aConnection)
|
|||||||
NS_ASSERTION(!NS_IsMainThread(), "Wrong thread!");
|
NS_ASSERTION(!NS_IsMainThread(), "Wrong thread!");
|
||||||
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
||||||
|
|
||||||
PROFILER_LABEL("IndexedDB", "DeleteObjectStoreHelper::DoDatabaseWork");
|
PROFILER_LABEL("DeleteObjectStoreHelper", "DoDatabaseWork",
|
||||||
|
js::ProfileEntry::Category::STORAGE);
|
||||||
|
|
||||||
nsCOMPtr<mozIStorageStatement> stmt =
|
nsCOMPtr<mozIStorageStatement> stmt =
|
||||||
mTransaction->GetCachedStatement(NS_LITERAL_CSTRING(
|
mTransaction->GetCachedStatement(NS_LITERAL_CSTRING(
|
||||||
@ -888,7 +890,8 @@ CreateFileHelper::DoDatabaseWork(mozIStorageConnection* aConnection)
|
|||||||
AssertIsOnIOThread();
|
AssertIsOnIOThread();
|
||||||
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
||||||
|
|
||||||
PROFILER_LABEL("IndexedDB", "CreateFileHelper::DoDatabaseWork");
|
PROFILER_LABEL("CreateFileHelper", "DoDatabaseWork",
|
||||||
|
js::ProfileEntry::Category::STORAGE);
|
||||||
|
|
||||||
if (IndexedDatabaseManager::InLowDiskSpaceMode()) {
|
if (IndexedDatabaseManager::InLowDiskSpaceMode()) {
|
||||||
NS_WARNING("Refusing to create file because disk space is low!");
|
NS_WARNING("Refusing to create file because disk space is low!");
|
||||||
|
@ -1033,7 +1033,8 @@ IndexHelper::Dispatch(nsIEventTarget* aDatabaseThread)
|
|||||||
{
|
{
|
||||||
NS_ASSERTION(NS_IsMainThread(), "Wrong thread!");
|
NS_ASSERTION(NS_IsMainThread(), "Wrong thread!");
|
||||||
|
|
||||||
PROFILER_MAIN_THREAD_LABEL("IndexedDB", "IndexHelper::Dispatch");
|
PROFILER_MAIN_THREAD_LABEL("IndexHelper", "Dispatch",
|
||||||
|
js::ProfileEntry::Category::STORAGE);
|
||||||
|
|
||||||
if (IndexedDatabaseManager::IsMainProcess()) {
|
if (IndexedDatabaseManager::IsMainProcess()) {
|
||||||
return AsyncConnectionHelper::Dispatch(aDatabaseThread);
|
return AsyncConnectionHelper::Dispatch(aDatabaseThread);
|
||||||
@ -1070,7 +1071,8 @@ GetKeyHelper::DoDatabaseWork(mozIStorageConnection* /* aConnection */)
|
|||||||
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
||||||
NS_ASSERTION(mKeyRange, "Must have a key range here!");
|
NS_ASSERTION(mKeyRange, "Must have a key range here!");
|
||||||
|
|
||||||
PROFILER_LABEL("IndexedDB", "GetKeyHelper::DoDatabaseWork");
|
PROFILER_LABEL("GetKeyHelper", "DoDatabaseWork",
|
||||||
|
js::ProfileEntry::Category::STORAGE);
|
||||||
|
|
||||||
nsCString indexTable;
|
nsCString indexTable;
|
||||||
if (mIndex->IsUnique()) {
|
if (mIndex->IsUnique()) {
|
||||||
@ -1136,8 +1138,8 @@ GetKeyHelper::PackArgumentsForParentProcess(IndexRequestParams& aParams)
|
|||||||
NS_ASSERTION(!IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
NS_ASSERTION(!IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
||||||
NS_ASSERTION(mKeyRange, "This should never be null!");
|
NS_ASSERTION(mKeyRange, "This should never be null!");
|
||||||
|
|
||||||
PROFILER_MAIN_THREAD_LABEL("IndexedDB",
|
PROFILER_MAIN_THREAD_LABEL("GetKeyHelper", "PackArgumentsForParentProcess",
|
||||||
"GetKeyHelper::PackArgumentsForParentProcess");
|
js::ProfileEntry::Category::STORAGE);
|
||||||
|
|
||||||
GetKeyParams params;
|
GetKeyParams params;
|
||||||
|
|
||||||
@ -1153,8 +1155,8 @@ GetKeyHelper::SendResponseToChildProcess(nsresult aResultCode)
|
|||||||
NS_ASSERTION(NS_IsMainThread(), "Wrong thread!");
|
NS_ASSERTION(NS_IsMainThread(), "Wrong thread!");
|
||||||
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
||||||
|
|
||||||
PROFILER_MAIN_THREAD_LABEL("IndexedDB",
|
PROFILER_MAIN_THREAD_LABEL("GetKeyHelper", "SendResponseToChildProcess",
|
||||||
"GetKeyHelper::SendResponseToChildProcess");
|
js::ProfileEntry::Category::STORAGE);
|
||||||
|
|
||||||
IndexedDBRequestParentBase* actor = mRequest->GetActorParent();
|
IndexedDBRequestParentBase* actor = mRequest->GetActorParent();
|
||||||
NS_ASSERTION(actor, "How did we get this far without an actor?");
|
NS_ASSERTION(actor, "How did we get this far without an actor?");
|
||||||
@ -1194,7 +1196,8 @@ GetHelper::DoDatabaseWork(mozIStorageConnection* /* aConnection */)
|
|||||||
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
||||||
NS_ASSERTION(mKeyRange, "Must have a key range here!");
|
NS_ASSERTION(mKeyRange, "Must have a key range here!");
|
||||||
|
|
||||||
PROFILER_LABEL("IndexedDB", "GetHelper::DoDatabaseWork [IDBIndex.cpp]");
|
PROFILER_LABEL("GetHelper", "DoDatabaseWork [IDBIndex.cpp]",
|
||||||
|
js::ProfileEntry::Category::STORAGE);
|
||||||
|
|
||||||
nsCString indexTable;
|
nsCString indexTable;
|
||||||
if (mIndex->IsUnique()) {
|
if (mIndex->IsUnique()) {
|
||||||
@ -1268,9 +1271,8 @@ GetHelper::PackArgumentsForParentProcess(IndexRequestParams& aParams)
|
|||||||
NS_ASSERTION(!IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
NS_ASSERTION(!IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
||||||
NS_ASSERTION(mKeyRange, "This should never be null!");
|
NS_ASSERTION(mKeyRange, "This should never be null!");
|
||||||
|
|
||||||
PROFILER_MAIN_THREAD_LABEL("IndexedDB",
|
PROFILER_MAIN_THREAD_LABEL("GetHelper", "PackArgumentsForParentProcess [IDBIndex.cpp]",
|
||||||
"GetHelper::PackArgumentsForParentProcess "
|
js::ProfileEntry::Category::STORAGE);
|
||||||
"[IDBIndex.cpp]");
|
|
||||||
|
|
||||||
GetParams params;
|
GetParams params;
|
||||||
|
|
||||||
@ -1286,9 +1288,8 @@ GetHelper::SendResponseToChildProcess(nsresult aResultCode)
|
|||||||
NS_ASSERTION(NS_IsMainThread(), "Wrong thread!");
|
NS_ASSERTION(NS_IsMainThread(), "Wrong thread!");
|
||||||
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
||||||
|
|
||||||
PROFILER_MAIN_THREAD_LABEL("IndexedDB",
|
PROFILER_MAIN_THREAD_LABEL("GetHelper", "SendResponseToChildProcess [IDBIndex.cpp]",
|
||||||
"GetHelper::SendResponseToChildProcess "
|
js::ProfileEntry::Category::STORAGE);
|
||||||
"[IDBIndex.cpp]");
|
|
||||||
|
|
||||||
IndexedDBRequestParentBase* actor = mRequest->GetActorParent();
|
IndexedDBRequestParentBase* actor = mRequest->GetActorParent();
|
||||||
NS_ASSERTION(actor, "How did we get this far without an actor?");
|
NS_ASSERTION(actor, "How did we get this far without an actor?");
|
||||||
@ -1362,8 +1363,8 @@ GetAllKeysHelper::DoDatabaseWork(mozIStorageConnection* /* aConnection */)
|
|||||||
MOZ_ASSERT(!NS_IsMainThread());
|
MOZ_ASSERT(!NS_IsMainThread());
|
||||||
MOZ_ASSERT(IndexedDatabaseManager::IsMainProcess());
|
MOZ_ASSERT(IndexedDatabaseManager::IsMainProcess());
|
||||||
|
|
||||||
PROFILER_LABEL("IndexedDB",
|
PROFILER_LABEL("GetAllKeysHelper", "DoDatabaseWork [IDBIndex.cpp]",
|
||||||
"GetAllKeysHelper::DoDatabaseWork [IDBIndex.cpp]");
|
js::ProfileEntry::Category::STORAGE);
|
||||||
|
|
||||||
nsCString tableName;
|
nsCString tableName;
|
||||||
if (mIndex->IsUnique()) {
|
if (mIndex->IsUnique()) {
|
||||||
@ -1429,9 +1430,8 @@ GetAllKeysHelper::GetSuccessResult(JSContext* aCx,
|
|||||||
MOZ_ASSERT(NS_IsMainThread());
|
MOZ_ASSERT(NS_IsMainThread());
|
||||||
MOZ_ASSERT(mKeys.Length() <= mLimit);
|
MOZ_ASSERT(mKeys.Length() <= mLimit);
|
||||||
|
|
||||||
PROFILER_MAIN_THREAD_LABEL("IndexedDB",
|
PROFILER_MAIN_THREAD_LABEL("GetAllKeysHelper", "GetSuccessResult [IDBIndex.cpp]",
|
||||||
"GetAllKeysHelper::GetSuccessResult "
|
js::ProfileEntry::Category::STORAGE);
|
||||||
"[IDBIndex.cpp]");
|
|
||||||
|
|
||||||
nsTArray<Key> keys;
|
nsTArray<Key> keys;
|
||||||
mKeys.SwapElements(keys);
|
mKeys.SwapElements(keys);
|
||||||
@ -1476,9 +1476,8 @@ GetAllKeysHelper::PackArgumentsForParentProcess(IndexRequestParams& aParams)
|
|||||||
MOZ_ASSERT(NS_IsMainThread());
|
MOZ_ASSERT(NS_IsMainThread());
|
||||||
MOZ_ASSERT(!IndexedDatabaseManager::IsMainProcess());
|
MOZ_ASSERT(!IndexedDatabaseManager::IsMainProcess());
|
||||||
|
|
||||||
PROFILER_MAIN_THREAD_LABEL("IndexedDB",
|
PROFILER_MAIN_THREAD_LABEL("GetAllKeysHelper", "PackArgumentsForParentProcess [IDBIndex.cpp]",
|
||||||
"GetAllKeysHelper::PackArgumentsForParentProcess "
|
js::ProfileEntry::Category::STORAGE);
|
||||||
"[IDBIndex.cpp]");
|
|
||||||
|
|
||||||
GetAllKeysParams params;
|
GetAllKeysParams params;
|
||||||
|
|
||||||
@ -1503,9 +1502,8 @@ GetAllKeysHelper::SendResponseToChildProcess(nsresult aResultCode)
|
|||||||
MOZ_ASSERT(NS_IsMainThread());
|
MOZ_ASSERT(NS_IsMainThread());
|
||||||
MOZ_ASSERT(IndexedDatabaseManager::IsMainProcess());
|
MOZ_ASSERT(IndexedDatabaseManager::IsMainProcess());
|
||||||
|
|
||||||
PROFILER_MAIN_THREAD_LABEL("IndexedDB",
|
PROFILER_MAIN_THREAD_LABEL("GetAllKeysHelper", "SendResponseToChildProcess [IDBIndex.cpp]",
|
||||||
"GetAllKeysHelper::SendResponseToChildProcess "
|
js::ProfileEntry::Category::STORAGE);
|
||||||
"[IDBIndex.cpp]");
|
|
||||||
|
|
||||||
IndexedDBRequestParentBase* actor = mRequest->GetActorParent();
|
IndexedDBRequestParentBase* actor = mRequest->GetActorParent();
|
||||||
NS_ASSERTION(actor, "How did we get this far without an actor?");
|
NS_ASSERTION(actor, "How did we get this far without an actor?");
|
||||||
@ -1545,7 +1543,8 @@ GetAllHelper::DoDatabaseWork(mozIStorageConnection* /* aConnection */)
|
|||||||
NS_ASSERTION(!NS_IsMainThread(), "Wrong thread!");
|
NS_ASSERTION(!NS_IsMainThread(), "Wrong thread!");
|
||||||
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
||||||
|
|
||||||
PROFILER_LABEL("IndexedDB", "GetAllHelper::DoDatabaseWork [IDBIndex.cpp]");
|
PROFILER_LABEL("GetAllHelper", "DoDatabaseWork [IDBIndex.cpp]",
|
||||||
|
js::ProfileEntry::Category::STORAGE);
|
||||||
|
|
||||||
nsCString indexTable;
|
nsCString indexTable;
|
||||||
if (mIndex->IsUnique()) {
|
if (mIndex->IsUnique()) {
|
||||||
@ -1637,9 +1636,8 @@ GetAllHelper::PackArgumentsForParentProcess(IndexRequestParams& aParams)
|
|||||||
NS_ASSERTION(NS_IsMainThread(), "Wrong thread!");
|
NS_ASSERTION(NS_IsMainThread(), "Wrong thread!");
|
||||||
NS_ASSERTION(!IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
NS_ASSERTION(!IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
||||||
|
|
||||||
PROFILER_MAIN_THREAD_LABEL("IndexedDB",
|
PROFILER_MAIN_THREAD_LABEL("GetAllHelper", "PackArgumentsForParentProcess [IDBIndex.cpp]",
|
||||||
"GetAllHelper::PackArgumentsForParentProcess "
|
js::ProfileEntry::Category::STORAGE);
|
||||||
"[IDBIndex.cpp]");
|
|
||||||
|
|
||||||
GetAllParams params;
|
GetAllParams params;
|
||||||
|
|
||||||
@ -1664,9 +1662,8 @@ GetAllHelper::SendResponseToChildProcess(nsresult aResultCode)
|
|||||||
NS_ASSERTION(NS_IsMainThread(), "Wrong thread!");
|
NS_ASSERTION(NS_IsMainThread(), "Wrong thread!");
|
||||||
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
||||||
|
|
||||||
PROFILER_MAIN_THREAD_LABEL("IndexedDB",
|
PROFILER_MAIN_THREAD_LABEL("GetAllHelper", "SendResponseToChildProcess [IDBIndex.cpp]",
|
||||||
"GetAllHelper::SendResponseToChildProcess "
|
js::ProfileEntry::Category::STORAGE);
|
||||||
"[IDBIndex.cpp]");
|
|
||||||
|
|
||||||
IndexedDBRequestParentBase* actor = mRequest->GetActorParent();
|
IndexedDBRequestParentBase* actor = mRequest->GetActorParent();
|
||||||
NS_ASSERTION(actor, "How did we get this far without an actor?");
|
NS_ASSERTION(actor, "How did we get this far without an actor?");
|
||||||
@ -1770,7 +1767,8 @@ OpenKeyCursorHelper::DoDatabaseWork(mozIStorageConnection* aConnection)
|
|||||||
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
||||||
NS_ASSERTION(aConnection, "Passed a null connection!");
|
NS_ASSERTION(aConnection, "Passed a null connection!");
|
||||||
|
|
||||||
PROFILER_LABEL("IndexedDB", "OpenKeyCursorHelper::DoDatabaseWork");
|
PROFILER_LABEL("OpenKeyCursorHelper", "DoDatabaseWork",
|
||||||
|
js::ProfileEntry::Category::STORAGE);
|
||||||
|
|
||||||
nsCString table;
|
nsCString table;
|
||||||
if (mIndex->IsUnique()) {
|
if (mIndex->IsUnique()) {
|
||||||
@ -1979,9 +1977,8 @@ OpenKeyCursorHelper::PackArgumentsForParentProcess(IndexRequestParams& aParams)
|
|||||||
NS_ASSERTION(NS_IsMainThread(), "Wrong thread!");
|
NS_ASSERTION(NS_IsMainThread(), "Wrong thread!");
|
||||||
NS_ASSERTION(!IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
NS_ASSERTION(!IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
||||||
|
|
||||||
PROFILER_MAIN_THREAD_LABEL("IndexedDB",
|
PROFILER_MAIN_THREAD_LABEL("OpenKeyCursorHelper", "PackArgumentsForParentProcess [IDBIndex.cpp]",
|
||||||
"OpenKeyCursorHelper::"
|
js::ProfileEntry::Category::STORAGE);
|
||||||
"PackArgumentsForParentProcess [IDBIndex.cpp]");
|
|
||||||
|
|
||||||
OpenKeyCursorParams params;
|
OpenKeyCursorParams params;
|
||||||
|
|
||||||
@ -2007,8 +2004,8 @@ OpenKeyCursorHelper::SendResponseToChildProcess(nsresult aResultCode)
|
|||||||
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
||||||
NS_ASSERTION(!mCursor, "Shouldn't have this yet!");
|
NS_ASSERTION(!mCursor, "Shouldn't have this yet!");
|
||||||
|
|
||||||
PROFILER_MAIN_THREAD_LABEL("IndexedDB",
|
PROFILER_MAIN_THREAD_LABEL("OpenKeyCursorHelper", "SendResponseToChildProcess",
|
||||||
"OpenKeyCursorHelper::SendResponseToChildProcess");
|
js::ProfileEntry::Category::STORAGE);
|
||||||
|
|
||||||
IndexedDBRequestParentBase* actor = mRequest->GetActorParent();
|
IndexedDBRequestParentBase* actor = mRequest->GetActorParent();
|
||||||
NS_ASSERTION(actor, "How did we get this far without an actor?");
|
NS_ASSERTION(actor, "How did we get this far without an actor?");
|
||||||
@ -2104,8 +2101,8 @@ OpenCursorHelper::DoDatabaseWork(mozIStorageConnection* aConnection)
|
|||||||
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
||||||
NS_ASSERTION(aConnection, "Passed a null connection!");
|
NS_ASSERTION(aConnection, "Passed a null connection!");
|
||||||
|
|
||||||
PROFILER_LABEL("IndexedDB",
|
PROFILER_LABEL("OpenCursorHelper", "DoDatabaseWork [IDBIndex.cpp]",
|
||||||
"OpenCursorHelper::DoDatabaseWork [IDBIndex.cpp]");
|
js::ProfileEntry::Category::STORAGE);
|
||||||
|
|
||||||
nsCString indexTable;
|
nsCString indexTable;
|
||||||
if (mIndex->IsUnique()) {
|
if (mIndex->IsUnique()) {
|
||||||
@ -2322,9 +2319,8 @@ OpenCursorHelper::PackArgumentsForParentProcess(IndexRequestParams& aParams)
|
|||||||
NS_ASSERTION(NS_IsMainThread(), "Wrong thread!");
|
NS_ASSERTION(NS_IsMainThread(), "Wrong thread!");
|
||||||
NS_ASSERTION(!IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
NS_ASSERTION(!IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
||||||
|
|
||||||
PROFILER_MAIN_THREAD_LABEL("IndexedDB",
|
PROFILER_MAIN_THREAD_LABEL("OpenCursorHelper", "PackArgumentsForParentProcess [IDBIndex.cpp]",
|
||||||
"OpenCursorHelper::PackArgumentsForParentProcess "
|
js::ProfileEntry::Category::STORAGE);
|
||||||
"[IDBIndex.cpp]");
|
|
||||||
|
|
||||||
OpenCursorParams params;
|
OpenCursorParams params;
|
||||||
|
|
||||||
@ -2350,9 +2346,8 @@ OpenCursorHelper::SendResponseToChildProcess(nsresult aResultCode)
|
|||||||
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
||||||
NS_ASSERTION(!mCursor, "Shouldn't have this yet!");
|
NS_ASSERTION(!mCursor, "Shouldn't have this yet!");
|
||||||
|
|
||||||
PROFILER_MAIN_THREAD_LABEL("IndexedDB",
|
PROFILER_MAIN_THREAD_LABEL("OpenCursorHelper", "SendResponseToChildProcess [IDBIndex.cpp]",
|
||||||
"OpenCursorHelper::SendResponseToChildProcess "
|
js::ProfileEntry::Category::STORAGE);
|
||||||
"[IDBIndex.cpp]");
|
|
||||||
|
|
||||||
IndexedDBRequestParentBase* actor = mRequest->GetActorParent();
|
IndexedDBRequestParentBase* actor = mRequest->GetActorParent();
|
||||||
NS_ASSERTION(actor, "How did we get this far without an actor?");
|
NS_ASSERTION(actor, "How did we get this far without an actor?");
|
||||||
@ -2437,7 +2432,8 @@ CountHelper::DoDatabaseWork(mozIStorageConnection* aConnection)
|
|||||||
NS_ASSERTION(!NS_IsMainThread(), "Wrong thread!");
|
NS_ASSERTION(!NS_IsMainThread(), "Wrong thread!");
|
||||||
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
||||||
|
|
||||||
PROFILER_LABEL("IndexedDB", "CountHelper::DoDatabaseWork [IDBIndex.cpp]");
|
PROFILER_LABEL("CountHelper", "DoDatabaseWork [IDBIndex.cpp]",
|
||||||
|
js::ProfileEntry::Category::STORAGE);
|
||||||
|
|
||||||
nsCString table;
|
nsCString table;
|
||||||
if (mIndex->IsUnique()) {
|
if (mIndex->IsUnique()) {
|
||||||
@ -2516,9 +2512,8 @@ CountHelper::PackArgumentsForParentProcess(IndexRequestParams& aParams)
|
|||||||
NS_ASSERTION(NS_IsMainThread(), "Wrong thread!");
|
NS_ASSERTION(NS_IsMainThread(), "Wrong thread!");
|
||||||
NS_ASSERTION(!IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
NS_ASSERTION(!IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
||||||
|
|
||||||
PROFILER_MAIN_THREAD_LABEL("IndexedDB",
|
PROFILER_MAIN_THREAD_LABEL("CountHelper", "PackArgumentsForParentProcess [IDBIndex.cpp]",
|
||||||
"CountHelper::PackArgumentsForParentProcess "
|
js::ProfileEntry::Category::STORAGE);
|
||||||
"[IDBIndex.cpp]");
|
|
||||||
|
|
||||||
CountParams params;
|
CountParams params;
|
||||||
|
|
||||||
@ -2541,9 +2536,8 @@ CountHelper::SendResponseToChildProcess(nsresult aResultCode)
|
|||||||
NS_ASSERTION(NS_IsMainThread(), "Wrong thread!");
|
NS_ASSERTION(NS_IsMainThread(), "Wrong thread!");
|
||||||
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
||||||
|
|
||||||
PROFILER_MAIN_THREAD_LABEL("IndexedDB",
|
PROFILER_MAIN_THREAD_LABEL("CountHelper", "SendResponseToChildProcess [IDBIndex.cpp]",
|
||||||
"CountHelper::SendResponseToChildProcess "
|
js::ProfileEntry::Category::STORAGE);
|
||||||
"[IDBIndex.cpp]");
|
|
||||||
|
|
||||||
IndexedDBRequestParentBase* actor = mRequest->GetActorParent();
|
IndexedDBRequestParentBase* actor = mRequest->GetActorParent();
|
||||||
NS_ASSERTION(actor, "How did we get this far without an actor?");
|
NS_ASSERTION(actor, "How did we get this far without an actor?");
|
||||||
|
@ -1081,7 +1081,8 @@ IDBObjectStore::UpdateIndexes(IDBTransaction* aTransaction,
|
|||||||
NS_ASSERTION(!NS_IsMainThread(), "Wrong thread!");
|
NS_ASSERTION(!NS_IsMainThread(), "Wrong thread!");
|
||||||
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
||||||
|
|
||||||
PROFILER_LABEL("IndexedDB", "IDBObjectStore::UpdateIndexes");
|
PROFILER_LABEL("IDBObjectStore", "UpdateIndexes",
|
||||||
|
js::ProfileEntry::Category::STORAGE);
|
||||||
|
|
||||||
nsresult rv;
|
nsresult rv;
|
||||||
|
|
||||||
@ -1186,8 +1187,8 @@ IDBObjectStore::GetStructuredCloneReadInfoFromStatement(
|
|||||||
NS_ASSERTION(!NS_IsMainThread(), "Wrong thread!");
|
NS_ASSERTION(!NS_IsMainThread(), "Wrong thread!");
|
||||||
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
||||||
|
|
||||||
PROFILER_LABEL("IndexedDB",
|
PROFILER_LABEL("IDBObjectStore", "GetStructuredCloneReadInfoFromStatement",
|
||||||
"IDBObjectStore::GetStructuredCloneReadInfoFromStatement");
|
js::ProfileEntry::Category::STORAGE);
|
||||||
|
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
{
|
{
|
||||||
@ -2977,7 +2978,8 @@ CopyData(nsIInputStream* aInputStream, nsIOutputStream* aOutputStream)
|
|||||||
NS_ASSERTION(!NS_IsMainThread(), "Wrong thread!");
|
NS_ASSERTION(!NS_IsMainThread(), "Wrong thread!");
|
||||||
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
||||||
|
|
||||||
PROFILER_LABEL("IndexedDB", "CopyData");
|
PROFILER_LABEL("IDBObjectStore", "CopyData",
|
||||||
|
js::ProfileEntry::Category::STORAGE);
|
||||||
|
|
||||||
nsresult rv;
|
nsresult rv;
|
||||||
|
|
||||||
@ -3020,7 +3022,8 @@ ObjectStoreHelper::Dispatch(nsIEventTarget* aDatabaseThread)
|
|||||||
{
|
{
|
||||||
NS_ASSERTION(NS_IsMainThread(), "Wrong thread!");
|
NS_ASSERTION(NS_IsMainThread(), "Wrong thread!");
|
||||||
|
|
||||||
PROFILER_MAIN_THREAD_LABEL("IndexedDB", "ObjectStoreHelper::Dispatch");
|
PROFILER_MAIN_THREAD_LABEL("ObjectStoreHelper", "Dispatch",
|
||||||
|
js::ProfileEntry::Category::STORAGE);
|
||||||
|
|
||||||
if (IndexedDatabaseManager::IsMainProcess()) {
|
if (IndexedDatabaseManager::IsMainProcess()) {
|
||||||
return AsyncConnectionHelper::Dispatch(aDatabaseThread);
|
return AsyncConnectionHelper::Dispatch(aDatabaseThread);
|
||||||
@ -3106,7 +3109,8 @@ AddHelper::DoDatabaseWork(mozIStorageConnection* aConnection)
|
|||||||
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
||||||
NS_ASSERTION(aConnection, "Passed a null connection!");
|
NS_ASSERTION(aConnection, "Passed a null connection!");
|
||||||
|
|
||||||
PROFILER_LABEL("IndexedDB", "AddHelper::DoDatabaseWork");
|
PROFILER_LABEL("AddHelper", "DoDatabaseWork",
|
||||||
|
js::ProfileEntry::Category::STORAGE);
|
||||||
|
|
||||||
if (IndexedDatabaseManager::InLowDiskSpaceMode()) {
|
if (IndexedDatabaseManager::InLowDiskSpaceMode()) {
|
||||||
NS_WARNING("Refusing to add more data because disk space is low!");
|
NS_WARNING("Refusing to add more data because disk space is low!");
|
||||||
@ -3321,8 +3325,8 @@ AddHelper::PackArgumentsForParentProcess(ObjectStoreRequestParams& aParams)
|
|||||||
NS_ASSERTION(NS_IsMainThread(), "Wrong thread!");
|
NS_ASSERTION(NS_IsMainThread(), "Wrong thread!");
|
||||||
NS_ASSERTION(!IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
NS_ASSERTION(!IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
||||||
|
|
||||||
PROFILER_MAIN_THREAD_LABEL("IndexedDB",
|
PROFILER_MAIN_THREAD_LABEL("AddHelper", "PackArgumentsForParentProcess",
|
||||||
"AddHelper::PackArgumentsForParentProcess");
|
js::ProfileEntry::Category::STORAGE);
|
||||||
|
|
||||||
AddPutParams commonParams;
|
AddPutParams commonParams;
|
||||||
commonParams.cloneInfo() = mCloneWriteInfo;
|
commonParams.cloneInfo() = mCloneWriteInfo;
|
||||||
@ -3376,8 +3380,8 @@ AddHelper::SendResponseToChildProcess(nsresult aResultCode)
|
|||||||
NS_ASSERTION(NS_IsMainThread(), "Wrong thread!");
|
NS_ASSERTION(NS_IsMainThread(), "Wrong thread!");
|
||||||
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
||||||
|
|
||||||
PROFILER_MAIN_THREAD_LABEL("IndexedDB",
|
PROFILER_MAIN_THREAD_LABEL("AddHelper", "SendResponseToChildProcess",
|
||||||
"AddHelper::SendResponseToChildProcess");
|
js::ProfileEntry::Category::STORAGE);
|
||||||
|
|
||||||
IndexedDBRequestParentBase* actor = mRequest->GetActorParent();
|
IndexedDBRequestParentBase* actor = mRequest->GetActorParent();
|
||||||
NS_ASSERTION(actor, "How did we get this far without an actor?");
|
NS_ASSERTION(actor, "How did we get this far without an actor?");
|
||||||
@ -3425,7 +3429,8 @@ GetHelper::DoDatabaseWork(mozIStorageConnection* /* aConnection */)
|
|||||||
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
||||||
NS_ASSERTION(mKeyRange, "Must have a key range here!");
|
NS_ASSERTION(mKeyRange, "Must have a key range here!");
|
||||||
|
|
||||||
PROFILER_LABEL("IndexedDB", "GetHelper::DoDatabaseWork [IDBObjectStore.cpp]");
|
PROFILER_LABEL("GetHelper", "DoDatabaseWork [IDBObjectStore.cpp]",
|
||||||
|
js::ProfileEntry::Category::STORAGE);
|
||||||
|
|
||||||
nsCString keyRangeClause;
|
nsCString keyRangeClause;
|
||||||
mKeyRange->GetBindingClause(NS_LITERAL_CSTRING("key_value"), keyRangeClause);
|
mKeyRange->GetBindingClause(NS_LITERAL_CSTRING("key_value"), keyRangeClause);
|
||||||
@ -3488,9 +3493,8 @@ GetHelper::PackArgumentsForParentProcess(ObjectStoreRequestParams& aParams)
|
|||||||
NS_ASSERTION(!IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
NS_ASSERTION(!IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
||||||
NS_ASSERTION(mKeyRange, "This should never be null!");
|
NS_ASSERTION(mKeyRange, "This should never be null!");
|
||||||
|
|
||||||
PROFILER_MAIN_THREAD_LABEL("IndexedDB",
|
PROFILER_MAIN_THREAD_LABEL("GetHelper", "PackArgumentsForParentProcess [IDBObjectStore.cpp]",
|
||||||
"GetHelper::PackArgumentsForParentProcess "
|
js::ProfileEntry::Category::STORAGE);
|
||||||
"[IDBObjectStore.cpp]");
|
|
||||||
|
|
||||||
GetParams params;
|
GetParams params;
|
||||||
|
|
||||||
@ -3506,9 +3510,8 @@ GetHelper::SendResponseToChildProcess(nsresult aResultCode)
|
|||||||
NS_ASSERTION(NS_IsMainThread(), "Wrong thread!");
|
NS_ASSERTION(NS_IsMainThread(), "Wrong thread!");
|
||||||
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
||||||
|
|
||||||
PROFILER_MAIN_THREAD_LABEL("IndexedDB",
|
PROFILER_MAIN_THREAD_LABEL("GetHelper", "SendResponseToChildProcess [IDBObjectStore.cpp]",
|
||||||
"GetHelper::SendResponseToChildProcess "
|
js::ProfileEntry::Category::STORAGE);
|
||||||
"[IDBObjectStore.cpp]");
|
|
||||||
|
|
||||||
IndexedDBRequestParentBase* actor = mRequest->GetActorParent();
|
IndexedDBRequestParentBase* actor = mRequest->GetActorParent();
|
||||||
NS_ASSERTION(actor, "How did we get this far without an actor?");
|
NS_ASSERTION(actor, "How did we get this far without an actor?");
|
||||||
@ -3583,7 +3586,8 @@ DeleteHelper::DoDatabaseWork(mozIStorageConnection* /*aConnection */)
|
|||||||
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
||||||
NS_ASSERTION(mKeyRange, "Must have a key range here!");
|
NS_ASSERTION(mKeyRange, "Must have a key range here!");
|
||||||
|
|
||||||
PROFILER_LABEL("IndexedDB", "DeleteHelper::DoDatabaseWork");
|
PROFILER_LABEL("DeleteHelper", "DoDatabaseWork",
|
||||||
|
js::ProfileEntry::Category::STORAGE);
|
||||||
|
|
||||||
nsCString keyRangeClause;
|
nsCString keyRangeClause;
|
||||||
mKeyRange->GetBindingClause(NS_LITERAL_CSTRING("key_value"), keyRangeClause);
|
mKeyRange->GetBindingClause(NS_LITERAL_CSTRING("key_value"), keyRangeClause);
|
||||||
@ -3627,8 +3631,8 @@ DeleteHelper::PackArgumentsForParentProcess(ObjectStoreRequestParams& aParams)
|
|||||||
NS_ASSERTION(!IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
NS_ASSERTION(!IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
||||||
NS_ASSERTION(mKeyRange, "This should never be null!");
|
NS_ASSERTION(mKeyRange, "This should never be null!");
|
||||||
|
|
||||||
PROFILER_MAIN_THREAD_LABEL("IndexedDB",
|
PROFILER_MAIN_THREAD_LABEL("DeleteHelper", "PackArgumentsForParentProcess",
|
||||||
"DeleteHelper::PackArgumentsForParentProcess");
|
js::ProfileEntry::Category::STORAGE);
|
||||||
|
|
||||||
DeleteParams params;
|
DeleteParams params;
|
||||||
|
|
||||||
@ -3644,8 +3648,8 @@ DeleteHelper::SendResponseToChildProcess(nsresult aResultCode)
|
|||||||
NS_ASSERTION(NS_IsMainThread(), "Wrong thread!");
|
NS_ASSERTION(NS_IsMainThread(), "Wrong thread!");
|
||||||
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
||||||
|
|
||||||
PROFILER_MAIN_THREAD_LABEL("IndexedDB",
|
PROFILER_MAIN_THREAD_LABEL("DeleteHelper", "SendResponseToChildProcess",
|
||||||
"DeleteHelper::SendResponseToChildProcess");
|
js::ProfileEntry::Category::STORAGE);
|
||||||
|
|
||||||
IndexedDBRequestParentBase* actor = mRequest->GetActorParent();
|
IndexedDBRequestParentBase* actor = mRequest->GetActorParent();
|
||||||
NS_ASSERTION(actor, "How did we get this far without an actor?");
|
NS_ASSERTION(actor, "How did we get this far without an actor?");
|
||||||
@ -3682,7 +3686,8 @@ ClearHelper::DoDatabaseWork(mozIStorageConnection* aConnection)
|
|||||||
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
||||||
NS_ASSERTION(aConnection, "Passed a null connection!");
|
NS_ASSERTION(aConnection, "Passed a null connection!");
|
||||||
|
|
||||||
PROFILER_LABEL("IndexedDB", "ClearHelper::DoDatabaseWork");
|
PROFILER_LABEL("ClearHelper", "DoDatabaseWork",
|
||||||
|
js::ProfileEntry::Category::STORAGE);
|
||||||
|
|
||||||
nsCOMPtr<mozIStorageStatement> stmt =
|
nsCOMPtr<mozIStorageStatement> stmt =
|
||||||
mTransaction->GetCachedStatement(
|
mTransaction->GetCachedStatement(
|
||||||
@ -3708,8 +3713,8 @@ ClearHelper::PackArgumentsForParentProcess(ObjectStoreRequestParams& aParams)
|
|||||||
NS_ASSERTION(NS_IsMainThread(), "Wrong thread!");
|
NS_ASSERTION(NS_IsMainThread(), "Wrong thread!");
|
||||||
NS_ASSERTION(!IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
NS_ASSERTION(!IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
||||||
|
|
||||||
PROFILER_MAIN_THREAD_LABEL("IndexedDB",
|
PROFILER_MAIN_THREAD_LABEL("ClearHelper", "PackArgumentsForParentProcess",
|
||||||
"ClearHelper::PackArgumentsForParentProcess");
|
js::ProfileEntry::Category::STORAGE);
|
||||||
|
|
||||||
aParams = ClearParams();
|
aParams = ClearParams();
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
@ -3721,8 +3726,8 @@ ClearHelper::SendResponseToChildProcess(nsresult aResultCode)
|
|||||||
NS_ASSERTION(NS_IsMainThread(), "Wrong thread!");
|
NS_ASSERTION(NS_IsMainThread(), "Wrong thread!");
|
||||||
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
||||||
|
|
||||||
PROFILER_MAIN_THREAD_LABEL("IndexedDB",
|
PROFILER_MAIN_THREAD_LABEL("ClearHelper", "SendResponseToChildProcess",
|
||||||
"ClearHelper::SendResponseToChildProcess");
|
js::ProfileEntry::Category::STORAGE);
|
||||||
|
|
||||||
IndexedDBRequestParentBase* actor = mRequest->GetActorParent();
|
IndexedDBRequestParentBase* actor = mRequest->GetActorParent();
|
||||||
NS_ASSERTION(actor, "How did we get this far without an actor?");
|
NS_ASSERTION(actor, "How did we get this far without an actor?");
|
||||||
@ -3758,8 +3763,8 @@ OpenCursorHelper::DoDatabaseWork(mozIStorageConnection* aConnection)
|
|||||||
NS_ASSERTION(!NS_IsMainThread(), "Wrong thread!");
|
NS_ASSERTION(!NS_IsMainThread(), "Wrong thread!");
|
||||||
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
||||||
|
|
||||||
PROFILER_LABEL("IndexedDB",
|
PROFILER_LABEL("OpenCursorHelper", "DoDatabaseWork [IDBObjectStore.cpp]",
|
||||||
"OpenCursorHelper::DoDatabaseWork [IDBObjectStore.cpp]");
|
js::ProfileEntry::Category::STORAGE);
|
||||||
|
|
||||||
NS_NAMED_LITERAL_CSTRING(keyValue, "key_value");
|
NS_NAMED_LITERAL_CSTRING(keyValue, "key_value");
|
||||||
|
|
||||||
@ -3943,9 +3948,8 @@ OpenCursorHelper::PackArgumentsForParentProcess(
|
|||||||
NS_ASSERTION(NS_IsMainThread(), "Wrong thread!");
|
NS_ASSERTION(NS_IsMainThread(), "Wrong thread!");
|
||||||
NS_ASSERTION(!IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
NS_ASSERTION(!IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
||||||
|
|
||||||
PROFILER_MAIN_THREAD_LABEL("IndexedDB",
|
PROFILER_MAIN_THREAD_LABEL("OpenCursorHelper", "PackArgumentsForParentProcess [IDBObjectStore.cpp]",
|
||||||
"OpenCursorHelper::PackArgumentsForParentProcess "
|
js::ProfileEntry::Category::STORAGE);
|
||||||
"[IDBObjectStore.cpp]");
|
|
||||||
|
|
||||||
OpenCursorParams params;
|
OpenCursorParams params;
|
||||||
|
|
||||||
@ -3971,9 +3975,8 @@ OpenCursorHelper::SendResponseToChildProcess(nsresult aResultCode)
|
|||||||
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
||||||
NS_ASSERTION(!mCursor, "Shouldn't have this yet!");
|
NS_ASSERTION(!mCursor, "Shouldn't have this yet!");
|
||||||
|
|
||||||
PROFILER_MAIN_THREAD_LABEL("IndexedDB",
|
PROFILER_MAIN_THREAD_LABEL("OpenCursorHelper", "SendResponseToChildProcess [IDBObjectStore.cpp]",
|
||||||
"OpenCursorHelper::SendResponseToChildProcess "
|
js::ProfileEntry::Category::STORAGE);
|
||||||
"[IDBObjectStore.cpp]");
|
|
||||||
|
|
||||||
IndexedDBRequestParentBase* actor = mRequest->GetActorParent();
|
IndexedDBRequestParentBase* actor = mRequest->GetActorParent();
|
||||||
NS_ASSERTION(actor, "How did we get this far without an actor?");
|
NS_ASSERTION(actor, "How did we get this far without an actor?");
|
||||||
@ -4095,8 +4098,8 @@ OpenKeyCursorHelper::DoDatabaseWork(mozIStorageConnection* /* aConnection */)
|
|||||||
MOZ_ASSERT(!NS_IsMainThread());
|
MOZ_ASSERT(!NS_IsMainThread());
|
||||||
MOZ_ASSERT(IndexedDatabaseManager::IsMainProcess());
|
MOZ_ASSERT(IndexedDatabaseManager::IsMainProcess());
|
||||||
|
|
||||||
PROFILER_LABEL("IndexedDB",
|
PROFILER_LABEL("OpenKeyCursorHelper", "DoDatabaseWork [IDBObjectStore.cpp]",
|
||||||
"OpenKeyCursorHelper::DoDatabaseWork [IDBObjectStore.cpp]");
|
js::ProfileEntry::Category::STORAGE);
|
||||||
|
|
||||||
NS_NAMED_LITERAL_CSTRING(keyValue, "key_value");
|
NS_NAMED_LITERAL_CSTRING(keyValue, "key_value");
|
||||||
NS_NAMED_LITERAL_CSTRING(id, "id");
|
NS_NAMED_LITERAL_CSTRING(id, "id");
|
||||||
@ -4212,9 +4215,8 @@ OpenKeyCursorHelper::EnsureCursor()
|
|||||||
{
|
{
|
||||||
MOZ_ASSERT(NS_IsMainThread());
|
MOZ_ASSERT(NS_IsMainThread());
|
||||||
|
|
||||||
PROFILER_MAIN_THREAD_LABEL("IndexedDB",
|
PROFILER_MAIN_THREAD_LABEL("OpenKeyCursorHelper", "EnsureCursor [IDBObjectStore.cpp]",
|
||||||
"OpenKeyCursorHelper::EnsureCursor "
|
js::ProfileEntry::Category::STORAGE);
|
||||||
"[IDBObjectStore.cpp]");
|
|
||||||
|
|
||||||
if (mCursor || mKey.IsUnset()) {
|
if (mCursor || mKey.IsUnset()) {
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
@ -4234,9 +4236,8 @@ OpenKeyCursorHelper::GetSuccessResult(JSContext* aCx,
|
|||||||
{
|
{
|
||||||
MOZ_ASSERT(NS_IsMainThread());
|
MOZ_ASSERT(NS_IsMainThread());
|
||||||
|
|
||||||
PROFILER_MAIN_THREAD_LABEL("IndexedDB",
|
PROFILER_MAIN_THREAD_LABEL("OpenKeyCursorHelper", "GetSuccessResult [IDBObjectStore.cpp]",
|
||||||
"OpenKeyCursorHelper::GetSuccessResult "
|
js::ProfileEntry::Category::STORAGE);
|
||||||
"[IDBObjectStore.cpp]");
|
|
||||||
|
|
||||||
nsresult rv = EnsureCursor();
|
nsresult rv = EnsureCursor();
|
||||||
NS_ENSURE_SUCCESS(rv, rv);
|
NS_ENSURE_SUCCESS(rv, rv);
|
||||||
@ -4270,10 +4271,8 @@ OpenKeyCursorHelper::PackArgumentsForParentProcess(
|
|||||||
MOZ_ASSERT(NS_IsMainThread());
|
MOZ_ASSERT(NS_IsMainThread());
|
||||||
MOZ_ASSERT(!IndexedDatabaseManager::IsMainProcess());
|
MOZ_ASSERT(!IndexedDatabaseManager::IsMainProcess());
|
||||||
|
|
||||||
PROFILER_MAIN_THREAD_LABEL("IndexedDB",
|
PROFILER_MAIN_THREAD_LABEL("OpenKeyCursorHelper", "PackArgumentsForParentProcess [IDBObjectStore.cpp]",
|
||||||
"OpenKeyCursorHelper::"
|
js::ProfileEntry::Category::STORAGE);
|
||||||
"PackArgumentsForParentProcess "
|
|
||||||
"[IDBObjectStore.cpp]");
|
|
||||||
|
|
||||||
OpenKeyCursorParams params;
|
OpenKeyCursorParams params;
|
||||||
|
|
||||||
@ -4299,9 +4298,8 @@ OpenKeyCursorHelper::SendResponseToChildProcess(nsresult aResultCode)
|
|||||||
MOZ_ASSERT(IndexedDatabaseManager::IsMainProcess());
|
MOZ_ASSERT(IndexedDatabaseManager::IsMainProcess());
|
||||||
MOZ_ASSERT(!mCursor);
|
MOZ_ASSERT(!mCursor);
|
||||||
|
|
||||||
PROFILER_MAIN_THREAD_LABEL("IndexedDB",
|
PROFILER_MAIN_THREAD_LABEL("OpenKeyCursorHelper", "SendResponseToChildProcess [IDBObjectStore.cpp]",
|
||||||
"OpenKeyCursorHelper::SendResponseToChildProcess "
|
js::ProfileEntry::Category::STORAGE);
|
||||||
"[IDBObjectStore.cpp]");
|
|
||||||
|
|
||||||
IndexedDBRequestParentBase* actor = mRequest->GetActorParent();
|
IndexedDBRequestParentBase* actor = mRequest->GetActorParent();
|
||||||
MOZ_ASSERT(actor);
|
MOZ_ASSERT(actor);
|
||||||
@ -4365,10 +4363,8 @@ OpenKeyCursorHelper::UnpackResponseFromParentProcess(
|
|||||||
OpenCursorResponse::TPIndexedDBCursorChild);
|
OpenCursorResponse::TPIndexedDBCursorChild);
|
||||||
MOZ_ASSERT(!mCursor);
|
MOZ_ASSERT(!mCursor);
|
||||||
|
|
||||||
PROFILER_MAIN_THREAD_LABEL("IndexedDB",
|
PROFILER_MAIN_THREAD_LABEL("OpenKeyCursorHelper", "UnpackResponseFromParentProcess [IDBObjectStore.cpp]",
|
||||||
"OpenKeyCursorHelper::"
|
js::ProfileEntry::Category::STORAGE);
|
||||||
"UnpackResponseFromParentProcess "
|
|
||||||
"[IDBObjectStore.cpp]");
|
|
||||||
|
|
||||||
const OpenCursorResponse& response =
|
const OpenCursorResponse& response =
|
||||||
aResponseValue.get_OpenCursorResponse();
|
aResponseValue.get_OpenCursorResponse();
|
||||||
@ -4400,7 +4396,8 @@ CreateIndexHelper::DoDatabaseWork(mozIStorageConnection* aConnection)
|
|||||||
NS_ASSERTION(!NS_IsMainThread(), "Wrong thread!");
|
NS_ASSERTION(!NS_IsMainThread(), "Wrong thread!");
|
||||||
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
||||||
|
|
||||||
PROFILER_LABEL("IndexedDB", "CreateIndexHelper::DoDatabaseWork");
|
PROFILER_LABEL("CreateIndexHelper", "DoDatabaseWork",
|
||||||
|
js::ProfileEntry::Category::STORAGE);
|
||||||
|
|
||||||
if (IndexedDatabaseManager::InLowDiskSpaceMode()) {
|
if (IndexedDatabaseManager::InLowDiskSpaceMode()) {
|
||||||
NS_WARNING("Refusing to create index because disk space is low!");
|
NS_WARNING("Refusing to create index because disk space is low!");
|
||||||
@ -4571,7 +4568,8 @@ DeleteIndexHelper::DoDatabaseWork(mozIStorageConnection* aConnection)
|
|||||||
NS_ASSERTION(!NS_IsMainThread(), "Wrong thread!");
|
NS_ASSERTION(!NS_IsMainThread(), "Wrong thread!");
|
||||||
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
||||||
|
|
||||||
PROFILER_LABEL("IndexedDB", "DeleteIndexHelper::DoDatabaseWork");
|
PROFILER_LABEL("DeleteIndexHelper", "DoDatabaseWork",
|
||||||
|
js::ProfileEntry::Category::STORAGE);
|
||||||
|
|
||||||
nsCOMPtr<mozIStorageStatement> stmt =
|
nsCOMPtr<mozIStorageStatement> stmt =
|
||||||
mTransaction->GetCachedStatement(
|
mTransaction->GetCachedStatement(
|
||||||
@ -4598,8 +4596,8 @@ GetAllHelper::DoDatabaseWork(mozIStorageConnection* aConnection)
|
|||||||
NS_ASSERTION(!NS_IsMainThread(), "Wrong thread!");
|
NS_ASSERTION(!NS_IsMainThread(), "Wrong thread!");
|
||||||
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
||||||
|
|
||||||
PROFILER_LABEL("IndexedDB",
|
PROFILER_LABEL("GetAllHelper", "DoDatabaseWork [IDBObjectStore.cpp]",
|
||||||
"GetAllHelper::DoDatabaseWork [IDBObjectStore.cpp]");
|
js::ProfileEntry::Category::STORAGE);
|
||||||
|
|
||||||
NS_NAMED_LITERAL_CSTRING(lowerKeyName, "lower_key");
|
NS_NAMED_LITERAL_CSTRING(lowerKeyName, "lower_key");
|
||||||
NS_NAMED_LITERAL_CSTRING(upperKeyName, "upper_key");
|
NS_NAMED_LITERAL_CSTRING(upperKeyName, "upper_key");
|
||||||
@ -4712,9 +4710,8 @@ GetAllHelper::PackArgumentsForParentProcess(ObjectStoreRequestParams& aParams)
|
|||||||
NS_ASSERTION(NS_IsMainThread(), "Wrong thread!");
|
NS_ASSERTION(NS_IsMainThread(), "Wrong thread!");
|
||||||
NS_ASSERTION(!IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
NS_ASSERTION(!IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
||||||
|
|
||||||
PROFILER_MAIN_THREAD_LABEL("IndexedDB",
|
PROFILER_MAIN_THREAD_LABEL("GetAllHelper", "PackArgumentsForParentProcess [IDBObjectStore.cpp]",
|
||||||
"GetAllHelper::PackArgumentsForParentProcess "
|
js::ProfileEntry::Category::STORAGE);
|
||||||
"[IDBObjectStore.cpp]");
|
|
||||||
|
|
||||||
GetAllParams params;
|
GetAllParams params;
|
||||||
|
|
||||||
@ -4739,9 +4736,8 @@ GetAllHelper::SendResponseToChildProcess(nsresult aResultCode)
|
|||||||
NS_ASSERTION(NS_IsMainThread(), "Wrong thread!");
|
NS_ASSERTION(NS_IsMainThread(), "Wrong thread!");
|
||||||
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
||||||
|
|
||||||
PROFILER_MAIN_THREAD_LABEL("IndexedDB",
|
PROFILER_MAIN_THREAD_LABEL("GetAllHelper", "SendResponseToChildProcess [IDBObjectStore.cpp]",
|
||||||
"GetAllHelper::SendResponseToChildProcess "
|
js::ProfileEntry::Category::STORAGE);
|
||||||
"[IDBObjectStore.cpp]");
|
|
||||||
|
|
||||||
IndexedDBRequestParentBase* actor = mRequest->GetActorParent();
|
IndexedDBRequestParentBase* actor = mRequest->GetActorParent();
|
||||||
NS_ASSERTION(actor, "How did we get this far without an actor?");
|
NS_ASSERTION(actor, "How did we get this far without an actor?");
|
||||||
@ -4840,8 +4836,8 @@ GetAllKeysHelper::DoDatabaseWork(mozIStorageConnection* /* aConnection */)
|
|||||||
MOZ_ASSERT(!NS_IsMainThread());
|
MOZ_ASSERT(!NS_IsMainThread());
|
||||||
MOZ_ASSERT(IndexedDatabaseManager::IsMainProcess());
|
MOZ_ASSERT(IndexedDatabaseManager::IsMainProcess());
|
||||||
|
|
||||||
PROFILER_LABEL("IndexedDB",
|
PROFILER_LABEL("GetAllKeysHelper", "DoDatabaseWork [IDObjectStore.cpp]",
|
||||||
"GetAllKeysHelper::DoDatabaseWork [IDObjectStore.cpp]");
|
js::ProfileEntry::Category::STORAGE);
|
||||||
|
|
||||||
NS_NAMED_LITERAL_CSTRING(keyValue, "key_value");
|
NS_NAMED_LITERAL_CSTRING(keyValue, "key_value");
|
||||||
|
|
||||||
@ -4904,9 +4900,8 @@ GetAllKeysHelper::GetSuccessResult(JSContext* aCx,
|
|||||||
MOZ_ASSERT(NS_IsMainThread());
|
MOZ_ASSERT(NS_IsMainThread());
|
||||||
MOZ_ASSERT(mKeys.Length() <= mLimit);
|
MOZ_ASSERT(mKeys.Length() <= mLimit);
|
||||||
|
|
||||||
PROFILER_MAIN_THREAD_LABEL("IndexedDB",
|
PROFILER_MAIN_THREAD_LABEL("GetAllKeysHelper", "GetSuccessResult [IDBObjectStore.cpp]",
|
||||||
"GetAllKeysHelper::GetSuccessResult "
|
js::ProfileEntry::Category::STORAGE);
|
||||||
"[IDBObjectStore.cpp]");
|
|
||||||
|
|
||||||
nsTArray<Key> keys;
|
nsTArray<Key> keys;
|
||||||
mKeys.SwapElements(keys);
|
mKeys.SwapElements(keys);
|
||||||
@ -4962,9 +4957,8 @@ GetAllKeysHelper::PackArgumentsForParentProcess(
|
|||||||
MOZ_ASSERT(NS_IsMainThread());
|
MOZ_ASSERT(NS_IsMainThread());
|
||||||
MOZ_ASSERT(!IndexedDatabaseManager::IsMainProcess());
|
MOZ_ASSERT(!IndexedDatabaseManager::IsMainProcess());
|
||||||
|
|
||||||
PROFILER_MAIN_THREAD_LABEL("IndexedDB",
|
PROFILER_MAIN_THREAD_LABEL("GetAllKeysHelper", "PackArgumentsForParentProcess [IDBObjectStore.cpp]",
|
||||||
"GetAllKeysHelper::PackArgumentsForParentProcess "
|
js::ProfileEntry::Category::STORAGE);
|
||||||
"[IDBObjectStore.cpp]");
|
|
||||||
|
|
||||||
GetAllKeysParams params;
|
GetAllKeysParams params;
|
||||||
|
|
||||||
@ -4988,9 +4982,8 @@ GetAllKeysHelper::SendResponseToChildProcess(nsresult aResultCode)
|
|||||||
MOZ_ASSERT(NS_IsMainThread());
|
MOZ_ASSERT(NS_IsMainThread());
|
||||||
MOZ_ASSERT(IndexedDatabaseManager::IsMainProcess());
|
MOZ_ASSERT(IndexedDatabaseManager::IsMainProcess());
|
||||||
|
|
||||||
PROFILER_MAIN_THREAD_LABEL("IndexedDB",
|
PROFILER_MAIN_THREAD_LABEL("GetAllKeysHelper", "SendResponseToChildProcess [IDBObjectStore.cpp]",
|
||||||
"GetAllKeysHelper::SendResponseToChildProcess "
|
js::ProfileEntry::Category::STORAGE);
|
||||||
"[IDBObjectStore.cpp]");
|
|
||||||
|
|
||||||
IndexedDBRequestParentBase* actor = mRequest->GetActorParent();
|
IndexedDBRequestParentBase* actor = mRequest->GetActorParent();
|
||||||
MOZ_ASSERT(actor);
|
MOZ_ASSERT(actor);
|
||||||
@ -5030,8 +5023,8 @@ CountHelper::DoDatabaseWork(mozIStorageConnection* aConnection)
|
|||||||
NS_ASSERTION(!NS_IsMainThread(), "Wrong thread!");
|
NS_ASSERTION(!NS_IsMainThread(), "Wrong thread!");
|
||||||
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
||||||
|
|
||||||
PROFILER_LABEL("IndexedDB",
|
PROFILER_LABEL("CountHelper", "DoDatabaseWork [IDBObjectStore.cpp]",
|
||||||
"CountHelper::DoDatabaseWork [IDBObjectStore.cpp]");
|
js::ProfileEntry::Category::STORAGE);
|
||||||
|
|
||||||
NS_NAMED_LITERAL_CSTRING(lowerKeyName, "lower_key");
|
NS_NAMED_LITERAL_CSTRING(lowerKeyName, "lower_key");
|
||||||
NS_NAMED_LITERAL_CSTRING(upperKeyName, "upper_key");
|
NS_NAMED_LITERAL_CSTRING(upperKeyName, "upper_key");
|
||||||
@ -5115,9 +5108,8 @@ CountHelper::PackArgumentsForParentProcess(ObjectStoreRequestParams& aParams)
|
|||||||
NS_ASSERTION(NS_IsMainThread(), "Wrong thread!");
|
NS_ASSERTION(NS_IsMainThread(), "Wrong thread!");
|
||||||
NS_ASSERTION(!IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
NS_ASSERTION(!IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
||||||
|
|
||||||
PROFILER_MAIN_THREAD_LABEL("IndexedDB",
|
PROFILER_MAIN_THREAD_LABEL("CountHelper", "PackArgumentsForParentProcess [IDBObjectStore.cpp]",
|
||||||
"CountHelper::PackArgumentsForParentProcess "
|
js::ProfileEntry::Category::STORAGE);
|
||||||
"[IDBObjectStore.cpp]");
|
|
||||||
|
|
||||||
CountParams params;
|
CountParams params;
|
||||||
|
|
||||||
@ -5140,9 +5132,8 @@ CountHelper::SendResponseToChildProcess(nsresult aResultCode)
|
|||||||
NS_ASSERTION(NS_IsMainThread(), "Wrong thread!");
|
NS_ASSERTION(NS_IsMainThread(), "Wrong thread!");
|
||||||
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
||||||
|
|
||||||
PROFILER_MAIN_THREAD_LABEL("IndexedDB",
|
PROFILER_MAIN_THREAD_LABEL("CountHelper", "SendResponseToChildProcess [IDBObjectStore.cpp]",
|
||||||
"CountHelper::SendResponseToChildProcess "
|
js::ProfileEntry::Category::STORAGE);
|
||||||
"[IDBObjectStore.cpp]");
|
|
||||||
|
|
||||||
IndexedDBRequestParentBase* actor = mRequest->GetActorParent();
|
IndexedDBRequestParentBase* actor = mRequest->GetActorParent();
|
||||||
NS_ASSERTION(actor, "How did we get this far without an actor?");
|
NS_ASSERTION(actor, "How did we get this far without an actor?");
|
||||||
|
@ -373,7 +373,8 @@ IDBTransaction::GetOrCreateConnection(mozIStorageConnection** aResult)
|
|||||||
NS_ASSERTION(!NS_IsMainThread(), "Wrong thread!");
|
NS_ASSERTION(!NS_IsMainThread(), "Wrong thread!");
|
||||||
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
||||||
|
|
||||||
PROFILER_LABEL("IndexedDB", "IDBTransaction::GetOrCreateConnection");
|
PROFILER_LABEL("IDBTransaction", "GetOrCreateConnection",
|
||||||
|
js::ProfileEntry::Category::STORAGE);
|
||||||
|
|
||||||
if (mDatabase->IsInvalidated()) {
|
if (mDatabase->IsInvalidated()) {
|
||||||
return NS_ERROR_NOT_AVAILABLE;
|
return NS_ERROR_NOT_AVAILABLE;
|
||||||
@ -792,7 +793,8 @@ NS_IMETHODIMP
|
|||||||
CommitHelper::Run()
|
CommitHelper::Run()
|
||||||
{
|
{
|
||||||
if (NS_IsMainThread()) {
|
if (NS_IsMainThread()) {
|
||||||
PROFILER_MAIN_THREAD_LABEL("IndexedDB", "CommitHelper::Run");
|
PROFILER_MAIN_THREAD_LABEL("CommitHelper", "Run",
|
||||||
|
js::ProfileEntry::Category::STORAGE);
|
||||||
|
|
||||||
NS_ASSERTION(mDoomedObjects.IsEmpty(), "Didn't release doomed objects!");
|
NS_ASSERTION(mDoomedObjects.IsEmpty(), "Didn't release doomed objects!");
|
||||||
|
|
||||||
@ -860,7 +862,8 @@ CommitHelper::Run()
|
|||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
PROFILER_LABEL("IndexedDB", "CommitHelper::Run");
|
PROFILER_LABEL("CommitHelper", "Run",
|
||||||
|
js::ProfileEntry::Category::STORAGE);
|
||||||
|
|
||||||
IDBDatabase* database = mTransaction->Database();
|
IDBDatabase* database = mTransaction->Database();
|
||||||
if (database->IsInvalidated()) {
|
if (database->IsInvalidated()) {
|
||||||
|
@ -125,7 +125,8 @@ CreateFileTables(mozIStorageConnection* aDBConn)
|
|||||||
AssertIsOnIOThread();
|
AssertIsOnIOThread();
|
||||||
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
||||||
|
|
||||||
PROFILER_LABEL("IndexedDB", "CreateFileTables");
|
PROFILER_LABEL("OpenDatabaseHelper", "CreateFileTables",
|
||||||
|
js::ProfileEntry::Category::STORAGE);
|
||||||
|
|
||||||
// Table `file`
|
// Table `file`
|
||||||
nsresult rv = aDBConn->ExecuteSimpleSQL(NS_LITERAL_CSTRING(
|
nsresult rv = aDBConn->ExecuteSimpleSQL(NS_LITERAL_CSTRING(
|
||||||
@ -188,7 +189,8 @@ CreateTables(mozIStorageConnection* aDBConn)
|
|||||||
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
||||||
NS_ASSERTION(aDBConn, "Passing a null database connection!");
|
NS_ASSERTION(aDBConn, "Passing a null database connection!");
|
||||||
|
|
||||||
PROFILER_LABEL("IndexedDB", "CreateTables");
|
PROFILER_LABEL("OpenDatabaseHelper", "CreateTables",
|
||||||
|
js::ProfileEntry::Category::STORAGE);
|
||||||
|
|
||||||
// Table `database`
|
// Table `database`
|
||||||
nsresult rv = aDBConn->ExecuteSimpleSQL(NS_LITERAL_CSTRING(
|
nsresult rv = aDBConn->ExecuteSimpleSQL(NS_LITERAL_CSTRING(
|
||||||
@ -304,7 +306,8 @@ UpgradeSchemaFrom4To5(mozIStorageConnection* aConnection)
|
|||||||
AssertIsOnIOThread();
|
AssertIsOnIOThread();
|
||||||
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
||||||
|
|
||||||
PROFILER_LABEL("IndexedDB", "UpgradeSchemaFrom4To5");
|
PROFILER_LABEL("OpenDatabaseHelper", "UpgradeSchemaFrom4To5",
|
||||||
|
js::ProfileEntry::Category::STORAGE);
|
||||||
|
|
||||||
nsresult rv;
|
nsresult rv;
|
||||||
|
|
||||||
@ -393,7 +396,8 @@ UpgradeSchemaFrom5To6(mozIStorageConnection* aConnection)
|
|||||||
AssertIsOnIOThread();
|
AssertIsOnIOThread();
|
||||||
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
||||||
|
|
||||||
PROFILER_LABEL("IndexedDB", "UpgradeSchemaFrom5To6");
|
PROFILER_LABEL("OpenDatabaseHelper", "UpgradeSchemaFrom5To6",
|
||||||
|
js::ProfileEntry::Category::STORAGE);
|
||||||
|
|
||||||
// First, drop all the indexes we're no longer going to use.
|
// First, drop all the indexes we're no longer going to use.
|
||||||
nsresult rv = aConnection->ExecuteSimpleSQL(NS_LITERAL_CSTRING(
|
nsresult rv = aConnection->ExecuteSimpleSQL(NS_LITERAL_CSTRING(
|
||||||
@ -751,7 +755,8 @@ UpgradeSchemaFrom6To7(mozIStorageConnection* aConnection)
|
|||||||
AssertIsOnIOThread();
|
AssertIsOnIOThread();
|
||||||
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
||||||
|
|
||||||
PROFILER_LABEL("IndexedDB", "UpgradeSchemaFrom6To7");
|
PROFILER_LABEL("OpenDatabaseHelper", "UpgradeSchemaFrom6To7",
|
||||||
|
js::ProfileEntry::Category::STORAGE);
|
||||||
|
|
||||||
nsresult rv = aConnection->ExecuteSimpleSQL(NS_LITERAL_CSTRING(
|
nsresult rv = aConnection->ExecuteSimpleSQL(NS_LITERAL_CSTRING(
|
||||||
"CREATE TEMPORARY TABLE temp_upgrade ("
|
"CREATE TEMPORARY TABLE temp_upgrade ("
|
||||||
@ -810,7 +815,8 @@ UpgradeSchemaFrom7To8(mozIStorageConnection* aConnection)
|
|||||||
AssertIsOnIOThread();
|
AssertIsOnIOThread();
|
||||||
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
||||||
|
|
||||||
PROFILER_LABEL("IndexedDB", "UpgradeSchemaFrom7To8");
|
PROFILER_LABEL("OpenDatabaseHelper", "UpgradeSchemaFrom7To8",
|
||||||
|
js::ProfileEntry::Category::STORAGE);
|
||||||
|
|
||||||
nsresult rv = aConnection->ExecuteSimpleSQL(NS_LITERAL_CSTRING(
|
nsresult rv = aConnection->ExecuteSimpleSQL(NS_LITERAL_CSTRING(
|
||||||
"CREATE TEMPORARY TABLE temp_upgrade ("
|
"CREATE TEMPORARY TABLE temp_upgrade ("
|
||||||
@ -882,7 +888,8 @@ public:
|
|||||||
OnFunctionCall(mozIStorageValueArray* aArguments,
|
OnFunctionCall(mozIStorageValueArray* aArguments,
|
||||||
nsIVariant** aResult)
|
nsIVariant** aResult)
|
||||||
{
|
{
|
||||||
PROFILER_LABEL("IndexedDB", "CompressDataBlobsFunction::OnFunctionCall");
|
PROFILER_LABEL("CompressDataBlobsFunction", "OnFunctionCall",
|
||||||
|
js::ProfileEntry::Category::STORAGE);
|
||||||
|
|
||||||
uint32_t argc;
|
uint32_t argc;
|
||||||
nsresult rv = aArguments->GetNumEntries(&argc);
|
nsresult rv = aArguments->GetNumEntries(&argc);
|
||||||
@ -932,7 +939,8 @@ UpgradeSchemaFrom8To9_0(mozIStorageConnection* aConnection)
|
|||||||
AssertIsOnIOThread();
|
AssertIsOnIOThread();
|
||||||
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
||||||
|
|
||||||
PROFILER_LABEL("IndexedDB", "UpgradeSchemaFrom8To9_0");
|
PROFILER_LABEL("OpenDatabaseHelper", "UpgradeSchemaFrom8To9_0",
|
||||||
|
js::ProfileEntry::Category::STORAGE);
|
||||||
|
|
||||||
// We no longer use the dataVersion column.
|
// We no longer use the dataVersion column.
|
||||||
nsresult rv = aConnection->ExecuteSimpleSQL(NS_LITERAL_CSTRING(
|
nsresult rv = aConnection->ExecuteSimpleSQL(NS_LITERAL_CSTRING(
|
||||||
@ -973,7 +981,8 @@ UpgradeSchemaFrom9_0To10_0(mozIStorageConnection* aConnection)
|
|||||||
AssertIsOnIOThread();
|
AssertIsOnIOThread();
|
||||||
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
||||||
|
|
||||||
PROFILER_LABEL("IndexedDB", "UpgradeSchemaFrom9_0To10_0");
|
PROFILER_LABEL("OpenDatabaseHelper", "UpgradeSchemaFrom9_0To10_0",
|
||||||
|
js::ProfileEntry::Category::STORAGE);
|
||||||
|
|
||||||
nsresult rv = aConnection->ExecuteSimpleSQL(NS_LITERAL_CSTRING(
|
nsresult rv = aConnection->ExecuteSimpleSQL(NS_LITERAL_CSTRING(
|
||||||
"ALTER TABLE object_data ADD COLUMN file_ids TEXT;"
|
"ALTER TABLE object_data ADD COLUMN file_ids TEXT;"
|
||||||
@ -1000,7 +1009,8 @@ UpgradeSchemaFrom10_0To11_0(mozIStorageConnection* aConnection)
|
|||||||
AssertIsOnIOThread();
|
AssertIsOnIOThread();
|
||||||
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
||||||
|
|
||||||
PROFILER_LABEL("IndexedDB", "UpgradeSchemaFrom10_0To11_0");
|
PROFILER_LABEL("OpenDatabaseHelper", "UpgradeSchemaFrom10_0To11_0",
|
||||||
|
js::ProfileEntry::Category::STORAGE);
|
||||||
|
|
||||||
nsresult rv = aConnection->ExecuteSimpleSQL(NS_LITERAL_CSTRING(
|
nsresult rv = aConnection->ExecuteSimpleSQL(NS_LITERAL_CSTRING(
|
||||||
"CREATE TEMPORARY TABLE temp_upgrade ("
|
"CREATE TEMPORARY TABLE temp_upgrade ("
|
||||||
@ -1139,7 +1149,8 @@ public:
|
|||||||
OnFunctionCall(mozIStorageValueArray* aArguments,
|
OnFunctionCall(mozIStorageValueArray* aArguments,
|
||||||
nsIVariant** aResult)
|
nsIVariant** aResult)
|
||||||
{
|
{
|
||||||
PROFILER_LABEL("IndexedDB", "EncodeKeysFunction::OnFunctionCall");
|
PROFILER_LABEL("EncodeKeysFunction", "OnFunctionCall",
|
||||||
|
js::ProfileEntry::Category::STORAGE);
|
||||||
|
|
||||||
uint32_t argc;
|
uint32_t argc;
|
||||||
nsresult rv = aArguments->GetNumEntries(&argc);
|
nsresult rv = aArguments->GetNumEntries(&argc);
|
||||||
@ -1190,7 +1201,8 @@ UpgradeSchemaFrom11_0To12_0(mozIStorageConnection* aConnection)
|
|||||||
AssertIsOnIOThread();
|
AssertIsOnIOThread();
|
||||||
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
||||||
|
|
||||||
PROFILER_LABEL("IndexedDB", "UpgradeSchemaFrom11_0To12_0");
|
PROFILER_LABEL("OpenDatabaseHelper", "UpgradeSchemaFrom11_0To12_0",
|
||||||
|
js::ProfileEntry::Category::STORAGE);
|
||||||
|
|
||||||
NS_NAMED_LITERAL_CSTRING(encoderName, "encode");
|
NS_NAMED_LITERAL_CSTRING(encoderName, "encode");
|
||||||
|
|
||||||
@ -1407,7 +1419,8 @@ UpgradeSchemaFrom12_0To13_0(mozIStorageConnection* aConnection,
|
|||||||
AssertIsOnIOThread();
|
AssertIsOnIOThread();
|
||||||
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
||||||
|
|
||||||
PROFILER_LABEL("IndexedDB", "UpgradeSchemaFrom12_0To13_0");
|
PROFILER_LABEL("OpenDatabaseHelper", "UpgradeSchemaFrom12_0To13_0",
|
||||||
|
js::ProfileEntry::Category::STORAGE);
|
||||||
|
|
||||||
nsresult rv;
|
nsresult rv;
|
||||||
|
|
||||||
@ -1627,7 +1640,8 @@ public:
|
|||||||
{
|
{
|
||||||
NS_ASSERTION(NS_IsMainThread(), "Wrong thread!");
|
NS_ASSERTION(NS_IsMainThread(), "Wrong thread!");
|
||||||
|
|
||||||
PROFILER_MAIN_THREAD_LABEL("IndexedDB", "VersionChangeEventsRunnable::Run");
|
PROFILER_MAIN_THREAD_LABEL("OpenDatabaseHelper", "VersionChangeEventsRunnable::Run",
|
||||||
|
js::ProfileEntry::Category::STORAGE);
|
||||||
|
|
||||||
// Fire version change events at all of the databases that are not already
|
// Fire version change events at all of the databases that are not already
|
||||||
// closed. Also kick bfcached documents out of bfcache.
|
// closed. Also kick bfcached documents out of bfcache.
|
||||||
@ -1778,7 +1792,8 @@ OpenDatabaseHelper::DoDatabaseWork()
|
|||||||
AssertIsOnIOThread();
|
AssertIsOnIOThread();
|
||||||
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
||||||
|
|
||||||
PROFILER_LABEL("IndexedDB", "OpenDatabaseHelper::DoDatabaseWork");
|
PROFILER_LABEL("OpenDatabaseHelper", "DoDatabaseWork",
|
||||||
|
js::ProfileEntry::Category::STORAGE);
|
||||||
|
|
||||||
mState = eFiringEvents; // In case we fail somewhere along the line.
|
mState = eFiringEvents; // In case we fail somewhere along the line.
|
||||||
|
|
||||||
@ -1931,7 +1946,8 @@ OpenDatabaseHelper::CreateDatabaseConnection(
|
|||||||
AssertIsOnIOThread();
|
AssertIsOnIOThread();
|
||||||
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
||||||
|
|
||||||
PROFILER_LABEL("IndexedDB", "OpenDatabaseHelper::CreateDatabaseConnection");
|
PROFILER_LABEL("OpenDatabaseHelper", "CreateDatabaseConnection",
|
||||||
|
js::ProfileEntry::Category::STORAGE);
|
||||||
|
|
||||||
nsresult rv;
|
nsresult rv;
|
||||||
bool exists;
|
bool exists;
|
||||||
@ -2195,7 +2211,8 @@ OpenDatabaseHelper::Run()
|
|||||||
NS_ASSERTION(mState != eCreated, "Dispatch was not called?!?");
|
NS_ASSERTION(mState != eCreated, "Dispatch was not called?!?");
|
||||||
|
|
||||||
if (NS_IsMainThread()) {
|
if (NS_IsMainThread()) {
|
||||||
PROFILER_MAIN_THREAD_LABEL("IndexedDB", "OpenDatabaseHelper::Run");
|
PROFILER_MAIN_THREAD_LABEL("OpenDatabaseHelper", "Run",
|
||||||
|
js::ProfileEntry::Category::STORAGE);
|
||||||
|
|
||||||
if (mState == eOpenPending) {
|
if (mState == eOpenPending) {
|
||||||
if (NS_FAILED(mResultCode)) {
|
if (NS_FAILED(mResultCode)) {
|
||||||
@ -2292,7 +2309,8 @@ OpenDatabaseHelper::Run()
|
|||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
PROFILER_LABEL("IndexedDB", "OpenDatabaseHelper::Run");
|
PROFILER_LABEL("OpenDatabaseHelper", "Run",
|
||||||
|
js::ProfileEntry::Category::STORAGE);
|
||||||
|
|
||||||
// We're on the DB thread.
|
// We're on the DB thread.
|
||||||
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
||||||
@ -2316,8 +2334,8 @@ OpenDatabaseHelper::EnsureSuccessResult()
|
|||||||
{
|
{
|
||||||
NS_ASSERTION(NS_IsMainThread(), "Wrong thread!");
|
NS_ASSERTION(NS_IsMainThread(), "Wrong thread!");
|
||||||
|
|
||||||
PROFILER_MAIN_THREAD_LABEL("IndexedDB",
|
PROFILER_MAIN_THREAD_LABEL("OpenDatabaseHelper", "EnsureSuccessResult",
|
||||||
"OpenDatabaseHelper::EnsureSuccessResult");
|
js::ProfileEntry::Category::STORAGE);
|
||||||
|
|
||||||
nsRefPtr<DatabaseInfo> dbInfo;
|
nsRefPtr<DatabaseInfo> dbInfo;
|
||||||
if (DatabaseInfo::Get(mDatabaseId, getter_AddRefs(dbInfo))) {
|
if (DatabaseInfo::Get(mDatabaseId, getter_AddRefs(dbInfo))) {
|
||||||
@ -2461,8 +2479,8 @@ OpenDatabaseHelper::DispatchSuccessEvent()
|
|||||||
{
|
{
|
||||||
NS_ASSERTION(NS_IsMainThread(), "Wrong thread!");
|
NS_ASSERTION(NS_IsMainThread(), "Wrong thread!");
|
||||||
|
|
||||||
PROFILER_MAIN_THREAD_LABEL("IndexedDB",
|
PROFILER_MAIN_THREAD_LABEL("OpenDatabaseHelper", "DispatchSuccessEvent",
|
||||||
"OpenDatabaseHelper::DispatchSuccessEvent");
|
js::ProfileEntry::Category::STORAGE);
|
||||||
|
|
||||||
nsRefPtr<nsIDOMEvent> event =
|
nsRefPtr<nsIDOMEvent> event =
|
||||||
CreateGenericEvent(mOpenDBRequest, NS_LITERAL_STRING(SUCCESS_EVT_STR),
|
CreateGenericEvent(mOpenDBRequest, NS_LITERAL_STRING(SUCCESS_EVT_STR),
|
||||||
@ -2481,8 +2499,8 @@ OpenDatabaseHelper::DispatchErrorEvent()
|
|||||||
{
|
{
|
||||||
NS_ASSERTION(NS_IsMainThread(), "Wrong thread!");
|
NS_ASSERTION(NS_IsMainThread(), "Wrong thread!");
|
||||||
|
|
||||||
PROFILER_MAIN_THREAD_LABEL("IndexedDB",
|
PROFILER_MAIN_THREAD_LABEL("OpenDatabaseHelper", "DispatchErrorEvent",
|
||||||
"OpenDatabaseHelper::DispatchErrorEvent");
|
js::ProfileEntry::Category::STORAGE);
|
||||||
|
|
||||||
nsRefPtr<nsIDOMEvent> event =
|
nsRefPtr<nsIDOMEvent> event =
|
||||||
CreateGenericEvent(mOpenDBRequest, NS_LITERAL_STRING(ERROR_EVT_STR),
|
CreateGenericEvent(mOpenDBRequest, NS_LITERAL_STRING(ERROR_EVT_STR),
|
||||||
@ -2533,7 +2551,8 @@ SetVersionHelper::DoDatabaseWork(mozIStorageConnection* aConnection)
|
|||||||
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
||||||
NS_ASSERTION(aConnection, "Passing a null connection!");
|
NS_ASSERTION(aConnection, "Passing a null connection!");
|
||||||
|
|
||||||
PROFILER_LABEL("IndexedDB", "SetVersionHelper::DoDatabaseWork");
|
PROFILER_LABEL("SetVersionHelper", "DoDatabaseWork",
|
||||||
|
js::ProfileEntry::Category::STORAGE);
|
||||||
|
|
||||||
nsCOMPtr<mozIStorageStatement> stmt;
|
nsCOMPtr<mozIStorageStatement> stmt;
|
||||||
nsresult rv = aConnection->CreateStatement(NS_LITERAL_CSTRING(
|
nsresult rv = aConnection->CreateStatement(NS_LITERAL_CSTRING(
|
||||||
@ -2654,7 +2673,8 @@ DeleteDatabaseHelper::DoDatabaseWork(mozIStorageConnection* aConnection)
|
|||||||
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
||||||
NS_ASSERTION(!aConnection, "How did we get a connection here?");
|
NS_ASSERTION(!aConnection, "How did we get a connection here?");
|
||||||
|
|
||||||
PROFILER_LABEL("IndexedDB", "DeleteDatabaseHelper::DoDatabaseWork");
|
PROFILER_LABEL("DeleteDatabaseHelper", "DoDatabaseWork",
|
||||||
|
js::ProfileEntry::Category::STORAGE);
|
||||||
|
|
||||||
const StoragePrivilege& privilege = mOpenHelper->Privilege();
|
const StoragePrivilege& privilege = mOpenHelper->Privilege();
|
||||||
|
|
||||||
|
@ -154,7 +154,8 @@ TransactionThreadPool::Cleanup()
|
|||||||
{
|
{
|
||||||
NS_ASSERTION(NS_IsMainThread(), "Wrong thread!");
|
NS_ASSERTION(NS_IsMainThread(), "Wrong thread!");
|
||||||
|
|
||||||
PROFILER_MAIN_THREAD_LABEL("IndexedDB", "TransactionThreadPool::Cleanup");
|
PROFILER_MAIN_THREAD_LABEL("TransactionThreadPool", "Cleanup",
|
||||||
|
js::ProfileEntry::Category::STORAGE);
|
||||||
|
|
||||||
nsresult rv = mThreadPool->Shutdown();
|
nsresult rv = mThreadPool->Shutdown();
|
||||||
NS_ENSURE_SUCCESS(rv, rv);
|
NS_ENSURE_SUCCESS(rv, rv);
|
||||||
@ -206,8 +207,8 @@ TransactionThreadPool::FinishTransaction(IDBTransaction* aTransaction)
|
|||||||
NS_ASSERTION(NS_IsMainThread(), "Wrong thread!");
|
NS_ASSERTION(NS_IsMainThread(), "Wrong thread!");
|
||||||
NS_ASSERTION(aTransaction, "Null pointer!");
|
NS_ASSERTION(aTransaction, "Null pointer!");
|
||||||
|
|
||||||
PROFILER_MAIN_THREAD_LABEL("IndexedDB",
|
PROFILER_MAIN_THREAD_LABEL("TransactionThreadPool", "FinishTransaction",
|
||||||
"TransactionThreadPool::FinishTransaction");
|
js::ProfileEntry::Category::STORAGE);
|
||||||
|
|
||||||
// AddRef here because removing from the hash will call Release.
|
// AddRef here because removing from the hash will call Release.
|
||||||
nsRefPtr<IDBTransaction> transaction(aTransaction);
|
nsRefPtr<IDBTransaction> transaction(aTransaction);
|
||||||
@ -417,9 +418,8 @@ TransactionThreadPool::AbortTransactionsForDatabase(IDBDatabase* aDatabase)
|
|||||||
NS_ASSERTION(NS_IsMainThread(), "Wrong thread!");
|
NS_ASSERTION(NS_IsMainThread(), "Wrong thread!");
|
||||||
NS_ASSERTION(aDatabase, "Null pointer!");
|
NS_ASSERTION(aDatabase, "Null pointer!");
|
||||||
|
|
||||||
PROFILER_MAIN_THREAD_LABEL("IndexedDB",
|
PROFILER_MAIN_THREAD_LABEL("TransactionThreadPool", "AbortTransactionsForDatabase",
|
||||||
"TransactionThreadPool::"
|
js::ProfileEntry::Category::STORAGE);
|
||||||
"AbortTransactionsForDatabase");
|
|
||||||
|
|
||||||
// Get list of transactions for this database id
|
// Get list of transactions for this database id
|
||||||
DatabaseTransactionInfo* dbTransactionInfo;
|
DatabaseTransactionInfo* dbTransactionInfo;
|
||||||
@ -501,8 +501,8 @@ TransactionThreadPool::MaybeFireCallback(DatabasesCompleteCallback aCallback)
|
|||||||
{
|
{
|
||||||
NS_ASSERTION(NS_IsMainThread(), "Wrong thread!");
|
NS_ASSERTION(NS_IsMainThread(), "Wrong thread!");
|
||||||
|
|
||||||
PROFILER_MAIN_THREAD_LABEL("IndexedDB",
|
PROFILER_MAIN_THREAD_LABEL("TransactionThreadPool", "MaybeFireCallback",
|
||||||
"TransactionThreadPool::MaybeFireCallback");
|
js::ProfileEntry::Category::STORAGE);
|
||||||
|
|
||||||
for (uint32_t index = 0; index < aCallback.mDatabases.Length(); index++) {
|
for (uint32_t index = 0; index < aCallback.mDatabases.Length(); index++) {
|
||||||
IDBDatabase* database = aCallback.mDatabases[index];
|
IDBDatabase* database = aCallback.mDatabases[index];
|
||||||
@ -573,7 +573,8 @@ TransactionThreadPool::TransactionQueue::Run()
|
|||||||
NS_ASSERTION(!NS_IsMainThread(), "Wrong thread!");
|
NS_ASSERTION(!NS_IsMainThread(), "Wrong thread!");
|
||||||
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
NS_ASSERTION(IndexedDatabaseManager::IsMainProcess(), "Wrong process!");
|
||||||
|
|
||||||
PROFILER_LABEL("IndexedDB", "TransactionQueue::Run");
|
PROFILER_LABEL("TransactionQueue", "Run",
|
||||||
|
js::ProfileEntry::Category::STORAGE);
|
||||||
|
|
||||||
IDB_PROFILER_MARK("IndexedDB Transaction %llu: Beginning database work",
|
IDB_PROFILER_MARK("IndexedDB Transaction %llu: Beginning database work",
|
||||||
"IDBTransaction[%llu] DT Start",
|
"IDBTransaction[%llu] DT Start",
|
||||||
@ -643,7 +644,8 @@ FinishTransactionRunnable::Run()
|
|||||||
{
|
{
|
||||||
NS_ASSERTION(NS_IsMainThread(), "Wrong thread!");
|
NS_ASSERTION(NS_IsMainThread(), "Wrong thread!");
|
||||||
|
|
||||||
PROFILER_MAIN_THREAD_LABEL("IndexedDB", "FinishTransactionRunnable::Run");
|
PROFILER_MAIN_THREAD_LABEL("FinishTransactionRunnable", "Run",
|
||||||
|
js::ProfileEntry::Category::STORAGE);
|
||||||
|
|
||||||
if (!gThreadPool) {
|
if (!gThreadPool) {
|
||||||
NS_ERROR("Running after shutdown!");
|
NS_ERROR("Running after shutdown!");
|
||||||
|
@ -420,7 +420,8 @@ nsPluginStreamListenerPeer::OnStartRequest(nsIRequest *request,
|
|||||||
nsISupports* aContext)
|
nsISupports* aContext)
|
||||||
{
|
{
|
||||||
nsresult rv = NS_OK;
|
nsresult rv = NS_OK;
|
||||||
PROFILER_LABEL("nsPluginStreamListenerPeer", "OnStartRequest");
|
PROFILER_LABEL("nsPluginStreamListenerPeer", "OnStartRequest",
|
||||||
|
js::ProfileEntry::Category::OTHER);
|
||||||
|
|
||||||
if (mRequests.IndexOfObject(GetBaseRequest(request)) == -1) {
|
if (mRequests.IndexOfObject(GetBaseRequest(request)) == -1) {
|
||||||
NS_ASSERTION(mRequests.Count() == 0,
|
NS_ASSERTION(mRequests.Count() == 0,
|
||||||
|
@ -891,7 +891,9 @@ PluginModuleParent::NPP_NewStream(NPP instance, NPMIMEType type,
|
|||||||
NPStream* stream, NPBool seekable,
|
NPStream* stream, NPBool seekable,
|
||||||
uint16_t* stype)
|
uint16_t* stype)
|
||||||
{
|
{
|
||||||
PROFILER_LABEL("PluginModuleParent", "NPP_NewStream");
|
PROFILER_LABEL("PluginModuleParent", "NPP_NewStream",
|
||||||
|
js::ProfileEntry::Category::OTHER);
|
||||||
|
|
||||||
PluginInstanceParent* i = InstCast(instance);
|
PluginInstanceParent* i = InstCast(instance);
|
||||||
if (!i)
|
if (!i)
|
||||||
return NPERR_GENERIC_ERROR;
|
return NPERR_GENERIC_ERROR;
|
||||||
|
@ -3455,7 +3455,8 @@ NS_IMPL_ISUPPORTS_INHERITED0(OriginClearRunnable, nsRunnable)
|
|||||||
NS_IMETHODIMP
|
NS_IMETHODIMP
|
||||||
OriginClearRunnable::Run()
|
OriginClearRunnable::Run()
|
||||||
{
|
{
|
||||||
PROFILER_LABEL("Quota", "OriginClearRunnable::Run");
|
PROFILER_LABEL("OriginClearRunnable", "Run",
|
||||||
|
js::ProfileEntry::Category::OTHER);
|
||||||
|
|
||||||
QuotaManager* quotaManager = QuotaManager::Get();
|
QuotaManager* quotaManager = QuotaManager::Get();
|
||||||
NS_ASSERTION(quotaManager, "This should never fail!");
|
NS_ASSERTION(quotaManager, "This should never fail!");
|
||||||
@ -3730,7 +3731,8 @@ NS_IMPL_ISUPPORTS_INHERITED(AsyncUsageRunnable, nsRunnable, nsIQuotaRequest)
|
|||||||
NS_IMETHODIMP
|
NS_IMETHODIMP
|
||||||
AsyncUsageRunnable::Run()
|
AsyncUsageRunnable::Run()
|
||||||
{
|
{
|
||||||
PROFILER_LABEL("Quota", "AsyncUsageRunnable::Run");
|
PROFILER_LABEL("Quota", "AsyncUsageRunnable::Run",
|
||||||
|
js::ProfileEntry::Category::OTHER);
|
||||||
|
|
||||||
nsresult rv = RunInternal();
|
nsresult rv = RunInternal();
|
||||||
|
|
||||||
|
@ -174,7 +174,9 @@ GLContextCGL::SupportsRobustness() const
|
|||||||
bool
|
bool
|
||||||
GLContextCGL::SwapBuffers()
|
GLContextCGL::SwapBuffers()
|
||||||
{
|
{
|
||||||
PROFILER_LABEL("GLContext", "SwapBuffers");
|
PROFILER_LABEL("GLContextCGL", "SwapBuffers",
|
||||||
|
js::ProfileEntry::Category::GRAPHICS);
|
||||||
|
|
||||||
[mContext flushBuffer];
|
[mContext flushBuffer];
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -430,7 +430,8 @@ SharedSurface*
|
|||||||
SurfaceStream_TripleBuffer::SwapProducer(SurfaceFactory* factory,
|
SurfaceStream_TripleBuffer::SwapProducer(SurfaceFactory* factory,
|
||||||
const gfx::IntSize& size)
|
const gfx::IntSize& size)
|
||||||
{
|
{
|
||||||
PROFILER_LABEL("SurfaceStream_TripleBuffer", "SwapProducer");
|
PROFILER_LABEL("SurfaceStream_TripleBuffer", "SwapProducer",
|
||||||
|
js::ProfileEntry::Category::GRAPHICS);
|
||||||
|
|
||||||
MonitorAutoLock lock(mMonitor);
|
MonitorAutoLock lock(mMonitor);
|
||||||
if (mProducer) {
|
if (mProducer) {
|
||||||
@ -480,7 +481,8 @@ SurfaceStream_TripleBuffer_Async::~SurfaceStream_TripleBuffer_Async()
|
|||||||
void
|
void
|
||||||
SurfaceStream_TripleBuffer_Async::WaitForCompositor()
|
SurfaceStream_TripleBuffer_Async::WaitForCompositor()
|
||||||
{
|
{
|
||||||
PROFILER_LABEL("SurfaceStream_TripleBuffer_Async", "WaitForCompositor");
|
PROFILER_LABEL("SurfaceStream_TripleBuffer_Async", "WaitForCompositor",
|
||||||
|
js::ProfileEntry::Category::GRAPHICS);
|
||||||
|
|
||||||
// If we haven't be notified within 100ms, then
|
// If we haven't be notified within 100ms, then
|
||||||
// something must have happened and it will never arrive.
|
// something must have happened and it will never arrive.
|
||||||
|
@ -169,7 +169,9 @@ RotatedBuffer::DrawBufferWithRotation(gfx::DrawTarget *aTarget, ContextSource aS
|
|||||||
gfx::SourceSurface* aMask,
|
gfx::SourceSurface* aMask,
|
||||||
const gfx::Matrix* aMaskTransform) const
|
const gfx::Matrix* aMaskTransform) const
|
||||||
{
|
{
|
||||||
PROFILER_LABEL("RotatedBuffer", "DrawBufferWithRotation");
|
PROFILER_LABEL("RotatedBuffer", "DrawBufferWithRotation",
|
||||||
|
js::ProfileEntry::Category::GRAPHICS);
|
||||||
|
|
||||||
// See above, in Azure Repeat should always be a safe, even faster choice
|
// See above, in Azure Repeat should always be a safe, even faster choice
|
||||||
// though! Particularly on D2D Repeat should be a lot faster, need to look
|
// though! Particularly on D2D Repeat should be a lot faster, need to look
|
||||||
// into that. TODO[Bas]
|
// into that. TODO[Bas]
|
||||||
|
@ -570,7 +570,9 @@ BasicLayerManager::EndTransactionInternal(DrawThebesLayerCallback aCallback,
|
|||||||
void* aCallbackData,
|
void* aCallbackData,
|
||||||
EndTransactionFlags aFlags)
|
EndTransactionFlags aFlags)
|
||||||
{
|
{
|
||||||
PROFILER_LABEL("BasicLayerManager", "EndTransactionInternal");
|
PROFILER_LABEL("BasicLayerManager", "EndTransactionInternal",
|
||||||
|
js::ProfileEntry::Category::GRAPHICS);
|
||||||
|
|
||||||
#ifdef MOZ_LAYERS_HAVE_LOG
|
#ifdef MOZ_LAYERS_HAVE_LOG
|
||||||
MOZ_LAYERS_LOG((" ----- (beginning paint)"));
|
MOZ_LAYERS_LOG((" ----- (beginning paint)"));
|
||||||
Log();
|
Log();
|
||||||
@ -880,7 +882,9 @@ BasicLayerManager::PaintLayer(gfxContext* aTarget,
|
|||||||
DrawThebesLayerCallback aCallback,
|
DrawThebesLayerCallback aCallback,
|
||||||
void* aCallbackData)
|
void* aCallbackData)
|
||||||
{
|
{
|
||||||
PROFILER_LABEL("BasicLayerManager", "PaintLayer");
|
PROFILER_LABEL("BasicLayerManager", "PaintLayer",
|
||||||
|
js::ProfileEntry::Category::GRAPHICS);
|
||||||
|
|
||||||
PaintLayerContext paintLayerContext(aTarget, aLayer, aCallback, aCallbackData);
|
PaintLayerContext paintLayerContext(aTarget, aLayer, aCallback, aCallbackData);
|
||||||
|
|
||||||
// Don't attempt to paint layers with a singular transform, cairo will
|
// Don't attempt to paint layers with a singular transform, cairo will
|
||||||
|
@ -50,7 +50,9 @@ BasicThebesLayer::PaintThebes(gfxContext* aContext,
|
|||||||
LayerManager::DrawThebesLayerCallback aCallback,
|
LayerManager::DrawThebesLayerCallback aCallback,
|
||||||
void* aCallbackData)
|
void* aCallbackData)
|
||||||
{
|
{
|
||||||
PROFILER_LABEL("BasicThebesLayer", "PaintThebes");
|
PROFILER_LABEL("BasicThebesLayer", "PaintThebes",
|
||||||
|
js::ProfileEntry::Category::GRAPHICS);
|
||||||
|
|
||||||
NS_ASSERTION(BasicManager()->InDrawing(),
|
NS_ASSERTION(BasicManager()->InDrawing(),
|
||||||
"Can only draw in drawing phase");
|
"Can only draw in drawing phase");
|
||||||
|
|
||||||
|
@ -126,7 +126,9 @@ ClientCanvasLayer::Initialize(const Data& aData)
|
|||||||
void
|
void
|
||||||
ClientCanvasLayer::RenderLayer()
|
ClientCanvasLayer::RenderLayer()
|
||||||
{
|
{
|
||||||
PROFILER_LABEL("ClientCanvasLayer", "Paint");
|
PROFILER_LABEL("ClientCanvasLayer", "RenderLayer",
|
||||||
|
js::ProfileEntry::Category::GRAPHICS);
|
||||||
|
|
||||||
if (!IsDirty()) {
|
if (!IsDirty()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -183,7 +183,9 @@ ClientLayerManager::EndTransactionInternal(DrawThebesLayerCallback aCallback,
|
|||||||
void* aCallbackData,
|
void* aCallbackData,
|
||||||
EndTransactionFlags)
|
EndTransactionFlags)
|
||||||
{
|
{
|
||||||
PROFILER_LABEL("ClientLayerManager", "EndTransactionInternal");
|
PROFILER_LABEL("ClientLayerManager", "EndTransactionInternal",
|
||||||
|
js::ProfileEntry::Category::GRAPHICS);
|
||||||
|
|
||||||
#ifdef MOZ_LAYERS_HAVE_LOG
|
#ifdef MOZ_LAYERS_HAVE_LOG
|
||||||
MOZ_LAYERS_LOG((" ----- (beginning paint)"));
|
MOZ_LAYERS_LOG((" ----- (beginning paint)"));
|
||||||
Log();
|
Log();
|
||||||
|
@ -33,7 +33,9 @@ using namespace mozilla::gfx;
|
|||||||
void
|
void
|
||||||
ClientThebesLayer::PaintThebes()
|
ClientThebesLayer::PaintThebes()
|
||||||
{
|
{
|
||||||
PROFILER_LABEL("ClientThebesLayer", "PaintThebes");
|
PROFILER_LABEL("ClientThebesLayer", "PaintThebes",
|
||||||
|
js::ProfileEntry::Category::GRAPHICS);
|
||||||
|
|
||||||
NS_ASSERTION(ClientManager()->InDrawing(),
|
NS_ASSERTION(ClientManager()->InDrawing(),
|
||||||
"Can only draw in drawing phase");
|
"Can only draw in drawing phase");
|
||||||
|
|
||||||
|
@ -53,7 +53,8 @@ SimpleTiledLayerBuffer::PaintThebes(const nsIntRegion& aNewValidRegion,
|
|||||||
// If this region is empty XMost() - 1 will give us a negative value.
|
// If this region is empty XMost() - 1 will give us a negative value.
|
||||||
NS_ASSERTION(!aPaintRegion.GetBounds().IsEmpty(), "Empty paint region\n");
|
NS_ASSERTION(!aPaintRegion.GetBounds().IsEmpty(), "Empty paint region\n");
|
||||||
|
|
||||||
PROFILER_LABEL("SimpleTiledLayerBuffer", "PaintThebesUpdate");
|
PROFILER_LABEL("SimpleTiledLayerBuffer", "PaintThebesUpdate",
|
||||||
|
js::ProfileEntry::Category::GRAPHICS);
|
||||||
|
|
||||||
Update(aNewValidRegion, aPaintRegion);
|
Update(aNewValidRegion, aPaintRegion);
|
||||||
|
|
||||||
@ -74,7 +75,9 @@ SimpleTiledLayerBuffer::ValidateTile(SimpleTiledLayerTile aTile,
|
|||||||
const nsIntPoint& aTileOrigin,
|
const nsIntPoint& aTileOrigin,
|
||||||
const nsIntRegion& aDirtyRegion)
|
const nsIntRegion& aDirtyRegion)
|
||||||
{
|
{
|
||||||
PROFILER_LABEL("SimpleTiledLayerBuffer", "ValidateTile");
|
PROFILER_LABEL("SimpleTiledLayerBuffer", "ValidateTile",
|
||||||
|
js::ProfileEntry::Category::GRAPHICS);
|
||||||
|
|
||||||
static gfx::IntSize kTileSize(gfxPrefs::LayersTileWidth(), gfxPrefs::LayersTileHeight());
|
static gfx::IntSize kTileSize(gfxPrefs::LayersTileWidth(), gfxPrefs::LayersTileHeight());
|
||||||
|
|
||||||
gfx::SurfaceFormat tileFormat = gfxPlatform::GetPlatform()->Optimal2DFormatForContent(GetContentType());
|
gfx::SurfaceFormat tileFormat = gfxPlatform::GetPlatform()->Optimal2DFormatForContent(GetContentType());
|
||||||
|
@ -658,7 +658,9 @@ ClientTiledLayerBuffer::PaintThebes(const nsIntRegion& aNewValidRegion,
|
|||||||
|
|
||||||
const nsIntRect bounds = aPaintRegion.GetBounds();
|
const nsIntRect bounds = aPaintRegion.GetBounds();
|
||||||
{
|
{
|
||||||
PROFILER_LABEL("ClientTiledLayerBuffer", "PaintThebesSingleBufferAlloc");
|
PROFILER_LABEL("ClientTiledLayerBuffer", "PaintThebesSingleBufferAlloc",
|
||||||
|
js::ProfileEntry::Category::GRAPHICS);
|
||||||
|
|
||||||
gfxImageFormat format =
|
gfxImageFormat format =
|
||||||
gfxPlatform::GetPlatform()->OptimalFormatForContent(
|
gfxPlatform::GetPlatform()->OptimalFormatForContent(
|
||||||
GetContentType());
|
GetContentType());
|
||||||
@ -686,7 +688,8 @@ ClientTiledLayerBuffer::PaintThebes(const nsIntRegion& aNewValidRegion,
|
|||||||
}
|
}
|
||||||
start = PR_IntervalNow();
|
start = PR_IntervalNow();
|
||||||
#endif
|
#endif
|
||||||
PROFILER_LABEL("ClientTiledLayerBuffer", "PaintThebesSingleBufferDraw");
|
PROFILER_LABEL("ClientTiledLayerBuffer", "PaintThebesSingleBufferDraw",
|
||||||
|
js::ProfileEntry::Category::GRAPHICS);
|
||||||
|
|
||||||
mCallback(mThebesLayer, ctxt, aPaintRegion, DrawRegionClip::CLIP_NONE, nsIntRegion(), mCallbackData);
|
mCallback(mThebesLayer, ctxt, aPaintRegion, DrawRegionClip::CLIP_NONE, nsIntRegion(), mCallbackData);
|
||||||
}
|
}
|
||||||
@ -706,7 +709,9 @@ ClientTiledLayerBuffer::PaintThebes(const nsIntRegion& aNewValidRegion,
|
|||||||
start = PR_IntervalNow();
|
start = PR_IntervalNow();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
PROFILER_LABEL("ClientTiledLayerBuffer", "PaintThebesUpdate");
|
PROFILER_LABEL("ClientTiledLayerBuffer", "PaintThebesUpdate",
|
||||||
|
js::ProfileEntry::Category::GRAPHICS);
|
||||||
|
|
||||||
Update(aNewValidRegion, aPaintRegion);
|
Update(aNewValidRegion, aPaintRegion);
|
||||||
|
|
||||||
#ifdef GFX_TILEDLAYER_PREF_WARNINGS
|
#ifdef GFX_TILEDLAYER_PREF_WARNINGS
|
||||||
@ -727,7 +732,8 @@ ClientTiledLayerBuffer::ValidateTile(TileClient aTile,
|
|||||||
const nsIntPoint& aTileOrigin,
|
const nsIntPoint& aTileOrigin,
|
||||||
const nsIntRegion& aDirtyRegion)
|
const nsIntRegion& aDirtyRegion)
|
||||||
{
|
{
|
||||||
PROFILER_LABEL("ClientTiledLayerBuffer", "ValidateTile");
|
PROFILER_LABEL("ClientTiledLayerBuffer", "ValidateTile",
|
||||||
|
js::ProfileEntry::Category::GRAPHICS);
|
||||||
|
|
||||||
#ifdef GFX_TILEDLAYER_PREF_WARNINGS
|
#ifdef GFX_TILEDLAYER_PREF_WARNINGS
|
||||||
if (aDirtyRegion.IsComplex()) {
|
if (aDirtyRegion.IsComplex()) {
|
||||||
@ -962,7 +968,9 @@ ClientTiledLayerBuffer::ComputeProgressiveUpdateRegion(const nsIntRegion& aInval
|
|||||||
// non-low-precision paint, as in that situation, we're about to override
|
// non-low-precision paint, as in that situation, we're about to override
|
||||||
// front-end's page/viewport metrics.
|
// front-end's page/viewport metrics.
|
||||||
if (!aPaintData->mFirstPaint || drawingLowPrecision) {
|
if (!aPaintData->mFirstPaint || drawingLowPrecision) {
|
||||||
PROFILER_LABEL("ContentClient", "Abort painting");
|
PROFILER_LABEL("ClientTiledLayerBuffer", "ComputeProgressiveUpdateRegion",
|
||||||
|
js::ProfileEntry::Category::GRAPHICS);
|
||||||
|
|
||||||
aRegionToPaint.SetEmpty();
|
aRegionToPaint.SetEmpty();
|
||||||
return aIsRepeated;
|
return aIsRepeated;
|
||||||
}
|
}
|
||||||
|
@ -854,7 +854,9 @@ AsyncCompositionManager::TransformScrollableLayer(Layer* aLayer)
|
|||||||
bool
|
bool
|
||||||
AsyncCompositionManager::TransformShadowTree(TimeStamp aCurrentFrame)
|
AsyncCompositionManager::TransformShadowTree(TimeStamp aCurrentFrame)
|
||||||
{
|
{
|
||||||
PROFILER_LABEL("AsyncCompositionManager", "TransformShadowTree");
|
PROFILER_LABEL("AsyncCompositionManager", "TransformShadowTree",
|
||||||
|
js::ProfileEntry::Category::GRAPHICS);
|
||||||
|
|
||||||
Layer* root = mLayerManager->GetRoot();
|
Layer* root = mLayerManager->GetRoot();
|
||||||
if (!root) {
|
if (!root) {
|
||||||
return false;
|
return false;
|
||||||
|
@ -376,7 +376,9 @@ LayerManagerComposite::RenderDebugOverlay(const Rect& aBounds)
|
|||||||
void
|
void
|
||||||
LayerManagerComposite::Render()
|
LayerManagerComposite::Render()
|
||||||
{
|
{
|
||||||
PROFILER_LABEL("LayerManagerComposite", "Render");
|
PROFILER_LABEL("LayerManagerComposite", "Render",
|
||||||
|
js::ProfileEntry::Category::GRAPHICS);
|
||||||
|
|
||||||
if (mDestroyed) {
|
if (mDestroyed) {
|
||||||
NS_WARNING("Call on destroyed layer manager");
|
NS_WARNING("Call on destroyed layer manager");
|
||||||
return;
|
return;
|
||||||
@ -401,7 +403,9 @@ LayerManagerComposite::Render()
|
|||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
PROFILER_LABEL("LayerManagerComposite", "PreRender");
|
PROFILER_LABEL("LayerManagerComposite", "PreRender",
|
||||||
|
js::ProfileEntry::Category::GRAPHICS);
|
||||||
|
|
||||||
if (!mCompositor->GetWidget()->PreRender(this)) {
|
if (!mCompositor->GetWidget()->PreRender(this)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -465,7 +469,9 @@ LayerManagerComposite::Render()
|
|||||||
RenderDebugOverlay(actualBounds);
|
RenderDebugOverlay(actualBounds);
|
||||||
|
|
||||||
{
|
{
|
||||||
PROFILER_LABEL("LayerManagerComposite", "EndFrame");
|
PROFILER_LABEL("LayerManagerComposite", "EndFrame",
|
||||||
|
js::ProfileEntry::Category::GRAPHICS);
|
||||||
|
|
||||||
mCompositor->EndFrame();
|
mCompositor->EndFrame();
|
||||||
mCompositor->SetFBAcquireFence(mRoot);
|
mCompositor->SetFBAcquireFence(mRoot);
|
||||||
}
|
}
|
||||||
|
@ -111,7 +111,8 @@ ThebesLayerComposite::RenderLayer(const nsIntRect& aClipRect)
|
|||||||
if (!mBuffer || !mBuffer->IsAttached()) {
|
if (!mBuffer || !mBuffer->IsAttached()) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
PROFILER_LABEL("ThebesLayerComposite", "RenderLayer");
|
PROFILER_LABEL("ThebesLayerComposite", "RenderLayer",
|
||||||
|
js::ProfileEntry::Category::GRAPHICS);
|
||||||
|
|
||||||
MOZ_ASSERT(mBuffer->GetCompositor() == mCompositeManager->GetCompositor() &&
|
MOZ_ASSERT(mBuffer->GetCompositor() == mCompositeManager->GetCompositor() &&
|
||||||
mBuffer->GetLayer() == this,
|
mBuffer->GetLayer() == this,
|
||||||
|
@ -612,7 +612,9 @@ void
|
|||||||
CompositorParent::CompositeToTarget(DrawTarget* aTarget, const nsIntRect* aRect)
|
CompositorParent::CompositeToTarget(DrawTarget* aTarget, const nsIntRect* aRect)
|
||||||
{
|
{
|
||||||
profiler_tracing("Paint", "Composite", TRACING_INTERVAL_START);
|
profiler_tracing("Paint", "Composite", TRACING_INTERVAL_START);
|
||||||
PROFILER_LABEL("CompositorParent", "Composite");
|
PROFILER_LABEL("CompositorParent", "Composite",
|
||||||
|
js::ProfileEntry::Category::GRAPHICS);
|
||||||
|
|
||||||
NS_ABORT_IF_FALSE(CompositorThreadID() == PlatformThread::CurrentId(),
|
NS_ABORT_IF_FALSE(CompositorThreadID() == PlatformThread::CurrentId(),
|
||||||
"Composite can only be called on the compositor thread");
|
"Composite can only be called on the compositor thread");
|
||||||
|
|
||||||
@ -703,7 +705,9 @@ CompositorParent::CompositeToTarget(DrawTarget* aTarget, const nsIntRect* aRect)
|
|||||||
void
|
void
|
||||||
CompositorParent::ForceComposeToTarget(DrawTarget* aTarget, const nsIntRect* aRect)
|
CompositorParent::ForceComposeToTarget(DrawTarget* aTarget, const nsIntRect* aRect)
|
||||||
{
|
{
|
||||||
PROFILER_LABEL("CompositorParent", "ForceComposeToTarget");
|
PROFILER_LABEL("CompositorParent", "ForceComposeToTarget",
|
||||||
|
js::ProfileEntry::Category::GRAPHICS);
|
||||||
|
|
||||||
AutoRestore<bool> override(mOverrideComposeReadiness);
|
AutoRestore<bool> override(mOverrideComposeReadiness);
|
||||||
mOverrideComposeReadiness = true;
|
mOverrideComposeReadiness = true;
|
||||||
|
|
||||||
|
@ -200,7 +200,9 @@ LayerTransactionParent::RecvUpdate(const InfallibleTArray<Edit>& cset,
|
|||||||
InfallibleTArray<EditReply>* reply)
|
InfallibleTArray<EditReply>* reply)
|
||||||
{
|
{
|
||||||
profiler_tracing("Paint", "Composite", TRACING_INTERVAL_START);
|
profiler_tracing("Paint", "Composite", TRACING_INTERVAL_START);
|
||||||
PROFILER_LABEL("LayerTransactionParent", "RecvUpdate");
|
PROFILER_LABEL("LayerTransactionParent", "RecvUpdate",
|
||||||
|
js::ProfileEntry::Category::GRAPHICS);
|
||||||
|
|
||||||
#ifdef COMPOSITOR_PERFORMANCE_WARNING
|
#ifdef COMPOSITOR_PERFORMANCE_WARNING
|
||||||
TimeStamp updateStart = TimeStamp::Now();
|
TimeStamp updateStart = TimeStamp::Now();
|
||||||
#endif
|
#endif
|
||||||
|
@ -460,7 +460,9 @@ ShadowLayerForwarder::EndTransaction(InfallibleTArray<EditReply>* aReplies,
|
|||||||
|
|
||||||
MOZ_ASSERT(aId);
|
MOZ_ASSERT(aId);
|
||||||
|
|
||||||
PROFILER_LABEL("ShadowLayerForwarder", "EndTranscation");
|
PROFILER_LABEL("ShadowLayerForwarder", "EndTranscation",
|
||||||
|
js::ProfileEntry::Category::GRAPHICS);
|
||||||
|
|
||||||
RenderTraceScope rendertrace("Foward Transaction", "000091");
|
RenderTraceScope rendertrace("Foward Transaction", "000091");
|
||||||
NS_ABORT_IF_FALSE(HasShadowManager(), "no manager to forward to");
|
NS_ABORT_IF_FALSE(HasShadowManager(), "no manager to forward to");
|
||||||
NS_ABORT_IF_FALSE(!mTxn->Finished(), "forgot BeginTransaction?");
|
NS_ABORT_IF_FALSE(!mTxn->Finished(), "forgot BeginTransaction?");
|
||||||
|
@ -685,7 +685,9 @@ CompositorOGL::BeginFrame(const nsIntRegion& aInvalidRegion,
|
|||||||
Rect *aClipRectOut,
|
Rect *aClipRectOut,
|
||||||
Rect *aRenderBoundsOut)
|
Rect *aRenderBoundsOut)
|
||||||
{
|
{
|
||||||
PROFILER_LABEL("CompositorOGL", "BeginFrame");
|
PROFILER_LABEL("CompositorOGL", "BeginFrame",
|
||||||
|
js::ProfileEntry::Category::GRAPHICS);
|
||||||
|
|
||||||
MOZ_ASSERT(!mFrameInProgress, "frame still in progress (should have called EndFrame or AbortFrame");
|
MOZ_ASSERT(!mFrameInProgress, "frame still in progress (should have called EndFrame or AbortFrame");
|
||||||
|
|
||||||
LayerScope::BeginFrame(mGLContext, PR_Now());
|
LayerScope::BeginFrame(mGLContext, PR_Now());
|
||||||
@ -984,7 +986,9 @@ CompositorOGL::DrawQuad(const Rect& aRect,
|
|||||||
Float aOpacity,
|
Float aOpacity,
|
||||||
const gfx::Matrix4x4 &aTransform)
|
const gfx::Matrix4x4 &aTransform)
|
||||||
{
|
{
|
||||||
PROFILER_LABEL("CompositorOGL", "DrawQuad");
|
PROFILER_LABEL("CompositorOGL", "DrawQuad",
|
||||||
|
js::ProfileEntry::Category::GRAPHICS);
|
||||||
|
|
||||||
MOZ_ASSERT(mFrameInProgress, "frame not started");
|
MOZ_ASSERT(mFrameInProgress, "frame not started");
|
||||||
|
|
||||||
IntRect intClipRect;
|
IntRect intClipRect;
|
||||||
@ -1255,7 +1259,9 @@ CompositorOGL::DrawQuad(const Rect& aRect,
|
|||||||
void
|
void
|
||||||
CompositorOGL::EndFrame()
|
CompositorOGL::EndFrame()
|
||||||
{
|
{
|
||||||
PROFILER_LABEL("CompositorOGL", "EndFrame");
|
PROFILER_LABEL("CompositorOGL", "EndFrame",
|
||||||
|
js::ProfileEntry::Category::GRAPHICS);
|
||||||
|
|
||||||
MOZ_ASSERT(mCurrentRenderTarget == mWindowRenderTarget, "Rendering target not properly restored");
|
MOZ_ASSERT(mCurrentRenderTarget == mWindowRenderTarget, "Rendering target not properly restored");
|
||||||
|
|
||||||
#ifdef MOZ_DUMP_PAINTING
|
#ifdef MOZ_DUMP_PAINTING
|
||||||
|
@ -354,7 +354,9 @@ gfxContext::Stroke()
|
|||||||
void
|
void
|
||||||
gfxContext::Fill()
|
gfxContext::Fill()
|
||||||
{
|
{
|
||||||
PROFILER_LABEL("gfxContext", "Fill");
|
PROFILER_LABEL("gfxContext", "Fill",
|
||||||
|
js::ProfileEntry::Category::GRAPHICS);
|
||||||
|
|
||||||
if (mCairo) {
|
if (mCairo) {
|
||||||
cairo_fill_preserve(mCairo);
|
cairo_fill_preserve(mCairo);
|
||||||
} else {
|
} else {
|
||||||
@ -1504,7 +1506,9 @@ gfxContext::Mask(gfxPattern *pattern)
|
|||||||
void
|
void
|
||||||
gfxContext::Mask(gfxASurface *surface, const gfxPoint& offset)
|
gfxContext::Mask(gfxASurface *surface, const gfxPoint& offset)
|
||||||
{
|
{
|
||||||
PROFILER_LABEL("gfxContext", "Mask");
|
PROFILER_LABEL("gfxContext", "Mask",
|
||||||
|
js::ProfileEntry::Category::GRAPHICS);
|
||||||
|
|
||||||
if (mCairo) {
|
if (mCairo) {
|
||||||
cairo_mask_surface(mCairo, surface->CairoSurface(), offset.x, offset.y);
|
cairo_mask_surface(mCairo, surface->CairoSurface(), offset.x, offset.y);
|
||||||
} else {
|
} else {
|
||||||
@ -1538,7 +1542,9 @@ gfxContext::Mask(SourceSurface *surface, const Point& offset)
|
|||||||
void
|
void
|
||||||
gfxContext::Paint(gfxFloat alpha)
|
gfxContext::Paint(gfxFloat alpha)
|
||||||
{
|
{
|
||||||
PROFILER_LABEL("gfxContext", "Paint");
|
PROFILER_LABEL("gfxContext", "Paint",
|
||||||
|
js::ProfileEntry::Category::GRAPHICS);
|
||||||
|
|
||||||
if (mCairo) {
|
if (mCairo) {
|
||||||
cairo_paint_with_alpha(mCairo, alpha);
|
cairo_paint_with_alpha(mCairo, alpha);
|
||||||
} else {
|
} else {
|
||||||
|
@ -2790,7 +2790,9 @@ struct GlyphBuffer {
|
|||||||
FlushStroke(aCR, aContextPaint, aGlobalMatrix);
|
FlushStroke(aCR, aContextPaint, aGlobalMatrix);
|
||||||
}
|
}
|
||||||
if (int(aDrawMode) & int(DrawMode::GLYPH_FILL)) {
|
if (int(aDrawMode) & int(DrawMode::GLYPH_FILL)) {
|
||||||
PROFILER_LABEL("GlyphBuffer", "cairo_show_glyphs");
|
PROFILER_LABEL("GlyphBuffer", "Flush::cairo_show_glyphs",
|
||||||
|
js::ProfileEntry::Category::GRAPHICS);
|
||||||
|
|
||||||
nsRefPtr<gfxPattern> pattern;
|
nsRefPtr<gfxPattern> pattern;
|
||||||
if (aContextPaint &&
|
if (aContextPaint &&
|
||||||
!!(pattern = aContextPaint->GetFillPattern(aGlobalMatrix))) {
|
!!(pattern = aContextPaint->GetFillPattern(aGlobalMatrix))) {
|
||||||
|
@ -242,7 +242,9 @@ CreateSamplingRestrictedDrawable(gfxDrawable* aDrawable,
|
|||||||
const gfxRect& aSubimage,
|
const gfxRect& aSubimage,
|
||||||
const gfxImageFormat aFormat)
|
const gfxImageFormat aFormat)
|
||||||
{
|
{
|
||||||
PROFILER_LABEL("gfxUtils", "CreateSamplingRestricedDrawable");
|
PROFILER_LABEL("gfxUtils", "CreateSamplingRestricedDrawable",
|
||||||
|
js::ProfileEntry::Category::GRAPHICS);
|
||||||
|
|
||||||
gfxRect userSpaceClipExtents = aContext->GetClipExtents();
|
gfxRect userSpaceClipExtents = aContext->GetClipExtents();
|
||||||
// This isn't optimal --- if aContext has a rotation then GetClipExtents
|
// This isn't optimal --- if aContext has a rotation then GetClipExtents
|
||||||
// will have to do a bounding-box computation, and TransformBounds might
|
// will have to do a bounding-box computation, and TransformBounds might
|
||||||
@ -448,7 +450,9 @@ gfxUtils::DrawPixelSnapped(gfxContext* aContext,
|
|||||||
GraphicsFilter aFilter,
|
GraphicsFilter aFilter,
|
||||||
uint32_t aImageFlags)
|
uint32_t aImageFlags)
|
||||||
{
|
{
|
||||||
PROFILER_LABEL("gfxUtils", "DrawPixelSnapped");
|
PROFILER_LABEL("gfxUtils", "DrawPixelSnapped",
|
||||||
|
js::ProfileEntry::Category::GRAPHICS);
|
||||||
|
|
||||||
bool doTile = !aImageRect.Contains(aSourceRect) &&
|
bool doTile = !aImageRect.Contains(aSourceRect) &&
|
||||||
!(aImageFlags & imgIContainer::FLAG_CLAMP);
|
!(aImageFlags & imgIContainer::FLAG_CLAMP);
|
||||||
|
|
||||||
|
@ -87,7 +87,9 @@ Decoder::InitSharedDecoder(uint8_t* imageData, uint32_t imageDataLength,
|
|||||||
void
|
void
|
||||||
Decoder::Write(const char* aBuffer, uint32_t aCount, DecodeStrategy aStrategy)
|
Decoder::Write(const char* aBuffer, uint32_t aCount, DecodeStrategy aStrategy)
|
||||||
{
|
{
|
||||||
PROFILER_LABEL("ImageDecoder", "Write");
|
PROFILER_LABEL("ImageDecoder", "Write",
|
||||||
|
js::ProfileEntry::Category::GRAPHICS);
|
||||||
|
|
||||||
MOZ_ASSERT(NS_IsMainThread() || aStrategy == DECODE_ASYNC);
|
MOZ_ASSERT(NS_IsMainThread() || aStrategy == DECODE_ASYNC);
|
||||||
|
|
||||||
// We're strict about decoder errors
|
// We're strict about decoder errors
|
||||||
|
@ -2392,7 +2392,9 @@ RasterImage::RequestDecodeCore(RequestDecodeType aDecodeType)
|
|||||||
// large images will decode a bit and post themselves to the event loop
|
// large images will decode a bit and post themselves to the event loop
|
||||||
// to finish decoding.
|
// to finish decoding.
|
||||||
if (!mDecoded && !mInDecoder && mHasSourceData && aDecodeType == SYNCHRONOUS_NOTIFY_AND_SOME_DECODE) {
|
if (!mDecoded && !mInDecoder && mHasSourceData && aDecodeType == SYNCHRONOUS_NOTIFY_AND_SOME_DECODE) {
|
||||||
PROFILER_LABEL_PRINTF("RasterImage", "DecodeABitOf", "%s", GetURIString().get());
|
PROFILER_LABEL_PRINTF("RasterImage", "DecodeABitOf",
|
||||||
|
js::ProfileEntry::Category::GRAPHICS, "%s", GetURIString().get());
|
||||||
|
|
||||||
DecodePool::Singleton()->DecodeABitOf(this, DECODE_SYNC);
|
DecodePool::Singleton()->DecodeABitOf(this, DECODE_SYNC);
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
@ -2411,7 +2413,8 @@ RasterImage::RequestDecodeCore(RequestDecodeType aDecodeType)
|
|||||||
nsresult
|
nsresult
|
||||||
RasterImage::SyncDecode()
|
RasterImage::SyncDecode()
|
||||||
{
|
{
|
||||||
PROFILER_LABEL_PRINTF("RasterImage", "SyncDecode", "%s", GetURIString().get());;
|
PROFILER_LABEL_PRINTF("RasterImage", "SyncDecode",
|
||||||
|
js::ProfileEntry::Category::GRAPHICS, "%s", GetURIString().get());
|
||||||
|
|
||||||
// If we have a size decoder open, make sure we get the size
|
// If we have a size decoder open, make sure we get the size
|
||||||
if (mDecoder && mDecoder->IsSizeDecode()) {
|
if (mDecoder && mDecoder->IsSizeDecode()) {
|
||||||
|
@ -483,7 +483,9 @@ bool imgFrame::Draw(gfxContext *aContext, GraphicsFilter aFilter,
|
|||||||
const nsIntMargin &aPadding, const nsIntRect &aSubimage,
|
const nsIntMargin &aPadding, const nsIntRect &aSubimage,
|
||||||
uint32_t aImageFlags)
|
uint32_t aImageFlags)
|
||||||
{
|
{
|
||||||
PROFILER_LABEL("image", "imgFrame::Draw");
|
PROFILER_LABEL("imgFrame", "Draw",
|
||||||
|
js::ProfileEntry::Category::GRAPHICS);
|
||||||
|
|
||||||
NS_ASSERTION(!aFill.IsEmpty(), "zero dest size --- fix caller");
|
NS_ASSERTION(!aFill.IsEmpty(), "zero dest size --- fix caller");
|
||||||
NS_ASSERTION(!aSubimage.IsEmpty(), "zero source size --- fix caller");
|
NS_ASSERTION(!aSubimage.IsEmpty(), "zero source size --- fix caller");
|
||||||
NS_ASSERTION(!mPalettedImageData, "Directly drawing a paletted image!");
|
NS_ASSERTION(!mPalettedImageData, "Directly drawing a paletted image!");
|
||||||
|
@ -53,7 +53,8 @@ void MessagePumpDefault::Run(Delegate* delegate) {
|
|||||||
|
|
||||||
if (delayed_work_time_.is_null()) {
|
if (delayed_work_time_.is_null()) {
|
||||||
hangMonitor.NotifyWait();
|
hangMonitor.NotifyWait();
|
||||||
PROFILER_LABEL("MessagePump", "Wait");
|
PROFILER_LABEL("MessagePump", "Wait",
|
||||||
|
js::ProfileEntry::Category::OTHER);
|
||||||
{
|
{
|
||||||
GeckoProfilerSleepRAII profiler_sleep;
|
GeckoProfilerSleepRAII profiler_sleep;
|
||||||
event_.Wait();
|
event_.Wait();
|
||||||
@ -62,7 +63,8 @@ void MessagePumpDefault::Run(Delegate* delegate) {
|
|||||||
TimeDelta delay = delayed_work_time_ - TimeTicks::Now();
|
TimeDelta delay = delayed_work_time_ - TimeTicks::Now();
|
||||||
if (delay > TimeDelta()) {
|
if (delay > TimeDelta()) {
|
||||||
hangMonitor.NotifyWait();
|
hangMonitor.NotifyWait();
|
||||||
PROFILER_LABEL("MessagePump", "Wait");
|
PROFILER_LABEL("MessagePump", "Wait",
|
||||||
|
js::ProfileEntry::Category::OTHER);
|
||||||
{
|
{
|
||||||
GeckoProfilerSleepRAII profiler_sleep;
|
GeckoProfilerSleepRAII profiler_sleep;
|
||||||
event_.TimedWait(delay);
|
event_.TimedWait(delay);
|
||||||
|
@ -86,6 +86,7 @@ extern UINT sDefaultBrowserMsgId;
|
|||||||
namespace {
|
namespace {
|
||||||
|
|
||||||
const wchar_t kOldWndProcProp[] = L"MozillaIPCOldWndProc";
|
const wchar_t kOldWndProcProp[] = L"MozillaIPCOldWndProc";
|
||||||
|
const wchar_t k3rdPartyWindowProp[] = L"Mozilla3rdPartyWindow";
|
||||||
|
|
||||||
// This isn't defined before Windows XP.
|
// This isn't defined before Windows XP.
|
||||||
enum { WM_XP_THEMECHANGED = 0x031A };
|
enum { WM_XP_THEMECHANGED = 0x031A };
|
||||||
@ -103,6 +104,9 @@ HHOOK gDeferredCallWndProcHook = nullptr;
|
|||||||
|
|
||||||
DWORD gUIThreadId = 0;
|
DWORD gUIThreadId = 0;
|
||||||
|
|
||||||
|
// WM_GETOBJECT id pulled from uia headers
|
||||||
|
#define MOZOBJID_UIAROOT -25
|
||||||
|
|
||||||
LRESULT CALLBACK
|
LRESULT CALLBACK
|
||||||
DeferredMessageHook(int nCode,
|
DeferredMessageHook(int nCode,
|
||||||
WPARAM wParam,
|
WPARAM wParam,
|
||||||
@ -161,6 +165,28 @@ ScheduleDeferredMessageRun()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
DumpNeuteredMessage(HWND hwnd, UINT uMsg)
|
||||||
|
{
|
||||||
|
#ifdef DEBUG
|
||||||
|
nsAutoCString log("Received \"nonqueued\" message ");
|
||||||
|
log.AppendInt(uMsg);
|
||||||
|
log.AppendLiteral(" during a synchronous IPC message for window ");
|
||||||
|
log.AppendInt((int64_t)hwnd);
|
||||||
|
|
||||||
|
wchar_t className[256] = { 0 };
|
||||||
|
if (GetClassNameW(hwnd, className, sizeof(className) - 1) > 0) {
|
||||||
|
log.AppendLiteral(" (\"");
|
||||||
|
log.Append(NS_ConvertUTF16toUTF8((char16_t*)className));
|
||||||
|
log.AppendLiteral("\")");
|
||||||
|
}
|
||||||
|
|
||||||
|
log.AppendLiteral(", sending it to DefWindowProc instead of the normal "
|
||||||
|
"window procedure.");
|
||||||
|
NS_ERROR(log.get());
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
LRESULT
|
LRESULT
|
||||||
ProcessOrDeferMessage(HWND hwnd,
|
ProcessOrDeferMessage(HWND hwnd,
|
||||||
UINT uMsg,
|
UINT uMsg,
|
||||||
@ -285,7 +311,24 @@ ProcessOrDeferMessage(HWND hwnd,
|
|||||||
case WM_APP-1:
|
case WM_APP-1:
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
// We only support a query for our IAccessible or UIA pointers.
|
||||||
|
// This should be safe, and needs to be sync.
|
||||||
|
#if defined(ACCESSIBILITY)
|
||||||
|
case WM_GETOBJECT: {
|
||||||
|
if (!::GetPropW(hwnd, k3rdPartyWindowProp)) {
|
||||||
|
DWORD objId = static_cast<DWORD>(lParam);
|
||||||
|
WNDPROC oldWndProc = (WNDPROC)GetProp(hwnd, kOldWndProcProp);
|
||||||
|
if ((objId == OBJID_CLIENT || objId == MOZOBJID_UIAROOT) && oldWndProc) {
|
||||||
|
return CallWindowProcW(oldWndProc, hwnd, uMsg, wParam, lParam);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
#endif // ACCESSIBILITY
|
||||||
|
|
||||||
default: {
|
default: {
|
||||||
|
// Unknown messages only are logged in debug builds and sent to
|
||||||
|
// DefWindowProc.
|
||||||
if (uMsg && uMsg == mozilla::widget::sAppShellGeckoMsgId) {
|
if (uMsg && uMsg == mozilla::widget::sAppShellGeckoMsgId) {
|
||||||
// Widget's registered native event callback
|
// Widget's registered native event callback
|
||||||
deferred = new DeferredSendMessage(hwnd, uMsg, wParam, lParam);
|
deferred = new DeferredSendMessage(hwnd, uMsg, wParam, lParam);
|
||||||
@ -294,31 +337,16 @@ ProcessOrDeferMessage(HWND hwnd,
|
|||||||
// Metro widget's system shutdown message
|
// Metro widget's system shutdown message
|
||||||
deferred = new DeferredSendMessage(hwnd, uMsg, wParam, lParam);
|
deferred = new DeferredSendMessage(hwnd, uMsg, wParam, lParam);
|
||||||
#endif
|
#endif
|
||||||
} else {
|
}
|
||||||
// Unknown messages only
|
}
|
||||||
#ifdef DEBUG
|
|
||||||
nsAutoCString log("Received \"nonqueued\" message ");
|
|
||||||
log.AppendInt(uMsg);
|
|
||||||
log.AppendLiteral(" during a synchronous IPC message for window ");
|
|
||||||
log.AppendInt((int64_t)hwnd);
|
|
||||||
|
|
||||||
wchar_t className[256] = { 0 };
|
|
||||||
if (GetClassNameW(hwnd, className, sizeof(className) - 1) > 0) {
|
|
||||||
log.AppendLiteral(" (\"");
|
|
||||||
log.Append(NS_ConvertUTF16toUTF8((char16_t*)className));
|
|
||||||
log.AppendLiteral("\")");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
log.AppendLiteral(", sending it to DefWindowProc instead of the normal "
|
// No deferred message was created and we land here, this is an
|
||||||
"window procedure.");
|
// unhandled message.
|
||||||
NS_ERROR(log.get());
|
if (!deferred) {
|
||||||
#endif
|
DumpNeuteredMessage(hwnd, uMsg);
|
||||||
return DefWindowProc(hwnd, uMsg, wParam, lParam);
|
return DefWindowProc(hwnd, uMsg, wParam, lParam);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_ASSERTION(deferred, "Must have a message here!");
|
|
||||||
|
|
||||||
// Create the deferred message array if it doesn't exist already.
|
// Create the deferred message array if it doesn't exist already.
|
||||||
if (!gDeferredMessages) {
|
if (!gDeferredMessages) {
|
||||||
@ -400,6 +428,7 @@ WindowIsDeferredWindow(HWND hWnd)
|
|||||||
if (className.EqualsLiteral("ShockwaveFlashFullScreen") ||
|
if (className.EqualsLiteral("ShockwaveFlashFullScreen") ||
|
||||||
className.EqualsLiteral("QTNSHIDDEN") ||
|
className.EqualsLiteral("QTNSHIDDEN") ||
|
||||||
className.EqualsLiteral("AGFullScreenWinClass")) {
|
className.EqualsLiteral("AGFullScreenWinClass")) {
|
||||||
|
SetPropW(hWnd, k3rdPartyWindowProp, (HANDLE)1);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -407,6 +436,7 @@ WindowIsDeferredWindow(HWND hWnd)
|
|||||||
// earth process. The earth process can trigger a plugin incall on the browser
|
// earth process. The earth process can trigger a plugin incall on the browser
|
||||||
// at any time, which is badness if the instance is already making an incall.
|
// at any time, which is badness if the instance is already making an incall.
|
||||||
if (className.EqualsLiteral("__geplugin_bridge_window__")) {
|
if (className.EqualsLiteral("__geplugin_bridge_window__")) {
|
||||||
|
SetPropW(hWnd, k3rdPartyWindowProp, (HANDLE)1);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -473,7 +503,8 @@ NeuterWindowProcedure(HWND hWnd)
|
|||||||
// Cleanup
|
// Cleanup
|
||||||
NS_WARNING("SetProp failed!");
|
NS_WARNING("SetProp failed!");
|
||||||
SetWindowLongPtr(hWnd, GWLP_WNDPROC, currentWndProc);
|
SetWindowLongPtr(hWnd, GWLP_WNDPROC, currentWndProc);
|
||||||
RemoveProp(hWnd, kOldWndProcProp);
|
RemovePropW(hWnd, kOldWndProcProp);
|
||||||
|
RemovePropW(hWnd, k3rdPartyWindowProp);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -495,7 +526,8 @@ RestoreWindowProcedure(HWND hWnd)
|
|||||||
NS_ASSERTION(currentWndProc == (LONG_PTR)NeuteredWindowProc,
|
NS_ASSERTION(currentWndProc == (LONG_PTR)NeuteredWindowProc,
|
||||||
"This should never be switched out from under us!");
|
"This should never be switched out from under us!");
|
||||||
}
|
}
|
||||||
RemoveProp(hWnd, kOldWndProcProp);
|
RemovePropW(hWnd, kOldWndProcProp);
|
||||||
|
RemovePropW(hWnd, k3rdPartyWindowProp);
|
||||||
}
|
}
|
||||||
|
|
||||||
LRESULT CALLBACK
|
LRESULT CALLBACK
|
||||||
|
@ -5369,7 +5369,8 @@ class _GenerateProtocolActorCode(ipdl.ast.Visitor):
|
|||||||
def profilerLabel(self, tag, msgname):
|
def profilerLabel(self, tag, msgname):
|
||||||
return StmtExpr(ExprCall(ExprVar('PROFILER_LABEL'),
|
return StmtExpr(ExprCall(ExprVar('PROFILER_LABEL'),
|
||||||
[ ExprLiteral.String('IPDL::' + self.protocol.name),
|
[ ExprLiteral.String('IPDL::' + self.protocol.name),
|
||||||
ExprLiteral.String(tag + msgname) ]))
|
ExprLiteral.String(tag + msgname),
|
||||||
|
ExprVar('js::ProfileEntry::Category::OTHER') ]))
|
||||||
|
|
||||||
def saveActorId(self, md):
|
def saveActorId(self, md):
|
||||||
idvar = ExprVar('__id')
|
idvar = ExprVar('__id')
|
||||||
|
@ -8,6 +8,7 @@
|
|||||||
#define js_ProfilingStack_h
|
#define js_ProfilingStack_h
|
||||||
|
|
||||||
#include "mozilla/NullPtr.h"
|
#include "mozilla/NullPtr.h"
|
||||||
|
#include "mozilla/TypedEnum.h"
|
||||||
|
|
||||||
#include "jsbytecode.h"
|
#include "jsbytecode.h"
|
||||||
#include "jstypes.h"
|
#include "jstypes.h"
|
||||||
@ -63,6 +64,21 @@ class ProfileEntry
|
|||||||
FRAME_LABEL_COPY = 0x02
|
FRAME_LABEL_COPY = 0x02
|
||||||
};
|
};
|
||||||
|
|
||||||
|
MOZ_BEGIN_NESTED_ENUM_CLASS(Category, uint32_t)
|
||||||
|
OTHER = 0x04,
|
||||||
|
CSS = 0x08,
|
||||||
|
JS = 0x10,
|
||||||
|
GC = 0x20,
|
||||||
|
CC = 0x40,
|
||||||
|
NETWORK = 0x80,
|
||||||
|
GRAPHICS = 0x100,
|
||||||
|
STORAGE = 0x200,
|
||||||
|
EVENTS = 0x400,
|
||||||
|
|
||||||
|
FIRST = OTHER,
|
||||||
|
LAST = EVENTS
|
||||||
|
MOZ_END_NESTED_ENUM_CLASS(Category)
|
||||||
|
|
||||||
// All of these methods are marked with the 'volatile' keyword because SPS's
|
// All of these methods are marked with the 'volatile' keyword because SPS's
|
||||||
// representation of the stack is stored such that all ProfileEntry
|
// representation of the stack is stored such that all ProfileEntry
|
||||||
// instances are volatile. These methods would not be available unless they
|
// instances are volatile. These methods would not be available unless they
|
||||||
@ -87,15 +103,15 @@ class ProfileEntry
|
|||||||
lineOrPc = static_cast<int32_t>(aLine);
|
lineOrPc = static_cast<int32_t>(aLine);
|
||||||
}
|
}
|
||||||
|
|
||||||
void setFlag(Flags flag) volatile {
|
void setFlag(uint32_t flag) volatile {
|
||||||
MOZ_ASSERT(flag != IS_CPP_ENTRY);
|
MOZ_ASSERT(flag != IS_CPP_ENTRY);
|
||||||
flags |= flag;
|
flags |= flag;
|
||||||
}
|
}
|
||||||
void unsetFlag(Flags flag) volatile {
|
void unsetFlag(uint32_t flag) volatile {
|
||||||
MOZ_ASSERT(flag != IS_CPP_ENTRY);
|
MOZ_ASSERT(flag != IS_CPP_ENTRY);
|
||||||
flags &= ~flag;
|
flags &= ~flag;
|
||||||
}
|
}
|
||||||
bool hasFlag(Flags flag) const volatile {
|
bool hasFlag(uint32_t flag) const volatile {
|
||||||
return bool(flags & uint32_t(flag));
|
return bool(flags & uint32_t(flag));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2416,7 +2416,8 @@ void
|
|||||||
ContainerState::ProcessDisplayItems(const nsDisplayList& aList,
|
ContainerState::ProcessDisplayItems(const nsDisplayList& aList,
|
||||||
uint32_t aFlags)
|
uint32_t aFlags)
|
||||||
{
|
{
|
||||||
PROFILER_LABEL("ContainerState", "ProcessDisplayItems");
|
PROFILER_LABEL("ContainerState", "ProcessDisplayItems",
|
||||||
|
js::ProfileEntry::Category::GRAPHICS);
|
||||||
|
|
||||||
const nsIFrame* lastAnimatedGeometryRoot = mContainerReferenceFrame;
|
const nsIFrame* lastAnimatedGeometryRoot = mContainerReferenceFrame;
|
||||||
nsPoint topLeft(0,0);
|
nsPoint topLeft(0,0);
|
||||||
@ -3772,7 +3773,8 @@ FrameLayerBuilder::DrawThebesLayer(ThebesLayer* aLayer,
|
|||||||
const nsIntRegion& aRegionToInvalidate,
|
const nsIntRegion& aRegionToInvalidate,
|
||||||
void* aCallbackData)
|
void* aCallbackData)
|
||||||
{
|
{
|
||||||
PROFILER_LABEL("gfx", "DrawThebesLayer");
|
PROFILER_LABEL("FrameLayerBuilder", "DrawThebesLayer",
|
||||||
|
js::ProfileEntry::Category::GRAPHICS);
|
||||||
|
|
||||||
nsDisplayListBuilder* builder = static_cast<nsDisplayListBuilder*>
|
nsDisplayListBuilder* builder = static_cast<nsDisplayListBuilder*>
|
||||||
(aCallbackData);
|
(aCallbackData);
|
||||||
|
@ -590,7 +590,8 @@ RestyleManager::ProcessRestyledFrames(nsStyleChangeList& aChangeList)
|
|||||||
if (!count)
|
if (!count)
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
|
|
||||||
PROFILER_LABEL("CSS", "ProcessRestyledFrames");
|
PROFILER_LABEL("RestyleManager", "ProcessRestyledFrames",
|
||||||
|
js::ProfileEntry::Category::CSS);
|
||||||
|
|
||||||
// Make sure to not rebuild quote or counter lists while we're
|
// Make sure to not rebuild quote or counter lists while we're
|
||||||
// processing restyles
|
// processing restyles
|
||||||
@ -2908,7 +2909,8 @@ RestyleManager::ComputeStyleChangeFor(nsIFrame* aFrame,
|
|||||||
RestyleTracker& aRestyleTracker,
|
RestyleTracker& aRestyleTracker,
|
||||||
bool aRestyleDescendants)
|
bool aRestyleDescendants)
|
||||||
{
|
{
|
||||||
PROFILER_LABEL("CSS", "ComputeStyleChangeFor");
|
PROFILER_LABEL("RestyleManager", "ComputeStyleChangeFor",
|
||||||
|
js::ProfileEntry::Category::CSS);
|
||||||
|
|
||||||
nsIContent *content = aFrame->GetContent();
|
nsIContent *content = aFrame->GetContent();
|
||||||
if (aMinChange) {
|
if (aMinChange) {
|
||||||
|
@ -134,7 +134,8 @@ RestyleTracker::ProcessOneRestyle(Element* aElement,
|
|||||||
void
|
void
|
||||||
RestyleTracker::DoProcessRestyles()
|
RestyleTracker::DoProcessRestyles()
|
||||||
{
|
{
|
||||||
PROFILER_LABEL("CSS", "ProcessRestyles");
|
PROFILER_LABEL("RestyleTracker", "ProcessRestyles",
|
||||||
|
js::ProfileEntry::Category::CSS);
|
||||||
|
|
||||||
mRestyleManager->BeginProcessingRestyles();
|
mRestyleManager->BeginProcessingRestyles();
|
||||||
|
|
||||||
|
@ -575,7 +575,9 @@ nsCSSRendering::PaintBorder(nsPresContext* aPresContext,
|
|||||||
nsStyleContext* aStyleContext,
|
nsStyleContext* aStyleContext,
|
||||||
int aSkipSides)
|
int aSkipSides)
|
||||||
{
|
{
|
||||||
PROFILER_LABEL("nsCSSRendering", "PaintBorder");
|
PROFILER_LABEL("nsCSSRendering", "PaintBorder",
|
||||||
|
js::ProfileEntry::Category::GRAPHICS);
|
||||||
|
|
||||||
nsStyleContext *styleIfVisited = aStyleContext->GetStyleIfVisited();
|
nsStyleContext *styleIfVisited = aStyleContext->GetStyleIfVisited();
|
||||||
const nsStyleBorder *styleBorder = aStyleContext->StyleBorder();
|
const nsStyleBorder *styleBorder = aStyleContext->StyleBorder();
|
||||||
// Don't check RelevantLinkVisited here, since we want to take the
|
// Don't check RelevantLinkVisited here, since we want to take the
|
||||||
@ -1551,7 +1553,9 @@ nsCSSRendering::PaintBackground(nsPresContext* aPresContext,
|
|||||||
nsRect* aBGClipRect,
|
nsRect* aBGClipRect,
|
||||||
int32_t aLayer)
|
int32_t aLayer)
|
||||||
{
|
{
|
||||||
PROFILER_LABEL("nsCSSRendering", "PaintBackground");
|
PROFILER_LABEL("nsCSSRendering", "PaintBackground",
|
||||||
|
js::ProfileEntry::Category::GRAPHICS);
|
||||||
|
|
||||||
NS_PRECONDITION(aForFrame,
|
NS_PRECONDITION(aForFrame,
|
||||||
"Frame is expected to be provided to PaintBackground");
|
"Frame is expected to be provided to PaintBackground");
|
||||||
|
|
||||||
@ -1588,7 +1592,9 @@ nsCSSRendering::PaintBackgroundColor(nsPresContext* aPresContext,
|
|||||||
const nsRect& aBorderArea,
|
const nsRect& aBorderArea,
|
||||||
uint32_t aFlags)
|
uint32_t aFlags)
|
||||||
{
|
{
|
||||||
PROFILER_LABEL("nsCSSRendering", "PaintBackgroundColor");
|
PROFILER_LABEL("nsCSSRendering", "PaintBackgroundColor",
|
||||||
|
js::ProfileEntry::Category::GRAPHICS);
|
||||||
|
|
||||||
NS_PRECONDITION(aForFrame,
|
NS_PRECONDITION(aForFrame,
|
||||||
"Frame is expected to be provided to PaintBackground");
|
"Frame is expected to be provided to PaintBackground");
|
||||||
|
|
||||||
@ -2228,7 +2234,9 @@ nsCSSRendering::PaintGradient(nsPresContext* aPresContext,
|
|||||||
const CSSIntRect& aSrc,
|
const CSSIntRect& aSrc,
|
||||||
const nsSize& aIntrinsicSize)
|
const nsSize& aIntrinsicSize)
|
||||||
{
|
{
|
||||||
PROFILER_LABEL("nsCSSRendering", "PaintGradient");
|
PROFILER_LABEL("nsCSSRendering", "PaintGradient",
|
||||||
|
js::ProfileEntry::Category::GRAPHICS);
|
||||||
|
|
||||||
Telemetry::AutoTimer<Telemetry::GRADIENT_DURATION, Telemetry::Microsecond> gradientTimer;
|
Telemetry::AutoTimer<Telemetry::GRADIENT_DURATION, Telemetry::Microsecond> gradientTimer;
|
||||||
if (aDest.IsEmpty() || aFillArea.IsEmpty()) {
|
if (aDest.IsEmpty() || aFillArea.IsEmpty()) {
|
||||||
return;
|
return;
|
||||||
|
@ -1770,7 +1770,9 @@ nsCSSBorderRenderer::DrawBorders()
|
|||||||
DrawBorderSides(SIDE_BITS_ALL);
|
DrawBorderSides(SIDE_BITS_ALL);
|
||||||
SN("---------------- (1)");
|
SN("---------------- (1)");
|
||||||
} else {
|
} else {
|
||||||
PROFILER_LABEL("nsCSSBorderRenderer", "DrawBorders::multipass");
|
PROFILER_LABEL("nsCSSBorderRenderer", "DrawBorders::multipass",
|
||||||
|
js::ProfileEntry::Category::GRAPHICS);
|
||||||
|
|
||||||
/* We have more than one pass to go. Draw the corners separately from the sides. */
|
/* We have more than one pass to go. Draw the corners separately from the sides. */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -1039,7 +1039,9 @@ bool
|
|||||||
nsDisplayList::ComputeVisibilityForRoot(nsDisplayListBuilder* aBuilder,
|
nsDisplayList::ComputeVisibilityForRoot(nsDisplayListBuilder* aBuilder,
|
||||||
nsRegion* aVisibleRegion,
|
nsRegion* aVisibleRegion,
|
||||||
nsIFrame* aDisplayPortFrame) {
|
nsIFrame* aDisplayPortFrame) {
|
||||||
PROFILER_LABEL("nsDisplayList", "ComputeVisibilityForRoot");
|
PROFILER_LABEL("nsDisplayList", "ComputeVisibilityForRoot",
|
||||||
|
js::ProfileEntry::Category::GRAPHICS);
|
||||||
|
|
||||||
nsRegion r;
|
nsRegion r;
|
||||||
r.And(*aVisibleRegion, GetBounds(aBuilder));
|
r.And(*aVisibleRegion, GetBounds(aBuilder));
|
||||||
return ComputeVisibilityForSublist(aBuilder, aVisibleRegion,
|
return ComputeVisibilityForSublist(aBuilder, aVisibleRegion,
|
||||||
@ -1207,7 +1209,9 @@ nsDisplayList::ComputeVisibilityForSublist(nsDisplayListBuilder* aBuilder,
|
|||||||
void nsDisplayList::PaintRoot(nsDisplayListBuilder* aBuilder,
|
void nsDisplayList::PaintRoot(nsDisplayListBuilder* aBuilder,
|
||||||
nsRenderingContext* aCtx,
|
nsRenderingContext* aCtx,
|
||||||
uint32_t aFlags) const {
|
uint32_t aFlags) const {
|
||||||
PROFILER_LABEL("nsDisplayList", "PaintRoot");
|
PROFILER_LABEL("nsDisplayList", "PaintRoot",
|
||||||
|
js::ProfileEntry::Category::GRAPHICS);
|
||||||
|
|
||||||
PaintForFrame(aBuilder, aCtx, aBuilder->RootReferenceFrame(), aFlags);
|
PaintForFrame(aBuilder, aCtx, aBuilder->RootReferenceFrame(), aFlags);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2853,7 +2857,9 @@ nsDisplayBoxShadowOuter::Paint(nsDisplayListBuilder* aBuilder,
|
|||||||
nsAutoTArray<nsRect,10> rects;
|
nsAutoTArray<nsRect,10> rects;
|
||||||
ComputeDisjointRectangles(mVisibleRegion, &rects);
|
ComputeDisjointRectangles(mVisibleRegion, &rects);
|
||||||
|
|
||||||
PROFILER_LABEL("nsDisplayBoxShadowOuter", "Paint");
|
PROFILER_LABEL("nsDisplayBoxShadowOuter", "Paint",
|
||||||
|
js::ProfileEntry::Category::GRAPHICS);
|
||||||
|
|
||||||
for (uint32_t i = 0; i < rects.Length(); ++i) {
|
for (uint32_t i = 0; i < rects.Length(); ++i) {
|
||||||
nsCSSRendering::PaintBoxShadowOuter(presContext, *aCtx, mFrame,
|
nsCSSRendering::PaintBoxShadowOuter(presContext, *aCtx, mFrame,
|
||||||
borderRect, rects[i], mOpacity);
|
borderRect, rects[i], mOpacity);
|
||||||
@ -2936,7 +2942,9 @@ nsDisplayBoxShadowInner::Paint(nsDisplayListBuilder* aBuilder,
|
|||||||
nsAutoTArray<nsRect,10> rects;
|
nsAutoTArray<nsRect,10> rects;
|
||||||
ComputeDisjointRectangles(mVisibleRegion, &rects);
|
ComputeDisjointRectangles(mVisibleRegion, &rects);
|
||||||
|
|
||||||
PROFILER_LABEL("nsDisplayBoxShadowInner", "Paint");
|
PROFILER_LABEL("nsDisplayBoxShadowInner", "Paint",
|
||||||
|
js::ProfileEntry::Category::GRAPHICS);
|
||||||
|
|
||||||
for (uint32_t i = 0; i < rects.Length(); ++i) {
|
for (uint32_t i = 0; i < rects.Length(); ++i) {
|
||||||
aCtx->PushState();
|
aCtx->PushState();
|
||||||
aCtx->IntersectClip(rects[i]);
|
aCtx->IntersectClip(rects[i]);
|
||||||
|
@ -2484,7 +2484,9 @@ nsLayoutUtils::GetRemoteContentIds(nsIFrame* aFrame,
|
|||||||
nsIFrame*
|
nsIFrame*
|
||||||
nsLayoutUtils::GetFrameForPoint(nsIFrame* aFrame, nsPoint aPt, uint32_t aFlags)
|
nsLayoutUtils::GetFrameForPoint(nsIFrame* aFrame, nsPoint aPt, uint32_t aFlags)
|
||||||
{
|
{
|
||||||
PROFILER_LABEL("nsLayoutUtils", "GetFrameForPoint");
|
PROFILER_LABEL("nsLayoutUtils", "GetFrameForPoint",
|
||||||
|
js::ProfileEntry::Category::GRAPHICS);
|
||||||
|
|
||||||
nsresult rv;
|
nsresult rv;
|
||||||
nsAutoTArray<nsIFrame*,8> outFrames;
|
nsAutoTArray<nsIFrame*,8> outFrames;
|
||||||
rv = GetFramesForArea(aFrame, nsRect(aPt, nsSize(1, 1)), outFrames, aFlags);
|
rv = GetFramesForArea(aFrame, nsRect(aPt, nsSize(1, 1)), outFrames, aFlags);
|
||||||
@ -2497,7 +2499,9 @@ nsLayoutUtils::GetFramesForArea(nsIFrame* aFrame, const nsRect& aRect,
|
|||||||
nsTArray<nsIFrame*> &aOutFrames,
|
nsTArray<nsIFrame*> &aOutFrames,
|
||||||
uint32_t aFlags)
|
uint32_t aFlags)
|
||||||
{
|
{
|
||||||
PROFILER_LABEL("nsLayoutUtils","GetFramesForArea");
|
PROFILER_LABEL("nsLayoutUtils", "GetFramesForArea",
|
||||||
|
js::ProfileEntry::Category::GRAPHICS);
|
||||||
|
|
||||||
nsDisplayListBuilder builder(aFrame, nsDisplayListBuilder::EVENT_DELIVERY,
|
nsDisplayListBuilder builder(aFrame, nsDisplayListBuilder::EVENT_DELIVERY,
|
||||||
false);
|
false);
|
||||||
nsDisplayList list;
|
nsDisplayList list;
|
||||||
@ -2639,7 +2643,9 @@ nsLayoutUtils::PaintFrame(nsRenderingContext* aRenderingContext, nsIFrame* aFram
|
|||||||
const nsRegion& aDirtyRegion, nscolor aBackstop,
|
const nsRegion& aDirtyRegion, nscolor aBackstop,
|
||||||
uint32_t aFlags)
|
uint32_t aFlags)
|
||||||
{
|
{
|
||||||
PROFILER_LABEL("nsLayoutUtils","PaintFrame");
|
PROFILER_LABEL("nsLayoutUtils", "PaintFrame",
|
||||||
|
js::ProfileEntry::Category::GRAPHICS);
|
||||||
|
|
||||||
if (aFlags & PAINT_WIDGET_LAYERS) {
|
if (aFlags & PAINT_WIDGET_LAYERS) {
|
||||||
nsView* view = aFrame->GetView();
|
nsView* view = aFrame->GetView();
|
||||||
if (!(view && view->GetWidget() && GetDisplayRootFrame(aFrame) == aFrame)) {
|
if (!(view && view->GetWidget() && GetDisplayRootFrame(aFrame) == aFrame)) {
|
||||||
@ -2757,7 +2763,9 @@ nsLayoutUtils::PaintFrame(nsRenderingContext* aRenderingContext, nsIFrame* aFram
|
|||||||
}
|
}
|
||||||
nsDisplayListBuilder::AutoCurrentScrollParentIdSetter idSetter(&builder, id);
|
nsDisplayListBuilder::AutoCurrentScrollParentIdSetter idSetter(&builder, id);
|
||||||
|
|
||||||
PROFILER_LABEL("nsLayoutUtils","PaintFrame::BuildDisplayList");
|
PROFILER_LABEL("nsLayoutUtils", "PaintFrame::BuildDisplayList",
|
||||||
|
js::ProfileEntry::Category::GRAPHICS);
|
||||||
|
|
||||||
aFrame->BuildDisplayListForStackingContext(&builder, dirtyRect, &list);
|
aFrame->BuildDisplayListForStackingContext(&builder, dirtyRect, &list);
|
||||||
}
|
}
|
||||||
const bool paintAllContinuations = aFlags & PAINT_ALL_CONTINUATIONS;
|
const bool paintAllContinuations = aFlags & PAINT_ALL_CONTINUATIONS;
|
||||||
@ -2770,7 +2778,9 @@ nsLayoutUtils::PaintFrame(nsRenderingContext* aRenderingContext, nsIFrame* aFram
|
|||||||
if (paintAllContinuations) {
|
if (paintAllContinuations) {
|
||||||
nsIFrame* currentFrame = aFrame;
|
nsIFrame* currentFrame = aFrame;
|
||||||
while ((currentFrame = currentFrame->GetNextContinuation()) != nullptr) {
|
while ((currentFrame = currentFrame->GetNextContinuation()) != nullptr) {
|
||||||
PROFILER_LABEL("nsLayoutUtils","PaintFrame::ContinuationsBuildDisplayList");
|
PROFILER_LABEL("nsLayoutUtils", "PaintFrame::ContinuationsBuildDisplayList",
|
||||||
|
js::ProfileEntry::Category::GRAPHICS);
|
||||||
|
|
||||||
nsRect frameDirty = dirtyRect - builder.ToReferenceFrame(currentFrame);
|
nsRect frameDirty = dirtyRect - builder.ToReferenceFrame(currentFrame);
|
||||||
currentFrame->BuildDisplayListForStackingContext(&builder,
|
currentFrame->BuildDisplayListForStackingContext(&builder,
|
||||||
frameDirty, &list);
|
frameDirty, &list);
|
||||||
@ -5069,7 +5079,8 @@ nsLayoutUtils::DrawBackgroundImage(nsRenderingContext* aRenderingContext,
|
|||||||
const nsRect& aDirty,
|
const nsRect& aDirty,
|
||||||
uint32_t aImageFlags)
|
uint32_t aImageFlags)
|
||||||
{
|
{
|
||||||
PROFILER_LABEL("layout", "nsLayoutUtils::DrawBackgroundImage");
|
PROFILER_LABEL("nsLayoutUtils", "DrawBackgroundImage",
|
||||||
|
js::ProfileEntry::Category::GRAPHICS);
|
||||||
|
|
||||||
if (UseBackgroundNearestFiltering()) {
|
if (UseBackgroundNearestFiltering()) {
|
||||||
aGraphicsFilter = GraphicsFilter::FILTER_NEAREST;
|
aGraphicsFilter = GraphicsFilter::FILTER_NEAREST;
|
||||||
|
@ -3966,8 +3966,8 @@ PresShell::FlushPendingNotifications(mozilla::ChangesToFlush aFlush)
|
|||||||
// Make sure that we don't miss things added to mozFlushType!
|
// Make sure that we don't miss things added to mozFlushType!
|
||||||
MOZ_ASSERT(static_cast<uint32_t>(flushType) <= ArrayLength(flushTypeNames));
|
MOZ_ASSERT(static_cast<uint32_t>(flushType) <= ArrayLength(flushTypeNames));
|
||||||
|
|
||||||
PROFILER_LABEL_PRINTF("layout", "Flush", "(Flush_%s)",
|
PROFILER_LABEL_PRINTF("PresShell", "Flush",
|
||||||
flushTypeNames[flushType - 1]);
|
js::ProfileEntry::Category::GRAPHICS, "(Flush_%s)", flushTypeNames[flushType - 1]);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef ACCESSIBILITY
|
#ifdef ACCESSIBILITY
|
||||||
@ -5813,7 +5813,9 @@ PresShell::Paint(nsView* aViewToPaint,
|
|||||||
const nsRegion& aDirtyRegion,
|
const nsRegion& aDirtyRegion,
|
||||||
uint32_t aFlags)
|
uint32_t aFlags)
|
||||||
{
|
{
|
||||||
PROFILER_LABEL("Paint", "PresShell::Paint");
|
PROFILER_LABEL("PresShell", "Paint",
|
||||||
|
js::ProfileEntry::Category::GRAPHICS);
|
||||||
|
|
||||||
NS_ASSERTION(!mIsDestroying, "painting a destroyed PresShell");
|
NS_ASSERTION(!mIsDestroying, "painting a destroyed PresShell");
|
||||||
NS_ASSERTION(aViewToPaint, "null view");
|
NS_ASSERTION(aViewToPaint, "null view");
|
||||||
|
|
||||||
@ -8370,7 +8372,9 @@ PresShell::DoReflow(nsIFrame* target, bool aInterruptible)
|
|||||||
nsIURI *uri = mDocument->GetDocumentURI();
|
nsIURI *uri = mDocument->GetDocumentURI();
|
||||||
if (uri)
|
if (uri)
|
||||||
uri->GetSpec(docURL);
|
uri->GetSpec(docURL);
|
||||||
PROFILER_LABEL_PRINTF("layout", "DoReflow", "(%s)", docURL.get());
|
|
||||||
|
PROFILER_LABEL_PRINTF("PresShell", "DoReflow",
|
||||||
|
js::ProfileEntry::Category::GRAPHICS, "(%s)", docURL.get());
|
||||||
|
|
||||||
if (mReflowContinueTimer) {
|
if (mReflowContinueTimer) {
|
||||||
mReflowContinueTimer->Cancel();
|
mReflowContinueTimer->Cancel();
|
||||||
|
@ -1056,7 +1056,8 @@ nsRefreshDriver::Tick(int64_t aNowEpoch, TimeStamp aNowTime)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
PROFILER_LABEL("nsRefreshDriver", "Tick");
|
PROFILER_LABEL("nsRefreshDriver", "Tick",
|
||||||
|
js::ProfileEntry::Category::GRAPHICS);
|
||||||
|
|
||||||
// We're either frozen or we were disconnected (likely in the middle
|
// We're either frozen or we were disconnected (likely in the middle
|
||||||
// of a tick iteration). Just do nothing here, since our
|
// of a tick iteration). Just do nothing here, since our
|
||||||
|
@ -4527,7 +4527,9 @@ public:
|
|||||||
void
|
void
|
||||||
nsDisplayText::Paint(nsDisplayListBuilder* aBuilder,
|
nsDisplayText::Paint(nsDisplayListBuilder* aBuilder,
|
||||||
nsRenderingContext* aCtx) {
|
nsRenderingContext* aCtx) {
|
||||||
PROFILER_LABEL("nsDisplayText", "Paint");
|
PROFILER_LABEL("nsDisplayText", "Paint",
|
||||||
|
js::ProfileEntry::Category::GRAPHICS);
|
||||||
|
|
||||||
// Add 1 pixel of dirty area around mVisibleRect to allow us to paint
|
// Add 1 pixel of dirty area around mVisibleRect to allow us to paint
|
||||||
// antialiased pixels beyond the measured text extents.
|
// antialiased pixels beyond the measured text extents.
|
||||||
// This is temporary until we do this in the actual calculation of text extents.
|
// This is temporary until we do this in the actual calculation of text extents.
|
||||||
@ -5333,7 +5335,9 @@ nsTextFrame::PaintOneShadow(uint32_t aOffset, uint32_t aLength,
|
|||||||
const nsCharClipDisplayItem::ClipEdges& aClipEdges,
|
const nsCharClipDisplayItem::ClipEdges& aClipEdges,
|
||||||
nscoord aLeftSideOffset, gfxRect& aBoundingBox)
|
nscoord aLeftSideOffset, gfxRect& aBoundingBox)
|
||||||
{
|
{
|
||||||
PROFILER_LABEL("nsTextFrame", "PaintOneShadow");
|
PROFILER_LABEL("nsTextFrame", "PaintOneShadow",
|
||||||
|
js::ProfileEntry::Category::GRAPHICS);
|
||||||
|
|
||||||
gfxPoint shadowOffset(aShadowDetails->mXOffset, aShadowDetails->mYOffset);
|
gfxPoint shadowOffset(aShadowDetails->mXOffset, aShadowDetails->mYOffset);
|
||||||
nscoord blurRadius = std::max(aShadowDetails->mRadius, 0);
|
nscoord blurRadius = std::max(aShadowDetails->mRadius, 0);
|
||||||
|
|
||||||
|
@ -48,7 +48,9 @@ ViewportFrame::BuildDisplayList(nsDisplayListBuilder* aBuilder,
|
|||||||
const nsRect& aDirtyRect,
|
const nsRect& aDirtyRect,
|
||||||
const nsDisplayListSet& aLists)
|
const nsDisplayListSet& aLists)
|
||||||
{
|
{
|
||||||
PROFILER_LABEL("ViewportFrame", "BuildDisplayList");
|
PROFILER_LABEL("ViewportFrame", "BuildDisplayList",
|
||||||
|
js::ProfileEntry::Category::GRAPHICS);
|
||||||
|
|
||||||
nsIFrame* kid = mFrames.FirstChild();
|
nsIFrame* kid = mFrames.FirstChild();
|
||||||
if (!kid)
|
if (!kid)
|
||||||
return;
|
return;
|
||||||
|
@ -409,7 +409,8 @@ nsChangeHint
|
|||||||
nsStyleContext::CalcStyleDifference(nsStyleContext* aOther,
|
nsStyleContext::CalcStyleDifference(nsStyleContext* aOther,
|
||||||
nsChangeHint aParentHintsNotHandledForDescendants)
|
nsChangeHint aParentHintsNotHandledForDescendants)
|
||||||
{
|
{
|
||||||
PROFILER_LABEL("nsStyleContext", "CalcStyleDifference");
|
PROFILER_LABEL("nsStyleContext", "CalcStyleDifference",
|
||||||
|
js::ProfileEntry::Category::CSS);
|
||||||
|
|
||||||
NS_ABORT_IF_FALSE(NS_IsHintSubset(aParentHintsNotHandledForDescendants,
|
NS_ABORT_IF_FALSE(NS_IsHintSubset(aParentHintsNotHandledForDescendants,
|
||||||
nsChangeHint_Hints_NotHandledForDescendants),
|
nsChangeHint_Hints_NotHandledForDescendants),
|
||||||
|
@ -950,7 +950,8 @@ nsStyleSet::FileRules(nsIStyleRuleProcessor::EnumFunc aCollectorFunc,
|
|||||||
RuleProcessorData* aData, Element* aElement,
|
RuleProcessorData* aData, Element* aElement,
|
||||||
nsRuleWalker* aRuleWalker)
|
nsRuleWalker* aRuleWalker)
|
||||||
{
|
{
|
||||||
PROFILER_LABEL("nsStyleSet", "FileRules");
|
PROFILER_LABEL("nsStyleSet", "FileRules",
|
||||||
|
js::ProfileEntry::Category::CSS);
|
||||||
|
|
||||||
// Cascading order:
|
// Cascading order:
|
||||||
// [least important]
|
// [least important]
|
||||||
|
@ -1703,7 +1703,9 @@ abstract public class BrowserApp extends GeckoApp
|
|||||||
// Otherwise, construct a search query from the bookmark keyword.
|
// Otherwise, construct a search query from the bookmark keyword.
|
||||||
final String searchUrl = keywordUrl.replace("%s", URLEncoder.encode(keywordSearch));
|
final String searchUrl = keywordUrl.replace("%s", URLEncoder.encode(keywordSearch));
|
||||||
Tabs.getInstance().loadUrl(searchUrl, Tabs.LOADURL_USER_ENTERED);
|
Tabs.getInstance().loadUrl(searchUrl, Tabs.LOADURL_USER_ENTERED);
|
||||||
Telemetry.sendUIEvent(TelemetryContract.Event.LOAD_URL, "", "keyword");
|
Telemetry.sendUIEvent(TelemetryContract.Event.LOAD_URL,
|
||||||
|
TelemetryContract.Method.NONE,
|
||||||
|
"keyword");
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -127,8 +127,7 @@ public class DataReportingNotification {
|
|||||||
result = true;
|
result = true;
|
||||||
} finally {
|
} finally {
|
||||||
// We want to track any errors, so record notification outcome.
|
// We want to track any errors, so record notification outcome.
|
||||||
final String notificationEvent = TelemetryContract.Event.POLICY_NOTIFICATION_SUCCESS + result;
|
Telemetry.sendUIEvent(TelemetryContract.Event.POLICY_NOTIFICATION_SUCCESS, result);
|
||||||
Telemetry.sendUIEvent(notificationEvent);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -6,6 +6,10 @@
|
|||||||
package org.mozilla.gecko;
|
package org.mozilla.gecko;
|
||||||
|
|
||||||
import org.mozilla.gecko.mozglue.RobocopTarget;
|
import org.mozilla.gecko.mozglue.RobocopTarget;
|
||||||
|
import org.mozilla.gecko.TelemetryContract.Event;
|
||||||
|
import org.mozilla.gecko.TelemetryContract.Method;
|
||||||
|
import org.mozilla.gecko.TelemetryContract.Reason;
|
||||||
|
import org.mozilla.gecko.TelemetryContract.Session;
|
||||||
|
|
||||||
import android.os.SystemClock;
|
import android.os.SystemClock;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
@ -107,41 +111,89 @@ public class Telemetry {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void startUISession(String sessionName) {
|
public static void startUISession(final Session session, final String sessionNameSuffix) {
|
||||||
|
final String sessionName = getSessionName(session, sessionNameSuffix);
|
||||||
|
|
||||||
Log.d(LOGTAG, "StartUISession: " + sessionName);
|
Log.d(LOGTAG, "StartUISession: " + sessionName);
|
||||||
GeckoEvent event = GeckoEvent.createTelemetryUISessionStartEvent(sessionName, realtime());
|
final GeckoEvent geckoEvent =
|
||||||
GeckoAppShell.sendEventToGecko(event);
|
GeckoEvent.createTelemetryUISessionStartEvent(sessionName, realtime());
|
||||||
|
GeckoAppShell.sendEventToGecko(geckoEvent);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void stopUISession(String sessionName, String reason) {
|
public static void startUISession(final Session session) {
|
||||||
|
startUISession(session, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void stopUISession(final Session session, final String sessionNameSuffix,
|
||||||
|
final Reason reason) {
|
||||||
|
final String sessionName = getSessionName(session, sessionNameSuffix);
|
||||||
|
|
||||||
Log.d(LOGTAG, "StopUISession: " + sessionName + ", reason=" + reason);
|
Log.d(LOGTAG, "StopUISession: " + sessionName + ", reason=" + reason);
|
||||||
GeckoEvent event = GeckoEvent.createTelemetryUISessionStopEvent(sessionName, reason, realtime());
|
final GeckoEvent geckoEvent = GeckoEvent.createTelemetryUISessionStopEvent(
|
||||||
GeckoAppShell.sendEventToGecko(event);
|
sessionName, reason.toString(), realtime());
|
||||||
|
GeckoAppShell.sendEventToGecko(geckoEvent);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void stopUISession(String sessionName) {
|
public static void stopUISession(final Session session, final Reason reason) {
|
||||||
stopUISession(sessionName, null);
|
stopUISession(session, null, reason);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void sendUIEvent(String action, String method, long timestamp, String extras) {
|
public static void stopUISession(final Session session, final String sessionNameSuffix) {
|
||||||
Log.d(LOGTAG, "SendUIEvent: action = " + action + " method = " + method + " timestamp = " + timestamp + " extras = " + extras);
|
stopUISession(session, sessionNameSuffix, Reason.NONE);
|
||||||
GeckoEvent event = GeckoEvent.createTelemetryUIEvent(action, method, timestamp, extras);
|
|
||||||
GeckoAppShell.sendEventToGecko(event);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void sendUIEvent(String action, String method, long timestamp) {
|
public static void stopUISession(final Session session) {
|
||||||
sendUIEvent(action, method, timestamp, null);
|
stopUISession(session, null, Reason.NONE);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void sendUIEvent(String action, String method, String extras) {
|
private static String getSessionName(final Session session, final String sessionNameSuffix) {
|
||||||
sendUIEvent(action, method, realtime(), extras);
|
if (sessionNameSuffix != null) {
|
||||||
|
return session.toString() + ":" + sessionNameSuffix;
|
||||||
|
} else {
|
||||||
|
return session.toString();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void sendUIEvent(String action, String method) {
|
private static void sendUIEvent(final String eventName, final Method method,
|
||||||
sendUIEvent(action, method, realtime(), null);
|
final long timestamp, final String extras) {
|
||||||
|
Log.d(LOGTAG, "SendUIEvent: event = " + eventName + " method = " + method +
|
||||||
|
" timestamp = " + timestamp + " extras = " + extras);
|
||||||
|
final GeckoEvent geckoEvent = GeckoEvent.createTelemetryUIEvent(
|
||||||
|
eventName, method.toString(), timestamp, extras);
|
||||||
|
GeckoAppShell.sendEventToGecko(geckoEvent);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void sendUIEvent(String action) {
|
public static void sendUIEvent(final Event event, final Method method, final long timestamp,
|
||||||
sendUIEvent(action, null, realtime(), null);
|
final String extras) {
|
||||||
|
sendUIEvent(event.toString(), method, timestamp, extras);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void sendUIEvent(final Event event, final Method method, final long timestamp) {
|
||||||
|
sendUIEvent(event, method, timestamp, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void sendUIEvent(final Event event, final Method method, final String extras) {
|
||||||
|
sendUIEvent(event, method, realtime(), extras);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void sendUIEvent(final Event event, final Method method) {
|
||||||
|
sendUIEvent(event, method, realtime(), null);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void sendUIEvent(final Event event) {
|
||||||
|
sendUIEvent(event, Method.NONE, realtime(), null);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sends a UIEvent with the given status appended to the event name.
|
||||||
|
*
|
||||||
|
* This method is a slight bend of the Telemetry framework so chances
|
||||||
|
* are that you don't want to use this: please think really hard before you do.
|
||||||
|
*
|
||||||
|
* Intended for use with data policy notifications.
|
||||||
|
*/
|
||||||
|
public static void sendUIEvent(final Event event, final boolean eventStatus) {
|
||||||
|
final String eventName = event + ":" + eventStatus;
|
||||||
|
sendUIEvent(eventName, Method.NONE, realtime(), null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -5,11 +5,17 @@
|
|||||||
|
|
||||||
package org.mozilla.gecko;
|
package org.mozilla.gecko;
|
||||||
|
|
||||||
|
import org.mozilla.gecko.mozglue.RobocopTarget;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Holds data definitions for our UI Telemetry implementation.
|
* Holds data definitions for our UI Telemetry implementation.
|
||||||
*
|
*
|
||||||
|
* Note that enum values of "_TEST*" are reserved for testing and
|
||||||
|
* should not be changed without changing the associated tests.
|
||||||
|
*
|
||||||
* See mobile/android/base/docs/index.rst for a full dictionary.
|
* See mobile/android/base/docs/index.rst for a full dictionary.
|
||||||
*/
|
*/
|
||||||
|
@RobocopTarget
|
||||||
public interface TelemetryContract {
|
public interface TelemetryContract {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -18,52 +24,70 @@ public interface TelemetryContract {
|
|||||||
*
|
*
|
||||||
* Please keep this list sorted.
|
* Please keep this list sorted.
|
||||||
*/
|
*/
|
||||||
public interface Event {
|
public enum Event {
|
||||||
// Generic action, usually for tracking menu and toolbar actions.
|
// Generic action, usually for tracking menu and toolbar actions.
|
||||||
public static final String ACTION = "action.1";
|
ACTION("action.1"),
|
||||||
|
|
||||||
// Cancel a state, action, etc.
|
// Cancel a state, action, etc.
|
||||||
public static final String CANCEL = "cancel.1";
|
CANCEL("cancel.1"),
|
||||||
|
|
||||||
// Editing an item.
|
// Editing an item.
|
||||||
public static final String EDIT = "edit.1";
|
EDIT("edit.1"),
|
||||||
|
|
||||||
// Launching (opening) an external application.
|
// Launching (opening) an external application.
|
||||||
// Note: Only used in JavaScript for now, but here for completeness.
|
// Note: Only used in JavaScript for now, but here for completeness.
|
||||||
public static final String LAUNCH = "launch.1";
|
LAUNCH("launch.1"),
|
||||||
|
|
||||||
// Loading a URL.
|
// Loading a URL.
|
||||||
public static final String LOAD_URL = "loadurl.1";
|
LOAD_URL("loadurl.1"),
|
||||||
|
|
||||||
public static final String LOCALE_BROWSER_RESET = "locale.browser.reset.1";
|
LOCALE_BROWSER_RESET("locale.browser.reset.1"),
|
||||||
public static final String LOCALE_BROWSER_SELECTED = "locale.browser.selected.1";
|
LOCALE_BROWSER_SELECTED("locale.browser.selected.1"),
|
||||||
public static final String LOCALE_BROWSER_UNSELECTED = "locale.browser.unselected.1";
|
LOCALE_BROWSER_UNSELECTED("locale.browser.unselected.1"),
|
||||||
|
|
||||||
// Set default panel.
|
// Set default panel.
|
||||||
public static final String PANEL_SET_DEFAULT = "setdefault.1";
|
PANEL_SET_DEFAULT("setdefault.1"),
|
||||||
|
|
||||||
// Pinning an item.
|
// Pinning an item.
|
||||||
public static final String PIN = "pin.1";
|
PIN("pin.1"),
|
||||||
|
|
||||||
// Outcome of data policy notification: can be true or false.
|
// Outcome of data policy notification: can be true or false.
|
||||||
public static final String POLICY_NOTIFICATION_SUCCESS = "policynotification.success.1:";
|
POLICY_NOTIFICATION_SUCCESS("policynotification.success.1"),
|
||||||
|
|
||||||
// Sanitizing private data.
|
// Sanitizing private data.
|
||||||
public static final String SANITIZE = "sanitize.1";
|
SANITIZE("sanitize.1"),
|
||||||
|
|
||||||
// Saving a resource (reader, bookmark, etc) for viewing later.
|
// Saving a resource (reader, bookmark, etc) for viewing later.
|
||||||
// Note: Only used in JavaScript for now, but here for completeness.
|
// Note: Only used in JavaScript for now, but here for completeness.
|
||||||
public static final String SAVE = "save.1";
|
SAVE("save.1"),
|
||||||
|
|
||||||
// Sharing content.
|
// Sharing content.
|
||||||
public static final String SHARE = "share.1";
|
SHARE("share.1"),
|
||||||
|
|
||||||
// Unpinning an item.
|
// Unpinning an item.
|
||||||
public static final String UNPIN = "unpin.1";
|
UNPIN("unpin.1"),
|
||||||
|
|
||||||
// Stop holding a resource (reader, bookmark, etc) for viewing later.
|
// Stop holding a resource (reader, bookmark, etc) for viewing later.
|
||||||
// Note: Only used in JavaScript for now, but here for completeness.
|
// Note: Only used in JavaScript for now, but here for completeness.
|
||||||
public static final String UNSAVE = "unsave.1";
|
UNSAVE("unsave.1"),
|
||||||
|
|
||||||
|
// VALUES BELOW THIS LINE ARE EXCLUSIVE TO TESTING.
|
||||||
|
_TEST1("_test_event_1.1"),
|
||||||
|
_TEST2("_test_event_2.1"),
|
||||||
|
_TEST3("_test_event_3.1"),
|
||||||
|
_TEST4("_test_event_4.1"),
|
||||||
|
;
|
||||||
|
|
||||||
|
private final String string;
|
||||||
|
|
||||||
|
Event(final String string) {
|
||||||
|
this.string = string;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return string;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -72,43 +96,62 @@ public interface TelemetryContract {
|
|||||||
*
|
*
|
||||||
* Please keep this list sorted.
|
* Please keep this list sorted.
|
||||||
*/
|
*/
|
||||||
public interface Method {
|
public enum Method {
|
||||||
// Action triggered from the action bar (including the toolbar).
|
// Action triggered from the action bar (including the toolbar).
|
||||||
public static final String ACTIONBAR = "actionbar";
|
ACTIONBAR("actionbar"),
|
||||||
|
|
||||||
// Action triggered by hitting the Android back button.
|
// Action triggered by hitting the Android back button.
|
||||||
public static final String BACK = "back";
|
BACK("back"),
|
||||||
|
|
||||||
// Action triggered from a button.
|
// Action triggered from a button.
|
||||||
public static final String BUTTON = "button";
|
BUTTON("button"),
|
||||||
|
|
||||||
// Action occurred via a context menu.
|
// Action occurred via a context menu.
|
||||||
public static final String CONTEXT_MENU = "contextmenu";
|
CONTEXT_MENU("contextmenu"),
|
||||||
|
|
||||||
// Action triggered from a dialog.
|
// Action triggered from a dialog.
|
||||||
public static final String DIALOG = "dialog";
|
DIALOG("dialog"),
|
||||||
|
|
||||||
// Action triggered from a view grid item, like a thumbnail.
|
// Action triggered from a view grid item, like a thumbnail.
|
||||||
public static final String GRID_ITEM = "griditem";
|
GRID_ITEM("griditem"),
|
||||||
|
|
||||||
// Action occurred via an intent.
|
// Action occurred via an intent.
|
||||||
public static final String INTENT = "intent";
|
INTENT("intent"),
|
||||||
|
|
||||||
// Action triggered from a list.
|
// Action triggered from a list.
|
||||||
public static final String LIST = "list";
|
LIST("list"),
|
||||||
|
|
||||||
// Action triggered from a view list item, like a row of a list.
|
// Action triggered from a view list item, like a row of a list.
|
||||||
public static final String LIST_ITEM = "listitem";
|
LIST_ITEM("listitem"),
|
||||||
|
|
||||||
// Action occurred via the main menu.
|
// Action occurred via the main menu.
|
||||||
public static final String MENU = "menu";
|
MENU("menu"),
|
||||||
|
|
||||||
|
// No method is specified.
|
||||||
|
NONE(null),
|
||||||
|
|
||||||
// Action triggered from a pageaction in the URLBar.
|
// Action triggered from a pageaction in the URLBar.
|
||||||
// Note: Only used in JavaScript for now, but here for completeness.
|
// Note: Only used in JavaScript for now, but here for completeness.
|
||||||
public static final String PAGEACTION = "pageaction";
|
PAGEACTION("pageaction"),
|
||||||
|
|
||||||
// Action triggered from a suggestion provided to the user.
|
// Action triggered from a suggestion provided to the user.
|
||||||
public static final String SUGGESTION = "suggestion";
|
SUGGESTION("suggestion"),
|
||||||
|
|
||||||
|
// VALUES BELOW THIS LINE ARE EXCLUSIVE TO TESTING.
|
||||||
|
_TEST1("_test_method_1"),
|
||||||
|
_TEST2("_test_method_2"),
|
||||||
|
;
|
||||||
|
|
||||||
|
private final String string;
|
||||||
|
|
||||||
|
Method(final String string) {
|
||||||
|
this.string = string;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return string;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -117,26 +160,42 @@ public interface TelemetryContract {
|
|||||||
*
|
*
|
||||||
* Please keep this list sorted.
|
* Please keep this list sorted.
|
||||||
*/
|
*/
|
||||||
public interface Session {
|
public enum Session {
|
||||||
// Awesomescreen (including frecency search) is active.
|
// Awesomescreen (including frecency search) is active.
|
||||||
public static final String AWESOMESCREEN = "awesomescreen.1";
|
AWESOMESCREEN("awesomescreen.1"),
|
||||||
|
|
||||||
// Started the very first time we believe the application has been launched.
|
// Started the very first time we believe the application has been launched.
|
||||||
public static final String FIRSTRUN = "firstrun.1";
|
FIRSTRUN("firstrun.1"),
|
||||||
|
|
||||||
// Awesomescreen frecency search is active.
|
// Awesomescreen frecency search is active.
|
||||||
public static final String FRECENCY = "frecency.1";
|
FRECENCY("frecency.1"),
|
||||||
|
|
||||||
// Started when a user enters about:home.
|
// Started when a user enters about:home.
|
||||||
public static final String HOME = "home.1";
|
HOME("home.1"),
|
||||||
|
|
||||||
// Started when a user enters a given home panel.
|
// Started when a user enters a given home panel.
|
||||||
// Session name is dynamic, encoded as "homepanel.1:<panel_id>"
|
// Session name is dynamic, encoded as "homepanel.1:<panel_id>"
|
||||||
public static final String HOME_PANEL = "homepanel.1:";
|
HOME_PANEL("homepanel.1"),
|
||||||
|
|
||||||
// Started when a Reader viewer becomes active in the foreground.
|
// Started when a Reader viewer becomes active in the foreground.
|
||||||
// Note: Only used in JavaScript for now, but here for completeness.
|
// Note: Only used in JavaScript for now, but here for completeness.
|
||||||
public static final String READER = "reader.1";
|
READER("reader.1"),
|
||||||
|
|
||||||
|
// VALUES BELOW THIS LINE ARE EXCLUSIVE TO TESTING.
|
||||||
|
_TEST_STARTED_TWICE("_test_session_started_twice.1"),
|
||||||
|
_TEST_STOPPED_TWICE("_test_session_stopped_twice.1"),
|
||||||
|
;
|
||||||
|
|
||||||
|
private final String string;
|
||||||
|
|
||||||
|
Session(final String string) {
|
||||||
|
this.string = string;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return string;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -145,8 +204,28 @@ public interface TelemetryContract {
|
|||||||
*
|
*
|
||||||
* Please keep this list sorted.
|
* Please keep this list sorted.
|
||||||
*/
|
*/
|
||||||
public interface Reason {
|
public enum Reason {
|
||||||
// Changes were committed.
|
// Changes were committed.
|
||||||
public static final String COMMIT = "commit";
|
COMMIT("commit"),
|
||||||
|
|
||||||
|
// No reason is specified.
|
||||||
|
NONE(null),
|
||||||
|
|
||||||
|
// VALUES BELOW THIS LINE ARE EXCLUSIVE TO TESTING.
|
||||||
|
_TEST1("_test_reason_1"),
|
||||||
|
_TEST2("_test_reason_2"),
|
||||||
|
_TEST_IGNORED("_test_reason_ignored"),
|
||||||
|
;
|
||||||
|
|
||||||
|
private final String string;
|
||||||
|
|
||||||
|
Reason(final String string) {
|
||||||
|
this.string = string;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return string;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -53,7 +53,8 @@ public class HomePager extends ViewPager {
|
|||||||
private final Drawable mOriginalBackground;
|
private final Drawable mOriginalBackground;
|
||||||
|
|
||||||
// Telemetry session for current panel.
|
// Telemetry session for current panel.
|
||||||
private String mCurrentPanelSession;
|
private TelemetryContract.Session mCurrentPanelSession;
|
||||||
|
private String mCurrentPanelSessionSuffix;
|
||||||
|
|
||||||
// Current load state of HomePager.
|
// Current load state of HomePager.
|
||||||
private LoadState mLoadState;
|
private LoadState mLoadState;
|
||||||
@ -509,8 +510,9 @@ public class HomePager extends ViewPager {
|
|||||||
// Stop the current panel's session if we have one.
|
// Stop the current panel's session if we have one.
|
||||||
stopCurrentPanelTelemetrySession();
|
stopCurrentPanelTelemetrySession();
|
||||||
|
|
||||||
mCurrentPanelSession = TelemetryContract.Session.HOME_PANEL + panelId;
|
mCurrentPanelSession = TelemetryContract.Session.HOME_PANEL;
|
||||||
Telemetry.startUISession(mCurrentPanelSession);
|
mCurrentPanelSessionSuffix = panelId;
|
||||||
|
Telemetry.startUISession(mCurrentPanelSession, mCurrentPanelSessionSuffix);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -518,8 +520,9 @@ public class HomePager extends ViewPager {
|
|||||||
*/
|
*/
|
||||||
private void stopCurrentPanelTelemetrySession() {
|
private void stopCurrentPanelTelemetrySession() {
|
||||||
if (mCurrentPanelSession != null) {
|
if (mCurrentPanelSession != null) {
|
||||||
Telemetry.stopUISession(mCurrentPanelSession);
|
Telemetry.stopUISession(mCurrentPanelSession, mCurrentPanelSessionSuffix);
|
||||||
mCurrentPanelSession = null;
|
mCurrentPanelSession = null;
|
||||||
|
mCurrentPanelSessionSuffix = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -113,7 +113,7 @@ public class TopSitesGridView extends GridView {
|
|||||||
// If not, navigate to the page given by the url.
|
// If not, navigate to the page given by the url.
|
||||||
if (type != TopSites.TYPE_BLANK) {
|
if (type != TopSites.TYPE_BLANK) {
|
||||||
if (mUrlOpenListener != null) {
|
if (mUrlOpenListener != null) {
|
||||||
final String method;
|
final TelemetryContract.Method method;
|
||||||
if (type == TopSites.TYPE_SUGGESTED) {
|
if (type == TopSites.TYPE_SUGGESTED) {
|
||||||
method = TelemetryContract.Method.SUGGESTION;
|
method = TelemetryContract.Method.SUGGESTION;
|
||||||
} else {
|
} else {
|
||||||
|
@ -51,4 +51,36 @@
|
|||||||
<item name="android:paddingTop">30dp</item>
|
<item name="android:paddingTop">30dp</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
<!-- Remote tabs panel -->
|
||||||
|
<style name="RemoteTabsPanelChild" parent="RemoteTabsPanelChildBase">
|
||||||
|
<item name="android:paddingTop">32dp</item>
|
||||||
|
<!-- Additional spacing set via margins on RemoteTabsSection. -->
|
||||||
|
<item name="android:paddingLeft">0dp</item>
|
||||||
|
<item name="android:paddingRight">0dp</item>
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<style name="RemoteTabsSection" parent="RemoteTabsSectionBase">
|
||||||
|
<!-- To override the values-land style. -->
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<style name="RemoteTabsItem" parent="RemoteTabsItemBase">
|
||||||
|
<!-- To override the values-land style. -->
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<style name="RemoteTabsItem.Button" parent="RemoteTabsItem.ButtonBase">
|
||||||
|
<item name="android:paddingTop">12dp</item>
|
||||||
|
<item name="android:paddingBottom">12dp</item>
|
||||||
|
<item name="android:paddingLeft">36dp</item>
|
||||||
|
<item name="android:paddingRight">36dp</item>
|
||||||
|
<item name="android:textSize">16dp</item>
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<style name="RemoteTabsItem.TextAppearance.Header.FXAccounts">
|
||||||
|
<item name="android:visibility">gone</item>
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<style name="RemoteTabsItem.TextAppearance.Linkified.Resend">
|
||||||
|
<item name="android:layout_height">wrap_content</item>
|
||||||
|
</style>
|
||||||
|
|
||||||
</resources>
|
</resources>
|
||||||
|
@ -452,11 +452,12 @@
|
|||||||
<style name="RemoteTabsPanelChildBase">
|
<style name="RemoteTabsPanelChildBase">
|
||||||
<item name="android:paddingLeft">16dp</item>
|
<item name="android:paddingLeft">16dp</item>
|
||||||
<item name="android:paddingRight">16dp</item>
|
<item name="android:paddingRight">16dp</item>
|
||||||
|
<item name="android:paddingTop">62dp</item>
|
||||||
|
<item name="android:orientation">vertical</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<style name="RemoteTabsPanelChild" parent="RemoteTabsPanelChildBase">
|
<style name="RemoteTabsPanelChild" parent="RemoteTabsPanelChildBase">
|
||||||
<item name="android:orientation">vertical</item>
|
<!-- We set values in landscape. -->
|
||||||
<item name="android:paddingTop">62dp</item>
|
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<style name="RemoteTabsSectionBase">
|
<style name="RemoteTabsSectionBase">
|
||||||
@ -469,16 +470,16 @@
|
|||||||
<!-- We set values in landscape. -->
|
<!-- We set values in landscape. -->
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<style name="RemoteTabsSection.Resend" parent="RemoteTabsSectionBase">
|
<style name="RemoteTabsItemBase">
|
||||||
<!-- We set values in landscape. -->
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<style name="RemoteTabsItem">
|
|
||||||
<item name="android:layout_marginBottom">28dp</item>
|
<item name="android:layout_marginBottom">28dp</item>
|
||||||
<item name="android:layout_gravity">center</item>
|
<item name="android:layout_gravity">center</item>
|
||||||
<item name="android:gravity">center</item>
|
<item name="android:gravity">center</item>
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
|
<style name="RemoteTabsItem" parent="RemoteTabsItemBase">
|
||||||
|
<!-- We set values in landscape. -->
|
||||||
|
</style>
|
||||||
|
|
||||||
<style name="RemoteTabsItem.ButtonBase">
|
<style name="RemoteTabsItem.ButtonBase">
|
||||||
<item name="android:background">@drawable/remote_tabs_setup_button_background</item>
|
<item name="android:background">@drawable/remote_tabs_setup_button_background</item>
|
||||||
<item name="android:textColor">#FFFEFF</item>
|
<item name="android:textColor">#FFFEFF</item>
|
||||||
|
@ -10,6 +10,7 @@ import android.database.sqlite.SQLiteDatabase;
|
|||||||
import android.database.sqlite.SQLiteException;
|
import android.database.sqlite.SQLiteException;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
import org.mozilla.gecko.mozglue.RobocopTarget;
|
import org.mozilla.gecko.mozglue.RobocopTarget;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
@ -26,8 +27,9 @@ public class SQLiteBridge {
|
|||||||
|
|
||||||
// Path to the database. If this database was not opened with openDatabase, we reopen it every query.
|
// Path to the database. If this database was not opened with openDatabase, we reopen it every query.
|
||||||
private String mDb;
|
private String mDb;
|
||||||
// pointer to the database if it was opened with openDatabase
|
|
||||||
protected long mDbPointer = 0;
|
// Pointer to the database if it was opened with openDatabase. 0 implies closed.
|
||||||
|
protected volatile long mDbPointer = 0L;
|
||||||
|
|
||||||
// Values remembered after a query.
|
// Values remembered after a query.
|
||||||
private long[] mQueryResults;
|
private long[] mQueryResults;
|
||||||
@ -38,6 +40,12 @@ public class SQLiteBridge {
|
|||||||
private static final int RESULT_INSERT_ROW_ID = 0;
|
private static final int RESULT_INSERT_ROW_ID = 0;
|
||||||
private static final int RESULT_ROWS_CHANGED = 1;
|
private static final int RESULT_ROWS_CHANGED = 1;
|
||||||
|
|
||||||
|
// Shamelessly cribbed from db/sqlite3/src/moz.build.
|
||||||
|
private static final int DEFAULT_PAGE_SIZE_BYTES = 32768;
|
||||||
|
|
||||||
|
// The same size we use elsewhere.
|
||||||
|
private static final int MAX_WAL_SIZE_BYTES = 524288;
|
||||||
|
|
||||||
// JNI code in $(topdir)/mozglue/android/..
|
// JNI code in $(topdir)/mozglue/android/..
|
||||||
private static native MatrixBlobCursor sqliteCall(String aDb, String aQuery,
|
private static native MatrixBlobCursor sqliteCall(String aDb, String aQuery,
|
||||||
String[] aParams,
|
String[] aParams,
|
||||||
@ -254,9 +262,12 @@ public class SQLiteBridge {
|
|||||||
bridge = new SQLiteBridge(path);
|
bridge = new SQLiteBridge(path);
|
||||||
bridge.mDbPointer = SQLiteBridge.openDatabase(path);
|
bridge.mDbPointer = SQLiteBridge.openDatabase(path);
|
||||||
} catch (SQLiteBridgeException ex) {
|
} catch (SQLiteBridgeException ex) {
|
||||||
// catch and rethrow as a SQLiteException to match SQLiteDatabase
|
// Catch and rethrow as a SQLiteException to match SQLiteDatabase.
|
||||||
throw new SQLiteException(ex.getMessage());
|
throw new SQLiteException(ex.getMessage());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
prepareWAL(bridge);
|
||||||
|
|
||||||
return bridge;
|
return bridge;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -264,11 +275,11 @@ public class SQLiteBridge {
|
|||||||
if (isOpen()) {
|
if (isOpen()) {
|
||||||
closeDatabase(mDbPointer);
|
closeDatabase(mDbPointer);
|
||||||
}
|
}
|
||||||
mDbPointer = 0;
|
mDbPointer = 0L;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isOpen() {
|
public boolean isOpen() {
|
||||||
return mDbPointer > 0;
|
return mDbPointer != 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void beginTransaction() throws SQLiteBridgeException {
|
public void beginTransaction() throws SQLiteBridgeException {
|
||||||
@ -324,4 +335,50 @@ public class SQLiteBridge {
|
|||||||
close();
|
close();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static void prepareWAL(final SQLiteBridge bridge) {
|
||||||
|
// Prepare for WAL mode. If we can, we switch to journal_mode=WAL, then
|
||||||
|
// set the checkpoint size appropriately. If we can't, then we fall back
|
||||||
|
// to truncating and synchronous writes.
|
||||||
|
final Cursor cursor = bridge.internalQuery("PRAGMA journal_mode=WAL", null);
|
||||||
|
try {
|
||||||
|
if (cursor.moveToFirst()) {
|
||||||
|
String journalMode = cursor.getString(0);
|
||||||
|
Log.d(LOGTAG, "Journal mode: " + journalMode);
|
||||||
|
if ("wal".equals(journalMode)) {
|
||||||
|
// Success! Let's make sure we autocheckpoint at a reasonable interval.
|
||||||
|
final int pageSizeBytes = bridge.getPageSizeBytes();
|
||||||
|
final int checkpointPageCount = MAX_WAL_SIZE_BYTES / pageSizeBytes;
|
||||||
|
bridge.internalQuery("PRAGMA wal_autocheckpoint=" + checkpointPageCount, null).close();
|
||||||
|
} else {
|
||||||
|
if (!"truncate".equals(journalMode)) {
|
||||||
|
Log.w(LOGTAG, "Unable to activate WAL journal mode. Using truncate instead.");
|
||||||
|
bridge.internalQuery("PRAGMA journal_mode=TRUNCATE", null).close();
|
||||||
|
}
|
||||||
|
Log.w(LOGTAG, "Not using WAL mode: using synchronous=FULL instead.");
|
||||||
|
bridge.internalQuery("PRAGMA synchronous=FULL", null).close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} finally {
|
||||||
|
cursor.close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private int getPageSizeBytes() {
|
||||||
|
if (!isOpen()) {
|
||||||
|
throw new IllegalStateException("Database not open.");
|
||||||
|
}
|
||||||
|
|
||||||
|
final Cursor cursor = internalQuery("PRAGMA page_size", null);
|
||||||
|
try {
|
||||||
|
if (!cursor.moveToFirst()) {
|
||||||
|
Log.w(LOGTAG, "Unable to retrieve page size.");
|
||||||
|
return DEFAULT_PAGE_SIZE_BYTES;
|
||||||
|
}
|
||||||
|
|
||||||
|
return cursor.getInt(0);
|
||||||
|
} finally {
|
||||||
|
cursor.close();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -70,7 +70,7 @@ class RemoteTabsList extends ExpandableListView
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
Telemetry.sendUIEvent(TelemetryContract.Event.LOAD_URL, "", "remote");
|
Telemetry.sendUIEvent(TelemetryContract.Event.LOAD_URL, TelemetryContract.Method.NONE, "remote");
|
||||||
|
|
||||||
Tabs.getInstance().loadUrl(tab.get("url"), Tabs.LOADURL_NEW_TAB);
|
Tabs.getInstance().loadUrl(tab.get("url"), Tabs.LOADURL_NEW_TAB);
|
||||||
autoHidePanel();
|
autoHidePanel();
|
||||||
|
@ -11,7 +11,6 @@ import org.mozilla.gecko.Tabs;
|
|||||||
import org.mozilla.gecko.fxa.FirefoxAccounts;
|
import org.mozilla.gecko.fxa.FirefoxAccounts;
|
||||||
import org.mozilla.gecko.fxa.activities.FxAccountCreateAccountActivity;
|
import org.mozilla.gecko.fxa.activities.FxAccountCreateAccountActivity;
|
||||||
import org.mozilla.gecko.tabspanel.TabsPanel.PanelView;
|
import org.mozilla.gecko.tabspanel.TabsPanel.PanelView;
|
||||||
import org.mozilla.gecko.util.HardwareUtils;
|
|
||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.Intent;
|
import android.content.Intent;
|
||||||
@ -69,11 +68,6 @@ class RemoteTabsSetupPanel extends LinearLayout implements PanelView {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void show() {
|
public void show() {
|
||||||
// We don't have a tablet implementation of this panel.
|
|
||||||
if (HardwareUtils.isTablet()) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
setVisibility(View.VISIBLE);
|
setVisibility(View.VISIBLE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|