Changeset 112549 in webkit


Ignore:
Timestamp:
Mar 29, 2012 11:17:57 AM (12 years ago)
Author:
pfeldman@chromium.org
Message:

Web Inspector: subtree disapears from <iframe> after loading
https://bugs.webkit.org/show_bug.cgi?id=76552

Reviewed by Yury Semikhatsky.

Source/WebCore:

The problem was that content document subtree was not unbound upon iframe re-push.
Upon owner element refresh content document was not sent to the frontend
since backend assumed that front-end has already had the up-to-date version.

Test: inspector/elements/iframe-load-event.html

  • inspector/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::loadEventFired):

LayoutTests:

  • inspector/elements/iframe-load-event-expected.txt: Added.
  • inspector/elements/iframe-load-event.html: Added.
  • inspector/elements/resources/iframe-load-event-iframe-1.html: Added.
  • inspector/elements/resources/iframe-load-event-iframe-2.html: Added.
  • inspector/elements/resources/iframe-load-event-iframe.js: Added.

(loadSecondIFrame):
(test.step1.nodeInserted):
(test.step1):
(test.step2):
(test):

Location:
trunk
Files:
5 added
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r112547 r112549  
     12012-03-29  Pavel Feldman  <pfeldman@chromium.org>
     2
     3        Web Inspector: subtree disapears from <iframe> after loading
     4        https://bugs.webkit.org/show_bug.cgi?id=76552
     5
     6        Reviewed by Yury Semikhatsky.
     7
     8        * inspector/elements/iframe-load-event-expected.txt: Added.
     9        * inspector/elements/iframe-load-event.html: Added.
     10        * inspector/elements/resources/iframe-load-event-iframe-1.html: Added.
     11        * inspector/elements/resources/iframe-load-event-iframe-2.html: Added.
     12        * inspector/elements/resources/iframe-load-event-iframe.js: Added.
     13        (loadSecondIFrame):
     14        (test.step1.nodeInserted):
     15        (test.step1):
     16        (test.step2):
     17        (test):
     18
    1192012-03-29  Joseph Pecoraro  <pecoraro@apple.com>
    220
  • trunk/Source/WebCore/ChangeLog

    r112548 r112549  
     12012-03-29  Pavel Feldman  <pfeldman@chromium.org>
     2
     3        Web Inspector: subtree disapears from <iframe> after loading
     4        https://bugs.webkit.org/show_bug.cgi?id=76552
     5
     6        Reviewed by Yury Semikhatsky.
     7
     8        The problem was that content document subtree was not unbound upon iframe re-push.
     9        Upon owner element refresh content document was not sent to the frontend
     10        since backend assumed that front-end has already had the up-to-date version.
     11
     12        Test: inspector/elements/iframe-load-event.html
     13
     14        * inspector/InspectorDOMAgent.cpp:
     15        (WebCore::InspectorDOMAgent::loadEventFired):
     16
    1172012-03-29  Dana Jansens  <danakj@chromium.org>
    218
  • trunk/Source/WebCore/inspector/InspectorDOMAgent.cpp

    r112428 r112549  
    13721372        return;
    13731373
    1374     if (!m_childrenRequested.contains(frameOwnerId)) {
    1375         // No children are mapped yet -> only notify on changes of hasChildren.
    1376         m_frontend->childNodeCountUpdated(frameOwnerId, innerChildNodeCount(frameOwner));
    1377     } else {
    1378         // Re-add frame owner element together with its new children.
    1379         int parentId = m_documentNodeToIdMap.get(innerParentNode(frameOwner));
    1380         m_frontend->childNodeRemoved(parentId, frameOwnerId);
    1381         RefPtr<TypeBuilder::DOM::Node> value = buildObjectForNode(frameOwner, 0, &m_documentNodeToIdMap);
    1382         Node* previousSibling = innerPreviousSibling(frameOwner);
    1383         int prevId = previousSibling ? m_documentNodeToIdMap.get(previousSibling) : 0;
    1384         m_frontend->childNodeInserted(parentId, prevId, value.release());
    1385         // Invalidate children requested flag for the element.
    1386         m_childrenRequested.remove(m_childrenRequested.find(frameOwnerId));
    1387     }
     1374    // Re-add frame owner element together with its new children.
     1375    int parentId = m_documentNodeToIdMap.get(innerParentNode(frameOwner));
     1376    m_frontend->childNodeRemoved(parentId, frameOwnerId);
     1377    unbind(frameOwner, &m_documentNodeToIdMap);
     1378
     1379    RefPtr<TypeBuilder::DOM::Node> value = buildObjectForNode(frameOwner, 0, &m_documentNodeToIdMap);
     1380    Node* previousSibling = innerPreviousSibling(frameOwner);
     1381    int prevId = previousSibling ? m_documentNodeToIdMap.get(previousSibling) : 0;
     1382    m_frontend->childNodeInserted(parentId, prevId, value.release());
    13881383}
    13891384
Note: See TracChangeset for help on using the changeset viewer.