Loading browser/base/content/browser-menubar.inc +9 −0 Original line number Diff line number Diff line Loading @@ -518,6 +518,15 @@ accesskey="&pageSourceCmd.accesskey;"> <observes element="canViewSource" attribute="disabled"/> </menuitem> <menuitem id="menu_devtools_recordExecution" observes="devtoolsMenuBroadcaster_RecordExecution" hidden="true"/> <menuitem id="menu_devtools_saveRecording" observes="devtoolsMenuBroadcaster_SaveRecording" hidden="true"/> <menuitem id="menu_devtools_replayExecution" observes="devtoolsMenuBroadcaster_ReplayExecution" hidden="true"/> </menupopup> </menu> <menuitem id="menu_pageInfo" Loading browser/base/content/browser-sets.inc +12 −0 Original line number Diff line number Diff line Loading @@ -98,6 +98,9 @@ <command id="Tools:Downloads" oncommand="BrowserDownloadsUI();"/> <command id="Tools:Addons" oncommand="BrowserOpenAddonsMgr();"/> <command id="Tools:Sanitize" oncommand="Sanitizer.showUI(window);"/> <command id="Tools:RecordExecution" oncommand="BeginRecordExecution()"/> <command id="Tools:SaveRecording" oncommand="SaveRecordedExecution()"/> <command id="Tools:ReplayExecution" oncommand="BeginReplayExecution()"/> <command id="Tools:PrivateBrowsing" oncommand="OpenBrowserWindow({private: true});"/> <command id="History:UndoCloseTab" oncommand="undoCloseTab();"/> Loading Loading @@ -153,6 +156,15 @@ sidebarurl="chrome://browser/content/syncedtabs/sidebar.xhtml" oncommand="SidebarUI.toggle('viewTabsSidebar');"/> <broadcaster id="workOfflineMenuitemState"/> <broadcaster id="devtoolsMenuBroadcaster_RecordExecution" label="&devtoolsRecordExecution.label;" command="Tools:RecordExecution"/> <broadcaster id="devtoolsMenuBroadcaster_SaveRecording" label="&devtoolsSaveRecording.label;" command="Tools:SaveRecording"/> <broadcaster id="devtoolsMenuBroadcaster_ReplayExecution" label="&devtoolsReplayExecution.label;" command="Tools:ReplayExecution"/> </broadcasterset> <keyset id="mainKeyset"> Loading browser/base/content/browser.js +29 −0 Original line number Diff line number Diff line Loading @@ -7124,6 +7124,35 @@ function BrowserOpenAddonsMgr(aView) { }); } function BeginRecordExecution() { gBrowser.selectedTab = gBrowser.addTab("about:blank", { recordExecution: "*" }); } function SaveRecordedExecution() { let fp = Cc["@mozilla.org/filepicker;1"].createInstance(Ci.nsIFilePicker); let window = gBrowser.ownerGlobal; fp.init(window, null, Ci.nsIFilePicker.modeSave); fp.open(rv => { if (rv == Ci.nsIFilePicker.returnOK || rv == Ci.nsIFilePicker.returnReplace) { var tabParent = gBrowser.selectedTab.linkedBrowser.frameLoader.tabParent; if (!tabParent || !tabParent.saveRecording(fp.file.path)) { window.alert("Current tab is not recording"); } } }); } function BeginReplayExecution() { let fp = Cc["@mozilla.org/filepicker;1"].createInstance(Ci.nsIFilePicker); let window = gBrowser.ownerGlobal; fp.init(window, null, Ci.nsIFilePicker.modeOpen); fp.open(rv => { if (rv == Ci.nsIFilePicker.returnOK || rv == Ci.nsIFilePicker.returnReplace) { gBrowser.selectedTab = gBrowser.addTab(null, { replayExecution: fp.file.path }); } }); } function AddKeywordForSearchField() { let mm = gBrowser.selectedBrowser.messageManager; Loading browser/base/content/tabbrowser.js +19 −2 Original line number Diff line number Diff line Loading @@ -1778,7 +1778,8 @@ window._gBrowser = { _createBrowser(aParams) { // Supported parameters: // userContextId, remote, remoteType, isPreloadBrowser, // uriIsAboutBlank, sameProcessAsFrameLoader // uriIsAboutBlank, sameProcessAsFrameLoader, // recordExecution, replayExecution let b = document.createElementNS(this._XUL_NS, "browser"); b.permanentKey = {}; Loading @@ -1801,6 +1802,16 @@ window._gBrowser = { b.setAttribute("remote", "true"); } let recordExecution = aParams && aParams.recordExecution; if (recordExecution) { b.setAttribute("recordExecution", recordExecution); } let replayExecution = aParams && aParams.replayExecution; if (replayExecution) { b.setAttribute("replayExecution", replayExecution); } if (aParams.openerWindow) { if (aParams.remoteType) { throw new Error("Cannot set opener window on a remote browser!"); Loading Loading @@ -2152,6 +2163,8 @@ window._gBrowser = { skipBackgroundNotify, triggeringPrincipal, userContextId, recordExecution, replayExecution, } = {}) { // if we're adding tabs, we're past interrupt mode, ditch the owner if (this.selectedTab.owner) { Loading Loading @@ -2331,7 +2344,9 @@ window._gBrowser = { // icon for the tab would be set incorrectly (see bug 1195981). if (aURI == BROWSER_NEW_TAB_URL && !userContextId && !PrivateBrowsingUtils.isWindowPrivate(window)) { !PrivateBrowsingUtils.isWindowPrivate(window) && !recordExecution && !replayExecution) { b = this._getPreloadedBrowser(); if (b) { usingPreloadedContent = true; Loading @@ -2348,6 +2363,8 @@ window._gBrowser = { openerWindow: opener, nextTabParentId, name, recordExecution, replayExecution, }); } Loading browser/locales/en-US/chrome/browser/browser.dtd +4 −0 Original line number Diff line number Diff line Loading @@ -312,6 +312,10 @@ These should match what Safari and other Apple applications use on OS X Lion. -- <!ENTITY webDeveloperMenu.label "Web Developer"> <!ENTITY webDeveloperMenu.accesskey "W"> <!ENTITY devtoolsRecordExecution.label "Record Execution"> <!ENTITY devtoolsSaveRecording.label "Save Recording"> <!ENTITY devtoolsReplayExecution.label "Replay Execution"> <!ENTITY inspectContextMenu.label "Inspect Element"> <!ENTITY inspectContextMenu.accesskey "Q"> Loading Loading
browser/base/content/browser-menubar.inc +9 −0 Original line number Diff line number Diff line Loading @@ -518,6 +518,15 @@ accesskey="&pageSourceCmd.accesskey;"> <observes element="canViewSource" attribute="disabled"/> </menuitem> <menuitem id="menu_devtools_recordExecution" observes="devtoolsMenuBroadcaster_RecordExecution" hidden="true"/> <menuitem id="menu_devtools_saveRecording" observes="devtoolsMenuBroadcaster_SaveRecording" hidden="true"/> <menuitem id="menu_devtools_replayExecution" observes="devtoolsMenuBroadcaster_ReplayExecution" hidden="true"/> </menupopup> </menu> <menuitem id="menu_pageInfo" Loading
browser/base/content/browser-sets.inc +12 −0 Original line number Diff line number Diff line Loading @@ -98,6 +98,9 @@ <command id="Tools:Downloads" oncommand="BrowserDownloadsUI();"/> <command id="Tools:Addons" oncommand="BrowserOpenAddonsMgr();"/> <command id="Tools:Sanitize" oncommand="Sanitizer.showUI(window);"/> <command id="Tools:RecordExecution" oncommand="BeginRecordExecution()"/> <command id="Tools:SaveRecording" oncommand="SaveRecordedExecution()"/> <command id="Tools:ReplayExecution" oncommand="BeginReplayExecution()"/> <command id="Tools:PrivateBrowsing" oncommand="OpenBrowserWindow({private: true});"/> <command id="History:UndoCloseTab" oncommand="undoCloseTab();"/> Loading Loading @@ -153,6 +156,15 @@ sidebarurl="chrome://browser/content/syncedtabs/sidebar.xhtml" oncommand="SidebarUI.toggle('viewTabsSidebar');"/> <broadcaster id="workOfflineMenuitemState"/> <broadcaster id="devtoolsMenuBroadcaster_RecordExecution" label="&devtoolsRecordExecution.label;" command="Tools:RecordExecution"/> <broadcaster id="devtoolsMenuBroadcaster_SaveRecording" label="&devtoolsSaveRecording.label;" command="Tools:SaveRecording"/> <broadcaster id="devtoolsMenuBroadcaster_ReplayExecution" label="&devtoolsReplayExecution.label;" command="Tools:ReplayExecution"/> </broadcasterset> <keyset id="mainKeyset"> Loading
browser/base/content/browser.js +29 −0 Original line number Diff line number Diff line Loading @@ -7124,6 +7124,35 @@ function BrowserOpenAddonsMgr(aView) { }); } function BeginRecordExecution() { gBrowser.selectedTab = gBrowser.addTab("about:blank", { recordExecution: "*" }); } function SaveRecordedExecution() { let fp = Cc["@mozilla.org/filepicker;1"].createInstance(Ci.nsIFilePicker); let window = gBrowser.ownerGlobal; fp.init(window, null, Ci.nsIFilePicker.modeSave); fp.open(rv => { if (rv == Ci.nsIFilePicker.returnOK || rv == Ci.nsIFilePicker.returnReplace) { var tabParent = gBrowser.selectedTab.linkedBrowser.frameLoader.tabParent; if (!tabParent || !tabParent.saveRecording(fp.file.path)) { window.alert("Current tab is not recording"); } } }); } function BeginReplayExecution() { let fp = Cc["@mozilla.org/filepicker;1"].createInstance(Ci.nsIFilePicker); let window = gBrowser.ownerGlobal; fp.init(window, null, Ci.nsIFilePicker.modeOpen); fp.open(rv => { if (rv == Ci.nsIFilePicker.returnOK || rv == Ci.nsIFilePicker.returnReplace) { gBrowser.selectedTab = gBrowser.addTab(null, { replayExecution: fp.file.path }); } }); } function AddKeywordForSearchField() { let mm = gBrowser.selectedBrowser.messageManager; Loading
browser/base/content/tabbrowser.js +19 −2 Original line number Diff line number Diff line Loading @@ -1778,7 +1778,8 @@ window._gBrowser = { _createBrowser(aParams) { // Supported parameters: // userContextId, remote, remoteType, isPreloadBrowser, // uriIsAboutBlank, sameProcessAsFrameLoader // uriIsAboutBlank, sameProcessAsFrameLoader, // recordExecution, replayExecution let b = document.createElementNS(this._XUL_NS, "browser"); b.permanentKey = {}; Loading @@ -1801,6 +1802,16 @@ window._gBrowser = { b.setAttribute("remote", "true"); } let recordExecution = aParams && aParams.recordExecution; if (recordExecution) { b.setAttribute("recordExecution", recordExecution); } let replayExecution = aParams && aParams.replayExecution; if (replayExecution) { b.setAttribute("replayExecution", replayExecution); } if (aParams.openerWindow) { if (aParams.remoteType) { throw new Error("Cannot set opener window on a remote browser!"); Loading Loading @@ -2152,6 +2163,8 @@ window._gBrowser = { skipBackgroundNotify, triggeringPrincipal, userContextId, recordExecution, replayExecution, } = {}) { // if we're adding tabs, we're past interrupt mode, ditch the owner if (this.selectedTab.owner) { Loading Loading @@ -2331,7 +2344,9 @@ window._gBrowser = { // icon for the tab would be set incorrectly (see bug 1195981). if (aURI == BROWSER_NEW_TAB_URL && !userContextId && !PrivateBrowsingUtils.isWindowPrivate(window)) { !PrivateBrowsingUtils.isWindowPrivate(window) && !recordExecution && !replayExecution) { b = this._getPreloadedBrowser(); if (b) { usingPreloadedContent = true; Loading @@ -2348,6 +2363,8 @@ window._gBrowser = { openerWindow: opener, nextTabParentId, name, recordExecution, replayExecution, }); } Loading
browser/locales/en-US/chrome/browser/browser.dtd +4 −0 Original line number Diff line number Diff line Loading @@ -312,6 +312,10 @@ These should match what Safari and other Apple applications use on OS X Lion. -- <!ENTITY webDeveloperMenu.label "Web Developer"> <!ENTITY webDeveloperMenu.accesskey "W"> <!ENTITY devtoolsRecordExecution.label "Record Execution"> <!ENTITY devtoolsSaveRecording.label "Save Recording"> <!ENTITY devtoolsReplayExecution.label "Replay Execution"> <!ENTITY inspectContextMenu.label "Inspect Element"> <!ENTITY inspectContextMenu.accesskey "Q"> Loading