WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
Bug 40886
Web Inspector: Backend Should Provide Full Supported CSS Properties List
https://bugs.webkit.org/show_bug.cgi?id=40886
Summary
Web Inspector: Backend Should Provide Full Supported CSS Properties List
Joseph Pecoraro
Reported
2010-06-20 10:08:40 PDT
Would be useful to have a full list calculated in the backend, so that the frontend doesn't calculate it every page load. Places that would be affected (for the better) are: - console autocompletion (injected side) InjectedScript._hiddenStyleProperties
bug 38448
- styles autocompletion (sidebar) WebInspector.CSSCompletions (bug
bug 17374
- css tokenizer (highlighting) WebInspector.SourceCSSTokenizer._propertyKeywords
http://trac.webkit.org/browser/trunk/WebCore/inspector/front-end/SourceCSSTokenizer.re2js
Attachments
[PATCH] InspectorFrontendHost Provides the List
(17.25 KB, patch)
2010-07-01 12:55 PDT
,
Joseph Pecoraro
no flags
Details
Formatted Diff
Diff
[PATCH] Addressed Style Issue and Rebased
(17.19 KB, patch)
2010-07-01 15:41 PDT
,
Joseph Pecoraro
pfeldman
: review-
Details
Formatted Diff
Diff
[PATCH] List Generated on Backend
(20.45 KB, patch)
2010-08-20 00:47 PDT
,
Joseph Pecoraro
pfeldman
: review+
Details
Formatted Diff
Diff
Show Obsolete
(2)
View All
Add attachment
proposed patch, testcase, etc.
Joseph Pecoraro
Comment 1
2010-06-20 21:58:33 PDT
This is what I see so far: window.getComputedStyle (no shorthands) - provides a list without shorthands, but with non-typical CSS properties such as SVG and dashboard styles. This is in effect using properties from any .in file with "CSSProperty" in the name, but it then strips shorthand properties. CSSTokenizer's list (shorthands, but missing some) - this is using everything from CSSProperty.in but not SVG, etc. So, a total list of all styles, including shorthands, can come from: shell> find . -name '*CSSProperty*.in' ./css/CSSPropertyNames.in ./css/DashboardSupportCSSPropertyNames.in ./css/SVGCSSPropertyNames.in ./css/WCSSPropertyNames.in There is already a global list generated with all of the above, it is generated via css/makeprop.pl. The derived files are: .../DerivedSources/WebCore/CSSPropertyNames.cpp .../DerivedSources/WebCore/CSSPropertyNames.gperf .../DerivedSources/WebCore/CSSPropertyNames.h .../DerivedSources/WebCore/CSSPropertyNames.in Inside .cpp we have this nice, global, list of all the CSS properties that getComputedStyle provides, including shorthands! Was it that easy?
Joseph Pecoraro
Comment 2
2010-06-21 00:07:02 PDT
I got this working, but making asynchronous calls to the backend to get the supported list of CSS properties probably isn't what we want (although I could get it to work). I'll continue in this direction for a bit. I think it would be nice to just run a script and generate a JavaScript file for us. So I think later I will try this approach. The problem here is it won't help with the Injected side, but the need for it on the injected side (for now) can be fixed in a different way.
Pavel Feldman
Comment 3
2010-06-21 03:10:44 PDT
> I think it would be nice to just run a script and generate a JavaScript file > for us. So I think later I will try this approach. The problem here is it > won't help with the Injected side, but the need for it on the injected > side (for now) can be fixed in a different way.
Just expose it in the CSSPropertyNames.h and pass data to injected script via the InjectedScriptHost interface (should probably be a lazy getter). Then you can get the data on the inspected page side and everybody is happy!
Joseph Pecoraro
Comment 4
2010-07-01 12:55:18 PDT
Created
attachment 60276
[details]
[PATCH] InspectorFrontendHost Provides the List This is no longer needed for the injected script side. This is only currently needed for the frontend side. @Pavel. I used ScriptArray and InspectorArray because this was a local call. Do you agree with that, or should I have gone async? Tests looked good, but I'm rebasing and testing now.
WebKit Review Bot
Comment 5
2010-07-01 12:57:14 PDT
Attachment 60276
[details]
did not pass style-queue: Failed to run "['WebKitTools/Scripts/check-webkit-style', '--no-squash']" exit_code: 1 WebCore/inspector/InspectorFrontendHost.cpp:39: Alphabetical sorting problem. [build/include_order] [4] Total errors found: 1 in 8 files If any of these errors are false positives, please file a bug against check-webkit-style.
Joseph Pecoraro
Comment 6
2010-07-01 15:41:13 PDT
Created
attachment 60304
[details]
[PATCH] Addressed Style Issue and Rebased Tests passed just fine.
Pavel Feldman
Comment 7
2010-07-02 01:06:15 PDT
Comment on
attachment 60304
[details]
[PATCH] Addressed Style Issue and Rebased WebCore/inspector/InspectorFrontendHost.cpp:35 + #include "CSSPropertyNames.h" This should not be defined in a front-end host. Imagine the remote debugging scenario. Frontend host is a simple stub there. What you really need is to fetch the actual list of properties from the inspected side. WebCore/inspector/InspectorFrontendHost.cpp:206 + ScriptArray InspectorFrontendHost::supportedCSSProperties() ScriptArray will soon go away. But you can still use it in InspectorController - we will migrate everything alltogether. However, using debuggerWorld her is a hack - if you implement it properly on the inspected page side, you will not have such a problem - there is a factory for ScriptArrays. WebCore/inspector/front-end/CSSCompletions.js:3 + WebInspector.CSSCompletions.startsWith = function(prefix) Nit: When did we get this file... I think we should merge it with CSSStyleModel! WebCore/inspector/front-end/SourceCSSTokenizer.js: + this._propertyKeywords = [ Nice!
Joseph Pecoraro
Comment 8
2010-08-20 00:47:41 PDT
Created
attachment 64933
[details]
[PATCH] List Generated on Backend
> This should not be defined in a front-end host. [...] What you really > need is to fetch the actual list of properties from the inspected side. > > ScriptArray will soon go away. [...]
Done by rebasing.
> WebCore/inspector/front-end/CSSCompletions.js:3 > + WebInspector.CSSCompletions.startsWith = function(prefix) > Nit: When did we get this file... I think we should merge it with CSSStyleModel!
Hmm, I didn't address this yet. I think CSSCompletions, being a special array is a bad idea (it required me to individually copy over elements). I think this "special array" concept should be removed, and it can be merged into CSSStyleModel as a separate patch. ----- Maybe, instead of "fetching it" from the Frontend, it should just be an automatic [notify] from the backend once the frontend is connected? Let me know what you think about that idea.
Pavel Feldman
Comment 9
2010-08-23 23:00:41 PDT
Comment on
attachment 64933
[details]
[PATCH] List Generated on Backend Nice patch! Saves footprint too! WebCore/inspector/front-end/inspector.js:561 + // As a DOMAgent method, this needs to happen after the frontend has loaded and the agent is available. Nit: You did not make it a domAgent method, but are stating so in the comment.
Joseph Pecoraro
Comment 10
2010-08-23 23:43:14 PDT
> WebCore/inspector/front-end/inspector.js:561 > + // As a DOMAgent method, this needs to happen after the frontend has loaded and the agent is available. > Nit: You did not make it a domAgent method, but are stating so in the comment.
Hmm, I"ll take a look at putting this on the front end's DOM Agent, or maybe some other more appropriate place. It is just the backend's Dom agent that needs to be created, which isn't done until that frontend host loaded call.
Joseph Pecoraro
Comment 11
2010-08-24 15:35:37 PDT
Committed
r65942
M WebCore/ChangeLog M WebCore/inspector/InspectorDOMAgent.h M WebCore/inspector/Inspector.idl M WebCore/inspector/front-end/SourceCSSTokenizer.js M WebCore/inspector/front-end/CSSCompletions.js M WebCore/inspector/front-end/SourceCSSTokenizer.re2js M WebCore/inspector/front-end/inspector.js M WebCore/inspector/InspectorDOMAgent.cpp M WebCore/css/makeprop.pl
r65942
= 6e1dd170c5b9f7416d6f63d11db82e09fd707f6d
http://trac.webkit.org/changeset/65942
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug