<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>28847</bug_id>
          
          <creation_ts>2009-08-31 08:34:28 -0700</creation_ts>
          <short_desc>WebInspector: pass call frames into the frontend as a part of pausedScript event.</short_desc>
          <delta_ts>2009-08-31 10:21:43 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Pavel Feldman">pfeldman</reporter>
          <assigned_to name="Pavel Feldman">pfeldman</assigned_to>
          <cc>timothy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>143654</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2009-08-31 08:34:28 -0700</bug_when>
    <thetext>Currently pausedScript event initiates asynchronous call stack request. We can save a call and pass stack information as a part of pausedScript event instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>143656</commentid>
    <comment_count>1</comment_count>
      <attachid>38815</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2009-08-31 08:42:10 -0700</bug_when>
    <thetext>Created attachment 38815
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>143659</commentid>
    <comment_count>2</comment_count>
      <attachid>38815</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2009-08-31 09:28:30 -0700</bug_when>
    <thetext>Comment on attachment 38815
patch

It seems odd to me for InspectorController to call into the injected script just for it to call InspectorController.currentCallFrame() and return back to native code. IS there a more direct approch to getting the callframe script objects?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>143660</commentid>
    <comment_count>3</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2009-08-31 09:34:54 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 38815 [details])
&gt; It seems odd to me for InspectorController to call into the injected script
&gt; just for it to call InspectorController.currentCallFrame() and return back to
&gt; native code. IS there a more direct approch to getting the callframe script
&gt; objects?

I agree that it does look kinda weird. But the call frame serialization is rather complex and it is easier to perform it in JavaScript. It is also easier to keep frontend and injected script code in sync wrt data structures used during the serialization.

Currently I don&apos;t see any other way of handling it given that injected and frontend contexts are going to be isolated...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>143661</commentid>
    <comment_count>4</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2009-08-31 09:38:46 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (In reply to comment #2)
&gt; &gt; (From update of attachment 38815 [details] [details])
&gt; &gt; It seems odd to me for InspectorController to call into the injected script
&gt; &gt; just for it to call InspectorController.currentCallFrame() and return back to
&gt; &gt; native code. IS there a more direct approch to getting the callframe script
&gt; &gt; objects?
&gt; 
&gt; I agree that it does look kinda weird. But the call frame serialization is
&gt; rather complex and it is easier to perform it in JavaScript. It is also easier
&gt; to keep frontend and injected script code in sync wrt data structures used
&gt; during the serialization.

OK. I can go with that.

&gt; Currently I don&apos;t see any other way of handling it given that injected and
&gt; frontend contexts are going to be isolated...

How far are we away from doing the isolation and removing quarantine objects?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>143663</commentid>
    <comment_count>5</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2009-08-31 09:57:42 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; How far are we away from doing the isolation and removing quarantine objects?

1. Database panel interaction is not yet serialized.
2. I need help with establishing these isolated contexts. There was a question to Sam pending somewhere in one of the early bugs
3. I am off for vacations next week for 14 days, so this activity will either suspend or be continued by Yury.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>143669</commentid>
    <comment_count>6</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2009-08-31 10:21:43 -0700</bug_when>
    <thetext>Committing to http://svn.webkit.org/repository/webkit/trunk ...
	M	WebCore/ChangeLog
	M	WebCore/inspector/InspectorController.cpp
	M	WebCore/inspector/InspectorFrontend.cpp
	M	WebCore/inspector/InspectorFrontend.h
	M	WebCore/inspector/front-end/DOMAgent.js
	M	WebCore/inspector/front-end/ScriptsPanel.js
	M	WebCore/inspector/front-end/inspector.js
Committed r47897</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>38815</attachid>
            <date>2009-08-31 08:42:10 -0700</date>
            <delta_ts>2009-08-31 09:28:30 -0700</delta_ts>
            <desc>patch</desc>
            <filename>call_frames</filename>
            <type>text/plain</type>
            <size>5325</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MWIyMzkwOC4uYWU2ZjVkOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAwOS0wOC0zMSAgUGF2ZWwgRmVsZG1h
biAgPHBmZWxkbWFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBUaW1vdGh5
IEhhdGNoZXIuCisKKyAgICAgICAgV2ViSW5zcGVjdG9yOiBwYXNzIGNhbGwgZnJhbWVzIGludG8g
dGhlIGZyb250ZW5kIGFzIGEgcGFydCBvZgorICAgICAgICBwYXVzZWRTY3JpcHQgZXZlbnQuCisK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI4ODQ3CisK
KyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjpkaWRQYXVzZSk6CisgICAgICAgICogaW5zcGVj
dG9yL0luc3BlY3RvckZyb250ZW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZy
b250ZW5kOjpwYXVzZWRTY3JpcHQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9u
dGVuZC5oOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUuZGVidWdnZXJQYXVz
ZWQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLnBhdXNlZFNjcmlwdCk6CisKIDIwMDktMDgtMzEgIFRvciBBcm5lIFZl
c3Riw7ggIDx0b3IuYXJuZS52ZXN0Ym9Abm9raWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IEFyaXlhIEhpZGF5YXQuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JD
b250cm9sbGVyLmNwcCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3Bw
CmluZGV4IGFiOGVlYTUuLjQ1Nzk4MDIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckNvbnRyb2xsZXIuY3BwCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNv
bnRyb2xsZXIuY3BwCkBAIC0xMjc0LDcgKzEyNzQsOSBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xs
ZXI6OmZhaWxlZFRvUGFyc2VTb3VyY2UoRXhlY1N0YXRlKiwgY29uc3QgU291cmNlQ29kZSYgc291
cgogCiB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OmRpZFBhdXNlKCkKIHsKLSAgICBtX2Zyb250
ZW5kLT5wYXVzZWRTY3JpcHQoKTsKKyAgICBTY3JpcHRGdW5jdGlvbkNhbGwgZnVuY3Rpb24obV9z
Y3JpcHRTdGF0ZSwgbV9pbmplY3RlZFNjcmlwdE9iaiwgImdldENhbGxGcmFtZXMiKTsKKyAgICBT
Y3JpcHRWYWx1ZSBjYWxsRnJhbWVzID0gZnVuY3Rpb24uY2FsbCgpOworICAgIG1fZnJvbnRlbmQt
PnBhdXNlZFNjcmlwdChjYWxsRnJhbWVzKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JDb250cm9sbGVy
OjpkaWRDb250aW51ZSgpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JG
cm9udGVuZC5jcHAgYi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZC5jcHAKaW5k
ZXggNDU3Zjc1NS4uYTRiNWY0ZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVj
dG9yRnJvbnRlbmQuY3BwCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5k
LmNwcApAQCAtMjQ0LDkgKzI0NCwxMSBAQCB2b2lkIEluc3BlY3RvckZyb250ZW5kOjpzZXRSZWNv
cmRpbmdQcm9maWxlKGJvb2wgaXNQcm9maWxpbmcpCiAgICAgZnVuY3Rpb24tPmNhbGwoKTsKIH0K
IAotdm9pZCBJbnNwZWN0b3JGcm9udGVuZDo6cGF1c2VkU2NyaXB0KCkKK3ZvaWQgSW5zcGVjdG9y
RnJvbnRlbmQ6OnBhdXNlZFNjcmlwdChjb25zdCBTY3JpcHRWYWx1ZSYgY2FsbEZyYW1lcykKIHsK
LSAgICBjYWxsU2ltcGxlRnVuY3Rpb24oInBhdXNlZFNjcmlwdCIpOworICAgIE93blB0cjxTY3Jp
cHRGdW5jdGlvbkNhbGw+IGZ1bmN0aW9uKG5ld0Z1bmN0aW9uQ2FsbCgicGF1c2VkU2NyaXB0Iikp
OworICAgIGZ1bmN0aW9uLT5hcHBlbmRBcmd1bWVudChjYWxsRnJhbWVzKTsKKyAgICBmdW5jdGlv
bi0+Y2FsbCgpOwogfQogCiB2b2lkIEluc3BlY3RvckZyb250ZW5kOjpyZXN1bWVkU2NyaXB0KCkK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kLmggYi9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZC5oCmluZGV4IDNhZGE1ODcuLmFmZjU1ODkg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kLmgKKysrIGIv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmQuaApAQCAtODgsNyArODgsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgZmFpbGVkVG9QYXJzZVNjcmlwdFNvdXJj
ZShjb25zdCBKU0M6OlNvdXJjZUNvZGUmLCBpbnQgZXJyb3JMaW5lLCBjb25zdCBKU0M6OlVTdHJp
bmcmIGVycm9yTWVzc2FnZSk7CiAgICAgICAgIHZvaWQgYWRkUHJvZmlsZShjb25zdCBKU0M6OkpT
VmFsdWUmIHByb2ZpbGUpOwogICAgICAgICB2b2lkIHNldFJlY29yZGluZ1Byb2ZpbGUoYm9vbCBp
c1Byb2ZpbGluZyk7Ci0gICAgICAgIHZvaWQgcGF1c2VkU2NyaXB0KCk7CisgICAgICAgIHZvaWQg
cGF1c2VkU2NyaXB0KGNvbnN0IFNjcmlwdFZhbHVlJiBjYWxsRnJhbWVzKTsKICAgICAgICAgdm9p
ZCByZXN1bWVkU2NyaXB0KCk7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL0RPTUFnZW50LmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RP
TUFnZW50LmpzCmluZGV4IGE1MTQ3NzIuLjhhMGZmYzYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9ET01BZ2VudC5qcworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvRE9NQWdlbnQuanMKQEAgLTc3NiwxMyArNzc2LDYgQEAgSW5zcGVjdG9yQ29udHJvbGxl
ci5vcGVuSW5JbnNwZWN0ZWRXaW5kb3cgPSBmdW5jdGlvbih1cmwsIGNhbGxiYWNrKQogICAgIH0s
IDApOwogfQogCi1JbnNwZWN0b3JDb250cm9sbGVyLmdldENhbGxGcmFtZXMgPSBmdW5jdGlvbihj
YWxsYmFjaykKLXsKLSAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewotICAgICAgICBjYWxsYmFj
ayhJbmplY3RlZFNjcmlwdC5nZXRDYWxsRnJhbWVzKCkpOwotICAgIH0sIDApOwotfQotCiBJbnNw
ZWN0b3JDb250cm9sbGVyLmV2YWx1YXRlSW5DYWxsRnJhbWUgPSBmdW5jdGlvbihjYWxsRnJhbWVJ
ZCwgY29kZSwgY2FsbGJhY2spCiB7CiAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanMgYi9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzCmluZGV4IGQxN2ZkMGMuLjkw
YTRiOTMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFu
ZWwuanMKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcwpA
QCAtMzk1LDcgKzM5NSw3IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0g
ewogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0sCiAKLSAgICBkZWJ1Z2dlclBhdXNlZDog
ZnVuY3Rpb24oKQorICAgIGRlYnVnZ2VyUGF1c2VkOiBmdW5jdGlvbihjYWxsRnJhbWVzKQogICAg
IHsKICAgICAgICAgdGhpcy5fcGF1c2VkID0gdHJ1ZTsKICAgICAgICAgdGhpcy5fd2FpdGluZ1Rv
UGF1c2UgPSBmYWxzZTsKQEAgLTQwMywxNyArNDAzLDExIEBAIFdlYkluc3BlY3Rvci5TY3JpcHRz
UGFuZWwucHJvdG90eXBlID0gewogCiAgICAgICAgIHRoaXMuX3VwZGF0ZURlYnVnZ2VyQnV0dG9u
cygpOwogCi0gICAgICAgIHZhciBzZWxmID0gdGhpczsKLSAgICAgICAgdmFyIGNhbGxTdGFja1Bh
bmUgPSB0aGlzLnNpZGViYXJQYW5lcy5jYWxsc3RhY2s7Ci0gICAgICAgIGZ1bmN0aW9uIGNhbGxi
YWNrKGNhbGxGcmFtZXMpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGNhbGxTdGFja1BhbmUudXBk
YXRlKGNhbGxGcmFtZXMsIHNlbGYuX3NvdXJjZUlETWFwKTsKLSAgICAgICAgICAgIGNhbGxTdGFj
a1BhbmUuc2VsZWN0ZWRDYWxsRnJhbWUgPSBjYWxsRnJhbWVzWzBdOworICAgICAgICB0aGlzLnNp
ZGViYXJQYW5lcy5jYWxsc3RhY2sudXBkYXRlKGNhbGxGcmFtZXMsIHRoaXMuX3NvdXJjZUlETWFw
KTsKKyAgICAgICAgdGhpcy5zaWRlYmFyUGFuZXMuY2FsbHN0YWNrLnNlbGVjdGVkQ2FsbEZyYW1l
ID0gY2FsbEZyYW1lc1swXTsKIAotICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmN1cnJlbnRQYW5l
bCA9IHNlbGY7Ci0gICAgICAgICAgICB3aW5kb3cuZm9jdXMoKTsKLSAgICAgICAgfQotICAgICAg
ICBJbnNwZWN0b3JDb250cm9sbGVyLmdldENhbGxGcmFtZXMoY2FsbGJhY2spOworICAgICAgICBX
ZWJJbnNwZWN0b3IuY3VycmVudFBhbmVsID0gdGhpczsKKyAgICAgICAgd2luZG93LmZvY3VzKCk7
CiAgICAgfSwKIAogICAgIGRlYnVnZ2VyUmVzdW1lZDogZnVuY3Rpb24oKQpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcyBiL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMKaW5kZXggZWI5M2UzNS4uODhlNjUzOSAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcworKysgYi9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzCkBAIC0xMDQ5LDkgKzEwNDksOSBA
QCBXZWJJbnNwZWN0b3IuZmFpbGVkVG9QYXJzZVNjcmlwdFNvdXJjZSA9IGZ1bmN0aW9uKHNvdXJj
ZVVSTCwgc291cmNlLCBzdGFydGluZ0xpbgogICAgIHRoaXMucGFuZWxzLnNjcmlwdHMuYWRkU2Ny
aXB0KG51bGwsIHNvdXJjZVVSTCwgc291cmNlLCBzdGFydGluZ0xpbmUsIGVycm9yTGluZSwgZXJy
b3JNZXNzYWdlKTsKIH0KIAotV2ViSW5zcGVjdG9yLnBhdXNlZFNjcmlwdCA9IGZ1bmN0aW9uKCkK
K1dlYkluc3BlY3Rvci5wYXVzZWRTY3JpcHQgPSBmdW5jdGlvbihjYWxsRnJhbWVzKQogewotICAg
IHRoaXMucGFuZWxzLnNjcmlwdHMuZGVidWdnZXJQYXVzZWQoKTsKKyAgICB0aGlzLnBhbmVscy5z
Y3JpcHRzLmRlYnVnZ2VyUGF1c2VkKGNhbGxGcmFtZXMpOwogfQogCiBXZWJJbnNwZWN0b3IucmVz
dW1lZFNjcmlwdCA9IGZ1bmN0aW9uKCkK
</data>
<flag name="review"
          id="19806"
          type_id="1"
          status="+"
          setter="timothy"
    />
          </attachment>
      

    </bug>

</bugzilla>