<?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>54597</bug_id>
          
          <creation_ts>2011-02-16 15:44:19 -0800</creation_ts>
          <short_desc>InspectorAgent calls offsetWidth in the middle of painting</short_desc>
          <delta_ts>2011-02-28 03:24:27 -0800</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>PC</rep_platform>
          <op_sys>OS X 10.5</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="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Pavel Feldman">pfeldman</assigned_to>
          <cc>pfeldman</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>352420</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-02-16 15:44:19 -0800</bug_when>
    <thetext>I just hit this assertion:


ASSERTION FAILED: !view() || (!view()-&gt;isInLayout() &amp;&amp; !view()-&gt;isPainting())
/Volumes/InternalData/Development/webkit/OpenSource/Source/WebCore/dom/Document.cpp(1554) : virtual void WebCore::Document::updateStyleIfNeeded()
 -&gt; WebCore::Document::updateStyleIfNeeded()
 -&gt; WebCore::Document::updateLayout()
 -&gt; WebCore::Document::updateLayoutIgnorePendingStylesheets()
 -&gt; WebCore::Element::offsetWidth()
 -&gt; WebCore::InspectorAgent::drawElementTitle(WebCore::GraphicsContext&amp;, WebCore::IntRect const&amp;, WebCore::FloatRect const&amp;, WebCore::Settings*) const
 -&gt; WebCore::InspectorAgent::drawNodeHighlight(WebCore::GraphicsContext&amp;) const
 -&gt; WebCore::InspectorController::drawNodeHighlight(WebCore::GraphicsContext&amp;) const
 -&gt; -[WebNodeHighlightView drawRect:]
 -&gt; -[NSView _drawRect:clip:]
 -&gt; -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:]
 -&gt; -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:]
 -&gt; -[NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:]
 -&gt; -[NSNextStepFrame _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:]
 -&gt; -[NSView _displayRectIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:]
 -&gt; -[NSView displayIfNeeded]
 -&gt; -[WebNodeHighlight setNeedsUpdateInTargetViewRect:]
 -&gt; -[WebHTMLView drawSingleRect:]
 -&gt; -[WebHTMLView drawRect:]
 -&gt; -[NSView _drawRect:clip:]
 -&gt; -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:]
 -&gt; -[WebHTMLView(WebPrivate) _recursiveDisplayAllDirtyWithLockFocus:visRect:]
 -&gt; -[NSView _recursiveDisplaySelfAndDescendantsInRect:]
 -&gt; -[NSView _recursiveDisplayDescendantsInRect:]
 -&gt; -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:]
 -&gt; -[NSView _recursiveDisplaySelfAndDescendantsInRect:]
 -&gt; -[NSView _recursiveDisplayDescendantsInRect:]
 -&gt; -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:]
 -&gt; -[NSView _recursiveDisplaySelfAndDescendantsInRect:]
 -&gt; -[NSView _recursiveDisplayDescendantsInRect:]
 -&gt; -[NSView _recursiveDisplayAllDirtyWithLockFocus:visRect:]
 -&gt; -[NSView _recursiveDisplayRectIfNeededIgnoringOpacity:isVisibleRect:rectIsVisibleRectForView:topView:]

InspectorAgent::drawElementTitle() does:
    nodeTitle += String::number(highlightedElement ? highlightedElement-&gt;offsetWidth() : boundingBox.width());

Calling offsetWidth in the middle of painting is not allowed, because it can cause layout to happen.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>358493</commentid>
    <comment_count>1</comment_count>
      <attachid>83938</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-02-26 07:03:13 -0800</bug_when>
    <thetext>Created attachment 83938
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>358967</commentid>
    <comment_count>2</comment_count>
      <attachid>83938</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-02-28 03:24:19 -0800</bug_when>
    <thetext>Comment on attachment 83938
Patch

Clearing flags on attachment: 83938

Committed r79850: &lt;http://trac.webkit.org/changeset/79850&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>358968</commentid>
    <comment_count>3</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-02-28 03:24:27 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>83938</attachid>
            <date>2011-02-26 07:03:13 -0800</date>
            <delta_ts>2011-02-28 03:24:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-54597-20110226180306.patch</filename>
            <type>text/plain</type>
            <size>5249</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogNzk3MjcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA5ZmM4YmRkOTViMDg3NzJm
NDE1ZThkYTQ0ZjllZTRkNGMxNTBjNmE1Li40ZWNjNzljNzZiMWE0NTNlMDNkNThlYThmMTVkNmY2
MGNhYjk4NjkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMDItMjYgIFBhdmVs
IEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViSW5zcGVjdG9yOiBJbnNwZWN0b3JBZ2VudCBj
YWxscyBvZmZzZXRXaWR0aCBpbiB0aGUgbWlkZGxlIG9mIHBhaW50aW5nCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NDU5NworCisgICAgICAgICogaW5z
cGVjdG9yL0luc3BlY3RvckFnZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckFn
ZW50OjpkcmF3RWxlbWVudFRpdGxlKToKKwogMjAxMS0wMi0yNSAgUGF2ZWwgRmVsZG1hbiAgPHBm
ZWxkbWFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBUaW1vdGh5IEhhdGNo
ZXIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQWdlbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFnZW50LmNwcAppbmRleCBi
NTcxYTMwMjNjNDFjMDdlNWY1ODk2YTJhMWQxOTAzMmRiODRiMzhiLi5kNzUzY2ZmYmQxNGI4MTNj
N2RhODkxNWUyNzBhOGNhZmVlNWUwZGI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JBZ2VudC5jcHAKQEAgLTk5MSw3ICs5OTEsNyBAQCB2b2lkIEluc3BlY3RvckFnZW50
OjpkcmF3Tm9kZUhpZ2hsaWdodChHcmFwaGljc0NvbnRleHQmIGNvbnRleHQpIGNvbnN0CiAgICAg
SW50UmVjdCBib3VuZGluZ0JveCA9IHJlbmRlcmVyLT5hYnNvbHV0ZUJvdW5kaW5nQm94UmVjdCh0
cnVlKTsKICAgICBib3VuZGluZ0JveC5tb3ZlKG1haW5GcmFtZU9mZnNldCk7CiAKLSAgICBJbnRS
ZWN0IHRpdGxlUmVmZXJlbmNlQm94ID0gYm91bmRpbmdCb3g7CisgICAgSW50UmVjdCB0aXRsZUFu
Y2hvckJveCA9IGJvdW5kaW5nQm94OwogCiAgICAgQVNTRVJUKG1faW5zcGVjdGVkUGFnZSk7CiAK
QEAgLTEwMzEsNyArMTAzMSw3IEBAIHZvaWQgSW5zcGVjdG9yQWdlbnQ6OmRyYXdOb2RlSGlnaGxp
Z2h0KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCkgY29uc3QKICAgICAgICAgYWJzQm9yZGVyUXVh
ZC5tb3ZlKG1haW5GcmFtZU9mZnNldCk7CiAgICAgICAgIGFic01hcmdpblF1YWQubW92ZShtYWlu
RnJhbWVPZmZzZXQpOwogCi0gICAgICAgIHRpdGxlUmVmZXJlbmNlQm94ID0gYWJzTWFyZ2luUXVh
ZC5lbmNsb3NpbmdCb3VuZGluZ0JveCgpOworICAgICAgICB0aXRsZUFuY2hvckJveCA9IGFic01h
cmdpblF1YWQuZW5jbG9zaW5nQm91bmRpbmdCb3goKTsKIAogICAgICAgICBkcmF3SGlnaGxpZ2h0
Rm9yQm94KGNvbnRleHQsIGFic0NvbnRlbnRRdWFkLCBhYnNQYWRkaW5nUXVhZCwgYWJzQm9yZGVy
UXVhZCwgYWJzTWFyZ2luUXVhZCk7CiAgICAgfSBlbHNlIGlmIChyZW5kZXJlci0+aXNSZW5kZXJJ
bmxpbmUoKSB8fCBpc1NWR1JlbmRlcmVyKSB7CkBAIC0xMDUwLDEwICsxMDUwLDEwIEBAIHZvaWQg
SW5zcGVjdG9yQWdlbnQ6OmRyYXdOb2RlSGlnaGxpZ2h0KEdyYXBoaWNzQ29udGV4dCYgY29udGV4
dCkgY29uc3QKICAgICAgICAgcmV0dXJuOwogCiAgICAgV2ViQ29yZTo6U2V0dGluZ3MqIHNldHRp
bmdzID0gY29udGFpbmluZ0ZyYW1lLT5zZXR0aW5ncygpOwotICAgIGRyYXdFbGVtZW50VGl0bGUo
Y29udGV4dCwgdGl0bGVSZWZlcmVuY2VCb3gsIG92ZXJsYXlSZWN0LCBzZXR0aW5ncyk7CisgICAg
ZHJhd0VsZW1lbnRUaXRsZShjb250ZXh0LCBib3VuZGluZ0JveCwgdGl0bGVBbmNob3JCb3gsIG92
ZXJsYXlSZWN0LCBzZXR0aW5ncyk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yQWdlbnQ6OmRyYXdFbGVt
ZW50VGl0bGUoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBJbnRSZWN0JiBib3VuZGlu
Z0JveCwgY29uc3QgRmxvYXRSZWN0JiBvdmVybGF5UmVjdCwgV2ViQ29yZTo6U2V0dGluZ3MqIHNl
dHRpbmdzKSBjb25zdAordm9pZCBJbnNwZWN0b3JBZ2VudDo6ZHJhd0VsZW1lbnRUaXRsZShHcmFw
aGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEludFJlY3QmIGJvdW5kaW5nQm94LCBjb25zdCBJ
bnRSZWN0JiBhbmNob3JCb3gsIGNvbnN0IEZsb2F0UmVjdCYgb3ZlcmxheVJlY3QsIFdlYkNvcmU6
OlNldHRpbmdzKiBzZXR0aW5ncykgY29uc3QKIHsKICAgICBzdGF0aWMgY29uc3QgaW50IHJlY3RJ
bmZsYXRlUHggPSA0OwogICAgIHN0YXRpYyBjb25zdCBpbnQgZm9udEhlaWdodFB4ID0gMTI7CkBA
IC0xMDg2LDExICsxMDg2LDEwIEBAIHZvaWQgSW5zcGVjdG9yQWdlbnQ6OmRyYXdFbGVtZW50VGl0
bGUoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBJbnRSZWN0JiBiCiAgICAgICAgIH0K
ICAgICB9CiAKLSAgICBFbGVtZW50KiBoaWdobGlnaHRlZEVsZW1lbnQgPSBtX2hpZ2hsaWdodGVk
Tm9kZS0+aXNFbGVtZW50Tm9kZSgpID8gc3RhdGljX2Nhc3Q8RWxlbWVudCo+KG1faGlnaGxpZ2h0
ZWROb2RlLmdldCgpKSA6IDA7CiAgICAgbm9kZVRpdGxlICs9ICIgWyI7Ci0gICAgbm9kZVRpdGxl
ICs9IFN0cmluZzo6bnVtYmVyKGhpZ2hsaWdodGVkRWxlbWVudCA/IGhpZ2hsaWdodGVkRWxlbWVu
dC0+b2Zmc2V0V2lkdGgoKSA6IGJvdW5kaW5nQm94LndpZHRoKCkpOworICAgIG5vZGVUaXRsZSAr
PSBTdHJpbmc6Om51bWJlcihib3VuZGluZ0JveC53aWR0aCgpKTsKICAgICBub2RlVGl0bGUuYXBw
ZW5kKHN0YXRpY19jYXN0PFVDaGFyPigweDAwRDcpKTsgLy8gJnRpbWVzOwotICAgIG5vZGVUaXRs
ZSArPSBTdHJpbmc6Om51bWJlcihoaWdobGlnaHRlZEVsZW1lbnQgPyBoaWdobGlnaHRlZEVsZW1l
bnQtPm9mZnNldEhlaWdodCgpIDogYm91bmRpbmdCb3guaGVpZ2h0KCkpOworICAgIG5vZGVUaXRs
ZSArPSBTdHJpbmc6Om51bWJlcihib3VuZGluZ0JveC5oZWlnaHQoKSk7CiAgICAgbm9kZVRpdGxl
ICs9ICJdIjsKIAogICAgIEZvbnREZXNjcmlwdGlvbiBkZXNjOwpAQCAtMTEwMiw3ICsxMTAxLDcg
QEAgdm9pZCBJbnNwZWN0b3JBZ2VudDo6ZHJhd0VsZW1lbnRUaXRsZShHcmFwaGljc0NvbnRleHQm
IGNvbnRleHQsIGNvbnN0IEludFJlY3QmIGIKICAgICBmb250LnVwZGF0ZSgwKTsKIAogICAgIFRl
eHRSdW4gbm9kZVRpdGxlUnVuKG5vZGVUaXRsZSk7Ci0gICAgSW50UG9pbnQgdGl0bGVCYXNlUG9p
bnQgPSBJbnRQb2ludChib3VuZGluZ0JveC54KCksIGJvdW5kaW5nQm94Lm1heFkoKSAtIDEpOwor
ICAgIEludFBvaW50IHRpdGxlQmFzZVBvaW50ID0gSW50UG9pbnQoYW5jaG9yQm94LngoKSwgYW5j
aG9yQm94Lm1heFkoKSAtIDEpOwogICAgIHRpdGxlQmFzZVBvaW50Lm1vdmUocmVjdEluZmxhdGVQ
eCwgcmVjdEluZmxhdGVQeCk7CiAgICAgSW50UmVjdCB0aXRsZVJlY3QgPSBlbmNsb3NpbmdJbnRS
ZWN0KGZvbnQuc2VsZWN0aW9uUmVjdEZvclRleHQobm9kZVRpdGxlUnVuLCB0aXRsZUJhc2VQb2lu
dCwgZm9udEhlaWdodFB4KSk7CiAgICAgdGl0bGVSZWN0LmluZmxhdGUocmVjdEluZmxhdGVQeCk7
CkBAIC0xMTIxLDcgKzExMjAsNyBAQCB2b2lkIEluc3BlY3RvckFnZW50OjpkcmF3RWxlbWVudFRp
dGxlKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgSW50UmVjdCYgYgogCiAgICAgLy8g
SWYgdGhlIHRpcCBzdGlja3MgYmV5b25kIHRoZSBib3R0b20gb2Ygb3ZlcmxheVJlY3QsIHNob3cg
dGhlIHRpcCBhdCB0b3Agb2YgYm91bmRpbmcgYm94LgogICAgIGlmICh0aXRsZVJlY3QubWF4WSgp
ID4gb3ZlcmxheVJlY3QubWF4WSgpKSB7Ci0gICAgICAgIGR5ID0gYm91bmRpbmdCb3gueSgpIC0g
dGl0bGVSZWN0Lm1heFkoKSAtIGJvcmRlcldpZHRoUHg7CisgICAgICAgIGR5ID0gYW5jaG9yQm94
LnkoKSAtIHRpdGxlUmVjdC5tYXhZKCkgLSBib3JkZXJXaWR0aFB4OwogICAgICAgICAvLyBJZiB0
aGUgdGlwIHN0aWxsIHN0aWNrcyBiZXlvbmQgdGhlIGJvdHRvbSBvZiBvdmVybGF5UmVjdCwgYm90
dG9tLWFsaWduIHRoZSB0aXAgd2l0aCB0aGUgc2FpZCBib3VuZGFyeS4KICAgICAgICAgaWYgKHRp
dGxlUmVjdC5tYXhZKCkgKyBkeSA+IG92ZXJsYXlSZWN0Lm1heFkoKSkKICAgICAgICAgICAgIGR5
ID0gb3ZlcmxheVJlY3QubWF4WSgpIC0gdGl0bGVSZWN0Lm1heFkoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckFnZW50LmgKaW5kZXggNmRhMGI2MDIwM2JiNTE2N2I0Zjg1ZmI2
MTYzMDcxNTU2ZDY2NzE0My4uNDRhNDYxMTgxMTg4ZDdhZTY4OGI4NzRlMWY0MDNhNzg4YmQwMDAy
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFnZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckFnZW50LmgKQEAgLTE5NCw3
ICsxOTQsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGRyYXdOb2RlSGlnaGxpZ2h0KEdyYXBoaWNz
Q29udGV4dCYpIGNvbnN0OwogICAgIHZvaWQgb3BlbkluSW5zcGVjdGVkV2luZG93KEVycm9yU3Ry
aW5nKiBlcnJvciwgY29uc3QgU3RyaW5nJiB1cmwpOwotICAgIHZvaWQgZHJhd0VsZW1lbnRUaXRs
ZShHcmFwaGljc0NvbnRleHQmLCBjb25zdCBJbnRSZWN0JiBib3VuZGluZ0JveCwgY29uc3QgRmxv
YXRSZWN0JiBvdmVybGF5UmVjdCwgV2ViQ29yZTo6U2V0dGluZ3MqKSBjb25zdDsKKyAgICB2b2lk
IGRyYXdFbGVtZW50VGl0bGUoR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgSW50UmVjdCYgYm91bmRp
bmdCb3gsIGNvbnN0IEludFJlY3QmIGFuY2hvckJveCwgY29uc3QgRmxvYXRSZWN0JiBvdmVybGF5
UmVjdCwgV2ViQ29yZTo6U2V0dGluZ3MqKSBjb25zdDsKIAogI2lmIEVOQUJMRShKQVZBU0NSSVBU
X0RFQlVHR0VSKQogICAgIGJvb2wgaXNSZWNvcmRpbmdVc2VySW5pdGlhdGVkUHJvZmlsZSgpIGNv
bnN0Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>