Chromium Code Reviews| Index: Source/devtools/front_end/ScreencastView.js |
| diff --git a/Source/devtools/front_end/ScreencastView.js b/Source/devtools/front_end/ScreencastView.js |
| index 2b33ee0f3c59d10b2e9259c2e4c3439d0710dbd2..d4134a20b628829fc7bcf19669c4b2433fec3ddc 100644 |
| --- a/Source/devtools/front_end/ScreencastView.js |
| +++ b/Source/devtools/front_end/ScreencastView.js |
| @@ -40,6 +40,9 @@ WebInspector.ScreencastView = function() |
| this.element.addStyleClass("fill"); |
| this.element.addStyleClass("screencast"); |
| + |
| + this._createNavigationBar(); |
| + |
| this._viewportElement = this.element.createChild("div", "screencast-viewport hidden"); |
| this._canvasElement = this._viewportElement.createChild("canvas"); |
| this._canvasElement.tabIndex = 1; |
| @@ -74,6 +77,8 @@ WebInspector.ScreencastView = function() |
| WebInspector.ScreencastView._bordersSize = 40; |
| +WebInspector.ScreencastView.HTTP_REGEXP = /^https?:\/\/(.+)/; |
|
pfeldman
2013/09/05 11:34:13
HttpRegex
Vladislav Kaznacheev
2013/09/05 12:53:55
Renamed to _HttpRegex
On 2013/09/05 11:34:13, pfe
|
| + |
| WebInspector.ScreencastView.prototype = { |
| wasShown: function() |
| { |
| @@ -619,5 +624,78 @@ WebInspector.ScreencastView.prototype = { |
| return context.createPattern(pattern, "repeat"); |
| }, |
| + _createNavigationBar: function() |
| + { |
| + this._navigationBar = this.element.createChild("div", "screencast-navigation"); |
| + |
| + this._navigationBack = this._navigationBar.createChild("button"); |
| + this._navigationBack.textContent = "\u21E6"; // Back arrow. |
| + this._navigationBack.disabled = true; |
| + this._navigationBack.addEventListener("click", this._navigateToHistoryEntry.bind(this, -1), false); |
| + |
| + this._navigationForward = this._navigationBar.createChild("button"); |
| + this._navigationForward.textContent = "\u21E8"; // Forward arrow. |
| + this._navigationForward.disabled = true; |
| + this._navigationForward.addEventListener("click", this._navigateToHistoryEntry.bind(this, 1), false); |
| + |
| + this._navigationReload = this._navigationBar.createChild("button"); |
| + this._navigationReload.textContent = "\u21BB"; // Circle arrow. |
| + this._navigationReload.addEventListener("click", this._navigateReload.bind(this), false); |
| + |
| + this._navigationUrl = this._navigationBar.createChild("input"); |
| + this._navigationUrl.type = "text"; |
| + this._navigationUrl.addEventListener('keyup', this._navigationUrlKeyUp.bind(this), true); |
| + |
| + this._requestNavigationHistory(); |
| + WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.InspectedURLChanged, this._requestNavigationHistory, this); |
| + }, |
| + |
| + _navigateToHistoryEntry: function(offset) |
| + { |
| + PageAgent.navigateToHistoryEntry(this._currentHistoryIndex + offset); |
| + this._requestNavigationHistory(); |
| + }, |
| + |
| + _navigateReload: function() |
| + { |
| + PageAgent.reload(); |
| + }, |
| + |
| + _navigationUrlKeyUp: function(event) |
| + { |
| + if (event.keyIdentifier != 'Enter') |
| + return; |
| + var url = this._navigationUrl.value; |
| + if (!url) |
| + return; |
| + if (!url.match(WebInspector.ScreencastView.HTTP_REGEXP)) |
| + url = "http://" + url; |
| + PageAgent.navigate(url); |
| + }, |
| + |
| + _requestNavigationHistory: function() |
| + { |
| + PageAgent.getNavigationHistory(this._onNavigationHistory.bind(this)); |
| + }, |
| + |
| + _onNavigationHistory: function(error, currentIndex, entries) |
| + { |
| + if (error) { |
| + this._navigationBack.hidden = true; |
| + this._navigationForward.hidden = true; |
| + return; |
| + } |
| + |
| + this._currentHistoryIndex = currentIndex; |
| + this._navigationBack.disabled = currentIndex == 0; |
| + this._navigationForward.disabled = currentIndex == (entries.length - 1); |
| + |
| + var url = entries[currentIndex].url; |
| + var match = url.match(WebInspector.ScreencastView.HTTP_REGEXP); |
| + if (match) |
| + url = match[1]; |
| + this._navigationUrl.value = url; |
| + }, |
| + |
| __proto__: WebInspector.View.prototype |
| } |