Skip to content

Commit

Permalink
squash 'resources/unpacked/devtools' changes from 781a13a..b68fd2e
Browse files Browse the repository at this point in the history
b68fd2e [Devtools] Fix offline checkbox state sharing across Network and Application>Service Workers panels
73a2c5b DevTools: Add 'caret-color' CSS property to _colorAwareProperties
9db9a2b Add certificate error handling to devtools.
8713e2d [DevTools] Rework Popover API
bfea3be [DevTools] Fallback to MainFrameNavigated event url in Security panel
2b57967 DevTools: Tweak flamechart selection
d04622a DevTools: kill Common.Throttler.flush() method
dbfaa60 DevTools: introduce SDK.SourceMapManager
a221e62 [DevTools] Remove dependency from TargetManager to ResourceTreeModel
fdd03a0 [DevTools] Update SecurityDetails in Security panel if State changes
6628483 DevTools: Fix Network panel warning icon display when offline/throttled
57f5212 Revert of DevTools: launch What's New from experiments (patchset #1 id:1 of https://codereview.chromium.org/2749423003/ )
c8477b2 DevTools: Only show gutter diff for Network UISourceCodes
ccc15d9 [DevTools] Wait for cachedResourcesLoaded in ConsoleModel

git-subtree-dir: resources/unpacked/devtools
git-subtree-split: b68fd2e
  • Loading branch information
darwin committed Mar 22, 2017
1 parent 912f350 commit 89a2418
Show file tree
Hide file tree
Showing 48 changed files with 946 additions and 904 deletions.
1 change: 1 addition & 0 deletions BUILD.gn
Original file line number Diff line number Diff line change
Expand Up @@ -475,6 +475,7 @@ all_devtools_files = [
"front_end/sdk/ServiceWorkerCacheModel.js",
"front_end/sdk/ServiceWorkerManager.js",
"front_end/sdk/SourceMap.js",
"front_end/sdk/SourceMapManager.js",
"front_end/sdk/Target.js",
"front_end/sdk/TargetManager.js",
"front_end/sdk/TracingManager.js",
Expand Down
84 changes: 39 additions & 45 deletions front_end/animation/AnimationTimeline.js
Original file line number Diff line number Diff line change
Expand Up @@ -131,9 +131,8 @@ Animation.AnimationTimeline = class extends UI.VBox {
this._updatePlaybackControls();

this._previewContainer = this.contentElement.createChild('div', 'animation-timeline-buffer');
this._popoverHelper = new UI.PopoverHelper(this._previewContainer, true);
this._popoverHelper.initializeCallbacks(
this._getPopoverAnchor.bind(this), this._showPopover.bind(this), this._onHidePopover.bind(this));
this._popoverHelper = new UI.PopoverHelper(this._previewContainer, this._getPopoverRequest.bind(this));
this._popoverHelper.setDisableOnClick(true);
this._popoverHelper.setTimeout(0);
var emptyBufferHint = this.contentElement.createChild('div', 'animation-timeline-buffer-hint');
emptyBufferHint.textContent = Common.UIString('Listening for animations...');
Expand Down Expand Up @@ -162,49 +161,44 @@ Animation.AnimationTimeline = class extends UI.VBox {
}

/**
* @param {!Element} element
* @param {!Event} event
* @return {!Element|!AnchorBox|undefined}
*/
_getPopoverAnchor(element, event) {
if (element.isDescendant(this._previewContainer))
return element;
}

/**
* @param {!Element|!AnchorBox} anchor
* @param {!UI.GlassPane} popover
* @return {!Promise<boolean>}
*/
_showPopover(anchor, popover) {
var animGroup;
for (var group of this._previewMap.keysArray()) {
if (this._previewMap.get(group).element === anchor.parentElement)
animGroup = group;
}
console.assert(animGroup);
var screenshots = animGroup.screenshots();
if (!screenshots.length)
return Promise.resolve(false);

var fulfill;
var promise = new Promise(x => fulfill = x);
if (!screenshots[0].complete)
screenshots[0].onload = onFirstScreenshotLoaded.bind(null, screenshots);
else
onFirstScreenshotLoaded(screenshots);
return promise;

/**
* @param {!Array.<!Image>} screenshots
*/
function onFirstScreenshotLoaded(screenshots) {
new Animation.AnimationScreenshotPopover(screenshots).show(popover.contentElement);
fulfill(true);
}
}

_onHidePopover() {
* @return {?UI.PopoverRequest}
*/
_getPopoverRequest(event) {
var element = event.target;
if (!element.isDescendant(this._previewContainer))
return null;

return {
box: event.target.boxInWindow(),
show: popover => {
var animGroup;
for (var group of this._previewMap.keysArray()) {
if (this._previewMap.get(group).element === element.parentElement)
animGroup = group;
}
console.assert(animGroup);
var screenshots = animGroup.screenshots();
if (!screenshots.length)
return Promise.resolve(false);

var fulfill;
var promise = new Promise(x => fulfill = x);
if (!screenshots[0].complete)
screenshots[0].onload = onFirstScreenshotLoaded.bind(null, screenshots);
else
onFirstScreenshotLoaded(screenshots);
return promise;

/**
* @param {!Array.<!Image>} screenshots
*/
function onFirstScreenshotLoaded(screenshots) {
new Animation.AnimationScreenshotPopover(screenshots).show(popover.contentElement);
fulfill(true);
}
}
};
}

_togglePauseAll() {
Expand Down
12 changes: 9 additions & 3 deletions front_end/audits/AuditController.js
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,8 @@ Audits.AuditController = class {
*/
constructor(auditsPanel) {
this._auditsPanel = auditsPanel;
SDK.targetManager.addEventListener(SDK.TargetManager.Events.Load, this._didMainResourceLoad, this);
SDK.targetManager.addModelListener(
SDK.ResourceTreeModel, SDK.ResourceTreeModel.Events.Load, this._didMainResourceLoad, this);
SDK.targetManager.addModelListener(
SDK.NetworkManager, SDK.NetworkManager.Events.RequestFinished, this._didLoadResource, this);
}
Expand Down Expand Up @@ -141,15 +142,20 @@ Audits.AuditController = class {
*/
_reloadResources(callback) {
this._pageReloadCallback = callback;
SDK.targetManager.reloadPage();
SDK.ResourceTreeModel.reloadAllPages();
}

_didLoadResource() {
if (this._pageReloadCallback && this._progress && this._progress.isCanceled())
this._pageReloadCallback();
}

_didMainResourceLoad() {
/**
* @param {!Common.Event} event
*/
_didMainResourceLoad(event) {
if (event.data.resourceTreeModel.target() !== SDK.targetManager.mainTarget())
return;
if (this._pageReloadCallback) {
var callback = this._pageReloadCallback;
delete this._pageReloadCallback;
Expand Down
5 changes: 3 additions & 2 deletions front_end/bindings/CSSWorkspaceBinding.js
Original file line number Diff line number Diff line change
Expand Up @@ -99,8 +99,9 @@ Bindings.CSSWorkspaceBinding.ModelInfo = class {
];

this._stylesSourceMapping = new Bindings.StylesSourceMapping(cssModel, workspace);
this._sassSourceMapping =
new Bindings.SASSSourceMapping(cssModel, workspace, Bindings.NetworkProject.forTarget(cssModel.target()));
var sourceMapManager = cssModel.sourceMapManager();
this._sassSourceMapping = new Bindings.SASSSourceMapping(
sourceMapManager, workspace, Bindings.NetworkProject.forTarget(cssModel.target()));

/** @type {!Multimap<!SDK.CSSStyleSheetHeader, !Bindings.CSSWorkspaceBinding.LiveLocation>} */
this._locations = new Multimap();
Expand Down
21 changes: 12 additions & 9 deletions front_end/bindings/SASSSourceMapping.js
Original file line number Diff line number Diff line change
Expand Up @@ -33,18 +33,21 @@
*/
Bindings.SASSSourceMapping = class {
/**
* @param {!SDK.CSSModel} cssModel
* @param {!SDK.SourceMapManager} sourceMapManager
* @param {!Workspace.Workspace} workspace
* @param {!Bindings.NetworkProject} networkProject
*/
constructor(cssModel, workspace, networkProject) {
this._cssModel = cssModel;
constructor(sourceMapManager, workspace, networkProject) {
this._sourceMapManager = sourceMapManager;
this._networkProject = networkProject;
this._workspace = workspace;
this._eventListeners = [
this._cssModel.addEventListener(SDK.CSSModel.Events.SourceMapAttached, this._sourceMapAttached, this),
this._cssModel.addEventListener(SDK.CSSModel.Events.SourceMapDetached, this._sourceMapDetached, this),
this._cssModel.addEventListener(SDK.CSSModel.Events.SourceMapChanged, this._sourceMapChanged, this)
this._sourceMapManager.addEventListener(
SDK.SourceMapManager.Events.SourceMapAttached, this._sourceMapAttached, this),
this._sourceMapManager.addEventListener(
SDK.SourceMapManager.Events.SourceMapDetached, this._sourceMapDetached, this),
this._sourceMapManager.addEventListener(
SDK.SourceMapManager.Events.SourceMapChanged, this._sourceMapChanged, this)
];
}

Expand All @@ -59,7 +62,7 @@ Bindings.SASSSourceMapping = class {
*/
_sourceMapAttached(event) {
var header = /** @type {!SDK.CSSStyleSheetHeader} */ (event.data);
var sourceMap = this._cssModel.sourceMapForHeader(header);
var sourceMap = this._sourceMapManager.sourceMapForClient(header);
for (var sassURL of sourceMap.sourceURLs()) {
var contentProvider = sourceMap.sourceContentProvider(sassURL, Common.resourceTypes.SourceMapStyleSheet);
var embeddedContent = sourceMap.embeddedContentByURL(sassURL);
Expand All @@ -84,7 +87,7 @@ Bindings.SASSSourceMapping = class {
_sourceMapChanged(event) {
var sourceMap = /** @type {!SDK.SourceMap} */ (event.data.sourceMap);
var newSources = /** @type {!Map<string, string>} */ (event.data.newSources);
var headers = this._cssModel.headersForSourceMap(sourceMap);
var headers = this._sourceMapManager.clientsForSourceMap(sourceMap);
var handledUISourceCodes = new Set();
for (var header of headers) {
Bindings.cssWorkspaceBinding.updateLocations(header);
Expand All @@ -111,7 +114,7 @@ Bindings.SASSSourceMapping = class {
var header = rawLocation.header();
if (!header)
return null;
var sourceMap = this._cssModel.sourceMapForHeader(header);
var sourceMap = this._sourceMapManager.sourceMapForClient(header);
if (!sourceMap)
return null;
var entry = sourceMap.findEntry(rawLocation.lineNumber, rawLocation.columnNumber);
Expand Down
5 changes: 0 additions & 5 deletions front_end/common/Throttler.js
Original file line number Diff line number Diff line change
Expand Up @@ -57,11 +57,6 @@ Common.Throttler = class {
this._innerSchedule(forceTimerUpdate);
}

flush() {
if (this._process)
this._onTimeout();
}

/**
* @param {boolean} forceTimerUpdate
*/
Expand Down
28 changes: 11 additions & 17 deletions front_end/components/DOMPresentationUtils.js
Original file line number Diff line number Diff line change
Expand Up @@ -148,36 +148,30 @@ Components.DOMPresentationUtils.linkifyDeferredNodeReference = function(deferred
* @param {!SDK.Target} target
* @param {string} originalImageURL
* @param {boolean} showDimensions
* @param {function(!Element=)} userCallback
* @param {!Object=} precomputedFeatures
* @return {!Promise<?Element>}
*/
Components.DOMPresentationUtils.buildImagePreviewContents = function(
target, originalImageURL, showDimensions, userCallback, precomputedFeatures) {
target, originalImageURL, showDimensions, precomputedFeatures) {
var resourceTreeModel = SDK.ResourceTreeModel.fromTarget(target);
if (!resourceTreeModel) {
userCallback();
return;
}
if (!resourceTreeModel)
return Promise.resolve(/** @type {?Element} */ (null));
var resource = resourceTreeModel.resourceForURL(originalImageURL);
var imageURL = originalImageURL;
if (!isImageResource(resource) && precomputedFeatures && precomputedFeatures.currentSrc) {
imageURL = precomputedFeatures.currentSrc;
resource = resourceTreeModel.resourceForURL(imageURL);
}
if (!isImageResource(resource)) {
userCallback();
return;
}
if (!isImageResource(resource))
return Promise.resolve(/** @type {?Element} */ (null));

var fulfill;
var promise = new Promise(x => fulfill = x);
var imageElement = createElement('img');
imageElement.addEventListener('load', buildContent, false);
imageElement.addEventListener('error', errorCallback, false);
imageElement.addEventListener('error', () => fulfill(null), false);
resource.populateImageSource(imageElement);

function errorCallback() {
// Drop the event parameter when invoking userCallback.
userCallback();
}
return promise;

/**
* @param {?SDK.Resource} resource
Expand Down Expand Up @@ -212,7 +206,7 @@ Components.DOMPresentationUtils.buildImagePreviewContents = function(
container.createChild('tr').createChild('td').createChild('span', 'description').textContent =
String.sprintf('currentSrc: %s', imageURL.trimMiddle(100));
}
userCallback(container);
fulfill(container);
}
};

Expand Down
Loading

0 comments on commit 89a2418

Please sign in to comment.