Changeset 104586 in webkit
- Timestamp:
- Jan 10, 2012 9:01:05 AM (12 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 2 added
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/CMakeLists.txt
r104532 r104586 871 871 inspector/ConsoleMessage.cpp 872 872 inspector/ContentSearchUtils.cpp 873 inspector/DOMEditor.cpp 873 874 inspector/DOMNodeHighlighter.cpp 874 875 inspector/IdentifiersFactory.cpp -
trunk/Source/WebCore/ChangeLog
r104585 r104586 1 2012-01-10 Pavel Feldman <pfeldman@google.com> 2 3 Web Inspector: add "free flow DOM editing" experiment. 4 https://bugs.webkit.org/show_bug.cgi?id=75955 5 6 This change enables HTML editing from Resources panel experiment. 7 8 Reviewed by Yury Semikhatsky. 9 10 * CMakeLists.txt: 11 * English.lproj/localizedStrings.js: 12 * GNUmakefile.list.am: 13 * Target.pri: 14 * WebCore.gypi: 15 * WebCore.vcproj/WebCore.vcproj: 16 * WebCore.xcodeproj/project.pbxproj: 17 * inspector/DOMEditor.cpp: Added. 18 (WebCore::DOMEditor::DOMEditor): 19 (WebCore::DOMEditor::~DOMEditor): 20 (WebCore::DOMEditor::patch): 21 (WebCore::DOMEditor::NodeDigest::NodeDigest): 22 (WebCore::DOMEditor::patchElement): 23 (WebCore::DOMEditor::patchNode): 24 (WebCore::DOMEditor::patchChildren): 25 (WebCore::addStringToSHA1): 26 (WebCore::DOMEditor::createNodeDigest): 27 * inspector/DOMEditor.h: Added. 28 * inspector/InspectorDOMAgent.cpp: 29 (WebCore::InspectorDOMAgent::setOuterHTML): 30 * inspector/front-end/DOMAgent.js: 31 (WebInspector.DOMAgent): 32 (WebInspector.DOMModelResourceBinding): 33 (WebInspector.DOMModelResourceBinding.prototype.setContent): 34 (WebInspector.DOMModelResourceBinding.prototype.canSetContent): 35 * inspector/front-end/Settings.js: 36 (WebInspector.ExperimentsSettings): 37 1 38 2012-01-10 Stephen Chenney <schenney@chromium.org> 2 39 -
trunk/Source/WebCore/GNUmakefile.list.am
r104528 r104586 2328 2328 Source/WebCore/inspector/ContentSearchUtils.cpp \ 2329 2329 Source/WebCore/inspector/ContentSearchUtils.h \ 2330 Source/WebCore/inspector/DOMEditor.cpp \ 2331 Source/WebCore/inspector/DOMEditor.h \ 2330 2332 Source/WebCore/inspector/DOMNodeHighlighter.cpp \ 2331 2333 Source/WebCore/inspector/DOMNodeHighlighter.h \ -
trunk/Source/WebCore/Target.pri
r104528 r104586 850 850 inspector/ConsoleMessage.cpp \ 851 851 inspector/ContentSearchUtils.cpp \ 852 inspector/DOMEditor.cpp \ 852 853 inspector/DOMNodeHighlighter.cpp \ 853 854 inspector/IdentifiersFactory.cpp \ … … 1908 1909 inspector/ConsoleMessage.h \ 1909 1910 inspector/ContentSearchUtils.h \ 1911 inspector/DOMEditor.h \ 1910 1912 inspector/DOMNodeHighlighter.h \ 1911 1913 inspector/DOMWrapperVisitor.h \ -
trunk/Source/WebCore/WebCore.gypi
r104566 r104586 2731 2731 'inspector/ContentSearchUtils.cpp', 2732 2732 'inspector/ContentSearchUtils.h', 2733 'inspector/DOMEditor.cpp', 2734 'inspector/DOMEditor.h', 2733 2735 'inspector/DOMNodeHighlighter.cpp', 2734 2736 'inspector/DOMNodeHighlighter.h', -
trunk/Source/WebCore/WebCore.vcproj/WebCore.vcproj
r104528 r104586 71131 71131 </File> 71132 71132 <File 71133 RelativePath="..\inspector\DOMEditor.cpp" 71134 > 71135 </File> 71136 <File 71137 RelativePath="..\inspector\DOMEditor.h" 71138 > 71139 </File> 71140 <File 71133 71141 RelativePath="..\inspector\DOMNodeHighlighter.cpp" 71134 71142 > -
trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj
r104528 r104586 1853 1853 7AA51DD5148506A900AD2752 /* InspectorMemoryAgent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7AA51DD3148506A900AD2752 /* InspectorMemoryAgent.cpp */; }; 1854 1854 7AA51DD6148506A900AD2752 /* InspectorMemoryAgent.h in Headers */ = {isa = PBXBuildFile; fileRef = 7AA51DD4148506A900AD2752 /* InspectorMemoryAgent.h */; }; 1855 7AABA25914BC613300AA9A11 /* DOMEditor.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7AABA25714BC613300AA9A11 /* DOMEditor.cpp */; }; 1856 7AABA25A14BC613300AA9A11 /* DOMEditor.h in Headers */ = {isa = PBXBuildFile; fileRef = 7AABA25814BC613300AA9A11 /* DOMEditor.h */; }; 1855 1857 7AB0B1C01211A62200A76940 /* InspectorDatabaseAgent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7AB0B1BE1211A62200A76940 /* InspectorDatabaseAgent.cpp */; }; 1856 1858 7AB0B1C11211A62200A76940 /* InspectorDatabaseAgent.h in Headers */ = {isa = PBXBuildFile; fileRef = 7AB0B1BF1211A62200A76940 /* InspectorDatabaseAgent.h */; }; … … 9163 9165 7AA51DD3148506A900AD2752 /* InspectorMemoryAgent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = InspectorMemoryAgent.cpp; sourceTree = "<group>"; }; 9164 9166 7AA51DD4148506A900AD2752 /* InspectorMemoryAgent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InspectorMemoryAgent.h; sourceTree = "<group>"; }; 9167 7AABA25714BC613300AA9A11 /* DOMEditor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = DOMEditor.cpp; sourceTree = "<group>"; }; 9168 7AABA25814BC613300AA9A11 /* DOMEditor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DOMEditor.h; sourceTree = "<group>"; }; 9165 9169 7AB0B1BE1211A62200A76940 /* InspectorDatabaseAgent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = InspectorDatabaseAgent.cpp; sourceTree = "<group>"; }; 9166 9170 7AB0B1BF1211A62200A76940 /* InspectorDatabaseAgent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InspectorDatabaseAgent.h; sourceTree = "<group>"; }; … … 14574 14578 59102FB914327D3B003C9D04 /* ContentSearchUtils.cpp */, 14575 14579 59102FBA14327D3B003C9D04 /* ContentSearchUtils.h */, 14580 7AABA25714BC613300AA9A11 /* DOMEditor.cpp */, 14581 7AABA25814BC613300AA9A11 /* DOMEditor.h */, 14576 14582 4F1442261339FD6200E0D6F8 /* DOMNodeHighlighter.cpp */, 14577 14583 4F1442271339FD6200E0D6F8 /* DOMNodeHighlighter.h */, … … 24898 24904 974A862314B7ADBB003FDC76 /* FrameDestructionObserver.h in Headers */, 24899 24905 97D2AD0414B823A60093DF32 /* DOMWindowProperty.h in Headers */, 24906 7AABA25A14BC613300AA9A11 /* DOMEditor.h in Headers */, 24900 24907 ); 24901 24908 runOnlyForDeploymentPostprocessing = 0; … … 27804 27811 974A862214B7ADBB003FDC76 /* FrameDestructionObserver.cpp in Sources */, 27805 27812 97D2AD0314B823A60093DF32 /* DOMWindowProperty.cpp in Sources */, 27813 7AABA25914BC613300AA9A11 /* DOMEditor.cpp in Sources */, 27806 27814 ); 27807 27815 runOnlyForDeploymentPostprocessing = 0; -
trunk/Source/WebCore/inspector/InspectorDOMAgent.cpp
r104371 r104586 48 48 #include "Cookie.h" 49 49 #include "CookieJar.h" 50 #include "DOMEditor.h" 50 51 #include "DOMNodeHighlighter.h" 51 52 #include "DOMWindow.h" … … 633 634 void InspectorDOMAgent::setOuterHTML(ErrorString* errorString, int nodeId, const String& outerHTML, int* newId) 634 635 { 636 if (!nodeId) { 637 DOMEditor domEditor(m_document.get()); 638 domEditor.patch(outerHTML); 639 *newId = 0; 640 return; 641 } 642 635 643 Node* node = assertNode(errorString, nodeId); 636 644 if (!node) 637 645 return; 638 646 639 Element* parentElement = node->parentElement(); 640 if (!parentElement) 641 return; 647 Node* parentNode = node->parentNode(); 648 if (!parentNode) { 649 *errorString = "Editing of the detached nodes is not supported"; 650 return; 651 } 642 652 643 653 Document* document = node->ownerDocument(); … … 650 660 651 661 RefPtr<DocumentFragment> fragment = DocumentFragment::create(document); 652 fragment->parseHTML(outerHTML, parent Element);662 fragment->parseHTML(outerHTML, parentNode->nodeType() == Node::ELEMENT_NODE ? static_cast<Element*>(parentNode) : document->documentElement()); 653 663 654 664 ExceptionCode ec = 0; 655 parent Element->replaceChild(fragment.release(), node, ec);665 parentNode->replaceChild(fragment.release(), node, ec); 656 666 if (ec) { 657 667 *errorString = "Failed to replace Node with new contents"; … … 671 681 } 672 682 673 Node* newNode = previousSibling ? previousSibling->nextSibling() : parent Element->firstChild();683 Node* newNode = previousSibling ? previousSibling->nextSibling() : parentNode->firstChild(); 674 684 if (!newNode) { 675 685 // The only child node has been deleted. -
trunk/Source/WebCore/inspector/front-end/DOMAgent.js
r103623 r104586 530 530 this._attributeLoadNodeIds = {}; 531 531 InspectorBackend.registerDOMDispatcher(new WebInspector.DOMDispatcher(this)); 532 if (WebInspector.experimentsSettings.freeFlowDOMEditing.isEnabled()) 533 new WebInspector.DOMModelResourceBinding(this); 532 534 } 533 535 … … 1075 1077 */ 1076 1078 WebInspector.domAgent = null; 1079 1080 /** 1081 * @constructor 1082 * @implements {WebInspector.ResourceDomainModelBinding} 1083 */ 1084 WebInspector.DOMModelResourceBinding = function(domAgent) 1085 { 1086 this._domAgent = domAgent; 1087 WebInspector.Resource.registerDomainModelBinding(WebInspector.Resource.Type.Document, this); 1088 } 1089 1090 WebInspector.DOMModelResourceBinding.prototype = { 1091 setContent: function(resource, content, majorChange, userCallback) 1092 { 1093 DOMAgent.setOuterHTML(0, content, userCallback); 1094 }, 1095 1096 canSetContent: function() 1097 { 1098 return true; 1099 } 1100 } 1101 1102 WebInspector.DOMModelResourceBinding.prototype.__proto__ = WebInspector.ResourceDomainModelBinding.prototype; -
trunk/Source/WebCore/inspector/front-end/Settings.js
r104541 r104586 170 170 this.useScriptsNavigator = this._createExperiment("useScriptsNavigator", "Use file navigator and tabbed editor container in scripts panel"); 171 171 this.sourceFrameAlwaysEditable = this._createExperiment("sourceFrameAlwaysEditable", "Make resources always editable"); 172 this.freeFlowDOMEditing = this._createExperiment("freeFlowDOMEditing", "Enable free flow DOM editing"); 172 173 173 174 this._cleanUpSetting();
Note: See TracChangeset
for help on using the changeset viewer.