New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 682078 link

Starred by 1 user

Issue metadata

Status: WontFix
Owner:
Last visit > 30 days ago
Closed: Nov 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 2
Type: Feature



Sign in to add a comment

DevTools: ensure front-end changes are backwards compatible

Project Member Reported by chenwilliam@chromium.org, Jan 18 2017

Issue description

Since versioning DevTools protocol (https://chromium.googlesource.com/chromium/src/+/a91861b31d2119f96f7b4c0d90b9c4b1d4a24120), we've needed to keep front-end changes backwards compatible with older backends. In particular, this benefits node.js whose v8 inspector backend is updated periodically (yearly?) but uses the latest devtools frontend from Chrome.

Approach:
- A content shell from the protocol versioning commit will be stored on the cloud
- DevTools tests will be run in backwards compatibility mode
- Create a separate baseline where needed
  * (I'm using `dtrun compat-test --new-baseline inspector/test.html`)
- Make sure devtools frontend gracefully handles backends that are missing newer protocol methods (e.g. no test should timeout)

Phase 1:
Initially create a local way of running tests for backwards-compatibility in a simple way.

Phase 2:
Add these backward compat tests to the devtools optional trybot and then auto-include the trybots as part of the presubmit hook. For simplicity, we can start with a linux trybot and then later add other platforms if needed.
 
Description: Show this description
Description: Show this description
Project Member

Comment 3 by bugdroid1@chromium.org, Jan 23 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a35b250bcc6b0afde5638c874d409b90e0f3d288

commit a35b250bcc6b0afde5638c874d409b90e0f3d288
Author: chenwilliam <chenwilliam@chromium.org>
Date: Mon Jan 23 23:16:38 2017

DevTools: enable backwards-compatibility testing

This lays down the groundwork for doing backwards-compatibility testing
to ensure newer front-ends don't break backends supporting devtools protocol 1.2.

Because there will be diffs from the tip-of-tree baseline, I'm creating
a set of baselines at:
devtools/tests/baseline/protocol-1.2/test-name...

Usage:
npm test -- --compat-protocol=1.2

BUG= 682078 

Review-Url: https://codereview.chromium.org/2648633002
Cr-Commit-Position: refs/heads/master@{#445538}

[modify] https://crrev.com/a35b250bcc6b0afde5638c874d409b90e0f3d288/third_party/WebKit/Source/devtools/scripts/npm_test.js
[modify] https://crrev.com/a35b250bcc6b0afde5638c874d409b90e0f3d288/third_party/WebKit/Source/devtools/scripts/utils.js
[add] https://crrev.com/a35b250bcc6b0afde5638c874d409b90e0f3d288/third_party/WebKit/Source/devtools/tests/baseline/protocol-1.2/inspector/sources/debugger-breakpoints/nodejs-set-breakpoint-expected.txt

Project Member

Comment 6 by bugdroid1@chromium.org, Jan 30 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/3809eb577f75f4ad4ff2998a10f4e9448b14c298

commit 3809eb577f75f4ad4ff2998a10f4e9448b14c298
Author: chenwilliam <chenwilliam@chromium.org>
Date: Mon Jan 30 23:14:43 2017

DevTools: rebaselined network tests for backwards compatibility

http/tests/inspector/resource-tree/cached-resource-metadata.html did not exist yet
http/tests/inspector-protocol/request-referrer-policy.html did not exist yet
LayoutTests/http/tests/inspector-protocol/reload-memory-cache.html wasn't fixed yet

BUG= 682078 

Review-Url: https://codereview.chromium.org/2654433015
Cr-Commit-Position: refs/heads/master@{#447107}

[modify] https://crrev.com/3809eb577f75f4ad4ff2998a10f4e9448b14c298/third_party/WebKit/Source/devtools/tests/TestExpectations
[add] https://crrev.com/3809eb577f75f4ad4ff2998a10f4e9448b14c298/third_party/WebKit/Source/devtools/tests/baseline/protocol-1.2/http/tests/inspector-protocol/network-data-length-expected.txt
[add] https://crrev.com/3809eb577f75f4ad4ff2998a10f4e9448b14c298/third_party/WebKit/Source/devtools/tests/baseline/protocol-1.2/http/tests/inspector-protocol/reload-memory-cache-expected.txt
[add] https://crrev.com/3809eb577f75f4ad4ff2998a10f4e9448b14c298/third_party/WebKit/Source/devtools/tests/baseline/protocol-1.2/http/tests/inspector-protocol/request-referrer-policy-expected.txt
[add] https://crrev.com/3809eb577f75f4ad4ff2998a10f4e9448b14c298/third_party/WebKit/Source/devtools/tests/baseline/protocol-1.2/http/tests/inspector/network/network-xhr-replay-expected.txt
[add] https://crrev.com/3809eb577f75f4ad4ff2998a10f4e9448b14c298/third_party/WebKit/Source/devtools/tests/baseline/protocol-1.2/http/tests/inspector/resource-tree/cached-resource-metadata-expected.txt

Description: Show this description
Project Member

Comment 8 by bugdroid1@chromium.org, Feb 2 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/09a6a441c91c5a52650c315cc915fe461e58cb33

commit 09a6a441c91c5a52650c315cc915fe461e58cb33
Author: chenwilliam <chenwilliam@chromium.org>
Date: Thu Feb 02 01:12:31 2017

DevTools: rebaseline console tests

Set console filter level for tests to debug level by default.

BUG= 682078 

Review-Url: https://codereview.chromium.org/2667843004
Cr-Commit-Position: refs/heads/master@{#447668}

[modify] https://crrev.com/09a6a441c91c5a52650c315cc915fe461e58cb33/third_party/WebKit/LayoutTests/http/tests/inspector/console-test.js
[modify] https://crrev.com/09a6a441c91c5a52650c315cc915fe461e58cb33/third_party/WebKit/Source/devtools/tests/TestExpectations
[add] https://crrev.com/09a6a441c91c5a52650c315cc915fe461e58cb33/third_party/WebKit/Source/devtools/tests/baseline/protocol-1.2/inspector/console/command-line-api-getEventListeners-expected.txt
[add] https://crrev.com/09a6a441c91c5a52650c315cc915fe461e58cb33/third_party/WebKit/Source/devtools/tests/baseline/protocol-1.2/inspector/console/console-big-array-expected.txt
[add] https://crrev.com/09a6a441c91c5a52650c315cc915fe461e58cb33/third_party/WebKit/Source/devtools/tests/baseline/protocol-1.2/inspector/console/console-clear-function-expected.txt
[add] https://crrev.com/09a6a441c91c5a52650c315cc915fe461e58cb33/third_party/WebKit/Source/devtools/tests/baseline/protocol-1.2/inspector/console/console-command-clear-expected.txt
[add] https://crrev.com/09a6a441c91c5a52650c315cc915fe461e58cb33/third_party/WebKit/Source/devtools/tests/baseline/protocol-1.2/inspector/console/console-dir-es6-expected.txt
[add] https://crrev.com/09a6a441c91c5a52650c315cc915fe461e58cb33/third_party/WebKit/Source/devtools/tests/baseline/protocol-1.2/inspector/console/console-edit-property-value-expected.txt
[add] https://crrev.com/09a6a441c91c5a52650c315cc915fe461e58cb33/third_party/WebKit/Source/devtools/tests/baseline/protocol-1.2/inspector/console/console-error-on-call-frame-expected.txt
[add] https://crrev.com/09a6a441c91c5a52650c315cc915fe461e58cb33/third_party/WebKit/Source/devtools/tests/baseline/protocol-1.2/inspector/console/console-external-array-expected.txt
[add] https://crrev.com/09a6a441c91c5a52650c315cc915fe461e58cb33/third_party/WebKit/Source/devtools/tests/baseline/protocol-1.2/inspector/console/console-filter-level-test-expected.txt
[add] https://crrev.com/09a6a441c91c5a52650c315cc915fe461e58cb33/third_party/WebKit/Source/devtools/tests/baseline/protocol-1.2/inspector/console/console-format-collections-expected.txt
[add] https://crrev.com/09a6a441c91c5a52650c315cc915fe461e58cb33/third_party/WebKit/Source/devtools/tests/baseline/protocol-1.2/inspector/console/console-format-es6-2-expected.txt
[add] https://crrev.com/09a6a441c91c5a52650c315cc915fe461e58cb33/third_party/WebKit/Source/devtools/tests/baseline/protocol-1.2/inspector/console/console-format-es6-expected.txt
[add] https://crrev.com/09a6a441c91c5a52650c315cc915fe461e58cb33/third_party/WebKit/Source/devtools/tests/baseline/protocol-1.2/inspector/console/console-format-expected.txt
[add] https://crrev.com/09a6a441c91c5a52650c315cc915fe461e58cb33/third_party/WebKit/Source/devtools/tests/baseline/protocol-1.2/inspector/console/console-format-style-whitelist-expected.txt
[add] https://crrev.com/09a6a441c91c5a52650c315cc915fe461e58cb33/third_party/WebKit/Source/devtools/tests/baseline/protocol-1.2/inspector/console/console-log-before-inspector-open-expected.txt
[add] https://crrev.com/09a6a441c91c5a52650c315cc915fe461e58cb33/third_party/WebKit/Source/devtools/tests/baseline/protocol-1.2/inspector/console/console-log-object-with-getter-expected.txt
[add] https://crrev.com/09a6a441c91c5a52650c315cc915fe461e58cb33/third_party/WebKit/Source/devtools/tests/baseline/protocol-1.2/inspector/console/console-log-side-effects-expected.txt
[add] https://crrev.com/09a6a441c91c5a52650c315cc915fe461e58cb33/third_party/WebKit/Source/devtools/tests/baseline/protocol-1.2/inspector/console/console-log-without-console-expected.txt
[add] https://crrev.com/09a6a441c91c5a52650c315cc915fe461e58cb33/third_party/WebKit/Source/devtools/tests/baseline/protocol-1.2/inspector/console/console-object-preview-expected.txt
[add] https://crrev.com/09a6a441c91c5a52650c315cc915fe461e58cb33/third_party/WebKit/Source/devtools/tests/baseline/protocol-1.2/inspector/console/console-on-paint-worklet-expected.txt
[add] https://crrev.com/09a6a441c91c5a52650c315cc915fe461e58cb33/third_party/WebKit/Source/devtools/tests/baseline/protocol-1.2/inspector/console/console-save-to-temp-var-expected.txt
[add] https://crrev.com/09a6a441c91c5a52650c315cc915fe461e58cb33/third_party/WebKit/Source/devtools/tests/baseline/protocol-1.2/inspector/console/console-tainted-globals-expected.txt
[add] https://crrev.com/09a6a441c91c5a52650c315cc915fe461e58cb33/third_party/WebKit/Source/devtools/tests/baseline/protocol-1.2/inspector/console/console-tests-expected.txt
[add] https://crrev.com/09a6a441c91c5a52650c315cc915fe461e58cb33/third_party/WebKit/Source/devtools/tests/baseline/protocol-1.2/inspector/console/console-uncaught-promise-in-worker-expected.txt
[add] https://crrev.com/09a6a441c91c5a52650c315cc915fe461e58cb33/third_party/WebKit/Source/devtools/tests/baseline/protocol-1.2/inspector/console/console-worker-nested-imports-syntax-error-expected.txt

Project Member

Comment 9 by bugdroid1@chromium.org, Feb 6 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/4660c749a14cf8d15440dc99595e226b8d1a2dd6

commit 4660c749a14cf8d15440dc99595e226b8d1a2dd6
Author: chenwilliam <chenwilliam@chromium.org>
Date: Mon Feb 06 20:43:39 2017

DevTools: rebaseline DOM / CSS / Elements tests

BUG= 682078 

Review-Url: https://codereview.chromium.org/2668403004
Cr-Commit-Position: refs/heads/master@{#448382}

[modify] https://crrev.com/4660c749a14cf8d15440dc99595e226b8d1a2dd6/third_party/WebKit/Source/devtools/tests/TestExpectations
[add] https://crrev.com/4660c749a14cf8d15440dc99595e226b8d1a2dd6/third_party/WebKit/Source/devtools/tests/baseline/protocol-1.2/inspector-protocol/css/css-get-background-colors-expected.txt
[add] https://crrev.com/4660c749a14cf8d15440dc99595e226b8d1a2dd6/third_party/WebKit/Source/devtools/tests/baseline/protocol-1.2/inspector-protocol/css/css-set-media-text-expected.txt
[add] https://crrev.com/4660c749a14cf8d15440dc99595e226b8d1a2dd6/third_party/WebKit/Source/devtools/tests/baseline/protocol-1.2/inspector-protocol/css/css-set-multiple-style-texts-expected.txt
[add] https://crrev.com/4660c749a14cf8d15440dc99595e226b8d1a2dd6/third_party/WebKit/Source/devtools/tests/baseline/protocol-1.2/inspector-protocol/css/css-set-rule-selector-expected.txt
[add] https://crrev.com/4660c749a14cf8d15440dc99595e226b8d1a2dd6/third_party/WebKit/Source/devtools/tests/baseline/protocol-1.2/inspector-protocol/dom/dom-getNodeForLocation-expected.txt
[add] https://crrev.com/4660c749a14cf8d15440dc99595e226b8d1a2dd6/third_party/WebKit/Source/devtools/tests/baseline/protocol-1.2/inspector-protocol/dom/dom-request-child-nodes-traverse-frames-expected.txt
[add] https://crrev.com/4660c749a14cf8d15440dc99595e226b8d1a2dd6/third_party/WebKit/Source/devtools/tests/baseline/protocol-1.2/inspector/elements/event-listener-sidebar-custom-framework-expected.txt
[add] https://crrev.com/4660c749a14cf8d15440dc99595e226b8d1a2dd6/third_party/WebKit/Source/devtools/tests/baseline/protocol-1.2/inspector/elements/event-listener-sidebar-expected.txt
[add] https://crrev.com/4660c749a14cf8d15440dc99595e226b8d1a2dd6/third_party/WebKit/Source/devtools/tests/baseline/protocol-1.2/inspector/elements/event-listener-sidebar-jquery1-expected.txt
[add] https://crrev.com/4660c749a14cf8d15440dc99595e226b8d1a2dd6/third_party/WebKit/Source/devtools/tests/baseline/protocol-1.2/inspector/elements/event-listener-sidebar-jquery2-expected.txt
[add] https://crrev.com/4660c749a14cf8d15440dc99595e226b8d1a2dd6/third_party/WebKit/Source/devtools/tests/baseline/protocol-1.2/inspector/elements/event-listener-sidebar-remove-expected.txt
[add] https://crrev.com/4660c749a14cf8d15440dc99595e226b8d1a2dd6/third_party/WebKit/Source/devtools/tests/baseline/protocol-1.2/inspector/elements/event-listeners-about-blank-expected.txt
[add] https://crrev.com/4660c749a14cf8d15440dc99595e226b8d1a2dd6/third_party/WebKit/Source/devtools/tests/baseline/protocol-1.2/inspector/elements/styles-4/styles-overriden-properties-expected.txt

Project Member

Comment 10 by bugdroid1@chromium.org, Feb 7 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ce6be73c58c3275a42ed81ba5935d336390ab680

commit ce6be73c58c3275a42ed81ba5935d336390ab680
Author: chenwilliam <chenwilliam@chromium.org>
Date: Tue Feb 07 20:37:02 2017

DevTools: rebaseline tracing tests

BUG= 682078 

Review-Url: https://codereview.chromium.org/2671623003
Cr-Commit-Position: refs/heads/master@{#448722}

[modify] https://crrev.com/ce6be73c58c3275a42ed81ba5935d336390ab680/third_party/WebKit/LayoutTests/http/tests/inspector/timeline-test.js
[add] https://crrev.com/ce6be73c58c3275a42ed81ba5935d336390ab680/third_party/WebKit/Source/devtools/tests/OWNERS
[modify] https://crrev.com/ce6be73c58c3275a42ed81ba5935d336390ab680/third_party/WebKit/Source/devtools/tests/TestExpectations
[add] https://crrev.com/ce6be73c58c3275a42ed81ba5935d336390ab680/third_party/WebKit/Source/devtools/tests/baseline/protocol-1.2/http/tests/inspector/tracing/timeline-receive-response-event-expected.txt
[add] https://crrev.com/ce6be73c58c3275a42ed81ba5935d336390ab680/third_party/WebKit/Source/devtools/tests/baseline/protocol-1.2/inspector-protocol/timeline/fetch-as-stream-expected.txt
[add] https://crrev.com/ce6be73c58c3275a42ed81ba5935d336390ab680/third_party/WebKit/Source/devtools/tests/baseline/protocol-1.2/inspector/tracing/timeline-js/timeline-js-line-level-profile-expected.txt
[add] https://crrev.com/ce6be73c58c3275a42ed81ba5935d336390ab680/third_party/WebKit/Source/devtools/tests/baseline/protocol-1.2/inspector/tracing/timeline-js/timeline-script-tag-1-expected.txt
[add] https://crrev.com/ce6be73c58c3275a42ed81ba5935d336390ab680/third_party/WebKit/Source/devtools/tests/baseline/protocol-1.2/inspector/tracing/timeline-js/timeline-script-tag-2-expected.txt
[add] https://crrev.com/ce6be73c58c3275a42ed81ba5935d336390ab680/third_party/WebKit/Source/devtools/tests/baseline/protocol-1.2/inspector/tracing/timeline-network/timeline-network-resource-expected.txt
[add] https://crrev.com/ce6be73c58c3275a42ed81ba5935d336390ab680/third_party/WebKit/Source/devtools/tests/baseline/protocol-1.2/inspector/tracing/timeline-time/timeline-time-expected.txt
[add] https://crrev.com/ce6be73c58c3275a42ed81ba5935d336390ab680/third_party/WebKit/Source/devtools/tests/baseline/protocol-1.2/inspector/tracing/timeline-time/timeline-timer-expected.txt

Project Member

Comment 11 by bugdroid1@chromium.org, Feb 8 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/903b3929e9ea7f4403bea67d27ff954707549006

commit 903b3929e9ea7f4403bea67d27ff954707549006
Author: chenwilliam <chenwilliam@chromium.org>
Date: Wed Feb 08 21:12:40 2017

DevTools: rebaseline tests for backwards compatibility

BUG= 682078 

Review-Url: https://codereview.chromium.org/2687683005
Cr-Commit-Position: refs/heads/master@{#449090}

[modify] https://crrev.com/903b3929e9ea7f4403bea67d27ff954707549006/third_party/WebKit/Source/devtools/tests/TestExpectations
[add] https://crrev.com/903b3929e9ea7f4403bea67d27ff954707549006/third_party/WebKit/Source/devtools/tests/baseline/protocol-1.2/http/tests/inspector/network/x-frame-options-deny-expected.txt
[add] https://crrev.com/903b3929e9ea7f4403bea67d27ff954707549006/third_party/WebKit/Source/devtools/tests/baseline/protocol-1.2/http/tests/inspector/persistence/persistence-move-breakpoints-on-reload-expected.txt
[add] https://crrev.com/903b3929e9ea7f4403bea67d27ff954707549006/third_party/WebKit/Source/devtools/tests/baseline/protocol-1.2/http/tests/inspector/search/sources-search-scope-in-files-expected.txt
[add] https://crrev.com/903b3929e9ea7f4403bea67d27ff954707549006/third_party/WebKit/Source/devtools/tests/baseline/protocol-1.2/http/tests/inspector/sources/debugger/async-callstack-network-initiator-expected.txt
[add] https://crrev.com/903b3929e9ea7f4403bea67d27ff954707549006/third_party/WebKit/Source/devtools/tests/baseline/protocol-1.2/http/tests/inspector/sources/ui-source-code-metadata-expected.txt
[add] https://crrev.com/903b3929e9ea7f4403bea67d27ff954707549006/third_party/WebKit/Source/devtools/tests/baseline/protocol-1.2/inspector-protocol/layout-fonts/generic-system-ui-expected.txt
[add] https://crrev.com/903b3929e9ea7f4403bea67d27ff954707549006/third_party/WebKit/Source/devtools/tests/baseline/protocol-1.2/inspector-protocol/runtime/runtime-await-promise-expected.txt
[modify] https://crrev.com/903b3929e9ea7f4403bea67d27ff954707549006/third_party/WebKit/Source/devtools/tests/baseline/protocol-1.2/inspector/console/console-edit-property-value-expected.txt
[modify] https://crrev.com/903b3929e9ea7f4403bea67d27ff954707549006/third_party/WebKit/Source/devtools/tests/baseline/protocol-1.2/inspector/console/console-format-es6-expected.txt
[modify] https://crrev.com/903b3929e9ea7f4403bea67d27ff954707549006/third_party/WebKit/Source/devtools/tests/baseline/protocol-1.2/inspector/console/console-format-expected.txt
[modify] https://crrev.com/903b3929e9ea7f4403bea67d27ff954707549006/third_party/WebKit/Source/devtools/tests/baseline/protocol-1.2/inspector/console/console-log-object-with-getter-expected.txt
[modify] https://crrev.com/903b3929e9ea7f4403bea67d27ff954707549006/third_party/WebKit/Source/devtools/tests/baseline/protocol-1.2/inspector/console/console-object-preview-expected.txt
[add] https://crrev.com/903b3929e9ea7f4403bea67d27ff954707549006/third_party/WebKit/Source/devtools/tests/baseline/protocol-1.2/inspector/extensions/extensions-eval-expected.txt
[add] https://crrev.com/903b3929e9ea7f4403bea67d27ff954707549006/third_party/WebKit/Source/devtools/tests/baseline/protocol-1.2/inspector/extensions/extensions-sidebar-expected.txt
[add] https://crrev.com/903b3929e9ea7f4403bea67d27ff954707549006/third_party/WebKit/Source/devtools/tests/baseline/protocol-1.2/inspector/input-event-warning-expected.txt
[add] https://crrev.com/903b3929e9ea7f4403bea67d27ff954707549006/third_party/WebKit/Source/devtools/tests/baseline/protocol-1.2/inspector/layers/layer-replay-scale-expected.txt
[add] https://crrev.com/903b3929e9ea7f4403bea67d27ff954707549006/third_party/WebKit/Source/devtools/tests/baseline/protocol-1.2/inspector/layers/layer-tree-model-expected.txt
[add] https://crrev.com/903b3929e9ea7f4403bea67d27ff954707549006/third_party/WebKit/Source/devtools/tests/baseline/protocol-1.2/inspector/report-protocol-errors-expected.txt
[add] https://crrev.com/903b3929e9ea7f4403bea67d27ff954707549006/third_party/WebKit/Source/devtools/tests/baseline/protocol-1.2/inspector/schema-get-domains-matches-agents-expected.txt
[add] https://crrev.com/903b3929e9ea7f4403bea67d27ff954707549006/third_party/WebKit/Source/devtools/tests/baseline/protocol-1.2/inspector/screen-orientation-override-expected.txt

Status: WontFix (was: Started)
Doesn't seem to be worth the effort as it would take a huge investment to maintain a compatibility test suite and our current ad-hoc approach hasn't resulted in much issues thus far. @dgozman, feel free to re-open if you disagree.

Sign in to add a comment