-
Notifications
You must be signed in to change notification settings - Fork 7.6k
[CEF 2171] Collapsed tree nodes have no text #9965
Comments
Crap, this appears to be a browser repaint bug. The CSS seems fine as-is, and kicking it to update by adding and removing a This immediately makes this CEF update seem much more risky :-( |
On a hunch, I tried removing the "quiet scrollbars" stuff, but that didn't fix it. However, if I pull |
Ugh, not looking good as far as an easy smoking gun. I reduced it a bit to this: <div class="main-view">
<div id="sidebar" class="sidebar panel">
<div class="working-set-splitview-btn btn-alt-quiet"></div>
<div class="working-set-option-btn btn-alt-quiet"></div>
<div id="working-set-list-container">
</div>
<div id="project-files-header">
<span id="project-title" class="title"></span>
</div>
</div>
<div class="fake-sidebar">
<div id="project-files-container">
<!-- This will contain a dynamically generated <ul> hierarchy at runtime -->
</div>
</div> and .fake-sidebar {
width: 200px;
} Removing the width there will make the bug go away. Uhhh...? Notably, this removes the flexbox layout that is on a normal |
Interestingly, Chrome stable just hit 39.0.2171.65 and this new CEF is also 39.0.2171.65 -- so one thing we can do is run Brackets in the browser and see if the same bug repros there. I'll start dusting off my in-browser branch so we have it available for that... |
Scary. If this does repro in Chrome stable, then we'd be pretty sure to get a fix. |
There's no screen grab, unfortunately, but #8133 is what we were seeing with 1916 |
Sadly, I cannot get this to repro in browser yet. If anyone else would like to give it a try, I've pushed up |
Aha! I can repro this with the simple in-browser version in the CEF 2171 brackets-shell. In theory that code couldn't rely on any Brackets-only shell APIs, so it should work as a repo case in vanilla cefclient too (but still not Chrome itself) -- perfect testcase for Marshall. @JeffryBooher How hard is it to make a vanilla cefclient build? Is that in our grunt script or anything? If not, would you mind posting a copy somewhere so I could play with it? |
@peterflynn you will find it in your deps/cef folder under brackets-shell. Open cefclient.vcxproj in Visual Studio and build/run it. That will get you a basic web browser with an address bar that you should be able to enter a file:// URL to your test page |
@JeffryBooher I get a linker error: "cannot open input file '...\deps\cef\out\Debug\lib\libcef_dll_wrapper.lib'" (not sure why it's looking there since I had selected the Release configuration, but \lib is empty in both Debug & Release anyway...) |
I found a libcef_dll_wrapper.sln in the same folder, but if I open that and make a Debug build (still no idea why it's not looking in the Release folder), then I get more link errors in the cefclient project. Most of them are "mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '2' doesn't match value '0' in cefclient.obj." Any ideas? |
Aha, looks like you just can't make Release builds of cefclient. I got a Debug build working though -- and hurrah!, the labels are consistently broken there too. Hopefully this is good enough to package into a testcase now, since there's a clear rendering diff between CEF and Chromium. |
@peterflynn my bad, you were supposed to open |
I found the culprit. If I comment out the following CSS properties that can trigger the GPU mode, then the issue is fixed.
So this is definitely related to #9978 which is caused by |
Actually, the real culprit is not
It seems like our trick to render the tree offscreen (in negative coordinate) and then bring it back with margin-left and padding-left properties are ignored by latest Chromium. |
In my in-browser/cefclient testcase, removing I searched for other places where we use large values in CSS, and luckily nothing else looks too similar to this. ( |
I filed https://code.google.com/p/chromiumembedded/issues/detail?id=1452 on the CEF bug, but it does appear that we can safely work around it in this case by removing the margin/padding hack, which is no longer needed with our new React-based tree widget. |
Confirmed fixed in Brackets. Although the underlying CEF/Chromium issue is still present (see bug linked above), I don't think this needs to stay open tracking a fix since we don't have reason to believe anything else in Brackets will trigger that bug. Closing. |
Open the brackets project and collapse all top-level nodes
all disclosure triangles.
Expanding the tree node shows it but clicking other node will hide it again. Feels random.
Also, the
context-selected
styles are wrong.The text was updated successfully, but these errors were encountered: