Bug 109908 - Web Inspector: support stable remote object ids
Summary: Web Inspector: support stable remote object ids
Status: REOPENED
Alias: None
Product: WebKit
Classification: Unclassified
Component: Web Inspector (show other bugs)
Version: 528+ (Nightly build)
Hardware: All All
: P2 Normal
Assignee: Nobody
URL:
Keywords: InRadar
Depends on:
Blocks: 29714
  Show dependency treegraph
 
Reported: 2013-02-15 00:29 PST by Yury Semikhatsky
Modified: 2016-12-13 15:38 PST (History)
19 users (show)

See Also:


Attachments
Patch (22.68 KB, patch)
2013-03-05 06:25 PST, Yury Semikhatsky
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Yury Semikhatsky 2013-02-15 00:29:41 PST
At the moment inspector backend will generate new remote object id even though the object may have already been requested before and its id hasn't been released yet. Having stable remote object ids would improve debugging experience.
Comment 1 Sandip Chitale 2013-02-15 07:22:00 PST
This will be useful in implementing the enhancement: id=29714
Comment 2 Yury Semikhatsky 2013-03-05 06:25:31 PST
Created attachment 191482 [details]
Patch
Comment 3 Yury Semikhatsky 2013-03-06 07:21:00 PST
Committed r144924: <http://trac.webkit.org/changeset/144924>
Comment 4 Csaba Osztrogonác 2013-03-06 10:46:34 PST
(In reply to comment #3)
> Committed r144924: <http://trac.webkit.org/changeset/144924>

It made zillion inspector tests crash/assert everywhere:
- Mac: http://build.webkit.org/results/Apple%20Lion%20Debug%20WK1%20%28Tests%29/r144928%20%287239%29/results.html
- Qt: http://build.webkit.sed.hu/results/x86-64%20Linux%20Qt%20Debug/r144931%20%2828011%29/results.html

Could you check and fix it, please?
Comment 5 Rafael Weinstein 2013-03-06 11:07:02 PST
Reverted r144924 for reason:

caused multiple crashes in inspector/debugger tests

Committed r144950: <http://trac.webkit.org/changeset/144950>
Comment 6 Rafael Weinstein 2013-03-06 11:07:36 PST
FYI. All the stack traces looked like this:

crash log for DumpRenderTree (pid 2718):
STDOUT: <empty>
STDERR: objc[2718]: Class MockCrApp is implemented in both /Volumes/data/b/build/slave/WebKit_Mac10_7__dbg_/build/src/xcodebuild/Debug/libwebkit.dylib and /Volumes/data/b/build/slave/WebKit_Mac10_7__dbg_/build/src/xcodebuild/Debug/DumpRenderTree.app/Contents/MacOS/DumpRenderTree. One of the two will be used. Which one is undefined.
STDERR: ASSERTION FAILED: !isDeletedBucket(*(lookupForWriting(Extractor::extract(entry)).first))
STDERR: ../../third_party/WebKit/Source/WTF/wtf/HashTable.h(953) : void WTF::HashTable<WebCore::ScriptObject, WTF::KeyValuePair<WebCore::ScriptObject, unsigned int>, WTF::KeyValuePairKeyExtractor<WTF::KeyValuePair<WebCore::ScriptObject, unsigned int> >, WTF::ScriptObjectHash, WTF::HashMapValueTraits<WTF::HashTraits<WebCore::ScriptObject>, WTF::HashTraits<unsigned int> >, WTF::HashTraits<WebCore::ScriptObject> >::reinsert(ValueType &) [Key = WebCore::ScriptObject, Value = WTF::KeyValuePair<WebCore::ScriptObject, unsigned int>, Extractor = WTF::KeyValuePairKeyExtractor<WTF::KeyValuePair<WebCore::ScriptObject, unsigned int> >, HashFunctions = WTF::ScriptObjectHash, Traits = WTF::HashMapValueTraits<WTF::HashTraits<WebCore::ScriptObject>, WTF::HashTraits<unsigned int> >, KeyTraits = WTF::HashTraits<WebCore::ScriptObject>]
STDERR: 1   0x92dd7e4 WTF::HashTable<WebCore::ScriptObject, WTF::KeyValuePair<WebCore::ScriptObject, unsigned int>, WTF::KeyValuePairKeyExtractor<WTF::KeyValuePair<WebCore::ScriptObject, unsigned int> >, WTF::ScriptObjectHash, WTF::HashMapValueTraits<WTF::HashTraits<WebCore::ScriptObject>, WTF::HashTraits<unsigned int> >, WTF::HashTraits<WebCore::ScriptObject> >::reinsert(WTF::KeyValuePair<WebCore::ScriptObject, unsigned int>&)
STDERR: 2   0x92dd4da WTF::HashTable<WebCore::ScriptObject, WTF::KeyValuePair<WebCore::ScriptObject, unsigned int>, WTF::KeyValuePairKeyExtractor<WTF::KeyValuePair<WebCore::ScriptObject, unsigned int> >, WTF::ScriptObjectHash, WTF::HashMapValueTraits<WTF::HashTraits<WebCore::ScriptObject>, WTF::HashTraits<unsigned int> >, WTF::HashTraits<WebCore::ScriptObject> >::rehash(int)
STDERR: 3   0x92df9e8 WTF::HashTable<WebCore::ScriptObject, WTF::KeyValuePair<WebCore::ScriptObject, unsigned int>, WTF::KeyValuePairKeyExtractor<WTF::KeyValuePair<WebCore::ScriptObject, unsigned int> >, WTF::ScriptObjectHash, WTF::HashMapValueTraits<WTF::HashTraits<WebCore::ScriptObject>, WTF::HashTraits<unsigned int> >, WTF::HashTraits<WebCore::ScriptObject> >::expand()
STDERR: 4   0x92df61d WTF::HashTableAddResult<WTF::HashTableIterator<WebCore::ScriptObject, WTF::KeyValuePair<WebCore::ScriptObject, unsigned int>, WTF::KeyValuePairKeyExtractor<WTF::KeyValuePair<WebCore::ScriptObject, unsigned int> >, WTF::ScriptObjectHash, WTF::HashMapValueTraits<WTF::HashTraits<WebCore::ScriptObject>, WTF::HashTraits<unsigned int> >, WTF::HashTraits<WebCore::ScriptObject> > > WTF::HashTable<WebCore::ScriptObject, WTF::KeyValuePair<WebCore::ScriptObject, unsigned int>, WTF::KeyValuePairKeyExtractor<WTF::KeyValuePair<WebCore::ScriptObject, unsigned int> >, WTF::ScriptObjectHash, WTF::HashMapValueTraits<WTF::HashTraits<WebCore::ScriptObject>, WTF::HashTraits<unsigned int> >, WTF::HashTraits<WebCore::ScriptObject> >::add<WTF::HashMapTranslator<WTF::HashMapValueTraits<WTF::HashTraits<WebCore::ScriptObject>, WTF::HashTraits<unsigned int> >, WTF::ScriptObjectHash>, WebCore::ScriptObject, unsigned int>(WebCore::ScriptObject const&, unsigned int const&)
STDERR: 5   0x92df32f WTF::HashMap<WebCore::ScriptObject, unsigned int, WTF::ScriptObjectHash, WTF::HashTraits<WebCore::ScriptObject>, WTF::HashTraits<unsigned int> >::inlineAdd(WebCore::ScriptObject const&, unsigned int const&)
STDERR: 6   0x92df1af WTF::HashMap<WebCore::ScriptObject, unsigned int, WTF::ScriptObjectHash, WTF::HashTraits<WebCore::ScriptObject>, WTF::HashTraits<unsigned int> >::add(WebCore::ScriptObject const&, unsigned int const&)
STDERR: 7   0x92cedc0 WebCore::InjectedScriptManager::ObjectIdMap::objectId(WebCore::ScriptObject const&)
STDERR: 8   0x92ccf4c WebCore::InjectedScriptManager::objectId(WebCore::ScriptObject const&)
STDERR: 9   0x92c910b WebCore::InjectedScriptHost::objectId(WebCore::ScriptObject const&)
STDERR: 10  0x8de2d4e WebCore::V8InjectedScriptHost::objectIdMethodCustom(v8::Arguments const&)
STDERR: 11  0x7b5792c _ZN7WebCore28InjectedScriptHostV8InternalL22objectIdMethodCallbackERKN2v89ArgumentsE
STDERR: 12  0x47a51634
Comment 7 Radar WebKit Bug Importer 2014-12-09 14:06:06 PST
<rdar://problem/19195609>