[webkit-changes] [246809] trunk/Source/WTF

2019-06-25 Thread abarth
Title: [246809] trunk/Source/WTF








Revision 246809
Author aba...@webkit.org
Date 2019-06-25 14:35:03 -0700 (Tue, 25 Jun 2019)


Log Message
[fuchsia] Update to newer zx_clock_get syscall
https://bugs.webkit.org/show_bug.cgi?id=199191

Reviewed by Sam Weinig.

Fuchsia has changed the zx_clock_get syscall to return the clock value
via an out parameter rather than via its return value. This change
makes zx_clock_get consistent with all the other syscalls.

This patch updates our use of zx_clock_get to use the new syscall. The
old syscall is no longer supported by Fuchsia.

* wtf/fuchsia/CPUTimeFuchsia.cpp:
(WTF::CPUTime::get): Switch to using the out parameter.
(WTF::CPUTime::forCurrentThread): Switch to using the out parameter.

Modified Paths

trunk/Source/WTF/ChangeLog
trunk/Source/WTF/wtf/fuchsia/CPUTimeFuchsia.cpp




Diff

Modified: trunk/Source/WTF/ChangeLog (246808 => 246809)

--- trunk/Source/WTF/ChangeLog	2019-06-25 21:19:21 UTC (rev 246808)
+++ trunk/Source/WTF/ChangeLog	2019-06-25 21:35:03 UTC (rev 246809)
@@ -1,3 +1,21 @@
+2019-06-25  Adam Barth  
+
+[fuchsia] Update to newer zx_clock_get syscall
+https://bugs.webkit.org/show_bug.cgi?id=199191
+
+Reviewed by Sam Weinig.
+
+Fuchsia has changed the zx_clock_get syscall to return the clock value
+via an out parameter rather than via its return value. This change
+makes zx_clock_get consistent with all the other syscalls.
+
+This patch updates our use of zx_clock_get to use the new syscall. The
+old syscall is no longer supported by Fuchsia.
+
+* wtf/fuchsia/CPUTimeFuchsia.cpp:
+(WTF::CPUTime::get): Switch to using the out parameter.
+(WTF::CPUTime::forCurrentThread): Switch to using the out parameter.
+
 2019-06-25  Michael Catanzaro  
 
 Fully rename WebKitGTK+ -> WebKitGTK everywhere


Modified: trunk/Source/WTF/wtf/fuchsia/CPUTimeFuchsia.cpp (246808 => 246809)

--- trunk/Source/WTF/wtf/fuchsia/CPUTimeFuchsia.cpp	2019-06-25 21:19:21 UTC (rev 246808)
+++ trunk/Source/WTF/wtf/fuchsia/CPUTimeFuchsia.cpp	2019-06-25 21:35:03 UTC (rev 246809)
@@ -41,7 +41,8 @@
 // Fuchsia issue ZX-2318 tracks being able to get the monotonic and thread
 // times atomically and being able to separate ZX_CLOCK_THREAD into user and
 // kernel time.
-zx_time_t thread = zx_clock_get(ZX_CLOCK_THREAD);
+zx_time_t thread = 0;
+zx_clock_get(ZX_CLOCK_THREAD, );
 
 return CPUTime { MonotonicTime::now(), timeToSeconds(thread), Seconds() };
 }
@@ -48,7 +49,9 @@
 
 Seconds CPUTime::forCurrentThread()
 {
-return timeToSeconds(zx_clock_get(ZX_CLOCK_THREAD));
+zx_time_t thread = 0;
+zx_clock_get(ZX_CLOCK_THREAD, )
+return timeToSeconds(thread);
 }
 
 }






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [233408] trunk

2018-07-01 Thread abarth
Title: [233408] trunk








Revision 233408
Author aba...@webkit.org
Date 2018-06-30 23:52:34 -0700 (Sat, 30 Jun 2018)


Log Message
Port _javascript_Core to OS(FUCHSIA)
https://bugs.webkit.org/show_bug.cgi?id=187223

Reviewed by Daniel Bates.

.:

* Source/cmake/OptionsJSCOnly.cmake: Add back ICU.

Source/_javascript_Core:

* assembler/ARM64Assembler.h:
(JSC::ARM64Assembler::cacheFlush): Call zx_cache_flush to flush cache.
* runtime/MachineContext.h: Fuchsia has the same mcontext_t as glibc.
(JSC::MachineContext::stackPointerImpl):
(JSC::MachineContext::framePointerImpl):
(JSC::MachineContext::instructionPointerImpl):
(JSC::MachineContext::argumentPointer<1>):
(JSC::MachineContext::llintInstructionPointer):

Source/WTF:

* wtf/Platform.h: Fuchsia uses mcontext_t to provide machine context.

Modified Paths

trunk/ChangeLog
trunk/Source/_javascript_Core/ChangeLog
trunk/Source/_javascript_Core/assembler/ARM64Assembler.h
trunk/Source/_javascript_Core/runtime/MachineContext.h
trunk/Source/WTF/ChangeLog
trunk/Source/WTF/wtf/Platform.h
trunk/Source/cmake/OptionsJSCOnly.cmake




Diff

Modified: trunk/ChangeLog (233407 => 233408)

--- trunk/ChangeLog	2018-07-01 06:00:27 UTC (rev 233407)
+++ trunk/ChangeLog	2018-07-01 06:52:34 UTC (rev 233408)
@@ -1,3 +1,12 @@
+2018-06-30  Adam Barth  
+
+Port _javascript_Core to OS(FUCHSIA)
+https://bugs.webkit.org/show_bug.cgi?id=187223
+
+Reviewed by Daniel Bates.
+
+* Source/cmake/OptionsJSCOnly.cmake: Add back ICU.
+
 2018-06-29  Ross Kirsling  
 
 [JSCOnly] Restore Windows build.


Modified: trunk/Source/_javascript_Core/ChangeLog (233407 => 233408)

--- trunk/Source/_javascript_Core/ChangeLog	2018-07-01 06:00:27 UTC (rev 233407)
+++ trunk/Source/_javascript_Core/ChangeLog	2018-07-01 06:52:34 UTC (rev 233408)
@@ -1,3 +1,19 @@
+2018-06-30  Adam Barth  
+
+Port _javascript_Core to OS(FUCHSIA)
+https://bugs.webkit.org/show_bug.cgi?id=187223
+
+Reviewed by Daniel Bates.
+
+* assembler/ARM64Assembler.h:
+(JSC::ARM64Assembler::cacheFlush): Call zx_cache_flush to flush cache.
+* runtime/MachineContext.h: Fuchsia has the same mcontext_t as glibc.
+(JSC::MachineContext::stackPointerImpl):
+(JSC::MachineContext::framePointerImpl):
+(JSC::MachineContext::instructionPointerImpl):
+(JSC::MachineContext::argumentPointer<1>):
+(JSC::MachineContext::llintInstructionPointer):
+
 2018-06-30  David Kilzer  
 
 Fix clang static analyzer warnings: Garbage return value


Modified: trunk/Source/_javascript_Core/assembler/ARM64Assembler.h (233407 => 233408)

--- trunk/Source/_javascript_Core/assembler/ARM64Assembler.h	2018-07-01 06:00:27 UTC (rev 233407)
+++ trunk/Source/_javascript_Core/assembler/ARM64Assembler.h	2018-07-01 06:52:34 UTC (rev 233408)
@@ -35,6 +35,10 @@
 #include 
 #include 
 
+#if OS(FUCHSIA)
+#include 
+#endif
+
 #define CHECK_DATASIZE_OF(datasize) ASSERT(datasize == 32 || datasize == 64)
 #define CHECK_MEMOPSIZE_OF(size) ASSERT(size == 8 || size == 16 || size == 32 || size == 64 || size == 128);
 #define DATASIZE_OF(datasize) ((datasize == 64) ? Datasize_64 : Datasize_32)
@@ -2857,6 +2861,8 @@
 {
 #if OS(IOS)
 sys_cache_control(kCacheFunctionPrepareForExecution, code, size);
+#elif OS(FUCHSIA)
+zx_cache_flush(code, size, ZX_CACHE_FLUSH_INSN);
 #elif OS(LINUX)
 size_t page = pageSize();
 uintptr_t current = reinterpret_cast(code);


Modified: trunk/Source/_javascript_Core/runtime/MachineContext.h (233407 => 233408)

--- trunk/Source/_javascript_Core/runtime/MachineContext.h	2018-07-01 06:00:27 UTC (rev 233407)
+++ trunk/Source/_javascript_Core/runtime/MachineContext.h	2018-07-01 06:52:34 UTC (rev 233408)
@@ -187,7 +187,7 @@
 #error Unknown Architecture
 #endif
 
-#elif defined(__GLIBC__) || defined(__BIONIC__)
+#elif OS(FUCHSIA) || defined(__GLIBC__) || defined(__BIONIC__)
 
 #if CPU(X86)
 return reinterpret_cast((uintptr_t&) machineContext.gregs[REG_ESP]);
@@ -334,7 +334,7 @@
 #error Unknown Architecture
 #endif
 
-#elif defined(__GLIBC__) || defined(__BIONIC__)
+#elif OS(FUCHSIA) || defined(__GLIBC__) || defined(__BIONIC__)
 
 // The following sequence depends on glibc's sys/ucontext.h.
 #if CPU(X86)
@@ -477,7 +477,7 @@
 #error Unknown Architecture
 #endif
 
-#elif defined(__GLIBC__) || defined(__BIONIC__)
+#elif OS(FUCHSIA) || defined(__GLIBC__) || defined(__BIONIC__)
 
 // The following sequence depends on glibc's sys/ucontext.h.
 #if CPU(X86)
@@ -634,7 +634,7 @@
 #error Unknown Architecture
 #endif
 
-#elif defined(__GLIBC__) || defined(__BIONIC__)
+#elif OS(FUCHSIA) || defined(__GLIBC__) || defined(__BIONIC__)
 
 // The following sequence depends on glibc's sys/ucontext.h.
 #if CPU(X86)
@@ -751,7 +751,7 @@
 #error Unknown Architecture
 #endif
 
-#elif defined(__GLIBC__) || defined(__BIONIC__)
+#elif OS(FUCHSIA) || defined(__GLIBC__) || defined(__BIONIC__)
 
 // The following sequence depends on 

[webkit-changes] [233401] trunk/Source/WTF

2018-06-30 Thread abarth
Title: [233401] trunk/Source/WTF








Revision 233401
Author aba...@webkit.org
Date 2018-06-30 13:53:56 -0700 (Sat, 30 Jun 2018)


Log Message
Port WTF to OS(FUCHSIA)
https://bugs.webkit.org/show_bug.cgi?id=187221

Reviewed by Yusuke Suzuki.

* wtf/FastMalloc.cpp: Fuchsia does not have resource.h
(WTF::fastMallocStatistics): Skip collecting stats without resource.h
* wtf/InlineASM.h: Fuchsia uses ELF
* wtf/Platform.h: Define OS(FUCHSIA) as an OS(UNIX) variant
* wtf/RandomDevice.cpp: Call zx_cprng_draw for crypographic randomness
(WTF::RandomDevice::cryptographicallyRandomValues):
* wtf/ThreadingPthreads.cpp: Fuchsia does not have pthread_setschedparam
(WTF::Thread::changePriority):
* wtf/unix/CPUTimeFuchsia.cpp: Added.

Modified Paths

trunk/Source/WTF/ChangeLog
trunk/Source/WTF/wtf/CurrentTime.cpp
trunk/Source/WTF/wtf/FastMalloc.cpp
trunk/Source/WTF/wtf/InlineASM.h
trunk/Source/WTF/wtf/Platform.h
trunk/Source/WTF/wtf/PlatformJSCOnly.cmake
trunk/Source/WTF/wtf/RandomDevice.cpp
trunk/Source/WTF/wtf/RandomDevice.h
trunk/Source/WTF/wtf/ThreadingPthreads.cpp


Added Paths

trunk/Source/WTF/wtf/fuchsia/
trunk/Source/WTF/wtf/fuchsia/CPUTimeFuchsia.cpp




Diff

Modified: trunk/Source/WTF/ChangeLog (233400 => 233401)

--- trunk/Source/WTF/ChangeLog	2018-06-30 18:44:34 UTC (rev 233400)
+++ trunk/Source/WTF/ChangeLog	2018-06-30 20:53:56 UTC (rev 233401)
@@ -1,3 +1,20 @@
+2018-06-30  Adam Barth  
+
+Port WTF to OS(FUCHSIA)
+https://bugs.webkit.org/show_bug.cgi?id=187221
+
+Reviewed by Yusuke Suzuki.
+
+* wtf/FastMalloc.cpp: Fuchsia does not have resource.h
+(WTF::fastMallocStatistics): Skip collecting stats without resource.h
+* wtf/InlineASM.h: Fuchsia uses ELF
+* wtf/Platform.h: Define OS(FUCHSIA) as an OS(UNIX) variant
+* wtf/RandomDevice.cpp: Call zx_cprng_draw for crypographic randomness
+(WTF::RandomDevice::cryptographicallyRandomValues):
+* wtf/ThreadingPthreads.cpp: Fuchsia does not have pthread_setschedparam
+(WTF::Thread::changePriority):
+* wtf/unix/CPUTimeFuchsia.cpp: Added.
+
 2018-06-30  Commit Queue  
 
 Unreviewed, rolling out r233391.


Modified: trunk/Source/WTF/wtf/CurrentTime.cpp (233400 => 233401)

--- trunk/Source/WTF/wtf/CurrentTime.cpp	2018-06-30 18:44:34 UTC (rev 233400)
+++ trunk/Source/WTF/wtf/CurrentTime.cpp	2018-06-30 20:53:56 UTC (rev 233401)
@@ -54,6 +54,10 @@
 #include 
 #endif
 
+#if OS(FUCHSIA)
+#include 
+#endif
+
 #if USE(GLIB)
 #include 
 #endif
@@ -261,6 +265,8 @@
 });
 
 return fromRawSeconds((mach_absolute_time() * timebaseInfo.numer) / (1.0e9 * timebaseInfo.denom));
+#elif OS(FUCHSIA)
+return fromRawSeconds(zx_clock_get_monotonic() / static_cast(ZX_SEC(1)));
 #elif OS(LINUX) || OS(FREEBSD) || OS(OPENBSD) || OS(NETBSD)
 struct timespec ts { };
 clock_gettime(CLOCK_MONOTONIC, );


Modified: trunk/Source/WTF/wtf/FastMalloc.cpp (233400 => 233401)

--- trunk/Source/WTF/wtf/FastMalloc.cpp	2018-06-30 18:44:34 UTC (rev 233400)
+++ trunk/Source/WTF/wtf/FastMalloc.cpp	2018-06-30 20:53:56 UTC (rev 233401)
@@ -35,7 +35,9 @@
 #include 
 #else
 #include 
+#if HAVE(RESOURCE_H)
 #include 
+#endif // HAVE(RESOURCE_H)
 #endif
 
 #if OS(DARWIN)
@@ -361,7 +363,7 @@
 PROCESS_MEMORY_COUNTERS resourceUsage;
 GetProcessMemoryInfo(GetCurrentProcess(), , sizeof(resourceUsage));
 statistics.committedVMBytes = resourceUsage.PeakWorkingSetSize;
-#else
+#elif HAVE(RESOURCE_H)
 struct rusage resourceUsage;
 getrusage(RUSAGE_SELF, );
 


Modified: trunk/Source/WTF/wtf/InlineASM.h (233400 => 233401)

--- trunk/Source/WTF/wtf/InlineASM.h	2018-06-30 18:44:34 UTC (rev 233400)
+++ trunk/Source/WTF/wtf/InlineASM.h	2018-06-30 20:53:56 UTC (rev 233401)
@@ -64,11 +64,12 @@
 #elif OS(AIX)
 // IBM's own file format
 #define HIDE_SYMBOL(name) ".lglobl " #name
-#elif   OS(LINUX)   \
- || OS(FREEBSD) \
- || OS(OPENBSD) \
- || OS(HPUX)\
- || OS(NETBSD)
+#elif  OS(LINUX)   \
+|| OS(FREEBSD) \
+|| OS(FUCHSIA) \
+|| OS(OPENBSD) \
+|| OS(HPUX)\
+|| OS(NETBSD)
 // ELF platform
 #define HIDE_SYMBOL(name) ".hidden " #name
 #else
@@ -80,8 +81,9 @@
 // Don't know about any of the others.
 #if OS(DARWIN)
 #define LOCAL_LABEL_STRING(name) "L" #name
-#elif   OS(LINUX)   \
+#elif  OS(LINUX)   \
 || OS(FREEBSD) \
+|| OS(FUCHSIA) \
 || OS(OPENBSD) \
 || OS(HURD)\
 || OS(NETBSD)  \


Modified: trunk/Source/WTF/wtf/Platform.h (233400 => 233401)

--- trunk/Source/WTF/wtf/Platform.h	2018-06-30 18:44:34 UTC (rev 233400)
+++ trunk/Source/WTF/wtf/Platform.h	2018-06-30 20:53:56 UTC (rev 233401)
@@ -359,6 +359,11 @@
 #define WTF_OS_FREEBSD 1
 #endif
 
+/* OS(FUCHSIA) - Fuchsia */
+#ifdef __Fuchsia__
+#define WTF_OS_FUCHSIA 1
+#endif
+
 

[webkit-changes] [233303] trunk

2018-06-28 Thread abarth
Title: [233303] trunk








Revision 233303
Author aba...@webkit.org
Date 2018-06-28 01:02:29 -0700 (Thu, 28 Jun 2018)


Log Message
Switch OS(FUCHSIA) to using JSCOnly
https://bugs.webkit.org/show_bug.cgi?id=187133

Reviewed by Yusuke Suzuki.

.:

Rather than creating a Fuchsia port, OS(FUCHSIA) now uses the JSCOnly
port.

* CMakeLists.txt: Set the WTF_OS_FUCHSIA flag
* Source/cmake/OptionsFuchsia.cmake: Removed.
* Source/cmake/OptionsJSCOnly.cmake: Temporarily disable ICU for
OS(FUCHSIA). We'll get ICU wired in, but I'd like to work through the
other compile errors first.

Tools:

Switch Fuchsia from being a port to just being an OS. We now use a
CMAKE_TOOLCHAIN_FILE to configure the toolchain and the target triple.

* Scripts/webkitdirs.pm: Remove isFuchsia() and clients. Turns out we
can do everything we need using a CMAKE_TOOLCHAIN_FILE via the
--cmakeargs flag.

Modified Paths

trunk/CMakeLists.txt
trunk/ChangeLog
trunk/Source/cmake/OptionsJSCOnly.cmake
trunk/Tools/ChangeLog
trunk/Tools/Scripts/webkitdirs.pm


Removed Paths

trunk/Source/cmake/OptionsFuchsia.cmake




Diff

Modified: trunk/CMakeLists.txt (233302 => 233303)

--- trunk/CMakeLists.txt	2018-06-28 07:37:28 UTC (rev 233302)
+++ trunk/CMakeLists.txt	2018-06-28 08:02:29 UTC (rev 233303)
@@ -37,7 +37,6 @@
 set(ALL_PORTS
 AppleWin
 Efl
-Fuchsia
 GTK
 JSCOnly
 Mac
@@ -115,6 +114,8 @@
 endif ()
 elseif (CMAKE_SYSTEM_NAME MATCHES "Windows")
 set(WTF_OS_WINDOWS 1)
+elseif (CMAKE_SYSTEM_NAME MATCHES "Fuchsia")
+set(WTF_OS_FUCHSIA 1)
 else ()
 message(FATAL_ERROR "Unknown OS '${CMAKE_SYSTEM_NAME}'")
 endif ()


Modified: trunk/ChangeLog (233302 => 233303)

--- trunk/ChangeLog	2018-06-28 07:37:28 UTC (rev 233302)
+++ trunk/ChangeLog	2018-06-28 08:02:29 UTC (rev 233303)
@@ -1,3 +1,19 @@
+2018-06-28  Adam Barth  
+
+Switch OS(FUCHSIA) to using JSCOnly
+https://bugs.webkit.org/show_bug.cgi?id=187133
+
+Reviewed by Yusuke Suzuki.
+
+Rather than creating a Fuchsia port, OS(FUCHSIA) now uses the JSCOnly
+port.
+
+* CMakeLists.txt: Set the WTF_OS_FUCHSIA flag
+* Source/cmake/OptionsFuchsia.cmake: Removed.
+* Source/cmake/OptionsJSCOnly.cmake: Temporarily disable ICU for
+OS(FUCHSIA). We'll get ICU wired in, but I'd like to work through the
+other compile errors first.
+
 2018-06-27  Adam Barth  
 
 Add Fuchsia support to build-jsc


Deleted: trunk/Source/cmake/OptionsFuchsia.cmake (233302 => 233303)

--- trunk/Source/cmake/OptionsFuchsia.cmake	2018-06-28 07:37:28 UTC (rev 233302)
+++ trunk/Source/cmake/OptionsFuchsia.cmake	2018-06-28 08:02:29 UTC (rev 233303)
@@ -1,29 +0,0 @@
-set(PROJECT_VERSION_MAJOR 1)
-set(PROJECT_VERSION_MINOR 0)
-set(PROJECT_VERSION_MICRO 0)
-set(PROJECT_VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_MICRO})
-
-set(CMAKE_SYSTEM_NAME Fuchsia)
-
-if (WTF_CPU_ARM64)
-set(triple aarch64-unknown-fuchsia)
-elseif (WTF_CPU_X86_64)
-set(triple x86_64-unknown-fuchsia)
-else ()
-message(FATAL_ERROR "Unknown ARCH '${CMAKE_SYSTEM_PROCESSOR}'")
-endif ()
-
-set(CMAKE_C_COMPILER_TARGET ${triple})
-set(CMAKE_CXX_COMPILER_TARGET ${triple})
-
-WEBKIT_OPTION_BEGIN()
-WEBKIT_OPTION_DEFINE(ENABLE_STATIC_JSC "Whether to build _javascript_Core as a static library." PUBLIC OFF)
-WEBKIT_OPTION_END()
-
-set(ENABLE_WEBCORE OFF)
-set(ENABLE_WEBKIT_LEGACY OFF)
-set(ENABLE_WEBKIT OFF)
-set(ENABLE_API_TESTS OFF)
-
-SET_AND_EXPOSE_TO_BUILD(USE_GENERIC_EVENT_LOOP 1)
-SET_AND_EXPOSE_TO_BUILD(WTF_DEFAULT_EVENT_LOOP 0)


Modified: trunk/Source/cmake/OptionsJSCOnly.cmake (233302 => 233303)

--- trunk/Source/cmake/OptionsJSCOnly.cmake	2018-06-28 07:37:28 UTC (rev 233302)
+++ trunk/Source/cmake/OptionsJSCOnly.cmake	2018-06-28 08:02:29 UTC (rev 233303)
@@ -97,7 +97,10 @@
 endif ()
 
 if (NOT APPLE)
-find_package(ICU REQUIRED)
+if (NOT WTF_OS_FUCHSIA)
+# TODO: Add ICU on Fuchsia.
+find_package(ICU REQUIRED)
+endif ()
 else ()
 add_definitions(-DU_DISABLE_RENAMING=1 -DU_SHOW_CPLUSPLUS_API=0)
 set(ICU_LIBRARIES libicucore.dylib)


Modified: trunk/Tools/ChangeLog (233302 => 233303)

--- trunk/Tools/ChangeLog	2018-06-28 07:37:28 UTC (rev 233302)
+++ trunk/Tools/ChangeLog	2018-06-28 08:02:29 UTC (rev 233303)
@@ -1,3 +1,17 @@
+2018-06-28  Adam Barth  
+
+Switch OS(FUCHSIA) to using JSCOnly
+https://bugs.webkit.org/show_bug.cgi?id=187133
+
+Reviewed by Yusuke Suzuki.
+
+Switch Fuchsia from being a port to just being an OS. We now use a
+CMAKE_TOOLCHAIN_FILE to configure the toolchain and the target triple.
+
+* Scripts/webkitdirs.pm: Remove isFuchsia() and clients. Turns out we
+can do everything we need using a CMAKE_TOOLCHAIN_FILE via the
+--cmakeargs flag.
+
 2018-06-27  Ryosuke Niwa  
 
 Make MotionMark's plan file more robust against code changes


Modified: trunk/Tools/Scripts/webkitdirs.pm (233302 

[webkit-changes] [233294] trunk

2018-06-27 Thread abarth
Title: [233294] trunk








Revision 233294
Author aba...@webkit.org
Date 2018-06-27 18:04:54 -0700 (Wed, 27 Jun 2018)


Log Message
Add Fuchsia support to build-jsc
https://bugs.webkit.org/show_bug.cgi?id=187086

Reviewed by Yusuke Suzuki.

.:

Add Fuchsia port to cmake build system. After this patch, the build
errors out due to a missing sysroot.

* CMakeLists.txt:
* Source/cmake/OptionsFuchsia.cmake: Added.

Tools:

Add Fuchsia port to webkitdirs.pm. This patch is sufficient to make
build-jsc kick off a cmake for Fuchsia.

* Scripts/webkitdirs.pm:
(determineSourceDir):
(argumentsForConfiguration):
(determineXcodeSDK):
(findMatchingArguments):
(determinePortName):
(isFuchsia):
(setupAppleWinEnv):
(wrapperPrefixIfNeeded):
(relaunchIOSSimulator):
(debugMiniBrowser):

Modified Paths

trunk/CMakeLists.txt
trunk/ChangeLog
trunk/Tools/ChangeLog
trunk/Tools/Scripts/webkitdirs.pm


Added Paths

trunk/Source/cmake/OptionsFuchsia.cmake




Diff

Modified: trunk/CMakeLists.txt (233293 => 233294)

--- trunk/CMakeLists.txt	2018-06-28 00:32:47 UTC (rev 233293)
+++ trunk/CMakeLists.txt	2018-06-28 01:04:54 UTC (rev 233294)
@@ -37,6 +37,7 @@
 set(ALL_PORTS
 AppleWin
 Efl
+Fuchsia
 GTK
 JSCOnly
 Mac


Modified: trunk/ChangeLog (233293 => 233294)

--- trunk/ChangeLog	2018-06-28 00:32:47 UTC (rev 233293)
+++ trunk/ChangeLog	2018-06-28 01:04:54 UTC (rev 233294)
@@ -1,3 +1,16 @@
+2018-06-27  Adam Barth  
+
+Add Fuchsia support to build-jsc
+https://bugs.webkit.org/show_bug.cgi?id=187086
+
+Reviewed by Yusuke Suzuki.
+
+Add Fuchsia port to cmake build system. After this patch, the build
+errors out due to a missing sysroot.
+
+* CMakeLists.txt:
+* Source/cmake/OptionsFuchsia.cmake: Added.
+
 2018-06-18  Zan Dobersek  
 
 Unreviewed GTK+ gardening. Updating the WPT expectations by removing


Added: trunk/Source/cmake/OptionsFuchsia.cmake (0 => 233294)

--- trunk/Source/cmake/OptionsFuchsia.cmake	(rev 0)
+++ trunk/Source/cmake/OptionsFuchsia.cmake	2018-06-28 01:04:54 UTC (rev 233294)
@@ -0,0 +1,29 @@
+set(PROJECT_VERSION_MAJOR 1)
+set(PROJECT_VERSION_MINOR 0)
+set(PROJECT_VERSION_MICRO 0)
+set(PROJECT_VERSION ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}.${PROJECT_VERSION_MICRO})
+
+set(CMAKE_SYSTEM_NAME Fuchsia)
+
+if (WTF_CPU_ARM64)
+set(triple aarch64-unknown-fuchsia)
+elseif (WTF_CPU_X86_64)
+set(triple x86_64-unknown-fuchsia)
+else ()
+message(FATAL_ERROR "Unknown ARCH '${CMAKE_SYSTEM_PROCESSOR}'")
+endif ()
+
+set(CMAKE_C_COMPILER_TARGET ${triple})
+set(CMAKE_CXX_COMPILER_TARGET ${triple})
+
+WEBKIT_OPTION_BEGIN()
+WEBKIT_OPTION_DEFINE(ENABLE_STATIC_JSC "Whether to build _javascript_Core as a static library." PUBLIC OFF)
+WEBKIT_OPTION_END()
+
+set(ENABLE_WEBCORE OFF)
+set(ENABLE_WEBKIT_LEGACY OFF)
+set(ENABLE_WEBKIT OFF)
+set(ENABLE_API_TESTS OFF)
+
+SET_AND_EXPOSE_TO_BUILD(USE_GENERIC_EVENT_LOOP 1)
+SET_AND_EXPOSE_TO_BUILD(WTF_DEFAULT_EVENT_LOOP 0)


Modified: trunk/Tools/ChangeLog (233293 => 233294)

--- trunk/Tools/ChangeLog	2018-06-28 00:32:47 UTC (rev 233293)
+++ trunk/Tools/ChangeLog	2018-06-28 01:04:54 UTC (rev 233294)
@@ -1,3 +1,25 @@
+2018-06-27  Adam Barth  
+
+Add Fuchsia support to build-jsc
+https://bugs.webkit.org/show_bug.cgi?id=187086
+
+Reviewed by Yusuke Suzuki.
+
+Add Fuchsia port to webkitdirs.pm. This patch is sufficient to make
+build-jsc kick off a cmake for Fuchsia.
+
+* Scripts/webkitdirs.pm:
+(determineSourceDir):
+(argumentsForConfiguration):
+(determineXcodeSDK):
+(findMatchingArguments):
+(determinePortName):
+(isFuchsia):
+(setupAppleWinEnv):
+(wrapperPrefixIfNeeded):
+(relaunchIOSSimulator):
+(debugMiniBrowser):
+
 2018-06-27  Daniel Bates  
 
 style-queue "AttributeError: 'NoneType' object has no attribute 'is_obsolete'" when processing security patch


Modified: trunk/Tools/Scripts/webkitdirs.pm (233293 => 233294)

--- trunk/Tools/Scripts/webkitdirs.pm	2018-06-28 00:32:47 UTC (rev 233293)
+++ trunk/Tools/Scripts/webkitdirs.pm	2018-06-28 01:04:54 UTC (rev 233294)
@@ -104,6 +104,7 @@
 # Ports
 use constant {
 AppleWin => "AppleWin",
+Fuchsia  => "Fuchsia",
 GTK  => "GTK",
 iOS  => "iOS",
 tvOS => "tvOS",
@@ -476,6 +477,7 @@
 push(@args, '--ios-simulator') if (defined $xcodeSDK && $xcodeSDK =~ /^iphonesimulator/);
 push(@args, '--32-bit') if ($architecture ne "x86_64" and !isWin64());
 push(@args, '--64-bit') if (isWin64());
+push(@args, '--fuchsia') if isFuchsia();
 push(@args, '--gtk') if isGtk();
 push(@args, '--wpe') if isWPE();
 push(@args, '--jsc-only') if isJSCOnly();
@@ -1189,6 +1191,7 @@
 return if defined $portName;
 
 my %argToPortName = (
+fuchsia => Fuchsia,
 gtk => GTK,
 'jsc-only' => JSCOnly,
 wincairo => WinCairo,
@@ 

[webkit-changes] [151611] trunk

2013-06-14 Thread abarth
Title: [151611] trunk








Revision 151611
Author aba...@webkit.org
Date 2013-06-14 16:05:39 -0700 (Fri, 14 Jun 2013)


Log Message
Threaded HTML parser can ASSERT in some situations
https://bugs.webkit.org/show_bug.cgi?id=117662

Reviewed by Ryosuke Niwa.

Source/WebCore:

This patch merges https://chromium.googlesource.com/chromium/blink/+/3c0a112b42d72c7623f78463166dd7f04d680b4c

---8---
The parser is supposed to stop processing data when there's a pending
location change, but before this CL we would actually process the first
token from every chunk when there was a pending location change.

If the first token in a chunk was a script start tag, that would put
the tree builder into TextMode, which can only process character
tokens. If the next chunk starts with another start tag token, the tree
builder would be sad and hit an ASSERT.

This CL reorders a couple lines in HTMLDocumentParser so that we check
for pending location changes before processing any tokens. This change
stops us from processing the first token from each chunk while there is
a pending location change.

This issue can reproduce on any platform, but it reproduced often on
Android because mobile markup often elides spaces between consecutive
script tags. If there are space characters between the script tags,
then those space characters will be the first ones processes in the
chunk, which doesn't trigger the ASSERT.
---8---

Since we landed this patch in Blink, we've been able to reproduce this
issue on desktops as well. I spoke with rniwa in #webkit and he said
that WebKit doesn't have any current plans to enable the threaded
parser but that it was probably worth merging this patch anyway.

Test: http/tests/navigation/pending-location-change-assert.html

* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::processParsedChunkFromBackgroundParser):

LayoutTests:

* http/tests/navigation/pending-location-change-assert-expected.txt: Added.
* http/tests/navigation/pending-location-change-assert.html: Added.
* http/tests/resources/slow-notify-done.php: Added.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/html/parser/HTMLDocumentParser.cpp


Added Paths

trunk/LayoutTests/http/tests/navigation/pending-location-change-assert-expected.txt
trunk/LayoutTests/http/tests/navigation/pending-location-change-assert.html
trunk/LayoutTests/http/tests/resources/slow-notify-done.php




Diff

Modified: trunk/LayoutTests/ChangeLog (151610 => 151611)

--- trunk/LayoutTests/ChangeLog	2013-06-14 22:49:14 UTC (rev 151610)
+++ trunk/LayoutTests/ChangeLog	2013-06-14 23:05:39 UTC (rev 151611)
@@ -1,3 +1,14 @@
+2013-06-14  Adam Barth  aba...@webkit.org
+
+Threaded HTML parser can ASSERT in some situations
+https://bugs.webkit.org/show_bug.cgi?id=117662
+
+Reviewed by Ryosuke Niwa.
+
+* http/tests/navigation/pending-location-change-assert-expected.txt: Added.
+* http/tests/navigation/pending-location-change-assert.html: Added.
+* http/tests/resources/slow-notify-done.php: Added.
+
 2013-06-14  Arpita Bahuguna  a@samsung.com
 
 Editing: wrong text position when you click enter on the text behind the image


Added: trunk/LayoutTests/http/tests/navigation/pending-location-change-assert-expected.txt (0 => 151611)

--- trunk/LayoutTests/http/tests/navigation/pending-location-change-assert-expected.txt	(rev 0)
+++ trunk/LayoutTests/http/tests/navigation/pending-location-change-assert-expected.txt	2013-06-14 23:05:39 UTC (rev 151611)
@@ -0,0 +1 @@
+DONE!


Added: trunk/LayoutTests/http/tests/navigation/pending-location-change-assert.html (0 => 151611)

--- trunk/LayoutTests/http/tests/navigation/pending-location-change-assert.html	(rev 0)
+++ trunk/LayoutTests/http/tests/navigation/pending-location-change-assert.html	2013-06-14 23:05:39 UTC (rev 151611)
@@ -0,0 +1,13 @@
+script
+if (window.testRunner) {
+testRunner.dumpAsText();
+testRunner.waitUntilDone();
+}
+window.location = ../resources/slow-notify-done.php;
+/scriptscript
+alert('FAIL 1 of 3');
+/scriptscript
+alert('FAIL 2 of 3');
+/scriptscript
+alert('FAIL 3 of 3');
+/script


Added: trunk/LayoutTests/http/tests/resources/slow-notify-done.php (0 => 151611)

--- trunk/LayoutTests/http/tests/resources/slow-notify-done.php	(rev 0)
+++ trunk/LayoutTests/http/tests/resources/slow-notify-done.php	2013-06-14 23:05:39 UTC (rev 151611)
@@ -0,0 +1,8 @@
+?php
+usleep(10);
+?
+DONE!
+script
+if (window.testRunner)
+testRunner.notifyDone();
+/script


Modified: trunk/Source/WebCore/ChangeLog (151610 => 151611)

--- trunk/Source/WebCore/ChangeLog	2013-06-14 22:49:14 UTC (rev 151610)
+++ trunk/Source/WebCore/ChangeLog	2013-06-14 23:05:39 UTC (rev 151611)
@@ -1,3 +1,44 @@
+2013-06-14  Adam Barth  aba...@webkit.org
+
+Threaded HTML parser can ASSERT in some situations
+

[webkit-changes] [148152] trunk/Tools

2013-04-10 Thread abarth
Title: [148152] trunk/Tools








Revision 148152
Author aba...@webkit.org
Date 2013-04-10 16:53:42 -0700 (Wed, 10 Apr 2013)


Log Message
Remove abarth from watchlists
https://bugs.webkit.org/show_bug.cgi?id=114390

Reviewed by Ryosuke Niwa.

I'm trying to cut down on the amount of bugmail I get so that I'll have
more of a chance to notice a piece of bugmail directed at me.

* Scripts/webkitpy/common/config/watchlist:

Modified Paths

trunk/Tools/ChangeLog
trunk/Tools/Scripts/webkitpy/common/config/watchlist




Diff

Modified: trunk/Tools/ChangeLog (148151 => 148152)

--- trunk/Tools/ChangeLog	2013-04-10 23:44:07 UTC (rev 148151)
+++ trunk/Tools/ChangeLog	2013-04-10 23:53:42 UTC (rev 148152)
@@ -1,3 +1,15 @@
+2013-04-10  Adam Barth  aba...@webkit.org
+
+Remove abarth from watchlists
+https://bugs.webkit.org/show_bug.cgi?id=114390
+
+Reviewed by Ryosuke Niwa.
+
+I'm trying to cut down on the amount of bugmail I get so that I'll have
+more of a chance to notice a piece of bugmail directed at me.
+
+* Scripts/webkitpy/common/config/watchlist:
+
 2013-04-10  Ryosuke Niwa  rn...@webkit.org
 
 webkit-test-results.appspot.com loads the dashboard for Chromium by default


Modified: trunk/Tools/Scripts/webkitpy/common/config/watchlist (148151 => 148152)

--- trunk/Tools/Scripts/webkitpy/common/config/watchlist	2013-04-10 23:44:07 UTC (rev 148151)
+++ trunk/Tools/Scripts/webkitpy/common/config/watchlist	2013-04-10 23:53:42 UTC (rev 148152)
@@ -52,11 +52,6 @@
 TestFailures: {
 filename: rTools/BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/,
 },
-SecurityCritical: {
-more: r[Ss]ecurityOrigin(?!\.(h|cpp)),
-less: r[Ss]ecurityOrigin(?!\.(h|cpp)),
-filename: rXSS|[Ss]ecurity,
-},
 XSS: {
 filename: r.*XSS,
 },
@@ -354,7 +349,7 @@
 Editing: [ mifen...@rim.com ],
 Filters: [ d...@apple.com ],
 Forms: [ tk...@chromium.org, mifen...@rim.com ],
-FrameLoader: [ aba...@webkit.org, jap...@chromium.org ],
+FrameLoader: [ jap...@chromium.org ],
 Geolocation: [ benja...@webkit.org ],
 GraphicsLayer: [ simon.fra...@apple.com ],
 GStreamerGraphics: [ ale...@webkit.org, pnorm...@igalia.com, g...@gnome.org, mrobin...@webkit.org ],
@@ -381,22 +376,21 @@
 SVG: [schen...@chromium.org, p...@google.com, fmal...@chromium.org, dominik.rottsc...@intel.com ],
 SVNScripts: [ dba...@webkit.org ],
 ScrollingCoordinator: [ ander...@apple.com, jam...@chromium.org, toniki...@webkit.org, cmarc...@webkit.org, l...@webkit.org ],
-SecurityCritical: [ aba...@webkit.org ],
 SkiaGraphics: [ senorbla...@chromium.org, ju...@google.com ],
 Selectors: [ allan.jen...@digia.com ],
 SoupNetwork: [ rak...@webkit.org, g...@gnome.org, mrobin...@webkit.org, d...@gnome.org ],
-TestFailures: [ aba...@webkit.org, ojan.aut...@gmail.com ],
+TestFailures: [ ojan.aut...@gmail.com ],
 TextureMapper : [ n...@webkit.org, cmarc...@webkit.org, l...@webkit.org ],
 TouchAdjustment : [ allan.jen...@digia.com ],
 WTF: [ benja...@webkit.org, ojan.aut...@gmail.com, cmarc...@webkit.org ],
 WebGL: [ d...@apple.com ],
-WebIDL: [ aba...@webkit.org, ojan.aut...@gmail.com, esprehn+aut...@chromium.org ],
+WebIDL: [ ojan.aut...@gmail.com, esprehn+aut...@chromium.org ],
 WebInspectorAPI: [ timo...@apple.com, joep...@webkit.org, grao...@apple.com ],
 WebKitGTKTranslations: [ g...@gnome.org, mrobin...@webkit.org ],
 WebSocket: [ yu...@chromium.org, toyoshim+watchl...@chromium.org ],
 XSS: [ dba...@webkit.org, ojan.aut...@gmail.com ],
 webkitperl: [ dba...@webkit.org ],
-webkitpy: [ aba...@webkit.org, dpra...@chromium.org, e...@webkit.org ],
+webkitpy: [ dpra...@chromium.org, e...@webkit.org ],
 },
 MESSAGE_RULES: {
 AppleMacPublicApi: [ Please wait for approval from timo...@apple.com (or another member 






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [147304] trunk/Tools

2013-04-01 Thread abarth
Title: [147304] trunk/Tools








Revision 147304
Author aba...@webkit.org
Date 2013-03-31 23:29:22 -0700 (Sun, 31 Mar 2013)


Log Message
configure-svn-config.sh fails
https://codereview.chromium.org/13392007/

Reviewed by Eric Seidel.

This script was trying to use svn checkout to dowload a file from
svn.webkit.org, but svn checkout only works with directories.
Instead, we should use svn export.

* EWSTools/configure-svn-config.sh:

Modified Paths

trunk/Tools/ChangeLog
trunk/Tools/EWSTools/configure-svn-config.sh




Diff

Modified: trunk/Tools/ChangeLog (147303 => 147304)

--- trunk/Tools/ChangeLog	2013-04-01 05:54:13 UTC (rev 147303)
+++ trunk/Tools/ChangeLog	2013-04-01 06:29:22 UTC (rev 147304)
@@ -1,3 +1,16 @@
+2013-03-31  Adam Barth  aba...@webkit.org
+
+configure-svn-config.sh fails
+https://codereview.chromium.org/13392007/
+
+Reviewed by Eric Seidel.
+
+This script was trying to use svn checkout to dowload a file from
+svn.webkit.org, but svn checkout only works with directories.
+Instead, we should use svn export.
+
+* EWSTools/configure-svn-config.sh:
+
 2013-03-31  Wei Jia  w...@chromium.org
 
 Allow WebUserMediaClientMock to be used by client


Modified: trunk/Tools/EWSTools/configure-svn-config.sh (147303 => 147304)

--- trunk/Tools/EWSTools/configure-svn-config.sh	2013-04-01 05:54:13 UTC (rev 147303)
+++ trunk/Tools/EWSTools/configure-svn-config.sh	2013-04-01 06:29:22 UTC (rev 147304)
@@ -24,4 +24,4 @@
 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-svn checkout http://svn.webkit.org/repository/webkit/trunk/Tools/svn-config ~/.subversion/config
+svn export http://svn.webkit.org/repository/webkit/trunk/Tools/svn-config ~/.subversion/config






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [147383] trunk

2013-04-01 Thread abarth
Title: [147383] trunk








Revision 147383
Author aba...@webkit.org
Date 2013-04-01 22:34:38 -0700 (Mon, 01 Apr 2013)


Log Message
Assertion failure !m_lastChunkBeforeScript in HTMLDocumentParser during inspector/debugger/pause-in-inline-script.html
https://bugs.webkit.org/show_bug.cgi?id=112369

Reviewed by Eric Seidel.

Source/WebCore:

The threaded HTML parser wasn't correctly handling the nested event
loops that can arise from the _javascript_ debugger and from
showModalDialog. When the parser received a chunk from the background
parser, it was always processing it immediately, which lead to
re-entrancy. Now, we'll queue the chunk in the speculation buffer and
process it once the stack unwinds.

* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::~HTMLDocumentParser):
(WebCore::HTMLDocumentParser::didReceiveParsedChunkFromBackgroundParser):
(WebCore::HTMLDocumentParser::processParsedChunkFromBackgroundParser):
(WebCore::HTMLDocumentParser::pumpPendingSpeculations):
(WebCore::HTMLDocumentParser::insert):
* html/parser/HTMLParserScheduler.cpp:
(WebCore::PumpSession::PumpSession):
* html/parser/HTMLParserScheduler.h:

LayoutTests:

Unskip test that is now passing.

* platform/chromium/TestExpectations:

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/platform/chromium/TestExpectations
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/html/parser/HTMLDocumentParser.cpp
trunk/Source/WebCore/html/parser/HTMLParserScheduler.cpp
trunk/Source/WebCore/html/parser/HTMLParserScheduler.h




Diff

Modified: trunk/LayoutTests/ChangeLog (147382 => 147383)

--- trunk/LayoutTests/ChangeLog	2013-04-02 05:31:12 UTC (rev 147382)
+++ trunk/LayoutTests/ChangeLog	2013-04-02 05:34:38 UTC (rev 147383)
@@ -1,3 +1,14 @@
+2013-04-01  Adam Barth  aba...@webkit.org
+
+Assertion failure !m_lastChunkBeforeScript in HTMLDocumentParser during inspector/debugger/pause-in-inline-script.html
+https://bugs.webkit.org/show_bug.cgi?id=112369
+
+Reviewed by Eric Seidel.
+
+Unskip test that is now passing.
+
+* platform/chromium/TestExpectations:
+
 2013-04-01  Michael Pruett  mich...@68k.org
 
 [JSC] IndexedDB: Exceptions not thrown for non-cloneable values


Modified: trunk/LayoutTests/platform/chromium/TestExpectations (147382 => 147383)

--- trunk/LayoutTests/platform/chromium/TestExpectations	2013-04-02 05:31:12 UTC (rev 147382)
+++ trunk/LayoutTests/platform/chromium/TestExpectations	2013-04-02 05:34:38 UTC (rev 147383)
@@ -3783,9 +3783,6 @@
 # Feature not implemented
 webkit.org/b/91611 media/media-higher-prio-audio-stream.html [ Skip ]
 
-# Flaky assertion failures on debug bots
-webkit.org/b/112369 [ Debug ] inspector/debugger/pause-in-inline-script.html [ Pass Crash Timeout ]
-
 # Needs rebaseline on all platforms
 Bug(leviw) fast/text/shaping/shaping-selection-rect.html [ Failure ]
 


Modified: trunk/Source/WebCore/ChangeLog (147382 => 147383)

--- trunk/Source/WebCore/ChangeLog	2013-04-02 05:31:12 UTC (rev 147382)
+++ trunk/Source/WebCore/ChangeLog	2013-04-02 05:34:38 UTC (rev 147383)
@@ -1,3 +1,27 @@
+2013-04-01  Adam Barth  aba...@webkit.org
+
+Assertion failure !m_lastChunkBeforeScript in HTMLDocumentParser during inspector/debugger/pause-in-inline-script.html
+https://bugs.webkit.org/show_bug.cgi?id=112369
+
+Reviewed by Eric Seidel.
+
+The threaded HTML parser wasn't correctly handling the nested event
+loops that can arise from the _javascript_ debugger and from
+showModalDialog. When the parser received a chunk from the background
+parser, it was always processing it immediately, which lead to
+re-entrancy. Now, we'll queue the chunk in the speculation buffer and
+process it once the stack unwinds.
+
+* html/parser/HTMLDocumentParser.cpp:
+(WebCore::HTMLDocumentParser::~HTMLDocumentParser):
+(WebCore::HTMLDocumentParser::didReceiveParsedChunkFromBackgroundParser):
+(WebCore::HTMLDocumentParser::processParsedChunkFromBackgroundParser):
+(WebCore::HTMLDocumentParser::pumpPendingSpeculations):
+(WebCore::HTMLDocumentParser::insert):
+* html/parser/HTMLParserScheduler.cpp:
+(WebCore::PumpSession::PumpSession):
+* html/parser/HTMLParserScheduler.h:
+
 2013-04-01  Michael Pruett  mich...@68k.org
 
 [JSC] IndexedDB: Exceptions not thrown for non-cloneable values


Modified: trunk/Source/WebCore/html/parser/HTMLDocumentParser.cpp (147382 => 147383)

--- trunk/Source/WebCore/html/parser/HTMLDocumentParser.cpp	2013-04-02 05:31:12 UTC (rev 147382)
+++ trunk/Source/WebCore/html/parser/HTMLDocumentParser.cpp	2013-04-02 05:34:38 UTC (rev 147383)
@@ -127,6 +127,9 @@
 ASSERT(!m_preloadScanner);
 ASSERT(!m_insertionPreloadScanner);
 ASSERT(!m_haveBackgroundParser);
+// FIXME: We should be able to ASSERT(m_speculations.isEmpty()),
+// but there are cases where that's not true currently. 

[webkit-changes] [147294] trunk/Source

2013-03-31 Thread abarth
Title: [147294] trunk/Source








Revision 147294
Author aba...@webkit.org
Date 2013-03-31 20:06:57 -0700 (Sun, 31 Mar 2013)


Log Message
[Chromium] Yarr should build using a separate GYP file from _javascript_Core
https://bugs.webkit.org/show_bug.cgi?id=113652

Reviewed by Nico Weber.

Source/_javascript_Core:

This patch moves _javascript_Core.gyp to yarr.gyp because Chromium only
uses this GYP file to build yarr.

* _javascript_Core.gyp/_javascript_CoreGTK.gyp:
* _javascript_Core.gypi:
* yarr/yarr.gyp: Renamed from Source/_javascript_Core/_javascript_Core.gyp/_javascript_Core.gyp.

Source/WebCore:

* WebCore.gyp/WebCore.gyp:
- Update references to yarr.gyp.

Modified Paths

trunk/Source/_javascript_Core/ChangeLog
trunk/Source/_javascript_Core/_javascript_Core.gyp/_javascript_CoreGTK.gyp
trunk/Source/_javascript_Core/_javascript_Core.gypi
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/WebCore.gyp/WebCore.gyp


Added Paths

trunk/Source/_javascript_Core/yarr/yarr.gyp


Removed Paths

trunk/Source/_javascript_Core/_javascript_Core.gyp/_javascript_Core.gyp




Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (147293 => 147294)

--- trunk/Source/_javascript_Core/ChangeLog	2013-04-01 01:16:33 UTC (rev 147293)
+++ trunk/Source/_javascript_Core/ChangeLog	2013-04-01 03:06:57 UTC (rev 147294)
@@ -1,3 +1,17 @@
+2013-03-31  Adam Barth  aba...@webkit.org
+
+[Chromium] Yarr should build using a separate GYP file from _javascript_Core
+https://bugs.webkit.org/show_bug.cgi?id=113652
+
+Reviewed by Nico Weber.
+
+This patch moves _javascript_Core.gyp to yarr.gyp because Chromium only
+uses this GYP file to build yarr.
+
+* _javascript_Core.gyp/_javascript_CoreGTK.gyp:
+* _javascript_Core.gypi:
+* yarr/yarr.gyp: Renamed from Source/_javascript_Core/_javascript_Core.gyp/_javascript_Core.gyp.
+
 2013-03-31  Filip Pizlo  fpi...@apple.com
 
 Unreviewed, fix a comment. While thinking about TBAA for array accesses,


Deleted: trunk/Source/_javascript_Core/_javascript_Core.gyp/_javascript_Core.gyp (147293 => 147294)

--- trunk/Source/_javascript_Core/_javascript_Core.gyp/_javascript_Core.gyp	2013-04-01 01:16:33 UTC (rev 147293)
+++ trunk/Source/_javascript_Core/_javascript_Core.gyp/_javascript_Core.gyp	2013-04-01 03:06:57 UTC (rev 147294)
@@ -1,100 +0,0 @@
-#
-# Copyright (C) 2009, 2012 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:
-#
-# * Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-# * 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.
-# * Neither the name of Google Inc. nor the names of its
-# contributors may be used to endorse or promote products derived from
-# this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 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 THE COPYRIGHT
-# OWNER OR 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.
-#
-
-{
-  'includes': [
-'../../WebKit/chromium/WinPrecompile.gypi',
-'../../WebKit/chromium/features.gypi',
-'../_javascript_Core.gypi',
-  ],
-  'variables': {
-# Location of the chromium src directory.
-'conditions': [
-  ['inside_chromium_build==0', {
-# Webkit is being built outside of the full chromium project.
-'chromium_src_dir': '../../WebKit/chromium',
-  },{
-# WebKit is checked out in src/chromium/third_party/WebKit
-'chromium_src_dir': '../../../../..',
-  }],
-],
-  },
-  'conditions': [
-['os_posix == 1 and OS != mac and gcc_version=46', {
-  'target_defaults': {
-# Disable warnings about c++0x compatibility, as some names (such as nullptr) conflict
-# with upcoming c++0x types.
-'cflags_cc': ['-Wno-c++0x-compat'],
-  },
-}],
-  ],
-  'targets': [
-{
-  'target_name': 'yarr',
-  'type': 'static_library',
-  'dependencies': [
-'../../WTF/WTF.gyp/WTF.gyp:wtf',
-  ],
-  'variables': { 'optimize': 'max' 

[webkit-changes] [147284] trunk/Source/WebCore

2013-03-30 Thread abarth
Title: [147284] trunk/Source/WebCore








Revision 147284
Author aba...@webkit.org
Date 2013-03-30 21:11:56 -0700 (Sat, 30 Mar 2013)


Log Message
Remove unused include of RegularExpression.h
https://bugs.webkit.org/show_bug.cgi?id=113649

Reviewed by Dimitri Glazkov.

* Modules/filesystem/DOMFilePath.cpp:
- This include isn't used.

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/Modules/filesystem/DOMFilePath.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (147283 => 147284)

--- trunk/Source/WebCore/ChangeLog	2013-03-31 00:04:57 UTC (rev 147283)
+++ trunk/Source/WebCore/ChangeLog	2013-03-31 04:11:56 UTC (rev 147284)
@@ -1,3 +1,13 @@
+2013-03-30  Adam Barth  aba...@webkit.org
+
+Remove unused include of RegularExpression.h
+https://bugs.webkit.org/show_bug.cgi?id=113649
+
+Reviewed by Dimitri Glazkov.
+
+* Modules/filesystem/DOMFilePath.cpp:
+- This include isn't used.
+
 2013-03-30  Tom Sepez  tse...@chromium.org
 
 Cross-Origin copypaste / dragdrop allowing XSS via srcdoc attribute.


Modified: trunk/Source/WebCore/Modules/filesystem/DOMFilePath.cpp (147283 => 147284)

--- trunk/Source/WebCore/Modules/filesystem/DOMFilePath.cpp	2013-03-31 00:04:57 UTC (rev 147283)
+++ trunk/Source/WebCore/Modules/filesystem/DOMFilePath.cpp	2013-03-31 04:11:56 UTC (rev 147284)
@@ -33,7 +33,6 @@
 
 #if ENABLE(FILE_SYSTEM)
 
-#include RegularExpression.h
 #include wtf/Vector.h
 #include wtf/text/CString.h
 






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [147285] trunk/Source/WebKit/chromium

2013-03-30 Thread abarth
Title: [147285] trunk/Source/WebKit/chromium








Revision 147285
Author aba...@webkit.org
Date 2013-03-30 21:30:59 -0700 (Sat, 30 Mar 2013)


Log Message
[Chromium] Remove unused includes of stdio.h
https://bugs.webkit.org/show_bug.cgi?id=113650

Reviewed by Dimitri Glazkov.

We shouldn't include stdio.h. These includes aren't used anyway.

* src/WebInputEvent.cpp:
* src/x11/WebScreenInfoFactory.cpp:

Modified Paths

trunk/Source/WebKit/chromium/ChangeLog
trunk/Source/WebKit/chromium/src/WebInputEvent.cpp
trunk/Source/WebKit/chromium/src/x11/WebScreenInfoFactory.cpp




Diff

Modified: trunk/Source/WebKit/chromium/ChangeLog (147284 => 147285)

--- trunk/Source/WebKit/chromium/ChangeLog	2013-03-31 04:11:56 UTC (rev 147284)
+++ trunk/Source/WebKit/chromium/ChangeLog	2013-03-31 04:30:59 UTC (rev 147285)
@@ -1,3 +1,15 @@
+2013-03-30  Adam Barth  aba...@webkit.org
+
+[Chromium] Remove unused includes of stdio.h
+https://bugs.webkit.org/show_bug.cgi?id=113650
+
+Reviewed by Dimitri Glazkov.
+
+We shouldn't include stdio.h. These includes aren't used anyway.
+
+* src/WebInputEvent.cpp:
+* src/x11/WebScreenInfoFactory.cpp:
+
 2013-03-30  Tom Sepez  tse...@chromium.org
 
 View-source iframes are dangerous (and not very useful).


Modified: trunk/Source/WebKit/chromium/src/WebInputEvent.cpp (147284 => 147285)

--- trunk/Source/WebKit/chromium/src/WebInputEvent.cpp	2013-03-31 04:11:56 UTC (rev 147284)
+++ trunk/Source/WebKit/chromium/src/WebInputEvent.cpp	2013-03-31 04:30:59 UTC (rev 147285)
@@ -32,10 +32,7 @@
 #include WebInputEvent.h
 
 #include KeyboardCodes.h
-
 #include ctype.h
-#include stdio.h
-
 #include wtf/Assertions.h
 #include wtf/StringExtras.h
 


Modified: trunk/Source/WebKit/chromium/src/x11/WebScreenInfoFactory.cpp (147284 => 147285)

--- trunk/Source/WebKit/chromium/src/x11/WebScreenInfoFactory.cpp	2013-03-31 04:11:56 UTC (rev 147284)
+++ trunk/Source/WebKit/chromium/src/x11/WebScreenInfoFactory.cpp	2013-03-31 04:30:59 UTC (rev 147285)
@@ -32,9 +32,7 @@
 #include WebScreenInfoFactory.h
 
 #include WebScreenInfo.h
-
 #include X11/Xlib.h
-#include stdio.h
 
 namespace WebKit {
 






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [146464] trunk/Source

2013-03-21 Thread abarth
Title: [146464] trunk/Source








Revision 146464
Author aba...@webkit.org
Date 2013-03-21 07:30:38 -0700 (Thu, 21 Mar 2013)


Log Message
HTMLNames should construct strings at compile time
https://bugs.webkit.org/show_bug.cgi?id=112831

Reviewed by Darin Adler.

Source/WebCore:

This patch teaches make_names how to construct strings at compile time,
eliminating a large number of startup mallocs.

* WebCore.gyp/WebCore.gyp:
* WebCore.gyp/scripts/action_makenames.py:
- Teach the Chromium build how to deal with Perl modules.
* bindings/scripts/StaticString.pm: Added.
- A Perl module for constructing static strings.
(GenerateStrings):
(GenerateValidateStrings):
* dom/QualifiedName.cpp:
(WebCore::createQualifiedName):
- createQualifiedName now takes an already-constructed StringImpl
  object.
* dom/QualifiedName.h:
* dom/make_names.pl:
(valueForName):
(namesToStrings):
(printNamesCppFile):
(printDefinitions):
- Teach make_names how to use StaticString.pm.

Source/WTF:

* wtf/text/StringImpl.h:
(StringImpl):
(StaticASCIILiteral):
- This struct lets us construct StringImpl objects at compile time.
(WTF::StringImpl::assertHashIsCorrect):
- This function lets us sanity check StringImpl objects created from StaticData.
(WTF::StringImpl::find): Remove a stray ;
(WTF::StringImpl::findIgnoringCase): ditto
(WTF::StringImpl::startsWith): ditto
(WTF::ValueCheckStringImpl*):
* wtf/text/AtomicStringImpl.h:
(WTF::ValueCheckAtomicStringImpl*):

Modified Paths

trunk/Source/WTF/ChangeLog
trunk/Source/WTF/wtf/text/AtomicStringImpl.h
trunk/Source/WTF/wtf/text/StringImpl.h
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/DerivedSources.make
trunk/Source/WebCore/GNUmakefile.am
trunk/Source/WebCore/WebCore.gyp/WebCore.gyp
trunk/Source/WebCore/WebCore.gyp/scripts/action_makenames.py
trunk/Source/WebCore/dom/QualifiedName.cpp
trunk/Source/WebCore/dom/QualifiedName.h
trunk/Source/WebCore/dom/make_names.pl


Added Paths

trunk/Source/WebCore/bindings/scripts/StaticString.pm




Diff

Modified: trunk/Source/WTF/ChangeLog (146463 => 146464)

--- trunk/Source/WTF/ChangeLog	2013-03-21 14:09:55 UTC (rev 146463)
+++ trunk/Source/WTF/ChangeLog	2013-03-21 14:30:38 UTC (rev 146464)
@@ -1,3 +1,23 @@
+2013-03-21  Adam Barth  aba...@webkit.org
+
+HTMLNames should construct strings at compile time
+https://bugs.webkit.org/show_bug.cgi?id=112831
+
+Reviewed by Darin Adler.
+
+* wtf/text/StringImpl.h:
+(StringImpl):
+(StaticASCIILiteral):
+- This struct lets us construct StringImpl objects at compile time.
+(WTF::StringImpl::assertHashIsCorrect):
+- This function lets us sanity check StringImpl objects created from StaticData.
+(WTF::StringImpl::find): Remove a stray ;
+(WTF::StringImpl::findIgnoringCase): ditto
+(WTF::StringImpl::startsWith): ditto
+(WTF::ValueCheckStringImpl*):
+* wtf/text/AtomicStringImpl.h:
+(WTF::ValueCheckAtomicStringImpl*):
+
 2013-03-21  Gabor Rapcsanyi  rga...@webkit.org
 
 Implement LLInt for CPU(ARM_TRADITIONAL)


Modified: trunk/Source/WTF/wtf/text/AtomicStringImpl.h (146463 => 146464)

--- trunk/Source/WTF/wtf/text/AtomicStringImpl.h	2013-03-21 14:09:55 UTC (rev 146463)
+++ trunk/Source/WTF/wtf/text/AtomicStringImpl.h	2013-03-21 14:30:38 UTC (rev 146464)
@@ -31,6 +31,18 @@
 AtomicStringImpl() : StringImpl(0) {}
 };
 
+#if !ASSERT_DISABLED
+// AtomicStringImpls created from StaticASCIILiteral will ASSERT
+// in the generic ValueCheckT::checkConsistency
+// as they are not allocated by fastMalloc.
+// We don't currently have any way to detect that case
+// so we ignore the consistency check for all AtomicStringImpls*.
+template struct
+ValueCheckAtomicStringImpl* {
+static void checkConsistency(const AtomicStringImpl*) { }
+};
+#endif
+
 }
 
 using WTF::AtomicStringImpl;


Modified: trunk/Source/WTF/wtf/text/StringImpl.h (146463 => 146464)

--- trunk/Source/WTF/wtf/text/StringImpl.h	2013-03-21 14:09:55 UTC (rev 146463)
+++ trunk/Source/WTF/wtf/text/StringImpl.h	2013-03-21 14:30:38 UTC (rev 146464)
@@ -690,11 +690,11 @@
 size_t find(UChar character, unsigned start = 0);
 WTF_EXPORT_STRING_API size_t find(CharacterMatchFunctionPtr, unsigned index = 0);
 size_t find(const LChar*, unsigned index = 0);
-ALWAYS_INLINE size_t find(const char* s, unsigned index = 0) { return find(reinterpret_castconst LChar*(s), index); };
+ALWAYS_INLINE size_t find(const char* s, unsigned index = 0) { return find(reinterpret_castconst LChar*(s), index); }
 WTF_EXPORT_STRING_API size_t find(StringImpl*);
 WTF_EXPORT_STRING_API size_t find(StringImpl*, unsigned index);
 size_t findIgnoringCase(const LChar*, unsigned index = 0);
-ALWAYS_INLINE size_t findIgnoringCase(const char* s, unsigned index = 0) { return findIgnoringCase(reinterpret_castconst LChar*(s), index); };
+ALWAYS_INLINE size_t findIgnoringCase(const char* s, unsigned 

[webkit-changes] [146419] trunk/Source

2013-03-20 Thread abarth
Title: [146419] trunk/Source








Revision 146419
Author aba...@webkit.org
Date 2013-03-20 17:31:45 -0700 (Wed, 20 Mar 2013)


Log Message
HTMLNames should construct strings at compile time
https://bugs.webkit.org/show_bug.cgi?id=112831

Reviewed by Darin Adler.

Source/WebCore:

This patch teaches make_names how to construct strings at compile time,
eliminating a large number of startup mallocs.

* WebCore.gyp/WebCore.gyp:
* WebCore.gyp/scripts/action_makenames.py:
- Teach the Chromium build how to deal with Perl modules.
* bindings/scripts/StaticString.pm: Added.
- A Perl module for constructing static strings.
(GenerateStrings):
(GenerateValidateStrings):
* dom/QualifiedName.cpp:
(WebCore::createQualifiedName):
- createQualifiedName now takes an already-constructed StringImpl
  object.
* dom/QualifiedName.h:
* dom/make_names.pl:
(valueForName):
(namesToStrings):
(printNamesCppFile):
(printDefinitions):
- Teach make_names how to use StaticString.pm.

Source/WTF:

* wtf/text/StringImpl.h:
(StringImpl):
(StaticASCIILiteral):
- This struct lets us construct StringImpl objects at compile time.
(WTF::StringImpl::assertValidHash):
- This function lets us sanity check StringImpl objects created from StaticData.

Modified Paths

trunk/Source/WTF/ChangeLog
trunk/Source/WTF/wtf/text/StringImpl.h
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/DerivedSources.make
trunk/Source/WebCore/GNUmakefile.am
trunk/Source/WebCore/WebCore.gyp/WebCore.gyp
trunk/Source/WebCore/WebCore.gyp/scripts/action_makenames.py
trunk/Source/WebCore/dom/QualifiedName.cpp
trunk/Source/WebCore/dom/QualifiedName.h
trunk/Source/WebCore/dom/make_names.pl


Added Paths

trunk/Source/WebCore/bindings/scripts/StaticString.pm




Diff

Modified: trunk/Source/WTF/ChangeLog (146418 => 146419)

--- trunk/Source/WTF/ChangeLog	2013-03-21 00:20:55 UTC (rev 146418)
+++ trunk/Source/WTF/ChangeLog	2013-03-21 00:31:45 UTC (rev 146419)
@@ -1,3 +1,17 @@
+2013-03-20  Adam Barth  aba...@webkit.org
+
+HTMLNames should construct strings at compile time
+https://bugs.webkit.org/show_bug.cgi?id=112831
+
+Reviewed by Darin Adler.
+
+* wtf/text/StringImpl.h:
+(StringImpl):
+(StaticASCIILiteral):
+- This struct lets us construct StringImpl objects at compile time.
+(WTF::StringImpl::assertValidHash):
+- This function lets us sanity check StringImpl objects created from StaticData.
+
 2013-03-20  Jessie Berlin  jber...@apple.com
 
 REGRESSION(r145592): AutodrainedPool.h. RunLoopTimer.h, SchedulePair.h are being copied into


Modified: trunk/Source/WTF/wtf/text/StringImpl.h (146418 => 146419)

--- trunk/Source/WTF/wtf/text/StringImpl.h	2013-03-21 00:20:55 UTC (rev 146418)
+++ trunk/Source/WTF/wtf/text/StringImpl.h	2013-03-21 00:31:45 UTC (rev 146419)
@@ -772,6 +772,32 @@
 #ifdef STRING_STATS
 WTF_EXPORTDATA static StringStats m_stringStats;
 #endif
+
+public:
+struct StaticASCIILiteral {
+// These member variables must match the layout of StringImpl.
+unsigned m_refCount;
+unsigned m_length;
+const LChar* m_data8;
+void* m_buffer;
+unsigned m_hashAndFlags;
+
+// These values mimic ConstructFromLiteral.
+static const unsigned s_initialRefCount = s_refCountIncrement;
+static const unsigned s_initialFlags = s_hashFlag8BitBuffer | BufferInternal | s_hashFlagHasTerminatingNullCharacter;
+static const unsigned s_hashShift = s_flagCount;
+};
+
+#ifndef NDEBUG
+void assertHashIsCorrect()
+{
+ASSERT(hasHash());
+ASSERT(existingHash() == StringHasher::computeHashAndMaskTop8Bits(characters8(), length()));
+}
+#endif
+
+private:
+// These member variables must match the layout of StaticASCIILiteral.
 unsigned m_refCount;
 unsigned m_length;
 union {
@@ -789,6 +815,8 @@
 mutable unsigned m_hashAndFlags;
 };
 
+COMPILE_ASSERT(sizeof(StringImpl) == sizeof(StringImpl::StaticASCIILiteral), StringImpl_should_match_its_StaticASCIILiteral);
+
 template 
 ALWAYS_INLINE const LChar* StringImpl::getCharactersLChar() const { return characters8(); }
 


Modified: trunk/Source/WebCore/ChangeLog (146418 => 146419)

--- trunk/Source/WebCore/ChangeLog	2013-03-21 00:20:55 UTC (rev 146418)
+++ trunk/Source/WebCore/ChangeLog	2013-03-21 00:31:45 UTC (rev 146419)
@@ -1,3 +1,32 @@
+2013-03-20  Adam Barth  aba...@webkit.org
+
+HTMLNames should construct strings at compile time
+https://bugs.webkit.org/show_bug.cgi?id=112831
+
+Reviewed by Darin Adler.
+
+This patch teaches make_names how to construct strings at compile time,
+eliminating a large number of startup mallocs.
+
+* WebCore.gyp/WebCore.gyp:
+* WebCore.gyp/scripts/action_makenames.py:
+- Teach the Chromium build how to deal with Perl modules.
+* bindings/scripts/StaticString.pm: Added.
+- A Perl module 

[webkit-changes] [146185] trunk/Source/WebCore

2013-03-19 Thread abarth
Title: [146185] trunk/Source/WebCore








Revision 146185
Author aba...@webkit.org
Date 2013-03-19 00:56:44 -0700 (Tue, 19 Mar 2013)


Log Message
[chromium] Regression(143825): select elements don't open when there is a marquee on the page
https://bugs.webkit.org/show_bug.cgi?id=111278

Unreviewed.

This patch is a rollout of http://trac.webkit.org/changeset/143825. The
original patch caused a regression in the Chromium port.

* rendering/RenderLayer.cpp:
(WebCore::RenderLayer::scrollTo):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/rendering/RenderLayer.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (146184 => 146185)

--- trunk/Source/WebCore/ChangeLog	2013-03-19 07:50:24 UTC (rev 146184)
+++ trunk/Source/WebCore/ChangeLog	2013-03-19 07:56:44 UTC (rev 146185)
@@ -1,3 +1,16 @@
+2013-03-19  Adam Barth  aba...@webkit.org
+
+[chromium] Regression(143825): select elements don't open when there is a marquee on the page
+https://bugs.webkit.org/show_bug.cgi?id=111278
+
+Unreviewed.
+
+This patch is a rollout of http://trac.webkit.org/changeset/143825. The
+original patch caused a regression in the Chromium port.
+
+* rendering/RenderLayer.cpp:
+(WebCore::RenderLayer::scrollTo):
+
 2013-03-19  Alexander Pavlov  apav...@chromium.org
 
 Web Inspector: [Styles] Matching @host rule children are not displayed


Modified: trunk/Source/WebCore/rendering/RenderLayer.cpp (146184 => 146185)

--- trunk/Source/WebCore/rendering/RenderLayer.cpp	2013-03-19 07:50:24 UTC (rev 146184)
+++ trunk/Source/WebCore/rendering/RenderLayer.cpp	2013-03-19 07:56:44 UTC (rev 146185)
@@ -2214,7 +2214,6 @@
 renderer()-node()-document()-eventQueue()-enqueueOrDispatchScrollEvent(renderer()-node(), DocumentEventQueue::ScrollEventElementTarget);
 
 InspectorInstrumentation::didScrollLayer(frame);
-frame-loader()-client()-didChangeScrollOffset();
 }
 
 static inline bool frameElementAndViewPermitScroll(HTMLFrameElement* frameElement, FrameView* frameView) 






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [146253] trunk/Source/WebCore

2013-03-19 Thread abarth
Title: [146253] trunk/Source/WebCore








Revision 146253
Author aba...@webkit.org
Date 2013-03-19 13:45:36 -0700 (Tue, 19 Mar 2013)


Log Message
GenerateHashValue should be usable outside CodeGeneratorJS.pm
https://bugs.webkit.org/show_bug.cgi?id=112736

Reviewed by Benjamin Poulain.

GenerateHashValue is not specific to CodeGeneratorJS.pm. Instead, the
function matches the StringHash used in WTF. This patch moves the
function into a separate Perl module so that it can be used by other
Perl scripts. For example, I plan to use this function to compute the
hash value for HTMLNames at compile time rather than at startup.

* bindings/scripts/CodeGeneratorJS.pm:
(GenerateHashTable):
* bindings/scripts/Hash.pm: Added.
(leftShift):
(GenerateHashValue):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm


Added Paths

trunk/Source/WebCore/bindings/scripts/Hasher.pm




Diff

Modified: trunk/Source/WebCore/ChangeLog (146252 => 146253)

--- trunk/Source/WebCore/ChangeLog	2013-03-19 20:35:43 UTC (rev 146252)
+++ trunk/Source/WebCore/ChangeLog	2013-03-19 20:45:36 UTC (rev 146253)
@@ -1,3 +1,22 @@
+2013-03-19  Adam Barth  aba...@webkit.org
+
+GenerateHashValue should be usable outside CodeGeneratorJS.pm
+https://bugs.webkit.org/show_bug.cgi?id=112736
+
+Reviewed by Benjamin Poulain.
+
+GenerateHashValue is not specific to CodeGeneratorJS.pm. Instead, the
+function matches the StringHash used in WTF. This patch moves the
+function into a separate Perl module so that it can be used by other
+Perl scripts. For example, I plan to use this function to compute the
+hash value for HTMLNames at compile time rather than at startup.
+
+* bindings/scripts/CodeGeneratorJS.pm:
+(GenerateHashTable):
+* bindings/scripts/Hash.pm: Added.
+(leftShift):
+(GenerateHashValue):
+
 2013-03-19  Dean Jackson  d...@apple.com
 
 Allow PlugIn Snapshotting to be tested


Modified: trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm (146252 => 146253)

--- trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm	2013-03-19 20:35:43 UTC (rev 146252)
+++ trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm	2013-03-19 20:45:36 UTC (rev 146253)
@@ -28,8 +28,8 @@
 package CodeGeneratorJS;
 
 use strict;
-
 use constant FileNamePrefix = JS;
+use Hasher;
 
 my $codeGenerator;
 
@@ -85,11 +85,6 @@
 return $reference;
 }
 
-sub leftShift($$) {
-my ($value, $distance) = @_;
-return (($value  $distance)  0x);
-}
-
 sub GenerateInterface
 {
 my $object = shift;
@@ -3472,7 +3467,7 @@
 my $i = 0;
 foreach (@{$keys}) {
 my $depth = 0;
-my $h = $object-GenerateHashValue($_) % $numEntries;
+my $h = Hasher::GenerateHashValue($_) % $numEntries;
 
 while (defined($table[$h])) {
 if (defined($links[$h])) {
@@ -3543,65 +3538,6 @@
 push(@implContent, static const HashTable $name = { $compactSize, $compactSizeMask, $nameEntries, 0 };\n);
 }
 
-# Paul Hsieh's SuperFastHash
-# http://www.azillionmonkeys.com/qed/hash.html
-sub GenerateHashValue
-{
-my $object = shift;
-
-my @chars = split(/ */, $_[0]);
-
-# This hash is designed to work on 16-bit chunks at a time. But since the normal case
-# (above) is to hash UTF-16 characters, we just treat the 8-bit chars as if they
-# were 16-bit chunks, which should give matching results
-
-my $EXP2_32 = 4294967296;
-
-my $hash = 0x9e3779b9;
-my $l= scalar @chars; #I wish this was in Ruby --- Maks
-my $rem  = $l  1;
-$l = $l  1;
-
-my $s = 0;
-
-# Main loop
-for (; $l  0; $l--) {
-$hash   += ord($chars[$s]);
-my $tmp = leftShift(ord($chars[$s+1]), 11) ^ $hash;
-$hash   = (leftShift($hash, 16)% $EXP2_32) ^ $tmp;
-$s += 2;
-$hash += $hash  11;
-$hash %= $EXP2_32;
-}
-
-# Handle end case
-if ($rem != 0) {
-$hash += ord($chars[$s]);
-$hash ^= (leftShift($hash, 11)% $EXP2_32);
-$hash += $hash  17;
-}
-
-# Force avalanching of final 127 bits
-$hash ^= leftShift($hash, 3);
-$hash += ($hash  5);
-$hash = ($hash% $EXP2_32);
-$hash ^= (leftShift($hash, 2)% $EXP2_32);
-$hash += ($hash  15);
-$hash = $hash% $EXP2_32;
-$hash ^= (leftShift($hash, 10)% $EXP2_32);
-
-# Save 8 bits for StringImpl to use as flags.
-$hash = 0xff;
-
-# This avoids ever returning a hash code of 0, since that is used to
-# signal hash not computed yet. Setting the high bit maintains
-# reasonable fidelity to a hash code of 0 because it is likely to yield
-# exactly 0 when hash lookup masks out the high bits.
-$hash = (0x8000  8) if ($hash == 0);
-
-return $hash;
-}
-
 sub WriteData
 {
 my $object = shift;


Added: trunk/Source/WebCore/bindings/scripts/Hasher.pm (0 => 

[webkit-changes] [146074] trunk

2013-03-18 Thread abarth
Title: [146074] trunk








Revision 146074
Author aba...@webkit.org
Date 2013-03-18 09:56:58 -0700 (Mon, 18 Mar 2013)


Log Message
[V8] Crash when accessing onclick attribute of document from XMLHttpRequest
https://bugs.webkit.org/show_bug.cgi?id=112585

Reviewed by Eric Seidel.

Source/WebCore:

This ASSERT was bogus. The frame can be 0 for frameless documents, like
those created by XMLHttpRequest. When there is no frame, we act as if
_javascript_ was disabled, which it is.

Test: fast/events/xhr-onclick-crash.html

* bindings/v8/V8LazyEventListener.cpp:
(WebCore::V8LazyEventListener::prepareListenerObject):

LayoutTests:

* fast/events/resources/onclick.html: Added.
* fast/events/xhr-onclick-crash-expected.txt: Added.
* fast/events/xhr-onclick-crash.html: Added.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/bindings/v8/V8LazyEventListener.cpp


Added Paths

trunk/LayoutTests/fast/events/resources/onclick.html
trunk/LayoutTests/fast/events/xhr-onclick-crash-expected.txt
trunk/LayoutTests/fast/events/xhr-onclick-crash.html




Diff

Modified: trunk/LayoutTests/ChangeLog (146073 => 146074)

--- trunk/LayoutTests/ChangeLog	2013-03-18 16:54:04 UTC (rev 146073)
+++ trunk/LayoutTests/ChangeLog	2013-03-18 16:56:58 UTC (rev 146074)
@@ -1,3 +1,14 @@
+2013-03-18  Adam Barth  aba...@webkit.org
+
+[V8] Crash when accessing onclick attribute of document from XMLHttpRequest
+https://bugs.webkit.org/show_bug.cgi?id=112585
+
+Reviewed by Eric Seidel.
+
+* fast/events/resources/onclick.html: Added.
+* fast/events/xhr-onclick-crash-expected.txt: Added.
+* fast/events/xhr-onclick-crash.html: Added.
+
 2013-03-18  Hans Muller  hmul...@adobe.com
 
 [CSS Exclusions] Specifying polygonal -webkit-shape-inside value can crash browser (debug mode)


Added: trunk/LayoutTests/fast/events/resources/onclick.html (0 => 146074)

--- trunk/LayoutTests/fast/events/resources/onclick.html	(rev 0)
+++ trunk/LayoutTests/fast/events/resources/onclick.html	2013-03-18 16:56:58 UTC (rev 146074)
@@ -0,0 +1,9 @@
+html
+body
+tabletr
+td id='foo'
+a _onclick_=return 'bar' href=""
+/td
+/tr/table
+/body
+/html


Added: trunk/LayoutTests/fast/events/xhr-onclick-crash-expected.txt (0 => 146074)

--- trunk/LayoutTests/fast/events/xhr-onclick-crash-expected.txt	(rev 0)
+++ trunk/LayoutTests/fast/events/xhr-onclick-crash-expected.txt	2013-03-18 16:56:58 UTC (rev 146074)
@@ -0,0 +1 @@
+This test passes if it doesn't crash.


Added: trunk/LayoutTests/fast/events/xhr-onclick-crash.html (0 => 146074)

--- trunk/LayoutTests/fast/events/xhr-onclick-crash.html	(rev 0)
+++ trunk/LayoutTests/fast/events/xhr-onclick-crash.html	2013-03-18 16:56:58 UTC (rev 146074)
@@ -0,0 +1,13 @@
+This test passes if it doesn't crash.
+script
+if (window.testRunner)
+testRunner.dumpAsText();
+
+xhr = new XMLHttpRequest();
+xhr.open('GET', 'resources/onclick.html', false);
+xhr.responseType = 'document';
+xhr._onload_ = function () { r = this.responseXML; }
+xhr.send();
+td = r.getElementById('foo');
+td.children[0].onclick;
+/script


Modified: trunk/Source/WebCore/ChangeLog (146073 => 146074)

--- trunk/Source/WebCore/ChangeLog	2013-03-18 16:54:04 UTC (rev 146073)
+++ trunk/Source/WebCore/ChangeLog	2013-03-18 16:56:58 UTC (rev 146074)
@@ -1,3 +1,19 @@
+2013-03-18  Adam Barth  aba...@webkit.org
+
+[V8] Crash when accessing onclick attribute of document from XMLHttpRequest
+https://bugs.webkit.org/show_bug.cgi?id=112585
+
+Reviewed by Eric Seidel.
+
+This ASSERT was bogus. The frame can be 0 for frameless documents, like
+those created by XMLHttpRequest. When there is no frame, we act as if
+_javascript_ was disabled, which it is.
+
+Test: fast/events/xhr-onclick-crash.html
+
+* bindings/v8/V8LazyEventListener.cpp:
+(WebCore::V8LazyEventListener::prepareListenerObject):
+
 2013-03-18  Hans Muller  hmul...@adobe.com
 
 [CSS Exclusions] Specifying polygonal -webkit-shape-inside value can crash browser (debug mode)


Modified: trunk/Source/WebCore/bindings/v8/V8LazyEventListener.cpp (146073 => 146074)

--- trunk/Source/WebCore/bindings/v8/V8LazyEventListener.cpp	2013-03-18 16:54:04 UTC (rev 146073)
+++ trunk/Source/WebCore/bindings/v8/V8LazyEventListener.cpp	2013-03-18 16:56:58 UTC (rev 146074)
@@ -116,13 +116,16 @@
 if (context-isDocument()  !toDocument(context)-contentSecurityPolicy()-allowInlineEventHandlers(m_sourceURL, m_position.m_line))
 return;
 
-v8::HandleScope handleScope;
-
 ASSERT(context-isDocument());
 Frame* frame = toDocument(context)-frame();
-ASSERT(frame);
+if (!frame)
+return;
+
 if (!frame-script()-canExecuteScripts(NotAboutToExecuteScript))
 return;
+
+v8::HandleScope handleScope;
+
 // Use the outer scope to hold context.
 

[webkit-changes] [146012] branches/chromium/1441/Source/WebCore/rendering/RenderLayer.cpp

2013-03-17 Thread abarth
Title: [146012] branches/chromium/1441/Source/WebCore/rendering/RenderLayer.cpp








Revision 146012
Author aba...@webkit.org
Date 2013-03-17 10:12:19 -0700 (Sun, 17 Mar 2013)


Log Message
Revert 143825 RenderLayer::scrollTo() should call FrameLoaderCl...

 RenderLayer::scrollTo() should call FrameLoaderClient::didChangeScrollOffset()
 https://bugs.webkit.org/show_bug.cgi?id=110673
 -and corresponding-
 rdar://problem/13258596
 
 Reviewed by Sam Weinig.
 
 FrameLoaderClient::didChangeScrollOffset() doesn't get called for web pages that
 have overflow on the body. We can easily address this by calling it at the 
 end of RenderLayer::scrollTo().
 
 * rendering/RenderLayer.cpp:
 (WebCore::RenderLayer::scrollTo):
 
 

TBR=bda...@apple.com
Review URL: https://codereview.chromium.org/12851007

Modified Paths

branches/chromium/1441/Source/WebCore/rendering/RenderLayer.cpp




Diff

Modified: branches/chromium/1441/Source/WebCore/rendering/RenderLayer.cpp (146011 => 146012)

--- branches/chromium/1441/Source/WebCore/rendering/RenderLayer.cpp	2013-03-17 16:49:43 UTC (rev 146011)
+++ branches/chromium/1441/Source/WebCore/rendering/RenderLayer.cpp	2013-03-17 17:12:19 UTC (rev 146012)
@@ -2214,7 +2214,6 @@
 renderer()-node()-document()-eventQueue()-enqueueOrDispatchScrollEvent(renderer()-node(), DocumentEventQueue::ScrollEventElementTarget);
 
 InspectorInstrumentation::didScrollLayer(frame);
-frame-loader()-client()-didChangeScrollOffset();
 }
 
 static inline bool frameElementAndViewPermitScroll(HTMLFrameElement* frameElement, FrameView* frameView) 






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [146031] trunk/Source/WebKit/chromium

2013-03-17 Thread abarth
Title: [146031] trunk/Source/WebKit/chromium








Revision 146031
Author aba...@webkit.org
Date 2013-03-17 20:28:29 -0700 (Sun, 17 Mar 2013)


Log Message
[Chromium] Remove unused WebNode::hasEventListeners API
https://bugs.webkit.org/show_bug.cgi?id=112529

Reviewed by James Robinson.

This API no longer has any callers and can be removed.

* public/WebNode.h:
* src/WebNode.cpp:

Modified Paths

trunk/Source/WebKit/chromium/ChangeLog
trunk/Source/WebKit/chromium/public/WebNode.h
trunk/Source/WebKit/chromium/src/WebNode.cpp




Diff

Modified: trunk/Source/WebKit/chromium/ChangeLog (146030 => 146031)

--- trunk/Source/WebKit/chromium/ChangeLog	2013-03-18 02:21:26 UTC (rev 146030)
+++ trunk/Source/WebKit/chromium/ChangeLog	2013-03-18 03:28:29 UTC (rev 146031)
@@ -1,3 +1,15 @@
+2013-03-17  Adam Barth  aba...@webkit.org
+
+[Chromium] Remove unused WebNode::hasEventListeners API
+https://bugs.webkit.org/show_bug.cgi?id=112529
+
+Reviewed by James Robinson.
+
+This API no longer has any callers and can be removed.
+
+* public/WebNode.h:
+* src/WebNode.cpp:
+
 2013-03-16  Sheriff Bot  webkit.review@gmail.com
 
 Unreviewed, rolling out r145898.


Modified: trunk/Source/WebKit/chromium/public/WebNode.h (146030 => 146031)

--- trunk/Source/WebKit/chromium/public/WebNode.h	2013-03-18 02:21:26 UTC (rev 146030)
+++ trunk/Source/WebKit/chromium/public/WebNode.h	2013-03-18 03:28:29 UTC (rev 146031)
@@ -107,8 +107,6 @@
 WEBKIT_EXPORT bool isFocusable() const;
 WEBKIT_EXPORT bool isContentEditable() const;
 WEBKIT_EXPORT bool isElementNode() const;
-// hasEventListeners only works with a small set of eventTypes.
-WEBKIT_EXPORT bool hasEventListeners(const WebString eventType) const;
 // addEventListener only works with a small set of eventTypes.
 WEBKIT_EXPORT void addEventListener(const WebString eventType, WebDOMEventListener* listener, bool useCapture);
 WEBKIT_EXPORT bool dispatchEvent(const WebDOMEvent);


Modified: trunk/Source/WebKit/chromium/src/WebNode.cpp (146030 => 146031)

--- trunk/Source/WebKit/chromium/src/WebNode.cpp	2013-03-18 02:21:26 UTC (rev 146030)
+++ trunk/Source/WebKit/chromium/src/WebNode.cpp	2013-03-18 03:28:29 UTC (rev 146031)
@@ -178,18 +178,6 @@
 return m_private-isElementNode();
 }
 
-bool WebNode::hasEventListeners(const WebString eventType) const
-{
-// FIXME: permissionrequest seems like an implementation detail of the
-//the browser plug-in. Perhaps the browser plug-in should have
-//a more special-purpose mechanism?
-//See http://code.google.com/p/chromium/issues/detail?id=189561
-
-// Please do not add more eventTypes to this list without an API review.
-RELEASE_ASSERT(eventType == permissionrequest);
-return m_private-hasEventListeners(eventType);
-}
-
 void WebNode::addEventListener(const WebString eventType, WebDOMEventListener* listener, bool useCapture)
 {
 // Please do not add more eventTypes to this list without an API review.






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [145764] trunk/Tools

2013-03-13 Thread abarth
Title: [145764] trunk/Tools








Revision 145764
Author aba...@webkit.org
Date 2013-03-13 15:34:12 -0700 (Wed, 13 Mar 2013)


Log Message
run-perf-tests should support content_shell
https://bugs.webkit.org/show_bug.cgi?id=112291

Reviewed by Eric Seidel.

* Scripts/webkitpy/performance_tests/perftestsrunner.py:
(PerfTestsRunner._parse_args):

Modified Paths

trunk/Tools/ChangeLog
trunk/Tools/Scripts/webkitpy/performance_tests/perftest.py
trunk/Tools/Scripts/webkitpy/performance_tests/perftestsrunner.py




Diff

Modified: trunk/Tools/ChangeLog (145763 => 145764)

--- trunk/Tools/ChangeLog	2013-03-13 22:30:50 UTC (rev 145763)
+++ trunk/Tools/ChangeLog	2013-03-13 22:34:12 UTC (rev 145764)
@@ -1,3 +1,13 @@
+2013-03-13  Adam Barth  aba...@webkit.org
+
+run-perf-tests should support content_shell
+https://bugs.webkit.org/show_bug.cgi?id=112291
+
+Reviewed by Eric Seidel.
+
+* Scripts/webkitpy/performance_tests/perftestsrunner.py:
+(PerfTestsRunner._parse_args):
+
 2013-03-13  Oliver Hunt  oli...@apple.com
 
 Simplify Checked multiplication


Modified: trunk/Tools/Scripts/webkitpy/performance_tests/perftest.py (145763 => 145764)

--- trunk/Tools/Scripts/webkitpy/performance_tests/perftest.py	2013-03-13 22:30:50 UTC (rev 145763)
+++ trunk/Tools/Scripts/webkitpy/performance_tests/perftest.py	2013-03-13 22:34:12 UTC (rev 145764)
@@ -234,6 +234,9 @@
 re.compile(r'^Unknown option:'),
 re.compile(r'^\[WARNING:proxy_service.cc'),
 re.compile(r'^\[INFO:'),
+# These stderr messages come from content_shell on chromium-linux.
+re.compile(r'INFO:SkFontHost_fontconfig.cpp'),
+re.compile(r'Running without the SUID sandbox'),
 ]
 
 _lines_to_ignore_in_parser_result = [


Modified: trunk/Tools/Scripts/webkitpy/performance_tests/perftestsrunner.py (145763 => 145764)

--- trunk/Tools/Scripts/webkitpy/performance_tests/perftestsrunner.py	2013-03-13 22:30:50 UTC (rev 145763)
+++ trunk/Tools/Scripts/webkitpy/performance_tests/perftestsrunner.py	2013-03-13 22:34:12 UTC (rev 145764)
@@ -127,6 +127,8 @@
 optparse.make_option(--additional-drt-flag, action=""
 default=[], help=Additional command line flag to pass to DumpRenderTree 
  Specify multiple times to add multiple flags.),
+optparse.make_option(--driver-name, type=string,
+help=Alternative DumpRenderTree binary to use),
 optparse.make_option(--repeat, default=1, type=int,
 help=Specify number of times to run test set (default: 1).),
 optparse.make_option(--test-runner-count, default=DEFAULT_TEST_RUNNER_COUNT, type=int,






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [145770] trunk/Source/WebKit/chromium

2013-03-13 Thread abarth
Title: [145770] trunk/Source/WebKit/chromium








Revision 145770
Author aba...@webkit.org
Date 2013-03-13 16:16:28 -0700 (Wed, 13 Mar 2013)


Log Message
[Chromium] Restrict WebNode::addEventListener and friends to a whitelist of event types
https://bugs.webkit.org/show_bug.cgi?id=112195

Reviewed by Eric Seidel.

Chromium only uses these APIs in extremely narrow ways. In order to
discourage Chromium from using these APIs in broader ways, this patch
restricts the APIs to a small whitelist of event types.

We might want to add some sort of flag to let CEF use expose these APIs
more broadly.

* WebKit.gypi:
* public/WebNode.h:
* src/WebNode.cpp:
(WebKit::WebNode::hasEventListeners):
(WebKit::WebNode::addEventListener):
* tests/EventListenerTest.cpp: Removed.
- These tests of DOM mutation events are no longer needed because we
  don't support listening for DOM mutation events via the API
  anymore.

Modified Paths

trunk/Source/WebKit/chromium/ChangeLog
trunk/Source/WebKit/chromium/WebKit.gypi
trunk/Source/WebKit/chromium/public/WebNode.h
trunk/Source/WebKit/chromium/src/WebNode.cpp


Removed Paths

trunk/Source/WebKit/chromium/tests/EventListenerTest.cpp




Diff

Modified: trunk/Source/WebKit/chromium/ChangeLog (145769 => 145770)

--- trunk/Source/WebKit/chromium/ChangeLog	2013-03-13 23:00:39 UTC (rev 145769)
+++ trunk/Source/WebKit/chromium/ChangeLog	2013-03-13 23:16:28 UTC (rev 145770)
@@ -1,3 +1,27 @@
+2013-03-13  Adam Barth  aba...@webkit.org
+
+[Chromium] Restrict WebNode::addEventListener and friends to a whitelist of event types
+https://bugs.webkit.org/show_bug.cgi?id=112195
+
+Reviewed by Eric Seidel.
+
+Chromium only uses these APIs in extremely narrow ways. In order to
+discourage Chromium from using these APIs in broader ways, this patch
+restricts the APIs to a small whitelist of event types.
+
+We might want to add some sort of flag to let CEF use expose these APIs
+more broadly.
+
+* WebKit.gypi:
+* public/WebNode.h:
+* src/WebNode.cpp:
+(WebKit::WebNode::hasEventListeners):
+(WebKit::WebNode::addEventListener):
+* tests/EventListenerTest.cpp: Removed.
+- These tests of DOM mutation events are no longer needed because we
+  don't support listening for DOM mutation events via the API
+  anymore.
+
 2013-03-13  Stephen Chenney  schen...@chromium.org
 
 Add new Skia code suppression flags


Modified: trunk/Source/WebKit/chromium/WebKit.gypi (145769 => 145770)

--- trunk/Source/WebKit/chromium/WebKit.gypi	2013-03-13 23:00:39 UTC (rev 145769)
+++ trunk/Source/WebKit/chromium/WebKit.gypi	2013-03-13 23:16:28 UTC (rev 145770)
@@ -64,7 +64,6 @@
 'tests/DecimalTest.cpp',
 'tests/DeferredImageDecoderTest.cpp',
 'tests/DragImageTest.cpp',
-'tests/EventListenerTest.cpp',
 'tests/FakeWebPlugin.cpp',
 'tests/FakeWebPlugin.h',
 'tests/FakeWebGraphicsContext3D.h',


Modified: trunk/Source/WebKit/chromium/public/WebNode.h (145769 => 145770)

--- trunk/Source/WebKit/chromium/public/WebNode.h	2013-03-13 23:00:39 UTC (rev 145769)
+++ trunk/Source/WebKit/chromium/public/WebNode.h	2013-03-13 23:16:28 UTC (rev 145770)
@@ -107,9 +107,10 @@
 WEBKIT_EXPORT bool isFocusable() const;
 WEBKIT_EXPORT bool isContentEditable() const;
 WEBKIT_EXPORT bool isElementNode() const;
+// hasEventListeners only works with a small set of eventTypes.
 WEBKIT_EXPORT bool hasEventListeners(const WebString eventType) const;
+// addEventListener only works with a small set of eventTypes.
 WEBKIT_EXPORT void addEventListener(const WebString eventType, WebDOMEventListener* listener, bool useCapture);
-WEBKIT_EXPORT void removeEventListener(const WebString eventType, WebDOMEventListener* listener, bool useCapture);
 WEBKIT_EXPORT bool dispatchEvent(const WebDOMEvent);
 WEBKIT_EXPORT void simulateClick();
 WEBKIT_EXPORT WebNodeList getElementsByTagName(const WebString) const;


Modified: trunk/Source/WebKit/chromium/src/WebNode.cpp (145769 => 145770)

--- trunk/Source/WebKit/chromium/src/WebNode.cpp	2013-03-13 23:00:39 UTC (rev 145769)
+++ trunk/Source/WebKit/chromium/src/WebNode.cpp	2013-03-13 23:16:28 UTC (rev 145770)
@@ -180,27 +180,28 @@
 
 bool WebNode::hasEventListeners(const WebString eventType) const
 {
+// FIXME: permissionrequest seems like an implementation detail of the
+//the browser plug-in. Perhaps the browser plug-in should have
+//a more special-purpose mechanism?
+//See http://code.google.com/p/chromium/issues/detail?id=189561
+
+// Please do not add more eventTypes to this list without an API review.
+RELEASE_ASSERT(eventType == permissionrequest);
 return m_private-hasEventListeners(eventType);
 }
 
 void WebNode::addEventListener(const WebString eventType, WebDOMEventListener* 

[webkit-changes] [145589] trunk/Source/WebKit/chromium

2013-03-12 Thread abarth
Title: [145589] trunk/Source/WebKit/chromium








Revision 145589
Author aba...@webkit.org
Date 2013-03-12 14:54:11 -0700 (Tue, 12 Mar 2013)


Log Message
[Chromium] Remove WEBKIT_USING_V8 from the WebKit API
https://bugs.webkit.org/show_bug.cgi?id=112120

Reviewed by Tony Chang.

Chromium always uses V8. This macro has outlived it's usefulness. It's
now just noise.

* README:
* public/WebArrayBuffer.h:
(WebArrayBuffer):
* public/WebArrayBufferView.h:
(WebArrayBufferView):
* public/WebBindings.h:
(WebBindings):
* public/WebBlob.h:
(WebBlob):
* public/WebFrame.h:
(WebFrame):
* public/WebFrameClient.h:
* public/WebSerializedScriptValue.h:
(WebSerializedScriptValue):
* src/WebArrayBuffer.cpp:
(WebKit::WebArrayBuffer::createFromV8Value):
* src/WebArrayBufferView.cpp:
(WebKit::WebArrayBufferView::createFromV8Value):
* src/WebBindings.cpp:
(WebKit::WebBindings::toV8Value):
* src/WebBlob.cpp:
(WebKit::WebBlob::toV8Value):
* src/WebFrameImpl.cpp:
(WebKit::WebFrame::frameForContext):
* src/WebFrameImpl.h:
(WebFrameImpl):
* src/WebSerializedScriptValue.cpp:
(WebKit::WebSerializedScriptValue::serialize):
(WebKit::WebSerializedScriptValue::deserialize):

Modified Paths

trunk/Source/WebKit/chromium/ChangeLog
trunk/Source/WebKit/chromium/README
trunk/Source/WebKit/chromium/public/WebArrayBuffer.h
trunk/Source/WebKit/chromium/public/WebArrayBufferView.h
trunk/Source/WebKit/chromium/public/WebBindings.h
trunk/Source/WebKit/chromium/public/WebBlob.h
trunk/Source/WebKit/chromium/public/WebFrame.h
trunk/Source/WebKit/chromium/public/WebFrameClient.h
trunk/Source/WebKit/chromium/public/WebSerializedScriptValue.h
trunk/Source/WebKit/chromium/src/WebArrayBuffer.cpp
trunk/Source/WebKit/chromium/src/WebArrayBufferView.cpp
trunk/Source/WebKit/chromium/src/WebBindings.cpp
trunk/Source/WebKit/chromium/src/WebBlob.cpp
trunk/Source/WebKit/chromium/src/WebFrameImpl.cpp
trunk/Source/WebKit/chromium/src/WebFrameImpl.h
trunk/Source/WebKit/chromium/src/WebSerializedScriptValue.cpp




Diff

Modified: trunk/Source/WebKit/chromium/ChangeLog (145588 => 145589)

--- trunk/Source/WebKit/chromium/ChangeLog	2013-03-12 21:53:19 UTC (rev 145588)
+++ trunk/Source/WebKit/chromium/ChangeLog	2013-03-12 21:54:11 UTC (rev 145589)
@@ -1,3 +1,43 @@
+2013-03-12  Adam Barth  aba...@webkit.org
+
+[Chromium] Remove WEBKIT_USING_V8 from the WebKit API
+https://bugs.webkit.org/show_bug.cgi?id=112120
+
+Reviewed by Tony Chang.
+
+Chromium always uses V8. This macro has outlived it's usefulness. It's
+now just noise.
+
+* README:
+* public/WebArrayBuffer.h:
+(WebArrayBuffer):
+* public/WebArrayBufferView.h:
+(WebArrayBufferView):
+* public/WebBindings.h:
+(WebBindings):
+* public/WebBlob.h:
+(WebBlob):
+* public/WebFrame.h:
+(WebFrame):
+* public/WebFrameClient.h:
+* public/WebSerializedScriptValue.h:
+(WebSerializedScriptValue):
+* src/WebArrayBuffer.cpp:
+(WebKit::WebArrayBuffer::createFromV8Value):
+* src/WebArrayBufferView.cpp:
+(WebKit::WebArrayBufferView::createFromV8Value):
+* src/WebBindings.cpp:
+(WebKit::WebBindings::toV8Value):
+* src/WebBlob.cpp:
+(WebKit::WebBlob::toV8Value):
+* src/WebFrameImpl.cpp:
+(WebKit::WebFrame::frameForContext):
+* src/WebFrameImpl.h:
+(WebFrameImpl):
+* src/WebSerializedScriptValue.cpp:
+(WebKit::WebSerializedScriptValue::serialize):
+(WebKit::WebSerializedScriptValue::deserialize):
+
 2013-03-12  Abhishek Arya  infe...@chromium.org
 
 Replace static_casts with to* functions.


Modified: trunk/Source/WebKit/chromium/README (145588 => 145589)

--- trunk/Source/WebKit/chromium/README	2013-03-12 21:53:19 UTC (rev 145588)
+++ trunk/Source/WebKit/chromium/README	2013-03-12 21:54:11 UTC (rev 145589)
@@ -35,11 +35,7 @@
   called by a public inline-defined method should be annotated with
   WEBKIT_EXPORT.  WEBKIT_EXPORT is not used to export whole classes.
 
-  WEBKIT_USING_V8 is defined when using V8 as the _javascript_ library.
 
-  WEBKIT_USING_JSC is defined when using JSC as the _javascript_ library.
-
-
 BASIC TYPES
 
   Use of STL is prohibited except in cases where it would be allowed in


Modified: trunk/Source/WebKit/chromium/public/WebArrayBuffer.h (145588 => 145589)

--- trunk/Source/WebKit/chromium/public/WebArrayBuffer.h	2013-03-12 21:53:19 UTC (rev 145588)
+++ trunk/Source/WebKit/chromium/public/WebArrayBuffer.h	2013-03-12 21:54:11 UTC (rev 145589)
@@ -34,12 +34,10 @@
 #include ../../../Platform/chromium/public/WebCommon.h
 #include ../../../Platform/chromium/public/WebPrivatePtr.h
 
-#if WEBKIT_USING_V8
 namespace v8 {
 class Value;
 template class T class Handle;
 }
-#endif
 
 namespace WTF { class ArrayBuffer; }
 
@@ -66,10 +64,8 @@
 WEBKIT_EXPORT void* data() const;
 WEBKIT_EXPORT unsigned byteLength() const;
 
-#if 

[webkit-changes] [145591] trunk/LayoutTests

2013-03-12 Thread abarth
Title: [145591] trunk/LayoutTests








Revision 145591
Author aba...@webkit.org
Date 2013-03-12 14:58:01 -0700 (Tue, 12 Mar 2013)


Log Message
Remove stray .gitmodules file
https://bugs.webkit.org/show_bug.cgi?id=112186

Reviewed by Tony Chang.

Apparently I imported this together with the jquery tests by mistake.

* jquery/resources/src/sizzle/.gitmodules: Removed.

Modified Paths

trunk/LayoutTests/ChangeLog


Removed Paths

trunk/LayoutTests/jquery/resources/src/sizzle/.gitmodules
trunk/LayoutTests/jquery/resources/test/qunit/.gitignore




Diff

Modified: trunk/LayoutTests/ChangeLog (145590 => 145591)

--- trunk/LayoutTests/ChangeLog	2013-03-12 21:55:25 UTC (rev 145590)
+++ trunk/LayoutTests/ChangeLog	2013-03-12 21:58:01 UTC (rev 145591)
@@ -1,3 +1,14 @@
+2013-03-12  Adam Barth  aba...@webkit.org
+
+Remove stray .gitmodules file
+https://bugs.webkit.org/show_bug.cgi?id=112186
+
+Reviewed by Tony Chang.
+
+Apparently I imported this together with the jquery tests by mistake.
+
+* jquery/resources/src/sizzle/.gitmodules: Removed.
+
 2013-03-12  Christian Biesinger  cbiesin...@chromium.org
 
 Mac: Incorrect rendering of audio controls


Deleted: trunk/LayoutTests/jquery/resources/src/sizzle/.gitmodules (145590 => 145591)

--- trunk/LayoutTests/jquery/resources/src/sizzle/.gitmodules	2013-03-12 21:55:25 UTC (rev 145590)
+++ trunk/LayoutTests/jquery/resources/src/sizzle/.gitmodules	2013-03-12 21:58:01 UTC (rev 145591)
@@ -1,3 +0,0 @@
-[submodule test/qunit]
-	path = test/qunit
-	url = ""


Deleted: trunk/LayoutTests/jquery/resources/test/qunit/.gitignore (145590 => 145591)

--- trunk/LayoutTests/jquery/resources/test/qunit/.gitignore	2013-03-12 21:55:25 UTC (rev 145590)
+++ trunk/LayoutTests/jquery/resources/test/qunit/.gitignore	2013-03-12 21:58:01 UTC (rev 145591)
@@ -1,6 +0,0 @@
-.project
-*~
-*.diff
-*.patch
-.DS_Store
-






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [145597] trunk/Source/WebKit/chromium

2013-03-12 Thread abarth
Title: [145597] trunk/Source/WebKit/chromium








Revision 145597
Author aba...@webkit.org
Date 2013-03-12 15:21:38 -0700 (Tue, 12 Mar 2013)


Log Message
Unreviewed.  Rolled Chromium DEPS to r187660.  Requested by
Adam Barth aba...@webkit.org via sheriffbot.

Patch by Sheriff Bot webkit.review@gmail.com on 2013-03-12

* DEPS:

Modified Paths

trunk/Source/WebKit/chromium/ChangeLog
trunk/Source/WebKit/chromium/DEPS




Diff

Modified: trunk/Source/WebKit/chromium/ChangeLog (145596 => 145597)

--- trunk/Source/WebKit/chromium/ChangeLog	2013-03-12 22:21:28 UTC (rev 145596)
+++ trunk/Source/WebKit/chromium/ChangeLog	2013-03-12 22:21:38 UTC (rev 145597)
@@ -1,3 +1,10 @@
+2013-03-12  Sheriff Bot  webkit.review@gmail.com
+
+Unreviewed.  Rolled Chromium DEPS to r187660.  Requested by
+Adam Barth aba...@webkit.org via sheriffbot.
+
+* DEPS:
+
 2013-03-12  Adam Barth  aba...@webkit.org
 
 [Chromium] Remove WEBKIT_USING_V8 from the WebKit API


Modified: trunk/Source/WebKit/chromium/DEPS (145596 => 145597)

--- trunk/Source/WebKit/chromium/DEPS	2013-03-12 22:21:28 UTC (rev 145596)
+++ trunk/Source/WebKit/chromium/DEPS	2013-03-12 22:21:38 UTC (rev 145597)
@@ -32,7 +32,7 @@
 
 vars = {
   'chromium_svn': 'http://src.chromium.org/svn/trunk/src',
-  'chromium_rev': '187216'
+  'chromium_rev': '187660'
 }
 
 deps = {






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [145623] trunk/Source/Platform

2013-03-12 Thread abarth
Title: [145623] trunk/Source/Platform








Revision 145623
Author aba...@webkit.org
Date 2013-03-12 17:03:42 -0700 (Tue, 12 Mar 2013)


Log Message
[Chromium] Remove last vestigates of WEBKIT_USING_V8
https://bugs.webkit.org/show_bug.cgi?id=112203

Reviewed by James Robinson.

These macros are no longer referenced anywhere and can be removed.

* chromium/public/WebCommon.h:

Modified Paths

trunk/Source/Platform/ChangeLog
trunk/Source/Platform/chromium/public/WebCommon.h




Diff

Modified: trunk/Source/Platform/ChangeLog (145622 => 145623)

--- trunk/Source/Platform/ChangeLog	2013-03-13 00:03:23 UTC (rev 145622)
+++ trunk/Source/Platform/ChangeLog	2013-03-13 00:03:42 UTC (rev 145623)
@@ -1,3 +1,14 @@
+2013-03-12  Adam Barth  aba...@webkit.org
+
+[Chromium] Remove last vestigates of WEBKIT_USING_V8
+https://bugs.webkit.org/show_bug.cgi?id=112203
+
+Reviewed by James Robinson.
+
+These macros are no longer referenced anywhere and can be removed.
+
+* chromium/public/WebCommon.h:
+
 2013-03-12  James Robinson  jam...@chromium.org
 
 [chromium] Remove unused WebIOSurfaceLayer type


Modified: trunk/Source/Platform/chromium/public/WebCommon.h (145622 => 145623)

--- trunk/Source/Platform/chromium/public/WebCommon.h	2013-03-13 00:03:23 UTC (rev 145622)
+++ trunk/Source/Platform/chromium/public/WebCommon.h	2013-03-13 00:03:42 UTC (rev 145623)
@@ -38,14 +38,6 @@
 #define WEBKIT_IMPLEMENTATION 0
 #endif
 
-#if !defined(WEBKIT_USING_V8)
-#define WEBKIT_USING_V8 1
-#endif
-
-#if !defined(WEBKIT_USING_JSC)
-#define WEBKIT_USING_JSC 0
-#endif
-
 // -
 // Exported symbols need to be annotated with WEBKIT_EXPORT
 






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [145651] trunk/Source/WebKit/chromium

2013-03-12 Thread abarth
Title: [145651] trunk/Source/WebKit/chromium








Revision 145651
Author aba...@webkit.org
Date 2013-03-12 18:19:05 -0700 (Tue, 12 Mar 2013)


Log Message
[Chromium] WebFrame event listener APIs are unused and can be removed
https://bugs.webkit.org/show_bug.cgi?id=112189

Reviewed by Darin Fisher.

As far as I can tell, there are no callers for these APIs. They appear
to have been added for out-of-process postMessages, but those are now
implemented using a different mechanism.

* public/WebFrame.h:
(WebFrame):
* src/WebFrameImpl.cpp:
* src/WebFrameImpl.h:
(WebFrameImpl):

Modified Paths

trunk/Source/WebKit/chromium/ChangeLog
trunk/Source/WebKit/chromium/public/WebFrame.h
trunk/Source/WebKit/chromium/src/WebFrameImpl.cpp
trunk/Source/WebKit/chromium/src/WebFrameImpl.h




Diff

Modified: trunk/Source/WebKit/chromium/ChangeLog (145650 => 145651)

--- trunk/Source/WebKit/chromium/ChangeLog	2013-03-13 01:17:02 UTC (rev 145650)
+++ trunk/Source/WebKit/chromium/ChangeLog	2013-03-13 01:19:05 UTC (rev 145651)
@@ -1,3 +1,20 @@
+2013-03-12  Adam Barth  aba...@webkit.org
+
+[Chromium] WebFrame event listener APIs are unused and can be removed
+https://bugs.webkit.org/show_bug.cgi?id=112189
+
+Reviewed by Darin Fisher.
+
+As far as I can tell, there are no callers for these APIs. They appear
+to have been added for out-of-process postMessages, but those are now
+implemented using a different mechanism.
+
+* public/WebFrame.h:
+(WebFrame):
+* src/WebFrameImpl.cpp:
+* src/WebFrameImpl.h:
+(WebFrameImpl):
+
 2013-03-12  Sheriff Bot  webkit.review@gmail.com
 
 Unreviewed.  Rolled Chromium DEPS to r187660.  Requested by


Modified: trunk/Source/WebKit/chromium/public/WebFrame.h (145650 => 145651)

--- trunk/Source/WebKit/chromium/public/WebFrame.h	2013-03-13 01:17:02 UTC (rev 145650)
+++ trunk/Source/WebKit/chromium/public/WebFrame.h	2013-03-13 01:19:05 UTC (rev 145651)
@@ -603,15 +603,7 @@
 
 // Events --
 
-// These functions all work on the WebFrame's DOMWindow. Keep in mind
-// that these events might be generated by web content and not genuine
-// DOM events.
-
-virtual void addEventListener(const WebString eventType,
-  WebDOMEventListener*, bool useCapture) = 0;
-virtual void removeEventListener(const WebString eventType,
- WebDOMEventListener*, bool useCapture) = 0;
-virtual bool dispatchEvent(const WebDOMEvent) = 0;
+// Dispatches a message event on the current DOMWindow in this WebFrame.
 virtual void dispatchMessageEventWithOriginCheck(
 const WebSecurityOrigin intendedTargetOrigin,
 const WebDOMEvent) = 0;


Modified: trunk/Source/WebKit/chromium/src/WebFrameImpl.cpp (145650 => 145651)

--- trunk/Source/WebKit/chromium/src/WebFrameImpl.cpp	2013-03-13 01:17:02 UTC (rev 145650)
+++ trunk/Source/WebKit/chromium/src/WebFrameImpl.cpp	2013-03-13 01:19:05 UTC (rev 145651)
@@ -1848,26 +1848,6 @@
 #endif
 }
 
-void WebFrameImpl::addEventListener(const WebString eventType, WebDOMEventListener* listener, bool useCapture)
-{
-DOMWindow* window = frame()-document()-domWindow();
-EventListenerWrapper* listenerWrapper = listener-createEventListenerWrapper(eventType, useCapture, window);
-window-addEventListener(eventType, adoptRef(listenerWrapper), useCapture);
-}
-
-void WebFrameImpl::removeEventListener(const WebString eventType, WebDOMEventListener* listener, bool useCapture)
-{
-DOMWindow* window = frame()-document()-domWindow();
-EventListenerWrapper* listenerWrapper = listener-getEventListenerWrapper(eventType, useCapture, window);
-window-removeEventListener(eventType, listenerWrapper, useCapture);
-}
-
-bool WebFrameImpl::dispatchEvent(const WebDOMEvent event)
-{
-ASSERT(!event.isNull());
-return frame()-document()-domWindow()-dispatchEvent(event);
-}
-
 void WebFrameImpl::dispatchMessageEventWithOriginCheck(const WebSecurityOrigin intendedTargetOrigin, const WebDOMEvent event)
 {
 ASSERT(!event.isNull());


Modified: trunk/Source/WebKit/chromium/src/WebFrameImpl.h (145650 => 145651)

--- trunk/Source/WebKit/chromium/src/WebFrameImpl.h	2013-03-13 01:17:02 UTC (rev 145650)
+++ trunk/Source/WebKit/chromium/src/WebFrameImpl.h	2013-03-13 01:19:05 UTC (rev 145651)
@@ -219,11 +219,6 @@
 
 virtual void sendOrientationChangeEvent(int orientation);
 
-virtual void addEventListener(const WebString eventType,
-  WebDOMEventListener*, bool useCapture);
-virtual void removeEventListener(const WebString eventType,
- WebDOMEventListener*, bool useCapture);
-virtual bool dispatchEvent(const WebDOMEvent);
 virtual void dispatchMessageEventWithOriginCheck(
 const WebSecurityOrigin intendedTargetOrigin,
 const 

[webkit-changes] [145398] trunk/Source/WebCore

2013-03-11 Thread abarth
Title: [145398] trunk/Source/WebCore








Revision 145398
Author aba...@webkit.org
Date 2013-03-11 13:53:47 -0700 (Mon, 11 Mar 2013)


Log Message
Factor HTMLTreeBuilderSimulator out of BackgroundHTMLParser
https://bugs.webkit.org/show_bug.cgi?id=112057

Reviewed by Eric Seidel.

Simulating the HTML tree builder is a separate concern from parsing on
the background thread. We plan to re-use the tree builder simulator for
the view-source parser, for example. Also, having the simulator as a
separate object will make it easier to fix
https://bugs.webkit.org/show_bug.cgi?id=109764.

* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* html/parser/BackgroundHTMLParser.cpp:
(WebCore):
(WebCore::BackgroundHTMLParser::BackgroundHTMLParser):
(WebCore::BackgroundHTMLParser::pumpTokenizer):
* html/parser/BackgroundHTMLParser.h:
(BackgroundHTMLParser):

Modified Paths

trunk/Source/WebCore/CMakeLists.txt
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/GNUmakefile.list.am
trunk/Source/WebCore/Target.pri
trunk/Source/WebCore/WebCore.gypi
trunk/Source/WebCore/WebCore.vcproj/WebCore.vcproj
trunk/Source/WebCore/html/parser/BackgroundHTMLParser.cpp
trunk/Source/WebCore/html/parser/BackgroundHTMLParser.h


Added Paths

trunk/Source/WebCore/html/parser/HTMLTreeBuilderSimulator.cpp
trunk/Source/WebCore/html/parser/HTMLTreeBuilderSimulator.h




Diff

Modified: trunk/Source/WebCore/CMakeLists.txt (145397 => 145398)

--- trunk/Source/WebCore/CMakeLists.txt	2013-03-11 20:43:43 UTC (rev 145397)
+++ trunk/Source/WebCore/CMakeLists.txt	2013-03-11 20:53:47 UTC (rev 145398)
@@ -1562,6 +1562,7 @@
 html/parser/HTMLSourceTracker.cpp
 html/parser/HTMLTokenizer.cpp
 html/parser/HTMLTreeBuilder.cpp
+html/parser/HTMLTreeBuilderSimulator.cpp
 html/parser/HTMLViewSourceParser.cpp
 html/parser/TextDocumentParser.cpp
 html/parser/TextViewSourceParser.cpp


Modified: trunk/Source/WebCore/ChangeLog (145397 => 145398)

--- trunk/Source/WebCore/ChangeLog	2013-03-11 20:43:43 UTC (rev 145397)
+++ trunk/Source/WebCore/ChangeLog	2013-03-11 20:53:47 UTC (rev 145398)
@@ -1,3 +1,28 @@
+2013-03-11  Adam Barth  aba...@webkit.org
+
+Factor HTMLTreeBuilderSimulator out of BackgroundHTMLParser
+https://bugs.webkit.org/show_bug.cgi?id=112057
+
+Reviewed by Eric Seidel.
+
+Simulating the HTML tree builder is a separate concern from parsing on
+the background thread. We plan to re-use the tree builder simulator for
+the view-source parser, for example. Also, having the simulator as a
+separate object will make it easier to fix
+https://bugs.webkit.org/show_bug.cgi?id=109764.
+
+* CMakeLists.txt:
+* GNUmakefile.list.am:
+* Target.pri:
+* WebCore.gypi:
+* WebCore.vcproj/WebCore.vcproj:
+* html/parser/BackgroundHTMLParser.cpp:
+(WebCore):
+(WebCore::BackgroundHTMLParser::BackgroundHTMLParser):
+(WebCore::BackgroundHTMLParser::pumpTokenizer):
+* html/parser/BackgroundHTMLParser.h:
+(BackgroundHTMLParser):
+
 2013-02-26  Dima Gorbik  dgor...@apple.com
 
 Not all properties apply to the '::cue' pseudo-element


Modified: trunk/Source/WebCore/GNUmakefile.list.am (145397 => 145398)

--- trunk/Source/WebCore/GNUmakefile.list.am	2013-03-11 20:43:43 UTC (rev 145397)
+++ trunk/Source/WebCore/GNUmakefile.list.am	2013-03-11 20:53:47 UTC (rev 145398)
@@ -3644,6 +3644,8 @@
 	Source/WebCore/html/parser/HTMLTokenizer.h \
 	Source/WebCore/html/parser/HTMLTreeBuilder.cpp \
 	Source/WebCore/html/parser/HTMLTreeBuilder.h \
+	Source/WebCore/html/parser/HTMLTreeBuilderSimulator.cpp \
+	Source/WebCore/html/parser/HTMLTreeBuilderSimulator.h \
 	Source/WebCore/html/parser/HTMLViewSourceParser.cpp \
 	Source/WebCore/html/parser/HTMLViewSourceParser.h \
 	Source/WebCore/html/parser/InputStreamPreprocessor.h \


Modified: trunk/Source/WebCore/Target.pri (145397 => 145398)

--- trunk/Source/WebCore/Target.pri	2013-03-11 20:43:43 UTC (rev 145397)
+++ trunk/Source/WebCore/Target.pri	2013-03-11 20:53:47 UTC (rev 145398)
@@ -747,6 +747,7 @@
 html/parser/HTMLSourceTracker.cpp \
 html/parser/HTMLTokenizer.cpp \
 html/parser/HTMLTreeBuilder.cpp \
+html/parser/HTMLTreeBuilderSimulator.cpp \
 html/parser/HTMLViewSourceParser.cpp \
 html/parser/TextDocumentParser.cpp \
 html/parser/TextViewSourceParser.cpp \


Modified: trunk/Source/WebCore/WebCore.gypi (145397 => 145398)

--- trunk/Source/WebCore/WebCore.gypi	2013-03-11 20:43:43 UTC (rev 145397)
+++ trunk/Source/WebCore/WebCore.gypi	2013-03-11 20:53:47 UTC (rev 145398)
@@ -3532,6 +3532,8 @@
 'html/parser/HTMLTokenizer.h',
 'html/parser/HTMLTreeBuilder.cpp',
 'html/parser/HTMLTreeBuilder.h',
+'html/parser/HTMLTreeBuilderSimulator.cpp',
+'html/parser/HTMLTreeBuilderSimulator.h',
 

[webkit-changes] [145425] trunk/Source/WebCore

2013-03-11 Thread abarth
Title: [145425] trunk/Source/WebCore








Revision 145425
Author aba...@webkit.org
Date 2013-03-11 16:25:41 -0700 (Mon, 11 Mar 2013)


Log Message
Unreviewed attempt to fix build after http://trac.webkit.org/changeset/145421.

* html/HTMLPlugInImageElement.cpp:

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/html/HTMLPlugInImageElement.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (145424 => 145425)

--- trunk/Source/WebCore/ChangeLog	2013-03-11 23:20:56 UTC (rev 145424)
+++ trunk/Source/WebCore/ChangeLog	2013-03-11 23:25:41 UTC (rev 145425)
@@ -1,3 +1,9 @@
+2013-03-11  Adam Barth  aba...@webkit.org
+
+Unreviewed attempt to fix build after http://trac.webkit.org/changeset/145421.
+
+* html/HTMLPlugInImageElement.cpp:
+
 2013-03-05  Ojan Vafai  o...@chromium.org
 
 Intrinsic width keyword values don't work for tables


Modified: trunk/Source/WebCore/html/HTMLPlugInImageElement.cpp (145424 => 145425)

--- trunk/Source/WebCore/html/HTMLPlugInImageElement.cpp	2013-03-11 23:20:56 UTC (rev 145424)
+++ trunk/Source/WebCore/html/HTMLPlugInImageElement.cpp	2013-03-11 23:25:41 UTC (rev 145425)
@@ -48,6 +48,7 @@
 #include ShadowRoot.h
 #include StyleResolver.h
 #include Text.h
+#include wtf/CurrentTime.h
 
 namespace WebCore {
 






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [144714] trunk

2013-03-04 Thread abarth
Title: [144714] trunk








Revision 144714
Author aba...@webkit.org
Date 2013-03-04 20:57:15 -0800 (Mon, 04 Mar 2013)


Log Message
Background HTML parser can rewind the tokenizer after end-of-file
https://bugs.webkit.org/show_bug.cgi?id=111365

Reviewed by Eric Seidel.

Source/WebCore:

Prior to this patch, it was possible to call didFailSpeculation after
processing the end-of-file token because checkForSpeculationFailure
didn't zero out m_tokenizer in some control paths.

This patch renames checkForSpeculationFailure to validateSpeculations
and ensures that it always takes ownership of the main thread's
HTMLTokenizer.

This patch also adds a number of ASSERTs to make sure the parser state
machine stays in the correct configuration (e.g., that we don't have a
main thread tokenizer while we're supposed to be tokenizing on the
background thread).

Test: fast/parser/document-write-fighting-eof.html

* html/parser/BackgroundHTMLInputStream.cpp:
(WebCore::BackgroundHTMLInputStream::rewindTo):
* html/parser/BackgroundHTMLParser.cpp:
(WebCore::BackgroundHTMLParser::append):
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::validateSpeculations):
(WebCore::HTMLDocumentParser::processParsedChunkFromBackgroundParser):
(WebCore::HTMLDocumentParser::pumpPendingSpeculations):
(WebCore::HTMLDocumentParser::resumeParsingAfterScriptExecution):
* html/parser/HTMLDocumentParser.h:
(HTMLDocumentParser):

LayoutTests:

* fast/parser/document-write-fighting-eof.html: Added.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/html/parser/BackgroundHTMLInputStream.cpp
trunk/Source/WebCore/html/parser/BackgroundHTMLParser.cpp
trunk/Source/WebCore/html/parser/HTMLDocumentParser.cpp
trunk/Source/WebCore/html/parser/HTMLDocumentParser.h


Added Paths

trunk/LayoutTests/fast/parser/document-write-fighting-eof-expected.txt
trunk/LayoutTests/fast/parser/document-write-fighting-eof.html




Diff

Modified: trunk/LayoutTests/ChangeLog (144713 => 144714)

--- trunk/LayoutTests/ChangeLog	2013-03-05 04:37:32 UTC (rev 144713)
+++ trunk/LayoutTests/ChangeLog	2013-03-05 04:57:15 UTC (rev 144714)
@@ -1,3 +1,12 @@
+2013-03-04  Adam Barth  aba...@webkit.org
+
+Background HTML parser can rewind the tokenizer after end-of-file
+https://bugs.webkit.org/show_bug.cgi?id=111365
+
+Reviewed by Eric Seidel.
+
+* fast/parser/document-write-fighting-eof.html: Added.
+
 2013-03-04  Tim 'mithro' Ansell  mit...@mithis.com
 
 Make sure that clearOwnerNode also clears StyleResolver references (via didMutate).


Added: trunk/LayoutTests/fast/parser/document-write-fighting-eof-expected.txt (0 => 144714)

--- trunk/LayoutTests/fast/parser/document-write-fighting-eof-expected.txt	(rev 0)
+++ trunk/LayoutTests/fast/parser/document-write-fighting-eof-expected.txt	2013-03-05 04:57:15 UTC (rev 144714)
@@ -0,0 +1 @@
+PASS


Added: trunk/LayoutTests/fast/parser/document-write-fighting-eof.html (0 => 144714)

--- trunk/LayoutTests/fast/parser/document-write-fighting-eof.html	(rev 0)
+++ trunk/LayoutTests/fast/parser/document-write-fighting-eof.html	2013-03-05 04:57:15 UTC (rev 144714)
@@ -0,0 +1,6 @@
+script
+if (window.testRunner)
+testRunner.dumpAsText();
+/script
+PAscript _onbeforeload_=document.write('span') src=""
+SS


Modified: trunk/Source/WebCore/ChangeLog (144713 => 144714)

--- trunk/Source/WebCore/ChangeLog	2013-03-05 04:37:32 UTC (rev 144713)
+++ trunk/Source/WebCore/ChangeLog	2013-03-05 04:57:15 UTC (rev 144714)
@@ -1,3 +1,37 @@
+2013-03-04  Adam Barth  aba...@webkit.org
+
+Background HTML parser can rewind the tokenizer after end-of-file
+https://bugs.webkit.org/show_bug.cgi?id=111365
+
+Reviewed by Eric Seidel.
+
+Prior to this patch, it was possible to call didFailSpeculation after
+processing the end-of-file token because checkForSpeculationFailure
+didn't zero out m_tokenizer in some control paths.
+
+This patch renames checkForSpeculationFailure to validateSpeculations
+and ensures that it always takes ownership of the main thread's
+HTMLTokenizer.
+
+This patch also adds a number of ASSERTs to make sure the parser state
+machine stays in the correct configuration (e.g., that we don't have a
+main thread tokenizer while we're supposed to be tokenizing on the
+background thread).
+
+Test: fast/parser/document-write-fighting-eof.html
+
+* html/parser/BackgroundHTMLInputStream.cpp:
+(WebCore::BackgroundHTMLInputStream::rewindTo):
+* html/parser/BackgroundHTMLParser.cpp:
+(WebCore::BackgroundHTMLParser::append):
+* html/parser/HTMLDocumentParser.cpp:
+(WebCore::HTMLDocumentParser::validateSpeculations):
+(WebCore::HTMLDocumentParser::processParsedChunkFromBackgroundParser):
+

[webkit-changes] [144561] trunk/Source/WebCore

2013-03-03 Thread abarth
Title: [144561] trunk/Source/WebCore








Revision 144561
Author aba...@webkit.org
Date 2013-03-03 00:33:44 -0800 (Sun, 03 Mar 2013)


Log Message
REGRESSION(144520): Does not compile on chromium-win
https://bugs.webkit.org/show_bug.cgi?id=111261

Unreviewed rollout of http://trac.webkit.org/changeset/144520. This
patch does not compile for chromium-win. See the bug for the compile
error.

* rendering/ExclusionShapeInsideInfo.cpp:
* rendering/ExclusionShapeInsideInfo.h:
(WebCore):
(LineSegmentRange):
(WebCore::LineSegmentRange::LineSegmentRange):
(WebCore::ExclusionShapeInsideInfo::isEnabledFor):
* rendering/RenderBlock.cpp:
(WebCore::RenderBlock::willBeDestroyed):
(WebCore::RenderBlock::exclusionShapeInsideInfo):
(WebCore):
(WebCore::RenderBlock::updateExclusionShapeInsideInfoAfterStyleChange):
* rendering/RenderBlock.h:
(WebCore):
(RenderBlock):
(RenderBlockRareData):
* rendering/RenderBlockLineLayout.cpp:
(WebCore::constructBidiRunsForLine):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/rendering/ExclusionShapeInsideInfo.cpp
trunk/Source/WebCore/rendering/ExclusionShapeInsideInfo.h
trunk/Source/WebCore/rendering/RenderBlock.cpp
trunk/Source/WebCore/rendering/RenderBlock.h
trunk/Source/WebCore/rendering/RenderBlockLineLayout.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (144560 => 144561)

--- trunk/Source/WebCore/ChangeLog	2013-03-03 07:31:07 UTC (rev 144560)
+++ trunk/Source/WebCore/ChangeLog	2013-03-03 08:33:44 UTC (rev 144561)
@@ -1,3 +1,30 @@
+2013-03-03  Adam Barth  aba...@webkit.org
+
+REGRESSION(144520): Does not compile on chromium-win
+https://bugs.webkit.org/show_bug.cgi?id=111261
+
+Unreviewed rollout of http://trac.webkit.org/changeset/144520. This
+patch does not compile for chromium-win. See the bug for the compile
+error.
+
+* rendering/ExclusionShapeInsideInfo.cpp:
+* rendering/ExclusionShapeInsideInfo.h:
+(WebCore):
+(LineSegmentRange):
+(WebCore::LineSegmentRange::LineSegmentRange):
+(WebCore::ExclusionShapeInsideInfo::isEnabledFor):
+* rendering/RenderBlock.cpp:
+(WebCore::RenderBlock::willBeDestroyed):
+(WebCore::RenderBlock::exclusionShapeInsideInfo):
+(WebCore):
+(WebCore::RenderBlock::updateExclusionShapeInsideInfoAfterStyleChange):
+* rendering/RenderBlock.h:
+(WebCore):
+(RenderBlock):
+(RenderBlockRareData):
+* rendering/RenderBlockLineLayout.cpp:
+(WebCore::constructBidiRunsForLine):
+
 2013-03-02  Zan Dobersek  zdober...@igalia.com
 
 REGRESSION (r144517): IndexedDB layout test failures on GTK


Modified: trunk/Source/WebCore/rendering/ExclusionShapeInsideInfo.cpp (144560 => 144561)

--- trunk/Source/WebCore/rendering/ExclusionShapeInsideInfo.cpp	2013-03-03 07:31:07 UTC (rev 144560)
+++ trunk/Source/WebCore/rendering/ExclusionShapeInsideInfo.cpp	2013-03-03 08:33:44 UTC (rev 144561)
@@ -32,23 +32,9 @@
 
 #if ENABLE(CSS_EXCLUSIONS)
 
-#include InlineIterator.h
 #include RenderBlock.h
 
 namespace WebCore {
-
-LineSegmentRange::LineSegmentRange(const InlineIterator start, const InlineIterator end)
-: start(start.root(), start.object(), start.offset())
-, end(end.root(), end.object(), end.offset())
-{
-}
-
-bool ExclusionShapeInsideInfo::isEnabledFor(const RenderBlock* renderer)
-{
-ExclusionShapeValue* shapeValue = renderer-style()-resolvedShapeInside();
-return (shapeValue  shapeValue-type() == ExclusionShapeValue::SHAPE) ? shapeValue-shape() : 0;
-}
-
 bool ExclusionShapeInsideInfo::computeSegmentsForLine(LayoutUnit lineTop, LayoutUnit lineHeight)
 {
 ASSERT(lineHeight = 0);


Modified: trunk/Source/WebCore/rendering/ExclusionShapeInsideInfo.h (144560 => 144561)

--- trunk/Source/WebCore/rendering/ExclusionShapeInsideInfo.h	2013-03-03 07:31:07 UTC (rev 144560)
+++ trunk/Source/WebCore/rendering/ExclusionShapeInsideInfo.h	2013-03-03 08:33:44 UTC (rev 144561)
@@ -33,40 +33,34 @@
 #if ENABLE(CSS_EXCLUSIONS)
 
 #include ExclusionShapeInfo.h
+#include InlineIterator.h
 #include wtf/PassOwnPtr.h
 #include wtf/Vector.h
 
 namespace WebCore {
 
-class InlineIterator;
 class RenderBlock;
-class RenderObject;
 
-struct LineSegmentIterator {
-RenderObject* root;
-RenderObject* object;
-unsigned offset;
-LineSegmentIterator(RenderObject* root, RenderObject* object, unsigned offset)
-: root(root)
-, object(object)
-, offset(offset)
+struct LineSegmentRange {
+InlineIterator start;
+InlineIterator end;
+LineSegmentRange(InlineIterator start, InlineIterator end)
+: start(start)
+, end(end)
 {
 }
 };
-
-struct LineSegmentRange {
-LineSegmentIterator start;
-LineSegmentIterator end;
-LineSegmentRange(const InlineIterator start, const InlineIterator end);
-};
-
 typedef VectorLineSegmentRange SegmentRangeList;
 
-class ExclusionShapeInsideInfo : public 

[webkit-changes] [144578] trunk/Source/WebCore

2013-03-03 Thread abarth
Title: [144578] trunk/Source/WebCore








Revision 144578
Author aba...@webkit.org
Date 2013-03-03 11:57:39 -0800 (Sun, 03 Mar 2013)


Log Message
Attempt to fix the Qt build after r144498
https://bugs.webkit.org/show_bug.cgi?id=111272

Reviewed by Eric Seidel.

Update the Qt version of the XML parser to call the new API.

* xml/parser/XMLDocumentParserQt.cpp:
(WebCore::XMLDocumentParser::resumeParsing):
(WebCore::XMLDocumentParser::appendFragmentSource):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/xml/parser/XMLDocumentParserQt.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (144577 => 144578)

--- trunk/Source/WebCore/ChangeLog	2013-03-03 19:36:33 UTC (rev 144577)
+++ trunk/Source/WebCore/ChangeLog	2013-03-03 19:57:39 UTC (rev 144578)
@@ -1,3 +1,16 @@
+2013-03-03  Adam Barth  aba...@webkit.org
+
+Attempt to fix the Qt build after r144498
+https://bugs.webkit.org/show_bug.cgi?id=111272
+
+Reviewed by Eric Seidel.
+
+Update the Qt version of the XML parser to call the new API.
+
+* xml/parser/XMLDocumentParserQt.cpp:
+(WebCore::XMLDocumentParser::resumeParsing):
+(WebCore::XMLDocumentParser::appendFragmentSource):
+
 2013-03-03  Dean Jackson  d...@apple.com
 
 Plug-ins that are appropriately large w.r.t page size should autostart


Modified: trunk/Source/WebCore/xml/parser/XMLDocumentParserQt.cpp (144577 => 144578)

--- trunk/Source/WebCore/xml/parser/XMLDocumentParserQt.cpp	2013-03-03 19:36:33 UTC (rev 144577)
+++ trunk/Source/WebCore/xml/parser/XMLDocumentParserQt.cpp	2013-03-03 19:57:39 UTC (rev 144578)
@@ -262,7 +262,7 @@
 // Then, write any pending data
 SegmentedString rest = m_pendingSrc;
 m_pendingSrc.clear();
-append(rest);
+append(rest.toString().impl());
 
 // Finally, if finish() has been called and append() didn't result
 // in any further callbacks being queued, call end()
@@ -273,9 +273,9 @@
 bool XMLDocumentParser::appendFragmentSource(const String source)
 {
 ASSERT(!m_sawFirstElement);
-append(String(qxmlstreamdummyelement));
-append(source);
-append(String(/qxmlstreamdummyelement));
+append(String(qxmlstreamdummyelement).impl());
+append(source.impl());
+append(String(/qxmlstreamdummyelement).impl());
 return !hasError();
 }
 






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [144549] trunk/Source/WebCore

2013-03-02 Thread abarth
Title: [144549] trunk/Source/WebCore








Revision 144549
Author aba...@webkit.org
Date 2013-03-02 17:45:58 -0800 (Sat, 02 Mar 2013)


Log Message
XSSAuditor has a subtle race condition when used with the threaded HTML parser
https://bugs.webkit.org/show_bug.cgi?id=111253

Reviewed by Eric Seidel.

We were refing and derefing a StringImpl for a main-thread
AtomicString. Using QualifiedNames on the background thread is very
fragile and we should figure out a more robust solution.

* html/parser/XSSAuditor.cpp:
(WebCore::findAttributeWithName):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/html/parser/XSSAuditor.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (144548 => 144549)

--- trunk/Source/WebCore/ChangeLog	2013-03-03 00:57:26 UTC (rev 144548)
+++ trunk/Source/WebCore/ChangeLog	2013-03-03 01:45:58 UTC (rev 144549)
@@ -1,3 +1,17 @@
+2013-03-02  Adam Barth  aba...@webkit.org
+
+XSSAuditor has a subtle race condition when used with the threaded HTML parser
+https://bugs.webkit.org/show_bug.cgi?id=111253
+
+Reviewed by Eric Seidel.
+
+We were refing and derefing a StringImpl for a main-thread
+AtomicString. Using QualifiedNames on the background thread is very
+fragile and we should figure out a more robust solution.
+
+* html/parser/XSSAuditor.cpp:
+(WebCore::findAttributeWithName):
+
 2013-03-02  Benjamin Poulain  bpoul...@apple.com
 
 Move computedStyleIncludingVisitedInfo from TestRunner to Internals


Modified: trunk/Source/WebCore/html/parser/XSSAuditor.cpp (144548 => 144549)

--- trunk/Source/WebCore/html/parser/XSSAuditor.cpp	2013-03-03 00:57:26 UTC (rev 144548)
+++ trunk/Source/WebCore/html/parser/XSSAuditor.cpp	2013-03-03 01:45:58 UTC (rev 144549)
@@ -127,11 +127,9 @@
 
 static bool findAttributeWithName(const HTMLToken token, const QualifiedName name, size_t indexOfMatchingAttribute)
 {
-String attrName = name.localName().string();
+// Notice that we're careful not to ref the StringImpl here because we might be on a background thread.
+const String attrName = name.namespaceURI() == XLinkNames::xlinkNamespaceURI ? xlink: + name.localName().string() : name.localName().string();
 
-if (name.namespaceURI() == XLinkNames::xlinkNamespaceURI)
-attrName = xlink: + attrName;
-
 for (size_t i = 0; i  token.attributes().size(); ++i) {
 if (equalIgnoringNullity(token.attributes().at(i).name, attrName)) {
 indexOfMatchingAttribute = i;






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [144268] trunk/LayoutTests

2013-02-28 Thread abarth
Title: [144268] trunk/LayoutTests








Revision 144268
Author aba...@webkit.org
Date 2013-02-28 00:07:26 -0800 (Thu, 28 Feb 2013)


Log Message
Unreviewed.

The version of this file I landed in
http://trac.webkit.org/changeset/144262 appears to have been
ever-so-slightly incorrect.

* platform/chromium/inspector/timeline/timeline-script-tag-1-expected.txt:

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/platform/chromium/inspector/timeline/timeline-script-tag-1-expected.txt




Diff

Modified: trunk/LayoutTests/ChangeLog (144267 => 144268)

--- trunk/LayoutTests/ChangeLog	2013-02-28 07:57:29 UTC (rev 144267)
+++ trunk/LayoutTests/ChangeLog	2013-02-28 08:07:26 UTC (rev 144268)
@@ -1,3 +1,13 @@
+2013-02-28  Adam Barth  aba...@webkit.org
+
+Unreviewed.
+
+The version of this file I landed in
+http://trac.webkit.org/changeset/144262 appears to have been
+ever-so-slightly incorrect.
+
+* platform/chromium/inspector/timeline/timeline-script-tag-1-expected.txt:
+
 2013-02-27  Sheriff Bot  webkit.review@gmail.com
 
 Unreviewed, rolling out r144224.


Modified: trunk/LayoutTests/platform/chromium/inspector/timeline/timeline-script-tag-1-expected.txt (144267 => 144268)

--- trunk/LayoutTests/platform/chromium/inspector/timeline/timeline-script-tag-1-expected.txt	2013-02-28 07:57:29 UTC (rev 144267)
+++ trunk/LayoutTests/platform/chromium/inspector/timeline/timeline-script-tag-1-expected.txt	2013-02-28 08:07:26 UTC (rev 144268)
@@ -32,5 +32,6 @@
  FunctionCall
  MarkLoad
  Layout
+ Layout
  MarkDOMContent
 






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [144269] trunk/LayoutTests

2013-02-28 Thread abarth
Title: [144269] trunk/LayoutTests








Revision 144269
Author aba...@webkit.org
Date 2013-02-28 00:18:52 -0800 (Thu, 28 Feb 2013)


Log Message
Apparently Failure does not include ImageOnlyFailure.

* platform/chromium/TestExpectations:

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/platform/chromium/TestExpectations




Diff

Modified: trunk/LayoutTests/ChangeLog (144268 => 144269)

--- trunk/LayoutTests/ChangeLog	2013-02-28 08:07:26 UTC (rev 144268)
+++ trunk/LayoutTests/ChangeLog	2013-02-28 08:18:52 UTC (rev 144269)
@@ -1,5 +1,11 @@
 2013-02-28  Adam Barth  aba...@webkit.org
 
+Apparently Failure does not include ImageOnlyFailure.
+
+* platform/chromium/TestExpectations:
+
+2013-02-28  Adam Barth  aba...@webkit.org
+
 Unreviewed.
 
 The version of this file I landed in


Modified: trunk/LayoutTests/platform/chromium/TestExpectations (144268 => 144269)

--- trunk/LayoutTests/platform/chromium/TestExpectations	2013-02-28 08:07:26 UTC (rev 144268)
+++ trunk/LayoutTests/platform/chromium/TestExpectations	2013-02-28 08:18:52 UTC (rev 144269)
@@ -4436,14 +4436,14 @@
 webkit.org/b/110851 platform/chromium/virtual/softwarecompositing/repaint/page-scale-repaint.html [ ImageOnlyFailure ]
 
 # Impl-side scrolling is broken for RTL. Causing impl-side scrollbar artifacts.
-crbug.com/175926 [ Linux ] compositing/rtl/rtl-iframe-absolute-overflow-scrolled.html [ Failure ]
-crbug.com/175926 [ Linux ] compositing/rtl/rtl-iframe-absolute-overflow.html [ Failure ]
-crbug.com/175926 [ Linux ] compositing/rtl/rtl-iframe-fixed-overflow-scrolled.html [ Failure ]
-crbug.com/175926 [ Linux ] compositing/rtl/rtl-iframe-fixed-overflow.html [ Failure ]
-crbug.com/175926 [ Linux ] platform/chromium/virtual/softwarecompositing/rtl/rtl-iframe-absolute-overflow-scrolled.html [ Failure ]
-crbug.com/175926 [ Linux ] platform/chromium/virtual/softwarecompositing/rtl/rtl-iframe-absolute-overflow.html [ Failure ]
-crbug.com/175926 [ Linux ] platform/chromium/virtual/softwarecompositing/rtl/rtl-iframe-fixed-overflow-scrolled.html [ Failure ]
-crbug.com/175926 [ Linux ] platform/chromium/virtual/softwarecompositing/rtl/rtl-iframe-fixed-overflow.html [ Failure ]
+crbug.com/175926 [ Linux ] compositing/rtl/rtl-iframe-absolute-overflow-scrolled.html [ Failure ImageOnlyFailure ]
+crbug.com/175926 [ Linux ] compositing/rtl/rtl-iframe-absolute-overflow.html [ Failure ImageOnlyFailure ]
+crbug.com/175926 [ Linux ] compositing/rtl/rtl-iframe-fixed-overflow-scrolled.html [ Failure ImageOnlyFailure ]
+crbug.com/175926 [ Linux ] compositing/rtl/rtl-iframe-fixed-overflow.html [ Failure ImageOnlyFailure ]
+crbug.com/175926 [ Linux ] platform/chromium/virtual/softwarecompositing/rtl/rtl-iframe-absolute-overflow-scrolled.html [ Failure ImageOnlyFailure ]
+crbug.com/175926 [ Linux ] platform/chromium/virtual/softwarecompositing/rtl/rtl-iframe-absolute-overflow.html [ Failure ImageOnlyFailure ]
+crbug.com/175926 [ Linux ] platform/chromium/virtual/softwarecompositing/rtl/rtl-iframe-fixed-overflow-scrolled.html [ Failure ImageOnlyFailure ]
+crbug.com/175926 [ Linux ] platform/chromium/virtual/softwarecompositing/rtl/rtl-iframe-fixed-overflow.html [ Failure ImageOnlyFailure ]
 
 # Need rebaseline
 webkit.org/b/110654 [ Mac Win ] css2.1/20110323/replaced-elements-001.htm [ Failure ]






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [144272] trunk/LayoutTests

2013-02-28 Thread abarth
Title: [144272] trunk/LayoutTests








Revision 144272
Author aba...@webkit.org
Date 2013-02-28 01:12:00 -0800 (Thu, 28 Feb 2013)


Log Message
A couple more tweaks to TestExpectations after the threaded parser.

* platform/chromium/TestExpectations:

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/platform/chromium/TestExpectations




Diff

Modified: trunk/LayoutTests/ChangeLog (144271 => 144272)

--- trunk/LayoutTests/ChangeLog	2013-02-28 08:56:02 UTC (rev 144271)
+++ trunk/LayoutTests/ChangeLog	2013-02-28 09:12:00 UTC (rev 144272)
@@ -1,3 +1,9 @@
+2013-02-28  Adam Barth  aba...@webkit.org
+
+A couple more tweaks to TestExpectations after the threaded parser.
+
+* platform/chromium/TestExpectations:
+
 2013-02-28  Kent Tamura  tk...@chromium.org
 
 Unreviewed, rolling out r144184.


Modified: trunk/LayoutTests/platform/chromium/TestExpectations (144271 => 144272)

--- trunk/LayoutTests/platform/chromium/TestExpectations	2013-02-28 08:56:02 UTC (rev 144271)
+++ trunk/LayoutTests/platform/chromium/TestExpectations	2013-02-28 09:12:00 UTC (rev 144272)
@@ -3028,9 +3028,11 @@
 webkit.org/b/110929 http/tests/multipart/policy-ignore-crash.php [ Missing Failure ]
 webkit.org/b/110929 http/tests/multipart/multipart-html.php [ Missing Failure ]
 webkit.org/b/111023 fast/loader/unload-hyperlink-targeted.html [ Timeout ]
+webkit.org/b/111023 fast/dom/Window/Location/set-location-after-close.html [ Timeout ]
 webkit.org/b/111043 [ Debug ] fast/encoding/script-in-head.html [ Pass Timeout ]
 webkit.org/b/111044 fast/loader/display-image-unset-can-block-image-and-can-reload-in-place.html [ Timeout ]
 webkit.org/b/111044 fast/loader/images-enabled-unset-can-block-image-and-can-reload-in-place.html [ Timeout ]
+webkit.org/b/110907 inspector/timeline/timeline-script-tag-1.html [ Pass Failure ]
 
 webkit.org/b/70988 [ Mac Win Debug ] fast/forms/submit-to-blank-multiple-times.html [ Failure Pass ]
 webkit.org/b/70988 [ Mac Debug ] fast/overflow/003.xml [ Failure Pass ]






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [144331] trunk/LayoutTests

2013-02-28 Thread abarth
Title: [144331] trunk/LayoutTests








Revision 144331
Author aba...@webkit.org
Date 2013-02-28 11:06:02 -0800 (Thu, 28 Feb 2013)


Log Message
This timeout also happens in Release.

* platform/chromium/TestExpectations:

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/platform/chromium/TestExpectations




Diff

Modified: trunk/LayoutTests/ChangeLog (144330 => 144331)

--- trunk/LayoutTests/ChangeLog	2013-02-28 19:04:08 UTC (rev 144330)
+++ trunk/LayoutTests/ChangeLog	2013-02-28 19:06:02 UTC (rev 144331)
@@ -1,3 +1,9 @@
+2013-02-28  Adam Barth  aba...@webkit.org
+
+This timeout also happens in Release.
+
+* platform/chromium/TestExpectations:
+
 2013-02-28  Stephen Chenney  schen...@chromium.org
 
 [Chromium] Marking one more html5 test as timeout


Modified: trunk/LayoutTests/platform/chromium/TestExpectations (144330 => 144331)

--- trunk/LayoutTests/platform/chromium/TestExpectations	2013-02-28 19:04:08 UTC (rev 144330)
+++ trunk/LayoutTests/platform/chromium/TestExpectations	2013-02-28 19:06:02 UTC (rev 144331)
@@ -3017,7 +3017,7 @@
 webkit.org/b/110929 http/tests/multipart/multipart-html.php [ Missing Failure ]
 webkit.org/b/111023 fast/loader/unload-hyperlink-targeted.html [ Timeout ]
 webkit.org/b/111023 fast/dom/Window/Location/set-location-after-close.html [ Timeout ]
-webkit.org/b/111043 [ Debug ] fast/encoding/script-in-head.html [ Pass Timeout ]
+webkit.org/b/111043 fast/encoding/script-in-head.html [ Pass Timeout ]
 webkit.org/b/111044 fast/loader/display-image-unset-can-block-image-and-can-reload-in-place.html [ Timeout ]
 webkit.org/b/111044 fast/loader/images-enabled-unset-can-block-image-and-can-reload-in-place.html [ Timeout ]
 webkit.org/b/110907 inspector/timeline/timeline-script-tag-1.html [ Pass Failure ]






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [144343] trunk/LayoutTests

2013-02-28 Thread abarth
Title: [144343] trunk/LayoutTests








Revision 144343
Author aba...@webkit.org
Date 2013-02-28 11:55:23 -0800 (Thu, 28 Feb 2013)


Log Message
Remove these supressions now that we've reverted http://trac.webkit.org/changeset/144126.

* platform/chromium/TestExpectations:

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/platform/chromium/TestExpectations




Diff

Modified: trunk/LayoutTests/ChangeLog (144342 => 144343)

--- trunk/LayoutTests/ChangeLog	2013-02-28 19:48:03 UTC (rev 144342)
+++ trunk/LayoutTests/ChangeLog	2013-02-28 19:55:23 UTC (rev 144343)
@@ -1,3 +1,9 @@
+2013-02-28  Adam Barth  aba...@webkit.org
+
+Remove these supressions now that we've reverted http://trac.webkit.org/changeset/144126.
+
+* platform/chromium/TestExpectations:
+
 2013-02-28  Sheriff Bot  webkit.review@gmail.com
 
 Unreviewed, rolling out r144126 and r144176.


Modified: trunk/LayoutTests/platform/chromium/TestExpectations (144342 => 144343)

--- trunk/LayoutTests/platform/chromium/TestExpectations	2013-02-28 19:48:03 UTC (rev 144342)
+++ trunk/LayoutTests/platform/chromium/TestExpectations	2013-02-28 19:55:23 UTC (rev 144343)
@@ -3214,10 +3214,7 @@
 
 webkit.org/b/81697 fast/notifications/notifications-check-permission.html [ Failure ]
 webkit.org/b/81697 fast/notifications/notifications-without-permission.html [ Failure ]
-# webkit.org/b/81697 fast/notifications/notifications-request-permission.html [ Failure ]
-# Failing since r144126, please uncomment the line above before removing these.
-webkit.org/b/110956 fast/notifications/notifications-request-permission.html [ Pass Crash Failure ]
-webkit.org/b/110956 fast/notifications/notifications-request-permission-optional.html [ Pass Crash ]
+webkit.org/b/81697 fast/notifications/notifications-request-permission.html [ Failure ]
 
 webkit.org/b/81732 fast/js/integer-division-neg2tothe32-by-neg1.html [ Crash Pass ]
 






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [144407] trunk/Source/WebCore

2013-02-28 Thread abarth
Title: [144407] trunk/Source/WebCore








Revision 144407
Author aba...@webkit.org
Date 2013-02-28 18:12:54 -0800 (Thu, 28 Feb 2013)


Log Message
The threaded HTML parser shouldn't need to invalidate the speculation buffer on every document.write
https://bugs.webkit.org/show_bug.cgi?id=30

Reviewed by Eric Seidel.

Previously, the threaded HTML parser always invalidated its speculation
buffer when it received a document.write.  That means we performed
poorly on web sites that contained document.write calls early in the
page.

This patch teaches the HTMLDocumentParser that we don't need to discard
the speculation buffer in the common case of starting and ending in the
DataState.

* html/parser/BackgroundHTMLParser.cpp:
(WebCore::BackgroundHTMLParser::sendTokensToMainThread):
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::checkForSpeculationFailure):
(WebCore::HTMLDocumentParser::didFailSpeculation):
* html/parser/HTMLDocumentParser.h:
(WebCore):
(ParsedChunk):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/html/parser/BackgroundHTMLParser.cpp
trunk/Source/WebCore/html/parser/HTMLDocumentParser.cpp
trunk/Source/WebCore/html/parser/HTMLDocumentParser.h




Diff

Modified: trunk/Source/WebCore/ChangeLog (144406 => 144407)

--- trunk/Source/WebCore/ChangeLog	2013-03-01 02:11:42 UTC (rev 144406)
+++ trunk/Source/WebCore/ChangeLog	2013-03-01 02:12:54 UTC (rev 144407)
@@ -1,3 +1,28 @@
+2013-02-28  Adam Barth  aba...@webkit.org
+
+The threaded HTML parser shouldn't need to invalidate the speculation buffer on every document.write
+https://bugs.webkit.org/show_bug.cgi?id=30
+
+Reviewed by Eric Seidel.
+
+Previously, the threaded HTML parser always invalidated its speculation
+buffer when it received a document.write.  That means we performed
+poorly on web sites that contained document.write calls early in the
+page.
+
+This patch teaches the HTMLDocumentParser that we don't need to discard
+the speculation buffer in the common case of starting and ending in the
+DataState.
+
+* html/parser/BackgroundHTMLParser.cpp:
+(WebCore::BackgroundHTMLParser::sendTokensToMainThread):
+* html/parser/HTMLDocumentParser.cpp:
+(WebCore::HTMLDocumentParser::checkForSpeculationFailure):
+(WebCore::HTMLDocumentParser::didFailSpeculation):
+* html/parser/HTMLDocumentParser.h:
+(WebCore):
+(ParsedChunk):
+
 2013-02-28  Eberhard Graether  egraet...@google.com
 
 WebInspector: Switch hide element shortcut in ElementsPanel to use a selector


Modified: trunk/Source/WebCore/html/parser/BackgroundHTMLParser.cpp (144406 => 144407)

--- trunk/Source/WebCore/html/parser/BackgroundHTMLParser.cpp	2013-03-01 02:11:42 UTC (rev 144406)
+++ trunk/Source/WebCore/html/parser/BackgroundHTMLParser.cpp	2013-03-01 02:12:54 UTC (rev 144407)
@@ -279,6 +279,7 @@
 OwnPtrHTMLDocumentParser::ParsedChunk chunk = adoptPtr(new HTMLDocumentParser::ParsedChunk);
 chunk-tokens = m_pendingTokens.release();
 chunk-preloads.swap(m_pendingPreloads);
+chunk-tokenizerState = m_tokenizer-state();
 chunk-inputCheckpoint = m_input.createCheckpoint();
 chunk-preloadScannerCheckpoint = m_preloadScanner-createCheckpoint();
 callOnMainThread(bind(HTMLDocumentParser::didReceiveParsedChunkFromBackgroundParser, m_parser, chunk.release()));


Modified: trunk/Source/WebCore/html/parser/HTMLDocumentParser.cpp (144406 => 144407)

--- trunk/Source/WebCore/html/parser/HTMLDocumentParser.cpp	2013-03-01 02:11:42 UTC (rev 144406)
+++ trunk/Source/WebCore/html/parser/HTMLDocumentParser.cpp	2013-03-01 02:12:54 UTC (rev 144407)
@@ -332,16 +332,24 @@
 {
 if (!m_tokenizer)
 return;
-// FIXME: If the tokenizer is in the same state as when we started this function,
-// then we haven't necessarily failed our speculation.
+if (!m_currentChunk)
+return;
+// Currently we're only smart enough to reuse the speculation buffer if the tokenizer
+// both starts and ends in the DataState. That state is simplest because the HTMLToken
+// is always in the Uninitialized state. We should consider whether we can reuse the
+// speculation buffer in other states, but we'd likely need to do something more
+// sophisticated with the HTMLToken.
+if (m_currentChunk-tokenizerState == HTMLTokenizer::DataState  m_tokenizer-state() == HTMLTokenizer::DataState  m_input.current().isEmpty()) {
+ASSERT(m_token-isUninitialized());
+m_tokenizer.clear();
+m_token.clear();
+return;
+}
 didFailSpeculation(m_token.release(), m_tokenizer.release());
 }
 
 void HTMLDocumentParser::didFailSpeculation(PassOwnPtrHTMLToken token, PassOwnPtrHTMLTokenizer tokenizer)
 {
-if (!m_currentChunk)
-return;
-
 m_weakFactory.revokeAll();
 m_speculations.clear();
 


Modified: 

[webkit-changes] [144158] trunk/Source/WebCore

2013-02-27 Thread abarth
Title: [144158] trunk/Source/WebCore








Revision 144158
Author aba...@webkit.org
Date 2013-02-27 01:21:56 -0800 (Wed, 27 Feb 2013)


Log Message
HTMLDocumentParser::didReceiveParsedChunkFromBackgroundParser can trigger ASSERT(m_speculations.isEmpty())
https://bugs.webkit.org/show_bug.cgi?id=110949

Reviewed by Eric Seidel.

We can hit this ASSERT if didReceiveParsedChunkFromBackgroundParser is
called from the background thread while we're processing
m_speculations (i.e., if processing m_speculations is taking a while
and we've yielded to the event loop).

It's hard to write a deterministic test for this patch, but it's hit
quite often with existing LayoutTests.

* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::didReceiveParsedChunkFromBackgroundParser):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/html/parser/HTMLDocumentParser.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (144157 => 144158)

--- trunk/Source/WebCore/ChangeLog	2013-02-27 09:09:20 UTC (rev 144157)
+++ trunk/Source/WebCore/ChangeLog	2013-02-27 09:21:56 UTC (rev 144158)
@@ -1,3 +1,21 @@
+2013-02-27  Adam Barth  aba...@webkit.org
+
+HTMLDocumentParser::didReceiveParsedChunkFromBackgroundParser can trigger ASSERT(m_speculations.isEmpty())
+https://bugs.webkit.org/show_bug.cgi?id=110949
+
+Reviewed by Eric Seidel.
+
+We can hit this ASSERT if didReceiveParsedChunkFromBackgroundParser is
+called from the background thread while we're processing
+m_speculations (i.e., if processing m_speculations is taking a while
+and we've yielded to the event loop).
+
+It's hard to write a deterministic test for this patch, but it's hit
+quite often with existing LayoutTests.
+
+* html/parser/HTMLDocumentParser.cpp:
+(WebCore::HTMLDocumentParser::didReceiveParsedChunkFromBackgroundParser):
+
 2013-02-27  Kentaro Hara  hara...@chromium.org
 
 [V8] Generate a wrapper function for named constructor callbacks


Modified: trunk/Source/WebCore/html/parser/HTMLDocumentParser.cpp (144157 => 144158)

--- trunk/Source/WebCore/html/parser/HTMLDocumentParser.cpp	2013-02-27 09:09:20 UTC (rev 144157)
+++ trunk/Source/WebCore/html/parser/HTMLDocumentParser.cpp	2013-02-27 09:21:56 UTC (rev 144158)
@@ -308,7 +308,7 @@
 
 void HTMLDocumentParser::didReceiveParsedChunkFromBackgroundParser(PassOwnPtrParsedChunk chunk)
 {
-if (isWaitingForScripts()) {
+if (isWaitingForScripts() || !m_speculations.isEmpty()) {
 m_preloader-takeAndPreload(chunk-preloads);
 m_speculations.append(chunk);
 return;






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [144232] trunk/Source/WebCore

2013-02-27 Thread abarth
Title: [144232] trunk/Source/WebCore








Revision 144232
Author aba...@webkit.org
Date 2013-02-27 13:23:05 -0800 (Wed, 27 Feb 2013)


Log Message
Threaded HTML parser hits ASSERTION FAILED: this == frameLoader()-activeDocumentLoader()
https://bugs.webkit.org/show_bug.cgi?id=110937

Reviewed by Darin Adler.

This patch restores the ASSERT behind an ifdef so that we can continue
to get converage from the ASSERT while we investigate why it is
triggering in the threaded parser.

* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::checkLoadComplete):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/loader/DocumentLoader.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (144231 => 144232)

--- trunk/Source/WebCore/ChangeLog	2013-02-27 21:20:38 UTC (rev 144231)
+++ trunk/Source/WebCore/ChangeLog	2013-02-27 21:23:05 UTC (rev 144232)
@@ -1,3 +1,17 @@
+2013-02-27  Adam Barth  aba...@webkit.org
+
+Threaded HTML parser hits ASSERTION FAILED: this == frameLoader()-activeDocumentLoader()
+https://bugs.webkit.org/show_bug.cgi?id=110937
+
+Reviewed by Darin Adler.
+
+This patch restores the ASSERT behind an ifdef so that we can continue
+to get converage from the ASSERT while we investigate why it is
+triggering in the threaded parser.
+
+* loader/DocumentLoader.cpp:
+(WebCore::DocumentLoader::checkLoadComplete):
+
 2013-02-27  Lianghui Chen  liac...@rim.com
 
 [BlackBerry] User credentials is not correctly handled


Modified: trunk/Source/WebCore/loader/DocumentLoader.cpp (144231 => 144232)

--- trunk/Source/WebCore/loader/DocumentLoader.cpp	2013-02-27 21:20:38 UTC (rev 144231)
+++ trunk/Source/WebCore/loader/DocumentLoader.cpp	2013-02-27 21:23:05 UTC (rev 144232)
@@ -431,6 +431,11 @@
 {
 if (!m_frame || isLoading())
 return;
+#if !ENABLE(THREADED_HTML_PARSER)
+// This ASSERT triggers with the threaded HTML parser.
+// See https://bugs.webkit.org/show_bug.cgi?id=110937
+ASSERT(this == frameLoader()-activeDocumentLoader());
+#endif
 m_frame-document()-domWindow()-finishedLoading();
 }
 






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [144240] trunk/Source/WebCore

2013-02-27 Thread abarth
Title: [144240] trunk/Source/WebCore








Revision 144240
Author aba...@webkit.org
Date 2013-02-27 14:39:19 -0800 (Wed, 27 Feb 2013)


Log Message
Threaded HTML Parser fails fast/dom/HTMLAnchorElement/anchor-no-multiple-windows.html in debug
https://bugs.webkit.org/show_bug.cgi?id=110951

Reviewed by Eric Seidel.

We were triggering this ASSERT because we didn't understand that a
given frame might have multiple DocumentLoaders in various states. That
caused us to think that a DocumentLoader in the provisional state was
actually loading.

* dom/Document.cpp:
(WebCore::Document::decrementActiveParserCount):
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::isLoading):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/loader/DocumentLoader.cpp
trunk/Source/WebCore/loader/DocumentLoader.h




Diff

Modified: trunk/Source/WebCore/ChangeLog (144239 => 144240)

--- trunk/Source/WebCore/ChangeLog	2013-02-27 22:24:23 UTC (rev 144239)
+++ trunk/Source/WebCore/ChangeLog	2013-02-27 22:39:19 UTC (rev 144240)
@@ -1,3 +1,20 @@
+2013-02-27  Adam Barth  aba...@webkit.org
+
+Threaded HTML Parser fails fast/dom/HTMLAnchorElement/anchor-no-multiple-windows.html in debug
+https://bugs.webkit.org/show_bug.cgi?id=110951
+
+Reviewed by Eric Seidel.
+
+We were triggering this ASSERT because we didn't understand that a
+given frame might have multiple DocumentLoaders in various states. That
+caused us to think that a DocumentLoader in the provisional state was
+actually loading.
+
+* dom/Document.cpp:
+(WebCore::Document::decrementActiveParserCount):
+* loader/DocumentLoader.cpp:
+(WebCore::DocumentLoader::isLoading):
+
 2013-02-27  Chris Fleizach  cfleiz...@apple.com
 
 AX: Mac platform should support ability to scroll an element into visible


Modified: trunk/Source/WebCore/loader/DocumentLoader.cpp (144239 => 144240)

--- trunk/Source/WebCore/loader/DocumentLoader.cpp	2013-02-27 22:24:23 UTC (rev 144239)
+++ trunk/Source/WebCore/loader/DocumentLoader.cpp	2013-02-27 22:39:19 UTC (rev 144240)
@@ -133,6 +133,13 @@
 return 0;
 }
 
+Document* DocumentLoader::document() const
+{
+if (m_frame  m_frame-loader()-documentLoader() == this)
+return m_frame-document();
+return 0;
+}
+
 const ResourceRequest DocumentLoader::originalRequest() const
 {
 return m_originalRequest;
@@ -284,7 +291,7 @@
 // http/tests/security/feed-urls-from-remote.html to timeout on Mac WK1
 // see http://webkit.org/b/110554 and http://webkit.org/b/110401
 #if ENABLE(THREADED_HTML_PARSER)
-if (m_frame  m_frame-document()  m_frame-document()-hasActiveParser())
+if (document()  document()-hasActiveParser())
 return true;
 #endif
 return isLoadingMainResource() || !m_subresourceLoaders.isEmpty() || !m_plugInStreamLoaders.isEmpty();


Modified: trunk/Source/WebCore/loader/DocumentLoader.h (144239 => 144240)

--- trunk/Source/WebCore/loader/DocumentLoader.h	2013-02-27 22:24:23 UTC (rev 144239)
+++ trunk/Source/WebCore/loader/DocumentLoader.h	2013-02-27 22:39:19 UTC (rev 144240)
@@ -85,6 +85,7 @@
 PassRefPtrResourceBuffer mainResourceData() const;
 
 DocumentWriter* writer() const { return m_writer; }
+Document* document() const;
 
 const ResourceRequest originalRequest() const;
 const ResourceRequest originalRequestCopy() const;






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [144250] trunk/Source/WebCore

2013-02-27 Thread abarth
Title: [144250] trunk/Source/WebCore








Revision 144250
Author aba...@webkit.org
Date 2013-02-27 16:17:27 -0800 (Wed, 27 Feb 2013)


Log Message
Use FeatureObserver to see how often web sites use multipart main documents
https://bugs.webkit.org/show_bug.cgi?id=111015

Reviewed by Nate Chapin.

Multipart main documents add sigificant complexity to the loader.  It
would be interesting to know how often this complexity is used.

* loader/MainResourceLoader.cpp:
(WebCore::MainResourceLoader::responseReceived):
* page/FeatureObserver.h:

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/loader/MainResourceLoader.cpp
trunk/Source/WebCore/page/FeatureObserver.h




Diff

Modified: trunk/Source/WebCore/ChangeLog (144249 => 144250)

--- trunk/Source/WebCore/ChangeLog	2013-02-27 23:50:41 UTC (rev 144249)
+++ trunk/Source/WebCore/ChangeLog	2013-02-28 00:17:27 UTC (rev 144250)
@@ -1,3 +1,17 @@
+2013-02-27  Adam Barth  aba...@webkit.org
+
+Use FeatureObserver to see how often web sites use multipart main documents
+https://bugs.webkit.org/show_bug.cgi?id=111015
+
+Reviewed by Nate Chapin.
+
+Multipart main documents add sigificant complexity to the loader.  It
+would be interesting to know how often this complexity is used.
+
+* loader/MainResourceLoader.cpp:
+(WebCore::MainResourceLoader::responseReceived):
+* page/FeatureObserver.h:
+
 2013-02-27  James Simonsen  simon...@chromium.org
 
 [chromium] Lower priority of preloaded images


Modified: trunk/Source/WebCore/loader/MainResourceLoader.cpp (144249 => 144250)

--- trunk/Source/WebCore/loader/MainResourceLoader.cpp	2013-02-27 23:50:41 UTC (rev 144249)
+++ trunk/Source/WebCore/loader/MainResourceLoader.cpp	2013-02-28 00:17:27 UTC (rev 144250)
@@ -39,6 +39,7 @@
 #include Document.h
 #include DocumentLoadTiming.h
 #include DocumentLoader.h
+#include FeatureObserver.h
 #include FormState.h
 #include Frame.h
 #include FrameLoader.h
@@ -427,8 +428,10 @@
 m_resource-clear();
 }
 
-if (r.isMultipart())
+if (r.isMultipart()) {
+FeatureObserver::observe(m_documentLoader-frame()-document(), FeatureObserver::MultipartMainResource);
 m_loadingMultipartContent = true;
+}
 
 // The additional processing can do anything including possibly removing the last
 // reference to this object; one example of this is 3266216.


Modified: trunk/Source/WebCore/page/FeatureObserver.h (144249 => 144250)

--- trunk/Source/WebCore/page/FeatureObserver.h	2013-02-27 23:50:41 UTC (rev 144249)
+++ trunk/Source/WebCore/page/FeatureObserver.h	2013-02-28 00:17:27 UTC (rev 144250)
@@ -45,7 +45,7 @@
 enum Feature {
 PageDestruction,
 LegacyNotifications,
-UnusedSlot01, // Prior to 10/2012, we used this slot for LegacyBlobBuilder.
+MultipartMainResource,
 PrefixedIndexedDB,
 WorkerStart,
 SharedWorkerStart,






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [144264] trunk/LayoutTests

2013-02-27 Thread abarth
Title: [144264] trunk/LayoutTests








Revision 144264
Author aba...@webkit.org
Date 2013-02-27 23:44:46 -0800 (Wed, 27 Feb 2013)


Log Message
Unreviewed.

Update some test expectations based on the threaded parser behavior.
These look like test integration issues rather than actual bugs in the
parser. We will investigate them offline.

* platform/chromium/TestExpectations:

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/platform/chromium/TestExpectations




Diff

Modified: trunk/LayoutTests/ChangeLog (144263 => 144264)

--- trunk/LayoutTests/ChangeLog	2013-02-28 06:44:41 UTC (rev 144263)
+++ trunk/LayoutTests/ChangeLog	2013-02-28 07:44:46 UTC (rev 144264)
@@ -1,3 +1,13 @@
+2013-02-27  Adam Barth  aba...@webkit.org
+
+Unreviewed.
+
+Update some test expectations based on the threaded parser behavior.
+These look like test integration issues rather than actual bugs in the
+parser. We will investigate them offline.
+
+* platform/chromium/TestExpectations:
+
 2013-02-27  Kunihiko Sakamoto  ksakam...@chromium.org
 
 INPUT_MULTIPLE_FIELDS_UI: Step-up/-down of hour field should respect min/max attributes


Modified: trunk/LayoutTests/platform/chromium/TestExpectations (144263 => 144264)

--- trunk/LayoutTests/platform/chromium/TestExpectations	2013-02-28 06:44:41 UTC (rev 144263)
+++ trunk/LayoutTests/platform/chromium/TestExpectations	2013-02-28 07:44:46 UTC (rev 144264)
@@ -3026,6 +3026,9 @@
 webkit.org/b/110929 http/tests/multipart/policy-ignore-crash.php [ Missing Failure ]
 webkit.org/b/110929 http/tests/multipart/multipart-html.php [ Missing Failure ]
 webkit.org/b/111023 fast/loader/unload-hyperlink-targeted.html [ Timeout ]
+webkit.org/b/111043 [ Debug ] fast/encoding/script-in-head.html [ Pass Timeout ]
+webkit.org/b/111044 fast/loader/display-image-unset-can-block-image-and-can-reload-in-place.html [ Timeout ]
+webkit.org/b/111044 fast/loader/images-enabled-unset-can-block-image-and-can-reload-in-place.html [ Timeout ]
 
 webkit.org/b/70988 [ Mac Win Debug ] fast/forms/submit-to-blank-multiple-times.html [ Failure Pass ]
 webkit.org/b/70988 [ Mac Debug ] fast/overflow/003.xml [ Failure Pass ]
@@ -4433,14 +4436,14 @@
 webkit.org/b/110851 platform/chromium/virtual/softwarecompositing/repaint/page-scale-repaint.html [ ImageOnlyFailure ]
 
 # Impl-side scrolling is broken for RTL. Causing impl-side scrollbar artifacts.
-crbug.com/175926 [ Linux ] compositing/rtl/rtl-iframe-absolute-overflow-scrolled.html [ ImageOnlyFailure ]
-crbug.com/175926 [ Linux ] compositing/rtl/rtl-iframe-absolute-overflow.html [ ImageOnlyFailure ]
-crbug.com/175926 [ Linux ] compositing/rtl/rtl-iframe-fixed-overflow-scrolled.html [ ImageOnlyFailure ]
-crbug.com/175926 [ Linux ] compositing/rtl/rtl-iframe-fixed-overflow.html [ ImageOnlyFailure ]
-crbug.com/175926 [ Linux ] platform/chromium/virtual/softwarecompositing/rtl/rtl-iframe-absolute-overflow-scrolled.html [ ImageOnlyFailure ]
-crbug.com/175926 [ Linux ] platform/chromium/virtual/softwarecompositing/rtl/rtl-iframe-absolute-overflow.html [ ImageOnlyFailure ]
-crbug.com/175926 [ Linux ] platform/chromium/virtual/softwarecompositing/rtl/rtl-iframe-fixed-overflow-scrolled.html [ ImageOnlyFailure ]
-crbug.com/175926 [ Linux ] platform/chromium/virtual/softwarecompositing/rtl/rtl-iframe-fixed-overflow.html [ ImageOnlyFailure ]
+crbug.com/175926 [ Linux ] compositing/rtl/rtl-iframe-absolute-overflow-scrolled.html [ Failure ]
+crbug.com/175926 [ Linux ] compositing/rtl/rtl-iframe-absolute-overflow.html [ Failure ]
+crbug.com/175926 [ Linux ] compositing/rtl/rtl-iframe-fixed-overflow-scrolled.html [ Failure ]
+crbug.com/175926 [ Linux ] compositing/rtl/rtl-iframe-fixed-overflow.html [ Failure ]
+crbug.com/175926 [ Linux ] platform/chromium/virtual/softwarecompositing/rtl/rtl-iframe-absolute-overflow-scrolled.html [ Failure ]
+crbug.com/175926 [ Linux ] platform/chromium/virtual/softwarecompositing/rtl/rtl-iframe-absolute-overflow.html [ Failure ]
+crbug.com/175926 [ Linux ] platform/chromium/virtual/softwarecompositing/rtl/rtl-iframe-fixed-overflow-scrolled.html [ Failure ]
+crbug.com/175926 [ Linux ] platform/chromium/virtual/softwarecompositing/rtl/rtl-iframe-fixed-overflow.html [ Failure ]
 
 # Need rebaseline
 webkit.org/b/110654 [ Mac Win ] css2.1/20110323/replaced-elements-001.htm [ Failure ]






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [144136] trunk

2013-02-26 Thread abarth
Title: [144136] trunk








Revision 144136
Author aba...@webkit.org
Date 2013-02-26 19:00:08 -0800 (Tue, 26 Feb 2013)


Log Message
[Chromium] Enable threaded HTML parser by default in DumpRenderTree
https://bugs.webkit.org/show_bug.cgi?id=110907

Reviewed by Eric Seidel.

Tools:

This patch changes --enable-threaded-html-parser into
--disable-threaded-html-parser and thereby enables the threaded HTML
parser by default for the Chromium port.

* DumpRenderTree/chromium/DumpRenderTree.cpp:
* DumpRenderTree/chromium/TestRunner/src/WebPreferences.cpp:
(WebTestRunner::WebPreferences::reset):
* DumpRenderTree/chromium/TestShell.cpp:
(TestShell::TestShell):

LayoutTests:

Update test results to show subtle differences in FrameLoaderClient callbacks.

* platform/chromium-mac/security/block-test-no-port-expected.txt: Removed.
* platform/chromium-win/fast/images/support-broken-image-delegate-expected.txt:
* platform/chromium-win/security/block-test-no-port-expected.txt: Removed.
* platform/chromium/fast/images/support-broken-image-delegate-expected.txt:
* platform/chromium/fast/loader/main-document-url-for-non-http-loads-expected.txt: Added.
* platform/chromium/http/tests/loading/307-after-303-after-post-expected.txt: Added.
* platform/chromium/http/tests/misc/favicon-loads-with-images-disabled-expected.txt: Added.
* platform/chromium/http/tests/misc/will-send-request-returns-null-on-redirect-expected.txt:
* platform/chromium/http/tests/misc/window-dot-stop-expected.txt: Added.
* platform/chromium/http/tests/security/XFrameOptions/x-frame-options-deny-expected.txt: Added.
* platform/chromium/http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-expected.txt: Added.
* platform/chromium/http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-in-body-expected.txt: Added.
* platform/chromium/http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-parent-same-origin-allow-expected.txt: Added.
* platform/chromium/http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-parent-same-origin-deny-expected.txt: Added.
* platform/chromium/http/tests/security/XFrameOptions/x-frame-options-invalid-expected.txt: Added.
* platform/chromium/http/tests/security/XFrameOptions/x-frame-options-parent-same-origin-allow-expected.txt: Added.
* platform/chromium/http/tests/security/XFrameOptions/x-frame-options-parent-same-origin-deny-expected.txt: Added.
* platform/chromium/inspector/debugger/pause-in-inline-script-expected.txt: Added.
* platform/chromium/inspector/timeline/timeline-script-tag-1-expected.txt: Added.
* platform/chromium/security/block-test-no-port-expected.txt:

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/platform/chromium/TestExpectations
trunk/LayoutTests/platform/chromium/fast/images/support-broken-image-delegate-expected.txt
trunk/LayoutTests/platform/chromium/http/tests/misc/will-send-request-returns-null-on-redirect-expected.txt
trunk/LayoutTests/platform/chromium/security/block-test-no-port-expected.txt
trunk/LayoutTests/platform/chromium-win/fast/images/support-broken-image-delegate-expected.txt
trunk/Tools/ChangeLog
trunk/Tools/DumpRenderTree/chromium/DumpRenderTree.cpp
trunk/Tools/DumpRenderTree/chromium/TestRunner/src/WebPreferences.cpp
trunk/Tools/DumpRenderTree/chromium/TestShell.cpp


Added Paths

trunk/LayoutTests/platform/chromium/fast/loader/main-document-url-for-non-http-loads-expected.txt
trunk/LayoutTests/platform/chromium/http/tests/loading/307-after-303-after-post-expected.txt
trunk/LayoutTests/platform/chromium/http/tests/misc/favicon-loads-with-images-disabled-expected.txt
trunk/LayoutTests/platform/chromium/http/tests/misc/window-dot-stop-expected.txt
trunk/LayoutTests/platform/chromium/http/tests/security/XFrameOptions/
trunk/LayoutTests/platform/chromium/http/tests/security/XFrameOptions/x-frame-options-allowall-expected.txt
trunk/LayoutTests/platform/chromium/http/tests/security/XFrameOptions/x-frame-options-deny-expected.txt
trunk/LayoutTests/platform/chromium/http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-expected.txt
trunk/LayoutTests/platform/chromium/http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-in-body-expected.txt
trunk/LayoutTests/platform/chromium/http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-parent-same-origin-allow-expected.txt
trunk/LayoutTests/platform/chromium/http/tests/security/XFrameOptions/x-frame-options-deny-meta-tag-parent-same-origin-deny-expected.txt
trunk/LayoutTests/platform/chromium/http/tests/security/XFrameOptions/x-frame-options-invalid-expected.txt
trunk/LayoutTests/platform/chromium/http/tests/security/XFrameOptions/x-frame-options-parent-same-origin-allow-expected.txt
trunk/LayoutTests/platform/chromium/http/tests/security/XFrameOptions/x-frame-options-parent-same-origin-deny-expected.txt
trunk/LayoutTests/platform/chromium/inspector/debugger/pause-in-inline-script-expected.txt

[webkit-changes] [144139] trunk/Source/WebCore

2013-02-26 Thread abarth
Title: [144139] trunk/Source/WebCore








Revision 144139
Author aba...@webkit.org
Date 2013-02-26 20:32:49 -0800 (Tue, 26 Feb 2013)


Log Message
Silence this ASSERT. It is triggered by the threaded HTML parser.
Investigation to follow in https://bugs.webkit.org/show_bug.cgi?id=110937

* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::checkLoadComplete):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/loader/DocumentLoader.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (144138 => 144139)

--- trunk/Source/WebCore/ChangeLog	2013-02-27 04:26:28 UTC (rev 144138)
+++ trunk/Source/WebCore/ChangeLog	2013-02-27 04:32:49 UTC (rev 144139)
@@ -1,3 +1,11 @@
+2013-02-26  Adam Barth  aba...@webkit.org
+
+Silence this ASSERT. It is triggered by the threaded HTML parser.
+Investigation to follow in https://bugs.webkit.org/show_bug.cgi?id=110937
+
+* loader/DocumentLoader.cpp:
+(WebCore::DocumentLoader::checkLoadComplete):
+
 2013-02-26  Mark Lam  mark@apple.com
 
 SQLTransactionBackend::doCleanup() should not nullify its current


Modified: trunk/Source/WebCore/loader/DocumentLoader.cpp (144138 => 144139)

--- trunk/Source/WebCore/loader/DocumentLoader.cpp	2013-02-27 04:26:28 UTC (rev 144138)
+++ trunk/Source/WebCore/loader/DocumentLoader.cpp	2013-02-27 04:32:49 UTC (rev 144139)
@@ -431,7 +431,6 @@
 {
 if (!m_frame || isLoading())
 return;
-ASSERT(this == frameLoader()-activeDocumentLoader());
 m_frame-document()-domWindow()-finishedLoading();
 }
 






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [144143] trunk/LayoutTests

2013-02-26 Thread abarth
Title: [144143] trunk/LayoutTests








Revision 144143
Author aba...@webkit.org
Date 2013-02-26 21:51:56 -0800 (Tue, 26 Feb 2013)


Log Message
Unreviewed.

Update expectations to show new FrameLoaderClient callbacks. I missed
this test earlier because it doesn't run on Linux.

* platform/chromium-win/http/tests/loading/redirect-methods-expected.txt:

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/platform/chromium-win/http/tests/loading/redirect-methods-expected.txt




Diff

Modified: trunk/LayoutTests/ChangeLog (144142 => 144143)

--- trunk/LayoutTests/ChangeLog	2013-02-27 05:11:04 UTC (rev 144142)
+++ trunk/LayoutTests/ChangeLog	2013-02-27 05:51:56 UTC (rev 144143)
@@ -1,3 +1,12 @@
+2013-02-26  Adam Barth  aba...@webkit.org
+
+Unreviewed.
+
+Update expectations to show new FrameLoaderClient callbacks. I missed
+this test earlier because it doesn't run on Linux.
+
+* platform/chromium-win/http/tests/loading/redirect-methods-expected.txt:
+
 2013-02-26  Filip Pizlo  fpi...@apple.com
 
 DFG OSR exit doesn't know which virtual register to use for the last result register for post_inc and post_dec


Modified: trunk/LayoutTests/platform/chromium-win/http/tests/loading/redirect-methods-expected.txt (144142 => 144143)

--- trunk/LayoutTests/platform/chromium-win/http/tests/loading/redirect-methods-expected.txt	2013-02-27 05:11:04 UTC (rev 144142)
+++ trunk/LayoutTests/platform/chromium-win/http/tests/loading/redirect-methods-expected.txt	2013-02-27 05:51:56 UTC (rev 144143)
@@ -3,7 +3,6 @@
 main frame - didFinishDocumentLoadForFrame
 main frame - didHandleOnloadEventsForFrame
 main frame - didFinishLoadForFrame
-unknown - didFinishLoading
 frame 0 - didStartProvisionalLoadForFrame
 frame 0 - didCommitLoadForFrame
 frame 0 - didFinishDocumentLoadForFrame
@@ -15,11 +14,11 @@
 http://127.0.0.1:8000/loading/resources/redirect-methods-form.html - didReceiveResponse NSURLResponse http://127.0.0.1:8000/loading/resources/redirect-methods-form.html, http status code 200
 frame 0 - didCancelClientRedirectForFrame
 frame 0 - didCommitLoadForFrame
+http://127.0.0.1:8000/loading/resources/redirect-methods-form.html - didFinishLoading
 frame 0 - didFinishDocumentLoadForFrame
 frame 0 - willPerformClientRedirectToURL: http://127.0.0.1:8000/loading/resources/redirect-methods-result.php 
 frame 0 - didHandleOnloadEventsForFrame
 frame 0 - didFinishLoadForFrame
-http://127.0.0.1:8000/loading/resources/redirect-methods-form.html - didFinishLoading
 frame 0 - didStartProvisionalLoadForFrame
 http://127.0.0.1:8000/loading/resources/redirect-methods-result.php - willSendRequest NSURLRequest URL http://127.0.0.1:8000/loading/resources/redirect-methods-result.php, main document URL http://127.0.0.1:8000/loading/redirect-methods.html, http method POST redirectResponse (null)
 http://127.0.0.1:8000/loading/resources/redirect-methods-result.php - willSendRequest NSURLRequest URL http://127.0.0.1:8000/loading/resources/redirect-methods-result.php?redirected=true, main document URL http://127.0.0.1:8000/loading/redirect-methods.html, http method GET redirectResponse NSURLResponse http://127.0.0.1:8000/loading/resources/redirect-methods-result.php, http status code 301
@@ -27,6 +26,7 @@
 http://127.0.0.1:8000/loading/resources/redirect-methods-result.php - didReceiveResponse NSURLResponse http://127.0.0.1:8000/loading/resources/redirect-methods-result.php?redirected=true, http status code 200
 frame 0 - didCancelClientRedirectForFrame
 frame 0 - didCommitLoadForFrame
+http://127.0.0.1:8000/loading/resources/redirect-methods-result.php - didFinishLoading
 frame 0 - didFinishDocumentLoadForFrame
 frame 1 - didStartProvisionalLoadForFrame
 frame 1 - didCommitLoadForFrame
@@ -36,17 +36,16 @@
 frame 1 - willPerformClientRedirectToURL: http://127.0.0.1:8000/loading/resources/redirect-methods-form.html 
 frame 0 - didHandleOnloadEventsForFrame
 frame 0 - didFinishLoadForFrame
-http://127.0.0.1:8000/loading/resources/redirect-methods-result.php - didFinishLoading
 frame 1 - didStartProvisionalLoadForFrame
 http://127.0.0.1:8000/loading/resources/redirect-methods-form.html - willSendRequest NSURLRequest URL http://127.0.0.1:8000/loading/resources/redirect-methods-form.html, main document URL http://127.0.0.1:8000/loading/redirect-methods.html, http method GET redirectResponse (null)
 http://127.0.0.1:8000/loading/resources/redirect-methods-form.html - didReceiveResponse NSURLResponse http://127.0.0.1:8000/loading/resources/redirect-methods-form.html, http status code 200
 frame 1 - didCancelClientRedirectForFrame
 frame 1 - didCommitLoadForFrame
+http://127.0.0.1:8000/loading/resources/redirect-methods-form.html - didFinishLoading
 frame 1 - didFinishDocumentLoadForFrame
 frame 1 - willPerformClientRedirectToURL: http://127.0.0.1:8000/loading/resources/redirect-methods-result.php 
 frame 1 - didHandleOnloadEventsForFrame
 frame 1 - didFinishLoadForFrame

[webkit-changes] [144147] trunk/LayoutTests

2013-02-26 Thread abarth
Title: [144147] trunk/LayoutTests








Revision 144147
Author aba...@webkit.org
Date 2013-02-26 22:18:58 -0800 (Tue, 26 Feb 2013)


Log Message
Unreviewed.

Note another multipart failure to work through.

* platform/chromium/TestExpectations:

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/platform/chromium/TestExpectations




Diff

Modified: trunk/LayoutTests/ChangeLog (144146 => 144147)

--- trunk/LayoutTests/ChangeLog	2013-02-27 06:16:37 UTC (rev 144146)
+++ trunk/LayoutTests/ChangeLog	2013-02-27 06:18:58 UTC (rev 144147)
@@ -1,3 +1,11 @@
+2013-02-26  Adam Barth  aba...@webkit.org
+
+Unreviewed.
+
+Note another multipart failure to work through.
+
+* platform/chromium/TestExpectations:
+
 2013-02-26  Uday Kiran  udayki...@motorola.com
 
 getPropertyValue for -webkit-column-rule returns null, should compute the shorthand value


Modified: trunk/LayoutTests/platform/chromium/TestExpectations (144146 => 144147)

--- trunk/LayoutTests/platform/chromium/TestExpectations	2013-02-27 06:16:37 UTC (rev 144146)
+++ trunk/LayoutTests/platform/chromium/TestExpectations	2013-02-27 06:18:58 UTC (rev 144147)
@@ -3000,6 +3000,7 @@
 webkit.org/b/78620 [ Android Linux Debug ] fast/forms/formaction-attribute.html [ Failure Pass Slow ]
 
 webkit.org/b/110929 http/tests/multipart/policy-ignore-crash.php [ Missing Failure ]
+webkit.org/b/110929 http/tests/multipart/multipart-html.php [ Missing Failure ]
 
 webkit.org/b/70988 [ Mac Win Debug ] fast/forms/submit-to-blank-multiple-times.html [ Failure Pass ]
 webkit.org/b/70988 [ Mac Debug ] fast/overflow/003.xml [ Failure Pass ]
@@ -4448,4 +4449,4 @@
 # We can rebaseline when we drop Lucid support.
 webkit.org/b/110540 [ Linux ] fast/text/international/thai-line-breaks.html [ ImageOnlyFailure Pass ]
 
-webkit.org/b/108196 fast/notifications/notifications-request-permission.html [ Pass Crash Failure ]
\ No newline at end of file
+webkit.org/b/108196 fast/notifications/notifications-request-permission.html [ Pass Crash Failure ]






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [143960] trunk/Source/WebCore

2013-02-25 Thread abarth
Title: [143960] trunk/Source/WebCore








Revision 143960
Author aba...@webkit.org
Date 2013-02-25 12:58:27 -0800 (Mon, 25 Feb 2013)


Log Message
6% regression in intl1 page cycler on chromium-mac
https://bugs.webkit.org/show_bug.cgi?id=110784

Reviewed by Eric Seidel.

This patch attempts to heal the regression by reverting all the changes
to the preload scanner up to (and including)
http://trac.webkit.org/changeset/143020/.

* html/parser/BackgroundHTMLParser.cpp:
(WebCore::BackgroundHTMLParser::resumeFrom):
(WebCore::BackgroundHTMLParser::pumpTokenizer):
(WebCore::BackgroundHTMLParser::sendTokensToMainThread):
* html/parser/CSSPreloadScanner.cpp:
(WebCore::CSSPreloadScanner::scan):
(WebCore::CSSPreloadScanner::emitRule):
* html/parser/CSSPreloadScanner.h:
(CSSPreloadScanner):
* html/parser/HTMLPreloadScanner.cpp:
(WebCore::isStartTag):
(WebCore):
(WebCore::isStartOrEndTag):
(WebCore::TokenPreloadScanner::identifierFor):
(WebCore::TokenPreloadScanner::inititatorFor):
(WebCore::TokenPreloadScanner::StartTagScanner::processAttributes):
(WebCore::TokenPreloadScanner::StartTagScanner::createPreloadRequest):
(WebCore::TokenPreloadScanner::processPossibleTemplateTag):
(WebCore::TokenPreloadScanner::processPossibleStyleTag):
(WebCore::TokenPreloadScanner::processPossibleBaseTag):
(WebCore::TokenPreloadScanner::scan):
(WebCore::HTMLPreloadScanner::scan):
* html/parser/HTMLPreloadScanner.h:
(TokenPreloadScanner):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/html/parser/BackgroundHTMLParser.cpp
trunk/Source/WebCore/html/parser/CSSPreloadScanner.cpp
trunk/Source/WebCore/html/parser/CSSPreloadScanner.h
trunk/Source/WebCore/html/parser/HTMLPreloadScanner.cpp
trunk/Source/WebCore/html/parser/HTMLPreloadScanner.h




Diff

Modified: trunk/Source/WebCore/ChangeLog (143959 => 143960)

--- trunk/Source/WebCore/ChangeLog	2013-02-25 20:54:25 UTC (rev 143959)
+++ trunk/Source/WebCore/ChangeLog	2013-02-25 20:58:27 UTC (rev 143960)
@@ -1,3 +1,39 @@
+2013-02-25  Adam Barth  aba...@webkit.org
+
+6% regression in intl1 page cycler on chromium-mac
+https://bugs.webkit.org/show_bug.cgi?id=110784
+
+Reviewed by Eric Seidel.
+
+This patch attempts to heal the regression by reverting all the changes
+to the preload scanner up to (and including)
+http://trac.webkit.org/changeset/143020/.
+
+* html/parser/BackgroundHTMLParser.cpp:
+(WebCore::BackgroundHTMLParser::resumeFrom):
+(WebCore::BackgroundHTMLParser::pumpTokenizer):
+(WebCore::BackgroundHTMLParser::sendTokensToMainThread):
+* html/parser/CSSPreloadScanner.cpp:
+(WebCore::CSSPreloadScanner::scan):
+(WebCore::CSSPreloadScanner::emitRule):
+* html/parser/CSSPreloadScanner.h:
+(CSSPreloadScanner):
+* html/parser/HTMLPreloadScanner.cpp:
+(WebCore::isStartTag):
+(WebCore):
+(WebCore::isStartOrEndTag):
+(WebCore::TokenPreloadScanner::identifierFor):
+(WebCore::TokenPreloadScanner::inititatorFor):
+(WebCore::TokenPreloadScanner::StartTagScanner::processAttributes):
+(WebCore::TokenPreloadScanner::StartTagScanner::createPreloadRequest):
+(WebCore::TokenPreloadScanner::processPossibleTemplateTag):
+(WebCore::TokenPreloadScanner::processPossibleStyleTag):
+(WebCore::TokenPreloadScanner::processPossibleBaseTag):
+(WebCore::TokenPreloadScanner::scan):
+(WebCore::HTMLPreloadScanner::scan):
+* html/parser/HTMLPreloadScanner.h:
+(TokenPreloadScanner):
+
 2013-02-25  Mark Lam  mark@apple.com
 
 Changed DatabaseTracker::getMaxSizeForDatabase() to return the previous


Modified: trunk/Source/WebCore/html/parser/BackgroundHTMLParser.cpp (143959 => 143960)

--- trunk/Source/WebCore/html/parser/BackgroundHTMLParser.cpp	2013-02-25 20:54:25 UTC (rev 143959)
+++ trunk/Source/WebCore/html/parser/BackgroundHTMLParser.cpp	2013-02-25 20:58:27 UTC (rev 143960)
@@ -156,7 +156,6 @@
 m_token = checkpoint-token.release();
 m_tokenizer = checkpoint-tokenizer.release();
 m_input.rewindTo(checkpoint-inputCheckpoint, checkpoint-unparsedInput);
-m_preloadScanner-rewindTo(checkpoint-preloadScannerCheckpoint);
 pumpTokenizer();
 }
 
@@ -252,8 +251,6 @@
 if (xssInfo)
 token.setXSSInfo(xssInfo.release());
 
-m_preloadScanner-scan(token, m_pendingPreloads);
-
 m_pendingTokens-append(token);
 }
 
@@ -280,7 +277,6 @@
 chunk-tokens = m_pendingTokens.release();
 chunk-preloads.swap(m_pendingPreloads);
 chunk-inputCheckpoint = m_input.createCheckpoint();
-chunk-preloadScannerCheckpoint = m_preloadScanner-createCheckpoint();
 callOnMainThread(bind(HTMLDocumentParser::didReceiveParsedChunkFromBackgroundParser, m_parser, chunk.release()));
 
 m_pendingTokens = adoptPtr(new CompactHTMLTokenStream);


Modified: 

[webkit-changes] [143961] trunk/Source/WebCore

2013-02-25 Thread abarth
Title: [143961] trunk/Source/WebCore








Revision 143961
Author aba...@webkit.org
Date 2013-02-25 13:13:04 -0800 (Mon, 25 Feb 2013)


Log Message
Build fix for Debug.

* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::startBackgroundParser):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/html/parser/HTMLDocumentParser.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (143960 => 143961)

--- trunk/Source/WebCore/ChangeLog	2013-02-25 20:58:27 UTC (rev 143960)
+++ trunk/Source/WebCore/ChangeLog	2013-02-25 21:13:04 UTC (rev 143961)
@@ -1,5 +1,12 @@
 2013-02-25  Adam Barth  aba...@webkit.org
 
+Build fix for Debug.
+
+* html/parser/HTMLDocumentParser.cpp:
+(WebCore::HTMLDocumentParser::startBackgroundParser):
+
+2013-02-25  Adam Barth  aba...@webkit.org
+
 6% regression in intl1 page cycler on chromium-mac
 https://bugs.webkit.org/show_bug.cgi?id=110784
 


Modified: trunk/Source/WebCore/html/parser/HTMLDocumentParser.cpp (143960 => 143961)

--- trunk/Source/WebCore/html/parser/HTMLDocumentParser.cpp	2013-02-25 20:58:27 UTC (rev 143960)
+++ trunk/Source/WebCore/html/parser/HTMLDocumentParser.cpp	2013-02-25 21:13:04 UTC (rev 143961)
@@ -608,7 +608,6 @@
 config-preloadScanner = adoptPtr(new TokenPreloadScanner(document()-url().copy()));
 
 ASSERT(config-xssAuditor-isSafeToSendToAnotherThread());
-ASSERT(config-preloadScanner-isSafeToSendToAnotherThread());
 HTMLParserThread::shared()-postTask(bind(BackgroundHTMLParser::create, reference.release(), config.release()));
 }
 






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [143983] trunk/Source/WebCore

2013-02-25 Thread abarth
Title: [143983] trunk/Source/WebCore








Revision 143983
Author aba...@webkit.org
Date 2013-02-25 16:12:53 -0800 (Mon, 25 Feb 2013)


Log Message
6% regression in intl1 page cycler on chromium-mac
https://bugs.webkit.org/show_bug.cgi?id=110784

Reviewed by Eric Seidel.

This patch reverts http://trac.webkit.org/changeset/143014 to see if
that's the cause of the PLT regression. If it's not the cause, I'll
roll it back in.

* dom/Element.cpp:
(WebCore::Element::addAttributeInternal):
(WebCore::ShareableElementData::ShareableElementData):
(WebCore::UniqueElementData::makeShareableCopy):
(WebCore::ElementData::addAttribute):
(WebCore::ElementData::removeAttribute):
(WebCore::ElementData::reportMemoryUsage):
* dom/Element.h:
(ElementData):
(UniqueElementData):
(WebCore::ElementData::mutableAttributeVector):
(WebCore):
(WebCore::ElementData::immutableAttributeArray):
(WebCore::ElementData::length):
(WebCore::ElementData::getAttributeItem):
(WebCore::ElementData::attributeItem):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/dom/Element.cpp
trunk/Source/WebCore/dom/Element.h




Diff

Modified: trunk/Source/WebCore/ChangeLog (143982 => 143983)

--- trunk/Source/WebCore/ChangeLog	2013-02-25 23:48:24 UTC (rev 143982)
+++ trunk/Source/WebCore/ChangeLog	2013-02-26 00:12:53 UTC (rev 143983)
@@ -1,3 +1,31 @@
+2013-02-25  Adam Barth  aba...@webkit.org
+
+6% regression in intl1 page cycler on chromium-mac
+https://bugs.webkit.org/show_bug.cgi?id=110784
+
+Reviewed by Eric Seidel.
+
+This patch reverts http://trac.webkit.org/changeset/143014 to see if
+that's the cause of the PLT regression. If it's not the cause, I'll
+roll it back in.
+
+* dom/Element.cpp:
+(WebCore::Element::addAttributeInternal):
+(WebCore::ShareableElementData::ShareableElementData):
+(WebCore::UniqueElementData::makeShareableCopy):
+(WebCore::ElementData::addAttribute):
+(WebCore::ElementData::removeAttribute):
+(WebCore::ElementData::reportMemoryUsage):
+* dom/Element.h:
+(ElementData):
+(UniqueElementData):
+(WebCore::ElementData::mutableAttributeVector):
+(WebCore):
+(WebCore::ElementData::immutableAttributeArray):
+(WebCore::ElementData::length):
+(WebCore::ElementData::getAttributeItem):
+(WebCore::ElementData::attributeItem):
+
 2013-02-25  Tim Horton  timothy_hor...@apple.com
 
 Page::m_isInWindow is uninitialized


Modified: trunk/Source/WebCore/dom/Element.cpp (143982 => 143983)

--- trunk/Source/WebCore/dom/Element.cpp	2013-02-25 23:48:24 UTC (rev 143982)
+++ trunk/Source/WebCore/dom/Element.cpp	2013-02-26 00:12:53 UTC (rev 143983)
@@ -1820,7 +1820,7 @@
 {
 if (!inSynchronizationOfLazyAttribute)
 willModifyAttribute(name, nullAtom, value);
-ensureUniqueElementData()-addAttribute(name, value);
+ensureUniqueElementData()-addAttribute(Attribute(name, value));
 if (!inSynchronizationOfLazyAttribute)
 didAddAttribute(name, value);
 }
@@ -2969,7 +2969,7 @@
 }
 
 for (unsigned i = 0; i  m_arraySize; ++i)
-new (m_attributeArray[i]) Attribute(other.m_attributeVector.at(i));
+new (reinterpret_castAttribute*(m_attributeArray)[i]) Attribute(*other.attributeItem(i));
 }
 
 ElementData::ElementData(const ElementData other, bool isUnique)
@@ -3019,19 +3019,21 @@
 
 PassRefPtrShareableElementData UniqueElementData::makeShareableCopy() const
 {
-void* slot = WTF::fastMalloc(sizeForShareableElementDataWithAttributeCount(m_attributeVector.size()));
+void* slot = WTF::fastMalloc(sizeForShareableElementDataWithAttributeCount(mutableAttributeVector().size()));
 return adoptRef(new (slot) ShareableElementData(*this));
 }
 
-void UniqueElementData::addAttribute(const QualifiedName attributeName, const AtomicString value)
+void ElementData::addAttribute(const Attribute attribute)
 {
-m_attributeVector.append(Attribute(attributeName, value));
+ASSERT(isUnique());
+mutableAttributeVector().append(attribute);
 }
 
-void UniqueElementData::removeAttribute(size_t index)
+void ElementData::removeAttribute(size_t index)
 {
+ASSERT(isUnique());
 ASSERT_WITH_SECURITY_IMPLICATION(index  length());
-m_attributeVector.remove(index);
+mutableAttributeVector().remove(index);
 }
 
 bool ElementData::isEquivalent(const ElementData* other) const
@@ -3061,9 +3063,8 @@
 info.addMember(m_classNames, classNames);
 info.addMember(m_idForStyleResolution, idForStyleResolution);
 if (m_isUnique) {
-const UniqueElementData* uniqueThis = static_castconst UniqueElementData*(this);
-info.addMember(uniqueThis-m_presentationAttributeStyle, presentationAttributeStyle);
-info.addMember(uniqueThis-m_attributeVector, attributeVector);
+info.addMember(presentationAttributeStyle(), presentationAttributeStyle());
+

[webkit-changes] [144000] trunk/Source/WebCore

2013-02-25 Thread abarth
Title: [144000] trunk/Source/WebCore








Revision 144000
Author aba...@webkit.org
Date 2013-02-25 18:36:18 -0800 (Mon, 25 Feb 2013)


Log Message
Threaded HTML parser should pass fast/parser/iframe-sets-parent-to-_javascript_-url.html
https://bugs.webkit.org/show_bug.cgi?id=110637

Reviewed by Eric Seidel.

With the main thread parser, we always parse the first chunk of content
returned as the result of evaluating a _javascript_ URL synchronously. In
particular, if the first chunk has an inline script, we'll execute it
synchronously.

Previous to this patch, the threaded parser would always parse this
content asynchronously. It's conceivable that there could be some
content relying on the synchronous behavior, so this patch introduces
the notion of pinning a parser to the main thread and uses that
concept to force the result of _javascript_ URLs to be parsed on the main
thread (which is probably desirable anyway because they're likely to be
quite short).

This patch fixes fast/parser/iframe-sets-parent-to-_javascript_-url.html
and fast/dom/_javascript_-url-crash-function.html with the threaded
parser with --enable-threaded-html-parser.

* dom/DocumentParser.h:
(WebCore::DocumentParser::pinToMainThread):
(DocumentParser):
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::HTMLDocumentParser):
(WebCore):
(WebCore::HTMLDocumentParser::pinToMainThread):
* html/parser/HTMLDocumentParser.h:
(HTMLDocumentParser):
(WebCore::HTMLDocumentParser::shouldUseThreading):
* loader/DocumentWriter.cpp:
(WebCore::DocumentWriter::replaceDocument):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/dom/DocumentParser.h
trunk/Source/WebCore/html/parser/HTMLDocumentParser.cpp
trunk/Source/WebCore/html/parser/HTMLDocumentParser.h
trunk/Source/WebCore/loader/DocumentWriter.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (143999 => 144000)

--- trunk/Source/WebCore/ChangeLog	2013-02-26 02:33:04 UTC (rev 143999)
+++ trunk/Source/WebCore/ChangeLog	2013-02-26 02:36:18 UTC (rev 144000)
@@ -1,3 +1,40 @@
+2013-02-25  Adam Barth  aba...@webkit.org
+
+Threaded HTML parser should pass fast/parser/iframe-sets-parent-to-_javascript_-url.html
+https://bugs.webkit.org/show_bug.cgi?id=110637
+
+Reviewed by Eric Seidel.
+
+With the main thread parser, we always parse the first chunk of content
+returned as the result of evaluating a _javascript_ URL synchronously. In
+particular, if the first chunk has an inline script, we'll execute it
+synchronously.
+
+Previous to this patch, the threaded parser would always parse this
+content asynchronously. It's conceivable that there could be some
+content relying on the synchronous behavior, so this patch introduces
+the notion of pinning a parser to the main thread and uses that
+concept to force the result of _javascript_ URLs to be parsed on the main
+thread (which is probably desirable anyway because they're likely to be
+quite short).
+
+This patch fixes fast/parser/iframe-sets-parent-to-_javascript_-url.html
+and fast/dom/_javascript_-url-crash-function.html with the threaded
+parser with --enable-threaded-html-parser.
+
+* dom/DocumentParser.h:
+(WebCore::DocumentParser::pinToMainThread):
+(DocumentParser):
+* html/parser/HTMLDocumentParser.cpp:
+(WebCore::HTMLDocumentParser::HTMLDocumentParser):
+(WebCore):
+(WebCore::HTMLDocumentParser::pinToMainThread):
+* html/parser/HTMLDocumentParser.h:
+(HTMLDocumentParser):
+(WebCore::HTMLDocumentParser::shouldUseThreading):
+* loader/DocumentWriter.cpp:
+(WebCore::DocumentWriter::replaceDocument):
+
 2013-02-25  Jessie Berlin  jber...@apple.com
 
 Update the localizable strings file.


Modified: trunk/Source/WebCore/dom/DocumentParser.h (143999 => 144000)

--- trunk/Source/WebCore/dom/DocumentParser.h	2013-02-26 02:33:04 UTC (rev 143999)
+++ trunk/Source/WebCore/dom/DocumentParser.h	2013-02-26 02:36:18 UTC (rev 144000)
@@ -49,6 +49,8 @@
 virtual void appendBytes(DocumentWriter*, const char* bytes, size_t length) = 0;
 virtual void flush(DocumentWriter*) = 0;
 
+virtual void pinToMainThread() { }
+
 // FIXME: append() should be private, but DocumentWriter::replaceDocument
 // uses it for now.
 virtual void append(const SegmentedString) = 0;


Modified: trunk/Source/WebCore/html/parser/HTMLDocumentParser.cpp (143999 => 144000)

--- trunk/Source/WebCore/html/parser/HTMLDocumentParser.cpp	2013-02-26 02:33:04 UTC (rev 143999)
+++ trunk/Source/WebCore/html/parser/HTMLDocumentParser.cpp	2013-02-26 02:36:18 UTC (rev 144000)
@@ -89,6 +89,7 @@
 , m_weakFactory(this)
 #endif
 , m_preloader(adoptPtr(new HTMLResourcePreloader(document)))
+, m_isPinnedToMainThread(false)
 , m_endWasDelayed(false)
 , m_haveBackgroundParser(false)
 , 

[webkit-changes] [144010] trunk/Source/WebCore

2013-02-25 Thread abarth
Title: [144010] trunk/Source/WebCore








Revision 144010
Author aba...@webkit.org
Date 2013-02-25 23:21:52 -0800 (Mon, 25 Feb 2013)


Log Message
6% regression in intl1 page cycler on chromium-mac
https://bugs.webkit.org/show_bug.cgi?id=110784

Unreviewed.

This patch restores the code that I rolled out in
http://trac.webkit.org/changeset/143960 and
http://trac.webkit.org/changeset/143983. Rolling out those patches did
not heal the bot.

* dom/Element.cpp:
(WebCore::Element::addAttributeInternal):
(WebCore::ShareableElementData::ShareableElementData):
(WebCore::UniqueElementData::makeShareableCopy):
(WebCore::UniqueElementData::addAttribute):
(WebCore::UniqueElementData::removeAttribute):
(WebCore::ElementData::reportMemoryUsage):
(WebCore::UniqueElementData::getAttributeItem):
(WebCore):
(WebCore::UniqueElementData::attributeItem):
* dom/Element.h:
(ElementData):
(UniqueElementData):
(WebCore::isShadowHost):
(WebCore::ElementData::length):
(WebCore::ElementData::attributeItem):
* html/parser/BackgroundHTMLParser.cpp:
(WebCore::BackgroundHTMLParser::resumeFrom):
(WebCore::BackgroundHTMLParser::pumpTokenizer):
(WebCore::BackgroundHTMLParser::sendTokensToMainThread):
* html/parser/CSSPreloadScanner.cpp:
(WebCore):
(WebCore::CSSPreloadScanner::scanCommon):
(WebCore::CSSPreloadScanner::scan):
(WebCore::CSSPreloadScanner::emitRule):
* html/parser/CSSPreloadScanner.h:
(CSSPreloadScanner):
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::startBackgroundParser):
* html/parser/HTMLPreloadScanner.cpp:
(WebCore::TokenPreloadScanner::tagIdFor):
(WebCore):
(WebCore::TokenPreloadScanner::initiatorFor):
(WebCore::TokenPreloadScanner::StartTagScanner::processAttributes):
(TokenPreloadScanner::StartTagScanner):
(WebCore::TokenPreloadScanner::StartTagScanner::createPreloadRequest):
(WebCore::TokenPreloadScanner::createCheckpoint):
(WebCore::TokenPreloadScanner::rewindTo):
(WebCore::TokenPreloadScanner::scan):
(WebCore::TokenPreloadScanner::scanCommon):
(WebCore::TokenPreloadScanner::updatePredictedBaseURL):
(WebCore::HTMLPreloadScanner::scan):
* html/parser/HTMLPreloadScanner.h:
(TokenPreloadScanner):
(WebCore::TokenPreloadScanner::isSafeToSendToAnotherThread):
(WebCore::TokenPreloadScanner::Checkpoint::Checkpoint):
(Checkpoint):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/dom/Element.cpp
trunk/Source/WebCore/dom/Element.h
trunk/Source/WebCore/html/parser/BackgroundHTMLParser.cpp
trunk/Source/WebCore/html/parser/CSSPreloadScanner.cpp
trunk/Source/WebCore/html/parser/CSSPreloadScanner.h
trunk/Source/WebCore/html/parser/HTMLDocumentParser.cpp
trunk/Source/WebCore/html/parser/HTMLPreloadScanner.cpp
trunk/Source/WebCore/html/parser/HTMLPreloadScanner.h




Diff

Modified: trunk/Source/WebCore/ChangeLog (144009 => 144010)

--- trunk/Source/WebCore/ChangeLog	2013-02-26 07:01:19 UTC (rev 144009)
+++ trunk/Source/WebCore/ChangeLog	2013-02-26 07:21:52 UTC (rev 144010)
@@ -1,3 +1,63 @@
+2013-02-25  Adam Barth  aba...@webkit.org
+
+6% regression in intl1 page cycler on chromium-mac
+https://bugs.webkit.org/show_bug.cgi?id=110784
+
+Unreviewed.
+
+This patch restores the code that I rolled out in
+http://trac.webkit.org/changeset/143960 and
+http://trac.webkit.org/changeset/143983. Rolling out those patches did
+not heal the bot.
+
+* dom/Element.cpp:
+(WebCore::Element::addAttributeInternal):
+(WebCore::ShareableElementData::ShareableElementData):
+(WebCore::UniqueElementData::makeShareableCopy):
+(WebCore::UniqueElementData::addAttribute):
+(WebCore::UniqueElementData::removeAttribute):
+(WebCore::ElementData::reportMemoryUsage):
+(WebCore::UniqueElementData::getAttributeItem):
+(WebCore):
+(WebCore::UniqueElementData::attributeItem):
+* dom/Element.h:
+(ElementData):
+(UniqueElementData):
+(WebCore::isShadowHost):
+(WebCore::ElementData::length):
+(WebCore::ElementData::attributeItem):
+* html/parser/BackgroundHTMLParser.cpp:
+(WebCore::BackgroundHTMLParser::resumeFrom):
+(WebCore::BackgroundHTMLParser::pumpTokenizer):
+(WebCore::BackgroundHTMLParser::sendTokensToMainThread):
+* html/parser/CSSPreloadScanner.cpp:
+(WebCore):
+(WebCore::CSSPreloadScanner::scanCommon):
+(WebCore::CSSPreloadScanner::scan):
+(WebCore::CSSPreloadScanner::emitRule):
+* html/parser/CSSPreloadScanner.h:
+(CSSPreloadScanner):
+* html/parser/HTMLDocumentParser.cpp:
+(WebCore::HTMLDocumentParser::startBackgroundParser):
+* html/parser/HTMLPreloadScanner.cpp:
+(WebCore::TokenPreloadScanner::tagIdFor):
+(WebCore):
+(WebCore::TokenPreloadScanner::initiatorFor):
+(WebCore::TokenPreloadScanner::StartTagScanner::processAttributes):
+(TokenPreloadScanner::StartTagScanner):
+

[webkit-changes] [143845] trunk/Source/WebCore

2013-02-23 Thread abarth
Title: [143845] trunk/Source/WebCore








Revision 143845
Author aba...@webkit.org
Date 2013-02-23 10:37:50 -0800 (Sat, 23 Feb 2013)


Log Message
Threaded HTML parser should pass fast/parser/parser-yield-timing.html
https://bugs.webkit.org/show_bug.cgi?id=110647

Reviewed by Eric Seidel.

Previously, the threaded HTML parser would run for an arbitrary amount
of time without yielding after speculation succeeded. This might be the
cause of the good DOMContentLoaded numbers.

Note: This patch also demonstrates that the ParseHTML_max numbers
aren't correct currently because they're measuring the interior of this
loop instead of all the time spent in the loop. We should move the
instrumentation in a followup patch.

 * html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::resumeParsingAfterYield):
(WebCore::HTMLDocumentParser::pumpPendingSpeculations):
(WebCore):
(WebCore::HTMLDocumentParser::resumeParsingAfterScriptExecution):
* html/parser/HTMLDocumentParser.h:
(HTMLDocumentParser):
* html/parser/HTMLParserScheduler.cpp:

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/html/parser/HTMLDocumentParser.cpp
trunk/Source/WebCore/html/parser/HTMLDocumentParser.h
trunk/Source/WebCore/html/parser/HTMLParserScheduler.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (143844 => 143845)

--- trunk/Source/WebCore/ChangeLog	2013-02-23 18:22:35 UTC (rev 143844)
+++ trunk/Source/WebCore/ChangeLog	2013-02-23 18:37:50 UTC (rev 143845)
@@ -1,3 +1,28 @@
+2013-02-23  Adam Barth  aba...@webkit.org
+
+Threaded HTML parser should pass fast/parser/parser-yield-timing.html
+https://bugs.webkit.org/show_bug.cgi?id=110647
+
+Reviewed by Eric Seidel.
+
+Previously, the threaded HTML parser would run for an arbitrary amount
+of time without yielding after speculation succeeded. This might be the
+cause of the good DOMContentLoaded numbers.
+
+Note: This patch also demonstrates that the ParseHTML_max numbers
+aren't correct currently because they're measuring the interior of this
+loop instead of all the time spent in the loop. We should move the
+instrumentation in a followup patch.
+
+ * html/parser/HTMLDocumentParser.cpp:
+(WebCore::HTMLDocumentParser::resumeParsingAfterYield):
+(WebCore::HTMLDocumentParser::pumpPendingSpeculations):
+(WebCore):
+(WebCore::HTMLDocumentParser::resumeParsingAfterScriptExecution):
+* html/parser/HTMLDocumentParser.h:
+(HTMLDocumentParser):
+* html/parser/HTMLParserScheduler.cpp:
+
 2013-02-23  Martin Robinson  mrobin...@igalia.com
 
 [GTK] Allow sharing the WebCore include list with the Chromium build


Modified: trunk/Source/WebCore/html/parser/HTMLDocumentParser.cpp (143844 => 143845)

--- trunk/Source/WebCore/html/parser/HTMLDocumentParser.cpp	2013-02-23 18:22:35 UTC (rev 143844)
+++ trunk/Source/WebCore/html/parser/HTMLDocumentParser.cpp	2013-02-23 18:37:50 UTC (rev 143845)
@@ -240,12 +240,17 @@
 // Used by HTMLParserScheduler
 void HTMLDocumentParser::resumeParsingAfterYield()
 {
-ASSERT(!m_haveBackgroundParser);
-
 // pumpTokenizer can cause this parser to be detached from the Document,
 // but we need to ensure it isn't deleted yet.
 RefPtrHTMLDocumentParser protect(this);
 
+#if ENABLE(THREADED_HTML_PARSER)
+if (m_haveBackgroundParser) {
+pumpPendingSpeculations();
+return;
+}
+#endif
+
 // We should never be here unless we can pump immediately.  Call pumpTokenizer()
 // directly so that ASSERTS will fire if we're wrong.
 pumpTokenizer(AllowYield);
@@ -355,6 +360,8 @@
 
 void HTMLDocumentParser::processParsedChunkFromBackgroundParser(PassOwnPtrParsedChunk chunk)
 {
+// ASSERT that this object is both attached to the Document and protected.
+ASSERT(refCount() = 2);
 ASSERT(shouldUseThreading());
 
 ActiveParserSession session(contextForParsingSession());
@@ -394,6 +401,34 @@
 checkForSpeculationFailure();
 }
 
+void HTMLDocumentParser::pumpPendingSpeculations()
+{
+// FIXME: Share this constant with the parser scheduler.
+const double parserTimeLimit = 0.500;
+
+// ASSERT that this object is both attached to the Document and protected.
+ASSERT(refCount() = 2);
+
+// FIXME: Pass in current input length.
+InspectorInstrumentationCookie cookie = InspectorInstrumentation::willWriteHTML(document(), 0, lineNumber().zeroBasedInt());
+
+double startTime = currentTime();
+
+while (!m_speculations.isEmpty()) {
+processParsedChunkFromBackgroundParser(m_speculations.takeFirst());
+
+if (isWaitingForScripts() || isStopped())
+break;
+
+if (currentTime() - startTime  parserTimeLimit  !m_speculations.isEmpty()) {
+m_parserScheduler-scheduleForResume();
+break;
+}
+}
+
+InspectorInstrumentation::didWriteHTML(cookie, lineNumber().zeroBasedInt());

[webkit-changes] [143853] trunk/Source/WebCore

2013-02-23 Thread abarth
Title: [143853] trunk/Source/WebCore








Revision 143853
Author aba...@webkit.org
Date 2013-02-23 15:33:40 -0800 (Sat, 23 Feb 2013)


Log Message
WebCore fails to link in Chromium official build
https://bugs.webkit.org/show_bug.cgi?id=110697

Reviewed by Eric Seidel.

Apparently we need to use more shards to work around linker limitations
on Windows again.

* WebCore.gyp/WebCore.gyp:

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/WebCore.gyp/WebCore.gyp




Diff

Modified: trunk/Source/WebCore/ChangeLog (143852 => 143853)

--- trunk/Source/WebCore/ChangeLog	2013-02-23 23:31:36 UTC (rev 143852)
+++ trunk/Source/WebCore/ChangeLog	2013-02-23 23:33:40 UTC (rev 143853)
@@ -1,3 +1,15 @@
+2013-02-23  Adam Barth  aba...@webkit.org
+
+WebCore fails to link in Chromium official build
+https://bugs.webkit.org/show_bug.cgi?id=110697
+
+Reviewed by Eric Seidel.
+
+Apparently we need to use more shards to work around linker limitations
+on Windows again.
+
+* WebCore.gyp/WebCore.gyp:
+
 2013-02-23  Kentaro Hara  hara...@chromium.org
 
 [V8] Rename constructorCallbackCustom() to constructorCustom()


Modified: trunk/Source/WebCore/WebCore.gyp/WebCore.gyp (143852 => 143853)

--- trunk/Source/WebCore/WebCore.gyp/WebCore.gyp	2013-02-23 23:31:36 UTC (rev 143852)
+++ trunk/Source/WebCore/WebCore.gyp/WebCore.gyp	2013-02-23 23:33:40 UTC (rev 143853)
@@ -2049,10 +2049,10 @@
 ['include', 'loader/appcache/DOMApplicationCache\.(cpp|h)$'],
   ],
   'conditions': [
-# Shard this taret into ten parts to work around linker limitations.
+# Shard this taret into parts to work around linker limitations.
 # on link time code generation builds.
 ['OS==win and buildtype==Official', {
-  'msvs_shard': 10,
+  'msvs_shard': 15,
 }],
 ['os_posix == 1 and OS != mac and gcc_version == 42', {
   # Due to a bug in gcc 4.2.1 (the current version on hardy), we get






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [143797] trunk/Source/WebCore

2013-02-22 Thread abarth
Title: [143797] trunk/Source/WebCore








Revision 143797
Author aba...@webkit.org
Date 2013-02-22 14:17:49 -0800 (Fri, 22 Feb 2013)


Log Message
Threaded HTML parser should pass fast/parser/iframe-sets-parent-to-_javascript_-url.html
https://bugs.webkit.org/show_bug.cgi?id=110637

Reviewed by Eric Seidel.

With the main thread parser, we always parse the first chunk of content
returned as the result of evaluating a _javascript_ URL synchronously. In
particular, if the first chunk has an inline script, we'll execute it
synchronously.

Previous to this patch, the threaded parser would always parse this
content asynchronously. It's conceivable that there could be some
content relying on the synchronous behavior, so this patch introduces
the notion of pinning a parser to the main thread and uses that
concept to force the result of _javascript_ URLs to be parsed on the main
thread (which is probably desirable anyway because they're likely to be
quite short).

This patch fixes fast/parser/iframe-sets-parent-to-_javascript_-url.html
and fast/dom/_javascript_-url-crash-function.html with the threaded
parser with --enable-threaded-html-parser.

* dom/DocumentParser.h:
(WebCore::DocumentParser::pinToMainThread):
(DocumentParser):
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::HTMLDocumentParser):
(WebCore):
(WebCore::HTMLDocumentParser::pinToMainThread):
* html/parser/HTMLDocumentParser.h:
(HTMLDocumentParser):
(WebCore::HTMLDocumentParser::shouldUseThreading):
* loader/DocumentWriter.cpp:
(WebCore::DocumentWriter::replaceDocument):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/dom/DocumentParser.h
trunk/Source/WebCore/html/parser/HTMLDocumentParser.cpp
trunk/Source/WebCore/html/parser/HTMLDocumentParser.h
trunk/Source/WebCore/loader/DocumentWriter.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (143796 => 143797)

--- trunk/Source/WebCore/ChangeLog	2013-02-22 22:16:43 UTC (rev 143796)
+++ trunk/Source/WebCore/ChangeLog	2013-02-22 22:17:49 UTC (rev 143797)
@@ -1,3 +1,40 @@
+2013-02-22  Adam Barth  aba...@webkit.org
+
+Threaded HTML parser should pass fast/parser/iframe-sets-parent-to-_javascript_-url.html
+https://bugs.webkit.org/show_bug.cgi?id=110637
+
+Reviewed by Eric Seidel.
+
+With the main thread parser, we always parse the first chunk of content
+returned as the result of evaluating a _javascript_ URL synchronously. In
+particular, if the first chunk has an inline script, we'll execute it
+synchronously.
+
+Previous to this patch, the threaded parser would always parse this
+content asynchronously. It's conceivable that there could be some
+content relying on the synchronous behavior, so this patch introduces
+the notion of pinning a parser to the main thread and uses that
+concept to force the result of _javascript_ URLs to be parsed on the main
+thread (which is probably desirable anyway because they're likely to be
+quite short).
+
+This patch fixes fast/parser/iframe-sets-parent-to-_javascript_-url.html
+and fast/dom/_javascript_-url-crash-function.html with the threaded
+parser with --enable-threaded-html-parser.
+
+* dom/DocumentParser.h:
+(WebCore::DocumentParser::pinToMainThread):
+(DocumentParser):
+* html/parser/HTMLDocumentParser.cpp:
+(WebCore::HTMLDocumentParser::HTMLDocumentParser):
+(WebCore):
+(WebCore::HTMLDocumentParser::pinToMainThread):
+* html/parser/HTMLDocumentParser.h:
+(HTMLDocumentParser):
+(WebCore::HTMLDocumentParser::shouldUseThreading):
+* loader/DocumentWriter.cpp:
+(WebCore::DocumentWriter::replaceDocument):
+
 2013-02-22  Joe Mason  jma...@rim.com
 
 [BlackBerry] Reread cookies when retrying a request with new auth credentials


Modified: trunk/Source/WebCore/dom/DocumentParser.h (143796 => 143797)

--- trunk/Source/WebCore/dom/DocumentParser.h	2013-02-22 22:16:43 UTC (rev 143796)
+++ trunk/Source/WebCore/dom/DocumentParser.h	2013-02-22 22:17:49 UTC (rev 143797)
@@ -49,6 +49,8 @@
 virtual void appendBytes(DocumentWriter*, const char* bytes, size_t length) = 0;
 virtual void flush(DocumentWriter*) = 0;
 
+virtual void pinToMainThread() { }
+
 // FIXME: append() should be private, but DocumentWriter::replaceDocument
 // uses it for now.
 virtual void append(const SegmentedString) = 0;


Modified: trunk/Source/WebCore/html/parser/HTMLDocumentParser.cpp (143796 => 143797)

--- trunk/Source/WebCore/html/parser/HTMLDocumentParser.cpp	2013-02-22 22:16:43 UTC (rev 143796)
+++ trunk/Source/WebCore/html/parser/HTMLDocumentParser.cpp	2013-02-22 22:17:49 UTC (rev 143797)
@@ -89,6 +89,7 @@
 , m_weakFactory(this)
 #endif
 , m_preloader(adoptPtr(new HTMLResourcePreloader(document)))
+, m_isPinnedToMainThread(false)
 , m_endWasDelayed(false)
 , 

[webkit-changes] [143802] trunk/LayoutTests

2013-02-22 Thread abarth
Title: [143802] trunk/LayoutTests








Revision 143802
Author aba...@webkit.org
Date 2013-02-22 14:39:26 -0800 (Fri, 22 Feb 2013)


Log Message
fast/parser/parser-yield-timing.html doesn't integrate with js-test-pre correctly
https://bugs.webkit.org/show_bug.cgi?id=110645

Reviewed by Eric Seidel.

* fast/parser/parser-yield-timing.html:

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/fast/parser/parser-yield-timing.html




Diff

Modified: trunk/LayoutTests/ChangeLog (143801 => 143802)

--- trunk/LayoutTests/ChangeLog	2013-02-22 22:38:18 UTC (rev 143801)
+++ trunk/LayoutTests/ChangeLog	2013-02-22 22:39:26 UTC (rev 143802)
@@ -1,3 +1,12 @@
+2013-02-22  Adam Barth  aba...@webkit.org
+
+fast/parser/parser-yield-timing.html doesn't integrate with js-test-pre correctly
+https://bugs.webkit.org/show_bug.cgi?id=110645
+
+Reviewed by Eric Seidel.
+
+* fast/parser/parser-yield-timing.html:
+
 2013-02-21  Ojan Vafai  o...@chromium.org
 
 Increase the max preferred width of tables to 100


Modified: trunk/LayoutTests/fast/parser/parser-yield-timing.html (143801 => 143802)

--- trunk/LayoutTests/fast/parser/parser-yield-timing.html	2013-02-22 22:38:18 UTC (rev 143801)
+++ trunk/LayoutTests/fast/parser/parser-yield-timing.html	2013-02-22 22:39:26 UTC (rev 143802)
@@ -3,9 +3,7 @@
   head
 script type=text/_javascript_ src=""
 script
-  if (window.testRunner) {
-window.testRunner.waitUntilDone();
-  }
+  window.jsTestIsAsync = true;
 
   description(Runs 3 separate 1 second lt;scriptgt; blocks with a setTimeout schedule before each. The execution time of the setTimeout is when the HTML yielded to the event loop. The yields also represent painting opportunities. We want the parser to yield every 0.5 seconds once it has seen a script.);
 
@@ -42,9 +40,7 @@
   setTimeout(function() { 
 expectElapsedTime(3000);
 
-if (window.testRunner) {
-  testRunner.notifyDone();
-}
+finishJSTest();
   }, 0);
 /script
 script 






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [143670] trunk

2013-02-21 Thread abarth
Title: [143670] trunk








Revision 143670
Author aba...@webkit.org
Date 2013-02-21 17:13:25 -0800 (Thu, 21 Feb 2013)


Log Message
Threaded HTML Parser fails fast/dom/Document/readystate.html
https://bugs.webkit.org/show_bug.cgi?id=110529

Reviewed by Eric Seidel.

Source/WebCore:

We need to create the tokenizer even when we finish a script-created
parser. Most of the time, the tokenizer has already been created at
this point because it is created by calls to document.write.

Test: fast/parser/body-should-exist-after-open-close.html

* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::finish):

LayoutTests:

This test is a reduction of the original issue.

* fast/parser/body-should-exist-after-open-close-expected.txt: Added.
* fast/parser/body-should-exist-after-open-close.html: Added.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/html/parser/HTMLDocumentParser.cpp


Added Paths

trunk/LayoutTests/fast/parser/body-should-exist-after-open-close-expected.txt
trunk/LayoutTests/fast/parser/body-should-exist-after-open-close.html




Diff

Modified: trunk/LayoutTests/ChangeLog (143669 => 143670)

--- trunk/LayoutTests/ChangeLog	2013-02-22 01:11:02 UTC (rev 143669)
+++ trunk/LayoutTests/ChangeLog	2013-02-22 01:13:25 UTC (rev 143670)
@@ -1,3 +1,15 @@
+2013-02-21  Adam Barth  aba...@webkit.org
+
+Threaded HTML Parser fails fast/dom/Document/readystate.html
+https://bugs.webkit.org/show_bug.cgi?id=110529
+
+Reviewed by Eric Seidel.
+
+This test is a reduction of the original issue.
+
+* fast/parser/body-should-exist-after-open-close-expected.txt: Added.
+* fast/parser/body-should-exist-after-open-close.html: Added.
+
 2013-02-21  Rouslan Solomakhin  rous...@chromium.org
 
 Fix editing/spelling/spelling-changed-text.html on Qt and GTK


Added: trunk/LayoutTests/fast/parser/body-should-exist-after-open-close-expected.txt (0 => 143670)

--- trunk/LayoutTests/fast/parser/body-should-exist-after-open-close-expected.txt	(rev 0)
+++ trunk/LayoutTests/fast/parser/body-should-exist-after-open-close-expected.txt	2013-02-22 01:13:25 UTC (rev 143670)
@@ -0,0 +1 @@
+ PASS


Added: trunk/LayoutTests/fast/parser/body-should-exist-after-open-close.html (0 => 143670)

--- trunk/LayoutTests/fast/parser/body-should-exist-after-open-close.html	(rev 0)
+++ trunk/LayoutTests/fast/parser/body-should-exist-after-open-close.html	2013-02-22 01:13:25 UTC (rev 143670)
@@ -0,0 +1,11 @@
+body
+iframe/iframe
+script
+if (window.testRunner)
+testRunner.dumpAsText();
+
+var doc = frames[0].document;
+doc.open();
+doc.close();
+document.write(doc.body.toString() == [object HTMLBodyElement] ? PASS : FAIL);
+/script


Modified: trunk/Source/WebCore/ChangeLog (143669 => 143670)

--- trunk/Source/WebCore/ChangeLog	2013-02-22 01:11:02 UTC (rev 143669)
+++ trunk/Source/WebCore/ChangeLog	2013-02-22 01:13:25 UTC (rev 143670)
@@ -1,3 +1,19 @@
+2013-02-21  Adam Barth  aba...@webkit.org
+
+Threaded HTML Parser fails fast/dom/Document/readystate.html
+https://bugs.webkit.org/show_bug.cgi?id=110529
+
+Reviewed by Eric Seidel.
+
+We need to create the tokenizer even when we finish a script-created
+parser. Most of the time, the tokenizer has already been created at
+this point because it is created by calls to document.write.
+
+Test: fast/parser/body-should-exist-after-open-close.html
+
+* html/parser/HTMLDocumentParser.cpp:
+(WebCore::HTMLDocumentParser::finish):
+
 2013-02-21  Emil A Eklund  e...@chromium.org
 
 Lots of LayoutUnit assertions when loading a Wikipedia article


Modified: trunk/Source/WebCore/html/parser/HTMLDocumentParser.cpp (143669 => 143670)

--- trunk/Source/WebCore/html/parser/HTMLDocumentParser.cpp	2013-02-22 01:11:02 UTC (rev 143669)
+++ trunk/Source/WebCore/html/parser/HTMLDocumentParser.cpp	2013-02-22 01:13:25 UTC (rev 143670)
@@ -697,8 +697,8 @@
 return;
 }
 
-if (shouldUseThreading()  !wasCreatedByScript()) {
-ASSERT(!m_tokenizer  !m_token);
+if (!m_tokenizer) {
+ASSERT(!m_token);
 // We're finishing before receiving any data. Rather than booting up
 // the background parser just to spin it down, we finish parsing
 // synchronously.






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [143020] trunk/Source/WebCore

2013-02-15 Thread abarth
Title: [143020] trunk/Source/WebCore








Revision 143020
Author aba...@webkit.org
Date 2013-02-15 11:11:38 -0800 (Fri, 15 Feb 2013)


Log Message
TokenPreloadScanner should be able to scan CompactHTMLTokens
https://bugs.webkit.org/show_bug.cgi?id=109861

Reviewed by Eric Seidel.

This patch moves the main scanning logic for the TokenPreloadScanner to
a templated scanCommon routine that can scan either an HTMLToken or a
CompactHTMLToken. This patch will let the BackgroundHTMLParser preload
scan its CompactHTMLTokens.

* html/parser/CSSPreloadScanner.cpp:
(WebCore):
(WebCore::CSSPreloadScanner::scanCommon):
(WebCore::CSSPreloadScanner::scan):
* html/parser/CSSPreloadScanner.h:
(CSSPreloadScanner):
- Tweak the CSSPreloadScanner API slightly to make it easier to
  call from templated code.
* html/parser/HTMLPreloadScanner.cpp:
(WebCore::TokenPreloadScanner::tagIdFor):
(WebCore):
(WebCore::TokenPreloadScanner::StartTagScanner::processAttributes):
(TokenPreloadScanner::StartTagScanner):
(WebCore::TokenPreloadScanner::scan):
(WebCore::TokenPreloadScanner::scanCommon):
(WebCore::TokenPreloadScanner::updatePredictedBaseURL):
(WebCore::HTMLPreloadScanner::scan):
* html/parser/HTMLPreloadScanner.h:
(TokenPreloadScanner):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/html/parser/CSSPreloadScanner.cpp
trunk/Source/WebCore/html/parser/CSSPreloadScanner.h
trunk/Source/WebCore/html/parser/HTMLPreloadScanner.cpp
trunk/Source/WebCore/html/parser/HTMLPreloadScanner.h




Diff

Modified: trunk/Source/WebCore/ChangeLog (143019 => 143020)

--- trunk/Source/WebCore/ChangeLog	2013-02-15 19:06:30 UTC (rev 143019)
+++ trunk/Source/WebCore/ChangeLog	2013-02-15 19:11:38 UTC (rev 143020)
@@ -1,3 +1,35 @@
+2013-02-15  Adam Barth  aba...@webkit.org
+
+TokenPreloadScanner should be able to scan CompactHTMLTokens
+https://bugs.webkit.org/show_bug.cgi?id=109861
+
+Reviewed by Eric Seidel.
+
+This patch moves the main scanning logic for the TokenPreloadScanner to
+a templated scanCommon routine that can scan either an HTMLToken or a
+CompactHTMLToken. This patch will let the BackgroundHTMLParser preload
+scan its CompactHTMLTokens.
+
+* html/parser/CSSPreloadScanner.cpp:
+(WebCore):
+(WebCore::CSSPreloadScanner::scanCommon):
+(WebCore::CSSPreloadScanner::scan):
+* html/parser/CSSPreloadScanner.h:
+(CSSPreloadScanner):
+- Tweak the CSSPreloadScanner API slightly to make it easier to
+  call from templated code.
+* html/parser/HTMLPreloadScanner.cpp:
+(WebCore::TokenPreloadScanner::tagIdFor):
+(WebCore):
+(WebCore::TokenPreloadScanner::StartTagScanner::processAttributes):
+(TokenPreloadScanner::StartTagScanner):
+(WebCore::TokenPreloadScanner::scan):
+(WebCore::TokenPreloadScanner::scanCommon):
+(WebCore::TokenPreloadScanner::updatePredictedBaseURL):
+(WebCore::HTMLPreloadScanner::scan):
+* html/parser/HTMLPreloadScanner.h:
+(TokenPreloadScanner):
+
 2013-02-15  Alexis Menard  ale...@webkit.org
 
 WebKit shouldn't accept none, none in transition shorthand property.


Modified: trunk/Source/WebCore/html/parser/CSSPreloadScanner.cpp (143019 => 143020)

--- trunk/Source/WebCore/html/parser/CSSPreloadScanner.cpp	2013-02-15 19:06:30 UTC (rev 143019)
+++ trunk/Source/WebCore/html/parser/CSSPreloadScanner.cpp	2013-02-15 19:11:38 UTC (rev 143020)
@@ -50,22 +50,31 @@
 m_ruleValue.clear();
 }
 
-void CSSPreloadScanner::scan(const UChar* begin, const UChar* end, VectorOwnPtrPreloadRequest  requests)
+templatetypename Char
+void CSSPreloadScanner::scanCommon(const Char* begin, const Char* end, VectorOwnPtrPreloadRequest  requests)
 {
 m_requests = requests;
-for (const UChar* it = begin; it != end  m_state != DoneParsingImportRules; ++it)
+for (const Char* it = begin; it != end  m_state != DoneParsingImportRules; ++it)
 tokenize(*it);
 m_requests = 0;
 }
 
-void CSSPreloadScanner::scan(const LChar* begin, const LChar* end, VectorOwnPtrPreloadRequest  requests)
+void CSSPreloadScanner::scan(const HTMLToken::DataVector data, VectorOwnPtrPreloadRequest  requests)
 {
-m_requests = requests;
-for (const LChar* it = begin; it != end  m_state != DoneParsingImportRules; ++it)
-tokenize(*it);
-m_requests = 0;
+scanCommon(data.data(), data.data() + data.size(), requests);
 }
 
+void CSSPreloadScanner::scan(const String data, VectorOwnPtrPreloadRequest  requests)
+{
+if (data.is8Bit()) {
+const LChar* begin = data.characters8();
+scanCommon(begin, begin + data.length(), requests);
+return;
+}
+const UChar* begin = data.characters16();
+scanCommon(begin, begin + data.length(), requests);
+}
+
 inline void CSSPreloadScanner::tokenize(UChar c)
 {
 // We are just interested in @import rules, no need for real 

[webkit-changes] [143051] trunk/Source/WebCore

2013-02-15 Thread abarth
Title: [143051] trunk/Source/WebCore








Revision 143051
Author aba...@webkit.org
Date 2013-02-15 14:14:31 -0800 (Fri, 15 Feb 2013)


Log Message
Enable the preload scanner on the background parser thread
https://bugs.webkit.org/show_bug.cgi?id=108027

Reviewed by Tony Gentilcore.

The patch causes us to pass all the fast/preloader tests with the
threaded parser enabled.

This patch wires up the BackgroundHTMLParser to the
TokenPreloadScanner.  Currently, we bail out of preload scanning if we
encounter a document.write becaues we don't know how to rewind the
preload scanner, but that's something we can tune in the future.

The BackgroundHTMLParser delivers the preloads to the
HTMLDocumentParser together with the token stream. If the
HTMLDocumentParser isn't able to use the token stream immediately, it
kicks off the preloads.

* html/parser/BackgroundHTMLParser.cpp:
(WebCore::checkThatPreloadsAreSafeToSendToAnotherThread):
(WebCore::BackgroundHTMLParser::BackgroundHTMLParser):
(WebCore::BackgroundHTMLParser::resumeFrom):
(WebCore::BackgroundHTMLParser::pumpTokenizer):
(WebCore::BackgroundHTMLParser::sendTokensToMainThread):
* html/parser/BackgroundHTMLParser.h:
(Configuration):
- We need to add a struct for the create function because the
  number of arguments exceeds the limits of Functional.h.
(BackgroundHTMLParser):
(WebCore::BackgroundHTMLParser::create):
* html/parser/CSSPreloadScanner.cpp:
(WebCore::CSSPreloadScanner::scanCommon):
(WebCore::CSSPreloadScanner::scan):
(WebCore::CSSPreloadScanner::emitRule):
- We need to use a new string here so that the string is safe to
  send to another thread.
* html/parser/CSSPreloadScanner.h:
(CSSPreloadScanner):
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::didReceiveParsedChunkFromBackgroundParser):
(WebCore::HTMLDocumentParser::startBackgroundParser):
- Following the example of the XSSAuditor, we create the
  TokenPreloadScanner on the main thread and then send it to the
  background thread for operation.
* html/parser/HTMLDocumentParser.h:
(WebCore):
(ParsedChunk):
* html/parser/HTMLParserOptions.h:
(HTMLParserOptions):
- We need to add a default constructor so that the
  HTMLDocumentParser can create an empty
  BackgroundHTMLParser::Configuration struct.
* html/parser/HTMLPreloadScanner.cpp:
(WebCore::TokenPreloadScanner::scan):
(WebCore::TokenPreloadScanner::scanCommon):
(WebCore::HTMLPreloadScanner::scan):
* html/parser/HTMLPreloadScanner.h:
(TokenPreloadScanner):
(WebCore::TokenPreloadScanner::isSafeToSendToAnotherThread):
* html/parser/HTMLResourcePreloader.cpp:
(WebCore::HTMLResourcePreloader::takeAndPreload):
(WebCore):
* html/parser/HTMLResourcePreloader.h:
(WebCore::PreloadRequest::PreloadRequest):
(WebCore):
(HTMLResourcePreloader):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/html/parser/BackgroundHTMLParser.cpp
trunk/Source/WebCore/html/parser/BackgroundHTMLParser.h
trunk/Source/WebCore/html/parser/CSSPreloadScanner.cpp
trunk/Source/WebCore/html/parser/CSSPreloadScanner.h
trunk/Source/WebCore/html/parser/HTMLDocumentParser.cpp
trunk/Source/WebCore/html/parser/HTMLDocumentParser.h
trunk/Source/WebCore/html/parser/HTMLParserOptions.h
trunk/Source/WebCore/html/parser/HTMLPreloadScanner.cpp
trunk/Source/WebCore/html/parser/HTMLPreloadScanner.h
trunk/Source/WebCore/html/parser/HTMLResourcePreloader.cpp
trunk/Source/WebCore/html/parser/HTMLResourcePreloader.h




Diff

Modified: trunk/Source/WebCore/ChangeLog (143050 => 143051)

--- trunk/Source/WebCore/ChangeLog	2013-02-15 22:01:04 UTC (rev 143050)
+++ trunk/Source/WebCore/ChangeLog	2013-02-15 22:14:31 UTC (rev 143051)
@@ -1,3 +1,72 @@
+2013-02-15  Adam Barth  aba...@webkit.org
+
+Enable the preload scanner on the background parser thread
+https://bugs.webkit.org/show_bug.cgi?id=108027
+
+Reviewed by Tony Gentilcore.
+
+The patch causes us to pass all the fast/preloader tests with the
+threaded parser enabled.
+
+This patch wires up the BackgroundHTMLParser to the
+TokenPreloadScanner.  Currently, we bail out of preload scanning if we
+encounter a document.write becaues we don't know how to rewind the
+preload scanner, but that's something we can tune in the future.
+
+The BackgroundHTMLParser delivers the preloads to the
+HTMLDocumentParser together with the token stream. If the
+HTMLDocumentParser isn't able to use the token stream immediately, it
+kicks off the preloads.
+
+* html/parser/BackgroundHTMLParser.cpp:
+(WebCore::checkThatPreloadsAreSafeToSendToAnotherThread):
+(WebCore::BackgroundHTMLParser::BackgroundHTMLParser):
+(WebCore::BackgroundHTMLParser::resumeFrom):
+(WebCore::BackgroundHTMLParser::pumpTokenizer):
+(WebCore::BackgroundHTMLParser::sendTokensToMainThread):
+* html/parser/BackgroundHTMLParser.h:
+(Configuration):
+- 

[webkit-changes] [143056] branches/chromium/1410

2013-02-15 Thread abarth
Title: [143056] branches/chromium/1410








Revision 143056
Author aba...@webkit.org
Date 2013-02-15 14:49:58 -0800 (Fri, 15 Feb 2013)


Log Message
Merge 142492
 document.write during window.onload can trigger DumpRenderTree to dump the render tree
 https://bugs.webkit.org/show_bug.cgi?id=109465
 
 Reviewed by Eric Seidel.
 
 Source/WebCore:
 
 This patch is a partial revert of
 http://trac.webkit.org/changeset/142378. It's not safe to call
 checkComplete during the load event. We'll need to find another way of
 calling checkComplete at the right time.
 
 Test: fast/parser/document-write-during-load.html
 
 * dom/Document.cpp:
 (WebCore::Document::decrementActiveParserCount):
 
 LayoutTests:
 
 * fast/parser/document-write-during-load-expected.txt: Added.
 * fast/parser/document-write-during-load.html: Added.
 

TBR=aba...@webkit.org
Review URL: https://codereview.chromium.org/12287016

Modified Paths

branches/chromium/1410/Source/WebCore/dom/Document.cpp


Added Paths

branches/chromium/1410/LayoutTests/fast/parser/document-write-during-load-expected.txt
branches/chromium/1410/LayoutTests/fast/parser/document-write-during-load.html




Diff

Copied: branches/chromium/1410/LayoutTests/fast/parser/document-write-during-load-expected.txt (from rev 142492, trunk/LayoutTests/fast/parser/document-write-during-load-expected.txt) (0 => 143056)

--- branches/chromium/1410/LayoutTests/fast/parser/document-write-during-load-expected.txt	(rev 0)
+++ branches/chromium/1410/LayoutTests/fast/parser/document-write-during-load-expected.txt	2013-02-15 22:49:58 UTC (rev 143056)
@@ -0,0 +1,3 @@
+ALERT: Ready
+ALERT: PASS
+


Copied: branches/chromium/1410/LayoutTests/fast/parser/document-write-during-load.html (from rev 142492, trunk/LayoutTests/fast/parser/document-write-during-load.html) (0 => 143056)

--- branches/chromium/1410/LayoutTests/fast/parser/document-write-during-load.html	(rev 0)
+++ branches/chromium/1410/LayoutTests/fast/parser/document-write-during-load.html	2013-02-15 22:49:58 UTC (rev 143056)
@@ -0,0 +1,16 @@
+!DOCTYPE html
+script
+if (window.testRunner)
+testRunner.dumpAsText();
+/script
+div id=parent style=width: 200px; height: 200px;
+iframe id=iframe seamless src=""
+/div
+script
+window._onload_ = function () {
+window.iframe = document.getElementById(iframe);
+alert(Ready);
+window.iframe.contentDocument.write(!DOCTYPE htmlhtml style='width: 100px; height: 100px; background-color: green'/html);
+alert(PASS);
+}
+/script


Modified: branches/chromium/1410/Source/WebCore/dom/Document.cpp (143055 => 143056)

--- branches/chromium/1410/Source/WebCore/dom/Document.cpp	2013-02-15 22:48:00 UTC (rev 143055)
+++ branches/chromium/1410/Source/WebCore/dom/Document.cpp	2013-02-15 22:49:58 UTC (rev 143056)
@@ -5771,15 +5771,12 @@
 
 bool Document::hasActiveParser()
 {
-return m_activeParserCount || (m_parser  m_parser-processingData());
+return m_parser  m_parser-processingData();
 }
 
 void Document::decrementActiveParserCount()
 {
 --m_activeParserCount;
-if (!frame())
-return;
-frame()-loader()-checkLoadComplete();
 }
 
 void Document::setContextFeatures(PassRefPtrContextFeatures features)






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [142796] trunk/Source/WebCore

2013-02-13 Thread abarth
Title: [142796] trunk/Source/WebCore








Revision 142796
Author aba...@webkit.org
Date 2013-02-13 14:03:44 -0800 (Wed, 13 Feb 2013)


Log Message
Clean up some style nits in HTMLPreloadScanner
https://bugs.webkit.org/show_bug.cgi?id=109738

Reviewed by Tony Gentilcore.

This patch just fixes a few style nits I noticed when reading through
the code.

* html/parser/HTMLPreloadScanner.cpp:
(WebCore::StartTagScanner::StartTagScanner):
(WebCore::HTMLPreloadScanner::processPossibleStyleTag):
(WebCore::HTMLPreloadScanner::processPossibleBaseTag):
* html/parser/HTMLResourcePreloader.cpp:
(WebCore::PreloadRequest::isSafeToSendToAnotherThread):
* html/parser/HTMLResourcePreloader.h:
(PreloadRequest):
(WebCore::PreloadRequest::PreloadRequest):
(WebCore::HTMLResourcePreloader::HTMLResourcePreloader):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/html/parser/HTMLPreloadScanner.cpp
trunk/Source/WebCore/html/parser/HTMLResourcePreloader.cpp
trunk/Source/WebCore/html/parser/HTMLResourcePreloader.h




Diff

Modified: trunk/Source/WebCore/ChangeLog (142795 => 142796)

--- trunk/Source/WebCore/ChangeLog	2013-02-13 22:02:51 UTC (rev 142795)
+++ trunk/Source/WebCore/ChangeLog	2013-02-13 22:03:44 UTC (rev 142796)
@@ -1,3 +1,24 @@
+2013-02-13  Adam Barth  aba...@webkit.org
+
+Clean up some style nits in HTMLPreloadScanner
+https://bugs.webkit.org/show_bug.cgi?id=109738
+
+Reviewed by Tony Gentilcore.
+
+This patch just fixes a few style nits I noticed when reading through
+the code.
+
+* html/parser/HTMLPreloadScanner.cpp:
+(WebCore::StartTagScanner::StartTagScanner):
+(WebCore::HTMLPreloadScanner::processPossibleStyleTag):
+(WebCore::HTMLPreloadScanner::processPossibleBaseTag):
+* html/parser/HTMLResourcePreloader.cpp:
+(WebCore::PreloadRequest::isSafeToSendToAnotherThread):
+* html/parser/HTMLResourcePreloader.h:
+(PreloadRequest):
+(WebCore::PreloadRequest::PreloadRequest):
+(WebCore::HTMLResourcePreloader::HTMLResourcePreloader):
+
 2013-02-13  Sheriff Bot  webkit.review@gmail.com
 
 Unreviewed, rolling out r142747.


Modified: trunk/Source/WebCore/html/parser/HTMLPreloadScanner.cpp (142795 => 142796)

--- trunk/Source/WebCore/html/parser/HTMLPreloadScanner.cpp	2013-02-13 22:02:51 UTC (rev 142795)
+++ trunk/Source/WebCore/html/parser/HTMLPreloadScanner.cpp	2013-02-13 22:03:44 UTC (rev 142796)
@@ -55,7 +55,7 @@
 
 class StartTagScanner {
 public:
-explicit StartTagScanner(const AtomicString tagName, const HTMLToken::AttributeList attributes)
+StartTagScanner(const AtomicString tagName, const HTMLToken::AttributeList attributes)
 : m_tagName(tagName)
 , m_linkIsStyleSheet(false)
 , m_linkMediaAttributeIsScreen(true)
@@ -245,34 +245,36 @@
 bool HTMLPreloadScanner::processPossibleStyleTag(const AtomicString tagName, const HTMLToken token)
 {
 ASSERT(isStartOrEndTag(token));
-if (tagName == styleTag) {
-m_inStyle = isStartTag(token);
-if (!m_inStyle)
-m_cssScanner.reset();
-return true;
-}
-return false;
+if (tagName != styleTag)
+return false;
+
+m_inStyle = isStartTag(token);
+
+if (!m_inStyle)
+m_cssScanner.reset();
+
+return true;
 }
 
 bool HTMLPreloadScanner::processPossibleBaseTag(const AtomicString tagName, const HTMLToken token)
 {
 ASSERT(isStartTag(token));
-if (tagName == baseTag) {
-// The first base element is the one that wins.
-if (!m_predictedBaseElementURL.isEmpty())
-return true;
+if (tagName != baseTag)
+return false;
 
-for (HTMLToken::AttributeList::const_iterator iter = token.attributes().begin(); iter != token.attributes().end(); ++iter) {
-AtomicString attributeName(iter-name);
-if (attributeName == hrefAttr) {
-String hrefValue = StringImpl::create8BitIfPossible(iter-value);
-m_predictedBaseElementURL = KURL(m_documentURL, stripLeadingAndTrailingHTMLSpaces(hrefValue));
-break;
-}
+// The first base element is the one that wins.
+if (!m_predictedBaseElementURL.isEmpty())
+return true;
+
+for (HTMLToken::AttributeList::const_iterator iter = token.attributes().begin(); iter != token.attributes().end(); ++iter) {
+AtomicString attributeName(iter-name);
+if (attributeName == hrefAttr) {
+String hrefValue = StringImpl::create8BitIfPossible(iter-value);
+m_predictedBaseElementURL = KURL(m_documentURL, stripLeadingAndTrailingHTMLSpaces(hrefValue));
+break;
 }
-return true;
 }
-return false;
+return true;
 }
 
 void HTMLPreloadScanner::processToken(const HTMLToken token, VectorOwnPtrPreloadRequest  requests)


Modified: trunk/Source/WebCore/html/parser/HTMLResourcePreloader.cpp (142795 => 142796)

--- 

[webkit-changes] [142803] trunk/Source/WebCore

2013-02-13 Thread abarth
Title: [142803] trunk/Source/WebCore








Revision 142803
Author aba...@webkit.org
Date 2013-02-13 14:40:27 -0800 (Wed, 13 Feb 2013)


Log Message
CSSPreloadScanner should not depend on HTMLToken
https://bugs.webkit.org/show_bug.cgi?id=109742

Reviewed by Eric Seidel.

There's no need for the CSSPreloadScanner to depend on HTMLToken. On
the background thread, we'll likely want to use a CompactHTMLToken for
preload scanning, so this dependency is problematic. This patch also
teaches the CSSPreloadScanner how to scan LChars.

* html/parser/CSSPreloadScanner.cpp:
(WebCore::CSSPreloadScanner::~CSSPreloadScanner):
(WebCore):
(WebCore::CSSPreloadScanner::scan):
* html/parser/CSSPreloadScanner.h:
(CSSPreloadScanner):
* html/parser/HTMLPreloadScanner.cpp:
(WebCore::HTMLPreloadScanner::processToken):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/html/parser/CSSPreloadScanner.cpp
trunk/Source/WebCore/html/parser/CSSPreloadScanner.h
trunk/Source/WebCore/html/parser/HTMLPreloadScanner.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (142802 => 142803)

--- trunk/Source/WebCore/ChangeLog	2013-02-13 22:39:44 UTC (rev 142802)
+++ trunk/Source/WebCore/ChangeLog	2013-02-13 22:40:27 UTC (rev 142803)
@@ -1,3 +1,24 @@
+2013-02-13  Adam Barth  aba...@webkit.org
+
+CSSPreloadScanner should not depend on HTMLToken
+https://bugs.webkit.org/show_bug.cgi?id=109742
+
+Reviewed by Eric Seidel.
+
+There's no need for the CSSPreloadScanner to depend on HTMLToken. On
+the background thread, we'll likely want to use a CompactHTMLToken for
+preload scanning, so this dependency is problematic. This patch also
+teaches the CSSPreloadScanner how to scan LChars.
+
+* html/parser/CSSPreloadScanner.cpp:
+(WebCore::CSSPreloadScanner::~CSSPreloadScanner):
+(WebCore):
+(WebCore::CSSPreloadScanner::scan):
+* html/parser/CSSPreloadScanner.h:
+(CSSPreloadScanner):
+* html/parser/HTMLPreloadScanner.cpp:
+(WebCore::HTMLPreloadScanner::processToken):
+
 2013-02-13  Julien Chaffraix  jchaffr...@webkit.org
 
 [CSS Grid Layout] Adding or removing grid items doesn't properly recompute the track sizes


Modified: trunk/Source/WebCore/html/parser/CSSPreloadScanner.cpp (142802 => 142803)

--- trunk/Source/WebCore/html/parser/CSSPreloadScanner.cpp	2013-02-13 22:39:44 UTC (rev 142802)
+++ trunk/Source/WebCore/html/parser/CSSPreloadScanner.cpp	2013-02-13 22:40:27 UTC (rev 142803)
@@ -28,14 +28,8 @@
 #include config.h
 #include CSSPreloadScanner.h
 
-#include CachedCSSStyleSheet.h
-#include CachedResourceLoader.h
-#include CachedResourceRequest.h
 #include CachedResourceRequestInitiators.h
 #include HTMLParserIdioms.h
-#include HTMLToken.h
-#include wtf/Functional.h
-#include wtf/MainThread.h
 
 namespace WebCore {
 
@@ -45,6 +39,10 @@
 {
 }
 
+CSSPreloadScanner::~CSSPreloadScanner()
+{
+}
+
 void CSSPreloadScanner::reset()
 {
 m_state = Initial;
@@ -52,15 +50,22 @@
 m_ruleValue.clear();
 }
 
-void CSSPreloadScanner::scan(const HTMLToken token, VectorOwnPtrPreloadRequest  requests)
+void CSSPreloadScanner::scan(const UChar* begin, const UChar* end, VectorOwnPtrPreloadRequest  requests)
 {
 m_requests = requests;
-const HTMLToken::DataVector characters = token.characters();
-for (HTMLToken::DataVector::const_iterator iter = characters.begin(); iter != characters.end()  m_state != DoneParsingImportRules; ++iter)
-tokenize(*iter);
+for (const UChar* it = begin; it != end  m_state != DoneParsingImportRules; ++it)
+tokenize(*it);
 m_requests = 0;
 }
 
+void CSSPreloadScanner::scan(const LChar* begin, const LChar* end, VectorOwnPtrPreloadRequest  requests)
+{
+m_requests = requests;
+for (const LChar* it = begin; it != end  m_state != DoneParsingImportRules; ++it)
+tokenize(*it);
+m_requests = 0;
+}
+
 inline void CSSPreloadScanner::tokenize(UChar c)
 {
 // We are just interested in @import rules, no need for real tokenization here


Modified: trunk/Source/WebCore/html/parser/CSSPreloadScanner.h (142802 => 142803)

--- trunk/Source/WebCore/html/parser/CSSPreloadScanner.h	2013-02-13 22:39:44 UTC (rev 142802)
+++ trunk/Source/WebCore/html/parser/CSSPreloadScanner.h	2013-02-13 22:40:27 UTC (rev 142803)
@@ -28,21 +28,21 @@
 #define CSSPreloadScanner_h
 
 #include HTMLResourcePreloader.h
-#include wtf/WeakPtr.h
 #include wtf/text/StringBuilder.h
 
 namespace WebCore {
 
-class HTMLToken;
-
 class CSSPreloadScanner {
 WTF_MAKE_NONCOPYABLE(CSSPreloadScanner);
 public:
-explicit CSSPreloadScanner();
+CSSPreloadScanner();
+~CSSPreloadScanner();
 
 void reset();
-void scan(const HTMLToken, VectorOwnPtrPreloadRequest  requests);
 
+void scan(const UChar* begin, const UChar* end, VectorOwnPtrPreloadRequest );
+void scan(const LChar* begin, const LChar* end, VectorOwnPtrPreloadRequest );
+
 private:
 enum State {
 

[webkit-changes] [142807] trunk/Source/WebKit2

2013-02-13 Thread abarth
Title: [142807] trunk/Source/WebKit2








Revision 142807
Author aba...@webkit.org
Date 2013-02-13 14:54:11 -0800 (Wed, 13 Feb 2013)


Log Message
Remove bogus ASSERT in WebFrameProxy::didStartProvisionalLoad
https://bugs.webkit.org/show_bug.cgi?id=109733

Reviewed by Sam Weinig.

After http://trac.webkit.org/changeset/142555, this ASSERT is
triggering on these tests:

fast/dom/window-load-crash.html
fast/frames/seamless/seamless-hyperlink-named.html
fast/frames/seamless/seamless-hyperlink.html

The ASSERT appears to be bogus. This patch removes it.

* UIProcess/WebFrameProxy.cpp:
(WebKit::WebFrameProxy::didStartProvisionalLoad):

Modified Paths

trunk/Source/WebKit2/ChangeLog
trunk/Source/WebKit2/UIProcess/WebFrameProxy.cpp




Diff

Modified: trunk/Source/WebKit2/ChangeLog (142806 => 142807)

--- trunk/Source/WebKit2/ChangeLog	2013-02-13 22:46:05 UTC (rev 142806)
+++ trunk/Source/WebKit2/ChangeLog	2013-02-13 22:54:11 UTC (rev 142807)
@@ -1,3 +1,22 @@
+2013-02-13  Adam Barth  aba...@webkit.org
+
+Remove bogus ASSERT in WebFrameProxy::didStartProvisionalLoad
+https://bugs.webkit.org/show_bug.cgi?id=109733
+
+Reviewed by Sam Weinig.
+
+After http://trac.webkit.org/changeset/142555, this ASSERT is
+triggering on these tests:
+
+fast/dom/window-load-crash.html
+fast/frames/seamless/seamless-hyperlink-named.html
+fast/frames/seamless/seamless-hyperlink.html
+
+The ASSERT appears to be bogus. This patch removes it.
+
+* UIProcess/WebFrameProxy.cpp:
+(WebKit::WebFrameProxy::didStartProvisionalLoad):
+
 2013-02-13  Sam Weinig  s...@webkit.org
 
 Consolidate main functions in WebKit2 now that they are all identical


Modified: trunk/Source/WebKit2/UIProcess/WebFrameProxy.cpp (142806 => 142807)

--- trunk/Source/WebKit2/UIProcess/WebFrameProxy.cpp	2013-02-13 22:46:05 UTC (rev 142806)
+++ trunk/Source/WebKit2/UIProcess/WebFrameProxy.cpp	2013-02-13 22:54:11 UTC (rev 142807)
@@ -129,7 +129,6 @@
 
 void WebFrameProxy::didStartProvisionalLoad(const String url)
 {
-ASSERT(m_loadState == LoadStateFinished);
 ASSERT(m_provisionalURL.isEmpty());
 m_loadState = LoadStateProvisional;
 m_provisionalURL = url;






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [142822] trunk/Source/WebCore

2013-02-13 Thread abarth
Title: [142822] trunk/Source/WebCore








Revision 142822
Author aba...@webkit.org
Date 2013-02-13 16:56:47 -0800 (Wed, 13 Feb 2013)


Log Message
Factor HTMLTokenScanner out of HTMLPreloadScanner
https://bugs.webkit.org/show_bug.cgi?id=109754

Reviewed by Eric Seidel.

This patch is just a mechanical separation of the per-token scanning
logic from HTMLPreloadScanner into a separate class.
HTMLPreloadScanner's job is now to keep track of the input stream and
to pump the tokenizer.

This factorization class will let us use HTMLTokenScanner on the
background thread (once we finish making it thread-safe). In a follow
up patch, I'll move HTMLTokenScanner to its own file.

* html/parser/HTMLPreloadScanner.cpp:
(WebCore::HTMLTokenScanner::HTMLTokenScanner):
(WebCore::HTMLTokenScanner::~HTMLTokenScanner):
(WebCore::HTMLTokenScanner::processPossibleTemplateTag):
(WebCore::HTMLTokenScanner::processPossibleStyleTag):
(WebCore::HTMLTokenScanner::processPossibleBaseTag):
(WebCore::HTMLTokenScanner::scan):
(WebCore::HTMLPreloadScanner::HTMLPreloadScanner):
(WebCore):
(WebCore::HTMLPreloadScanner::~HTMLPreloadScanner):
(WebCore::HTMLPreloadScanner::appendToEnd):
(WebCore::HTMLPreloadScanner::scan):
* html/parser/HTMLPreloadScanner.h:
(HTMLTokenScanner):
(WebCore::HTMLTokenScanner::setPredictedBaseElementURL):
(HTMLPreloadScanner):
(WebCore):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/html/parser/HTMLPreloadScanner.cpp
trunk/Source/WebCore/html/parser/HTMLPreloadScanner.h




Diff

Modified: trunk/Source/WebCore/ChangeLog (142821 => 142822)

--- trunk/Source/WebCore/ChangeLog	2013-02-14 00:37:59 UTC (rev 142821)
+++ trunk/Source/WebCore/ChangeLog	2013-02-14 00:56:47 UTC (rev 142822)
@@ -1,3 +1,37 @@
+2013-02-13  Adam Barth  aba...@webkit.org
+
+Factor HTMLTokenScanner out of HTMLPreloadScanner
+https://bugs.webkit.org/show_bug.cgi?id=109754
+
+Reviewed by Eric Seidel.
+
+This patch is just a mechanical separation of the per-token scanning
+logic from HTMLPreloadScanner into a separate class.
+HTMLPreloadScanner's job is now to keep track of the input stream and
+to pump the tokenizer.
+
+This factorization class will let us use HTMLTokenScanner on the
+background thread (once we finish making it thread-safe). In a follow
+up patch, I'll move HTMLTokenScanner to its own file.
+
+* html/parser/HTMLPreloadScanner.cpp:
+(WebCore::HTMLTokenScanner::HTMLTokenScanner):
+(WebCore::HTMLTokenScanner::~HTMLTokenScanner):
+(WebCore::HTMLTokenScanner::processPossibleTemplateTag):
+(WebCore::HTMLTokenScanner::processPossibleStyleTag):
+(WebCore::HTMLTokenScanner::processPossibleBaseTag):
+(WebCore::HTMLTokenScanner::scan):
+(WebCore::HTMLPreloadScanner::HTMLPreloadScanner):
+(WebCore):
+(WebCore::HTMLPreloadScanner::~HTMLPreloadScanner):
+(WebCore::HTMLPreloadScanner::appendToEnd):
+(WebCore::HTMLPreloadScanner::scan):
+* html/parser/HTMLPreloadScanner.h:
+(HTMLTokenScanner):
+(WebCore::HTMLTokenScanner::setPredictedBaseElementURL):
+(HTMLPreloadScanner):
+(WebCore):
+
 2013-02-13  Elliott Sprehn  espr...@chromium.org
 
 ASSERT(!renderer()-needsLayout()) when calling Element::focus() with generated content


Modified: trunk/Source/WebCore/html/parser/HTMLPreloadScanner.cpp (142821 => 142822)

--- trunk/Source/WebCore/html/parser/HTMLPreloadScanner.cpp	2013-02-14 00:37:59 UTC (rev 142821)
+++ trunk/Source/WebCore/html/parser/HTMLPreloadScanner.cpp	2013-02-14 00:56:47 UTC (rev 142822)
@@ -191,44 +191,21 @@
 bool m_inputIsImage;
 };
 
-HTMLPreloadScanner::HTMLPreloadScanner(const HTMLParserOptions options, const KURL documentURL)
-: m_tokenizer(HTMLTokenizer::create(options))
+TokenPreloadScanner::TokenPreloadScanner(const KURL documentURL)
+: m_documentURL(documentURL)
 , m_inStyle(false)
-, m_documentURL(documentURL)
 #if ENABLE(TEMPLATE_ELEMENT)
 , m_templateCount(0)
 #endif
 {
 }
 
-void HTMLPreloadScanner::appendToEnd(const SegmentedString source)
+TokenPreloadScanner::~TokenPreloadScanner()
 {
-m_source.append(source);
 }
 
-// This function exists for convenience on the main thread and is not used by the background-thread preload scanner.
-void HTMLPreloadScanner::scan(HTMLResourcePreloader* preloader, const KURL startingBaseElementURL)
-{
-ASSERT(isMainThread()); // HTMLTokenizer::updateStateFor only works on the main thread.
-// When we start scanning, our best prediction of the baseElementURL is the real one!
-if (!startingBaseElementURL.isEmpty())
-m_predictedBaseElementURL = startingBaseElementURL;
-
-VectorOwnPtrPreloadRequest  requests;
-// Note: m_token is only used from this function and for the main thread.
-// All other functions are passed a token.
-while (m_tokenizer-nextToken(m_source, m_token)) {
-   

[webkit-changes] [142840] trunk/Source/WebCore

2013-02-13 Thread abarth
Title: [142840] trunk/Source/WebCore








Revision 142840
Author aba...@webkit.org
Date 2013-02-13 18:16:23 -0800 (Wed, 13 Feb 2013)


Log Message
StartTagScanner should be thread-safe
https://bugs.webkit.org/show_bug.cgi?id=109750

Reviewed by Eric Seidel.

This patch weens the StartTagScanner off AtomicString using two
techniques:

1) This patch creates an enum to represent the four tag names that the
   StartTagScanner needs to understand. Using an enum is better than
   using an AtomicString because we can use the enum on both the main
   thread and on the background thread.

2) For attributes, this patch uses threadSafeMatch. We're not able to
   use threadSafeMatch everywhere due to performance, but using it for
   attributes appears to be ok becaues we only call threadSafeMatch on
   the attributes of interesting tags.

I tested the performance of this patch using
PerformanceTests/Parser/html-parser.html and did not see any slowdown.
(There actually appeared to be a 1% speedup, but I'm attributing that
to noise.)

* html/parser/HTMLPreloadScanner.cpp:
(WebCore::identifierFor):
(WebCore):
(WebCore::inititatorFor):
(WebCore::StartTagScanner::StartTagScanner):
(WebCore::StartTagScanner::processAttributes):
(StartTagScanner):
(WebCore::StartTagScanner::createPreloadRequest):
(WebCore::StartTagScanner::processAttribute):
(WebCore::StartTagScanner::charset):
(WebCore::StartTagScanner::resourceType):
(WebCore::StartTagScanner::shouldPreload):
(WebCore::HTMLPreloadScanner::processToken):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/html/parser/HTMLPreloadScanner.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (142839 => 142840)

--- trunk/Source/WebCore/ChangeLog	2013-02-14 02:11:39 UTC (rev 142839)
+++ trunk/Source/WebCore/ChangeLog	2013-02-14 02:16:23 UTC (rev 142840)
@@ -1,3 +1,42 @@
+2013-02-13  Adam Barth  aba...@webkit.org
+
+StartTagScanner should be thread-safe
+https://bugs.webkit.org/show_bug.cgi?id=109750
+
+Reviewed by Eric Seidel.
+
+This patch weens the StartTagScanner off AtomicString using two
+techniques:
+
+1) This patch creates an enum to represent the four tag names that the
+   StartTagScanner needs to understand. Using an enum is better than
+   using an AtomicString because we can use the enum on both the main
+   thread and on the background thread.
+
+2) For attributes, this patch uses threadSafeMatch. We're not able to
+   use threadSafeMatch everywhere due to performance, but using it for
+   attributes appears to be ok becaues we only call threadSafeMatch on
+   the attributes of interesting tags.
+
+I tested the performance of this patch using
+PerformanceTests/Parser/html-parser.html and did not see any slowdown.
+(There actually appeared to be a 1% speedup, but I'm attributing that
+to noise.)
+
+* html/parser/HTMLPreloadScanner.cpp:
+(WebCore::identifierFor):
+(WebCore):
+(WebCore::inititatorFor):
+(WebCore::StartTagScanner::StartTagScanner):
+(WebCore::StartTagScanner::processAttributes):
+(StartTagScanner):
+(WebCore::StartTagScanner::createPreloadRequest):
+(WebCore::StartTagScanner::processAttribute):
+(WebCore::StartTagScanner::charset):
+(WebCore::StartTagScanner::resourceType):
+(WebCore::StartTagScanner::shouldPreload):
+(WebCore::HTMLPreloadScanner::processToken):
+
 2013-02-13  Huang Dongsung  luxte...@company100.net
 
 Coordinated Graphics: a long page is scaled vertically while loading.


Modified: trunk/Source/WebCore/html/parser/HTMLPreloadScanner.cpp (142839 => 142840)

--- trunk/Source/WebCore/html/parser/HTMLPreloadScanner.cpp	2013-02-14 02:11:39 UTC (rev 142839)
+++ trunk/Source/WebCore/html/parser/HTMLPreloadScanner.cpp	2013-02-14 02:16:23 UTC (rev 142840)
@@ -53,51 +53,104 @@
 return token.type() == HTMLToken::EndTag || isStartTag(token);
 }
 
+enum HTMLTagIdentifier {
+ImgTagId,
+InputTagId,
+LinkTagId,
+ScriptTagId,
+UnknownTagId,
+};
+
+static HTMLTagIdentifier identifierFor(const AtomicString tagName)
+{
+if (tagName == imgTag)
+return ImgTagId;
+if (tagName == inputTag)
+return InputTagId;
+if (tagName == linkTag)
+return LinkTagId;
+if (tagName == scriptTag)
+return ScriptTagId;
+return UnknownTagId;
+}
+
+static String inititatorFor(HTMLTagIdentifier tagId)
+{
+switch (tagId) {
+case ImgTagId:
+return img;
+case InputTagId:
+return input;
+case LinkTagId:
+return link;
+case ScriptTagId:
+return script;
+case UnknownTagId:
+ASSERT_NOT_REACHED();
+return unknown;
+}
+ASSERT_NOT_REACHED();
+return unknown;
+}
+
 class StartTagScanner {
 public:
-StartTagScanner(const AtomicString tagName, const 

[webkit-changes] [142843] trunk/Source/WebCore

2013-02-13 Thread abarth
Title: [142843] trunk/Source/WebCore








Revision 142843
Author aba...@webkit.org
Date 2013-02-13 19:31:58 -0800 (Wed, 13 Feb 2013)


Log Message
TokenPreloadScanner should be (mostly!) thread-safe
https://bugs.webkit.org/show_bug.cgi?id=109760

Reviewed by Eric Seidel.

This patch makes the bulk of TokenPreloadScanner thread-safe.  The one
remaining wart is processPossibleBaseTag because it wants to grub
around in the base tag's attributes. I have a plan for that, but it's
going to need to wait for the next patch.

* html/parser/HTMLPreloadScanner.cpp:
(WebCore::isStartTag):
(WebCore::isStartOrEndTag):
(WebCore::TokenPreloadScanner::identifierFor):
(WebCore::TokenPreloadScanner::inititatorFor):
(WebCore::TokenPreloadScanner::StartTagScanner::StartTagScanner):
(WebCore::TokenPreloadScanner::StartTagScanner::processAttributes):
(TokenPreloadScanner::StartTagScanner):
(WebCore::TokenPreloadScanner::processPossibleTemplateTag):
(WebCore::TokenPreloadScanner::processPossibleStyleTag):
(WebCore::TokenPreloadScanner::processPossibleBaseTag):
(WebCore::TokenPreloadScanner::scan):
(WebCore::HTMLPreloadScanner::scan):
* html/parser/HTMLPreloadScanner.h:
(WebCore):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/html/parser/HTMLPreloadScanner.cpp
trunk/Source/WebCore/html/parser/HTMLPreloadScanner.h




Diff

Modified: trunk/Source/WebCore/ChangeLog (142842 => 142843)

--- trunk/Source/WebCore/ChangeLog	2013-02-14 02:36:01 UTC (rev 142842)
+++ trunk/Source/WebCore/ChangeLog	2013-02-14 03:31:58 UTC (rev 142843)
@@ -1,5 +1,33 @@
 2013-02-13  Adam Barth  aba...@webkit.org
 
+TokenPreloadScanner should be (mostly!) thread-safe
+https://bugs.webkit.org/show_bug.cgi?id=109760
+
+Reviewed by Eric Seidel.
+
+This patch makes the bulk of TokenPreloadScanner thread-safe.  The one
+remaining wart is processPossibleBaseTag because it wants to grub
+around in the base tag's attributes. I have a plan for that, but it's
+going to need to wait for the next patch.
+
+* html/parser/HTMLPreloadScanner.cpp:
+(WebCore::isStartTag):
+(WebCore::isStartOrEndTag):
+(WebCore::TokenPreloadScanner::identifierFor):
+(WebCore::TokenPreloadScanner::inititatorFor):
+(WebCore::TokenPreloadScanner::StartTagScanner::StartTagScanner):
+(WebCore::TokenPreloadScanner::StartTagScanner::processAttributes):
+(TokenPreloadScanner::StartTagScanner):
+(WebCore::TokenPreloadScanner::processPossibleTemplateTag):
+(WebCore::TokenPreloadScanner::processPossibleStyleTag):
+(WebCore::TokenPreloadScanner::processPossibleBaseTag):
+(WebCore::TokenPreloadScanner::scan):
+(WebCore::HTMLPreloadScanner::scan):
+* html/parser/HTMLPreloadScanner.h:
+(WebCore):
+
+2013-02-13  Adam Barth  aba...@webkit.org
+
 StartTagScanner should be thread-safe
 https://bugs.webkit.org/show_bug.cgi?id=109750
 


Modified: trunk/Source/WebCore/html/parser/HTMLPreloadScanner.cpp (142842 => 142843)

--- trunk/Source/WebCore/html/parser/HTMLPreloadScanner.cpp	2013-02-14 02:36:01 UTC (rev 142842)
+++ trunk/Source/WebCore/html/parser/HTMLPreloadScanner.cpp	2013-02-14 03:31:58 UTC (rev 142843)
@@ -43,25 +43,17 @@
 
 using namespace HTMLNames;
 
-static bool isStartTag(const HTMLToken token)
+static bool isStartTag(HTMLToken::Type type)
 {
-return token.type() == HTMLToken::StartTag;
+return type == HTMLToken::StartTag;
 }
 
-static bool isStartOrEndTag(const HTMLToken token)
+static bool isStartOrEndTag(HTMLToken::Type type)
 {
-return token.type() == HTMLToken::EndTag || isStartTag(token);
+return type == HTMLToken::EndTag || isStartTag(type);
 }
 
-enum HTMLTagIdentifier {
-ImgTagId,
-InputTagId,
-LinkTagId,
-ScriptTagId,
-UnknownTagId,
-};
-
-static HTMLTagIdentifier identifierFor(const AtomicString tagName)
+TokenPreloadScanner::TagId TokenPreloadScanner::identifierFor(const AtomicString tagName)
 {
 if (tagName == imgTag)
 return ImgTagId;
@@ -71,10 +63,16 @@
 return LinkTagId;
 if (tagName == scriptTag)
 return ScriptTagId;
+if (tagName == styleTag)
+return StyleTagId;
+if (tagName == baseTag)
+return BaseTagId;
+if (tagName == templateTag)
+return TemplateTagId;
 return UnknownTagId;
 }
 
-static String inititatorFor(HTMLTagIdentifier tagId)
+String TokenPreloadScanner::inititatorFor(TagId tagId)
 {
 switch (tagId) {
 case ImgTagId:
@@ -86,6 +84,9 @@
 case ScriptTagId:
 return script;
 case UnknownTagId:
+case StyleTagId:
+case BaseTagId:
+case TemplateTagId:
 ASSERT_NOT_REACHED();
 return unknown;
 }
@@ -93,9 +94,9 @@
 return unknown;
 }
 
-class StartTagScanner {
+class TokenPreloadScanner::StartTagScanner {
 public:
-explicit StartTagScanner(HTMLTagIdentifier tagId)
+explicit StartTagScanner(TagId 

[webkit-changes] [142648] trunk/Source/WebCore

2013-02-12 Thread abarth
Title: [142648] trunk/Source/WebCore








Revision 142648
Author aba...@webkit.org
Date 2013-02-12 11:39:38 -0800 (Tue, 12 Feb 2013)


Log Message
BackgroundHTMLParser::resumeFrom should take a struct
https://bugs.webkit.org/show_bug.cgi?id=109598

Reviewed by Eric Seidel.

This patch is purely a syntatic change that paves the way for fixing
the partial-entity document.write tests. To fix those tests, we'll need
to pass more information to resumeFrom, but we're hitting the argument
limits in Functional.h. Rather than adding yet more arguments, this
patch moves to a single argument that's a struct.

* html/parser/BackgroundHTMLParser.cpp:
(WebCore::BackgroundHTMLParser::resumeFrom):
* html/parser/BackgroundHTMLParser.h:
(Checkpoint):
(BackgroundHTMLParser):
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::didFailSpeculation):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/html/parser/BackgroundHTMLParser.cpp
trunk/Source/WebCore/html/parser/BackgroundHTMLParser.h
trunk/Source/WebCore/html/parser/HTMLDocumentParser.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (142647 => 142648)

--- trunk/Source/WebCore/ChangeLog	2013-02-12 19:35:01 UTC (rev 142647)
+++ trunk/Source/WebCore/ChangeLog	2013-02-12 19:39:38 UTC (rev 142648)
@@ -1,3 +1,24 @@
+2013-02-12  Adam Barth  aba...@webkit.org
+
+BackgroundHTMLParser::resumeFrom should take a struct
+https://bugs.webkit.org/show_bug.cgi?id=109598
+
+Reviewed by Eric Seidel.
+
+This patch is purely a syntatic change that paves the way for fixing
+the partial-entity document.write tests. To fix those tests, we'll need
+to pass more information to resumeFrom, but we're hitting the argument
+limits in Functional.h. Rather than adding yet more arguments, this
+patch moves to a single argument that's a struct.
+
+* html/parser/BackgroundHTMLParser.cpp:
+(WebCore::BackgroundHTMLParser::resumeFrom):
+* html/parser/BackgroundHTMLParser.h:
+(Checkpoint):
+(BackgroundHTMLParser):
+* html/parser/HTMLDocumentParser.cpp:
+(WebCore::HTMLDocumentParser::didFailSpeculation):
+
 2013-02-12  Elliott Sprehn  espr...@chromium.org
 
 rootRenderer in FrameView is really RenderView


Modified: trunk/Source/WebCore/html/parser/BackgroundHTMLParser.cpp (142647 => 142648)

--- trunk/Source/WebCore/html/parser/BackgroundHTMLParser.cpp	2013-02-12 19:35:01 UTC (rev 142647)
+++ trunk/Source/WebCore/html/parser/BackgroundHTMLParser.cpp	2013-02-12 19:39:38 UTC (rev 142648)
@@ -76,12 +76,12 @@
 pumpTokenizer();
 }
 
-void BackgroundHTMLParser::resumeFrom(const WeakPtrHTMLDocumentParser parser, PassOwnPtrHTMLToken token, PassOwnPtrHTMLTokenizer tokenizer, HTMLInputCheckpoint checkpoint)
+void BackgroundHTMLParser::resumeFrom(PassOwnPtrCheckpoint checkpoint)
 {
-m_parser = parser;
-m_token = token;
-m_tokenizer = tokenizer;
-m_input.rewindTo(checkpoint);
+m_parser = checkpoint-parser;
+m_token = checkpoint-token.release();
+m_tokenizer = checkpoint-tokenizer.release();
+m_input.rewindTo(checkpoint-inputCheckpoint);
 pumpTokenizer();
 }
 


Modified: trunk/Source/WebCore/html/parser/BackgroundHTMLParser.h (142647 => 142648)

--- trunk/Source/WebCore/html/parser/BackgroundHTMLParser.h	2013-02-12 19:35:01 UTC (rev 142647)
+++ trunk/Source/WebCore/html/parser/BackgroundHTMLParser.h	2013-02-12 19:39:38 UTC (rev 142648)
@@ -53,8 +53,15 @@
 // Caller must free by calling stop().
 }
 
+struct Checkpoint {
+WeakPtrHTMLDocumentParser parser;
+OwnPtrHTMLToken token;
+OwnPtrHTMLTokenizer tokenizer;
+HTMLInputCheckpoint inputCheckpoint;
+};
+
 void append(const String);
-void resumeFrom(const WeakPtrHTMLDocumentParser, PassOwnPtrHTMLToken, PassOwnPtrHTMLTokenizer, HTMLInputCheckpoint);
+void resumeFrom(PassOwnPtrCheckpoint);
 void finish();
 void stop();
 


Modified: trunk/Source/WebCore/html/parser/HTMLDocumentParser.cpp (142647 => 142648)

--- trunk/Source/WebCore/html/parser/HTMLDocumentParser.cpp	2013-02-12 19:35:01 UTC (rev 142647)
+++ trunk/Source/WebCore/html/parser/HTMLDocumentParser.cpp	2013-02-12 19:39:38 UTC (rev 142648)
@@ -307,8 +307,13 @@
 m_weakFactory.revokeAll();
 m_speculations.clear();
 
-HTMLParserThread::shared()-postTask(bind(BackgroundHTMLParser::resumeFrom,
-m_backgroundParser, m_weakFactory.createWeakPtr(), token, tokenizer, m_currentChunk-checkpoint));
+OwnPtrBackgroundHTMLParser::Checkpoint checkpoint = adoptPtr(new BackgroundHTMLParser::Checkpoint);
+checkpoint-parser = m_weakFactory.createWeakPtr();
+checkpoint-token = token;
+checkpoint-tokenizer = tokenizer;
+checkpoint-inputCheckpoint = m_currentChunk-checkpoint;
+
+HTMLParserThread::shared()-postTask(bind(BackgroundHTMLParser::resumeFrom, m_backgroundParser, checkpoint.release()));
 }
 
 void 

[webkit-changes] [142673] trunk/Source/WebCore

2013-02-12 Thread abarth
Title: [142673] trunk/Source/WebCore








Revision 142673
Author aba...@webkit.org
Date 2013-02-12 14:44:25 -0800 (Tue, 12 Feb 2013)


Log Message
Threaded HTML parser should pass the remaining fast/tokenizer tests
https://bugs.webkit.org/show_bug.cgi?id=109607

Reviewed by Eric Seidel.

This patch fixes some edge cases involving document.write. Previously,
we would drop input characters on the floor if the tokenizer wasn't
able to consume them synchronously. In this patch, we send the unparsed
characters to the background thread for consumption after rewinding the
input stream.

* html/parser/BackgroundHTMLInputStream.cpp:
(WebCore::BackgroundHTMLInputStream::rewindTo):
* html/parser/BackgroundHTMLInputStream.h:
(BackgroundHTMLInputStream):
* html/parser/BackgroundHTMLParser.cpp:
(WebCore::BackgroundHTMLParser::resumeFrom):
* html/parser/BackgroundHTMLParser.h:
(Checkpoint):
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::canTakeNextToken):
(WebCore::HTMLDocumentParser::didFailSpeculation):
(WebCore::HTMLDocumentParser::pumpTokenizer):
(WebCore::HTMLDocumentParser::finish):
* html/parser/HTMLInputStream.h:
(WebCore::HTMLInputStream::closeWithoutMarkingEndOfFile):
(HTMLInputStream):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/html/parser/BackgroundHTMLInputStream.cpp
trunk/Source/WebCore/html/parser/BackgroundHTMLInputStream.h
trunk/Source/WebCore/html/parser/BackgroundHTMLParser.cpp
trunk/Source/WebCore/html/parser/BackgroundHTMLParser.h
trunk/Source/WebCore/html/parser/HTMLDocumentParser.cpp
trunk/Source/WebCore/html/parser/HTMLInputStream.h




Diff

Modified: trunk/Source/WebCore/ChangeLog (142672 => 142673)

--- trunk/Source/WebCore/ChangeLog	2013-02-12 22:17:36 UTC (rev 142672)
+++ trunk/Source/WebCore/ChangeLog	2013-02-12 22:44:25 UTC (rev 142673)
@@ -1,3 +1,33 @@
+2013-02-12  Adam Barth  aba...@webkit.org
+
+Threaded HTML parser should pass the remaining fast/tokenizer tests
+https://bugs.webkit.org/show_bug.cgi?id=109607
+
+Reviewed by Eric Seidel.
+
+This patch fixes some edge cases involving document.write. Previously,
+we would drop input characters on the floor if the tokenizer wasn't
+able to consume them synchronously. In this patch, we send the unparsed
+characters to the background thread for consumption after rewinding the
+input stream.
+
+* html/parser/BackgroundHTMLInputStream.cpp:
+(WebCore::BackgroundHTMLInputStream::rewindTo):
+* html/parser/BackgroundHTMLInputStream.h:
+(BackgroundHTMLInputStream):
+* html/parser/BackgroundHTMLParser.cpp:
+(WebCore::BackgroundHTMLParser::resumeFrom):
+* html/parser/BackgroundHTMLParser.h:
+(Checkpoint):
+* html/parser/HTMLDocumentParser.cpp:
+(WebCore::HTMLDocumentParser::canTakeNextToken):
+(WebCore::HTMLDocumentParser::didFailSpeculation):
+(WebCore::HTMLDocumentParser::pumpTokenizer):
+(WebCore::HTMLDocumentParser::finish):
+* html/parser/HTMLInputStream.h:
+(WebCore::HTMLInputStream::closeWithoutMarkingEndOfFile):
+(HTMLInputStream):
+
 2013-02-12  Csaba Osztrogonác  o...@webkit.org
 
 Unreviewed buildfix for !ENABLE(INSPECTOR) platforms after r142654.


Modified: trunk/Source/WebCore/html/parser/BackgroundHTMLInputStream.cpp (142672 => 142673)

--- trunk/Source/WebCore/html/parser/BackgroundHTMLInputStream.cpp	2013-02-12 22:17:36 UTC (rev 142672)
+++ trunk/Source/WebCore/html/parser/BackgroundHTMLInputStream.cpp	2013-02-12 22:44:25 UTC (rev 142673)
@@ -53,18 +53,28 @@
 return checkpoint;
 }
 
-void BackgroundHTMLInputStream::rewindTo(HTMLInputCheckpoint checkpointIndex)
+void BackgroundHTMLInputStream::rewindTo(HTMLInputCheckpoint checkpointIndex, const String unparsedInput)
 {
+ASSERT(checkpointIndex  m_checkpoints.size()); // If this ASSERT fires, checkpointIndex is invalid.
 const Checkpoint checkpoint = m_checkpoints[checkpointIndex];
 
 bool isClosed = m_current.isClosed();
 
 m_current = checkpoint.input;
+
 for (size_t i = checkpoint.numberOfSegmentsAlreadyAppended; i  m_segments.size(); ++i)
 m_current.append(SegmentedString(m_segments[i]));
 
+if (!unparsedInput.isEmpty())
+m_current.prepend(SegmentedString(unparsedInput));
+
 if (isClosed  !m_current.isClosed())
 m_current.close();
+
+// FIXME: We should be able to actively invalidate all the outstanding checkpoints
+// by clearing m_segments and m_checkpoints, but that causes
+// fast/tokenizer/write-before-load.html to hit the ASSERT at the beginning of
+// this function.
 }
 
 }


Modified: trunk/Source/WebCore/html/parser/BackgroundHTMLInputStream.h (142672 => 142673)

--- trunk/Source/WebCore/html/parser/BackgroundHTMLInputStream.h	2013-02-12 22:17:36 UTC (rev 142672)
+++ trunk/Source/WebCore/html/parser/BackgroundHTMLInputStream.h	2013-02-12 22:44:25 UTC (rev 

[webkit-changes] [142492] trunk

2013-02-11 Thread abarth
Title: [142492] trunk








Revision 142492
Author aba...@webkit.org
Date 2013-02-11 11:48:56 -0800 (Mon, 11 Feb 2013)


Log Message
document.write during window.onload can trigger DumpRenderTree to dump the render tree
https://bugs.webkit.org/show_bug.cgi?id=109465

Reviewed by Eric Seidel.

Source/WebCore:

This patch is a partial revert of
http://trac.webkit.org/changeset/142378. It's not safe to call
checkComplete during the load event. We'll need to find another way of
calling checkComplete at the right time.

Test: fast/parser/document-write-during-load.html

* dom/Document.cpp:
(WebCore::Document::decrementActiveParserCount):

LayoutTests:

* fast/parser/document-write-during-load-expected.txt: Added.
* fast/parser/document-write-during-load.html: Added.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/dom/Document.cpp


Added Paths

trunk/LayoutTests/fast/parser/document-write-during-load-expected.txt
trunk/LayoutTests/fast/parser/document-write-during-load.html




Diff

Modified: trunk/LayoutTests/ChangeLog (142491 => 142492)

--- trunk/LayoutTests/ChangeLog	2013-02-11 19:21:10 UTC (rev 142491)
+++ trunk/LayoutTests/ChangeLog	2013-02-11 19:48:56 UTC (rev 142492)
@@ -1,3 +1,13 @@
+2013-02-11  Adam Barth  aba...@webkit.org
+
+document.write during window.onload can trigger DumpRenderTree to dump the render tree
+https://bugs.webkit.org/show_bug.cgi?id=109465
+
+Reviewed by Eric Seidel.
+
+* fast/parser/document-write-during-load-expected.txt: Added.
+* fast/parser/document-write-during-load.html: Added.
+
 2013-02-11  Christophe Dumez  ch.du...@sisa.samsung.com
 
 Unreviewed EFL gardening.


Added: trunk/LayoutTests/fast/parser/document-write-during-load-expected.txt (0 => 142492)

--- trunk/LayoutTests/fast/parser/document-write-during-load-expected.txt	(rev 0)
+++ trunk/LayoutTests/fast/parser/document-write-during-load-expected.txt	2013-02-11 19:48:56 UTC (rev 142492)
@@ -0,0 +1,3 @@
+ALERT: Ready
+ALERT: PASS
+


Added: trunk/LayoutTests/fast/parser/document-write-during-load.html (0 => 142492)

--- trunk/LayoutTests/fast/parser/document-write-during-load.html	(rev 0)
+++ trunk/LayoutTests/fast/parser/document-write-during-load.html	2013-02-11 19:48:56 UTC (rev 142492)
@@ -0,0 +1,16 @@
+!DOCTYPE html
+script
+if (window.testRunner)
+testRunner.dumpAsText();
+/script
+div id=parent style=width: 200px; height: 200px;
+iframe id=iframe seamless src=""
+/div
+script
+window._onload_ = function () {
+window.iframe = document.getElementById(iframe);
+alert(Ready);
+window.iframe.contentDocument.write(!DOCTYPE htmlhtml style='width: 100px; height: 100px; background-color: green'/html);
+alert(PASS);
+}
+/script


Modified: trunk/Source/WebCore/ChangeLog (142491 => 142492)

--- trunk/Source/WebCore/ChangeLog	2013-02-11 19:21:10 UTC (rev 142491)
+++ trunk/Source/WebCore/ChangeLog	2013-02-11 19:48:56 UTC (rev 142492)
@@ -1,3 +1,20 @@
+2013-02-11  Adam Barth  aba...@webkit.org
+
+document.write during window.onload can trigger DumpRenderTree to dump the render tree
+https://bugs.webkit.org/show_bug.cgi?id=109465
+
+Reviewed by Eric Seidel.
+
+This patch is a partial revert of
+http://trac.webkit.org/changeset/142378. It's not safe to call
+checkComplete during the load event. We'll need to find another way of
+calling checkComplete at the right time.
+
+Test: fast/parser/document-write-during-load.html
+
+* dom/Document.cpp:
+(WebCore::Document::decrementActiveParserCount):
+
 2013-02-11  Andrey Kosyakov  ca...@chromium.org
 
 Web Inspector: Timeline: invalidate and force locations are same for Layout records caused by style recalculaiton


Modified: trunk/Source/WebCore/dom/Document.cpp (142491 => 142492)

--- trunk/Source/WebCore/dom/Document.cpp	2013-02-11 19:21:10 UTC (rev 142491)
+++ trunk/Source/WebCore/dom/Document.cpp	2013-02-11 19:48:56 UTC (rev 142492)
@@ -5771,15 +5771,12 @@
 
 bool Document::hasActiveParser()
 {
-return m_activeParserCount || (m_parser  m_parser-processingData());
+return m_parser  m_parser-processingData();
 }
 
 void Document::decrementActiveParserCount()
 {
 --m_activeParserCount;
-if (!frame())
-return;
-frame()-loader()-checkLoadComplete();
 }
 
 void Document::setContextFeatures(PassRefPtrContextFeatures features)






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [142510] trunk/LayoutTests

2013-02-11 Thread abarth
Title: [142510] trunk/LayoutTests








Revision 142510
Author aba...@webkit.org
Date 2013-02-11 13:48:33 -0800 (Mon, 11 Feb 2013)


Log Message
Remove failure expectation now that this test is passing.

* platform/chromium/TestExpectations:

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/platform/chromium/TestExpectations




Diff

Modified: trunk/LayoutTests/ChangeLog (142509 => 142510)

--- trunk/LayoutTests/ChangeLog	2013-02-11 21:41:01 UTC (rev 142509)
+++ trunk/LayoutTests/ChangeLog	2013-02-11 21:48:33 UTC (rev 142510)
@@ -1,3 +1,9 @@
+2013-02-11  Adam Barth  aba...@webkit.org
+
+Remove failure expectation now that this test is passing.
+
+* platform/chromium/TestExpectations:
+
 2013-02-11  Benjamin Poulain  benja...@webkit.org
 
 Kill TestRunner::setMinimumTimerInterval; implement the feature with InternalSettings


Modified: trunk/LayoutTests/platform/chromium/TestExpectations (142509 => 142510)

--- trunk/LayoutTests/platform/chromium/TestExpectations	2013-02-11 21:41:01 UTC (rev 142509)
+++ trunk/LayoutTests/platform/chromium/TestExpectations	2013-02-11 21:48:33 UTC (rev 142510)
@@ -1076,8 +1076,6 @@
 webkit.org/b/60109 [ Win Linux Mac Release ] inspector/elements/edit-dom-actions.html [ Pass Slow ]
 webkit.org/b/60109 [ Win Mac Debug ] inspector/elements/edit-dom-actions.html [ Skip ]
 
-webkit.org/b/109391 fast/frames/seamless/seamless-inherited-origin.html [ Failure ]
-
 webkit.org/b/90488 [ Mac Debug ] inspector/elements/edit-style-attribute.html [ Pass Timeout ]
 
 webkit.org/b/74654 http/tests/inspector/network/network-worker.html
@@ -4357,7 +4355,6 @@
 webkit.org/b/109283 [ MountainLion ] fast/regions/selecting-text-through-different-region-flows.html [ ImageOnlyFailure ]
 
 webkit.org/b/109262 [ Debug SnowLeopard ] fast/table/table-cell-before-after-content-around-table-row.html [ Crash Pass ]
-webkit.org/b/109376 [ Debug ] fast/frames/seamless/seamless-inherited-origin.html [ Failure ]
 webkit.org/b/109312 [ Win ] fast/canvas/canvas-drawImage-shadow.html [ Pass Failure ]
 webkit.org/b/109312 [ Win ] platform/chromium/virtual/gpu/fast/canvas/canvas-drawImage-shadow.html [ Pass Failure ]
 






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [142525] trunk

2013-02-11 Thread abarth
Title: [142525] trunk








Revision 142525
Author aba...@webkit.org
Date 2013-02-11 15:11:24 -0800 (Mon, 11 Feb 2013)


Log Message
The threaded HTML parser should pass all the fast/parser tests
https://bugs.webkit.org/show_bug.cgi?id=109486

Reviewed by Tony Gentilcore.

Source/WebCore:

This patch fixes the last two test failures in fast/parser, which were
crashes caused by not having a tokenizer when document.close() was
called. (The tokenizer is created lazily by calls to document.write,
which might not happen before document.close).

fast/parser/document-close-iframe-load.html
fast/parser/document-close-nested-iframe-load.html

In addition, I've added a new test to make sure we flush the tokenizer
properly in these cases.

Test: fast/parser/document-close-iframe-load-partial-entity.html

* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::prepareToStopParsing):
(WebCore::HTMLDocumentParser::pumpTokenizer):

LayoutTests:

* fast/parser/document-close-iframe-load-partial-entity-expected.txt: Added.
* fast/parser/document-close-iframe-load-partial-entity.html: Added.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/html/parser/HTMLDocumentParser.cpp


Added Paths

trunk/LayoutTests/fast/parser/document-close-iframe-load-partial-entity-expected.txt
trunk/LayoutTests/fast/parser/document-close-iframe-load-partial-entity.html




Diff

Modified: trunk/LayoutTests/ChangeLog (142524 => 142525)

--- trunk/LayoutTests/ChangeLog	2013-02-11 23:07:43 UTC (rev 142524)
+++ trunk/LayoutTests/ChangeLog	2013-02-11 23:11:24 UTC (rev 142525)
@@ -1,3 +1,13 @@
+2013-02-11  Adam Barth  aba...@webkit.org
+
+The threaded HTML parser should pass all the fast/parser tests
+https://bugs.webkit.org/show_bug.cgi?id=109486
+
+Reviewed by Tony Gentilcore.
+
+* fast/parser/document-close-iframe-load-partial-entity-expected.txt: Added.
+* fast/parser/document-close-iframe-load-partial-entity.html: Added.
+
 2013-02-11  Julien Chaffraix  jchaffr...@webkit.org
 
 Unreviewed Chromium rebaselining after r142500.


Added: trunk/LayoutTests/fast/parser/document-close-iframe-load-partial-entity-expected.txt (0 => 142525)

--- trunk/LayoutTests/fast/parser/document-close-iframe-load-partial-entity-expected.txt	(rev 0)
+++ trunk/LayoutTests/fast/parser/document-close-iframe-load-partial-entity-expected.txt	2013-02-11 23:11:24 UTC (rev 142525)
@@ -0,0 +1,2 @@
+ALERT: This test passes if the text g appears below.
+g


Added: trunk/LayoutTests/fast/parser/document-close-iframe-load-partial-entity.html (0 => 142525)

--- trunk/LayoutTests/fast/parser/document-close-iframe-load-partial-entity.html	(rev 0)
+++ trunk/LayoutTests/fast/parser/document-close-iframe-load-partial-entity.html	2013-02-11 23:11:24 UTC (rev 142525)
@@ -0,0 +1,7 @@
+script
+if (window.testRunner)
+testRunner.dumpAsText();
+alert('This test passes if the text g appears below.');
+/script
+This test passes if it doesn't crash.
+iframe _onload_=document.open();document.write('g');document.close(); 


Modified: trunk/Source/WebCore/ChangeLog (142524 => 142525)

--- trunk/Source/WebCore/ChangeLog	2013-02-11 23:07:43 UTC (rev 142524)
+++ trunk/Source/WebCore/ChangeLog	2013-02-11 23:11:24 UTC (rev 142525)
@@ -1,3 +1,27 @@
+2013-02-11  Adam Barth  aba...@webkit.org
+
+The threaded HTML parser should pass all the fast/parser tests
+https://bugs.webkit.org/show_bug.cgi?id=109486
+
+Reviewed by Tony Gentilcore.
+
+This patch fixes the last two test failures in fast/parser, which were
+crashes caused by not having a tokenizer when document.close() was
+called. (The tokenizer is created lazily by calls to document.write,
+which might not happen before document.close).
+
+fast/parser/document-close-iframe-load.html
+fast/parser/document-close-nested-iframe-load.html
+
+In addition, I've added a new test to make sure we flush the tokenizer
+properly in these cases.
+
+Test: fast/parser/document-close-iframe-load-partial-entity.html
+
+* html/parser/HTMLDocumentParser.cpp:
+(WebCore::HTMLDocumentParser::prepareToStopParsing):
+(WebCore::HTMLDocumentParser::pumpTokenizer):
+
 2013-02-11  Bruno de Oliveira Abinader  bruno.abina...@basyskom.com
 
 [texmap] Implement frames-per-second debug counter


Modified: trunk/Source/WebCore/html/parser/HTMLDocumentParser.cpp (142524 => 142525)

--- trunk/Source/WebCore/html/parser/HTMLDocumentParser.cpp	2013-02-11 23:07:43 UTC (rev 142524)
+++ trunk/Source/WebCore/html/parser/HTMLDocumentParser.cpp	2013-02-11 23:11:24 UTC (rev 142525)
@@ -162,12 +162,16 @@
 // but we need to ensure it isn't deleted yet.
 RefPtrHTMLDocumentParser protect(this);
 
-#if ENABLE(THREADED_HTML_PARSER)
 // NOTE: This pump should only ever emit buffered character tokens,
 // 

[webkit-changes] [142378] trunk/Source/WebCore

2013-02-09 Thread abarth
Title: [142378] trunk/Source/WebCore








Revision 142378
Author aba...@webkit.org
Date 2013-02-09 11:34:08 -0800 (Sat, 09 Feb 2013)


Log Message
Load event fires too early with threaded HTML parser
https://bugs.webkit.org/show_bug.cgi?id=108984

Reviewed by Eric Seidel.

Previously, the DocumentLoader would always be on the stack when the
HTMLDocumentParser was processing data from the network.  The
DocumentLoader would then tell isLoadingInAPISense not to fire the load
event.  Now that we process data asynchronously with the threaded
parser, the DocumentLoader is not always on the stack, which means we
need to delay the load event using the clause that asks the parser
whether it is processing data.

Unfortunately, that clause is fragile because we can check for load
completion while we're switching parsers between the network-created
parser and a script-created parser. To avoid accidentially triggerin
the load event during these gaps, this patch introduces a counter on
document to record how many parsers are active on the stack.  While
that numer is non-zero, we'll delay the load event. When that number
reaches zero, we'll check for load complete.

That last step is required because the DocumentLoader::finishLoading
method is no longer guarunteed to check for load complete after calling
finish on the parser because the finish operation might complete
asynchronously.

After this patch, the threaded parser passes all but four fast/parser
tests.

* dom/Document.cpp:
(WebCore::Document::Document):
(WebCore::Document::hasActiveParser):
(WebCore):
(WebCore::Document::decrementActiveParserCount):
* dom/Document.h:
(Document):
(WebCore::Document::incrementActiveParserCount):
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::processParsedChunkFromBackgroundParser):
(WebCore::HTMLDocumentParser::pumpTokenizer):
* html/parser/HTMLParserScheduler.cpp:
(WebCore::ActiveParserSession::ActiveParserSession):
(WebCore):
(WebCore::ActiveParserSession::~ActiveParserSession):
(WebCore::PumpSession::PumpSession):
(WebCore::PumpSession::~PumpSession):
* html/parser/HTMLParserScheduler.h:
(WebCore):
(ActiveParserSession):
(PumpSession):
* loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::isLoadingInAPISense):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/dom/Document.cpp
trunk/Source/WebCore/dom/Document.h
trunk/Source/WebCore/html/parser/HTMLDocumentParser.cpp
trunk/Source/WebCore/html/parser/HTMLDocumentParser.h
trunk/Source/WebCore/html/parser/HTMLParserScheduler.cpp
trunk/Source/WebCore/html/parser/HTMLParserScheduler.h
trunk/Source/WebCore/loader/DocumentLoader.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (142377 => 142378)

--- trunk/Source/WebCore/ChangeLog	2013-02-09 19:33:00 UTC (rev 142377)
+++ trunk/Source/WebCore/ChangeLog	2013-02-09 19:34:08 UTC (rev 142378)
@@ -1,3 +1,58 @@
+2013-02-09  Adam Barth  aba...@webkit.org
+
+Load event fires too early with threaded HTML parser
+https://bugs.webkit.org/show_bug.cgi?id=108984
+
+Reviewed by Eric Seidel.
+
+Previously, the DocumentLoader would always be on the stack when the
+HTMLDocumentParser was processing data from the network.  The
+DocumentLoader would then tell isLoadingInAPISense not to fire the load
+event.  Now that we process data asynchronously with the threaded
+parser, the DocumentLoader is not always on the stack, which means we
+need to delay the load event using the clause that asks the parser
+whether it is processing data.
+
+Unfortunately, that clause is fragile because we can check for load
+completion while we're switching parsers between the network-created
+parser and a script-created parser. To avoid accidentially triggerin
+the load event during these gaps, this patch introduces a counter on
+document to record how many parsers are active on the stack.  While
+that numer is non-zero, we'll delay the load event. When that number
+reaches zero, we'll check for load complete.
+
+That last step is required because the DocumentLoader::finishLoading
+method is no longer guarunteed to check for load complete after calling
+finish on the parser because the finish operation might complete
+asynchronously.
+
+After this patch, the threaded parser passes all but four fast/parser
+tests.
+
+* dom/Document.cpp:
+(WebCore::Document::Document):
+(WebCore::Document::hasActiveParser):
+(WebCore):
+(WebCore::Document::decrementActiveParserCount):
+* dom/Document.h:
+(Document):
+(WebCore::Document::incrementActiveParserCount):
+* html/parser/HTMLDocumentParser.cpp:
+(WebCore::HTMLDocumentParser::processParsedChunkFromBackgroundParser):
+(WebCore::HTMLDocumentParser::pumpTokenizer):
+* html/parser/HTMLParserScheduler.cpp:
+

[webkit-changes] [142305] trunk/Source

2013-02-08 Thread abarth
Title: [142305] trunk/Source








Revision 142305
Author aba...@webkit.org
Date 2013-02-08 11:30:54 -0800 (Fri, 08 Feb 2013)


Log Message
Use WeakPtrs to communicate between the HTMLDocumentParser and the BackgroundHTMLParser
https://bugs.webkit.org/show_bug.cgi?id=107190

Reviewed by Eric Seidel.

Source/WebCore: 

This patch replaces the parser map with WeakPtr. We now use WeakPtrs to
communicate from the main thread to the background thread. (We were
already using WeakPtrs to communicate from the background thread to the
main thread.) This change lets us remove a bunch of boilerplate code.

* html/parser/BackgroundHTMLParser.cpp:
(WebCore::BackgroundHTMLParser::BackgroundHTMLParser):
(WebCore::BackgroundHTMLParser::stop):
(WebCore):
* html/parser/BackgroundHTMLParser.h:
(WebCore::BackgroundHTMLParser::create):
(BackgroundHTMLParser):
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::didFailSpeculation):
(WebCore::HTMLDocumentParser::startBackgroundParser):
(WebCore::HTMLDocumentParser::stopBackgroundParser):
(WebCore::HTMLDocumentParser::append):
(WebCore::HTMLDocumentParser::finish):
* html/parser/HTMLDocumentParser.h:
(WebCore):
(HTMLDocumentParser):

Source/WTF: 

Add the ability to create an unbound weak reference. This facility lets
you start sending messages to a WeakPtr on another thread before the
object backing the WeakPtr has actually been created.

* wtf/WeakPtr.h:
(WTF::WeakReference::createUnbound):
(WTF::WeakReference::bindTo):
(WeakReference):
(WTF::WeakReference::WeakReference):
(WTF::WeakPtr::WeakPtr):
(WeakPtr):
(WTF::WeakPtrFactory::WeakPtrFactory):
(WeakPtrFactory):
(WTF::WeakPtrFactory::revokeAll):

Modified Paths

trunk/Source/WTF/ChangeLog
trunk/Source/WTF/wtf/WeakPtr.h
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/html/parser/BackgroundHTMLParser.cpp
trunk/Source/WebCore/html/parser/BackgroundHTMLParser.h
trunk/Source/WebCore/html/parser/HTMLDocumentParser.cpp
trunk/Source/WebCore/html/parser/HTMLDocumentParser.h




Diff

Modified: trunk/Source/WTF/ChangeLog (142304 => 142305)

--- trunk/Source/WTF/ChangeLog	2013-02-08 19:09:13 UTC (rev 142304)
+++ trunk/Source/WTF/ChangeLog	2013-02-08 19:30:54 UTC (rev 142305)
@@ -1,3 +1,25 @@
+2013-02-08  Adam Barth  aba...@webkit.org
+
+Use WeakPtrs to communicate between the HTMLDocumentParser and the BackgroundHTMLParser
+https://bugs.webkit.org/show_bug.cgi?id=107190
+
+Reviewed by Eric Seidel.
+
+Add the ability to create an unbound weak reference. This facility lets
+you start sending messages to a WeakPtr on another thread before the
+object backing the WeakPtr has actually been created.
+
+* wtf/WeakPtr.h:
+(WTF::WeakReference::createUnbound):
+(WTF::WeakReference::bindTo):
+(WeakReference):
+(WTF::WeakReference::WeakReference):
+(WTF::WeakPtr::WeakPtr):
+(WeakPtr):
+(WTF::WeakPtrFactory::WeakPtrFactory):
+(WeakPtrFactory):
+(WTF::WeakPtrFactory::revokeAll):
+
 2013-02-08  Martin Robinson  mrobin...@igalia.com
 
 [GTK] Add an experimental gyp build


Modified: trunk/Source/WTF/wtf/WeakPtr.h (142304 => 142305)

--- trunk/Source/WTF/wtf/WeakPtr.h	2013-02-08 19:09:13 UTC (rev 142304)
+++ trunk/Source/WTF/wtf/WeakPtr.h	2013-02-08 19:30:54 UTC (rev 142305)
@@ -34,14 +34,13 @@
 
 namespace WTF {
 
-namespace Internal {
-
 templatetypename T
 class WeakReference : public ThreadSafeRefCountedWeakReferenceT  {
 WTF_MAKE_NONCOPYABLE(WeakReferenceT);
 WTF_MAKE_FAST_ALLOCATED;
 public:
 static PassRefPtrWeakReferenceT  create(T* ptr) { return adoptRef(new WeakReference(ptr)); }
+static PassRefPtrWeakReferenceT  createUnbound() { return adoptRef(new WeakReference()); }
 
 T* get() const
 {
@@ -55,7 +54,18 @@
 m_ptr = 0;
 }
 
+void bindTo(T* ptr)
+{
+ASSERT(!m_ptr);
+#ifndef NDEBUG
+m_boundThread = currentThread();
+#endif
+m_ptr = ptr;
+}
+
 private:
+WeakReference() : m_ptr(0) { }
+
 explicit WeakReference(T* ptr)
 : m_ptr(ptr)
 #ifndef NDEBUG
@@ -70,19 +80,17 @@
 #endif
 };
 
-}
-
 templatetypename T
 class WeakPtr {
 WTF_MAKE_FAST_ALLOCATED;
 public:
 WeakPtr() { }
-WeakPtr(PassRefPtrInternal::WeakReferenceT  ref) : m_ref(ref) { }
+WeakPtr(PassRefPtrWeakReferenceT  ref) : m_ref(ref) { }
 
 T* get() const { return m_ref-get(); }
 
 private:
-RefPtrInternal::WeakReferenceT  m_ref;
+RefPtrWeakReferenceT  m_ref;
 };
 
 templatetypename T
@@ -90,7 +98,14 @@
 WTF_MAKE_NONCOPYABLE(WeakPtrFactoryT);
 WTF_MAKE_FAST_ALLOCATED;
 public:
-explicit WeakPtrFactory(T* ptr) { m_ref = Internal::WeakReferenceT::create(ptr); }
+explicit WeakPtrFactory(T* ptr) : m_ref(WeakReferenceT::create(ptr)) { }
+
+WeakPtrFactory(PassRefPtrWeakReferenceT  ref, T* ptr)
+: m_ref(ref)
+{
+m_ref-bindTo(ptr);
+}
+
 ~WeakPtrFactory() { m_ref-clear(); }
 
 

[webkit-changes] [142200] trunk

2013-02-07 Thread abarth
Title: [142200] trunk








Revision 142200
Author aba...@webkit.org
Date 2013-02-07 16:24:31 -0800 (Thu, 07 Feb 2013)


Log Message
fast/parser/document-write-noscript.html fails for threaded HTML parser
https://bugs.webkit.org/show_bug.cgi?id=109237

Reviewed by Eric Seidel.

Source/WebCore:

If there are multiple calls to document.write in an external script, we
need to wait for them all to complete before invalidating the
speculative tokens. Instead of doing this when we unwind the
document.write call stack, we do this when we're about to resume
parsing after script execution.

Test: fast/parser/document-write-basic.html

* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::processParsedChunkFromBackgroundParser):
(WebCore::HTMLDocumentParser::insert):
(WebCore::HTMLDocumentParser::resumeParsingAfterScriptExecution):

LayoutTests:

This tests basic document.write functionality.  There doesn't appear to
be another fast/parser test that covers this basic case (although it's
convered in some more complicated test cases incidentally.)

* fast/parser/document-write-basic-expected.txt: Added.
* fast/parser/document-write-basic.html: Added.

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/html/parser/HTMLDocumentParser.cpp
trunk/Source/WebCore/html/parser/HTMLDocumentParser.h


Added Paths

trunk/LayoutTests/fast/parser/document-write-basic-expected.txt
trunk/LayoutTests/fast/parser/document-write-basic.html
trunk/LayoutTests/fast/parser/document-write-partial-script-external-expected.txt
trunk/LayoutTests/fast/parser/document-write-partial-script-external.html




Diff

Modified: trunk/LayoutTests/ChangeLog (142199 => 142200)

--- trunk/LayoutTests/ChangeLog	2013-02-08 00:18:14 UTC (rev 142199)
+++ trunk/LayoutTests/ChangeLog	2013-02-08 00:24:31 UTC (rev 142200)
@@ -1,3 +1,17 @@
+2013-02-07  Adam Barth  aba...@webkit.org
+
+fast/parser/document-write-noscript.html fails for threaded HTML parser
+https://bugs.webkit.org/show_bug.cgi?id=109237
+
+Reviewed by Eric Seidel.
+
+This tests basic document.write functionality.  There doesn't appear to
+be another fast/parser test that covers this basic case (although it's
+convered in some more complicated test cases incidentally.)
+
+* fast/parser/document-write-basic-expected.txt: Added.
+* fast/parser/document-write-basic.html: Added.
+
 2013-02-07  Keishi Hattori  kei...@webkit.org
 
 REGRESSION (r140778): Calendar Picker doesn't open when the element has the required attribute


Added: trunk/LayoutTests/fast/parser/document-write-basic-expected.txt (0 => 142200)

--- trunk/LayoutTests/fast/parser/document-write-basic-expected.txt	(rev 0)
+++ trunk/LayoutTests/fast/parser/document-write-basic-expected.txt	2013-02-08 00:24:31 UTC (rev 142200)
@@ -0,0 +1 @@
+PASS


Added: trunk/LayoutTests/fast/parser/document-write-basic.html (0 => 142200)

--- trunk/LayoutTests/fast/parser/document-write-basic.html	(rev 0)
+++ trunk/LayoutTests/fast/parser/document-write-basic.html	2013-02-08 00:24:31 UTC (rev 142200)
@@ -0,0 +1,9 @@
+html 
+body 
+script
+if (window.testRunner)
+testRunner.dumpAsText();
+/script
+script src="" 
+/body 
+/html


Added: trunk/LayoutTests/fast/parser/document-write-partial-script-external-expected.txt (0 => 142200)

--- trunk/LayoutTests/fast/parser/document-write-partial-script-external-expected.txt	(rev 0)
+++ trunk/LayoutTests/fast/parser/document-write-partial-script-external-expected.txt	2013-02-08 00:24:31 UTC (rev 142200)
@@ -0,0 +1,2 @@
+ALERT: PASS: This test passes if this string is alerted
+


Added: trunk/LayoutTests/fast/parser/document-write-partial-script-external.html (0 => 142200)

--- trunk/LayoutTests/fast/parser/document-write-partial-script-external.html	(rev 0)
+++ trunk/LayoutTests/fast/parser/document-write-partial-script-external.html	2013-02-08 00:24:31 UTC (rev 142200)
@@ -0,0 +1,8 @@
+script
+if (window.testRunner)
+testRunner.dumpAsText();
+/script
+script src=""
+// iframe _onload_=alert('FAIL: If this string is visible, then this test fails.') src=""
+alert('PASS: This test passes if this string is alerted');
+/script


Modified: trunk/Source/WebCore/ChangeLog (142199 => 142200)

--- trunk/Source/WebCore/ChangeLog	2013-02-08 00:18:14 UTC (rev 142199)
+++ trunk/Source/WebCore/ChangeLog	2013-02-08 00:24:31 UTC (rev 142200)
@@ -1,3 +1,23 @@
+2013-02-07  Adam Barth  aba...@webkit.org
+
+fast/parser/document-write-noscript.html fails for threaded HTML parser
+https://bugs.webkit.org/show_bug.cgi?id=109237
+
+Reviewed by Eric Seidel.
+
+If there are multiple calls to document.write in an external script, we
+need to wait for them all to complete before invalidating the
+speculative tokens. Instead of doing this when we unwind the
+

[webkit-changes] [141926] trunk

2013-02-05 Thread abarth
Title: [141926] trunk








Revision 141926
Author aba...@webkit.org
Date 2013-02-05 13:44:55 -0800 (Tue, 05 Feb 2013)


Log Message
DumpRenderTree should be able to enable the threaded parser
https://bugs.webkit.org/show_bug.cgi?id=108970

Reviewed by Eric Seidel.

Source/WebKit/chromium:

* public/WebSettings.h:
* src/WebSettingsImpl.cpp:
(WebKit::WebSettingsImpl::setThreadedHTMLParser):
(WebKit):
* src/WebSettingsImpl.h:
(WebSettingsImpl):

Tools:

We can now enable the parser at runtime using --enable-threaded-html-parser.

* DumpRenderTree/chromium/DumpRenderTree.cpp:
(main):
* DumpRenderTree/chromium/TestRunner/public/WebPreferences.h:
(WebPreferences):
* DumpRenderTree/chromium/TestRunner/src/WebPreferences.cpp:
(WebTestRunner::WebPreferences::reset):
(WebTestRunner::WebPreferences::applyTo):
* DumpRenderTree/chromium/TestShell.cpp:
(TestShell::TestShell):
(TestShell::resetWebSettings):
* DumpRenderTree/chromium/TestShell.h:
(TestShell::setThreadedHTMLParser):
(TestShell):

Modified Paths

trunk/Source/WebKit/chromium/ChangeLog
trunk/Source/WebKit/chromium/public/WebSettings.h
trunk/Source/WebKit/chromium/src/WebSettingsImpl.cpp
trunk/Source/WebKit/chromium/src/WebSettingsImpl.h
trunk/Tools/ChangeLog
trunk/Tools/DumpRenderTree/chromium/DumpRenderTree.cpp
trunk/Tools/DumpRenderTree/chromium/TestRunner/public/WebPreferences.h
trunk/Tools/DumpRenderTree/chromium/TestRunner/src/WebPreferences.cpp
trunk/Tools/DumpRenderTree/chromium/TestShell.cpp
trunk/Tools/DumpRenderTree/chromium/TestShell.h




Diff

Modified: trunk/Source/WebKit/chromium/ChangeLog (141925 => 141926)

--- trunk/Source/WebKit/chromium/ChangeLog	2013-02-05 21:41:53 UTC (rev 141925)
+++ trunk/Source/WebKit/chromium/ChangeLog	2013-02-05 21:44:55 UTC (rev 141926)
@@ -1,3 +1,17 @@
+2013-02-05  Adam Barth  aba...@webkit.org
+
+DumpRenderTree should be able to enable the threaded parser
+https://bugs.webkit.org/show_bug.cgi?id=108970
+
+Reviewed by Eric Seidel.
+
+* public/WebSettings.h:
+* src/WebSettingsImpl.cpp:
+(WebKit::WebSettingsImpl::setThreadedHTMLParser):
+(WebKit):
+* src/WebSettingsImpl.h:
+(WebSettingsImpl):
+
 2013-02-05  Sami Kyostila  skyos...@chromium.org
 
 [chromium] Make overlay layers slow-scrolling


Modified: trunk/Source/WebKit/chromium/public/WebSettings.h (141925 => 141926)

--- trunk/Source/WebKit/chromium/public/WebSettings.h	2013-02-05 21:41:53 UTC (rev 141925)
+++ trunk/Source/WebKit/chromium/public/WebSettings.h	2013-02-05 21:44:55 UTC (rev 141926)
@@ -161,6 +161,7 @@
 virtual void setTextAutosizingEnabled(bool) = 0;
 virtual void setTextAutosizingFontScaleFactor(float) = 0;
 virtual void setTextDirectionSubmenuInclusionBehaviorNeverIncluded() = 0;
+virtual void setThreadedHTMLParser(bool) = 0;
 virtual void setTouchDragDropEnabled(bool) = 0;
 virtual void setUnifiedTextCheckerEnabled(bool) = 0;
 virtual void setUnsafePluginPastingEnabled(bool) = 0;


Modified: trunk/Source/WebKit/chromium/src/WebSettingsImpl.cpp (141925 => 141926)

--- trunk/Source/WebKit/chromium/src/WebSettingsImpl.cpp	2013-02-05 21:41:53 UTC (rev 141925)
+++ trunk/Source/WebKit/chromium/src/WebSettingsImpl.cpp	2013-02-05 21:44:55 UTC (rev 141926)
@@ -356,6 +356,13 @@
 m_settings-setTouchDragDropEnabled(enabled);
 }
 
+void WebSettingsImpl::setThreadedHTMLParser(bool enabled)
+{
+#if ENABLE(THREADED_HTML_PARSER)
+m_settings-setThreadedHTMLParser(enabled);
+#endif
+}
+
 void WebSettingsImpl::setOfflineWebApplicationCacheEnabled(bool enabled)
 {
 m_settings-setOfflineWebApplicationCacheEnabled(enabled);


Modified: trunk/Source/WebKit/chromium/src/WebSettingsImpl.h (141925 => 141926)

--- trunk/Source/WebKit/chromium/src/WebSettingsImpl.h	2013-02-05 21:41:53 UTC (rev 141925)
+++ trunk/Source/WebKit/chromium/src/WebSettingsImpl.h	2013-02-05 21:44:55 UTC (rev 141926)
@@ -158,6 +158,7 @@
 virtual void setTextAutosizingFontScaleFactor(float);
 virtual void setTextDirectionSubmenuInclusionBehaviorNeverIncluded();
 virtual void setTouchDragDropEnabled(bool);
+virtual void setThreadedHTMLParser(bool);
 virtual void setUnifiedTextCheckerEnabled(bool);
 virtual void setUnsafePluginPastingEnabled(bool);
 virtual void setUserStyleSheetLocation(const WebURL);


Modified: trunk/Tools/ChangeLog (141925 => 141926)

--- trunk/Tools/ChangeLog	2013-02-05 21:41:53 UTC (rev 141925)
+++ trunk/Tools/ChangeLog	2013-02-05 21:44:55 UTC (rev 141926)
@@ -1,3 +1,26 @@
+2013-02-05  Adam Barth  aba...@webkit.org
+
+DumpRenderTree should be able to enable the threaded parser
+https://bugs.webkit.org/show_bug.cgi?id=108970
+
+Reviewed by Eric Seidel.
+
+We can now enable the parser at runtime using --enable-threaded-html-parser.
+
+* DumpRenderTree/chromium/DumpRenderTree.cpp:
+(main):
+* DumpRenderTree/chromium/TestRunner/public/WebPreferences.h:
+

[webkit-changes] [141328] trunk/Source/WebCore

2013-01-30 Thread abarth
Title: [141328] trunk/Source/WebCore








Revision 141328
Author aba...@webkit.org
Date 2013-01-30 15:16:03 -0800 (Wed, 30 Jan 2013)


Log Message
HTMLDocumentParser::insert should be aware of threaded parsing
https://bugs.webkit.org/show_bug.cgi?id=107764

Reviewed by Eric Seidel.

This patch is an incremental step towards recovering from
document.write invalidating our speculative parsing buffer. The
approach I've taken is to make it possible to transfer the
HTMLDocumentParser's HTMLTokenizer and HTMLToken to the background
thread. To make that possible, I've taught the HTMLDocumentParser how
to operate without a tokenizer or a token.

Not having a tokenizer or a token while parsing in the background also
helps us avoid accidentially feeding input to the main thread's
tokenizer when we're supposed to feed it to the background thread.

This patch shouldn't have any behavior change (other than possibly
fixing a crash in fast/parser when threading parsing is enabled).

* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::HTMLDocumentParser):
(WebCore::HTMLDocumentParser::didFailSpeculation):
(WebCore):
(WebCore::HTMLDocumentParser::insert):
(WebCore::HTMLDocumentParser::finish):
(WebCore::HTMLDocumentParser::resumeParsingAfterScriptExecution):
* html/parser/HTMLDocumentParser.h:
(HTMLDocumentParser):
* html/parser/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::constructTree):
(WebCore::HTMLTreeBuilder::processStartTagForInBody):
(WebCore::HTMLTreeBuilder::processEndTag):
(WebCore::HTMLTreeBuilder::processGenericRCDATAStartTag):
(WebCore::HTMLTreeBuilder::processGenericRawTextStartTag):
(WebCore::HTMLTreeBuilder::processScriptStartTag):
* html/parser/TextDocumentParser.cpp:
(WebCore::TextDocumentParser::TextDocumentParser):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/html/parser/HTMLDocumentParser.cpp
trunk/Source/WebCore/html/parser/HTMLDocumentParser.h
trunk/Source/WebCore/html/parser/HTMLTreeBuilder.cpp
trunk/Source/WebCore/html/parser/TextDocumentParser.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (141327 => 141328)

--- trunk/Source/WebCore/ChangeLog	2013-01-30 23:11:52 UTC (rev 141327)
+++ trunk/Source/WebCore/ChangeLog	2013-01-30 23:16:03 UTC (rev 141328)
@@ -1,3 +1,43 @@
+2013-01-30  Adam Barth  aba...@webkit.org
+
+HTMLDocumentParser::insert should be aware of threaded parsing
+https://bugs.webkit.org/show_bug.cgi?id=107764
+
+Reviewed by Eric Seidel.
+
+This patch is an incremental step towards recovering from
+document.write invalidating our speculative parsing buffer. The
+approach I've taken is to make it possible to transfer the
+HTMLDocumentParser's HTMLTokenizer and HTMLToken to the background
+thread. To make that possible, I've taught the HTMLDocumentParser how
+to operate without a tokenizer or a token.
+
+Not having a tokenizer or a token while parsing in the background also
+helps us avoid accidentially feeding input to the main thread's
+tokenizer when we're supposed to feed it to the background thread.
+
+This patch shouldn't have any behavior change (other than possibly
+fixing a crash in fast/parser when threading parsing is enabled).
+
+* html/parser/HTMLDocumentParser.cpp:
+(WebCore::HTMLDocumentParser::HTMLDocumentParser):
+(WebCore::HTMLDocumentParser::didFailSpeculation):
+(WebCore):
+(WebCore::HTMLDocumentParser::insert):
+(WebCore::HTMLDocumentParser::finish):
+(WebCore::HTMLDocumentParser::resumeParsingAfterScriptExecution):
+* html/parser/HTMLDocumentParser.h:
+(HTMLDocumentParser):
+* html/parser/HTMLTreeBuilder.cpp:
+(WebCore::HTMLTreeBuilder::constructTree):
+(WebCore::HTMLTreeBuilder::processStartTagForInBody):
+(WebCore::HTMLTreeBuilder::processEndTag):
+(WebCore::HTMLTreeBuilder::processGenericRCDATAStartTag):
+(WebCore::HTMLTreeBuilder::processGenericRawTextStartTag):
+(WebCore::HTMLTreeBuilder::processScriptStartTag):
+* html/parser/TextDocumentParser.cpp:
+(WebCore::TextDocumentParser::TextDocumentParser):
+
 2013-01-30  Rafael Weinstein  rafa...@chromium.org
 
 [HTMLTemplateElement] prevent the parser from removing nodes from the content when the foster agency is processing formatting elements


Modified: trunk/Source/WebCore/html/parser/HTMLDocumentParser.cpp (141327 => 141328)

--- trunk/Source/WebCore/html/parser/HTMLDocumentParser.cpp	2013-01-30 23:11:52 UTC (rev 141327)
+++ trunk/Source/WebCore/html/parser/HTMLDocumentParser.cpp	2013-01-30 23:16:03 UTC (rev 141328)
@@ -77,8 +77,8 @@
 HTMLDocumentParser::HTMLDocumentParser(HTMLDocument* document, bool reportErrors)
 : ScriptableDocumentParser(document)
 , m_options(document)
-, m_token(adoptPtr(new HTMLToken))
-, m_tokenizer(HTMLTokenizer::create(m_options))
+, 

[webkit-changes] [141057] trunk

2013-01-28 Thread abarth
Title: [141057] trunk








Revision 141057
Author aba...@webkit.org
Date 2013-01-28 22:52:51 -0800 (Mon, 28 Jan 2013)


Log Message
Layout Test http/tests/workers/terminate-during-sync-operation.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=79013

Reviewed by David Levin.

Source/WebCore:

We need to use an isolated copy because we're going to use it on a
different thread.

* Modules/webdatabase/AbstractDatabase.cpp:
(WebCore::AbstractDatabase::AbstractDatabase):

LayoutTests:

This test shouldn't be flaky anymore.

* platform/chromium/TestExpectations:

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/platform/chromium/TestExpectations
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/Modules/webdatabase/AbstractDatabase.cpp




Diff

Modified: trunk/LayoutTests/ChangeLog (141056 => 141057)

--- trunk/LayoutTests/ChangeLog	2013-01-29 06:50:22 UTC (rev 141056)
+++ trunk/LayoutTests/ChangeLog	2013-01-29 06:52:51 UTC (rev 141057)
@@ -1,3 +1,14 @@
+2013-01-28  Adam Barth  aba...@webkit.org
+
+Layout Test http/tests/workers/terminate-during-sync-operation.html is flaky
+https://bugs.webkit.org/show_bug.cgi?id=79013
+
+Reviewed by David Levin.
+
+This test shouldn't be flaky anymore.
+
+* platform/chromium/TestExpectations:
+
 2013-01-28  Keishi Hattori  kei...@webkit.org
 
 [Chromium] Rebaselining after 141039.


Modified: trunk/LayoutTests/platform/chromium/TestExpectations (141056 => 141057)

--- trunk/LayoutTests/platform/chromium/TestExpectations	2013-01-29 06:50:22 UTC (rev 141056)
+++ trunk/LayoutTests/platform/chromium/TestExpectations	2013-01-29 06:52:51 UTC (rev 141057)
@@ -3050,8 +3050,6 @@
 
 webkit.org/b/106064 [ Android ] fast/inline/continuation-outlines-with-layers.html [ ImageOnlyFailure ]
 
-webkit.org/b/79013 http/tests/workers/terminate-during-sync-operation.html [ Pass Timeout Crash ]
-
 crbug.com/113063 [ Debug ] storage/indexeddb/basics-workers.html [ Crash Pass ]
 
 webkit.org/b/79224 [ Win ] fast/canvas/webgl/tex-image-with-format-and-type.html [ Failure Pass ]


Modified: trunk/Source/WebCore/ChangeLog (141056 => 141057)

--- trunk/Source/WebCore/ChangeLog	2013-01-29 06:50:22 UTC (rev 141056)
+++ trunk/Source/WebCore/ChangeLog	2013-01-29 06:52:51 UTC (rev 141057)
@@ -1,3 +1,16 @@
+2013-01-28  Adam Barth  aba...@webkit.org
+
+Layout Test http/tests/workers/terminate-during-sync-operation.html is flaky
+https://bugs.webkit.org/show_bug.cgi?id=79013
+
+Reviewed by David Levin.
+
+We need to use an isolated copy because we're going to use it on a
+different thread.
+
+* Modules/webdatabase/AbstractDatabase.cpp:
+(WebCore::AbstractDatabase::AbstractDatabase):
+
 2013-01-28  Shinya Kawanaka  shin...@chromium.org
 
 [Shadow] Gesture event is not fired in ShadowDOM


Modified: trunk/Source/WebCore/Modules/webdatabase/AbstractDatabase.cpp (141056 => 141057)

--- trunk/Source/WebCore/Modules/webdatabase/AbstractDatabase.cpp	2013-01-29 06:50:22 UTC (rev 141056)
+++ trunk/Source/WebCore/Modules/webdatabase/AbstractDatabase.cpp	2013-01-29 06:52:51 UTC (rev 141057)
@@ -188,7 +188,7 @@
 , m_isSyncDatabase(databaseType == SyncDatabase)
 {
 ASSERT(context-isContextThread());
-m_contextThreadSecurityOrigin = m_scriptExecutionContext-securityOrigin();
+m_contextThreadSecurityOrigin = m_scriptExecutionContext-securityOrigin()-isolatedCopy();
 
 m_databaseAuthorizer = DatabaseAuthorizer::create(infoTableName);
 






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [141070] trunk/Source/WebCore

2013-01-28 Thread abarth
Title: [141070] trunk/Source/WebCore








Revision 141070
Author aba...@webkit.org
Date 2013-01-29 00:01:37 -0800 (Tue, 29 Jan 2013)


Log Message
HTMLDocumentParser should hold the HTMLToken using an OwnPtr
https://bugs.webkit.org/show_bug.cgi?id=107762

Reviewed by Eric Seidel.

Using an OwnPtr will let us detach the HTMLToken from the
HTMLDocumentParser and send it to the BackgroundHTMLParser for further
processing.

* html/parser/BackgroundHTMLParser.cpp:
(WebCore::BackgroundHTMLParser::BackgroundHTMLParser):
(WebCore::BackgroundHTMLParser::pumpTokenizer):
* html/parser/BackgroundHTMLParser.h:
(BackgroundHTMLParser):
* html/parser/CompactHTMLToken.cpp:
(WebCore::CompactHTMLToken::CompactHTMLToken):
* html/parser/CompactHTMLToken.h:
(CompactHTMLToken):
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::HTMLDocumentParser):
(WebCore::HTMLDocumentParser::pumpTokenizer):
* html/parser/HTMLDocumentParser.h:
(HTMLDocumentParser):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/html/parser/BackgroundHTMLParser.cpp
trunk/Source/WebCore/html/parser/BackgroundHTMLParser.h
trunk/Source/WebCore/html/parser/CompactHTMLToken.cpp
trunk/Source/WebCore/html/parser/CompactHTMLToken.h
trunk/Source/WebCore/html/parser/HTMLDocumentParser.cpp
trunk/Source/WebCore/html/parser/HTMLDocumentParser.h




Diff

Modified: trunk/Source/WebCore/ChangeLog (141069 => 141070)

--- trunk/Source/WebCore/ChangeLog	2013-01-29 08:01:03 UTC (rev 141069)
+++ trunk/Source/WebCore/ChangeLog	2013-01-29 08:01:37 UTC (rev 141070)
@@ -1,3 +1,29 @@
+2013-01-28  Adam Barth  aba...@webkit.org
+
+HTMLDocumentParser should hold the HTMLToken using an OwnPtr
+https://bugs.webkit.org/show_bug.cgi?id=107762
+
+Reviewed by Eric Seidel.
+
+Using an OwnPtr will let us detach the HTMLToken from the
+HTMLDocumentParser and send it to the BackgroundHTMLParser for further
+processing.
+
+* html/parser/BackgroundHTMLParser.cpp:
+(WebCore::BackgroundHTMLParser::BackgroundHTMLParser):
+(WebCore::BackgroundHTMLParser::pumpTokenizer):
+* html/parser/BackgroundHTMLParser.h:
+(BackgroundHTMLParser):
+* html/parser/CompactHTMLToken.cpp:
+(WebCore::CompactHTMLToken::CompactHTMLToken):
+* html/parser/CompactHTMLToken.h:
+(CompactHTMLToken):
+* html/parser/HTMLDocumentParser.cpp:
+(WebCore::HTMLDocumentParser::HTMLDocumentParser):
+(WebCore::HTMLDocumentParser::pumpTokenizer):
+* html/parser/HTMLDocumentParser.h:
+(HTMLDocumentParser):
+
 2013-01-28  Huang Dongsung  luxte...@company100.net
 
 [Texmap] Refactor code related to debug border and repaint count.


Modified: trunk/Source/WebCore/html/parser/BackgroundHTMLParser.cpp (141069 => 141070)

--- trunk/Source/WebCore/html/parser/BackgroundHTMLParser.cpp	2013-01-29 08:01:03 UTC (rev 141069)
+++ trunk/Source/WebCore/html/parser/BackgroundHTMLParser.cpp	2013-01-29 08:01:37 UTC (rev 141070)
@@ -84,6 +84,7 @@
 
 BackgroundHTMLParser::BackgroundHTMLParser(const HTMLParserOptions options, const WeakPtrHTMLDocumentParser parser)
 : m_inForeignContent(false)
+, m_token(adoptPtr(new HTMLToken))
 , m_tokenizer(HTMLTokenizer::create(options))
 , m_options(options)
 , m_parser(parser)
@@ -153,9 +154,9 @@
 
 void BackgroundHTMLParser::pumpTokenizer()
 {
-while (m_tokenizer-nextToken(m_input, m_token)) {
-m_pendingTokens-append(CompactHTMLToken(m_token, TextPosition(m_input.currentLine(), m_input.currentColumn(;
-m_token.clear();
+while (m_tokenizer-nextToken(m_input, *m_token.get())) {
+m_pendingTokens-append(CompactHTMLToken(m_token.get(), TextPosition(m_input.currentLine(), m_input.currentColumn(;
+m_token-clear();
 
 if (!simulateTreeBuilder(m_pendingTokens-last()) || m_pendingTokens-size() = pendingTokenLimit)
 sendTokensToMainThread();


Modified: trunk/Source/WebCore/html/parser/BackgroundHTMLParser.h (141069 => 141070)

--- trunk/Source/WebCore/html/parser/BackgroundHTMLParser.h	2013-01-29 08:01:03 UTC (rev 141069)
+++ trunk/Source/WebCore/html/parser/BackgroundHTMLParser.h	2013-01-29 08:01:37 UTC (rev 141070)
@@ -64,9 +64,9 @@
 
 void sendTokensToMainThread();
 
+bool m_inForeignContent; // FIXME: We need a stack of foreign content markers.
 SegmentedString m_input;
-HTMLToken m_token;
-bool m_inForeignContent; // FIXME: We need a stack of foreign content markers.
+OwnPtrHTMLToken m_token;
 OwnPtrHTMLTokenizer m_tokenizer;
 HTMLParserOptions m_options;
 WeakPtrHTMLDocumentParser m_parser;


Modified: trunk/Source/WebCore/html/parser/CompactHTMLToken.cpp (141069 => 141070)

--- trunk/Source/WebCore/html/parser/CompactHTMLToken.cpp	2013-01-29 08:01:03 UTC (rev 141069)
+++ trunk/Source/WebCore/html/parser/CompactHTMLToken.cpp	2013-01-29 08:01:37 UTC (rev 141070)
@@ -42,8 +42,8 @@
 
 

[webkit-changes] [140786] trunk/Tools

2013-01-24 Thread abarth
Title: [140786] trunk/Tools








Revision 140786
Author aba...@webkit.org
Date 2013-01-24 23:00:11 -0800 (Thu, 24 Jan 2013)


Log Message
HTTP 500 error between QueueStatusServer and bot(s)
https://bugs.webkit.org/show_bug.cgi?id=107184

Patch by Alan Cutter alancut...@chromium.org on 2013-01-24
Reviewed by Adam Barth.

Removed the use of memcache which was the source of the exception.

* QueueStatusServer/handlers/updatestatus.py:
(UpdateStatus.post):
* QueueStatusServer/model/attachment.py:
(Attachment):
(Attachment.summary):

Modified Paths

trunk/Tools/ChangeLog
trunk/Tools/QueueStatusServer/handlers/updatestatus.py
trunk/Tools/QueueStatusServer/model/attachment.py




Diff

Modified: trunk/Tools/ChangeLog (140785 => 140786)

--- trunk/Tools/ChangeLog	2013-01-25 06:57:41 UTC (rev 140785)
+++ trunk/Tools/ChangeLog	2013-01-25 07:00:11 UTC (rev 140786)
@@ -1,3 +1,18 @@
+2013-01-24  Alan Cutter  alancut...@chromium.org
+
+HTTP 500 error between QueueStatusServer and bot(s)
+https://bugs.webkit.org/show_bug.cgi?id=107184
+
+Reviewed by Adam Barth.
+
+Removed the use of memcache which was the source of the exception.
+
+* QueueStatusServer/handlers/updatestatus.py:
+(UpdateStatus.post):
+* QueueStatusServer/model/attachment.py:
+(Attachment):
+(Attachment.summary):
+
 2013-01-24  Sheriff Bot  webkit.review@gmail.com
 
 Unreviewed, rolling out r140653.


Modified: trunk/Tools/QueueStatusServer/handlers/updatestatus.py (140785 => 140786)

--- trunk/Tools/QueueStatusServer/handlers/updatestatus.py	2013-01-25 06:57:41 UTC (rev 140785)
+++ trunk/Tools/QueueStatusServer/handlers/updatestatus.py	2013-01-25 07:00:11 UTC (rev 140786)
@@ -67,5 +67,4 @@
 RecordBotEvent.record_activity(queue_status.queue_name, queue_status.bot_id)
 if queue_status.active_patch_id:
 RecordPatchEvent.updated(queue_status.active_patch_id, queue_status.queue_name, queue_status.bot_id)
-Attachment.dirty(queue_status.active_patch_id)
 self.response.out.write(queue_status.key().id())


Modified: trunk/Tools/QueueStatusServer/model/attachment.py (140785 => 140786)

--- trunk/Tools/QueueStatusServer/model/attachment.py	2013-01-25 06:57:41 UTC (rev 140785)
+++ trunk/Tools/QueueStatusServer/model/attachment.py	2013-01-25 07:00:11 UTC (rev 140786)
@@ -28,8 +28,6 @@
 
 import re
 
-from google.appengine.api import memcache
-
 from model.queues import Queue
 from model.queuestatus import QueueStatus
 from model.workitems import WorkItems
@@ -37,10 +35,6 @@
 
 class Attachment(object):
 @classmethod
-def dirty(cls, attachment_id):
-memcache.delete(str(attachment_id), namespace=attachment-summary)
-
-@classmethod
 def recent(cls, limit=1):
 statuses = QueueStatus.all().order(-date)
 # Notice that we use both a set and a list here to keep the -date ordering.
@@ -66,11 +60,7 @@
 def summary(self):
 if self._summary:
 return self._summary
-self._summary = memcache.get(str(self.id), namespace=attachment-summary)
-if self._summary:
-return self._summary
 self._summary = self._fetch_summary()
-memcache.set(str(self.id), self._summary, namespace=attachment-summary)
 return self._summary
 
 def state_from_queue_status(self, status):






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [140589] trunk/Source

2013-01-23 Thread abarth
Title: [140589] trunk/Source








Revision 140589
Author aba...@webkit.org
Date 2013-01-23 14:15:54 -0800 (Wed, 23 Jan 2013)


Log Message
BackgroundHTMLParser::sendTokensToMainThread should use bind
https://bugs.webkit.org/show_bug.cgi?id=107637

Reviewed by Eric Seidel.

Source/WebCore: 

This patch replaces our hand-written implementation of bind for
didReceiveTokensFromBackgroundParser with bind from Functional.h. To
use the generic version of bind, we need to switch to using WeakPtr to
hold a reference to the main thread parser in the BackgroundHTMLParser.

* html/parser/BackgroundHTMLParser.cpp:
(WebCore::BackgroundHTMLParser::BackgroundHTMLParser):
(WebCore::BackgroundHTMLParser::sendTokensToMainThread):
(WebCore::BackgroundHTMLParser::createPartial):
* html/parser/BackgroundHTMLParser.h:
(WebCore::BackgroundHTMLParser::create):
(BackgroundHTMLParser):
(ParserMap):
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::HTMLDocumentParser):
(WebCore::HTMLDocumentParser::startBackgroundParser):
(WebCore::HTMLDocumentParser::stopBackgroundParser):
* html/parser/HTMLDocumentParser.h:
(HTMLDocumentParser):

Source/WTF: 

* wtf/Functional.h:
- I had to re-work the approach to validating WeakPtr |this|
  arguments a bit. Previously you couldn't pass a WeakPtr as a
  non-|this| argument to a function because we would try to unwrap
  it into a raw pointer.
* wtf/WeakPtr.h:
(WTF::WeakPtrFactory::revokeAll):
(WeakPtrFactory):
- Let clients revoke all outstanding WeakPtrs without needing to
  destroy the WeakPtrFactory.
* wtf/chromium/MainThreadChromium.cpp:
(WTF::callFunctionObject):
(WTF::callOnMainThread):
- Implement callOnMainThread for Function objects. The non-Chromium
  implementation of MainThread.cpp already implements this feature.

Modified Paths

trunk/Source/WTF/ChangeLog
trunk/Source/WTF/wtf/Functional.h
trunk/Source/WTF/wtf/WeakPtr.h
trunk/Source/WTF/wtf/chromium/MainThreadChromium.cpp
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/html/parser/BackgroundHTMLParser.cpp
trunk/Source/WebCore/html/parser/BackgroundHTMLParser.h
trunk/Source/WebCore/html/parser/HTMLDocumentParser.cpp
trunk/Source/WebCore/html/parser/HTMLDocumentParser.h




Diff

Modified: trunk/Source/WTF/ChangeLog (140588 => 140589)

--- trunk/Source/WTF/ChangeLog	2013-01-23 22:14:47 UTC (rev 140588)
+++ trunk/Source/WTF/ChangeLog	2013-01-23 22:15:54 UTC (rev 140589)
@@ -1,3 +1,26 @@
+2013-01-23  Adam Barth  aba...@webkit.org
+
+BackgroundHTMLParser::sendTokensToMainThread should use bind
+https://bugs.webkit.org/show_bug.cgi?id=107637
+
+Reviewed by Eric Seidel.
+
+* wtf/Functional.h:
+- I had to re-work the approach to validating WeakPtr |this|
+  arguments a bit. Previously you couldn't pass a WeakPtr as a
+  non-|this| argument to a function because we would try to unwrap
+  it into a raw pointer.
+* wtf/WeakPtr.h:
+(WTF::WeakPtrFactory::revokeAll):
+(WeakPtrFactory):
+- Let clients revoke all outstanding WeakPtrs without needing to
+  destroy the WeakPtrFactory.
+* wtf/chromium/MainThreadChromium.cpp:
+(WTF::callFunctionObject):
+(WTF::callOnMainThread):
+- Implement callOnMainThread for Function objects. The non-Chromium
+  implementation of MainThread.cpp already implements this feature.
+
 2013-01-23  Justin Schuh  jsc...@chromium.org
 
 [CHROMIUM] Suppress c4267 build warnings in WTF for Win64 targets


Modified: trunk/Source/WTF/wtf/Functional.h (140588 => 140589)

--- trunk/Source/WTF/wtf/Functional.h	2013-01-23 22:14:47 UTC (rev 140588)
+++ trunk/Source/WTF/wtf/Functional.h	2013-01-23 22:15:54 UTC (rev 140589)
@@ -83,7 +83,6 @@
 public:
 typedef R ResultType;
 static const bool shouldRefFirstParameter = false;
-static const bool shouldValidateFirstParameter = false;
 
 explicit FunctionWrapper(R (*function)())
 : m_function(function)
@@ -104,7 +103,6 @@
 public:
 typedef R ResultType;
 static const bool shouldRefFirstParameter = false;
-static const bool shouldValidateFirstParameter = false;
 
 explicit FunctionWrapper(R (*function)(P1))
 : m_function(function)
@@ -125,7 +123,6 @@
 public:
 typedef R ResultType;
 static const bool shouldRefFirstParameter = false;
-static const bool shouldValidateFirstParameter = false;
 
 explicit FunctionWrapper(R (*function)(P1, P2))
 : m_function(function)
@@ -146,7 +143,6 @@
 public:
 typedef R ResultType;
 static const bool shouldRefFirstParameter = false;
-static const bool shouldValidateFirstParameter = false;
 
 explicit FunctionWrapper(R (*function)(P1, P2, P3))
 : m_function(function)
@@ -167,7 +163,6 @@
 public:
 typedef R ResultType;
 static const bool shouldRefFirstParameter = HasRefAndDerefC::value;
-static const bool 

[webkit-changes] [140635] trunk/Source/WebCore

2013-01-23 Thread abarth
Title: [140635] trunk/Source/WebCore








Revision 140635
Author aba...@webkit.org
Date 2013-01-23 19:24:32 -0800 (Wed, 23 Jan 2013)


Log Message
BackgroundHTMLParser should use more const references to avoid copy constructors
https://bugs.webkit.org/show_bug.cgi?id=107763

Reviewed by Tony Gentilcore.

I doubt this optimization is visible anywhere, but it's just a nit.

* html/parser/BackgroundHTMLParser.cpp:
(WebCore::BackgroundHTMLParser::BackgroundHTMLParser):
(WebCore::BackgroundHTMLParser::createPartial):
* html/parser/BackgroundHTMLParser.h:
(WebCore::BackgroundHTMLParser::create):
(BackgroundHTMLParser):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/html/parser/BackgroundHTMLParser.cpp
trunk/Source/WebCore/html/parser/BackgroundHTMLParser.h




Diff

Modified: trunk/Source/WebCore/ChangeLog (140634 => 140635)

--- trunk/Source/WebCore/ChangeLog	2013-01-24 02:57:46 UTC (rev 140634)
+++ trunk/Source/WebCore/ChangeLog	2013-01-24 03:24:32 UTC (rev 140635)
@@ -1,3 +1,19 @@
+2013-01-23  Adam Barth  aba...@webkit.org
+
+BackgroundHTMLParser should use more const references to avoid copy constructors
+https://bugs.webkit.org/show_bug.cgi?id=107763
+
+Reviewed by Tony Gentilcore.
+
+I doubt this optimization is visible anywhere, but it's just a nit.
+
+* html/parser/BackgroundHTMLParser.cpp:
+(WebCore::BackgroundHTMLParser::BackgroundHTMLParser):
+(WebCore::BackgroundHTMLParser::createPartial):
+* html/parser/BackgroundHTMLParser.h:
+(WebCore::BackgroundHTMLParser::create):
+(BackgroundHTMLParser):
+
 2013-01-23  Abhishek Arya  infe...@chromium.org
 
 Add support for ASSERT_WITH_SECURITY_IMPLICATION.


Modified: trunk/Source/WebCore/html/parser/BackgroundHTMLParser.cpp (140634 => 140635)

--- trunk/Source/WebCore/html/parser/BackgroundHTMLParser.cpp	2013-01-24 02:57:46 UTC (rev 140634)
+++ trunk/Source/WebCore/html/parser/BackgroundHTMLParser.cpp	2013-01-24 03:24:32 UTC (rev 140635)
@@ -82,7 +82,7 @@
 return m_backgroundParsers;
 }
 
-BackgroundHTMLParser::BackgroundHTMLParser(const HTMLParserOptions options, WeakPtrHTMLDocumentParser parser)
+BackgroundHTMLParser::BackgroundHTMLParser(const HTMLParserOptions options, const WeakPtrHTMLDocumentParser parser)
 : m_inForeignContent(false)
 , m_tokenizer(HTMLTokenizer::create(options))
 , m_options(options)
@@ -178,7 +178,7 @@
 m_pendingTokens = adoptPtr(new CompactHTMLTokenStream);
 }
 
-void BackgroundHTMLParser::createPartial(ParserIdentifier identifier, HTMLParserOptions options, WeakPtrHTMLDocumentParser parser)
+void BackgroundHTMLParser::createPartial(ParserIdentifier identifier, const HTMLParserOptions options, const WeakPtrHTMLDocumentParser parser)
 {
 ASSERT(!parserMap().backgroundParsers().get(identifier));
 parserMap().backgroundParsers().set(identifier, BackgroundHTMLParser::create(options, parser));


Modified: trunk/Source/WebCore/html/parser/BackgroundHTMLParser.h (140634 => 140635)

--- trunk/Source/WebCore/html/parser/BackgroundHTMLParser.h	2013-01-24 02:57:46 UTC (rev 140634)
+++ trunk/Source/WebCore/html/parser/BackgroundHTMLParser.h	2013-01-24 03:24:32 UTC (rev 140635)
@@ -45,18 +45,18 @@
 void append(const String);
 void finish();
 
-static PassOwnPtrBackgroundHTMLParser create(const HTMLParserOptions options, WeakPtrHTMLDocumentParser parser)
+static PassOwnPtrBackgroundHTMLParser create(const HTMLParserOptions options, const WeakPtrHTMLDocumentParser parser)
 {
 return adoptPtr(new BackgroundHTMLParser(options, parser));
 }
 
-static void createPartial(ParserIdentifier, HTMLParserOptions, WeakPtrHTMLDocumentParser);
+static void createPartial(ParserIdentifier, const HTMLParserOptions, const WeakPtrHTMLDocumentParser);
 static void stopPartial(ParserIdentifier);
 static void appendPartial(ParserIdentifier, const String input);
 static void finishPartial(ParserIdentifier);
 
 private:
-BackgroundHTMLParser(const HTMLParserOptions, WeakPtrHTMLDocumentParser);
+BackgroundHTMLParser(const HTMLParserOptions, const WeakPtrHTMLDocumentParser);
 
 void markEndOfFile();
 void pumpTokenizer();






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [140403] trunk/Source/WebCore

2013-01-22 Thread abarth
Title: [140403] trunk/Source/WebCore








Revision 140403
Author aba...@webkit.org
Date 2013-01-22 02:26:20 -0800 (Tue, 22 Jan 2013)


Log Message
AtomicMarkupTokenBase must die
https://bugs.webkit.org/show_bug.cgi?id=107513

Reviewed by Eric Seidel.

Now that NEW_XML has been removed from the tree, there is no reason to
have AtomicMarkupTokenBase exist as a templated base class for
AtomicHTMLToken. This patch just merges the code back into
AtomicHTMLToken.

* html/parser/HTMLToken.h:
(AtomicHTMLToken):
(WebCore::AtomicHTMLToken::type):
(WebCore::AtomicHTMLToken::name):
(WebCore::AtomicHTMLToken::setName):
(WebCore::AtomicHTMLToken::selfClosing):
(WebCore::AtomicHTMLToken::getAttributeItem):
(WebCore::AtomicHTMLToken::attributes):
(WebCore::AtomicHTMLToken::characters):
(WebCore::AtomicHTMLToken::charactersLength):
(WebCore::AtomicHTMLToken::isAll8BitData):
(WebCore::AtomicHTMLToken::comment):
(WebCore::AtomicHTMLToken::publicIdentifier):
(WebCore::AtomicHTMLToken::systemIdentifier):
(WebCore::AtomicHTMLToken::clearExternalCharacters):
(WebCore::AtomicHTMLToken::AtomicHTMLToken):
(WebCore::AtomicMarkupTokenBase::initializeAttributes):
(WebCore):
* xml/parser/MarkupTokenBase.h:

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/html/parser/HTMLToken.h
trunk/Source/WebCore/html/parser/HTMLTokenizer.cpp
trunk/Source/WebCore/xml/parser/MarkupTokenBase.h




Diff

Modified: trunk/Source/WebCore/ChangeLog (140402 => 140403)

--- trunk/Source/WebCore/ChangeLog	2013-01-22 10:24:30 UTC (rev 140402)
+++ trunk/Source/WebCore/ChangeLog	2013-01-22 10:26:20 UTC (rev 140403)
@@ -1,3 +1,35 @@
+2013-01-22  Adam Barth  aba...@webkit.org
+
+AtomicMarkupTokenBase must die
+https://bugs.webkit.org/show_bug.cgi?id=107513
+
+Reviewed by Eric Seidel.
+
+Now that NEW_XML has been removed from the tree, there is no reason to
+have AtomicMarkupTokenBase exist as a templated base class for
+AtomicHTMLToken. This patch just merges the code back into
+AtomicHTMLToken.
+
+* html/parser/HTMLToken.h:
+(AtomicHTMLToken):
+(WebCore::AtomicHTMLToken::type):
+(WebCore::AtomicHTMLToken::name):
+(WebCore::AtomicHTMLToken::setName):
+(WebCore::AtomicHTMLToken::selfClosing):
+(WebCore::AtomicHTMLToken::getAttributeItem):
+(WebCore::AtomicHTMLToken::attributes):
+(WebCore::AtomicHTMLToken::characters):
+(WebCore::AtomicHTMLToken::charactersLength):
+(WebCore::AtomicHTMLToken::isAll8BitData):
+(WebCore::AtomicHTMLToken::comment):
+(WebCore::AtomicHTMLToken::publicIdentifier):
+(WebCore::AtomicHTMLToken::systemIdentifier):
+(WebCore::AtomicHTMLToken::clearExternalCharacters):
+(WebCore::AtomicHTMLToken::AtomicHTMLToken):
+(WebCore::AtomicMarkupTokenBase::initializeAttributes):
+(WebCore):
+* xml/parser/MarkupTokenBase.h:
+
 2013-01-22  Eric Seidel  e...@webkit.org
 
 Turn on ENABLE_THREADED_HTML_PARSER for Chromium (it's still disabled at runtime)


Modified: trunk/Source/WebCore/html/parser/HTMLToken.h (140402 => 140403)

--- trunk/Source/WebCore/html/parser/HTMLToken.h	2013-01-22 10:24:30 UTC (rev 140402)
+++ trunk/Source/WebCore/html/parser/HTMLToken.h	2013-01-22 10:26:20 UTC (rev 140403)
@@ -61,7 +61,7 @@
 }
 };
 
-class AtomicHTMLToken : public AtomicMarkupTokenBaseHTMLToken, public RefCountedAtomicHTMLToken {
+class AtomicHTMLToken : public RefCountedAtomicHTMLToken {
 WTF_MAKE_NONCOPYABLE(AtomicHTMLToken);
 public:
 static PassRefPtrAtomicHTMLToken create(HTMLToken token)
@@ -88,16 +88,130 @@
 ASSERT(m_type == HTMLTokenTypes::DOCTYPE);
 return m_doctypeData-m_forceQuirks;
 }
+
+HTMLTokenTypes::Type type() const { return m_type; }
+
+const AtomicString name() const
+{
+ASSERT(usesName());
+return m_name;
+}
+
+void setName(const AtomicString name)
+{
+ASSERT(usesName());
+m_name = name;
+}
+
+bool selfClosing() const
+{
+ASSERT(m_type == HTMLTokenTypes::StartTag || m_type == HTMLTokenTypes::EndTag);
+return m_selfClosing;
+}
+
+Attribute* getAttributeItem(const QualifiedName attributeName)
+{
+ASSERT(usesAttributes());
+return findAttributeInVector(m_attributes, attributeName);
+}
+
+VectorAttribute attributes()
+{
+ASSERT(usesAttributes());
+return m_attributes;
+}
+
+const VectorAttribute attributes() const
+{
+ASSERT(usesAttributes());
+return m_attributes;
+}
+
+const UChar* characters() const
+{
+ASSERT(m_type == HTMLTokenTypes::Character);
+return m_externalCharacters;
+}
+
+size_t charactersLength() const
+{
+ASSERT(m_type == HTMLTokenTypes::Character);
+return m_externalCharactersLength;
+}
+
+bool isAll8BitData() const
+{
+return 

[webkit-changes] [140441] trunk/Source/WebCore

2013-01-22 Thread abarth
Title: [140441] trunk/Source/WebCore








Revision 140441
Author aba...@webkit.org
Date 2013-01-22 11:12:15 -0800 (Tue, 22 Jan 2013)


Log Message
BackgroundHTMLParser should simulate tree building in a separate function
https://bugs.webkit.org/show_bug.cgi?id=107569

Reviewed by Eric Seidel.

This patch cleans up BackgroundHTMLParser::pumpTokenizer to prepare for
implementing speculative parsing.

* html/parser/BackgroundHTMLParser.cpp:
(WebCore::BackgroundHTMLParser::simulateTreeBuilder):
(WebCore):
(WebCore::BackgroundHTMLParser::pumpTokenizer):
* html/parser/BackgroundHTMLParser.h:
(BackgroundHTMLParser):
* page/Settings.in:

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/html/parser/BackgroundHTMLParser.cpp
trunk/Source/WebCore/html/parser/BackgroundHTMLParser.h




Diff

Modified: trunk/Source/WebCore/ChangeLog (140440 => 140441)

--- trunk/Source/WebCore/ChangeLog	2013-01-22 18:52:52 UTC (rev 140440)
+++ trunk/Source/WebCore/ChangeLog	2013-01-22 19:12:15 UTC (rev 140441)
@@ -1,3 +1,21 @@
+2013-01-22  Adam Barth  aba...@webkit.org
+
+BackgroundHTMLParser should simulate tree building in a separate function
+https://bugs.webkit.org/show_bug.cgi?id=107569
+
+Reviewed by Eric Seidel.
+
+This patch cleans up BackgroundHTMLParser::pumpTokenizer to prepare for
+implementing speculative parsing.
+
+* html/parser/BackgroundHTMLParser.cpp:
+(WebCore::BackgroundHTMLParser::simulateTreeBuilder):
+(WebCore):
+(WebCore::BackgroundHTMLParser::pumpTokenizer):
+* html/parser/BackgroundHTMLParser.h:
+(BackgroundHTMLParser):
+* page/Settings.in:
+
 2013-01-22  Sheriff Bot  webkit.review@gmail.com
 
 Unreviewed, rolling out r140435.


Modified: trunk/Source/WebCore/html/parser/BackgroundHTMLParser.cpp (140440 => 140441)

--- trunk/Source/WebCore/html/parser/BackgroundHTMLParser.cpp	2013-01-22 18:52:52 UTC (rev 140440)
+++ trunk/Source/WebCore/html/parser/BackgroundHTMLParser.cpp	2013-01-22 19:12:15 UTC (rev 140441)
@@ -118,6 +118,42 @@
 pumpTokenizer();
 }
 
+void BackgroundHTMLParser::simulateTreeBuilder(const CompactHTMLToken token)
+{
+if (token.type() == HTMLTokenTypes::StartTag) {
+const String tagName = token.data();
+if (threadSafeMatch(tagName, SVGNames::svgTag)
+|| threadSafeMatch(tagName, MathMLNames::mathTag))
+m_inForeignContent = true;
+
+// FIXME: This is just a copy of Tokenizer::updateStateFor which uses threadSafeMatches.
+if (threadSafeMatch(tagName, textareaTag) || threadSafeMatch(tagName, titleTag))
+m_tokenizer-setState(HTMLTokenizerState::RCDATAState);
+else if (threadSafeMatch(tagName, plaintextTag))
+m_tokenizer-setState(HTMLTokenizerState::PLAINTEXTState);
+else if (threadSafeMatch(tagName, scriptTag))
+m_tokenizer-setState(HTMLTokenizerState::ScriptDataState);
+else if (threadSafeMatch(tagName, styleTag)
+|| threadSafeMatch(tagName, iframeTag)
+|| threadSafeMatch(tagName, xmpTag)
+|| (threadSafeMatch(tagName, noembedTag)  m_options.pluginsEnabled)
+|| threadSafeMatch(tagName, noframesTag)
+|| (threadSafeMatch(tagName, noscriptTag)  m_options.scriptEnabled))
+m_tokenizer-setState(HTMLTokenizerState::RAWTEXTState);
+}
+
+if (token.type() == HTMLTokenTypes::EndTag) {
+const String tagName = token.data();
+if (threadSafeMatch(tagName, SVGNames::svgTag) || threadSafeMatch(tagName, MathMLNames::mathTag))
+m_inForeignContent = false;
+if (threadSafeMatch(tagName, scriptTag))
+m_isPausedWaitingForScripts = true;
+}
+
+// FIXME: Need to set setForceNullCharacterReplacement based on m_inForeignContent as well.
+m_tokenizer-setShouldAllowCDATA(m_inForeignContent);
+}
+
 void BackgroundHTMLParser::pumpTokenizer()
 {
 if (m_isPausedWaitingForScripts)
@@ -125,44 +161,13 @@
 
 while (m_tokenizer-nextToken(m_input.current(), m_token)) {
 m_pendingTokens.append(CompactHTMLToken(m_token));
+m_token.clear();
 
-const CompactHTMLToken token = m_pendingTokens.last();
+simulateTreeBuilder(m_pendingTokens.last());
 
-if (token.type() == HTMLTokenTypes::StartTag) {
-const String tagName = token.data();
-if (threadSafeMatch(tagName, SVGNames::svgTag)
-|| threadSafeMatch(tagName, MathMLNames::mathTag))
-m_inForeignContent = true;
+if (m_isPausedWaitingForScripts)
+break;
 
-// FIXME: This is just a copy of Tokenizer::updateStateFor which doesn't use HTMLNames.
-if (threadSafeMatch(tagName, textareaTag) || threadSafeMatch(tagName, titleTag))
-m_tokenizer-setState(HTMLTokenizerState::RCDATAState);
-else if (threadSafeMatch(tagName, plaintextTag))
-

[webkit-changes] [140446] trunk/Source/WebCore

2013-01-22 Thread abarth
Title: [140446] trunk/Source/WebCore








Revision 140446
Author aba...@webkit.org
Date 2013-01-22 11:55:01 -0800 (Tue, 22 Jan 2013)


Log Message
Wean BackgroundHTMLParser off HTMLInputStream
https://bugs.webkit.org/show_bug.cgi?id=107575

Reviewed by Eric Seidel.

The BackgroundHTMLParser doesn't need to use HTMLInputStream because it
doesn't need to handle nested calls to document.write. Instead, we can
just use a SegmentedString directly, which will let us checkpoint
m_input for speculation.

* html/parser/BackgroundHTMLParser.cpp:
(WebCore::BackgroundHTMLParser::append):
(WebCore::BackgroundHTMLParser::finish):
(WebCore::BackgroundHTMLParser::markEndOfFile):
(WebCore):
(WebCore::BackgroundHTMLParser::pumpTokenizer):
* html/parser/BackgroundHTMLParser.h:
(BackgroundHTMLParser):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/html/parser/BackgroundHTMLParser.cpp
trunk/Source/WebCore/html/parser/BackgroundHTMLParser.h




Diff

Modified: trunk/Source/WebCore/ChangeLog (140445 => 140446)

--- trunk/Source/WebCore/ChangeLog	2013-01-22 19:24:58 UTC (rev 140445)
+++ trunk/Source/WebCore/ChangeLog	2013-01-22 19:55:01 UTC (rev 140446)
@@ -1,3 +1,24 @@
+2013-01-22  Adam Barth  aba...@webkit.org
+
+Wean BackgroundHTMLParser off HTMLInputStream
+https://bugs.webkit.org/show_bug.cgi?id=107575
+
+Reviewed by Eric Seidel.
+
+The BackgroundHTMLParser doesn't need to use HTMLInputStream because it
+doesn't need to handle nested calls to document.write. Instead, we can
+just use a SegmentedString directly, which will let us checkpoint
+m_input for speculation.
+
+* html/parser/BackgroundHTMLParser.cpp:
+(WebCore::BackgroundHTMLParser::append):
+(WebCore::BackgroundHTMLParser::finish):
+(WebCore::BackgroundHTMLParser::markEndOfFile):
+(WebCore):
+(WebCore::BackgroundHTMLParser::pumpTokenizer):
+* html/parser/BackgroundHTMLParser.h:
+(BackgroundHTMLParser):
+
 2013-01-22  Sergio Villar Senin  svil...@igalia.com
 
 [Soup] Random thread crashes


Modified: trunk/Source/WebCore/html/parser/BackgroundHTMLParser.cpp (140445 => 140446)

--- trunk/Source/WebCore/html/parser/BackgroundHTMLParser.cpp	2013-01-22 19:24:58 UTC (rev 140445)
+++ trunk/Source/WebCore/html/parser/BackgroundHTMLParser.cpp	2013-01-22 19:55:01 UTC (rev 140446)
@@ -101,7 +101,7 @@
 
 void BackgroundHTMLParser::append(const String input)
 {
-m_input.appendToEnd(input);
+m_input.append(SegmentedString(input));
 pumpTokenizer();
 }
 
@@ -113,11 +113,21 @@
 
 void BackgroundHTMLParser::finish()
 {
-ASSERT(!m_input.haveSeenEndOfFile());
-m_input.markEndOfFile();
+markEndOfFile();
 pumpTokenizer();
 }
 
+void BackgroundHTMLParser::markEndOfFile()
+{
+// FIXME: This should use InputStreamPreprocessor::endOfFileMarker
+// once InputStreamPreprocessor is split off into its own header.
+const LChar endOfFileMarker = 0;
+
+ASSERT(!m_input.isClosed());
+m_input.append(SegmentedString(String(endOfFileMarker, 1)));
+m_input.close();
+}
+
 void BackgroundHTMLParser::simulateTreeBuilder(const CompactHTMLToken token)
 {
 if (token.type() == HTMLTokenTypes::StartTag) {
@@ -159,7 +169,7 @@
 if (m_isPausedWaitingForScripts)
 return;
 
-while (m_tokenizer-nextToken(m_input.current(), m_token)) {
+while (m_tokenizer-nextToken(m_input, m_token)) {
 m_pendingTokens.append(CompactHTMLToken(m_token));
 m_token.clear();
 


Modified: trunk/Source/WebCore/html/parser/BackgroundHTMLParser.h (140445 => 140446)

--- trunk/Source/WebCore/html/parser/BackgroundHTMLParser.h	2013-01-22 19:24:58 UTC (rev 140445)
+++ trunk/Source/WebCore/html/parser/BackgroundHTMLParser.h	2013-01-22 19:55:01 UTC (rev 140446)
@@ -29,7 +29,6 @@
 #if ENABLE(THREADED_HTML_PARSER)
 
 #include CompactHTMLToken.h
-#include HTMLInputStream.h
 #include HTMLParserOptions.h
 #include HTMLToken.h
 #include HTMLTokenizer.h
@@ -60,12 +59,13 @@
 private:
 explicit BackgroundHTMLParser(const HTMLParserOptions, ParserIdentifier);
 
+void markEndOfFile();
 void pumpTokenizer();
 void simulateTreeBuilder(const CompactHTMLToken);
 
 void sendTokensToMainThread();
 
-HTMLInputStream m_input;
+SegmentedString m_input;
 HTMLToken m_token;
 bool m_isPausedWaitingForScripts;
 bool m_inForeignContent; // FIXME: We need a stack of foreign content markers.






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [140478] trunk/Source/WebCore

2013-01-22 Thread abarth
Title: [140478] trunk/Source/WebCore








Revision 140478
Author aba...@webkit.org
Date 2013-01-22 15:14:56 -0800 (Tue, 22 Jan 2013)


Log Message
The BackgroundHTMLParser shouldn't pause when waiting for scripts
https://bugs.webkit.org/show_bug.cgi?id=107584

Reviewed by Eric Seidel.

Previously, the BackgroundHTMLParser would pause itself when it
encountered a scrip tag and wait for a signal from the main thread to
continue. After this patch, the BackgroundHTMLParser continues ahead
and the main thread keeps a queue of pending tokens.

This patch brings us closer to speculative parsing because when the
BackgroundHTMLParser is continuing ahead, it is speculating that it is
in the correct state. A future patch will let us abort incorret
speculations and resume from an eariler point in the input stream.

* html/parser/BackgroundHTMLParser.cpp:
(WebCore::checkThatTokensAreSafeToSendToAnotherThread):
(WebCore::BackgroundHTMLParser::BackgroundHTMLParser):
(WebCore::BackgroundHTMLParser::simulateTreeBuilder):
(WebCore::BackgroundHTMLParser::pumpTokenizer):
(WebCore::TokenDelivery::TokenDelivery):
(TokenDelivery):
(WebCore::TokenDelivery::execute):
(WebCore::BackgroundHTMLParser::sendTokensToMainThread):
* html/parser/BackgroundHTMLParser.h:
(BackgroundHTMLParser):
* html/parser/CompactHTMLToken.h:
(WebCore):
* html/parser/HTMLDocumentParser.cpp:
(WebCore::HTMLDocumentParser::didReceiveTokensFromBackgroundParser):
(WebCore):
(WebCore::HTMLDocumentParser::processTokensFromBackgroundParser):
(WebCore::HTMLDocumentParser::resumeParsingAfterScriptExecution):
* html/parser/HTMLDocumentParser.h:
(HTMLDocumentParser):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/html/parser/BackgroundHTMLParser.cpp
trunk/Source/WebCore/html/parser/BackgroundHTMLParser.h
trunk/Source/WebCore/html/parser/CompactHTMLToken.h
trunk/Source/WebCore/html/parser/HTMLDocumentParser.cpp
trunk/Source/WebCore/html/parser/HTMLDocumentParser.h




Diff

Modified: trunk/Source/WebCore/ChangeLog (140477 => 140478)

--- trunk/Source/WebCore/ChangeLog	2013-01-22 23:13:58 UTC (rev 140477)
+++ trunk/Source/WebCore/ChangeLog	2013-01-22 23:14:56 UTC (rev 140478)
@@ -1,3 +1,41 @@
+2013-01-22  Adam Barth  aba...@webkit.org
+
+The BackgroundHTMLParser shouldn't pause when waiting for scripts
+https://bugs.webkit.org/show_bug.cgi?id=107584
+
+Reviewed by Eric Seidel.
+
+Previously, the BackgroundHTMLParser would pause itself when it
+encountered a scrip tag and wait for a signal from the main thread to
+continue. After this patch, the BackgroundHTMLParser continues ahead
+and the main thread keeps a queue of pending tokens.
+
+This patch brings us closer to speculative parsing because when the
+BackgroundHTMLParser is continuing ahead, it is speculating that it is
+in the correct state. A future patch will let us abort incorret
+speculations and resume from an eariler point in the input stream.
+
+* html/parser/BackgroundHTMLParser.cpp:
+(WebCore::checkThatTokensAreSafeToSendToAnotherThread):
+(WebCore::BackgroundHTMLParser::BackgroundHTMLParser):
+(WebCore::BackgroundHTMLParser::simulateTreeBuilder):
+(WebCore::BackgroundHTMLParser::pumpTokenizer):
+(WebCore::TokenDelivery::TokenDelivery):
+(TokenDelivery):
+(WebCore::TokenDelivery::execute):
+(WebCore::BackgroundHTMLParser::sendTokensToMainThread):
+* html/parser/BackgroundHTMLParser.h:
+(BackgroundHTMLParser):
+* html/parser/CompactHTMLToken.h:
+(WebCore):
+* html/parser/HTMLDocumentParser.cpp:
+(WebCore::HTMLDocumentParser::didReceiveTokensFromBackgroundParser):
+(WebCore):
+(WebCore::HTMLDocumentParser::processTokensFromBackgroundParser):
+(WebCore::HTMLDocumentParser::resumeParsingAfterScriptExecution):
+* html/parser/HTMLDocumentParser.h:
+(HTMLDocumentParser):
+
 2013-01-22  Simon Fraser  simon.fra...@apple.com
 
 Fix scrollperf logging


Modified: trunk/Source/WebCore/html/parser/BackgroundHTMLParser.cpp (140477 => 140478)

--- trunk/Source/WebCore/html/parser/BackgroundHTMLParser.cpp	2013-01-22 23:13:58 UTC (rev 140477)
+++ trunk/Source/WebCore/html/parser/BackgroundHTMLParser.cpp	2013-01-22 23:14:56 UTC (rev 140478)
@@ -45,10 +45,10 @@
 
 #ifndef NDEBUG
 
-static void checkThatTokensAreSafeToSendToAnotherThread(const VectorCompactHTMLToken tokens)
+static void checkThatTokensAreSafeToSendToAnotherThread(const CompactHTMLTokenStream* tokens)
 {
-for (size_t i = 0; i  tokens.size(); ++i)
-ASSERT(tokens[i].isSafeToSendToAnotherThread());
+for (size_t i = 0; i  tokens-size(); ++i)
+ASSERT(tokens-at(i).isSafeToSendToAnotherThread());
 }
 
 #endif
@@ -92,11 +92,11 @@
 }
 
 BackgroundHTMLParser::BackgroundHTMLParser(const HTMLParserOptions options, ParserIdentifier identifier)
-: 

[webkit-changes] [140040] trunk/Source/WTF

2013-01-17 Thread abarth
Title: [140040] trunk/Source/WTF








Revision 140040
Author aba...@webkit.org
Date 2013-01-17 14:17:12 -0800 (Thu, 17 Jan 2013)


Log Message
Teach Functional.h about WeakPtr
https://bugs.webkit.org/show_bug.cgi?id=107105

Reviewed by Anders Carlsson.

A common pattern in cross-thread communication is to call member
functions of an object on a remote thread. If the caller's reference to
the object on the remote thread is a WeakPtr, the caller usually wants
to validate that the object still exists when the call actually takes
place.

It's possible to do this manually for every cross-thread call, but that
is tiresome and error prone. Instead, we can teach bind to validate
WeakPtr arguments when passed as the this parameter to a member
function.

* wtf/Functional.h:
(WTF::ParamStorageTraits::validate):

Modified Paths

trunk/Source/WTF/ChangeLog
trunk/Source/WTF/wtf/Functional.h




Diff

Modified: trunk/Source/WTF/ChangeLog (140039 => 140040)

--- trunk/Source/WTF/ChangeLog	2013-01-17 22:06:13 UTC (rev 140039)
+++ trunk/Source/WTF/ChangeLog	2013-01-17 22:17:12 UTC (rev 140040)
@@ -1,3 +1,24 @@
+2013-01-17  Adam Barth  aba...@webkit.org
+
+Teach Functional.h about WeakPtr
+https://bugs.webkit.org/show_bug.cgi?id=107105
+
+Reviewed by Anders Carlsson.
+
+A common pattern in cross-thread communication is to call member
+functions of an object on a remote thread. If the caller's reference to
+the object on the remote thread is a WeakPtr, the caller usually wants
+to validate that the object still exists when the call actually takes
+place.
+
+It's possible to do this manually for every cross-thread call, but that
+is tiresome and error prone. Instead, we can teach bind to validate
+WeakPtr arguments when passed as the this parameter to a member
+function.
+
+* wtf/Functional.h:
+(WTF::ParamStorageTraits::validate):
+
 2013-01-17  David Kilzer  ddkil...@apple.com
 
 Fix vprintf_stderr_common() to compile with -Wshorten-64-to-32


Modified: trunk/Source/WTF/wtf/Functional.h (140039 => 140040)

--- trunk/Source/WTF/wtf/Functional.h	2013-01-17 22:06:13 UTC (rev 140039)
+++ trunk/Source/WTF/wtf/Functional.h	2013-01-17 22:17:12 UTC (rev 140040)
@@ -30,6 +30,7 @@
 #include wtf/PassRefPtr.h
 #include wtf/RefPtr.h
 #include wtf/ThreadSafeRefCounted.h
+#include wtf/WeakPtr.h
 
 #if PLATFORM(MAC)  COMPILER_SUPPORTS(BLOCKS)
 #include Block.h
@@ -82,6 +83,7 @@
 public:
 typedef R ResultType;
 static const bool shouldRefFirstParameter = false;
+static const bool shouldValidateFirstParameter = false;
 
 explicit FunctionWrapper(R (*function)())
 : m_function(function)
@@ -102,6 +104,7 @@
 public:
 typedef R ResultType;
 static const bool shouldRefFirstParameter = false;
+static const bool shouldValidateFirstParameter = false;
 
 explicit FunctionWrapper(R (*function)(P1))
 : m_function(function)
@@ -122,6 +125,7 @@
 public:
 typedef R ResultType;
 static const bool shouldRefFirstParameter = false;
+static const bool shouldValidateFirstParameter = false;
 
 explicit FunctionWrapper(R (*function)(P1, P2))
 : m_function(function)
@@ -142,6 +146,7 @@
 public:
 typedef R ResultType;
 static const bool shouldRefFirstParameter = false;
+static const bool shouldValidateFirstParameter = false;
 
 explicit FunctionWrapper(R (*function)(P1, P2, P3))
 : m_function(function)
@@ -162,6 +167,7 @@
 public:
 typedef R ResultType;
 static const bool shouldRefFirstParameter = HasRefAndDerefC::value;
+static const bool shouldValidateFirstParameter = true;
 
 explicit FunctionWrapper(R (C::*function)())
 : m_function(function)
@@ -182,6 +188,7 @@
 public:
 typedef R ResultType;
 static const bool shouldRefFirstParameter = HasRefAndDerefC::value;
+static const bool shouldValidateFirstParameter = true;
 
 explicit FunctionWrapper(R (C::*function)(P1))
 : m_function(function)
@@ -202,6 +209,7 @@
 public:
 typedef R ResultType;
 static const bool shouldRefFirstParameter = HasRefAndDerefC::value;
+static const bool shouldValidateFirstParameter = true;
 
 explicit FunctionWrapper(R (C::*function)(P1, P2))
 : m_function(function)
@@ -222,6 +230,7 @@
 public:
 typedef R ResultType;
 static const bool shouldRefFirstParameter = HasRefAndDerefC::value;
+static const bool shouldValidateFirstParameter = true;
 
 explicit FunctionWrapper(R (C::*function)(P1, P2, P3))
 : m_function(function)
@@ -242,6 +251,7 @@
 public:
 typedef R ResultType;
 static const bool shouldRefFirstParameter = HasRefAndDerefC::value;
+static const bool shouldValidateFirstParameter = true;
 
 explicit FunctionWrapper(R (C::*function)(P1, P2, P3, P4))
 : m_function(function)
@@ -262,6 +272,7 @@
 public:
 typedef R ResultType;
 static const bool 

[webkit-changes] [140079] trunk/Source/WebCore

2013-01-17 Thread abarth
Title: [140079] trunk/Source/WebCore








Revision 140079
Author aba...@webkit.org
Date 2013-01-17 18:00:52 -0800 (Thu, 17 Jan 2013)


Log Message
BackgroundHTMLParser should go 18% faster on html-parser-srcdoc benchmark
https://bugs.webkit.org/show_bug.cgi?id=107201

Reviewed by Tony Gentilcore.

Prior to this patch, we would tokenize all the input before delivering
any tokens to the main thread. Effectively, that prevented the
background parser from running in parallel with the main thread.

This patch causes us to send tokens to the main thread periodically.
The constant in this patch is somewhat arbitrary. We'll need to tune it
later with more realistic workloads.

This patch improves the performance of the html-parser-srcdoc benchmark
by 18%. (This patch is based on Eric's work in
https://github.com/tonygentilcore/webkit/commit/072331194520c7770b5e34baefa948834971.)

* html/parser/BackgroundHTMLParser.cpp:
(WebCore):
(WebCore::BackgroundHTMLParser::pumpTokenizer):
(WebCore::BackgroundHTMLParser::sendTokensToMainThread):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/html/parser/BackgroundHTMLParser.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (140078 => 140079)

--- trunk/Source/WebCore/ChangeLog	2013-01-18 01:58:12 UTC (rev 140078)
+++ trunk/Source/WebCore/ChangeLog	2013-01-18 02:00:52 UTC (rev 140079)
@@ -1,3 +1,27 @@
+2013-01-17  Adam Barth  aba...@webkit.org
+
+BackgroundHTMLParser should go 18% faster on html-parser-srcdoc benchmark
+https://bugs.webkit.org/show_bug.cgi?id=107201
+
+Reviewed by Tony Gentilcore.
+
+Prior to this patch, we would tokenize all the input before delivering
+any tokens to the main thread. Effectively, that prevented the
+background parser from running in parallel with the main thread.
+
+This patch causes us to send tokens to the main thread periodically.
+The constant in this patch is somewhat arbitrary. We'll need to tune it
+later with more realistic workloads.
+
+This patch improves the performance of the html-parser-srcdoc benchmark
+by 18%. (This patch is based on Eric's work in
+https://github.com/tonygentilcore/webkit/commit/072331194520c7770b5e34baefa948834971.)
+
+* html/parser/BackgroundHTMLParser.cpp:
+(WebCore):
+(WebCore::BackgroundHTMLParser::pumpTokenizer):
+(WebCore::BackgroundHTMLParser::sendTokensToMainThread):
+
 2013-01-17  Matt Falkenhagen  fal...@chromium.org
 
 Top layer fails for inline elements


Modified: trunk/Source/WebCore/html/parser/BackgroundHTMLParser.cpp (140078 => 140079)

--- trunk/Source/WebCore/html/parser/BackgroundHTMLParser.cpp	2013-01-18 01:58:12 UTC (rev 140078)
+++ trunk/Source/WebCore/html/parser/BackgroundHTMLParser.cpp	2013-01-18 02:00:52 UTC (rev 140079)
@@ -47,6 +47,9 @@
 
 #endif
 
+// FIXME: Tune this constant based on a benchmark. The current value was choosen arbitrarily.
+static const size_t pendingTokenLimit = 4000;
+
 typedef const void* ParserIdentifier;
 class HTMLDocumentParser;
 
@@ -157,12 +160,11 @@
 // FIXME: Need to set setForceNullCharacterReplacement based on m_inForeignContent as well.
 m_tokenizer-setShouldAllowCDATA(m_inForeignContent);
 m_token.clear();
+
+if (m_pendingTokens.size() = pendingTokenLimit)
+sendTokensToMainThread();
 }
 
-#ifndef NDEBUG
-checkThatTokensAreSafeToSendToAnotherThread(m_pendingTokens);
-#endif
-
 sendTokensToMainThread();
 }
 
@@ -199,6 +201,15 @@
 
 void BackgroundHTMLParser::sendTokensToMainThread()
 {
+if (m_pendingTokens.isEmpty()) {
+ASSERT(!m_isPausedWaitingForScripts);
+return;
+}
+
+#ifndef NDEBUG
+checkThatTokensAreSafeToSendToAnotherThread(m_pendingTokens);
+#endif
+
 TokenDelivery* delivery = new TokenDelivery;
 delivery-identifier = m_parserIdentifer;
 delivery-tokens.swap(m_pendingTokens);






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [139938] trunk/Source/WebCore

2013-01-16 Thread abarth
Title: [139938] trunk/Source/WebCore








Revision 139938
Author aba...@webkit.org
Date 2013-01-16 17:18:26 -0800 (Wed, 16 Jan 2013)


Log Message
Teach HTMLParserOptions about Settings::threadedHTMLParser
https://bugs.webkit.org/show_bug.cgi?id=107068

Reviewed by Tony Gentilcore.

We use this option to enable the threaded HTML parser at runtime.

* html/parser/HTMLParserOptions.cpp:
(WebCore::HTMLParserOptions::HTMLParserOptions):
* html/parser/HTMLParserOptions.h:
(HTMLParserOptions):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/html/parser/HTMLParserOptions.cpp
trunk/Source/WebCore/html/parser/HTMLParserOptions.h




Diff

Modified: trunk/Source/WebCore/ChangeLog (139937 => 139938)

--- trunk/Source/WebCore/ChangeLog	2013-01-17 01:11:15 UTC (rev 139937)
+++ trunk/Source/WebCore/ChangeLog	2013-01-17 01:18:26 UTC (rev 139938)
@@ -1,3 +1,17 @@
+2013-01-16  Adam Barth  aba...@webkit.org
+
+Teach HTMLParserOptions about Settings::threadedHTMLParser
+https://bugs.webkit.org/show_bug.cgi?id=107068
+
+Reviewed by Tony Gentilcore.
+
+We use this option to enable the threaded HTML parser at runtime.
+
+* html/parser/HTMLParserOptions.cpp:
+(WebCore::HTMLParserOptions::HTMLParserOptions):
+* html/parser/HTMLParserOptions.h:
+(HTMLParserOptions):
+
 2013-01-16  Brady Eidson  beid...@apple.com
 
 Synchronous XMLHTTPRequests need to go to the NetworkProcess.


Modified: trunk/Source/WebCore/html/parser/HTMLParserOptions.cpp (139937 => 139938)

--- trunk/Source/WebCore/html/parser/HTMLParserOptions.cpp	2013-01-17 01:11:15 UTC (rev 139937)
+++ trunk/Source/WebCore/html/parser/HTMLParserOptions.cpp	2013-01-17 01:18:26 UTC (rev 139938)
@@ -40,6 +40,9 @@
 
 Settings* settings = document ? document-settings() : 0;
 usePreHTML5ParserQuirks = settings  settings-usePreHTML5ParserQuirks();
+#if ENABLE(THREADED_HTML_PARSER)
+useThreading = settings  settings-threadedHTMLParser();
+#endif
 maximumDOMTreeDepth = settings ? settings-maximumHTMLParserDOMTreeDepth() : Settings::defaultMaximumHTMLParserDOMTreeDepth;
 }
 


Modified: trunk/Source/WebCore/html/parser/HTMLParserOptions.h (139937 => 139938)

--- trunk/Source/WebCore/html/parser/HTMLParserOptions.h	2013-01-17 01:11:15 UTC (rev 139937)
+++ trunk/Source/WebCore/html/parser/HTMLParserOptions.h	2013-01-17 01:18:26 UTC (rev 139938)
@@ -35,6 +35,9 @@
 bool scriptEnabled;
 bool pluginsEnabled;
 bool usePreHTML5ParserQuirks;
+#if ENABLE(THREADED_HTML_PARSER)
+bool useThreading;
+#endif
 unsigned maximumDOMTreeDepth;
 
 explicit HTMLParserOptions(Document*);






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [139944] trunk/Source/WebCore

2013-01-16 Thread abarth
Title: [139944] trunk/Source/WebCore








Revision 139944
Author aba...@webkit.org
Date 2013-01-16 18:05:33 -0800 (Wed, 16 Jan 2013)


Log Message
Introduce HTMLParserThread to be able to parse on a background thread
https://bugs.webkit.org/show_bug.cgi?id=107071

Reviewed by Tony Gentilcore.

This patch introduces a simple thread class that we can use to parse
HTML. This patch is unlikely to be the final design because we'll
likely want to use libdispatch or some other platform-specific thread
pool. However, this implementation is enough to let us work on the
parser-specific aspects of this feature.

* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* html/parser/HTMLParserThread.cpp: Added.
(WebCore):
(WebCore::HTMLParserThread::HTMLParserThread):
(WebCore::HTMLParserThread::~HTMLParserThread):
(WebCore::HTMLParserThread::start):
(WebCore::HTMLParserThread::stop):
(WebCore::HTMLParserThread::shared):
(WebCore::HTMLParserThread::postTask):
(WebCore::HTMLParserThread::threadStart):
(WebCore::HTMLParserThread::runLoop):
* html/parser/HTMLParserThread.h: Added.
(WebCore):
(HTMLParserThread):
(WebCore::HTMLParserThread::create):
(WebCore::HTMLParserThread::threadId):

Modified Paths

trunk/Source/WebCore/CMakeLists.txt
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/GNUmakefile.list.am
trunk/Source/WebCore/Target.pri
trunk/Source/WebCore/WebCore.gypi
trunk/Source/WebCore/WebCore.vcproj/WebCore.vcproj
trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj


Added Paths

trunk/Source/WebCore/html/parser/HTMLParserThread.cpp
trunk/Source/WebCore/html/parser/HTMLParserThread.h




Diff

Modified: trunk/Source/WebCore/CMakeLists.txt (139943 => 139944)

--- trunk/Source/WebCore/CMakeLists.txt	2013-01-17 01:57:52 UTC (rev 139943)
+++ trunk/Source/WebCore/CMakeLists.txt	2013-01-17 02:05:33 UTC (rev 139944)
@@ -1535,6 +1535,7 @@
 html/parser/HTMLParserIdioms.cpp
 html/parser/HTMLParserOptions.cpp
 html/parser/HTMLParserScheduler.cpp
+html/parser/HTMLParserThread.cpp
 html/parser/HTMLFormattingElementList.cpp
 html/parser/HTMLMetaCharsetParser.cpp
 html/parser/HTMLPreloadScanner.cpp


Modified: trunk/Source/WebCore/ChangeLog (139943 => 139944)

--- trunk/Source/WebCore/ChangeLog	2013-01-17 01:57:52 UTC (rev 139943)
+++ trunk/Source/WebCore/ChangeLog	2013-01-17 02:05:33 UTC (rev 139944)
@@ -1,3 +1,38 @@
+2013-01-16  Adam Barth  aba...@webkit.org
+
+Introduce HTMLParserThread to be able to parse on a background thread
+https://bugs.webkit.org/show_bug.cgi?id=107071
+
+Reviewed by Tony Gentilcore.
+
+This patch introduces a simple thread class that we can use to parse
+HTML. This patch is unlikely to be the final design because we'll
+likely want to use libdispatch or some other platform-specific thread
+pool. However, this implementation is enough to let us work on the
+parser-specific aspects of this feature.
+
+* CMakeLists.txt:
+* GNUmakefile.list.am:
+* Target.pri:
+* WebCore.gypi:
+* WebCore.vcproj/WebCore.vcproj:
+* WebCore.xcodeproj/project.pbxproj:
+* html/parser/HTMLParserThread.cpp: Added.
+(WebCore):
+(WebCore::HTMLParserThread::HTMLParserThread):
+(WebCore::HTMLParserThread::~HTMLParserThread):
+(WebCore::HTMLParserThread::start):
+(WebCore::HTMLParserThread::stop):
+(WebCore::HTMLParserThread::shared):
+(WebCore::HTMLParserThread::postTask):
+(WebCore::HTMLParserThread::threadStart):
+(WebCore::HTMLParserThread::runLoop):
+* html/parser/HTMLParserThread.h: Added.
+(WebCore):
+(HTMLParserThread):
+(WebCore::HTMLParserThread::create):
+(WebCore::HTMLParserThread::threadId):
+
 2013-01-16  MORITA Hajime  morr...@google.com
 
 WebCore::ScriptRunner::timerFired() is reported to crash.


Modified: trunk/Source/WebCore/GNUmakefile.list.am (139943 => 139944)

--- trunk/Source/WebCore/GNUmakefile.list.am	2013-01-17 01:57:52 UTC (rev 139943)
+++ trunk/Source/WebCore/GNUmakefile.list.am	2013-01-17 02:05:33 UTC (rev 139944)
@@ -3554,6 +3554,8 @@
 	Source/WebCore/html/parser/HTMLParserOptions.h \
 	Source/WebCore/html/parser/HTMLParserScheduler.cpp \
 	Source/WebCore/html/parser/HTMLParserScheduler.h \
+	Source/WebCore/html/parser/HTMLParserThread.cpp \
+	Source/WebCore/html/parser/HTMLParserThread.h \
 	Source/WebCore/html/parser/HTMLPreloadScanner.cpp \
 	Source/WebCore/html/parser/HTMLPreloadScanner.h \
 	Source/WebCore/html/parser/HTMLScriptRunner.cpp \


Modified: trunk/Source/WebCore/Target.pri (139943 => 139944)

--- trunk/Source/WebCore/Target.pri	2013-01-17 01:57:52 UTC (rev 139943)
+++ trunk/Source/WebCore/Target.pri	2013-01-17 02:05:33 UTC (rev 139944)
@@ -718,6 +718,7 @@
 html/parser/HTMLParserIdioms.cpp \
 html/parser/HTMLParserOptions.cpp 

[webkit-changes] [139950] trunk/Source/WebCore

2013-01-16 Thread abarth
Title: [139950] trunk/Source/WebCore








Revision 139950
Author aba...@webkit.org
Date 2013-01-16 18:55:35 -0800 (Wed, 16 Jan 2013)


Log Message
Introduce BackgroundHTMLParser for parsing HTML on a background thread
https://bugs.webkit.org/show_bug.cgi?id=107083

Reviewed by Eric Seidel.

This patch contains a basic version of an HTML parser that runs on a
background thread. The parser passes the majority of the tests in
fast/parser and a large number of the subtests in html5lib.

Notably absent from this early version of the parser is speculation
(which will eventually replace preload scanning) and atomization (which
we suspect will be important for performance). Our plan is to introduce
those elements in subsequent patches.

* CMakeLists.txt:
* GNUmakefile.list.am:
* Target.pri:
* WebCore.gypi:
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* html/parser/BackgroundHTMLParser.cpp: Added.
(WebCore):
(WebCore::checkThatTokensAreSafeToSendToAnotherThread):
(WebCore::parserMap):
(WebCore::ParserMap::backgroundParsers):
(WebCore::ParserMap::mainThreadParsers):
(WebCore::BackgroundHTMLParser::BackgroundHTMLParser):
(WebCore::BackgroundHTMLParser::append):
(WebCore::BackgroundHTMLParser::continueParsing):
(WebCore::BackgroundHTMLParser::finish):
(WebCore::BackgroundHTMLParser::pumpTokenizer):
(TokenDelivery):
(WebCore::TokenDelivery::execute):
(WebCore::BackgroundHTMLParser::sendTokensToMainThread):
(WebCore::BackgroundHTMLParser::createPartial):
(WebCore::BackgroundHTMLParser::stopPartial):
(WebCore::BackgroundHTMLParser::appendPartial):
(WebCore::BackgroundHTMLParser::continuePartial):
(WebCore::BackgroundHTMLParser::finishPartial):
* html/parser/BackgroundHTMLParser.h: Added.
(WebCore):
(BackgroundHTMLParser):
(WebCore::BackgroundHTMLParser::create):
(ParserMap):
(WebCore::ParserMap::identifierForParser):
* html/parser/HTMLDocumentParser.cpp:
(WebCore):
(WebCore::HTMLDocumentParser::didReceiveTokensFromBackgroundParser):
* html/parser/HTMLDocumentParser.h:
(WebCore):
(HTMLDocumentParser):

Modified Paths

trunk/Source/WebCore/CMakeLists.txt
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/GNUmakefile.list.am
trunk/Source/WebCore/Target.pri
trunk/Source/WebCore/WebCore.gypi
trunk/Source/WebCore/WebCore.vcproj/WebCore.vcproj
trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj
trunk/Source/WebCore/html/parser/HTMLDocumentParser.cpp
trunk/Source/WebCore/html/parser/HTMLDocumentParser.h


Added Paths

trunk/Source/WebCore/html/parser/BackgroundHTMLParser.cpp
trunk/Source/WebCore/html/parser/BackgroundHTMLParser.h




Diff

Modified: trunk/Source/WebCore/CMakeLists.txt (139949 => 139950)

--- trunk/Source/WebCore/CMakeLists.txt	2013-01-17 02:32:37 UTC (rev 139949)
+++ trunk/Source/WebCore/CMakeLists.txt	2013-01-17 02:55:35 UTC (rev 139950)
@@ -1526,6 +1526,7 @@
 html/canvas/WebGLUniformLocation.cpp
 html/canvas/WebGLVertexArrayObjectOES.cpp
 
+html/parser/BackgroundHTMLParser.cpp
 html/parser/CSSPreloadScanner.cpp
 html/parser/CompactHTMLToken.cpp
 html/parser/HTMLConstructionSite.cpp


Modified: trunk/Source/WebCore/ChangeLog (139949 => 139950)

--- trunk/Source/WebCore/ChangeLog	2013-01-17 02:32:37 UTC (rev 139949)
+++ trunk/Source/WebCore/ChangeLog	2013-01-17 02:55:35 UTC (rev 139950)
@@ -1,3 +1,57 @@
+2013-01-16  Adam Barth  aba...@webkit.org
+
+Introduce BackgroundHTMLParser for parsing HTML on a background thread
+https://bugs.webkit.org/show_bug.cgi?id=107083
+
+Reviewed by Eric Seidel.
+
+This patch contains a basic version of an HTML parser that runs on a
+background thread. The parser passes the majority of the tests in
+fast/parser and a large number of the subtests in html5lib.
+
+Notably absent from this early version of the parser is speculation
+(which will eventually replace preload scanning) and atomization (which
+we suspect will be important for performance). Our plan is to introduce
+those elements in subsequent patches.
+
+* CMakeLists.txt:
+* GNUmakefile.list.am:
+* Target.pri:
+* WebCore.gypi:
+* WebCore.vcproj/WebCore.vcproj:
+* WebCore.xcodeproj/project.pbxproj:
+* html/parser/BackgroundHTMLParser.cpp: Added.
+(WebCore):
+(WebCore::checkThatTokensAreSafeToSendToAnotherThread):
+(WebCore::parserMap):
+(WebCore::ParserMap::backgroundParsers):
+(WebCore::ParserMap::mainThreadParsers):
+(WebCore::BackgroundHTMLParser::BackgroundHTMLParser):
+(WebCore::BackgroundHTMLParser::append):
+(WebCore::BackgroundHTMLParser::continueParsing):
+(WebCore::BackgroundHTMLParser::finish):
+(WebCore::BackgroundHTMLParser::pumpTokenizer):
+(TokenDelivery):
+(WebCore::TokenDelivery::execute):
+(WebCore::BackgroundHTMLParser::sendTokensToMainThread):
+(WebCore::BackgroundHTMLParser::createPartial):
+

[webkit-changes] [139954] trunk/Source/WebCore

2013-01-16 Thread abarth
Title: [139954] trunk/Source/WebCore








Revision 139954
Author aba...@webkit.org
Date 2013-01-16 19:42:09 -0800 (Wed, 16 Jan 2013)


Log Message
Address tonyg's feedback on BackgroundHTMLParser
https://bugs.webkit.org/show_bug.cgi?id=107086

Reviewed by Tony Gentilcore.

As requested in https://bugs.webkit.org/show_bug.cgi?id=107083#c5

* html/parser/BackgroundHTMLParser.cpp:
(WebCore::BackgroundHTMLParser::pumpTokenizer):
(TokenDelivery):
(WebCore::TokenDelivery::TokenDelivery):
(WebCore::TokenDelivery::execute):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/html/parser/BackgroundHTMLParser.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (139953 => 139954)

--- trunk/Source/WebCore/ChangeLog	2013-01-17 03:36:48 UTC (rev 139953)
+++ trunk/Source/WebCore/ChangeLog	2013-01-17 03:42:09 UTC (rev 139954)
@@ -1,3 +1,18 @@
+2013-01-16  Adam Barth  aba...@webkit.org
+
+Address tonyg's feedback on BackgroundHTMLParser
+https://bugs.webkit.org/show_bug.cgi?id=107086
+
+Reviewed by Tony Gentilcore.
+
+As requested in https://bugs.webkit.org/show_bug.cgi?id=107083#c5
+
+* html/parser/BackgroundHTMLParser.cpp:
+(WebCore::BackgroundHTMLParser::pumpTokenizer):
+(TokenDelivery):
+(WebCore::TokenDelivery::TokenDelivery):
+(WebCore::TokenDelivery::execute):
+
 2013-01-16  Tony Gentilcore  to...@chromium.org
 
 Introduce a method to build the tree from a CompactHTMLToken


Modified: trunk/Source/WebCore/html/parser/BackgroundHTMLParser.cpp (139953 => 139954)

--- trunk/Source/WebCore/html/parser/BackgroundHTMLParser.cpp	2013-01-17 03:36:48 UTC (rev 139953)
+++ trunk/Source/WebCore/html/parser/BackgroundHTMLParser.cpp	2013-01-17 03:42:09 UTC (rev 139954)
@@ -103,6 +103,11 @@
 if (m_isPausedWaitingForScripts)
 return;
 
+// It's unclear whether we want to use AtomicStrings on the background
+// thread. We will likely eventually use libdispatch to schedule parsing
+// in a separate sequenced queue for each HTMLDocumentParser instance.
+// Once we do that, the code below will be unsafe because libdispatch
+// might schedule us on many different threads.
 DEFINE_STATIC_LOCAL(AtomicString, iframeTag, (iframe, AtomicString::ConstructFromLiteral));
 DEFINE_STATIC_LOCAL(AtomicString, mathTag, (math, AtomicString::ConstructFromLiteral));
 DEFINE_STATIC_LOCAL(AtomicString, noembedTag, (noembed, AtomicString::ConstructFromLiteral));
@@ -162,7 +167,10 @@
 }
 
 class TokenDelivery {
+WTF_MAKE_NONCOPYABLE(TokenDelivery);
 public:
+TokenDelivery() { }
+
 ParserIdentifier identifier;
 VectorCompactHTMLToken tokens;
 
@@ -172,6 +180,9 @@
 HTMLDocumentParser* parser = parserMap().mainThreadParsers().get(delivery-identifier);
 if (parser)
 parser-didReceiveTokensFromBackgroundParser(delivery-tokens);
+// FIXME: Ideally we wouldn't need to call delete manually. Instead
+// we would like an API where the message queue owns the tasks and
+// takes care of deleting them.
 delete delivery;
 }
 };






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [139780] trunk/Source

2013-01-15 Thread abarth
Title: [139780] trunk/Source








Revision 139780
Author aba...@webkit.org
Date 2013-01-15 13:35:08 -0800 (Tue, 15 Jan 2013)


Log Message
Generalize DocumentWeakReference into WTF::WeakPtr
https://bugs.webkit.org/show_bug.cgi?id=106854

Reviewed by Darin Adler.

Source/WebCore:

This patch replaces DocumentWeakReference with WeakPtr. There should be
no change in behavior.

* dom/Document.cpp:
(WebCore):
(WebCore::Document::Document):
(WebCore::Document::~Document):
(WebCore::PerformTaskContext::PerformTaskContext):
(PerformTaskContext):
(WebCore::Document::didReceiveTask):
(WebCore::Document::postTask):
(WebCore::Document::reportMemoryUsage):
* dom/Document.h:
(WebCore):
(Document):

Source/WTF:

This patch adds a simple WeakPtr object to WTF. To use WeakPtr, objects
must hold a WeakPtrFactory member variable, which clears the WeakPtrs
when the object is destructed. The underlying storage is a
ThreadSafeRefCounted WeakReference object, which is shared by all the
WeakPtrs.

WeakPtr is a generalization of DocumentWeakReference, which is used to
check whether the Document object is alive when tasks arive on the main
thread from worker threads. We plan to use a similar pattern in the
threaded HTML parser, but we want to send tasks to objects other than
Document.

* GNUmakefile.list.am:
* WTF.gypi:
* WTF.pro:
* WTF.vcproj/WTF.vcproj:
* WTF.xcodeproj/project.pbxproj:
* wtf/CMakeLists.txt:
* wtf/WeakPtr.h: Added.
(WeakReference):
- The ThreadSafeRefCounted object shared by all the WeakPtr
  instances. This patch uses ThreadSafeRefCounted so that we can
  use WeakPtrs to cancel cross-thread messages.
(WTF::WeakReference::create):
(WTF::WeakReference::get):
(WTF::WeakReference::clear):
- When the object is destroyed, WeakPtrFactory calls this function
  to clear all the WeakPtrs.
(WTF::WeakReference::WeakReference):
(WTF::WeakPtr::WeakPtr):
(WTF::WeakPtr::get):
- We might want to add implicit conversions and Boolean operators
  in the future, but I've kept this class simple for now.
(WTF::WeakPtrFactory::WeakPtrFactory):
(WTF::WeakPtrFactory::~WeakPtrFactory):
(WTF::WeakPtrFactory::createWeakPtr):

Modified Paths

trunk/Source/WTF/ChangeLog
trunk/Source/WTF/GNUmakefile.list.am
trunk/Source/WTF/WTF.gypi
trunk/Source/WTF/WTF.pro
trunk/Source/WTF/WTF.vcproj/WTF.vcproj
trunk/Source/WTF/WTF.xcodeproj/project.pbxproj
trunk/Source/WTF/wtf/CMakeLists.txt
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/dom/Document.cpp
trunk/Source/WebCore/dom/Document.h


Added Paths

trunk/Source/WTF/wtf/WeakPtr.h




Diff

Modified: trunk/Source/WTF/ChangeLog (139779 => 139780)

--- trunk/Source/WTF/ChangeLog	2013-01-15 21:34:59 UTC (rev 139779)
+++ trunk/Source/WTF/ChangeLog	2013-01-15 21:35:08 UTC (rev 139780)
@@ -1,3 +1,47 @@
+2013-01-15  Adam Barth  aba...@webkit.org
+
+Generalize DocumentWeakReference into WTF::WeakPtr
+https://bugs.webkit.org/show_bug.cgi?id=106854
+
+Reviewed by Darin Adler.
+
+This patch adds a simple WeakPtr object to WTF. To use WeakPtr, objects
+must hold a WeakPtrFactory member variable, which clears the WeakPtrs
+when the object is destructed. The underlying storage is a
+ThreadSafeRefCounted WeakReference object, which is shared by all the
+WeakPtrs.
+
+WeakPtr is a generalization of DocumentWeakReference, which is used to
+check whether the Document object is alive when tasks arive on the main
+thread from worker threads. We plan to use a similar pattern in the
+threaded HTML parser, but we want to send tasks to objects other than
+Document.
+
+* GNUmakefile.list.am:
+* WTF.gypi:
+* WTF.pro:
+* WTF.vcproj/WTF.vcproj:
+* WTF.xcodeproj/project.pbxproj:
+* wtf/CMakeLists.txt:
+* wtf/WeakPtr.h: Added.
+(WeakReference):
+- The ThreadSafeRefCounted object shared by all the WeakPtr
+  instances. This patch uses ThreadSafeRefCounted so that we can
+  use WeakPtrs to cancel cross-thread messages.
+(WTF::WeakReference::create):
+(WTF::WeakReference::get):
+(WTF::WeakReference::clear):
+- When the object is destroyed, WeakPtrFactory calls this function
+  to clear all the WeakPtrs.
+(WTF::WeakReference::WeakReference):
+(WTF::WeakPtr::WeakPtr):
+(WTF::WeakPtr::get):
+- We might want to add implicit conversions and Boolean operators
+  in the future, but I've kept this class simple for now.
+(WTF::WeakPtrFactory::WeakPtrFactory):
+(WTF::WeakPtrFactory::~WeakPtrFactory):
+(WTF::WeakPtrFactory::createWeakPtr):
+
 2013-01-12  Csaba Osztrogonác  o...@webkit.org
 
 Use __sync_add_and_fetch instead of __gnu_cxx::__exchange_and_add


Modified: trunk/Source/WTF/GNUmakefile.list.am (139779 => 139780)

--- trunk/Source/WTF/GNUmakefile.list.am	2013-01-15 21:34:59 UTC 

[webkit-changes] [139367] trunk/Source

2013-01-10 Thread abarth
Title: [139367] trunk/Source








Revision 139367
Author aba...@webkit.org
Date 2013-01-10 14:06:20 -0800 (Thu, 10 Jan 2013)


Log Message
Add an ENABLE macro and a WebCore::Setting for the threaded parser
https://bugs.webkit.org/show_bug.cgi?id=106595

Reviewed by Benjamin Poulain.

Source/WebCore: 

This patch adds both a WebCore::Setting and an ENABLE macro for the
threaded parser. We plan to keep the ENABLE macro off by default for a
while. The runtime setting will let us more easily conduct A/B
experiments when the time arises.

* page/Settings.in:

Source/WebKit/chromium: 

Explicitly disable THREADED_HTML_PARSER for Chromium so that we can
more easily enable it locally.

* features.gypi:

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/page/Settings.in
trunk/Source/WebKit/chromium/ChangeLog
trunk/Source/WebKit/chromium/features.gypi




Diff

Modified: trunk/Source/WebCore/ChangeLog (139366 => 139367)

--- trunk/Source/WebCore/ChangeLog	2013-01-10 21:58:39 UTC (rev 139366)
+++ trunk/Source/WebCore/ChangeLog	2013-01-10 22:06:20 UTC (rev 139367)
@@ -1,3 +1,17 @@
+2013-01-10  Adam Barth  aba...@webkit.org
+
+Add an ENABLE macro and a WebCore::Setting for the threaded parser
+https://bugs.webkit.org/show_bug.cgi?id=106595
+
+Reviewed by Benjamin Poulain.
+
+This patch adds both a WebCore::Setting and an ENABLE macro for the
+threaded parser. We plan to keep the ENABLE macro off by default for a
+while. The runtime setting will let us more easily conduct A/B
+experiments when the time arises.
+
+* page/Settings.in:
+
 2013-01-10  Xianzhu Wang  wangxian...@chromium.org
 
 Regression(r129944): Heap-use-after-free in WebCore::computeNonFastScrollableRegion


Modified: trunk/Source/WebCore/page/Settings.in (139366 => 139367)

--- trunk/Source/WebCore/page/Settings.in	2013-01-10 21:58:39 UTC (rev 139366)
+++ trunk/Source/WebCore/page/Settings.in	2013-01-10 22:06:20 UTC (rev 139367)
@@ -154,6 +154,8 @@
 syncXHRInDocumentsEnabled initial=true
 cookieEnabled initial=true
 
+threadedHTMLParser initial=false, conditional=THREADED_HTML_PARSER
+
 # When enabled, window.blur() does not change focus, and
 # window.focus() only changes focus when invoked from the context that
 # created the window.


Modified: trunk/Source/WebKit/chromium/ChangeLog (139366 => 139367)

--- trunk/Source/WebKit/chromium/ChangeLog	2013-01-10 21:58:39 UTC (rev 139366)
+++ trunk/Source/WebKit/chromium/ChangeLog	2013-01-10 22:06:20 UTC (rev 139367)
@@ -1,3 +1,15 @@
+2013-01-10  Adam Barth  aba...@webkit.org
+
+Add an ENABLE macro and a WebCore::Setting for the threaded parser
+https://bugs.webkit.org/show_bug.cgi?id=106595
+
+Reviewed by Benjamin Poulain.
+
+Explicitly disable THREADED_HTML_PARSER for Chromium so that we can
+more easily enable it locally.
+
+* features.gypi:
+
 2013-01-10  John Mellor  joh...@chromium.org
 
 Fix scale of screen.width, window.outerWidth and @media device-width when page scale not applied in compositor.


Modified: trunk/Source/WebKit/chromium/features.gypi (139366 => 139367)

--- trunk/Source/WebKit/chromium/features.gypi	2013-01-10 21:58:39 UTC (rev 139366)
+++ trunk/Source/WebKit/chromium/features.gypi	2013-01-10 22:06:20 UTC (rev 139367)
@@ -115,10 +115,11 @@
   'ENABLE_SVG_FONTS=(enable_svg)',
   'ENABLE_TEMPLATE_ELEMENT=1',
   'ENABLE_TEXT_AUTOSIZING=1',
+  'ENABLE_THREADED_HTML_PARSER=0',
   'ENABLE_TOUCH_ADJUSTMENT=1',
   'ENABLE_TOUCH_EVENTS=(enable_touch_events)',
+  'ENABLE_TOUCH_EVENT_TRACKING=(enable_touch_events)',
   'ENABLE_TOUCH_ICON_LOADING=(enable_touch_icon_loading)',
-  'ENABLE_TOUCH_EVENT_TRACKING=(enable_touch_events)',
   'ENABLE_TOUCH_SLIDER=1',
   'ENABLE_USER_TIMING=1',
   'ENABLE_V8_SCRIPT_DEBUG_SERVER=1',






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [139042] trunk/Source/WebCore

2013-01-08 Thread abarth
Title: [139042] trunk/Source/WebCore








Revision 139042
Author aba...@webkit.org
Date 2013-01-08 00:23:01 -0800 (Tue, 08 Jan 2013)


Log Message
HTMLTreeBuilder shouldn't keep a Document pointer
https://bugs.webkit.org/show_bug.cgi?id=106268

Reviewed by Eric Seidel.

The tree builder shouldn't interact with the Document directly.
Instead, the tree builder should use the HTMLConstructionSite to
interact with the document.

Unfortunately, the HTMLTreeBuilder does need to read back one bit of
information (the quirks mode) from the Document. Currently the
HTMLConstructionSite reads the information directly from the Document.
If/when we move the parser onto its own thread, we'll need to keep
track of this bit on the parser thread. (We should be able to
encapsulate all that logic in the HTMLConstructionSite.)

* html/parser/HTMLConstructionSite.cpp:
(WebCore::HTMLConstructionSite::setDefaultCompatibilityMode):
(WebCore):
(WebCore::HTMLConstructionSite::finishedParsing):
(WebCore::HTMLConstructionSite::inQuirksMode):
* html/parser/HTMLConstructionSite.h:
(HTMLConstructionSite):
* html/parser/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::HTMLTreeBuilder):
(WebCore::HTMLTreeBuilder::detach):
(WebCore::HTMLTreeBuilder::processStartTagForInBody):
(WebCore::HTMLTreeBuilder::defaultForInitial):
(WebCore::HTMLTreeBuilder::finished):
* html/parser/HTMLTreeBuilder.h:
(HTMLTreeBuilder):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/html/parser/HTMLConstructionSite.cpp
trunk/Source/WebCore/html/parser/HTMLConstructionSite.h
trunk/Source/WebCore/html/parser/HTMLTreeBuilder.cpp
trunk/Source/WebCore/html/parser/HTMLTreeBuilder.h




Diff

Modified: trunk/Source/WebCore/ChangeLog (139041 => 139042)

--- trunk/Source/WebCore/ChangeLog	2013-01-08 08:15:16 UTC (rev 139041)
+++ trunk/Source/WebCore/ChangeLog	2013-01-08 08:23:01 UTC (rev 139042)
@@ -1,3 +1,37 @@
+2013-01-08  Adam Barth  aba...@webkit.org
+
+HTMLTreeBuilder shouldn't keep a Document pointer
+https://bugs.webkit.org/show_bug.cgi?id=106268
+
+Reviewed by Eric Seidel.
+
+The tree builder shouldn't interact with the Document directly.
+Instead, the tree builder should use the HTMLConstructionSite to
+interact with the document.
+
+Unfortunately, the HTMLTreeBuilder does need to read back one bit of
+information (the quirks mode) from the Document. Currently the
+HTMLConstructionSite reads the information directly from the Document.
+If/when we move the parser onto its own thread, we'll need to keep
+track of this bit on the parser thread. (We should be able to
+encapsulate all that logic in the HTMLConstructionSite.)
+
+* html/parser/HTMLConstructionSite.cpp:
+(WebCore::HTMLConstructionSite::setDefaultCompatibilityMode):
+(WebCore):
+(WebCore::HTMLConstructionSite::finishedParsing):
+(WebCore::HTMLConstructionSite::inQuirksMode):
+* html/parser/HTMLConstructionSite.h:
+(HTMLConstructionSite):
+* html/parser/HTMLTreeBuilder.cpp:
+(WebCore::HTMLTreeBuilder::HTMLTreeBuilder):
+(WebCore::HTMLTreeBuilder::detach):
+(WebCore::HTMLTreeBuilder::processStartTagForInBody):
+(WebCore::HTMLTreeBuilder::defaultForInitial):
+(WebCore::HTMLTreeBuilder::finished):
+* html/parser/HTMLTreeBuilder.h:
+(HTMLTreeBuilder):
+
 2013-01-08  Yuki Sekiguchi  yuki.sekigu...@access-company.com
 
 Float block's logical top margin is illegal in vertical writing mode.


Modified: trunk/Source/WebCore/html/parser/HTMLConstructionSite.cpp (139041 => 139042)

--- trunk/Source/WebCore/html/parser/HTMLConstructionSite.cpp	2013-01-08 08:15:16 UTC (rev 139041)
+++ trunk/Source/WebCore/html/parser/HTMLConstructionSite.cpp	2013-01-08 08:23:01 UTC (rev 139042)
@@ -225,6 +225,20 @@
 mergeAttributesFromTokenIntoElement(token, m_openElements.bodyElement());
 }
 
+void HTMLConstructionSite::setDefaultCompatibilityMode()
+{
+if (m_isParsingFragment)
+return;
+if (m_document-isSrcdocDocument())
+return;
+m_document-setCompatibilityMode(Document::QuirksMode);
+}
+
+void HTMLConstructionSite::finishedParsing()
+{
+m_document-finishedParsing();
+}
+
 void HTMLConstructionSite::insertDoctype(AtomicHTMLToken* token)
 {
 ASSERT(token-type() == HTMLTokenTypes::DOCTYPE);
@@ -480,6 +494,12 @@
 m_openElements.pop();
 }
 
+bool HTMLConstructionSite::inQuirksMode()
+{
+// When we move the parser onto a background thread, we'll need to keep track of this bit on the parser thread.
+return m_document-inQuirksMode();
+}
+
 void HTMLConstructionSite::findFosterSite(HTMLConstructionSiteTask task)
 {
 #if ENABLE(TEMPLATE_ELEMENT)


Modified: trunk/Source/WebCore/html/parser/HTMLConstructionSite.h (139041 => 139042)

--- trunk/Source/WebCore/html/parser/HTMLConstructionSite.h	2013-01-08 08:15:16 UTC (rev 139041)
+++ 

[webkit-changes] [139020] trunk

2013-01-07 Thread abarth
Title: [139020] trunk








Revision 139020
Author aba...@webkit.org
Date 2013-01-07 17:21:43 -0800 (Mon, 07 Jan 2013)


Log Message
HTMLTreeBuilder should not depend on Frame
https://bugs.webkit.org/show_bug.cgi?id=106256

Reviewed by Eric Seidel.

Source/WebCore:

Rather than have the tree builder ask the Frame whether scripting and
plugins are enabled, we now push that information to the tree builder
via HTMLParserOptions, letting us remove the Frame dependency from the
tree builder.

As a consequence of this change, the script enabled bit in the parser
is now locked in when the parser starts. This bit doesn't actually
control when script execute, only how the noscript element is parsed.

* html/parser/HTMLDocumentParser.cpp:
(WebCore::tokenizerStateForContextElement):
(WebCore::HTMLDocumentParser::HTMLDocumentParser):
* html/parser/HTMLMetaCharsetParser.cpp:
(WebCore::HTMLMetaCharsetParser::HTMLMetaCharsetParser):
(WebCore::HTMLMetaCharsetParser::checkForMetaCharset):
* html/parser/HTMLParserOptions.cpp:
(WebCore::HTMLParserOptions::HTMLParserOptions):
* html/parser/HTMLParserOptions.h:
(HTMLParserOptions):
(WebCore::HTMLParserOptions::HTMLParserOptions):
* html/parser/HTMLPreloadScanner.cpp:
(WebCore::HTMLPreloadScanner::HTMLPreloadScanner):
(WebCore::HTMLPreloadScanner::processToken):
* html/parser/HTMLTokenizer.cpp:
(WebCore::HTMLTokenizer::HTMLTokenizer):
(WebCore::HTMLTokenizer::nextToken):
(WebCore::HTMLTokenizer::updateStateFor):
* html/parser/HTMLTokenizer.h:
(WebCore::HTMLTokenizer::create):
(HTMLTokenizer):
* html/parser/HTMLTreeBuilder.cpp:
(WebCore::HTMLTreeBuilder::processStartTagForInBody):
(WebCore::HTMLTreeBuilder::processStartTagForInHead):
* html/parser/HTMLTreeBuilder.h:
* html/parser/HTMLViewSourceParser.cpp:
(WebCore::HTMLViewSourceParser::HTMLViewSourceParser):
(WebCore::HTMLViewSourceParser::updateTokenizerState):

LayoutTests:

I needed to update this test slightly because now we lock in the
script enabled bit for the parser when the parser starts. That means
we'll parse the document in a consistent way even if the script
enabled bit gets flipped later.

* fast/parser/noscript-with-_javascript_-disabled-expected.txt:
* fast/parser/noscript-with-_javascript_-disabled.html:

Modified Paths

trunk/LayoutTests/ChangeLog
trunk/LayoutTests/fast/parser/noscript-with-_javascript_-disabled-expected.txt
trunk/LayoutTests/fast/parser/noscript-with-_javascript_-disabled.html
trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/html/parser/HTMLDocumentParser.cpp
trunk/Source/WebCore/html/parser/HTMLMetaCharsetParser.cpp
trunk/Source/WebCore/html/parser/HTMLParserOptions.cpp
trunk/Source/WebCore/html/parser/HTMLParserOptions.h
trunk/Source/WebCore/html/parser/HTMLPreloadScanner.cpp
trunk/Source/WebCore/html/parser/HTMLTokenizer.cpp
trunk/Source/WebCore/html/parser/HTMLTokenizer.h
trunk/Source/WebCore/html/parser/HTMLTreeBuilder.cpp
trunk/Source/WebCore/html/parser/HTMLTreeBuilder.h
trunk/Source/WebCore/html/parser/HTMLViewSourceParser.cpp




Diff

Modified: trunk/LayoutTests/ChangeLog (139019 => 139020)

--- trunk/LayoutTests/ChangeLog	2013-01-08 01:19:30 UTC (rev 139019)
+++ trunk/LayoutTests/ChangeLog	2013-01-08 01:21:43 UTC (rev 139020)
@@ -1,3 +1,18 @@
+2013-01-07  Adam Barth  aba...@webkit.org
+
+HTMLTreeBuilder should not depend on Frame
+https://bugs.webkit.org/show_bug.cgi?id=106256
+
+Reviewed by Eric Seidel.
+
+I needed to update this test slightly because now we lock in the
+script enabled bit for the parser when the parser starts. That means
+we'll parse the document in a consistent way even if the script
+enabled bit gets flipped later.
+
+* fast/parser/noscript-with-_javascript_-disabled-expected.txt:
+* fast/parser/noscript-with-_javascript_-disabled.html:
+
 2013-01-07  Tony Chang  t...@chromium.org
 
 Remove more internals.settings that are autogenerated


Modified: trunk/LayoutTests/fast/parser/noscript-with-_javascript_-disabled-expected.txt (139019 => 139020)

--- trunk/LayoutTests/fast/parser/noscript-with-_javascript_-disabled-expected.txt	2013-01-08 01:19:30 UTC (rev 139019)
+++ trunk/LayoutTests/fast/parser/noscript-with-_javascript_-disabled-expected.txt	2013-01-08 01:21:43 UTC (rev 139020)
@@ -1,2 +1,6 @@
-This test case verifies that contents inside noscript are rendered when _javascript_ is disabled.
-Succeeded!
+The text inside the 'noscript' tag inside the iframe should render:  
+
+
+Frame: '!--framePath //!--frame0'
+
+PASS: This test case verifies that contents inside are rendered when _javascript_ is disabled.


Modified: trunk/LayoutTests/fast/parser/noscript-with-_javascript_-disabled.html (139019 => 139020)

--- trunk/LayoutTests/fast/parser/noscript-with-_javascript_-disabled.html	2013-01-08 01:19:30 UTC (rev 139019)
+++ trunk/LayoutTests/fast/parser/noscript-with-_javascript_-disabled.html	2013-01-08 01:21:43 UTC (rev 139020)
@@ -1,17 +1,24 @@
 html
 
 

[webkit-changes] [138855] trunk/Source/WebCore

2013-01-04 Thread abarth
Title: [138855] trunk/Source/WebCore








Revision 138855
Author aba...@webkit.org
Date 2013-01-04 14:18:28 -0800 (Fri, 04 Jan 2013)


Log Message
HTMLTreeBuilder should ASSERT that it is on the main thread before touching elements
https://bugs.webkit.org/show_bug.cgi?id=106128

Reviewed by Eric Seidel.

Even if we move the HTML parser onto a background thread, we're likely
to keep fragment parsing on the main thread. These code paths touch
elements (which only exist on the main thread) but are only used during
fragment parsing. This patch adds ASSERTs to document that invariant.

* html/parser/HTMLTreeBuilder.cpp:
(WebCore::closestFormAncestor):
(WebCore::HTMLTreeBuilder::HTMLTreeBuilder):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/html/parser/HTMLTreeBuilder.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (138854 => 138855)

--- trunk/Source/WebCore/ChangeLog	2013-01-04 22:01:44 UTC (rev 138854)
+++ trunk/Source/WebCore/ChangeLog	2013-01-04 22:18:28 UTC (rev 138855)
@@ -1,3 +1,19 @@
+2013-01-04  Adam Barth  aba...@webkit.org
+
+HTMLTreeBuilder should ASSERT that it is on the main thread before touching elements
+https://bugs.webkit.org/show_bug.cgi?id=106128
+
+Reviewed by Eric Seidel.
+
+Even if we move the HTML parser onto a background thread, we're likely
+to keep fragment parsing on the main thread. These code paths touch
+elements (which only exist on the main thread) but are only used during
+fragment parsing. This patch adds ASSERTs to document that invariant.
+
+* html/parser/HTMLTreeBuilder.cpp:
+(WebCore::closestFormAncestor):
+(WebCore::HTMLTreeBuilder::HTMLTreeBuilder):
+
 2013-01-04  Zoltan Horvath  zol...@webkit.org
 
 [CSS Regions] @region rules inside media queries are ignored


Modified: trunk/Source/WebCore/html/parser/HTMLTreeBuilder.cpp (138854 => 138855)

--- trunk/Source/WebCore/html/parser/HTMLTreeBuilder.cpp	2013-01-04 22:01:44 UTC (rev 138854)
+++ trunk/Source/WebCore/html/parser/HTMLTreeBuilder.cpp	2013-01-04 22:18:28 UTC (rev 138855)
@@ -52,6 +52,7 @@
 #include XLinkNames.h
 #include XMLNSNames.h
 #include XMLNames.h
+#include wtf/MainThread.h
 #include wtf/unicode/CharacterNames.h
 
 namespace WebCore {
@@ -141,6 +142,7 @@
 
 static HTMLFormElement* closestFormAncestor(Element* element)
 {
+ASSERT(isMainThread());
 while (element) {
 if (element-hasTagName(formTag))
 return static_castHTMLFormElement*(element);
@@ -295,6 +297,7 @@
 , m_scriptToProcessStartPosition(uninitializedPositionValue1())
 , m_usePreHTML5ParserQuirks(usePreHTML5ParserQuirks)
 {
+ASSERT(isMainThread());
 // FIXME: This assertion will become invalid if http://webkit.org/b/60316 is fixed.
 ASSERT(contextElement);
 if (contextElement) {






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [138677] trunk/Source/WebCore

2013-01-02 Thread abarth
Title: [138677] trunk/Source/WebCore








Revision 138677
Author aba...@webkit.org
Date 2013-01-02 16:30:50 -0800 (Wed, 02 Jan 2013)


Log Message
[V8] There are some extra blank lines after removing INC_STATS
https://bugs.webkit.org/show_bug.cgi?id=105964

Reviewed by Ojan Vafai.

This patch is a followup to http://trac.webkit.org/changeset/138665
that removes some extra blank lines that sed wasn't smart enough to
delete for us.

* bindings/v8/custom/V8CSSStyleDeclarationCustom.cpp:
(WebCore::V8CSSStyleDeclaration::namedPropertyQuery):
* bindings/v8/custom/V8DOMFormDataCustom.cpp:
(WebCore::V8DOMFormData::appendCallback):
* bindings/v8/custom/V8DOMWindowCustom.cpp:
(WebCore::V8DOMWindow::addEventListenerCallback):
(WebCore::V8DOMWindow::removeEventListenerCallback):
(WebCore::V8DOMWindow::postMessageCallback):
* bindings/v8/custom/V8DedicatedWorkerContextCustom.cpp:
(WebCore::V8DedicatedWorkerContext::postMessageCallback):
* bindings/v8/custom/V8DocumentCustom.cpp:
(WebCore::V8Document::evaluateCallback):
* bindings/v8/custom/V8GeolocationCustom.cpp:
(WebCore::V8Geolocation::getCurrentPositionCallback):
(WebCore::V8Geolocation::watchPositionCallback):
* bindings/v8/custom/V8HTMLAllCollectionCustom.cpp:
(WebCore::V8HTMLAllCollection::namedPropertyGetter):
* bindings/v8/custom/V8HTMLCollectionCustom.cpp:
(WebCore::V8HTMLCollection::namedPropertyGetter):
* bindings/v8/custom/V8HTMLFormControlsCollectionCustom.cpp:
(WebCore::V8HTMLFormControlsCollection::namedPropertyGetter):
* bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
(WebCore::v8HTMLImageElementConstructorCallback):
* bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
(WebCore::V8HTMLOptionsCollection::namedPropertyGetter):
* bindings/v8/custom/V8MessagePortCustom.cpp:
(WebCore::V8MessagePort::postMessageCallback):
* bindings/v8/custom/V8NamedNodeMapCustom.cpp:
(WebCore::V8NamedNodeMap::namedPropertyGetter):
* bindings/v8/custom/V8NotificationCustom.cpp:
(WebCore::V8Notification::requestPermissionCallback):
* bindings/v8/custom/V8PopStateEventCustom.cpp:
(WebCore::V8PopStateEvent::stateAccessorGetter):
* bindings/v8/custom/V8SQLResultSetRowListCustom.cpp:
(WebCore::V8SQLResultSetRowList::itemCallback):
* bindings/v8/custom/V8SQLTransactionCustom.cpp:
(WebCore::V8SQLTransaction::executeSqlCallback):
* bindings/v8/custom/V8SQLTransactionSyncCustom.cpp:
(WebCore::V8SQLTransactionSync::executeSqlCallback):
* bindings/v8/custom/V8StorageCustom.cpp:
(WebCore::V8Storage::namedPropertyQuery):
* bindings/v8/custom/V8StyleSheetListCustom.cpp:
(WebCore::V8StyleSheetList::namedPropertyGetter):
* bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:
(WebCore::V8WebGLRenderingContext::getAttachedShadersCallback):
(WebCore::V8WebGLRenderingContext::getFramebufferAttachmentParameterCallback):
(WebCore::V8WebGLRenderingContext::getParameterCallback):
(WebCore::V8WebGLRenderingContext::getProgramParameterCallback):
(WebCore::V8WebGLRenderingContext::getShaderParameterCallback):
(WebCore::V8WebGLRenderingContext::getUniformCallback):
* bindings/v8/custom/V8WorkerCustom.cpp:
(WebCore::V8Worker::postMessageCallback):

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/bindings/v8/custom/V8CSSStyleDeclarationCustom.cpp
trunk/Source/WebCore/bindings/v8/custom/V8DOMFormDataCustom.cpp
trunk/Source/WebCore/bindings/v8/custom/V8DOMWindowCustom.cpp
trunk/Source/WebCore/bindings/v8/custom/V8DedicatedWorkerContextCustom.cpp
trunk/Source/WebCore/bindings/v8/custom/V8DocumentCustom.cpp
trunk/Source/WebCore/bindings/v8/custom/V8GeolocationCustom.cpp
trunk/Source/WebCore/bindings/v8/custom/V8HTMLAllCollectionCustom.cpp
trunk/Source/WebCore/bindings/v8/custom/V8HTMLCollectionCustom.cpp
trunk/Source/WebCore/bindings/v8/custom/V8HTMLFormControlsCollectionCustom.cpp
trunk/Source/WebCore/bindings/v8/custom/V8HTMLImageElementConstructor.cpp
trunk/Source/WebCore/bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp
trunk/Source/WebCore/bindings/v8/custom/V8MessagePortCustom.cpp
trunk/Source/WebCore/bindings/v8/custom/V8NamedNodeMapCustom.cpp
trunk/Source/WebCore/bindings/v8/custom/V8NotificationCustom.cpp
trunk/Source/WebCore/bindings/v8/custom/V8PopStateEventCustom.cpp
trunk/Source/WebCore/bindings/v8/custom/V8SQLResultSetRowListCustom.cpp
trunk/Source/WebCore/bindings/v8/custom/V8SQLTransactionCustom.cpp
trunk/Source/WebCore/bindings/v8/custom/V8SQLTransactionSyncCustom.cpp
trunk/Source/WebCore/bindings/v8/custom/V8StorageCustom.cpp
trunk/Source/WebCore/bindings/v8/custom/V8StyleSheetListCustom.cpp
trunk/Source/WebCore/bindings/v8/custom/V8WebGLRenderingContextCustom.cpp
trunk/Source/WebCore/bindings/v8/custom/V8WorkerCustom.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (138676 => 138677)

--- trunk/Source/WebCore/ChangeLog	2013-01-03 00:26:37 UTC (rev 138676)
+++ trunk/Source/WebCore/ChangeLog	2013-01-03 00:30:50 UTC (rev 138677)
@@ -1,3 +1,67 @@
+2013-01-02  Adam Barth  aba...@webkit.org
+
+[V8] There are some extra blank lines after removing 

[webkit-changes] [138682] trunk/Source/WebCore

2013-01-02 Thread abarth
Title: [138682] trunk/Source/WebCore








Revision 138682
Author aba...@webkit.org
Date 2013-01-02 17:04:29 -0800 (Wed, 02 Jan 2013)


Log Message
[V8] V8DOMWrapper.cpp has many more includes than necessary
https://bugs.webkit.org/show_bug.cgi?id=105968

Reviewed by Kentaro Hara.

Now that this file isn't in charge of doing everything under the sun,
it can have a more focused set of include directives.

* bindings/v8/V8DOMWrapper.cpp:

Modified Paths

trunk/Source/WebCore/ChangeLog
trunk/Source/WebCore/bindings/v8/V8DOMWrapper.cpp




Diff

Modified: trunk/Source/WebCore/ChangeLog (138681 => 138682)

--- trunk/Source/WebCore/ChangeLog	2013-01-03 01:00:35 UTC (rev 138681)
+++ trunk/Source/WebCore/ChangeLog	2013-01-03 01:04:29 UTC (rev 138682)
@@ -1,3 +1,15 @@
+2013-01-02  Adam Barth  aba...@webkit.org
+
+[V8] V8DOMWrapper.cpp has many more includes than necessary
+https://bugs.webkit.org/show_bug.cgi?id=105968
+
+Reviewed by Kentaro Hara.
+
+Now that this file isn't in charge of doing everything under the sun,
+it can have a more focused set of include directives.
+
+* bindings/v8/V8DOMWrapper.cpp:
+
 2013-01-02  Gyuyoung Kim  gyuyoung@samsung.com
 
 [EFL][CMAKE] Remove duplicated conditionals


Modified: trunk/Source/WebCore/bindings/v8/V8DOMWrapper.cpp (138681 => 138682)

--- trunk/Source/WebCore/bindings/v8/V8DOMWrapper.cpp	2013-01-03 01:00:35 UTC (rev 138681)
+++ trunk/Source/WebCore/bindings/v8/V8DOMWrapper.cpp	2013-01-03 01:04:29 UTC (rev 138682)
@@ -31,38 +31,15 @@
 #include config.h
 #include V8DOMWrapper.h
 
-#include wtf/ArrayBufferView.h
-#include DocumentLoader.h
-#include Frame.h
-#include FrameLoaderClient.h
-#include StylePropertySet.h
-#include V8AbstractEventListener.h
 #include V8Binding.h
-#include V8Collection.h
 #include V8DOMWindow.h
-#include V8EventListener.h
 #include V8EventListenerList.h
 #include V8HTMLCollection.h
 #include V8HTMLDocument.h
 #include V8HiddenPropertyName.h
-#include V8Location.h
-#include V8NamedNodeMap.h
-#include V8NodeFilterCondition.h
-#include V8NodeList.h
 #include V8ObjectConstructor.h
 #include V8PerContextData.h
-#include V8StyleSheet.h
 #include V8WorkerContextEventListener.h
-#include WebGLContextAttributes.h
-#include WebGLUniformLocation.h
-#include WrapperTypeInfo.h
-#include algorithm
-#include utility
-#include v8-debug.h
-#include wtf/Assertions.h
-#include wtf/OwnArrayPtr.h
-#include wtf/StdLibExtras.h
-#include wtf/UnusedParam.h
 
 namespace WebCore {
 






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [138628] trunk/Source/WTF

2013-01-02 Thread abarth
Title: [138628] trunk/Source/WTF








Revision 138628
Author aba...@webkit.org
Date 2013-01-02 12:00:47 -0800 (Wed, 02 Jan 2013)


Log Message
WTF.gypi lists Platform.h twice
https://bugs.webkit.org/show_bug.cgi?id=105731

Reviewed by Tony Chang.

Once ought to be enough for everybody.

* WTF.gypi:

Modified Paths

trunk/Source/WTF/ChangeLog
trunk/Source/WTF/WTF.gypi




Diff

Modified: trunk/Source/WTF/ChangeLog (138627 => 138628)

--- trunk/Source/WTF/ChangeLog	2013-01-02 19:48:28 UTC (rev 138627)
+++ trunk/Source/WTF/ChangeLog	2013-01-02 20:00:47 UTC (rev 138628)
@@ -1,3 +1,14 @@
+2013-01-02  Adam Barth  aba...@webkit.org
+
+WTF.gypi lists Platform.h twice
+https://bugs.webkit.org/show_bug.cgi?id=105731
+
+Reviewed by Tony Chang.
+
+Once ought to be enough for everybody.
+
+* WTF.gypi:
+
 2012-12-31  Gavin Barraclough  barraclo...@apple.com
 
 Objective-C API for _javascript_Core


Modified: trunk/Source/WTF/WTF.gypi (138627 => 138628)

--- trunk/Source/WTF/WTF.gypi	2013-01-02 19:48:28 UTC (rev 138627)
+++ trunk/Source/WTF/WTF.gypi	2013-01-02 20:00:47 UTC (rev 138628)
@@ -81,7 +81,6 @@
 'wtf/PassRefPtr.h',
 'wtf/PassTraits.h',
 'wtf/Platform.h',
-'wtf/Platform.h',
 'wtf/PossiblyNull.h',
 'wtf/PrintStream.h',
 'wtf/RandomNumber.h',






___
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo/webkit-changes


[webkit-changes] [138634] trunk/Tools

2013-01-02 Thread abarth
Title: [138634] trunk/Tools








Revision 138634
Author aba...@webkit.org
Date 2013-01-02 12:37:53 -0800 (Wed, 02 Jan 2013)


Log Message
Remove old-run-webkit-tests support from webkitpy
https://bugs.webkit.org/show_bug.cgi?id=105619

Reviewed by Eric Seidel.

This patch removes support for webkitpy parsing the
old-run-webkit-tests results format. There doesn't seem to be any
reason to keep this code around anymore now that most bots have
switched to new-run-webkit-tests.

* Scripts/webkitpy/common/net/buildbot/buildbot.py:
(Builder.fetch_layout_test_results):
* Scripts/webkitpy/common/net/layouttestresults.py:
(path_for_layout_test):
(LayoutTestResults.results_from_string):
(LayoutTestResults):
* Scripts/webkitpy/common/net/layouttestresults_unittest.py:
(LayoutTestResultsTest.test_results_from_string):
* Scripts/webkitpy/tool/bot/commitqueuetask_unittest.py:
(test_flaky_test_failure):
* Scripts/webkitpy/tool/bot/layouttestresultsreader_unittest.py:
(LayoutTestResultsReaderTest.test_missing_layout_test_results):
* Scripts/webkitpy/tool/bot/patchanalysistask.py:
(PatchAnalysisTask._test_patch):
* Scripts/webkitpy/tool/commands/queuestest.py:
(QueuesTest.assert_queue_outputs):

Modified Paths

trunk/Tools/ChangeLog
trunk/Tools/Scripts/webkitpy/common/net/buildbot/buildbot.py
trunk/Tools/Scripts/webkitpy/common/net/layouttestresults.py
trunk/Tools/Scripts/webkitpy/common/net/layouttestresults_unittest.py
trunk/Tools/Scripts/webkitpy/tool/bot/commitqueuetask_unittest.py
trunk/Tools/Scripts/webkitpy/tool/bot/layouttestresultsreader_unittest.py
trunk/Tools/Scripts/webkitpy/tool/bot/patchanalysistask.py
trunk/Tools/Scripts/webkitpy/tool/commands/queuestest.py




Diff

Modified: trunk/Tools/ChangeLog (138633 => 138634)

--- trunk/Tools/ChangeLog	2013-01-02 20:33:18 UTC (rev 138633)
+++ trunk/Tools/ChangeLog	2013-01-02 20:37:53 UTC (rev 138634)
@@ -1,3 +1,32 @@
+2013-01-02  Adam Barth  aba...@webkit.org
+
+Remove old-run-webkit-tests support from webkitpy
+https://bugs.webkit.org/show_bug.cgi?id=105619
+
+Reviewed by Eric Seidel.
+
+This patch removes support for webkitpy parsing the
+old-run-webkit-tests results format. There doesn't seem to be any
+reason to keep this code around anymore now that most bots have
+switched to new-run-webkit-tests.
+
+* Scripts/webkitpy/common/net/buildbot/buildbot.py:
+(Builder.fetch_layout_test_results):
+* Scripts/webkitpy/common/net/layouttestresults.py:
+(path_for_layout_test):
+(LayoutTestResults.results_from_string):
+(LayoutTestResults):
+* Scripts/webkitpy/common/net/layouttestresults_unittest.py:
+(LayoutTestResultsTest.test_results_from_string):
+* Scripts/webkitpy/tool/bot/commitqueuetask_unittest.py:
+(test_flaky_test_failure):
+* Scripts/webkitpy/tool/bot/layouttestresultsreader_unittest.py:
+(LayoutTestResultsReaderTest.test_missing_layout_test_results):
+* Scripts/webkitpy/tool/bot/patchanalysistask.py:
+(PatchAnalysisTask._test_patch):
+* Scripts/webkitpy/tool/commands/queuestest.py:
+(QueuesTest.assert_queue_outputs):
+
 2013-01-02  Heikki Paajanen  heikki.paaja...@palm.com
 
 [Qt][WK2] Add simple UI to find text from page


Modified: trunk/Tools/Scripts/webkitpy/common/net/buildbot/buildbot.py (138633 => 138634)

--- trunk/Tools/Scripts/webkitpy/common/net/buildbot/buildbot.py	2013-01-02 20:33:18 UTC (rev 138633)
+++ trunk/Tools/Scripts/webkitpy/common/net/buildbot/buildbot.py	2013-01-02 20:37:53 UTC (rev 138634)
@@ -85,10 +85,6 @@
 def fetch_layout_test_results(self, results_url):
 # FIXME: This should cache that the result was a 404 and stop hitting the network.
 results_file = NetworkTransaction(convert_404_to_None=True).run(lambda: self._fetch_file_from_results(results_url, full_results.json))
-if not results_file:
-results_file = NetworkTransaction(convert_404_to_None=True).run(lambda: self._fetch_file_from_results(results_url, results.html))
-
-# results_from_string accepts either ORWT html or NRWT json.
 return LayoutTestResults.results_from_string(results_file)
 
 def url_encoded_name(self):


Modified: trunk/Tools/Scripts/webkitpy/common/net/layouttestresults.py (138633 => 138634)

--- trunk/Tools/Scripts/webkitpy/common/net/layouttestresults.py	2013-01-02 20:33:18 UTC (rev 138633)
+++ trunk/Tools/Scripts/webkitpy/common/net/layouttestresults.py	2013-01-02 20:37:53 UTC (rev 138634)
@@ -25,9 +25,6 @@
 # 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.
-#
-# A module for parsing results.html files generated by old-run-webkit-tests
-# This class is one big hack and only needs to exist until we transition to new-run-webkit-tests.
 
 import 

  1   2   3   4   5   6   7   8   9   10   >