2010-10-25 Sheriff Bot <webkit.review.bot@gmail.com>
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 25 Oct 2010 17:44:32 +0000 (17:44 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 25 Oct 2010 17:44:32 +0000 (17:44 +0000)
        Unreviewed, rolling out r70451.
        http://trac.webkit.org/changeset/70451
        https://bugs.webkit.org/show_bug.cgi?id=48249

        Broke set-unloaded-frame-location.html under Qt (Requested by
        caseq on #webkit).

        * GNUmakefile.am:
        * JavaScriptCore.gypi:
        * JavaScriptCore.xcodeproj/project.pbxproj:
        * wtf/text/TextPosition.h: Removed.
2010-10-25  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r70451.
        http://trac.webkit.org/changeset/70451
        https://bugs.webkit.org/show_bug.cgi?id=48249

        Broke set-unloaded-frame-location.html under Qt (Requested by
        caseq on #webkit).

        * ForwardingHeaders/wtf/text/TextPosition.h: Removed.
2010-10-25  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r70451.
        http://trac.webkit.org/changeset/70451
        https://bugs.webkit.org/show_bug.cgi?id=48249

        Broke set-unloaded-frame-location.html under Qt (Requested by
        caseq on #webkit).

        * ForwardingHeaders/wtf/text/TextPosition.h: Removed.
        * bindings/js/ScriptSourceCode.h:
        (WebCore::ScriptSourceCode::ScriptSourceCode):
        * bindings/v8/ScheduledAction.cpp:
        (WebCore::ScheduledAction::ScheduledAction):
        * bindings/v8/ScriptController.cpp:
        (WebCore::ScriptController::eventHandlerLineNumber):
        (WebCore::ScriptController::eventHandlerColumnNumber):
        * bindings/v8/ScriptController.h:
        * bindings/v8/ScriptEventListener.cpp:
        (WebCore::createAttributeEventListener):
        * bindings/v8/ScriptSourceCode.h:
        (WebCore::ScriptSourceCode::ScriptSourceCode):
        (WebCore::ScriptSourceCode::startLine):
        * bindings/v8/V8LazyEventListener.cpp:
        (WebCore::V8LazyEventListener::V8LazyEventListener):
        (WebCore::V8LazyEventListener::prepareListenerObject):
        * bindings/v8/V8LazyEventListener.h:
        (WebCore::V8LazyEventListener::create):
        * bindings/v8/V8Proxy.cpp:
        (WebCore::V8Proxy::compileScript):
        (WebCore::V8Proxy::evaluate):
        (WebCore::V8Proxy::runScript):
        * bindings/v8/V8Proxy.h:
        * bindings/v8/WorkerContextExecutionProxy.cpp:
        (WebCore::WorkerContextExecutionProxy::evaluate):
        (WebCore::WorkerContextExecutionProxy::runScript):
        * bindings/v8/WorkerContextExecutionProxy.h:
        * bindings/v8/WorkerScriptController.cpp:
        (WebCore::WorkerScriptController::evaluate):
        * dom/PendingScript.cpp:
        (WebCore::PendingScript::releaseElementAndClear):
        * dom/PendingScript.h:
        (WebCore::PendingScript::PendingScript):
        (WebCore::PendingScript::operator=):
        (WebCore::PendingScript::startingLineNumber):
        * dom/ScriptableDocumentParser.h:
        * dom/XMLDocumentParser.h:
        * dom/XMLDocumentParserLibxml2.cpp:
        (WebCore::XMLDocumentParser::XMLDocumentParser):
        (WebCore::XMLDocumentParser::startElementNs):
        (WebCore::XMLDocumentParser::endElementNs):
        (WebCore::XMLDocumentParser::lineNumber):
        (WebCore::XMLDocumentParser::columnNumber):
        * dom/XMLDocumentParserQt.cpp:
        (WebCore::XMLDocumentParser::XMLDocumentParser):
        (WebCore::XMLDocumentParser::parseStartElement):
        (WebCore::XMLDocumentParser::parseEndElement):
        * html/parser/HTMLDocumentParser.cpp:
        (WebCore::HTMLDocumentParser::runScriptsForPausedTreeBuilder):
        (WebCore::HTMLDocumentParser::columnNumber):
        * html/parser/HTMLDocumentParser.h:
        * html/parser/HTMLScriptRunner.cpp:
        (WebCore::HTMLScriptRunner::sourceFromPendingScript):
        (WebCore::HTMLScriptRunner::execute):
        (WebCore::HTMLScriptRunner::runScript):
        * html/parser/HTMLScriptRunner.h:
        * html/parser/HTMLTreeBuilder.cpp:
        (WebCore::HTMLTreeBuilder::HTMLTreeBuilder):
        (WebCore::HTMLTreeBuilder::takeScriptToProcess):
        (WebCore::HTMLTreeBuilder::processEndTag):
        (WebCore::HTMLTreeBuilder::processScriptStartTag):
        * html/parser/HTMLTreeBuilder.h:
2010-10-25  Sheriff Bot  <webkit.review.bot@gmail.com>

        Unreviewed, rolling out r70451.
        http://trac.webkit.org/changeset/70451
        https://bugs.webkit.org/show_bug.cgi?id=48249

        Broke set-unloaded-frame-location.html under Qt (Requested by
        caseq on #webkit).

        * src/WebFrameImpl.cpp:
        (WebKit::WebFrameImpl::executeScript):
        (WebKit::WebFrameImpl::executeScriptInIsolatedWorld):
        (WebKit::WebFrameImpl::executeScriptAndReturnValue):

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

36 files changed:
JavaScriptCore/ChangeLog
JavaScriptCore/GNUmakefile.am
JavaScriptCore/JavaScriptCore.gypi
JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj
JavaScriptCore/wtf/text/TextPosition.h [deleted file]
JavaScriptGlue/ChangeLog
JavaScriptGlue/ForwardingHeaders/wtf/text/TextPosition.h [deleted file]
WebCore/ChangeLog
WebCore/ForwardingHeaders/wtf/text/TextPosition.h [deleted file]
WebCore/bindings/js/ScriptSourceCode.h
WebCore/bindings/v8/ScheduledAction.cpp
WebCore/bindings/v8/ScriptController.cpp
WebCore/bindings/v8/ScriptController.h
WebCore/bindings/v8/ScriptEventListener.cpp
WebCore/bindings/v8/ScriptSourceCode.h
WebCore/bindings/v8/V8LazyEventListener.cpp
WebCore/bindings/v8/V8LazyEventListener.h
WebCore/bindings/v8/V8Proxy.cpp
WebCore/bindings/v8/V8Proxy.h
WebCore/bindings/v8/WorkerContextExecutionProxy.cpp
WebCore/bindings/v8/WorkerContextExecutionProxy.h
WebCore/bindings/v8/WorkerScriptController.cpp
WebCore/dom/PendingScript.cpp
WebCore/dom/PendingScript.h
WebCore/dom/ScriptableDocumentParser.h
WebCore/dom/XMLDocumentParser.h
WebCore/dom/XMLDocumentParserLibxml2.cpp
WebCore/dom/XMLDocumentParserQt.cpp
WebCore/html/parser/HTMLDocumentParser.cpp
WebCore/html/parser/HTMLDocumentParser.h
WebCore/html/parser/HTMLScriptRunner.cpp
WebCore/html/parser/HTMLScriptRunner.h
WebCore/html/parser/HTMLTreeBuilder.cpp
WebCore/html/parser/HTMLTreeBuilder.h
WebKit/chromium/ChangeLog
WebKit/chromium/src/WebFrameImpl.cpp

index e42c7dd..1cb5c99 100644 (file)
@@ -1,3 +1,17 @@
+2010-10-25  Sheriff Bot  <webkit.review.bot@gmail.com>
+
+        Unreviewed, rolling out r70451.
+        http://trac.webkit.org/changeset/70451
+        https://bugs.webkit.org/show_bug.cgi?id=48249
+
+        Broke set-unloaded-frame-location.html under Qt (Requested by
+        caseq on #webkit).
+
+        * GNUmakefile.am:
+        * JavaScriptCore.gypi:
+        * JavaScriptCore.xcodeproj/project.pbxproj:
+        * wtf/text/TextPosition.h: Removed.
+
 2010-10-25  Patrick Gansterer  <paroga@webkit.org>
 
         Reviewed by David Kilzer.
index f7806b4..c507f5d 100644 (file)
@@ -518,7 +518,6 @@ javascriptcore_sources += \
        JavaScriptCore/wtf/text/StringImpl.cpp \
        JavaScriptCore/wtf/text/StringImpl.h \
        JavaScriptCore/wtf/text/StringStatics.cpp \
-       JavaScriptCore/wtf/text/TextPosition.h \
        JavaScriptCore/wtf/text/WTFString.cpp \
        JavaScriptCore/wtf/text/WTFString.h \
        JavaScriptCore/wtf/ThreadIdentifierDataPthreads.cpp \
index deb36fb..6252d07 100644 (file)
             'wtf/text/StringImpl.cpp',
             'wtf/text/StringImpl.h',
             'wtf/text/StringStatics.cpp',
-            'wtf/text/TextPosition.h',
             'wtf/text/WTFString.cpp',
             'wtf/text/WTFString.h',
             'wtf/unicode/Collator.h',
index b40d74e..d134a73 100644 (file)
                E1EE793D0D6C9B9200FEA3BA /* ThreadingPthreads.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E1EE793C0D6C9B9200FEA3BA /* ThreadingPthreads.cpp */; };
                E1EF79AA0CE97BA60088D500 /* UTF8.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E1EF79A80CE97BA60088D500 /* UTF8.cpp */; };
                E48E0F2D0F82151700A8CA37 /* FastAllocBase.h in Headers */ = {isa = PBXBuildFile; fileRef = E48E0F2C0F82151700A8CA37 /* FastAllocBase.h */; settings = {ATTRIBUTES = (Private, ); }; };
-               F3BD31ED126735770065467F /* TextPosition.h in Headers */ = {isa = PBXBuildFile; fileRef = F3BD31D0126730180065467F /* TextPosition.h */; settings = {ATTRIBUTES = (Private, ); }; };
                FE1B447A0ECCD73B004F4DD1 /* StdLibExtras.h in Headers */ = {isa = PBXBuildFile; fileRef = FE1B44790ECCD73B004F4DD1 /* StdLibExtras.h */; settings = {ATTRIBUTES = (Private, ); }; };
 /* End PBXBuildFile section */
 
                E1EF79A80CE97BA60088D500 /* UTF8.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = UTF8.cpp; sourceTree = "<group>"; };
                E1EF79A90CE97BA60088D500 /* UTF8.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UTF8.h; sourceTree = "<group>"; };
                E48E0F2C0F82151700A8CA37 /* FastAllocBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FastAllocBase.h; sourceTree = "<group>"; };
-               F3BD31D0126730180065467F /* TextPosition.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TextPosition.h; path = text/TextPosition.h; sourceTree = "<group>"; };
                F5BB2BC5030F772101FCFE1D /* Completion.h */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = Completion.h; sourceTree = "<group>"; tabWidth = 8; };
                F5C290E60284F98E018635CA /* JavaScriptCorePrefix.h */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = JavaScriptCorePrefix.h; sourceTree = "<group>"; tabWidth = 8; };
                F68EBB8C0255D4C601FF60F7 /* config.h */ = {isa = PBXFileReference; fileEncoding = 30; indentWidth = 4; lastKnownFileType = sourcecode.c.h; path = config.h; sourceTree = "<group>"; tabWidth = 8; };
                                868BFA07117CEFD100B908B1 /* StringImpl.h */,
                                86B99AE2117E578100DF5A90 /* StringImplBase.h */,
                                8626BECE11928E3900782FAB /* StringStatics.cpp */,
-                               F3BD31D0126730180065467F /* TextPosition.h */,
                                868BFA15117CF19900B908B1 /* WTFString.cpp */,
                                868BFA16117CF19900B908B1 /* WTFString.h */,
                        );
                                90213E3E123A40C200D422F3 /* MemoryStatistics.h in Headers */,
                                A730B6121250068F009D25B1 /* StrictEvalActivation.h in Headers */,
                                933F5CDC1269229B0049191E /* NullPtr.h in Headers */,
-                               F3BD31ED126735770065467F /* TextPosition.h in Headers */,
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };
diff --git a/JavaScriptCore/wtf/text/TextPosition.h b/JavaScriptCore/wtf/text/TextPosition.h
deleted file mode 100644 (file)
index 63dc594..0000000
+++ /dev/null
@@ -1,141 +0,0 @@
-/*
- * Copyright (C) 2010, Google Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1.  Redistributions of source code must retain the above copyright
- *     notice, this list of conditions and the following disclaimer.
- * 2.  Redistributions in binary form must reproduce the above copyright
- *     notice, this list of conditions and the following disclaimer in the
- *     documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
- * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
- * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef TextPosition_h
-#define TextPosition_h
-
-#include <wtf/Assertions.h>
-
-namespace WTF {
-
-/*
- * Text Position
- *
- * TextPosition structure specifies coordinates within an text resource. It is used mostly
- * for saving script source position.
- *
- * Later TextPosition0 and TextPosition1 and both number types can be merged together quite easily.
- *
- * 0-based and 1-based
- *
- * Line and column numbers could be interpreted as zero-based or 1-based. Since
- * both practices coexist in WebKit source base, 'int' type should be replaced with
- * a dedicated wrapper types, so that compiler helped us with this ambiguity.
- *
- * Here we introduce 2 types of numbers: ZeroBasedNumber and OneBasedNumber and
- * 2 corresponding types of TextPosition structure. While only one type ought to be enough,
- * this is done to keep transition to the new types as transparent as possible:
- * e.g. in areas where 0-based integers are used, TextPosition0 should be introduced. This
- * way all changes will remain trackable.
- *
- * Later both number types can be merged in one type quite easily.
- *
- * For type safety and for the future type merge it is important that all operations in API
- * that accept or return integer have a name explicitly defining base of integer. For this reason
- * int-receiving constructors are hidden from API.
- */
-
-template<typename NUMBER>
-class TextPosition {
-public:
-    TextPosition(NUMBER line, NUMBER column)
-        : m_line(line)
-        , m_column(column)
-    {
-    }
-    TextPosition() {}
-
-    // A 'minimum' value of position, used as a default value.
-    static TextPosition<NUMBER> minimumPosition() { return TextPosition<NUMBER>(NUMBER::base(), NUMBER::base()); }
-
-    // A value with line value less than a minimum; used as an impossible position.
-    static TextPosition<NUMBER> belowRangePosition() { return TextPosition<NUMBER>(NUMBER::belowBase(), NUMBER::base()); }
-
-    NUMBER m_line;
-    NUMBER m_column;
-};
-
-class OneBasedNumber;
-
-// An int wrapper that always reminds you that the number should be 0-based
-class ZeroBasedNumber {
-public:
-    static ZeroBasedNumber fromZeroBasedInt(int zeroBasedInt) { return ZeroBasedNumber(zeroBasedInt); }
-
-    ZeroBasedNumber() {}
-
-    int zeroBasedInt() const { return m_value; }
-
-    OneBasedNumber convertToOneBased() const;
-
-    static ZeroBasedNumber base() { return 0; }
-    static ZeroBasedNumber belowBase() { return -1; }
-
-private:
-    ZeroBasedNumber(int value) : m_value(value) {}
-    int m_value;
-};
-
-// An int wrapper that always reminds you that the number should be 1-based
-class OneBasedNumber {
-public:
-    static OneBasedNumber fromOneBasedInt(int oneBasedInt) { return OneBasedNumber(oneBasedInt); }
-    OneBasedNumber() {}
-
-    int oneBasedInt() const { return m_value; }
-    int convertAsZeroBasedInt() const { return m_value - 1; }
-    ZeroBasedNumber convertToZeroBased() const { return ZeroBasedNumber::fromZeroBasedInt(m_value - 1); }
-
-    static OneBasedNumber base() { return 1; }
-    static OneBasedNumber belowBase() { return 0; }
-
-private:
-    OneBasedNumber(int value) : m_value(value) {}
-    int m_value;
-};
-
-typedef TextPosition<ZeroBasedNumber> TextPosition0;
-typedef TextPosition<OneBasedNumber> TextPosition1;
-
-inline TextPosition0 toZeroBasedTextPosition(const TextPosition1& position)
-{
-    return TextPosition0(position.m_line.convertToZeroBased(), position.m_column.convertToZeroBased());
-}
-
-inline TextPosition1 toOneBasedTextPosition(const TextPosition0& position)
-{
-    return TextPosition1(position.m_line.convertToOneBased(), position.m_column.convertToOneBased());
-}
-
-inline OneBasedNumber ZeroBasedNumber::convertToOneBased() const
-{
-    return OneBasedNumber::fromOneBasedInt(m_value + 1);
-}
-
-}
-
-using WTF::TextPosition0;
-using WTF::TextPosition1;
-
-#endif // TextPosition_h
index 4da0a9b..977baa4 100644 (file)
@@ -1,3 +1,14 @@
+2010-10-25  Sheriff Bot  <webkit.review.bot@gmail.com>
+
+        Unreviewed, rolling out r70451.
+        http://trac.webkit.org/changeset/70451
+        https://bugs.webkit.org/show_bug.cgi?id=48249
+
+        Broke set-unloaded-frame-location.html under Qt (Requested by
+        caseq on #webkit).
+
+        * ForwardingHeaders/wtf/text/TextPosition.h: Removed.
+
 2010-10-16  Patrick Gansterer  <paroga@webkit.org>
 
         Reviewed by Adam Barth.
diff --git a/JavaScriptGlue/ForwardingHeaders/wtf/text/TextPosition.h b/JavaScriptGlue/ForwardingHeaders/wtf/text/TextPosition.h
deleted file mode 100644 (file)
index bd4f09b..0000000
+++ /dev/null
@@ -1 +0,0 @@
-#include <JavaScriptCore/TextPosition.h>
index dc66ebb..e3efb77 100644 (file)
@@ -1,3 +1,76 @@
+2010-10-25  Sheriff Bot  <webkit.review.bot@gmail.com>
+
+        Unreviewed, rolling out r70451.
+        http://trac.webkit.org/changeset/70451
+        https://bugs.webkit.org/show_bug.cgi?id=48249
+
+        Broke set-unloaded-frame-location.html under Qt (Requested by
+        caseq on #webkit).
+
+        * ForwardingHeaders/wtf/text/TextPosition.h: Removed.
+        * bindings/js/ScriptSourceCode.h:
+        (WebCore::ScriptSourceCode::ScriptSourceCode):
+        * bindings/v8/ScheduledAction.cpp:
+        (WebCore::ScheduledAction::ScheduledAction):
+        * bindings/v8/ScriptController.cpp:
+        (WebCore::ScriptController::eventHandlerLineNumber):
+        (WebCore::ScriptController::eventHandlerColumnNumber):
+        * bindings/v8/ScriptController.h:
+        * bindings/v8/ScriptEventListener.cpp:
+        (WebCore::createAttributeEventListener):
+        * bindings/v8/ScriptSourceCode.h:
+        (WebCore::ScriptSourceCode::ScriptSourceCode):
+        (WebCore::ScriptSourceCode::startLine):
+        * bindings/v8/V8LazyEventListener.cpp:
+        (WebCore::V8LazyEventListener::V8LazyEventListener):
+        (WebCore::V8LazyEventListener::prepareListenerObject):
+        * bindings/v8/V8LazyEventListener.h:
+        (WebCore::V8LazyEventListener::create):
+        * bindings/v8/V8Proxy.cpp:
+        (WebCore::V8Proxy::compileScript):
+        (WebCore::V8Proxy::evaluate):
+        (WebCore::V8Proxy::runScript):
+        * bindings/v8/V8Proxy.h:
+        * bindings/v8/WorkerContextExecutionProxy.cpp:
+        (WebCore::WorkerContextExecutionProxy::evaluate):
+        (WebCore::WorkerContextExecutionProxy::runScript):
+        * bindings/v8/WorkerContextExecutionProxy.h:
+        * bindings/v8/WorkerScriptController.cpp:
+        (WebCore::WorkerScriptController::evaluate):
+        * dom/PendingScript.cpp:
+        (WebCore::PendingScript::releaseElementAndClear):
+        * dom/PendingScript.h:
+        (WebCore::PendingScript::PendingScript):
+        (WebCore::PendingScript::operator=):
+        (WebCore::PendingScript::startingLineNumber):
+        * dom/ScriptableDocumentParser.h:
+        * dom/XMLDocumentParser.h:
+        * dom/XMLDocumentParserLibxml2.cpp:
+        (WebCore::XMLDocumentParser::XMLDocumentParser):
+        (WebCore::XMLDocumentParser::startElementNs):
+        (WebCore::XMLDocumentParser::endElementNs):
+        (WebCore::XMLDocumentParser::lineNumber):
+        (WebCore::XMLDocumentParser::columnNumber):
+        * dom/XMLDocumentParserQt.cpp:
+        (WebCore::XMLDocumentParser::XMLDocumentParser):
+        (WebCore::XMLDocumentParser::parseStartElement):
+        (WebCore::XMLDocumentParser::parseEndElement):
+        * html/parser/HTMLDocumentParser.cpp:
+        (WebCore::HTMLDocumentParser::runScriptsForPausedTreeBuilder):
+        (WebCore::HTMLDocumentParser::columnNumber):
+        * html/parser/HTMLDocumentParser.h:
+        * html/parser/HTMLScriptRunner.cpp:
+        (WebCore::HTMLScriptRunner::sourceFromPendingScript):
+        (WebCore::HTMLScriptRunner::execute):
+        (WebCore::HTMLScriptRunner::runScript):
+        * html/parser/HTMLScriptRunner.h:
+        * html/parser/HTMLTreeBuilder.cpp:
+        (WebCore::HTMLTreeBuilder::HTMLTreeBuilder):
+        (WebCore::HTMLTreeBuilder::takeScriptToProcess):
+        (WebCore::HTMLTreeBuilder::processEndTag):
+        (WebCore::HTMLTreeBuilder::processScriptStartTag):
+        * html/parser/HTMLTreeBuilder.h:
+
 2010-10-25  Kwang Yul Seo  <skyul@company100.net>
 
         Unreviewed build fix for r70095.
diff --git a/WebCore/ForwardingHeaders/wtf/text/TextPosition.h b/WebCore/ForwardingHeaders/wtf/text/TextPosition.h
deleted file mode 100644 (file)
index 1600984..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-#ifndef WebCore_FWD_TextPosition_h
-#define WebCore_FWD_TextPosition_h
-#include <JavaScriptCore/TextPosition.h>
-#endif
index 092eeb8..32d6298 100644 (file)
 #include "ScriptSourceProvider.h"
 #include "StringSourceProvider.h"
 #include "KURL.h"
-#include <wtf/text/TextPosition.h>
 #include <wtf/RefPtr.h>
 
 namespace WebCore {
 
 class ScriptSourceCode {
 public:
-    ScriptSourceCode(const String& source, const KURL& url = KURL(), const TextPosition1& startPosition = TextPosition1::minimumPosition())
+    ScriptSourceCode(const String& source, const KURL& url = KURL(), int startLine = 1)
         : m_provider(StringSourceProvider::create(source, url.isNull() ? String() : url.string()))
-        , m_code(m_provider, startPosition.m_line.oneBasedInt())
+        , m_code(m_provider, startLine)
         , m_url(url)
     {
     }
index 708fbe6..dcd0bb3 100644 (file)
@@ -45,7 +45,7 @@ namespace WebCore {
 
 ScheduledAction::ScheduledAction(v8::Handle<v8::Context> context, v8::Handle<v8::Function> func, int argc, v8::Handle<v8::Value> argv[])
     : m_context(context)
-    , m_code(String(), KURL(), TextPosition1::belowRangePosition())
+    , m_code(String(), KURL(), 0)
 {
     m_function = v8::Persistent<v8::Function>::New(func);
 
index b9d1075..4904a4e 100644 (file)
@@ -262,12 +262,20 @@ ScriptValue ScriptController::evaluate(const ScriptSourceCode& sourceCode, Shoul
     return ScriptValue(object);
 }
 
-TextPosition0 ScriptController::eventHandlerPosition() const
+int ScriptController::eventHandlerLineNumber() const
 {
     ScriptableDocumentParser* parser = m_frame->document()->scriptableDocumentParser();
     if (parser)
-        return parser->textPosition();
-    return TextPosition0::minimumPosition();
+        return parser->lineNumber();
+    return 0;
+}
+
+int ScriptController::eventHandlerColumnNumber() const
+{
+    ScriptableDocumentParser* parser = m_frame->document()->scriptableDocumentParser();
+    if (parser)
+        return parser->columnNumber();
+    return 0;
 }
 
 void ScriptController::finishedWithEvent(Event* event)
index d093f39..63f1c17 100644 (file)
@@ -155,7 +155,8 @@ public:
 
     void finishedWithEvent(Event*);
 
-    TextPosition0 eventHandlerPosition() const;
+    int eventHandlerLineNumber() const;
+    int eventHandlerColumnNumber() const;
 
     void setProcessingTimerCallback(bool processingTimerCallback) { m_processingTimerCallback = processingTimerCallback; }
     // FIXME: Currently we don't use the parameter world at all.
index b46fc5a..72df79d 100644 (file)
@@ -50,8 +50,8 @@ PassRefPtr<V8LazyEventListener> createAttributeEventListener(Node* node, Attribu
     if (attr->isNull())
         return 0;
 
-    // FIXME: Very strange: we initialize zero-based number with '1'.
-    TextPosition0 position(WTF::ZeroBasedNumber::fromZeroBasedInt(1), WTF::ZeroBasedNumber::base());
+    int lineNumber = 1;
+    int columnNumber = 0;
     String sourceURL;
 
     if (Frame* frame = node->document()->frame()) {
@@ -64,11 +64,12 @@ PassRefPtr<V8LazyEventListener> createAttributeEventListener(Node* node, Attribu
             return 0;
         }
 
-        position = scriptController->eventHandlerPosition();
+        lineNumber = scriptController->eventHandlerLineNumber();
+        columnNumber = scriptController->eventHandlerColumnNumber();
         sourceURL = node->document()->url().string();
     }
 
-    return V8LazyEventListener::create(attr->localName().string(), node->isSVGElement(), attr->value(), sourceURL, position, WorldContextHandle(UseMainWorld));
+    return V8LazyEventListener::create(attr->localName().string(), node->isSVGElement(), attr->value(), sourceURL, lineNumber, columnNumber, WorldContextHandle(UseMainWorld));
 }
 
 PassRefPtr<V8LazyEventListener> createAttributeEventListener(Frame* frame, Attribute* attr)
@@ -80,6 +81,10 @@ PassRefPtr<V8LazyEventListener> createAttributeEventListener(Frame* frame, Attri
     if (attr->isNull())
         return 0;
 
+    int lineNumber = 1;
+    int columnNumber = 0;
+    String sourceURL;
+
     ScriptController* scriptController = frame->script();
     if (!scriptController->canExecuteScripts(AboutToExecuteScript))
         return 0;
@@ -89,9 +94,10 @@ PassRefPtr<V8LazyEventListener> createAttributeEventListener(Frame* frame, Attri
         return 0;
     }
 
-    TextPosition0 position = scriptController->eventHandlerPosition();
-    String sourceURL = frame->document()->url().string();
-    return V8LazyEventListener::create(attr->localName().string(), frame->document()->isSVGDocument(), attr->value(), sourceURL, position, WorldContextHandle(UseMainWorld));
+    lineNumber = scriptController->eventHandlerLineNumber();
+    columnNumber = scriptController->eventHandlerColumnNumber();
+    sourceURL = frame->document()->url().string();
+    return V8LazyEventListener::create(attr->localName().string(), frame->document()->isSVGDocument(), attr->value(), sourceURL, lineNumber, columnNumber, WorldContextHandle(UseMainWorld));
 }
 
 String eventListenerHandlerBody(Document* document, EventListener* listener)
index 2478151..dbc9d5e 100644 (file)
 #include "CachedScript.h"
 #include "KURL.h"
 #include "PlatformString.h"
-#include <wtf/text/TextPosition.h>
 
 namespace WebCore {
 
 class ScriptSourceCode {
 public:
-    ScriptSourceCode(const String& source, const KURL& url = KURL(), const TextPosition1& startPosition = TextPosition1::minimumPosition())
+    ScriptSourceCode(const String& source, const KURL& url = KURL(), int startLine = 1)
         : m_source(source)
         , m_cachedScript(0)
         , m_url(url)
-        , m_startPosition(startPosition)
+        , m_startLine(startLine)
     {
     }
 
@@ -55,7 +54,7 @@ public:
         : m_source(cs->script())
         , m_cachedScript(cs)
         , m_url(ParsedURLString, cs->url())
-        , m_startPosition(TextPosition1::minimumPosition())
+        , m_startLine(1)
     {
     }
 
@@ -64,14 +63,13 @@ public:
     const String& source() const { return m_source; }
     CachedScript* cachedScript() const { return m_cachedScript.get(); }
     const KURL& url() const { return m_url; }
-    int startLine() const { return m_startPosition.m_line.oneBasedInt(); }
-    const TextPosition1& startPosition() const { return m_startPosition; }
+    int startLine() const { return m_startLine; }
 
 private:
     String m_source;
     CachedResourceHandle<CachedScript> m_cachedScript;
     KURL m_url;
-    TextPosition1 m_startPosition;
+    int m_startLine;
 };
 
 } // namespace WebCore
index 7f46333..7f13c5a 100644 (file)
 
 namespace WebCore {
 
-V8LazyEventListener::V8LazyEventListener(const String& functionName, bool isSVGEvent, const String& code, const String sourceURL, const TextPosition0& position, const WorldContextHandle& worldContext)
+V8LazyEventListener::V8LazyEventListener(const String& functionName, bool isSVGEvent, const String& code, const String sourceURL, int lineNumber, int columnNumber, const WorldContextHandle& worldContext)
     : V8AbstractEventListener(true, worldContext)
     , m_functionName(functionName)
     , m_isSVGEvent(isSVGEvent)
     , m_code(code)
     , m_sourceURL(sourceURL)
-    , m_position(position)
+    , m_lineNumber(lineNumber)
+    , m_columnNumber(columnNumber)
 {
 }
 
@@ -113,7 +114,7 @@ void V8LazyEventListener::prepareListenerObject(ScriptExecutionContext* context)
     // Insert '\n' otherwise //-style comments could break the handler.
     code.append(  "\n}).call(this, evt);}}}})");
     v8::Handle<v8::String> codeExternalString = v8ExternalString(code);
-    v8::Handle<v8::Script> script = V8Proxy::compileScript(codeExternalString, m_sourceURL, m_position);
+    v8::Handle<v8::Script> script = V8Proxy::compileScript(codeExternalString, m_sourceURL, m_lineNumber);
     if (!script.IsEmpty()) {
         v8::Local<v8::Value> value = proxy->runScript(script, false);
         if (!value.IsEmpty()) {
index 08467fe..f174d23 100644 (file)
@@ -34,7 +34,6 @@
 #include "PlatformString.h"
 #include "V8AbstractEventListener.h"
 #include <v8.h>
-#include <wtf/text/TextPosition.h>
 #include <wtf/PassRefPtr.h>
 
 namespace WebCore {
@@ -46,9 +45,9 @@ namespace WebCore {
     // A V8LazyEventListener is always a HTML event handler.
     class V8LazyEventListener : public V8AbstractEventListener {
     public:
-        static PassRefPtr<V8LazyEventListener> create(const String& functionName, bool isSVGEvent, const String& code, const String& sourceURL, const TextPosition0& position, const WorldContextHandle& worldContext)
+        static PassRefPtr<V8LazyEventListener> create(const String& functionName, bool isSVGEvent, const String& code, const String& sourceURL, int lineNumber, int columnNumber, const WorldContextHandle& worldContext)
         {
-            return adoptRef(new V8LazyEventListener(functionName, isSVGEvent, code, sourceURL, position, worldContext));
+            return adoptRef(new V8LazyEventListener(functionName, isSVGEvent, code, sourceURL, lineNumber, columnNumber, worldContext));
         }
 
         virtual bool isLazy() const { return true; }
@@ -57,7 +56,7 @@ namespace WebCore {
         virtual void prepareListenerObject(ScriptExecutionContext*);
 
     private:
-        V8LazyEventListener(const String& functionName, bool isSVGEvent, const String& code, const String sourceURL, const TextPosition0& position, const WorldContextHandle& worldContext);
+        V8LazyEventListener(const String& functionName, bool isSVGEvent, const String& code, const String sourceURL, int lineNumber, int columnNumber, const WorldContextHandle& worldContext);
 
         virtual v8::Local<v8::Value> callListenerFunction(ScriptExecutionContext*, v8::Handle<v8::Value> jsEvent, Event*);
 
@@ -71,7 +70,8 @@ namespace WebCore {
         bool m_isSVGEvent;
         String m_code;
         String m_sourceURL;
-        TextPosition0 m_position;
+        int m_lineNumber;
+        int m_columnNumber;
     };
 
 } // namespace WebCore
index 7b596c8..e7d6bf6 100644 (file)
@@ -236,13 +236,12 @@ V8Proxy::~V8Proxy()
     windowShell()->destroyGlobal();
 }
 
-v8::Handle<v8::Script> V8Proxy::compileScript(v8::Handle<v8::String> code, const String& fileName, const TextPosition0& scriptStartPosition, v8::ScriptData* scriptData)
+v8::Handle<v8::Script> V8Proxy::compileScript(v8::Handle<v8::String> code, const String& fileName, int baseLine, v8::ScriptData* scriptData)
 {
     const uint16_t* fileNameString = fromWebCoreString(fileName);
     v8::Handle<v8::String> name = v8::String::New(fileNameString, fileName.length());
-    v8::Handle<v8::Integer> line = v8::Integer::New(scriptStartPosition.m_line.zeroBasedInt());
-    v8::Handle<v8::Integer> column = v8::Integer::New(scriptStartPosition.m_column.zeroBasedInt());
-    v8::ScriptOrigin origin(name, line, column);
+    v8::Handle<v8::Integer> line = v8::Integer::New(baseLine);
+    v8::ScriptOrigin origin(name, line);
     v8::Handle<v8::Script> script = v8::Script::Compile(code, &origin, scriptData);
     return script;
 }
@@ -395,7 +394,7 @@ v8::Local<v8::Value> V8Proxy::evaluate(const ScriptSourceCode& source, Node* nod
 
         // NOTE: For compatibility with WebCore, ScriptSourceCode's line starts at
         // 1, whereas v8 starts at 0.
-        v8::Handle<v8::Script> script = compileScript(code, source.url(), WTF::toZeroBasedTextPosition(source.startPosition()), scriptData.get());
+        v8::Handle<v8::Script> script = compileScript(code, source.url(), source.startLine() - 1, scriptData.get());
 #if PLATFORM(CHROMIUM)
         PlatformBridge::traceEventEnd("v8.compile", node, "");
 
@@ -427,7 +426,7 @@ v8::Local<v8::Value> V8Proxy::runScript(v8::Handle<v8::Script> script, bool isIn
         // FIXME: Ideally, we should be able to re-use the origin of the
         // script passed to us as the argument instead of using an empty string
         // and 0 baseLine.
-        script = compileScript(code, "", TextPosition0::minimumPosition());
+        script = compileScript(code, "", 0);
     }
 
     if (handleOutOfMemory())
index 80d4691..8a0da72 100644 (file)
@@ -279,7 +279,7 @@ namespace WebCore {
 
         static v8::Handle<v8::Value> checkNewLegal(const v8::Arguments&);
 
-        static v8::Handle<v8::Script> compileScript(v8::Handle<v8::String> code, const String& fileName, const TextPosition0& scriptStartPosition, v8::ScriptData* = 0);
+        static v8::Handle<v8::Script> compileScript(v8::Handle<v8::String> code, const String& fileName, int baseLine, v8::ScriptData* = 0);
 
         // If the exception code is different from zero, a DOM exception is
         // schedule to be thrown.
index cefb2fa..16e0b41 100644 (file)
@@ -184,7 +184,7 @@ bool WorkerContextExecutionProxy::forgetV8EventObject(Event* event)
     return false;
 }
 
-ScriptValue WorkerContextExecutionProxy::evaluate(const String& script, const String& fileName, const TextPosition0& scriptStartPosition, WorkerContextExecutionState* state)
+ScriptValue WorkerContextExecutionProxy::evaluate(const String& script, const String& fileName, int baseLine, WorkerContextExecutionState* state)
 {
     v8::HandleScope hs;
 
@@ -196,7 +196,7 @@ ScriptValue WorkerContextExecutionProxy::evaluate(const String& script, const St
     v8::TryCatch exceptionCatcher;
 
     v8::Local<v8::String> scriptString = v8ExternalString(script);
-    v8::Handle<v8::Script> compiledScript = V8Proxy::compileScript(scriptString, fileName, scriptStartPosition);
+    v8::Handle<v8::Script> compiledScript = V8Proxy::compileScript(scriptString, fileName, baseLine);
     v8::Local<v8::Value> result = runScript(compiledScript);
 
     if (!exceptionCatcher.CanContinue())
@@ -227,7 +227,7 @@ v8::Local<v8::Value> WorkerContextExecutionProxy::runScript(v8::Handle<v8::Scrip
     // Compute the source string and prevent against infinite recursion.
     if (m_recursion >= kMaxRecursionDepth) {
         v8::Local<v8::String> code = v8ExternalString("throw RangeError('Recursion too deep')");
-        script = V8Proxy::compileScript(code, "", TextPosition0::minimumPosition());
+        script = V8Proxy::compileScript(code, "", 0);
     }
 
     if (V8Proxy::handleOutOfMemory())
index e70c3d2..58824b9 100644 (file)
@@ -36,7 +36,6 @@
 
 #include "ScriptValue.h"
 #include <v8.h>
-#include <wtf/text/TextPosition.h>
 #include <wtf/OwnPtr.h>
 #include <wtf/Vector.h>
 
@@ -67,7 +66,7 @@ namespace WebCore {
         void trackEvent(Event*);
 
         // Evaluate a script file in the current execution environment.
-        ScriptValue evaluate(const String& script, const String& fileName, const TextPosition0& scriptStartPosition, WorkerContextExecutionState*);
+        ScriptValue evaluate(const String& script, const String& fileName, int baseLine, WorkerContextExecutionState*);
 
         // Returns a local handle of the context.
         v8::Local<v8::Context> context() { return v8::Local<v8::Context>::New(m_context); }
index b56d383..7db0d8d 100644 (file)
@@ -75,7 +75,7 @@ ScriptValue WorkerScriptController::evaluate(const ScriptSourceCode& sourceCode,
     }
 
     WorkerContextExecutionState state;
-    ScriptValue result = m_proxy->evaluate(sourceCode.source(), sourceCode.url().string(), WTF::toZeroBasedTextPosition(sourceCode.startPosition()), &state);
+    ScriptValue result = m_proxy->evaluate(sourceCode.source(), sourceCode.url().string(), sourceCode.startLine() - 1, &state);
     if (state.hadException) {
         if (exception)
             *exception = state.exception;
index 18f6071..42e225a 100644 (file)
@@ -40,7 +40,7 @@ PendingScript::~PendingScript()
 PassRefPtr<Element> PendingScript::releaseElementAndClear()
 {
     setCachedScript(0);
-    m_startingPosition = TextPosition1::belowRangePosition();
+    m_startingLineNumber = 0;
     m_watchingForLoad = false;
     return m_element.release();
 }
index 083507a..44e1e49 100644 (file)
@@ -28,7 +28,6 @@
 
 #include "CachedResourceClient.h"
 #include "CachedResourceHandle.h"
-#include <wtf/text/TextPosition.h>
 #include <wtf/PassRefPtr.h>
 
 namespace WebCore {
@@ -44,14 +43,14 @@ class Element;
 class PendingScript : public CachedResourceClient {
 public:
     PendingScript()
-        : m_startingPosition(TextPosition1::belowRangePosition())
+        : m_startingLineNumber(0)
         , m_watchingForLoad(false)
     {
     }
 
     PendingScript(const PendingScript& other)
         : CachedResourceClient(other)
-        , m_startingPosition(other.m_startingPosition)
+        , m_startingLineNumber(other.m_startingLineNumber)
         , m_watchingForLoad(other.m_watchingForLoad)
         , m_element(other.m_element)
     {
@@ -65,7 +64,7 @@ public:
         if (this == &other)
             return *this;
 
-        m_startingPosition = other.m_startingPosition;
+        m_startingLineNumber = other.m_startingLineNumber;
         m_watchingForLoad = other.m_watchingForLoad;
         m_element = other.m_element;
         setCachedScript(other.cachedScript());
@@ -75,7 +74,7 @@ public:
 
     // FIXME: No setter means this is never set to anything other than 0.
     // This is either unnecessary or incorrect.
-    TextPosition1 startingPosition() const { return m_startingPosition; }
+    int startingLineNumber() const { return m_startingLineNumber; }
 
     bool watchingForLoad() const { return m_watchingForLoad; }
     void setWatchingForLoad(bool b) { m_watchingForLoad = b; }
@@ -90,7 +89,7 @@ public:
     virtual void notifyFinished(CachedResource*);
 
 private:
-    TextPosition1 m_startingPosition; // Only used for inline script tags.
+    int m_startingLineNumber; // Only used for inline script tags.
     bool m_watchingForLoad;
     RefPtr<Element> m_element;
     CachedResourceHandle<CachedScript> m_cachedScript;
index d9bf85c..8b16304 100644 (file)
 #define ScriptableDocumentParser_h
 
 #include "DecodedDataDocumentParser.h"
-#include <wtf/text/TextPosition.h>
 
 namespace WebCore {
 
+class SegmentedString;
 class XSSAuditor;
 
 class ScriptableDocumentParser : public DecodedDataDocumentParser {
@@ -47,7 +47,7 @@ public:
 
     // These are used to expose the current line/column to the scripting system.
     virtual int lineNumber() const = 0;
-    virtual TextPosition0 textPosition() const = 0;
+    virtual int columnNumber() const = 0;
 
     XSSAuditor* xssAuditor() const { return m_xssAuditor; }
     void setXSSAuditor(XSSAuditor* auditor) { m_xssAuditor = auditor; }
index e3d3cc2..e0770ba 100644 (file)
@@ -102,7 +102,7 @@ namespace WebCore {
         // WMLErrorHandling uses these functions.
         virtual bool wellFormed() const { return !m_sawError; }
         virtual int lineNumber() const;
-        TextPosition0 textPosition() const;
+        virtual int columnNumber() const;
 
         static bool supportsXMLVersion(const String&);
 
@@ -129,14 +129,6 @@ namespace WebCore {
 
         bool appendFragmentSource(const String&);
 
-        int columnNumber() const;
-
-        // This method is introduced to temporary legalize existing line/column
-        // coordinate bug: it is believed that numbers that originally were zero-based
-        // eventually becomes one-based.
-        // FIXME: Investigate and get rid of this method.
-        TextPosition1 textPositionOneBased() const;
-
 #if USE(QXMLSTREAM)
 private:
         void parse();
@@ -216,7 +208,7 @@ public:
 
         CachedResourceHandle<CachedScript> m_pendingScript;
         RefPtr<Element> m_scriptElement;
-        TextPosition1 m_scriptStartPosition;
+        int m_scriptStartLine;
 
         bool m_parsingFragment;
         AtomicString m_defaultNamespaceURI;
index dce8fef..5b5ac89 100644 (file)
@@ -560,7 +560,7 @@ XMLDocumentParser::XMLDocumentParser(Document* document, FrameView* frameView)
     , m_lastErrorLine(0)
     , m_lastErrorColumn(0)
     , m_pendingScript(0)
-    , m_scriptStartPosition(TextPosition1::belowRangePosition())
+    , m_scriptStartLine(0)
     , m_parsingFragment(false)
     , m_scriptingPermission(FragmentScriptingAllowed)
 {
@@ -587,7 +587,7 @@ XMLDocumentParser::XMLDocumentParser(DocumentFragment* fragment, Element* parent
     , m_lastErrorLine(0)
     , m_lastErrorColumn(0)
     , m_pendingScript(0)
-    , m_scriptStartPosition(TextPosition1::belowRangePosition())
+    , m_scriptStartLine(0)
     , m_parsingFragment(true)
     , m_scriptingPermission(scriptingPermission)
 {
@@ -819,7 +819,7 @@ void XMLDocumentParser::startElementNs(const xmlChar* xmlLocalName, const xmlCha
 
     ScriptElement* scriptElement = toScriptElement(newElement.get());
     if (scriptElement)
-        m_scriptStartPosition = textPositionOneBased();
+        m_scriptStartLine = lineNumber();
 
     m_currentNode->deprecatedParserAddChild(newElement.get());
 
@@ -910,7 +910,7 @@ void XMLDocumentParser::endElementNs()
             } else
                 m_scriptElement = 0;
         } else
-            m_view->frame()->script()->executeScript(ScriptSourceCode(scriptElement->scriptContent(), document()->url(), m_scriptStartPosition));
+            m_view->frame()->script()->executeScript(ScriptSourceCode(scriptElement->scriptContent(), document()->url(), m_scriptStartLine));
 
         // JavaScript may have detached the parser
         if (isDetached())
@@ -1376,39 +1376,14 @@ void* xmlDocPtrForString(CachedResourceLoader* cachedResourceLoader, const Strin
 
 int XMLDocumentParser::lineNumber() const
 {
-    // FIXME: The implementation probably returns 1-based int, but method should return 0-based.
     return context() ? context()->input->line : 1;
 }
 
 int XMLDocumentParser::columnNumber() const
 {
-    // FIXME: The implementation probably returns 1-based int, but method should return 0-based.
     return context() ? context()->input->col : 1;
 }
 
-TextPosition0 XMLDocumentParser::textPosition() const
-{
-    xmlParserCtxtPtr context = this->context();
-    if (!context)
-        return TextPosition0::minimumPosition();
-    // FIXME: The context probably contains 1-based numbers, but we treat them as 0-based,
-    //        to be consistent with fixme's in lineNumber() and columnNumber
-    //        methods.
-    return TextPosition0(WTF::ZeroBasedNumber::fromZeroBasedInt(context->input->line),
-        WTF::ZeroBasedNumber::fromZeroBasedInt(context->input->col));
-}
-
-// This method has a correct implementation, in contrast to textPosition() method.
-// It should replace textPosition().
-TextPosition1 XMLDocumentParser::textPositionOneBased() const
-{
-    xmlParserCtxtPtr context = this->context();
-    if (!context)
-        return TextPosition1::minimumPosition();
-    return TextPosition1(WTF::OneBasedNumber::fromOneBasedInt(context->input->line),
-        WTF::OneBasedNumber::fromOneBasedInt(context->input->col));
-}
-
 void XMLDocumentParser::stopParsing()
 {
     DocumentParser::stopParsing();
index f1afe34..03b083e 100644 (file)
@@ -105,7 +105,7 @@ XMLDocumentParser::XMLDocumentParser(Document* document, FrameView* frameView)
     , m_lastErrorLine(0)
     , m_lastErrorColumn(0)
     , m_pendingScript(0)
-    , m_scriptStartPosition(TextPosition1::belowRangePosition())
+    , m_scriptStartLine(0)
     , m_parsingFragment(false)
     , m_scriptingPermission(FragmentScriptingAllowed)
 {
@@ -132,7 +132,7 @@ XMLDocumentParser::XMLDocumentParser(DocumentFragment* fragment, Element* parent
     , m_lastErrorLine(0)
     , m_lastErrorColumn(0)
     , m_pendingScript(0)
-    , m_scriptStartPosition(TextPosition1::belowRangePosition())
+    , m_scriptStartLine(0)
     , m_parsingFragment(true)
     , m_scriptingPermission(permission)
 {
@@ -234,18 +234,6 @@ int XMLDocumentParser::columnNumber() const
     return m_stream.columnNumber();
 }
 
-TextPosition0 XMLDocumentParser::textPosition() const
-{
-    return TextPosition0(WTF::ZeroBasedNumber::fromZeroBasedInt(lineNumber()), WTF::ZeroBasedNumber::fromZeroBasedInt(columnNumber()));
-}
-
-// This method incorrectly reinterprets zero-base lineNumber method as one-based number.
-// FIXME: This error is kept for compatibility. We should fix it eventually. 
-TextPosition1 XMLDocumentParser::textPositionOneBased() const
-{
-    return TextPosition1(WTF::OneBasedNumber::fromOneBasedInt(lineNumber()), WTF::OneBasedNumber::fromOneBasedInt(columnNumber()));
-}
-
 void XMLDocumentParser::stopParsing()
 {
     ScriptableDocumentParser::stopParsing();
@@ -530,7 +518,7 @@ void XMLDocumentParser::parseStartElement()
 
     ScriptElement* scriptElement = toScriptElement(newElement.get());
     if (scriptElement)
-        m_scriptStartPosition = textPositionOneBased();
+        m_scriptStartLine = lineNumber();
 
     m_currentNode->deprecatedParserAddChild(newElement.get());
 
@@ -607,7 +595,7 @@ void XMLDocumentParser::parseEndElement()
             } else
                 m_scriptElement = 0;
         } else
-            m_view->frame()->script()->executeScript(ScriptSourceCode(scriptElement->scriptContent(), document()->url(), m_scriptStartPosition));
+            m_view->frame()->script()->executeScript(ScriptSourceCode(scriptElement->scriptContent(), document()->url(), m_scriptStartLine));
     }
     m_requestingScript = false;
     popCurrentNode();
@@ -728,3 +716,4 @@ void XMLDocumentParser::parseDtd()
 
 }
 }
+
index d169417..94cc2aa 100644 (file)
@@ -191,12 +191,12 @@ bool HTMLDocumentParser::runScriptsForPausedTreeBuilder()
 {
     ASSERT(m_treeBuilder->isPaused());
 
-    TextPosition1 scriptStartPosition = TextPosition1::belowRangePosition();
-    RefPtr<Element> scriptElement = m_treeBuilder->takeScriptToProcess(scriptStartPosition);
+    int scriptStartLine = 0;
+    RefPtr<Element> scriptElement = m_treeBuilder->takeScriptToProcess(scriptStartLine);
     // We will not have a scriptRunner when parsing a DocumentFragment.
     if (!m_scriptRunner)
         return true;
-    return m_scriptRunner->execute(scriptElement.release(), scriptStartPosition);
+    return m_scriptRunner->execute(scriptElement.release(), scriptStartLine);
 }
 
 void HTMLDocumentParser::pumpTokenizer(SynchronousMode mode)
@@ -396,13 +396,9 @@ int HTMLDocumentParser::lineNumber() const
     return m_tokenizer->lineNumber();
 }
 
-TextPosition0 HTMLDocumentParser::textPosition() const
+int HTMLDocumentParser::columnNumber() const
 {
-    int lineZeroBased = m_tokenizer->lineNumber();
-    int columnOneBased = m_tokenizer->columnNumber();
-
-    return TextPosition0(WTF::ZeroBasedNumber::fromZeroBasedInt(lineZeroBased),
-        WTF::OneBasedNumber::fromOneBasedInt(columnOneBased).convertToZeroBased());
+    return m_tokenizer->columnNumber();
 }
 
 bool HTMLDocumentParser::isWaitingForScripts() const
index 05053df..d9625f1 100644 (file)
@@ -92,7 +92,7 @@ private:
     virtual bool isExecutingScript() const;
     virtual void executeScriptsWaitingForStylesheets();
     virtual int lineNumber() const;
-    virtual TextPosition0 textPosition() const;
+    virtual int columnNumber() const;
 
     // HTMLScriptRunnerHost
     virtual void watchForLoad(CachedResource*);
index 61f673a..75db644 100644 (file)
@@ -99,7 +99,7 @@ ScriptSourceCode HTMLScriptRunner::sourceFromPendingScript(const PendingScript&
         return ScriptSourceCode(script.cachedScript());
     }
     errorOccurred = false;
-    return ScriptSourceCode(script.element()->textContent(), documentURLForScriptExecution(m_document), script.startingPosition());
+    return ScriptSourceCode(script.element()->textContent(), documentURLForScriptExecution(m_document), script.startingLineNumber());
 }
 
 bool HTMLScriptRunner::isPendingScriptReady(const PendingScript& script)
@@ -172,13 +172,13 @@ void HTMLScriptRunner::stopWatchingForLoad(PendingScript& pendingScript)
 
 // This function should match 10.2.5.11 "An end tag whose tag name is 'script'"
 // Script handling lives outside the tree builder to keep the each class simple.
-bool HTMLScriptRunner::execute(PassRefPtr<Element> scriptElement, const TextPosition1& scriptStartPosition)
+bool HTMLScriptRunner::execute(PassRefPtr<Element> scriptElement, int startLine)
 {
     ASSERT(scriptElement);
     // FIXME: If scripting is disabled, always just return true;
 
     // Try to execute the script given to us.
-    runScript(scriptElement.get(), scriptStartPosition);
+    runScript(scriptElement.get(), startLine);
 
     if (haveParsingBlockingScript()) {
         if (m_scriptNestingLevel)
@@ -290,7 +290,7 @@ bool HTMLScriptRunner::requestPendingScript(PendingScript& pendingScript, Elemen
 
 // This method is meant to match the HTML5 definition of "running a script"
 // http://www.whatwg.org/specs/web-apps/current-work/multipage/scripting-1.html#running-a-script
-void HTMLScriptRunner::runScript(Element* script, const TextPosition1& scriptStartPosition)
+void HTMLScriptRunner::runScript(Element* script, int startingLineNumber)
 {
     ASSERT(m_document);
     ASSERT(!haveParsingBlockingScript());
@@ -317,7 +317,7 @@ void HTMLScriptRunner::runScript(Element* script, const TextPosition1& scriptSta
             // See https://bugs.webkit.org/show_bug.cgi?id=40047
             // ASSERT(document()->haveStylesheetsLoaded());
             ASSERT(isExecutingScript());
-            ScriptSourceCode sourceCode(script->textContent(), documentURLForScriptExecution(m_document), scriptStartPosition);
+            ScriptSourceCode sourceCode(script->textContent(), documentURLForScriptExecution(m_document), startingLineNumber);
             executeScript(sourceCode);
         }
     }
index 2df295f..be21dd2 100644 (file)
@@ -28,7 +28,6 @@
 
 #include "PendingScript.h"
 #include <wtf/Deque.h>
-#include <wtf/text/TextPosition.h>
 #include <wtf/Noncopyable.h>
 #include <wtf/PassRefPtr.h>
 
@@ -53,7 +52,7 @@ public:
     void detach();
 
     // Processes the passed in script and any pending scripts if possible.
-    bool execute(PassRefPtr<Element> scriptToProcess, const TextPosition1& scriptStartPosition);
+    bool execute(PassRefPtr<Element> scriptToProcess, int scriptStartLine);
 
     bool executeScriptsWaitingForLoad(CachedResource*);
     bool hasScriptsWaitingForStylesheets() const { return m_hasScriptsWaitingForStylesheets; }
@@ -77,7 +76,7 @@ private:
     void requestDeferredScript(Element*);
     bool requestPendingScript(PendingScript&, Element*) const;
 
-    void runScript(Element*, const TextPosition1& scriptStartPosition);
+    void runScript(Element*, int startingLineNumber);
 
     // Helpers for dealing with HTMLScriptRunnerHost
     void watchForLoad(PendingScript&);
index 264b654..310ff60 100644 (file)
@@ -56,11 +56,6 @@ using namespace HTMLNames;
 
 static const int uninitializedLineNumberValue = -1;
 
-static TextPosition1 uninitializedPositionValue1()
-{
-    return TextPosition1(WTF::OneBasedNumber::fromOneBasedInt(-1), WTF::OneBasedNumber::base());
-}
-
 namespace {
 
 inline bool isHTMLSpaceOrReplacementCharacter(UChar character)
@@ -345,8 +340,8 @@ HTMLTreeBuilder::HTMLTreeBuilder(HTMLTokenizer* tokenizer, HTMLDocument* documen
     , m_insertionMode(InitialMode)
     , m_originalInsertionMode(InitialMode)
     , m_tokenizer(tokenizer)
-    , m_scriptToProcessStartPosition(uninitializedPositionValue1())
-    , m_lastScriptElementStartPosition(TextPosition0::belowRangePosition())
+    , m_scriptToProcessStartLine(uninitializedLineNumberValue)
+    , m_lastScriptElementStartLine(uninitializedLineNumberValue)
     , m_usePreHTML5ParserQuirks(usePreHTML5ParserQuirks)
     , m_hasPendingForeignInsertionModeSteps(false)
 {
@@ -364,8 +359,8 @@ HTMLTreeBuilder::HTMLTreeBuilder(HTMLTokenizer* tokenizer, DocumentFragment* fra
     , m_insertionMode(InitialMode)
     , m_originalInsertionMode(InitialMode)
     , m_tokenizer(tokenizer)
-    , m_scriptToProcessStartPosition(uninitializedPositionValue1())
-    , m_lastScriptElementStartPosition(TextPosition0::belowRangePosition())
+    , m_scriptToProcessStartLine(uninitializedLineNumberValue)
+    , m_lastScriptElementStartLine(uninitializedLineNumberValue)
     , m_usePreHTML5ParserQuirks(usePreHTML5ParserQuirks)
     , m_hasPendingForeignInsertionModeSteps(false)
 {
@@ -428,15 +423,15 @@ HTMLTreeBuilder::FragmentParsingContext::~FragmentParsingContext()
 {
 }
 
-PassRefPtr<Element> HTMLTreeBuilder::takeScriptToProcess(TextPosition1& scriptStartPosition)
+PassRefPtr<Element> HTMLTreeBuilder::takeScriptToProcess(int& scriptStartLine)
 {
     // Unpause ourselves, callers may pause us again when processing the script.
     // The HTML5 spec is written as though scripts are executed inside the tree
     // builder.  We pause the parser to exit the tree builder, and then resume
     // before running scripts.
     m_isPaused = false;
-    scriptStartPosition = m_scriptToProcessStartPosition;
-    m_scriptToProcessStartPosition = uninitializedPositionValue1();
+    scriptStartLine = m_scriptToProcessStartLine;
+    m_scriptToProcessStartLine = uninitializedLineNumberValue;
     return m_scriptToProcess.release();
 }
 
@@ -2195,7 +2190,7 @@ void HTMLTreeBuilder::processEndTag(AtomicHTMLToken& token)
             m_isPaused = true;
             ASSERT(m_tree.currentElement()->hasTagName(scriptTag));
             m_scriptToProcess = m_tree.currentElement();
-            m_scriptToProcessStartPosition = WTF::toOneBasedTextPosition(m_lastScriptElementStartPosition);
+            m_scriptToProcessStartLine = m_lastScriptElementStartLine + 1;
             m_tree.openElements()->pop();
             if (isParsingFragment() && m_fragmentContext.scriptingPermission() == FragmentScriptingNotAllowed)
                 m_scriptToProcess->removeAllChildren();
@@ -2774,10 +2769,7 @@ void HTMLTreeBuilder::processScriptStartTag(AtomicHTMLToken& token)
     m_tree.insertScriptElement(token);
     m_tokenizer->setState(HTMLTokenizer::ScriptDataState);
     m_originalInsertionMode = m_insertionMode;
-
-    TextPosition0 position = TextPosition0(WTF::ZeroBasedNumber::fromZeroBasedInt(m_tokenizer->lineNumber()), WTF::ZeroBasedNumber::base());
-    m_lastScriptElementStartPosition = position;
-
+    m_lastScriptElementStartLine = m_tokenizer->lineNumber();
     setInsertionMode(TextMode);
 }
 
index 0e7597c..c6fcdfd 100644 (file)
@@ -32,7 +32,6 @@
 #include "HTMLElementStack.h"
 #include "HTMLFormattingElementList.h"
 #include "HTMLTokenizer.h"
-#include <wtf/text/TextPosition.h>
 #include <wtf/Noncopyable.h>
 #include <wtf/OwnPtr.h>
 #include <wtf/PassOwnPtr.h>
@@ -72,7 +71,7 @@ public:
     void constructTreeFromAtomicToken(AtomicHTMLToken&);
 
     // Must be called when parser is paused before calling the parser again.
-    PassRefPtr<Element> takeScriptToProcess(TextPosition1& scriptStartPosition);
+    PassRefPtr<Element> takeScriptToProcess(int& scriptStartLine);
 
     // Done, close any open tags, etc.
     void finished();
@@ -249,12 +248,12 @@ private:
     HTMLTokenizer* m_tokenizer;
 
     RefPtr<Element> m_scriptToProcess; // <script> tag which needs processing before resuming the parser.
-    TextPosition1 m_scriptToProcessStartPosition; // Starting line number of the script tag needing processing.
+    int m_scriptToProcessStartLine; // Starting line number of the script tag needing processing.
 
     // FIXME: We probably want to remove this member.  Originally, it was
     // created to service the legacy tree builder, but it seems to be used for
     // some other things now.
-    TextPosition0 m_lastScriptElementStartPosition;
+    int m_lastScriptElementStartLine;
 
     bool m_usePreHTML5ParserQuirks;
 
index f8d92b0..6816ebb 100644 (file)
@@ -1,3 +1,17 @@
+2010-10-25  Sheriff Bot  <webkit.review.bot@gmail.com>
+
+        Unreviewed, rolling out r70451.
+        http://trac.webkit.org/changeset/70451
+        https://bugs.webkit.org/show_bug.cgi?id=48249
+
+        Broke set-unloaded-frame-location.html under Qt (Requested by
+        caseq on #webkit).
+
+        * src/WebFrameImpl.cpp:
+        (WebKit::WebFrameImpl::executeScript):
+        (WebKit::WebFrameImpl::executeScriptInIsolatedWorld):
+        (WebKit::WebFrameImpl::executeScriptAndReturnValue):
+
 2010-10-25  Peter Rybin  <peter.rybin@gmail.com>
 
         Reviewed by Adam Barth.
index 5280443..b4d23c0 100644 (file)
@@ -753,9 +753,8 @@ void WebFrameImpl::bindToWindowObject(const WebString& name, NPObject* object)
 
 void WebFrameImpl::executeScript(const WebScriptSource& source)
 {
-    TextPosition1 position(WTF::OneBasedNumber::fromOneBasedInt(source.startLine), WTF::OneBasedNumber::base());
     m_frame->script()->executeScript(
-        ScriptSourceCode(source.code, source.url, position));
+        ScriptSourceCode(source.code, source.url, source.startLine));
 }
 
 void WebFrameImpl::executeScriptInIsolatedWorld(
@@ -765,9 +764,8 @@ void WebFrameImpl::executeScriptInIsolatedWorld(
     Vector<ScriptSourceCode> sources;
 
     for (unsigned i = 0; i < numSources; ++i) {
-        TextPosition1 position(WTF::OneBasedNumber::fromOneBasedInt(sourcesIn[i].startLine), WTF::OneBasedNumber::base());
         sources.append(ScriptSourceCode(
-            sourcesIn[i].code, sourcesIn[i].url, position));
+            sourcesIn[i].code, sourcesIn[i].url, sourcesIn[i].startLine));
     }
 
     m_frame->script()->evaluateInIsolatedWorld(worldId, sources, extensionGroup);
@@ -819,9 +817,8 @@ void WebFrameImpl::collectGarbage()
 v8::Handle<v8::Value> WebFrameImpl::executeScriptAndReturnValue(
     const WebScriptSource& source)
 {
-    TextPosition1 position(WTF::OneBasedNumber::fromOneBasedInt(source.startLine), WTF::OneBasedNumber::base());
     return m_frame->script()->executeScript(
-        ScriptSourceCode(source.code, source.url, position)).v8Value();
+        ScriptSourceCode(source.code, source.url, source.startLine)).v8Value();
 }
 
 // Returns the V8 context for this frame, or an empty handle if there is none.