- Revision
- 122557
- Author
- [email protected]
- Date
- 2012-07-13 03:21:04 -0700 (Fri, 13 Jul 2012)
Log Message
Web Inspector: mute the native looks of the selects in the console.
https://bugs.webkit.org/show_bug.cgi?id=91120
Reviewed by Vsevolod Vlasov.
This is necessary for Mac now that we don't use border images for select.
* inspector/front-end/ConsoleView.js:
(WebInspector.ConsoleView.prototype.get statusBarItems):
(WebInspector.ConsoleView.prototype.addContext):
(WebInspector.ConsoleView.prototype.removeContext):
(WebInspector.ConsoleView.prototype._updateIsolatedWorldSelector):
(WebInspector.ConsoleView.prototype._appendIsolatedContextOption):
(WebInspector.ConsoleView.prototype._currentEvaluationContext):
(WebInspector.ConsoleView.prototype._currentIsolatedContextId):
* inspector/front-end/StatusBarButton.js:
(WebInspector.StatusBarComboBox):
(WebInspector.StatusBarComboBox.prototype.addOption):
(WebInspector.StatusBarComboBox.prototype.removeOption):
(WebInspector.StatusBarComboBox.prototype.removeOptions):
(WebInspector.StatusBarComboBox.prototype.selectedOption):
* inspector/front-end/inspector.css:
(.status-bar-select-container):
(select.status-bar-item):
(.console-context):
Modified Paths
Diff
Modified: trunk/LayoutTests/http/tests/inspector/console-cd-completions.html (122556 => 122557)
--- trunk/LayoutTests/http/tests/inspector/console-cd-completions.html 2012-07-13 10:01:38 UTC (rev 122556)
+++ trunk/LayoutTests/http/tests/inspector/console-cd-completions.html 2012-07-13 10:21:04 UTC (rev 122557)
@@ -7,7 +7,7 @@
function test()
{
InspectorTest.showConsolePanel();
- var selector = WebInspector.consoleView._contextSelectElement;
+ var selector = WebInspector.consoleView._contextSelector._selectElement;
var option = selector.firstChild;
while (option) {
if (option.textContent && option.textContent.indexOf("myIFrame") === 0)
Modified: trunk/LayoutTests/http/tests/inspector/console-cd.html (122556 => 122557)
--- trunk/LayoutTests/http/tests/inspector/console-cd.html 2012-07-13 10:01:38 UTC (rev 122556)
+++ trunk/LayoutTests/http/tests/inspector/console-cd.html 2012-07-13 10:21:04 UTC (rev 122557)
@@ -8,7 +8,7 @@
function test()
{
InspectorTest.showConsolePanel();
- var selector = WebInspector.consoleView._contextSelectElement;
+ var selector = WebInspector.consoleView._contextSelector._selectElement;
var option = selector.firstChild;
while (option) {
if (option.textContent && option.textContent.indexOf("myIFrame") === 0)
Modified: trunk/Source/WebCore/ChangeLog (122556 => 122557)
--- trunk/Source/WebCore/ChangeLog 2012-07-13 10:01:38 UTC (rev 122556)
+++ trunk/Source/WebCore/ChangeLog 2012-07-13 10:21:04 UTC (rev 122557)
@@ -1,3 +1,31 @@
+2012-07-12 Pavel Feldman <[email protected]>
+
+ Web Inspector: mute the native looks of the selects in the console.
+ https://bugs.webkit.org/show_bug.cgi?id=91120
+
+ Reviewed by Vsevolod Vlasov.
+
+ This is necessary for Mac now that we don't use border images for select.
+
+ * inspector/front-end/ConsoleView.js:
+ (WebInspector.ConsoleView.prototype.get statusBarItems):
+ (WebInspector.ConsoleView.prototype.addContext):
+ (WebInspector.ConsoleView.prototype.removeContext):
+ (WebInspector.ConsoleView.prototype._updateIsolatedWorldSelector):
+ (WebInspector.ConsoleView.prototype._appendIsolatedContextOption):
+ (WebInspector.ConsoleView.prototype._currentEvaluationContext):
+ (WebInspector.ConsoleView.prototype._currentIsolatedContextId):
+ * inspector/front-end/StatusBarButton.js:
+ (WebInspector.StatusBarComboBox):
+ (WebInspector.StatusBarComboBox.prototype.addOption):
+ (WebInspector.StatusBarComboBox.prototype.removeOption):
+ (WebInspector.StatusBarComboBox.prototype.removeOptions):
+ (WebInspector.StatusBarComboBox.prototype.selectedOption):
+ * inspector/front-end/inspector.css:
+ (.status-bar-select-container):
+ (select.status-bar-item):
+ (.console-context):
+
2012-07-13 Andrei Bucur <[email protected]>
[CSS Regions] Fix the lifecycle for the flow objects and their renderers
Modified: trunk/Source/WebCore/inspector/front-end/ConsoleView.js (122556 => 122557)
--- trunk/Source/WebCore/inspector/front-end/ConsoleView.js 2012-07-13 10:01:38 UTC (rev 122556)
+++ trunk/Source/WebCore/inspector/front-end/ConsoleView.js 2012-07-13 10:21:04 UTC (rev 122557)
@@ -44,18 +44,12 @@
this._clearConsoleButton = new WebInspector.StatusBarButton(WebInspector.UIString("Clear console log."), "clear-status-bar-item");
this._clearConsoleButton.addEventListener("click", this._requestClearMessages, this);
- this._contextSelectElement = document.createElement("select");
- this._contextSelectElement.id = "console-context";
- this._contextSelectElement.className = "status-bar-item";
- this._contextSelectElement.addEventListener("change", this._updateIsolatedWorldSelector.bind(this), false);
+ this._contextSelector = new WebInspector.StatusBarComboBox(this._updateIsolatedWorldSelector.bind(this), "console-context");
+ this._isolatedWorldSelector = new WebInspector.StatusBarComboBox(null, "console-context");
- this._isolatedWorldSelectElement = document.createElement("select");
- this._isolatedWorldSelectElement.id = "console-context";
- this._isolatedWorldSelectElement.className = "status-bar-item";
-
if (hideContextSelector) {
- this._contextSelectElement.addStyleClass("hidden");
- this._isolatedWorldSelectElement.addStyleClass("hidden");
+ this._contextSelector.element.addStyleClass("hidden");
+ this._isolatedWorldSelector.element.addStyleClass("hidden");
}
this.messagesElement = document.createElement("div");
@@ -134,7 +128,7 @@
WebInspector.ConsoleView.prototype = {
get statusBarItems()
{
- return [this._clearConsoleButton.element, this._contextSelectElement, this._isolatedWorldSelectElement, this._filterBarElement];
+ return [this._clearConsoleButton.element, this._contextSelector.element, this._isolatedWorldSelector.element, this._filterBarElement];
},
addContext: function(context)
@@ -144,7 +138,7 @@
option.title = context.url;
option._context = context;
context._consoleOption = option;
- this._contextSelectElement.appendChild(option);
+ this._contextSelector.addOption(option);
context.addEventListener(WebInspector.FrameEvaluationContext.EventTypes.Updated, this._contextUpdated, this);
context.addEventListener(WebInspector.FrameEvaluationContext.EventTypes.AddedExecutionContext, this._addedExecutionContext, this);
this._updateIsolatedWorldSelector();
@@ -152,7 +146,7 @@
removeContext: function(context)
{
- this._contextSelectElement.removeChild(context._consoleOption);
+ this._contextSelector.removeOption(context._consoleOption);
this._updateIsolatedWorldSelector();
},
@@ -160,17 +154,17 @@
{
var context = this._currentEvaluationContext();
if (!context) {
- this._isolatedWorldSelectElement.addStyleClass("hidden");
+ this._isolatedWorldSelector.element.addStyleClass("hidden");
return;
}
var isolatedContexts = context.isolatedContexts();
if (!isolatedContexts.length) {
- this._isolatedWorldSelectElement.addStyleClass("hidden");
+ this._isolatedWorldSelector.element.addStyleClass("hidden");
return;
}
- this._isolatedWorldSelectElement.removeStyleClass("hidden");
- this._isolatedWorldSelectElement.removeChildren();
+ this._isolatedWorldSelector.element.removeStyleClass("hidden");
+ this._isolatedWorldSelector.removeOptions();
this._appendIsolatedContextOption(context.mainWorldContext());
for (var i = 0; i < isolatedContexts.length; i++)
this._appendIsolatedContextOption(isolatedContexts[i]);
@@ -184,7 +178,7 @@
option.text = isolatedContext.name;
option.title = isolatedContext.id;
option._executionContextId = isolatedContext.id;
- this._isolatedWorldSelectElement.appendChild(option);
+ this._isolatedWorldSelector.addOption(option);
},
_contextUpdated: function(event)
@@ -215,18 +209,20 @@
_currentEvaluationContext: function()
{
- if (this._contextSelectElement.selectedIndex === -1)
+ var option = this._contextSelector.selectedOption();
+ if (!option)
return undefined;
- return this._contextSelectElement[this._contextSelectElement.selectedIndex]._context;
+ return option._context;
},
_currentIsolatedContextId: function()
{
- if (this._isolatedWorldSelectElement.hasStyleClass("hidden"))
+ if (this._isolatedWorldSelector.element.hasStyleClass("hidden"))
return undefined;
- if (this._isolatedWorldSelectElement.selectedIndex === -1)
+ var option = this._isolatedWorldSelector.selectedOption();
+ if (!option)
return undefined;
- return this._isolatedWorldSelectElement[this._isolatedWorldSelectElement.selectedIndex]._executionContextId;
+ return option._executionContextId;
},
_updateFilter: function(e)
Modified: trunk/Source/WebCore/inspector/front-end/StatusBarButton.js (122556 => 122557)
--- trunk/Source/WebCore/inspector/front-end/StatusBarButton.js 2012-07-13 10:01:38 UTC (rev 122556)
+++ trunk/Source/WebCore/inspector/front-end/StatusBarButton.js 2012-07-13 10:21:04 UTC (rev 122557)
@@ -241,3 +241,53 @@
}
WebInspector.StatusBarButton.prototype.__proto__ = WebInspector.Object.prototype;
+
+/**
+ * @constructor
+ * @param {?function(Event)} changeHandler
+ * @param {string=} className
+ */
+WebInspector.StatusBarComboBox = function(changeHandler, className)
+{
+ this.element = document.createElement("span");
+ this.element.className = "status-bar-select-container";
+
+ this._selectElement = this.element.createChild("select", "status-bar-item");
+ if (changeHandler)
+ this._selectElement.addEventListener("change", changeHandler, false);
+ if (className)
+ this._selectElement.addStyleClass(className);
+}
+
+WebInspector.StatusBarComboBox.prototype = {
+ /**
+ * @param {Element} option
+ */
+ addOption: function(option)
+ {
+ this._selectElement.appendChild(option);
+ },
+
+ /**
+ * @param {Element} option
+ */
+ removeOption: function(option)
+ {
+ this._selectElement.removeChild(option);
+ },
+
+ removeOptions: function()
+ {
+ this._selectElement.removeChildren();
+ },
+
+ /**
+ * @return {?Element}
+ */
+ selectedOption: function()
+ {
+ if (this._selectElement.selectedIndex >= 0)
+ return this._selectElement[this._selectElement.selectedIndex];
+ return null;
+ }
+}
Modified: trunk/Source/WebCore/inspector/front-end/inspector.css (122556 => 122557)
--- trunk/Source/WebCore/inspector/front-end/inspector.css 2012-07-13 10:01:38 UTC (rev 122556)
+++ trunk/Source/WebCore/inspector/front-end/inspector.css 2012-07-13 10:21:04 UTC (rev 122557)
@@ -591,11 +591,28 @@
background-color: auto;
}
+.status-bar-select-container {
+ display: inline-block;
+ background-image: url(Images/disclosureTriangleSmallDown.png);
+ background-repeat: no-repeat;
+ background-position-x: right;
+ background-position-y: 6px;
+ padding-right: 10px;
+ border-right: 5px solid transparent;
+}
+
select.status-bar-item {
min-width: 48px;
font-weight: bold;
color: rgb(48, 48, 48);
text-shadow: rgba(255, 255, 255, 0.75) 0 1px 0;
+ -webkit-appearance: none;
+ border: 0;
+ border-radius: 0;
+ padding: 0 15px 0 5px;
+ margin-right: -15px;
+ position: relative;
+ top: -1px;
}
select.status-bar-item, select.status-bar-item:hover {
@@ -2811,7 +2828,7 @@
border-width: 0 0 11px 0;
}
-#console-context {
+.console-context {
max-width: 200px;
}