Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(78)

Side by Side Diff: third_party/WebKit/Source/devtools/front_end/sources/SourcesView.js

Issue 2608043002: DevTools: extract modules (with extensions) (Closed)
Patch Set: fix externs (PerfUI) Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 /** 4 /**
5 * @implements {Sources.TabbedEditorContainerDelegate} 5 * @implements {Sources.TabbedEditorContainerDelegate}
6 * @implements {UI.Searchable} 6 * @implements {UI.Searchable}
7 * @implements {UI.Replaceable} 7 * @implements {UI.Replaceable}
8 * @unrestricted 8 * @unrestricted
9 */ 9 */
10 Sources.SourcesView = class extends UI.VBox { 10 Sources.SourcesView = class extends UI.VBox {
(...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after
192 } 192 }
193 193
194 /** 194 /**
195 * @return {?UI.Widget} 195 * @return {?UI.Widget}
196 */ 196 */
197 visibleView() { 197 visibleView() {
198 return this._editorContainer.visibleView; 198 return this._editorContainer.visibleView;
199 } 199 }
200 200
201 /** 201 /**
202 * @return {?Sources.UISourceCodeFrame} 202 * @return {?SourceFrame.UISourceCodeFrame}
203 */ 203 */
204 currentSourceFrame() { 204 currentSourceFrame() {
205 var view = this.visibleView(); 205 var view = this.visibleView();
206 if (!(view instanceof Sources.UISourceCodeFrame)) 206 if (!(view instanceof SourceFrame.UISourceCodeFrame))
207 return null; 207 return null;
208 return /** @type {!Sources.UISourceCodeFrame} */ (view); 208 return /** @type {!SourceFrame.UISourceCodeFrame} */ (view);
209 } 209 }
210 210
211 /** 211 /**
212 * @return {?Workspace.UISourceCode} 212 * @return {?Workspace.UISourceCode}
213 */ 213 */
214 currentUISourceCode() { 214 currentUISourceCode() {
215 return this._editorContainer.currentFile(); 215 return this._editorContainer.currentFile();
216 } 216 }
217 217
218 /** 218 /**
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
319 319
320 if (contentType.hasScripts()) 320 if (contentType.hasScripts())
321 sourceFrame = new Sources.JavaScriptSourceFrame(uiSourceCode); 321 sourceFrame = new Sources.JavaScriptSourceFrame(uiSourceCode);
322 else if (contentType.isStyleSheet()) 322 else if (contentType.isStyleSheet())
323 sourceFrame = new Sources.CSSSourceFrame(uiSourceCode); 323 sourceFrame = new Sources.CSSSourceFrame(uiSourceCode);
324 else if (contentType === Common.resourceTypes.Image) 324 else if (contentType === Common.resourceTypes.Image)
325 sourceView = new SourceFrame.ImageView(Bindings.NetworkProject.uiSourceCod eMimeType(uiSourceCode), uiSourceCode); 325 sourceView = new SourceFrame.ImageView(Bindings.NetworkProject.uiSourceCod eMimeType(uiSourceCode), uiSourceCode);
326 else if (contentType === Common.resourceTypes.Font) 326 else if (contentType === Common.resourceTypes.Font)
327 sourceView = new SourceFrame.FontView(Bindings.NetworkProject.uiSourceCode MimeType(uiSourceCode), uiSourceCode); 327 sourceView = new SourceFrame.FontView(Bindings.NetworkProject.uiSourceCode MimeType(uiSourceCode), uiSourceCode);
328 else 328 else
329 sourceFrame = new Sources.UISourceCodeFrame(uiSourceCode); 329 sourceFrame = new SourceFrame.UISourceCodeFrame(uiSourceCode);
330 330
331 if (sourceFrame) { 331 if (sourceFrame) {
332 sourceFrame.setHighlighterType(Bindings.NetworkProject.uiSourceCodeMimeTyp e(uiSourceCode)); 332 sourceFrame.setHighlighterType(Bindings.NetworkProject.uiSourceCodeMimeTyp e(uiSourceCode));
333 this._historyManager.trackSourceFrameCursorJumps(sourceFrame); 333 this._historyManager.trackSourceFrameCursorJumps(sourceFrame);
334 } 334 }
335 var widget = /** @type {!UI.Widget} */ (sourceFrame || sourceView); 335 var widget = /** @type {!UI.Widget} */ (sourceFrame || sourceView);
336 this._sourceViewByUISourceCode.set(uiSourceCode, widget); 336 this._sourceViewByUISourceCode.set(uiSourceCode, widget);
337 uiSourceCode.addEventListener(Workspace.UISourceCode.Events.TitleChanged, th is._uiSourceCodeTitleChanged, this); 337 uiSourceCode.addEventListener(Workspace.UISourceCode.Events.TitleChanged, th is._uiSourceCodeTitleChanged, this);
338 return widget; 338 return widget;
339 } 339 }
340 340
341 /** 341 /**
342 * @param {!Workspace.UISourceCode} uiSourceCode 342 * @param {!Workspace.UISourceCode} uiSourceCode
343 * @return {!UI.Widget} 343 * @return {!UI.Widget}
344 */ 344 */
345 _getOrCreateSourceView(uiSourceCode) { 345 _getOrCreateSourceView(uiSourceCode) {
346 return this._sourceViewByUISourceCode.get(uiSourceCode) || this._createSourc eView(uiSourceCode); 346 return this._sourceViewByUISourceCode.get(uiSourceCode) || this._createSourc eView(uiSourceCode);
347 } 347 }
348 348
349 /** 349 /**
350 * @param {!Sources.UISourceCodeFrame} sourceFrame 350 * @param {!SourceFrame.UISourceCodeFrame} sourceFrame
351 * @param {!Workspace.UISourceCode} uiSourceCode 351 * @param {!Workspace.UISourceCode} uiSourceCode
352 * @return {boolean} 352 * @return {boolean}
353 */ 353 */
354 _sourceFrameMatchesUISourceCode(sourceFrame, uiSourceCode) { 354 _sourceFrameMatchesUISourceCode(sourceFrame, uiSourceCode) {
355 if (uiSourceCode.contentType().hasScripts()) 355 if (uiSourceCode.contentType().hasScripts())
356 return sourceFrame instanceof Sources.JavaScriptSourceFrame; 356 return sourceFrame instanceof Sources.JavaScriptSourceFrame;
357 if (uiSourceCode.contentType().isStyleSheet()) 357 if (uiSourceCode.contentType().isStyleSheet())
358 return sourceFrame instanceof Sources.CSSSourceFrame; 358 return sourceFrame instanceof Sources.CSSSourceFrame;
359 return !(sourceFrame instanceof Sources.JavaScriptSourceFrame); 359 return !(sourceFrame instanceof Sources.JavaScriptSourceFrame);
360 } 360 }
361 361
362 /** 362 /**
363 * @param {!Workspace.UISourceCode} uiSourceCode 363 * @param {!Workspace.UISourceCode} uiSourceCode
364 */ 364 */
365 _recreateSourceFrameIfNeeded(uiSourceCode) { 365 _recreateSourceFrameIfNeeded(uiSourceCode) {
366 var oldSourceView = this._sourceViewByUISourceCode.get(uiSourceCode); 366 var oldSourceView = this._sourceViewByUISourceCode.get(uiSourceCode);
367 if (!oldSourceView || !(oldSourceView instanceof Sources.UISourceCodeFrame)) 367 if (!oldSourceView || !(oldSourceView instanceof SourceFrame.UISourceCodeFra me))
368 return; 368 return;
369 var oldSourceFrame = /** @type {!Sources.UISourceCodeFrame} */ (oldSourceVie w); 369 var oldSourceFrame = /** @type {!SourceFrame.UISourceCodeFrame} */ (oldSourc eView);
370 if (this._sourceFrameMatchesUISourceCode(oldSourceFrame, uiSourceCode)) { 370 if (this._sourceFrameMatchesUISourceCode(oldSourceFrame, uiSourceCode)) {
371 oldSourceFrame.setHighlighterType(Bindings.NetworkProject.uiSourceCodeMime Type(uiSourceCode)); 371 oldSourceFrame.setHighlighterType(Bindings.NetworkProject.uiSourceCodeMime Type(uiSourceCode));
372 } else { 372 } else {
373 this._editorContainer.removeUISourceCode(uiSourceCode); 373 this._editorContainer.removeUISourceCode(uiSourceCode);
374 this._removeSourceFrame(uiSourceCode); 374 this._removeSourceFrame(uiSourceCode);
375 } 375 }
376 } 376 }
377 377
378 /** 378 /**
379 * @override 379 * @override
380 * @param {!Workspace.UISourceCode} uiSourceCode 380 * @param {!Workspace.UISourceCode} uiSourceCode
381 * @return {!UI.Widget} 381 * @return {!UI.Widget}
382 */ 382 */
383 viewForFile(uiSourceCode) { 383 viewForFile(uiSourceCode) {
384 return this._getOrCreateSourceView(uiSourceCode); 384 return this._getOrCreateSourceView(uiSourceCode);
385 } 385 }
386 386
387 /** 387 /**
388 * @param {!Workspace.UISourceCode} uiSourceCode 388 * @param {!Workspace.UISourceCode} uiSourceCode
389 */ 389 */
390 _removeSourceFrame(uiSourceCode) { 390 _removeSourceFrame(uiSourceCode) {
391 var sourceView = this._sourceViewByUISourceCode.get(uiSourceCode); 391 var sourceView = this._sourceViewByUISourceCode.get(uiSourceCode);
392 this._sourceViewByUISourceCode.remove(uiSourceCode); 392 this._sourceViewByUISourceCode.remove(uiSourceCode);
393 uiSourceCode.removeEventListener(Workspace.UISourceCode.Events.TitleChanged, this._uiSourceCodeTitleChanged, this); 393 uiSourceCode.removeEventListener(Workspace.UISourceCode.Events.TitleChanged, this._uiSourceCodeTitleChanged, this);
394 if (sourceView && sourceView instanceof Sources.UISourceCodeFrame) 394 if (sourceView && sourceView instanceof SourceFrame.UISourceCodeFrame)
395 /** @type {!Sources.UISourceCodeFrame} */ (sourceView).dispose(); 395 /** @type {!SourceFrame.UISourceCodeFrame} */ (sourceView).dispose();
396 } 396 }
397 397
398 _onBindingChanged() { 398 _onBindingChanged() {
399 this.setExecutionLocation(this._executionLocation); 399 this.setExecutionLocation(this._executionLocation);
400 this.showSourceLocation( 400 this.showSourceLocation(
401 this._executionLocation.uiSourceCode, this._executionLocation.lineNumber , this._executionLocation.columnNumber); 401 this._executionLocation.uiSourceCode, this._executionLocation.lineNumber , this._executionLocation.columnNumber);
402 } 402 }
403 403
404 clearCurrentExecutionLine() { 404 clearCurrentExecutionLine() {
405 if (!this._executionLocation) 405 if (!this._executionLocation)
406 return; 406 return;
407 Persistence.persistence.unsubscribeFromBindingEvent(this._executionLocation. uiSourceCode, this._bindingChangeBound); 407 Persistence.persistence.unsubscribeFromBindingEvent(this._executionLocation. uiSourceCode, this._bindingChangeBound);
408 this._executionSourceFrame.clearExecutionLine(); 408 this._executionSourceFrame.clearExecutionLine();
409 this._executionSourceFrame = null; 409 this._executionSourceFrame = null;
410 this._executionLocation = null; 410 this._executionLocation = null;
411 } 411 }
412 412
413 /** 413 /**
414 * @param {!Workspace.UILocation} uiLocation 414 * @param {!Workspace.UILocation} uiLocation
415 */ 415 */
416 setExecutionLocation(uiLocation) { 416 setExecutionLocation(uiLocation) {
417 this.clearCurrentExecutionLine(); 417 this.clearCurrentExecutionLine();
418 var binding = Persistence.persistence.binding(uiLocation.uiSourceCode); 418 var binding = Persistence.persistence.binding(uiLocation.uiSourceCode);
419 var uiSourceCode = binding ? binding.fileSystem : uiLocation.uiSourceCode; 419 var uiSourceCode = binding ? binding.fileSystem : uiLocation.uiSourceCode;
420 var sourceView = this._getOrCreateSourceView(uiSourceCode); 420 var sourceView = this._getOrCreateSourceView(uiSourceCode);
421 if (!(sourceView instanceof Sources.UISourceCodeFrame)) 421 if (!(sourceView instanceof SourceFrame.UISourceCodeFrame))
422 return; 422 return;
423 Persistence.persistence.subscribeForBindingEvent(uiLocation.uiSourceCode, th is._bindingChangeBound); 423 Persistence.persistence.subscribeForBindingEvent(uiLocation.uiSourceCode, th is._bindingChangeBound);
424 var sourceFrame = /** @type {!Sources.UISourceCodeFrame} */ (sourceView); 424 var sourceFrame = /** @type {!SourceFrame.UISourceCodeFrame} */ (sourceView) ;
425 sourceFrame.setExecutionLocation( 425 sourceFrame.setExecutionLocation(
426 new Workspace.UILocation(uiSourceCode, uiLocation.lineNumber, uiLocation .columnNumber)); 426 new Workspace.UILocation(uiSourceCode, uiLocation.lineNumber, uiLocation .columnNumber));
427 this._executionSourceFrame = sourceFrame; 427 this._executionSourceFrame = sourceFrame;
428 this._executionLocation = uiLocation; 428 this._executionLocation = uiLocation;
429 } 429 }
430 430
431 /** 431 /**
432 * @param {!Common.Event} event 432 * @param {!Common.Event} event
433 */ 433 */
434 _editorClosed(event) { 434 _editorClosed(event) {
(...skipping 12 matching lines...) Expand all
447 data.uiSourceCode = uiSourceCode; 447 data.uiSourceCode = uiSourceCode;
448 data.wasSelected = wasSelected; 448 data.wasSelected = wasSelected;
449 this.dispatchEventToListeners(Sources.SourcesView.Events.EditorClosed, data) ; 449 this.dispatchEventToListeners(Sources.SourcesView.Events.EditorClosed, data) ;
450 } 450 }
451 451
452 /** 452 /**
453 * @param {!Common.Event} event 453 * @param {!Common.Event} event
454 */ 454 */
455 _editorSelected(event) { 455 _editorSelected(event) {
456 var previousSourceFrame = 456 var previousSourceFrame =
457 event.data.previousView instanceof Sources.UISourceCodeFrame ? event.dat a.previousView : null; 457 event.data.previousView instanceof SourceFrame.UISourceCodeFrame ? event .data.previousView : null;
458 if (previousSourceFrame) 458 if (previousSourceFrame)
459 previousSourceFrame.setSearchableView(null); 459 previousSourceFrame.setSearchableView(null);
460 var currentSourceFrame = 460 var currentSourceFrame =
461 event.data.currentView instanceof Sources.UISourceCodeFrame ? event.data .currentView : null; 461 event.data.currentView instanceof SourceFrame.UISourceCodeFrame ? event. data.currentView : null;
462 if (currentSourceFrame) 462 if (currentSourceFrame)
463 currentSourceFrame.setSearchableView(this._searchableView); 463 currentSourceFrame.setSearchableView(this._searchableView);
464 464
465 this._searchableView.setReplaceable(!!currentSourceFrame && currentSourceFra me.canEditSource()); 465 this._searchableView.setReplaceable(!!currentSourceFrame && currentSourceFra me.canEditSource());
466 this._searchableView.refreshSearch(); 466 this._searchableView.refreshSearch();
467 this._updateScriptViewToolbarItems(); 467 this._updateScriptViewToolbarItems();
468 468
469 this.dispatchEventToListeners(Sources.SourcesView.Events.EditorSelected, thi s._editorContainer.currentFile()); 469 this.dispatchEventToListeners(Sources.SourcesView.Events.EditorSelected, thi s._editorContainer.currentFile());
470 } 470 }
471 471
(...skipping 169 matching lines...) Expand 10 before | Expand all | Expand 10 after
641 _saveAll() { 641 _saveAll() {
642 var sourceFrames = this._editorContainer.fileViews(); 642 var sourceFrames = this._editorContainer.fileViews();
643 sourceFrames.forEach(this._saveSourceFrame.bind(this)); 643 sourceFrames.forEach(this._saveSourceFrame.bind(this));
644 return true; 644 return true;
645 } 645 }
646 646
647 /** 647 /**
648 * @param {?UI.Widget} sourceFrame 648 * @param {?UI.Widget} sourceFrame
649 */ 649 */
650 _saveSourceFrame(sourceFrame) { 650 _saveSourceFrame(sourceFrame) {
651 if (!(sourceFrame instanceof Sources.UISourceCodeFrame)) 651 if (!(sourceFrame instanceof SourceFrame.UISourceCodeFrame))
652 return; 652 return;
653 var uiSourceCodeFrame = /** @type {!Sources.UISourceCodeFrame} */ (sourceFra me); 653 var uiSourceCodeFrame = /** @type {!SourceFrame.UISourceCodeFrame} */ (sourc eFrame);
654 uiSourceCodeFrame.commitEditing(); 654 uiSourceCodeFrame.commitEditing();
655 } 655 }
656 656
657 /** 657 /**
658 * @return {boolean} 658 * @return {boolean}
659 */ 659 */
660 _toggleBreakpoint() { 660 _toggleBreakpoint() {
661 var sourceFrame = this.currentSourceFrame(); 661 var sourceFrame = this.currentSourceFrame();
662 if (!sourceFrame) 662 if (!sourceFrame)
663 return false; 663 return false;
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after
768 * @return {boolean} 768 * @return {boolean}
769 */ 769 */
770 handleAction(context, actionId) { 770 handleAction(context, actionId) {
771 var sourcesView = UI.context.flavor(Sources.SourcesView); 771 var sourcesView = UI.context.flavor(Sources.SourcesView);
772 if (!sourcesView) 772 if (!sourcesView)
773 return false; 773 return false;
774 sourcesView._editorContainer.closeAllFiles(); 774 sourcesView._editorContainer.closeAllFiles();
775 return true; 775 return true;
776 } 776 }
777 }; 777 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698