Web Inspector: Remove support for FileSystem in Frontend.
authorseokju@webkit.org <seokju@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 7 Jan 2014 00:52:17 +0000 (00:52 +0000)
committerseokju@webkit.org <seokju@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 7 Jan 2014 00:52:17 +0000 (00:52 +0000)
https://bugs.webkit.org/show_bug.cgi?id=126369

Reviewed by Joseph Pecoraro.

Source/WebCore:

No new tests, No change in behavior.

Remove leftover codes from protocol after r156692.

* CMakeLists.txt:
* DerivedSources.make:
* GNUmakefile.am:
* inspector/InspectorFrontendClient.h:
* inspector/InspectorFrontendClientLocal.h:
* inspector/InspectorFrontendHost.cpp:
* inspector/InspectorFrontendHost.h:
* inspector/InspectorFrontendHost.idl:
* inspector/protocol/FileSystem.json: Removed.

Source/WebInspectorUI:

Update InspectorWebBackendCommands after removing 'FileSystem' domain.

* UserInterface/InspectorWebBackendCommands.js:
* UserInterface/Legacy/6.0/InspectorWebBackendCommands.js:
* UserInterface/Legacy/7.0/InspectorWebBackendCommands.js:
* Versions/Inspector-iOS-6.0.json:
* Versions/Inspector-iOS-7.0.json:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@161385 268f45cc-cd09-0410-ab3c-d52691b4dbfc

16 files changed:
Source/WebCore/CMakeLists.txt
Source/WebCore/ChangeLog
Source/WebCore/DerivedSources.make
Source/WebCore/GNUmakefile.am
Source/WebCore/inspector/InspectorFrontendClient.h
Source/WebCore/inspector/InspectorFrontendClientLocal.h
Source/WebCore/inspector/InspectorFrontendHost.cpp
Source/WebCore/inspector/InspectorFrontendHost.h
Source/WebCore/inspector/InspectorFrontendHost.idl
Source/WebCore/inspector/protocol/FileSystem.json [deleted file]
Source/WebInspectorUI/ChangeLog
Source/WebInspectorUI/UserInterface/InspectorWebBackendCommands.js
Source/WebInspectorUI/UserInterface/Legacy/6.0/InspectorWebBackendCommands.js
Source/WebInspectorUI/UserInterface/Legacy/7.0/InspectorWebBackendCommands.js
Source/WebInspectorUI/Versions/Inspector-iOS-6.0.json
Source/WebInspectorUI/Versions/Inspector-iOS-7.0.json

index 7975862..41ebcb4 100644 (file)
@@ -766,7 +766,6 @@ set(WebCore_INSPECTOR_DOMAINS
     inspector/protocol/DOMDebugger.json
     inspector/protocol/DOMStorage.json
     inspector/protocol/Database.json
-    inspector/protocol/FileSystem.json
     inspector/protocol/HeapProfiler.json
     inspector/protocol/IndexedDB.json
     inspector/protocol/Input.json
index 08d1b66..63c2d07 100644 (file)
@@ -1,3 +1,24 @@
+2014-01-06  Seokju Kwon  <seokju@webkit.org>
+
+        Web Inspector: Remove support for FileSystem in Frontend.
+        https://bugs.webkit.org/show_bug.cgi?id=126369
+
+        Reviewed by Joseph Pecoraro.
+
+        No new tests, No change in behavior.
+
+        Remove leftover codes from protocol after r156692.
+
+        * CMakeLists.txt:
+        * DerivedSources.make:
+        * GNUmakefile.am:
+        * inspector/InspectorFrontendClient.h:
+        * inspector/InspectorFrontendClientLocal.h:
+        * inspector/InspectorFrontendHost.cpp:
+        * inspector/InspectorFrontendHost.h:
+        * inspector/InspectorFrontendHost.idl:
+        * inspector/protocol/FileSystem.json: Removed.
+
 2014-01-06  Zoltan Horvath  <zoltan@webkit.org>
 
         [CSS Regions][CSS Shapes] ASSERTION FAILED: m_segmentRanges.size() < m_segments.size()
index aa5f5d0..c49c7a7 100644 (file)
@@ -1084,7 +1084,6 @@ INSPECTOR_DOMAINS = \
     $(WebCore)/inspector/protocol/DOMDebugger.json \
     $(WebCore)/inspector/protocol/DOMStorage.json \
     $(WebCore)/inspector/protocol/Database.json \
-    $(WebCore)/inspector/protocol/FileSystem.json \
     $(WebCore)/inspector/protocol/HeapProfiler.json \
     $(WebCore)/inspector/protocol/IndexedDB.json \
     $(WebCore)/inspector/protocol/Input.json \
index c44a5d2..cfecee7 100644 (file)
@@ -343,7 +343,6 @@ WebCore_INSPECTOR_DOMAINS := \
     $(WebCore)/inspector/protocol/DOMDebugger.json \
     $(WebCore)/inspector/protocol/DOMStorage.json \
     $(WebCore)/inspector/protocol/Database.json \
-    $(WebCore)/inspector/protocol/FileSystem.json \
     $(WebCore)/inspector/protocol/HeapProfiler.json \
     $(WebCore)/inspector/protocol/IndexedDB.json \
     $(WebCore)/inspector/protocol/Input.json \
index a55e29c..9b0b75d 100644 (file)
@@ -75,11 +75,6 @@ public:
 
     virtual void sendMessageToBackend(const String&) = 0;
 
-    virtual bool supportsFileSystems() = 0;
-    virtual void requestFileSystems() = 0;
-    virtual void addFileSystem() = 0;
-    virtual void removeFileSystem(const String& fileSystemPath) = 0;
-
     virtual bool isUnderTest() = 0;
 };
 
index 05a22bf..b654f70 100644 (file)
@@ -76,10 +76,6 @@ public:
 
     virtual void sendMessageToBackend(const String& message);
 
-    virtual bool supportsFileSystems() { return false; }
-    virtual void requestFileSystems() { }
-    virtual void addFileSystem() { }
-    virtual void removeFileSystem(const String&) { }
     virtual bool isUnderTest();
 
     bool canAttachWindow();
index a849c72..7d7b1b1 100644 (file)
@@ -313,31 +313,6 @@ String InspectorFrontendHost::loadResourceSynchronously(const String& url)
     return String::fromUTF8(data.data(), data.size());
 }
 
-bool InspectorFrontendHost::supportsFileSystems()
-{
-    if (m_client)
-        return m_client->supportsFileSystems();
-    return false;
-}
-
-void InspectorFrontendHost::requestFileSystems()
-{
-    if (m_client)
-        m_client->requestFileSystems();
-}
-
-void InspectorFrontendHost::addFileSystem()
-{
-    if (m_client)
-        m_client->addFileSystem();
-}
-
-void InspectorFrontendHost::removeFileSystem(const String& fileSystemPath)
-{
-    if (m_client)
-        m_client->removeFileSystem(fileSystemPath);
-}
-
 bool InspectorFrontendHost::isUnderTest()
 {
     return m_client && m_client->isUnderTest();
index 7cc0e57..263e7ad 100644 (file)
@@ -84,11 +84,6 @@ public:
 
     String loadResourceSynchronously(const String& url);
 
-    bool supportsFileSystems();
-    void requestFileSystems();
-    void addFileSystem();
-    void removeFileSystem(const String& fileSystemPath);
-
     bool isUnderTest();
 
     void beep();
index 41fa2cc..b18fa10 100644 (file)
 
     DOMString loadResourceSynchronously(DOMString url);
 
-    boolean supportsFileSystems();
-    void requestFileSystems();
-    void addFileSystem();
-    void removeFileSystem(DOMString fileSystemPath);
-
     boolean isUnderTest();
 
     void beep();
diff --git a/Source/WebCore/inspector/protocol/FileSystem.json b/Source/WebCore/inspector/protocol/FileSystem.json
deleted file mode 100644 (file)
index 06a2803..0000000
+++ /dev/null
@@ -1,102 +0,0 @@
-{
-    "domain": "FileSystem",
-    "types": [
-        {
-            "id": "Entry",
-            "type": "object",
-            "properties": [
-                { "name": "url", "type": "string", "description": "filesystem: URL for the entry." },
-                { "name": "name", "type": "string", "description": "The name of the file or directory." },
-                { "name": "isDirectory", "type": "boolean", "description": "True if the entry is a directory." },
-                { "name": "mimeType", "type": "string", "optional": true, "description": "MIME type of the entry, available for a file only." },
-                { "name": "resourceType", "$ref": "Page.ResourceType", "optional": true, "description": "ResourceType of the entry, available for a file only." },
-                { "name": "isTextFile", "type": "boolean", "optional": true, "description": "True if the entry is a text file." }
-            ],
-            "description": "Represents a browser side file or directory."
-        },
-        {
-            "id": "Metadata",
-            "type": "object",
-            "properties": [
-                { "name": "modificationTime", "type": "number", "description": "Modification time." },
-                { "name": "size", "type": "number", "description": "File size. This field is always zero for directories." }
-            ],
-            "description": "Represents metadata of a file or entry."
-        }
-    ],
-    "commands": [
-        {
-            "name": "enable",
-            "description": "Enables events from backend."
-        },
-        {
-            "name": "disable",
-            "description": "Disables events from backend."
-        },
-        {
-            "name": "requestFileSystemRoot",
-            "async": true,
-            "parameters": [
-                { "name": "origin", "type": "string", "description": "Security origin of requesting FileSystem. One of frames in current page needs to have this security origin." },
-                { "name": "type", "type": "string", "enum": ["temporary", "persistent"], "description": "FileSystem type of requesting FileSystem." }
-            ],
-            "returns": [
-                { "name": "errorCode", "type": "integer", "description": "0, if no error. Otherwise, errorCode is set to FileError::ErrorCode value." },
-                { "name": "root", "$ref": "Entry", "optional": true, "description": "Contains root of the requested FileSystem if the command completed successfully." }
-            ],
-            "description": "Returns root directory of the FileSystem, if exists."
-        },
-        {
-            "name": "requestDirectoryContent",
-            "async": true,
-            "parameters": [
-                { "name": "url", "type": "string", "description": "URL of the directory that the frontend is requesting to read from." }
-            ],
-            "returns": [
-                { "name": "errorCode", "type": "integer", "description": "0, if no error. Otherwise, errorCode is set to FileError::ErrorCode value." },
-                { "name": "entries", "type": "array", "items": { "$ref": "Entry" }, "optional": true, "description": "Contains all entries on directory if the command completed successfully." }
-            ],
-            "description": "Returns content of the directory."
-        },
-        {
-            "name": "requestMetadata",
-            "async": true,
-            "parameters": [
-                { "name": "url", "type": "string", "description": "URL of the entry that the frontend is requesting to get metadata from." }
-            ],
-            "returns": [
-                { "name": "errorCode", "type": "integer", "description": "0, if no error. Otherwise, errorCode is set to FileError::ErrorCode value." },
-                { "name": "metadata", "$ref": "Metadata", "optional": true, "description": "Contains metadata of the entry if the command completed successfully." }
-            ],
-            "description": "Returns metadata of the entry."
-        },
-        {
-            "name": "requestFileContent",
-            "async": true,
-            "parameters": [
-                { "name": "url", "type": "string", "description": "URL of the file that the frontend is requesting to read from." },
-                { "name": "readAsText", "type": "boolean", "description": "True if the content should be read as text, otherwise the result will be returned as base64 encoded text." },
-                { "name": "start", "type": "integer", "optional": true, "description": "Specifies the start of range to read." },
-                { "name": "end", "type": "integer", "optional": true, "description": "Specifies the end of range to read exclusively." },
-                { "name": "charset", "type": "string", "optional": true, "description": "Overrides charset of the content when content is served as text." }
-            ],
-            "returns": [
-                { "name": "errorCode", "type": "integer", "description": "0, if no error. Otherwise, errorCode is set to FileError::ErrorCode value." },
-                { "name": "content", "type": "string", "optional": true, "description": "Content of the file." },
-                { "name": "charset", "type": "string", "optional": true, "description": "Charset of the content if it is served as text." }
-            ],
-            "description": "Returns content of the file. Result should be sliced into [start, end)."
-        },
-        {
-            "name": "deleteEntry",
-            "async": true,
-            "parameters": [
-                { "name": "url", "type": "string", "description": "URL of the entry to delete." }
-            ],
-            "returns": [
-                { "name": "errorCode", "type": "integer", "description": "0, if no error. Otherwise errorCode is set to FileError::ErrorCode value." }
-            ],
-            "description": "Deletes specified entry. If the entry is a directory, the agent deletes children recursively."
-        }
-    ]
-}
index 5a4a926..e74f30e 100644 (file)
@@ -1,5 +1,20 @@
 2014-01-06  Seokju Kwon  <seokju@webkit.org>
 
+        Web Inspector: Remove support for FileSystem in Frontend.
+        https://bugs.webkit.org/show_bug.cgi?id=126369
+
+        Reviewed by Joseph Pecoraro.
+
+        Update InspectorWebBackendCommands after removing 'FileSystem' domain.
+
+        * UserInterface/InspectorWebBackendCommands.js:
+        * UserInterface/Legacy/6.0/InspectorWebBackendCommands.js:
+        * UserInterface/Legacy/7.0/InspectorWebBackendCommands.js:
+        * Versions/Inspector-iOS-6.0.json:
+        * Versions/Inspector-iOS-7.0.json:
+
+2014-01-06  Seokju Kwon  <seokju@webkit.org>
+
         Web Inspector: Get rid of DOM.setFileInputFiles from Protocol
         https://bugs.webkit.org/show_bug.cgi?id=126312
 
index fb82899..78214df 100644 (file)
@@ -158,16 +158,6 @@ InspectorBackend.registerCommand("Database.disable", [], []);
 InspectorBackend.registerCommand("Database.getDatabaseTableNames", [{"name": "databaseId", "type": "string", "optional": false}], ["tableNames"]);
 InspectorBackend.registerCommand("Database.executeSQL", [{"name": "databaseId", "type": "string", "optional": false}, {"name": "query", "type": "string", "optional": false}], ["columnNames", "values", "sqlError"]);
 
-// FileSystem.
-InspectorBackend.registerFileSystemDispatcher = InspectorBackend.registerDomainDispatcher.bind(InspectorBackend, "FileSystem");
-InspectorBackend.registerCommand("FileSystem.enable", [], []);
-InspectorBackend.registerCommand("FileSystem.disable", [], []);
-InspectorBackend.registerCommand("FileSystem.requestFileSystemRoot", [{"name": "origin", "type": "string", "optional": false}, {"name": "type", "type": "string", "optional": false}], ["errorCode", "root"]);
-InspectorBackend.registerCommand("FileSystem.requestDirectoryContent", [{"name": "url", "type": "string", "optional": false}], ["errorCode", "entries"]);
-InspectorBackend.registerCommand("FileSystem.requestMetadata", [{"name": "url", "type": "string", "optional": false}], ["errorCode", "metadata"]);
-InspectorBackend.registerCommand("FileSystem.requestFileContent", [{"name": "url", "type": "string", "optional": false}, {"name": "readAsText", "type": "boolean", "optional": false}, {"name": "start", "type": "number", "optional": true}, {"name": "end", "type": "number", "optional": true}, {"name": "charset", "type": "string", "optional": true}], ["errorCode", "content", "charset"]);
-InspectorBackend.registerCommand("FileSystem.deleteEntry", [{"name": "url", "type": "string", "optional": false}], ["errorCode"]);
-
 // HeapProfiler.
 InspectorBackend.registerHeapProfilerDispatcher = InspectorBackend.registerDomainDispatcher.bind(InspectorBackend, "HeapProfiler");
 InspectorBackend.registerEvent("HeapProfiler.addProfileHeader", ["header"]);
index 7662941..0fbe1ba 100644 (file)
@@ -141,11 +141,6 @@ InspectorBackend.registerCommand("ApplicationCache.enable", [], []);
 InspectorBackend.registerCommand("ApplicationCache.getManifestForFrame", [{"name": "frameId", "type": "string", "optional": false}], ["manifestURL"]);
 InspectorBackend.registerCommand("ApplicationCache.getApplicationCacheForFrame", [{"name": "frameId", "type": "string", "optional": false}], ["applicationCache"]);
 
-// FileSystem.
-InspectorBackend.registerFileSystemDispatcher = InspectorBackend.registerDomainDispatcher.bind(InspectorBackend, "FileSystem");
-InspectorBackend.registerCommand("FileSystem.enable", [], []);
-InspectorBackend.registerCommand("FileSystem.disable", [], []);
-
 // DOM.
 InspectorBackend.registerDOMDispatcher = InspectorBackend.registerDomainDispatcher.bind(InspectorBackend, "DOM");
 InspectorBackend.registerEvent("DOM.documentUpdated", []);
index 248b42e..fc22658 100644 (file)
@@ -171,16 +171,6 @@ InspectorBackend.registerCommand("ApplicationCache.enable", [], []);
 InspectorBackend.registerCommand("ApplicationCache.getManifestForFrame", [{"name": "frameId", "type": "string", "optional": false}], ["manifestURL"]);
 InspectorBackend.registerCommand("ApplicationCache.getApplicationCacheForFrame", [{"name": "frameId", "type": "string", "optional": false}], ["applicationCache"]);
 
-// FileSystem.
-InspectorBackend.registerFileSystemDispatcher = InspectorBackend.registerDomainDispatcher.bind(InspectorBackend, "FileSystem");
-InspectorBackend.registerCommand("FileSystem.enable", [], []);
-InspectorBackend.registerCommand("FileSystem.disable", [], []);
-InspectorBackend.registerCommand("FileSystem.requestFileSystemRoot", [{"name": "origin", "type": "string", "optional": false}, {"name": "type", "type": "string", "optional": false}], ["errorCode", "root"]);
-InspectorBackend.registerCommand("FileSystem.requestDirectoryContent", [{"name": "url", "type": "string", "optional": false}], ["errorCode", "entries"]);
-InspectorBackend.registerCommand("FileSystem.requestMetadata", [{"name": "url", "type": "string", "optional": false}], ["errorCode", "metadata"]);
-InspectorBackend.registerCommand("FileSystem.requestFileContent", [{"name": "url", "type": "string", "optional": false}, {"name": "readAsText", "type": "boolean", "optional": false}, {"name": "start", "type": "number", "optional": true}, {"name": "end", "type": "number", "optional": true}, {"name": "charset", "type": "string", "optional": true}], ["errorCode", "content", "charset"]);
-InspectorBackend.registerCommand("FileSystem.deleteEntry", [{"name": "url", "type": "string", "optional": false}], ["errorCode"]);
-
 // DOM.
 InspectorBackend.registerDOMDispatcher = InspectorBackend.registerDomainDispatcher.bind(InspectorBackend, "DOM");
 InspectorBackend.registerEvent("DOM.documentUpdated", []);
index 445bbe5..4bc95b0 100644 (file)
         ]
     },
     {
-        "domain": "FileSystem",
-        "hidden": true,
-        "commands": [
-            {
-                "name": "enable",
-                "description": "Enables events from backend."
-            },
-            {
-                "name": "disable",
-                "description": "Disables events from backend.."
-            }
-        ],
-        "events": [
-        ]
-    },
-    {
         "domain": "DOM",
         "description": "This domain exposes DOM read/write operations. Each DOM Node is represented with its mirror object that has an <code>id</code>. This <code>id</code> can be used to get additional information on the Node, resolve it into the JavaScript object wrapper, etc. It is important that client receives DOM events only for the nodes that are known to the client. Backend keeps track of the nodes that were sent to the client and never sends the same node twice. It is client's responsibility to collect information about the nodes that were sent to the client.<p>Note that <code>iframe</code> owner elements will return corresponding document elements as their child nodes.</p>",
         "types": [
index 9d7f7cd..d361a36 100644 (file)
         ]
     },
     {
-        "domain": "FileSystem",
-        "types": [
-            {
-                "id": "Entry",
-                "type": "object",
-                "properties": [
-                    { "name": "url", "type": "string", "description": "filesystem: URL for the entry." },
-                    { "name": "name", "type": "string", "description": "The name of the file or directory." },
-                    { "name": "isDirectory", "type": "boolean", "description": "True if the entry is a directory." },
-                    { "name": "mimeType", "type": "string", "optional": true, "description": "MIME type of the entry, available for a file only." },
-                    { "name": "resourceType", "$ref": "Page.ResourceType", "optional": true, "description": "ResourceType of the entry, available for a file only." },
-                    { "name": "isTextFile", "type": "boolean", "optional": true, "description": "True if the entry is a text file." }
-                ],
-                "description": "Represents a browser side file or directory."
-            },
-            {
-                "id": "Metadata",
-                "type": "object",
-                "properties": [
-                    { "name": "modificationTime", "type": "number", "description": "Modification time." },
-                    { "name": "size", "type": "number", "description": "File size. This field is always zero for directories." }
-                ],
-                "description": "Represents metadata of a file or entry."
-            }
-        ],
-        "commands": [
-            {
-                "name": "enable",
-                "description": "Enables events from backend."
-            },
-            {
-                "name": "disable",
-                "description": "Disables events from backend."
-            },
-            {
-                "name": "requestFileSystemRoot",
-                "async": true,
-                "parameters": [
-                    { "name": "origin", "type": "string", "description": "Security origin of requesting FileSystem. One of frames in current page needs to have this security origin." },
-                    { "name": "type", "type": "string", "enum": ["temporary", "persistent"], "description": "FileSystem type of requesting FileSystem." }
-                ],
-                "returns": [
-                    { "name": "errorCode", "type": "integer", "description": "0, if no error. Otherwise, errorCode is set to FileError::ErrorCode value." },
-                    { "name": "root", "$ref": "Entry", "optional": true, "description": "Contains root of the requested FileSystem if the command completed successfully." }
-                ],
-                "description": "Returns root directory of the FileSystem, if exists."
-            },
-            {
-                "name": "requestDirectoryContent",
-                "async": true,
-                "parameters": [
-                    { "name": "url", "type": "string", "description": "URL of the directory that the frontend is requesting to read from." }
-                ],
-                "returns": [
-                    { "name": "errorCode", "type": "integer", "description": "0, if no error. Otherwise, errorCode is set to FileError::ErrorCode value." },
-                    { "name": "entries", "type": "array", "items": { "$ref": "Entry" }, "optional": true, "description": "Contains all entries on directory if the command completed successfully." }
-                ],
-                "description": "Returns content of the directory."
-            },
-            {
-                "name": "requestMetadata",
-                "async": true,
-                "parameters": [
-                    { "name": "url", "type": "string", "description": "URL of the entry that the frontend is requesting to get metadata from." }
-                ],
-                "returns": [
-                    { "name": "errorCode", "type": "integer", "description": "0, if no error. Otherwise, errorCode is set to FileError::ErrorCode value." },
-                    { "name": "metadata", "$ref": "Metadata", "optional": true, "description": "Contains metadata of the entry if the command completed successfully." }
-                ],
-                "description": "Returns metadata of the entry."
-            },
-            {
-                "name": "requestFileContent",
-                "async": true,
-                "parameters": [
-                    { "name": "url", "type": "string", "description": "URL of the file that the frontend is requesting to read from." },
-                    { "name": "readAsText", "type": "boolean", "description": "True if the content should be read as text, otherwise the result will be returned as base64 encoded text." },
-                    { "name": "start", "type": "integer", "optional": true, "description": "Specifies the start of range to read." },
-                    { "name": "end", "type": "integer", "optional": true, "description": "Specifies the end of range to read exclusively." },
-                    { "name": "charset", "type": "string", "optional": true, "description": "Overrides charset of the content when content is served as text." }
-                ],
-                "returns": [
-                    { "name": "errorCode", "type": "integer", "description": "0, if no error. Otherwise, errorCode is set to FileError::ErrorCode value." },
-                    { "name": "content", "type": "string", "optional": true, "description": "Content of the file." },
-                    { "name": "charset", "type": "string", "optional": true, "description": "Charset of the content if it is served as text." }
-                ],
-                "description": "Returns content of the file. Result should be sliced into [start, end)."
-            },
-            {
-                "name": "deleteEntry",
-                "async": true,
-                "parameters": [
-                    { "name": "url", "type": "string", "description": "URL of the entry to delete." }
-                ],
-                "returns": [
-                    { "name": "errorCode", "type": "integer", "description": "0, if no error. Otherwise errorCode is set to FileError::ErrorCode value." }
-                ],
-                "description": "Deletes specified entry. If the entry is a directory, the agent deletes children recursively."
-            }
-        ]
-    },
-    {
         "domain": "DOM",
         "description": "This domain exposes DOM read/write operations. Each DOM Node is represented with its mirror object that has an <code>id</code>. This <code>id</code> can be used to get additional information on the Node, resolve it into the JavaScript object wrapper, etc. It is important that client receives DOM events only for the nodes that are known to the client. Backend keeps track of the nodes that were sent to the client and never sends the same node twice. It is client's responsibility to collect information about the nodes that were sent to the client.<p>Note that <code>iframe</code> owner elements will return corresponding document elements as their child nodes.</p>",
         "types": [