[prev in list] [next in list] [prev in thread] [next in thread]
List: webkit-changes
Subject: [webkit-changes] [42022] trunk
From: eric () webkit ! org
Date: 2009-03-27 0:01:58
Message-ID: 20090327000202.250E012FEC73 () beta ! macosforge ! org
[Download RAW message or body]
[Attachment #2 (text/html)]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[42022] trunk</title>
</head>
<body>
<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: \
verdana,arial,helvetica,sans-serif; font-size: 10pt; } #msg dl a { font-weight: \
bold} #msg dl a:link { color:#fc3; }
#msg dl a:active { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: \
bold; } #msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: \
6px; } #logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em \
0; } #logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg \
h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; } \
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; \
} #logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: \
-1.5em; padding-left: 1.5em; } #logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em \
1em 0 1em; background: white;} #logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid \
#fa0; border-bottom: 1px solid #fa0; background: #fff; } #logmsg table th { \
text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted \
#fa0; } #logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: \
0.2em 0.5em; } #logmsg table thead th { text-align: center; border-bottom: 1px solid \
#fa0; } #logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: \
6px; } #patch { width: 100%; }
#patch h4 {font-family: \
verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, \
#patch .copfile {border:1px solid #ccc;margin:10px 0;} #patch ins \
{background:#dfd;text-decoration:none;display:block;padding:0 10px;} #patch del \
{background:#fdd;text-decoration:none;display:block;padding:0 10px;} #patch .lines, \
.info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a \
href="http://trac.webkit.org/projects/webkit/changeset/42022">42022</a></dd> \
<dt>Author</dt> <dd>eric@webkit.org</dd> <dt>Date</dt> <dd>2009-03-26 17:01:58 -0700 \
(Thu, 26 Mar 2009)</dd> </dl>
<h3>Log Message</h3>
<pre>2009-03-26 Jungshik Shin <jshin@chromium.org>
Reviewed by Alexey Proskuryakov.
Add an encoding detector 'hook' to TextResourceDecoder.
- add |usesEncodingDetector| to Settings. It's off by default.
- add a new encoding source type |EncodingFromParent|
to distinguish cases when the encoding is inherited from
the parent frame from cases when it's actually auto-detected.
- add TextEncodingDetector* to platform/text. Currently,
the only implementation uses ICU. Stub is added for
ports that do not use ICU and a build on Tiger. Mac OS
Tiger comes with ICU 3.2 that does not support encoding detector.
- add ucsdet.h to icu/unicode for ports using ICU.
Layout tests will be added once bug 20534 is fixed and a WebPreference
can be controlled in test_shell. With UsesEncodingDetector off, there
is no change to test.
http://bugs.webkit.org/show_bug.cgi?id=16482
* WebCore.vcproj/WebCore.vcproj:
* WebCore.xcodeproj/project.pbxproj:
* WebCore/GNUmakefile.am
* WebCore/WebCore.pro
* WebCore/WebCore.scons
* WebCore/WebCoreSources.bkl
* WebCore.base.exp
* icu/unicode/ucsdet.h
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::write): turn on/off encoding detector depending on \
Settings and set hintEncoding of TextResourceDecoder to the parent frame encoding if \
necessary and the security policy allows refering to the parent frame \
encoding.
* loader/TextResourceDecoder.cpp:
(WebCore::TextResourceDecoder::TextResourceDecoder):
(WebCore::TextResourceDecoder::checkForCSSCharset): add check for \
EncodingFromParentFrame (WebCore::TextResourceDecoder::checkForHeadCharset): ditto
(WebCore::TextResourceDecoder::shouldAutoDetect):
(WebCore::TextResourceDecoder::decode): call encoding detector if \
shouldAutoDetect returns true.
(WebCore::TextResourceDecoder::flush): if encoding is not determined by now, \
call encoding detector if shouldAutoDetect returns true.
* loader/TextResourceDecoder.h:
(WebCore::TextResourceDecoder::):
(WebCore::TextResourceDecoder::create):
(WebCore::TextResourceDecoder::setHintEncoding):
(WebCore::TextResourceDecoder::source):
* page/Settings.cpp: add m_usesEncodingDetector
(WebCore::Settings::Settings):
(WebCore::Settings::setUsesEncodingDetector):
* page/Settings.h:
(WebCore::Settings::usesEncodingDetector):
* platform/text/TextEncodingDetector.h: Added.
* platform/text/TextEncodingDetectorICU.cpp: Added.
(WebCore::detectTextEncoding):
* platform/text/TextEncodingDetectorNone.cpp: Added.
(WebCore::detectTextEncoding):</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkWebCoreChangeLog">trunk/WebCore/ChangeLog</a></li>
<li><a href="#trunkWebCoreGNUmakefileam">trunk/WebCore/GNUmakefile.am</a></li>
<li><a href="#trunkWebCoreWebCorebaseexp">trunk/WebCore/WebCore.base.exp</a></li>
<li><a href="#trunkWebCoreWebCorepro">trunk/WebCore/WebCore.pro</a></li>
<li><a href="#trunkWebCoreWebCorescons">trunk/WebCore/WebCore.scons</a></li>
<li><a href="#trunkWebCoreWebCorevcprojWebCorevcproj">trunk/WebCore/WebCore.vcproj/WebCore.vcproj</a></li>
<li><a href="#trunkWebCoreWebCorexcodeprojprojectpbxproj">trunk/WebCore/WebCore.xcodeproj/project.pbxproj</a></li>
<li><a href="#trunkWebCoreWebCoreSourcesbkl">trunk/WebCore/WebCoreSources.bkl</a></li>
<li><a href="#trunkWebCoreloaderFrameLoadercpp">trunk/WebCore/loader/FrameLoader.cpp</a></li>
<li><a href="#trunkWebCoreloaderTextResourceDecodercpp">trunk/WebCore/loader/TextResourceDecoder.cpp</a></li>
<li><a href="#trunkWebCoreloaderTextResourceDecoderh">trunk/WebCore/loader/TextResourceDecoder.h</a></li>
<li><a href="#trunkWebCorepageSettingscpp">trunk/WebCore/page/Settings.cpp</a></li>
<li><a href="#trunkWebCorepageSettingsh">trunk/WebCore/page/Settings.h</a></li>
<li><a href="#trunkWebKitmacChangeLog">trunk/WebKit/mac/ChangeLog</a></li>
<li><a href="#trunkWebKitmacWebViewWebPreferenceKeysPrivateh">trunk/WebKit/mac/WebView/WebPreferenceKeysPrivate.h</a></li>
<li><a href="#trunkWebKitmacWebViewWebPreferencesmm">trunk/WebKit/mac/WebView/WebPreferences.mm</a></li>
<li><a href="#trunkWebKitmacWebViewWebPreferencesPrivateh">trunk/WebKit/mac/WebView/WebPreferencesPrivate.h</a></li>
<li><a href="#trunkWebKitmacWebViewWebViewmm">trunk/WebKit/mac/WebView/WebView.mm</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/ChangeLog (42021 => 42022)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/ChangeLog 2009-03-26 23:50:00 UTC (rev 42021)
+++ trunk/WebCore/ChangeLog 2009-03-27 00:01:58 UTC (rev 42022)
</span><span class="lines">@@ -1,3 +1,57 @@
</span><ins>+2009-03-26 Jungshik Shin <jshin@chromium.org>
+
+ Reviewed by Alexey Proskuryakov.
+
+ Add an encoding detector 'hook' to TextResourceDecoder.
+ - add |usesEncodingDetector| to Settings. It's off by default.
+ - add a new encoding source type |EncodingFromParent|
+ to distinguish cases when the encoding is inherited from
+ the parent frame from cases when it's actually auto-detected.
+ - add TextEncodingDetector* to platform/text. Currently,
+ the only implementation uses ICU. Stub is added for
+ ports that do not use ICU and a build on Tiger. Mac OS
+ Tiger comes with ICU 3.2 that does not support encoding detector.
+ - add ucsdet.h to icu/unicode for ports using ICU.
+
+ Layout tests will be added once bug 20534 is fixed and a WebPreference
+ can be controlled in test_shell. With UsesEncodingDetector off, there
+ is no change to test.
+
+ http://bugs.webkit.org/show_bug.cgi?id=16482
+
+ * WebCore.vcproj/WebCore.vcproj:
+ * WebCore.xcodeproj/project.pbxproj:
+ * WebCore/GNUmakefile.am
+ * WebCore/WebCore.pro
+ * WebCore/WebCore.scons
+ * WebCore/WebCoreSources.bkl
+ * WebCore.base.exp
+ * icu/unicode/ucsdet.h
+ * loader/FrameLoader.cpp:
+ (WebCore::FrameLoader::write): turn on/off encoding detector depending on \
Settings and set hintEncoding of TextResourceDecoder to the parent frame encoding if \
necessary and the security policy allows refering to the parent frame encoding. + \
* loader/TextResourceDecoder.cpp: + \
(WebCore::TextResourceDecoder::TextResourceDecoder): + \
(WebCore::TextResourceDecoder::checkForCSSCharset): add check for \
EncodingFromParentFrame + (WebCore::TextResourceDecoder::checkForHeadCharset): \
ditto + (WebCore::TextResourceDecoder::shouldAutoDetect):
+ (WebCore::TextResourceDecoder::decode): call encoding detector if \
shouldAutoDetect returns true. + (WebCore::TextResourceDecoder::flush): if \
encoding is not determined by now, call encoding detector if shouldAutoDetect returns \
true. + * loader/TextResourceDecoder.h:
+ (WebCore::TextResourceDecoder::):
+ (WebCore::TextResourceDecoder::create):
+ (WebCore::TextResourceDecoder::setHintEncoding):
+ (WebCore::TextResourceDecoder::source):
+ * page/Settings.cpp: add m_usesEncodingDetector
+ (WebCore::Settings::Settings):
+ (WebCore::Settings::setUsesEncodingDetector):
+ * page/Settings.h:
+ (WebCore::Settings::usesEncodingDetector):
+ * platform/text/TextEncodingDetector.h: Added.
+ * platform/text/TextEncodingDetectorICU.cpp: Added.
+ (WebCore::detectTextEncoding):
+ * platform/text/TextEncodingDetectorNone.cpp: Added.
+ (WebCore::detectTextEncoding):
+
</ins><span class="cx"> 2009-03-26 Darin Adler <darin@apple.com>
</span><span class="cx">
</span><span class="cx"> Reviewed by Geoff Garen.
</span></span></pre></div>
<a id="trunkWebCoreGNUmakefileam"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/GNUmakefile.am (42021 => 42022)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/GNUmakefile.am 2009-03-26 23:50:00 UTC (rev \
42021)
+++ trunk/WebCore/GNUmakefile.am 2009-03-27 00:01:58 UTC (rev 42022)
</span><span class="lines">@@ -1496,6 +1496,8 @@
</span><span class="cx"> WebCore/platform/text/TextDirection.h \
</span><span class="cx"> WebCore/platform/text/TextEncoding.cpp \
</span><span class="cx"> WebCore/platform/text/TextEncoding.h \
</span><ins>+ WebCore/platform/text/TextEncodingDetector.h \
+ WebCore/platform/text/TextEncodingDetectorNone.cpp \
</ins><span class="cx"> WebCore/platform/text/TextEncodingRegistry.cpp \
</span><span class="cx"> WebCore/platform/text/TextEncodingRegistry.h \
</span><span class="cx"> WebCore/platform/text/TextStream.cpp \
</span></span></pre></div>
<a id="trunkWebCoreWebCorebaseexp"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/WebCore.base.exp (42021 => \
42022)</h4> <pre class="diff"><span>
<span class="info">--- trunk/WebCore/WebCore.base.exp 2009-03-26 23:50:00 UTC (rev \
42021)
+++ trunk/WebCore/WebCore.base.exp 2009-03-27 00:01:58 UTC (rev 42022)
</span><span class="lines">@@ -409,7 +409,7 @@
</span><span class="cx"> __ZN7WebCore19SelectionControllerC1EPNS_5FrameEb
</span><span class="cx"> __ZN7WebCore19TextResourceDecoder5flushEv
</span><span class="cx"> __ZN7WebCore19TextResourceDecoder6decodeEPKcm
</span><del>-__ZN7WebCore19TextResourceDecoderC1ERKNS_6StringERKNS_12TextEncodingE
</del><ins>+__ZN7WebCore19TextResourceDecoderC1ERKNS_6StringERKNS_12TextEncodingEb
</ins><span class="cx"> __ZN7WebCore19TextResourceDecoderD1Ev
</span><span class="cx"> \
__ZN7WebCore20ResourceResponseBase24setExpectedContentLengthEx </span><span \
class="cx"> __ZN7WebCore21ContextMenuController16clearContextMenuEv </span><span \
class="lines">@@ -603,6 +603,7 @@ </span><span class="cx"> \
__ZN7WebCore8Settings23setDefaultFixedFontSizeEi </span><span class="cx"> \
__ZN7WebCore8Settings23setEditableLinkBehaviorENS_20EditableLinkBehaviorE \
</span><span class="cx"> __ZN7WebCore8Settings23setNeedsTigerMailQuirksEb \
</span><ins>+__ZN7WebCore8Settings23setUsesEncodingDetectorEb </ins><span class="cx"> \
__ZN7WebCore8Settings24setApplicationChromeModeEb </span><span class="cx"> \
__ZN7WebCore8Settings24setTextAreasAreResizableEb </span><span class="cx"> \
__ZN7WebCore8Settings25setDeveloperExtrasEnabledEb </span></span></pre></div>
<a id="trunkWebCoreWebCorepro"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/WebCore.pro (42021 => 42022)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/WebCore.pro 2009-03-26 23:50:00 UTC (rev 42021)
+++ trunk/WebCore/WebCore.pro 2009-03-27 00:01:58 UTC (rev 42022)
</span><span class="lines">@@ -963,6 +963,7 @@
</span><span class="cx"> platform/text/TextCodecUserDefined.cpp \
</span><span class="cx"> platform/text/TextCodecUTF16.cpp \
</span><span class="cx"> platform/text/TextEncoding.cpp \
</span><ins>+ platform/text/TextEncodingDetectorNone.cpp \
</ins><span class="cx"> platform/text/TextEncodingRegistry.cpp \
</span><span class="cx"> platform/text/TextStream.cpp \
</span><span class="cx"> platform/ThreadGlobalData.cpp \
</span></span></pre></div>
<a id="trunkWebCoreWebCorescons"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/WebCore.scons (42021 => 42022)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebCore/WebCore.scons 2009-03-26 23:50:00 UTC (rev \
42021)
+++ trunk/WebCore/WebCore.scons 2009-03-27 00:01:58 UTC (rev 42022)
</span><span class="lines">@@ -840,6 +840,7 @@
</span><span class="cx"> 'platform/text/TextCodecUserDefined.cpp',
</span><span class="cx"> 'platform/text/TextCodecUTF16.cpp',
</span><span class="cx"> 'platform/text/TextEncoding.cpp',
</span><ins>+ 'platform/text/TextEncodingDetectorICU.cpp',
</ins><span class="cx"> 'platform/text/TextEncodingRegistry.cpp',
</span><span class="cx"> 'platform/text/TextStream.cpp',
</span><span class="cx"> 'platform/text/UnicodeRange.cpp',
</span></span></pre></div>
<a id="trunkWebCoreWebCorevcprojWebCorevcproj"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/WebCore.vcproj/WebCore.vcproj (42021 \
=> 42022)</h4> <pre class="diff"><span>
<span class="info">--- trunk/WebCore/WebCore.vcproj/WebCore.vcproj 2009-03-26 \
23:50:00 UTC (rev 42021)
+++ trunk/WebCore/WebCore.vcproj/WebCore.vcproj 2009-03-27 00:01:58 UTC (rev 42022)
</span><span class="lines">@@ -6773,6 +6773,14 @@
</span><span class="cx"> >
</span><span class="cx"> </File>
</span><span class="cx"> <File
</span><ins>+ RelativePath="..\platform\text\TextEncodingDetectorICU.cpp"
+ >
+ </File>
+ <File
+ RelativePath="..\platform\text\TextEncodingDetector.h"
+ >
+ </File>
+ <File
</ins><span class="cx"> \
RelativePath="..\platform\text\TextEncodingRegistry.cpp" </span><span \
class="cx"> > </span><span class="cx"> </File>
</span></span></pre></div>
<a id="trunkWebCoreWebCorexcodeprojprojectpbxproj"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/WebCore.xcodeproj/project.pbxproj \
(42021 => 42022)</h4> <pre class="diff"><span>
<span class="info">--- trunk/WebCore/WebCore.xcodeproj/project.pbxproj 2009-03-26 \
23:50:00 UTC (rev 42021)
+++ trunk/WebCore/WebCore.xcodeproj/project.pbxproj 2009-03-27 00:01:58 UTC (rev \
42022) </span><span class="lines">@@ -4303,6 +4303,8 @@
</span><span class="cx"> C091588E0DB4209200E55AF4 /* JSQuarantinedObjectWrapper.cpp \
in Sources */ = {isa = PBXBuildFile; fileRef = C09158880DB4209200E55AF4 /* \
JSQuarantinedObjectWrapper.cpp */; }; </span><span class="cx"> \
C091588F0DB4209200E55AF4 /* JSQuarantinedObjectWrapper.h in Headers */ = {isa = \
PBXBuildFile; fileRef = C09158890DB4209200E55AF4 /* JSQuarantinedObjectWrapper.h */; \
}; </span><span class="cx"> C0DFC8700DB6841A003EAE7C /* JSConsoleCustom.cpp in \
Sources */ = {isa = PBXBuildFile; fileRef = C0DFC86F0DB6841A003EAE7C /* \
JSConsoleCustom.cpp */; }; </span><ins>+ C105DA620F3AA68F001DD44F /* \
TextEncodingDetectorICU.cpp in Sources */ = {isa = PBXBuildFile; fileRef = \
C105DA610F3AA68F001DD44F /* TextEncodingDetectorICU.cpp */; }; \
+ C105DA640F3AA6B8001DD44F /* TextEncodingDetector.h in Headers */ = {isa = \
PBXBuildFile; fileRef = C105DA630F3AA6B8001DD44F /* TextEncodingDetector.h */; }; \
</ins><span class="cx"> C6D74AD509AA282E000B0A52 /* ModifySelectionListLevel.h in \
Headers */ = {isa = PBXBuildFile; fileRef = C6D74AD309AA282E000B0A52 /* \
ModifySelectionListLevel.h */; }; </span><span class="cx"> C6D74AE409AA290A000B0A52 \
/* ModifySelectionListLevel.cpp in Sources */ = {isa = PBXBuildFile; fileRef = \
C6D74AE309AA290A000B0A52 /* ModifySelectionListLevel.cpp */; }; </span><span \
class="cx"> D05CED290A40BB2C00C5AF38 /* FormatBlockCommand.cpp in Sources */ = {isa \
= PBXBuildFile; fileRef = D05CED270A40BB2C00C5AF38 /* FormatBlockCommand.cpp */; }; \
</span><span class="lines">@@ -9155,6 +9157,8 @@ </span><span class="cx"> \
C09158880DB4209200E55AF4 /* JSQuarantinedObjectWrapper.cpp */ = {isa = \
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = \
JSQuarantinedObjectWrapper.cpp; sourceTree = "<group>"; }; \
</span><span class="cx"> C09158890DB4209200E55AF4 /* JSQuarantinedObjectWrapper.h \
*/ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; \
path = JSQuarantinedObjectWrapper.h; sourceTree = "<group>"; }; \
</span><span class="cx"> C0DFC86F0DB6841A003EAE7C /* JSConsoleCustom.cpp */ = {isa \
= PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = \
JSConsoleCustom.cpp; sourceTree = "<group>"; }; \
</span><ins>+ C105DA610F3AA68F001DD44F /* TextEncodingDetectorICU.cpp */ = {isa = \
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = \
TextEncodingDetectorICU.cpp; sourceTree = "<group>"; }; \
+ C105DA630F3AA6B8001DD44F /* TextEncodingDetector.h */ = {isa = PBXFileReference; \
fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TextEncodingDetector.h; \
sourceTree = "<group>"; }; </ins><span class="cx"> \
C6D74AD309AA282E000B0A52 /* ModifySelectionListLevel.h */ = {isa = PBXFileReference; \
fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = \
ModifySelectionListLevel.h; sourceTree = "<group>"; }; </span><span \
class="cx"> C6D74AE309AA290A000B0A52 /* ModifySelectionListLevel.cpp */ = {isa = \
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = \
ModifySelectionListLevel.cpp; sourceTree = "<group>"; }; </span><span \
class="cx"> D05CED270A40BB2C00C5AF38 /* FormatBlockCommand.cpp */ = {isa = \
PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; path = \
FormatBlockCommand.cpp; sourceTree = "<group>"; }; </span><span \
class="lines">@@ -13336,6 +13340,8 @@ </span><span class="cx"> \
B2C3DA150D006C1D00EF6F26 /* TextDirection.h */, </span><span class="cx"> \
B2C3DA160D006C1D00EF6F26 /* TextEncoding.cpp */, </span><span class="cx"> \
B2C3DA170D006C1D00EF6F26 /* TextEncoding.h */, \
</span><ins>+ C105DA630F3AA6B8001DD44F /* TextEncodingDetector.h */, \
+ C105DA610F3AA68F001DD44F /* TextEncodingDetectorICU.cpp */, </ins><span \
class="cx"> B2C3DA180D006C1D00EF6F26 /* TextEncodingRegistry.cpp */, </span><span \
class="cx"> B2C3DA190D006C1D00EF6F26 /* TextEncodingRegistry.h */, </span><span \
class="cx"> B2C3DA1A0D006C1D00EF6F26 /* TextStream.cpp */, </span><span \
class="lines">@@ -16708,6 +16714,7 @@ </span><span class="cx"> \
B2C3DA450D006C1D00EF6F26 /* TextDirection.h in Headers */, </span><span class="cx"> \
1A6938020A11100A00C127FE /* TextDocument.h in Headers */, </span><span class="cx"> \
B2C3DA470D006C1D00EF6F26 /* TextEncoding.h in Headers */, \
</span><ins>+ C105DA640F3AA6B8001DD44F /* TextEncodingDetector.h in Headers */, \
</ins><span class="cx"> B2C3DA490D006C1D00EF6F26 /* TextEncodingRegistry.h in \
Headers */, </span><span class="cx"> 933A14300B7D188600A53FFD /* TextEvent.h in \
Headers */, </span><span class="cx"> 93309E18099E64920056E581 /* \
TextGranularity.h in Headers */, </span><span class="lines">@@ -18739,6 +18746,7 @@
</span><span class="cx"> AB014DE30E689A4300E10445 /* TextControlInnerElements.cpp \
in Sources */, </span><span class="cx"> 1A6938010A11100A00C127FE /* \
TextDocument.cpp in Sources */, </span><span class="cx"> B2C3DA460D006C1D00EF6F26 \
/* TextEncoding.cpp in Sources */, </span><ins>+ C105DA620F3AA68F001DD44F /* \
TextEncodingDetectorICU.cpp in Sources */, </ins><span class="cx"> \
B2C3DA480D006C1D00EF6F26 /* TextEncodingRegistry.cpp in Sources */, </span><span \
class="cx"> 933A142E0B7D188600A53FFD /* TextEvent.cpp in Sources */, </span><span \
class="cx"> 93309E1B099E64920056E581 /* TextIterator.cpp in Sources */, \
</span></span></pre></div> <a id="trunkWebCoreWebCoreSourcesbkl"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/WebCoreSources.bkl (42021 => \
42022)</h4> <pre class="diff"><span>
<span class="info">--- trunk/WebCore/WebCoreSources.bkl 2009-03-26 23:50:00 UTC (rev \
42021)
+++ trunk/WebCore/WebCoreSources.bkl 2009-03-27 00:01:58 UTC (rev 42022)
</span><span class="lines">@@ -780,6 +780,7 @@
</span><span class="cx"> platform/text/TextCodecUTF16.cpp
</span><span class="cx"> platform/text/TextCodecUserDefined.cpp
</span><span class="cx"> platform/text/TextEncoding.cpp
</span><ins>+ platform/text/TextEncodingDetectorICU.cpp
</ins><span class="cx"> platform/text/TextEncodingRegistry.cpp
</span><span class="cx"> platform/text/TextStream.cpp
</span><span class="cx"> platform/ThreadGlobalData.cpp
</span></span></pre></div>
<a id="trunkWebCoreloaderFrameLoadercpp"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/loader/FrameLoader.cpp (42021 => \
42022)</h4> <pre class="diff"><span>
<span class="info">--- trunk/WebCore/loader/FrameLoader.cpp 2009-03-26 23:50:00 UTC \
(rev 42021)
+++ trunk/WebCore/loader/FrameLoader.cpp 2009-03-27 00:01:58 UTC (rev 42022)
</span><span class="lines">@@ -253,6 +253,11 @@
</span><span class="cx"> return document->docLoader()->requestCount();
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+static inline bool canReferToParentFrameEncoding(const Frame* frame, \
const Frame* parentFrame) +{
+ return parentFrame && \
parentFrame->document()->securityOrigin()->canAccess(frame->document()->securityOrigin());
+}
+
</ins><span class="cx"> FrameLoader::FrameLoader(Frame* frame, FrameLoaderClient* \
client) </span><span class="cx"> : m_frame(frame)
</span><span class="cx"> , m_client(client)
</span><span class="lines">@@ -997,12 +1002,28 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> if (!m_decoder) {
</span><del>- Settings* settings = m_frame->settings();
- m_decoder = TextResourceDecoder::create(m_responseMIMEType, settings ? \
settings->defaultTextEncodingName() : String()); </del><ins>+ if (Settings* \
settings = m_frame->settings()) { + m_decoder = \
TextResourceDecoder::create(m_responseMIMEType, + \
settings->defaultTextEncodingName(), + \
settings->usesEncodingDetector()); + Frame* parentFrame = \
m_frame->tree()->parent(); + // Set the hint encoding to the parent \
frame encoding only if + // the parent and the current frames share the \
security origin. + // We impose this condition because somebody can make a \
child frame + // containing a carefully crafted html/javascript in one \
encoding + // that can be mistaken for hintEncoding (or related encoding) \
by + // an auto detector. When interpreted in the latter, it could be
+ // an attack vector.
+ // FIXME: This might be too cautious for non-7bit-encodings and
+ // we may consider relaxing this later after testing.
+ if (canReferToParentFrameEncoding(m_frame, parentFrame))
+ m_decoder->setHintEncoding(parentFrame->document()->decoder());
+ } else
+ m_decoder = TextResourceDecoder::create(m_responseMIMEType, String());
+ Frame* parentFrame = m_frame->tree()->parent();
</ins><span class="cx"> if (m_encoding.isEmpty()) {
</span><del>- Frame* parentFrame = m_frame->tree()->parent();
- if (parentFrame && \
parentFrame->document()->securityOrigin()->canAccess(m_frame->document()->securityOrigin()))
- m_decoder->setEncoding(parentFrame->document()->inputEncoding(), \
TextResourceDecoder::DefaultEncoding); </del><ins>+ if \
(canReferToParentFrameEncoding(m_frame, parentFrame)) + \
m_decoder->setEncoding(parentFrame->document()->inputEncoding(), \
TextResourceDecoder::EncodingFromParentFrame); </ins><span class="cx"> } else \
{ </span><span class="cx"> m_decoder->setEncoding(m_encoding,
</span><span class="cx"> m_encodingWasChosenByUser ? \
TextResourceDecoder::UserChosenEncoding : \
TextResourceDecoder::EncodingFromHTTPHeader); </span></span></pre></div>
<a id="trunkWebCoreloaderTextResourceDecodercpp"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/loader/TextResourceDecoder.cpp \
(42021 => 42022)</h4> <pre class="diff"><span>
<span class="info">--- trunk/WebCore/loader/TextResourceDecoder.cpp 2009-03-26 \
23:50:00 UTC (rev 42021)
+++ trunk/WebCore/loader/TextResourceDecoder.cpp 2009-03-27 00:01:58 UTC (rev 42022)
</span><span class="lines">@@ -26,6 +26,8 @@
</span><span class="cx"> #include "DOMImplementation.h"
</span><span class="cx"> #include "HTMLNames.h"
</span><span class="cx"> #include "TextCodec.h"
</span><ins>+#include "TextEncoding.h"
+#include "TextEncodingDetector.h"
</ins><span class="cx"> #include "TextEncodingRegistry.h"
</span><span class="cx"> #include <wtf/ASCIICType.h>
</span><span class="cx"> #include <wtf/StringExtras.h>
</span><span class="lines">@@ -321,15 +323,17 @@
</span><span class="cx"> return specifiedDefaultEncoding;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-TextResourceDecoder::TextResourceDecoder(const String& mimeType, \
const TextEncoding& specifiedDefaultEncoding) \
</del><ins>+TextResourceDecoder::TextResourceDecoder(const String& mimeType, \
const TextEncoding& specifiedDefaultEncoding, bool usesEncodingDetector) \
</ins><span class="cx"> : m_contentType(determineContentType(mimeType)) \
</span><span class="cx"> , m_encoding(defaultEncoding(m_contentType, \
specifiedDefaultEncoding)) </span><span class="cx"> , m_source(DefaultEncoding)
</span><ins>+ , m_hintEncoding(0)
</ins><span class="cx"> , m_checkedForBOM(false)
</span><span class="cx"> , m_checkedForCSSCharset(false)
</span><span class="cx"> , m_checkedForHeadCharset(false)
</span><span class="cx"> , m_useLenientXMLDecoding(false)
</span><span class="cx"> , m_sawError(false)
</span><ins>+ , m_usesEncodingDetector(usesEncodingDetector)
</ins><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -451,7 +455,7 @@
</span><span class="cx">
</span><span class="cx"> bool TextResourceDecoder::checkForCSSCharset(const char* \
data, size_t len, bool& movedDataToBuffer) </span><span class="cx"> {
</span><del>- if (m_source != DefaultEncoding) {
</del><ins>+ if (m_source != DefaultEncoding && m_source != \
EncodingFromParentFrame) { </ins><span class="cx"> m_checkedForCSSCharset = \
true; </span><span class="cx"> return true;
</span><span class="cx"> }
</span><span class="lines">@@ -532,7 +536,7 @@
</span><span class="cx">
</span><span class="cx"> bool TextResourceDecoder::checkForHeadCharset(const char* \
data, size_t len, bool& movedDataToBuffer) </span><span class="cx"> {
</span><del>- if (m_source != DefaultEncoding) {
</del><ins>+ if (m_source != DefaultEncoding && m_source != \
EncodingFromParentFrame) { </ins><span class="cx"> m_checkedForHeadCharset = \
true; </span><span class="cx"> return true;
</span><span class="cx"> }
</span><span class="lines">@@ -759,6 +763,23 @@
</span><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+// We use the encoding detector in two cases:
+// 1. Encoding detector is turned ON and no other encoding source is
+// available (that is, it's DefaultEncoding).
+// 2. Encoding detector is turned ON and the encoding is set to
+// the encoding of the parent frame, which is also auto-detected.
+// Note that condition #2 is NOT satisfied unless parent-child frame
+// relationship is compliant to the same-origin policy. If they're from
+// different domains, |m_source| would not be set to EncodingFromParentFrame
+// in the first place.
+bool TextResourceDecoder::shouldAutoDetect() const
+{
+ // Just checking m_hintEncoding suffices here because it's only set
+ // in setHintEncoding when the source is AutoDetectedEncoding.
+ return m_usesEncodingDetector
+ && (m_source == DefaultEncoding || (m_source == \
EncodingFromParentFrame && m_hintEncoding)); +}
+
</ins><span class="cx"> String TextResourceDecoder::decode(const char* data, size_t \
len) </span><span class="cx"> {
</span><span class="cx"> size_t lengthOfBOM = 0;
</span><span class="lines">@@ -775,10 +796,24 @@
</span><span class="cx"> if (!checkForHeadCharset(data, len, \
movedDataToBuffer)) </span><span class="cx"> return "";
</span><span class="cx">
</span><del>- // Do the auto-detect if our default encoding is one of the Japanese \
ones.
- // FIXME: It seems wrong to change our encoding downstream after we have already \
done some decoding. </del><ins>+ // FIXME: It seems wrong to change our encoding \
downstream after + // we have already done some decoding. However, it's not \
possible + // to avoid in a sense in two cases below because triggering conditions
+ // for both cases depend on the information that won't be available
+ // until we do partial read.
+ // The first case had better be removed altogether (see bug 21990)
+ // or at least be made to be invoked only when the encoding detection
+ // is turned on.
+ // Do the auto-detect 1) using Japanese detector if our default encoding is
+ // one of the Japanese detector or 2) using detectTextEncoding if encoding
+ // detection is turned on.
</ins><span class="cx"> if (m_source != UserChosenEncoding && m_source != \
AutoDetectedEncoding && m_encoding.isJapanese()) </span><span class="cx"> \
detectJapaneseEncoding(data, len); </span><ins>+ else if (shouldAutoDetect()) {
+ TextEncoding detectedEncoding;
+ if (detectTextEncoding(data, len, m_hintEncoding, &detectedEncoding))
+ setEncoding(detectedEncoding, AutoDetectedEncoding);
+ }
</ins><span class="cx">
</span><span class="cx"> ASSERT(m_encoding.isValid());
</span><span class="cx">
</span><span class="lines">@@ -801,6 +836,17 @@
</span><span class="cx">
</span><span class="cx"> String TextResourceDecoder::flush()
</span><span class="cx"> {
</span><ins>+ // If we can not identify the encoding even after a document is \
completely + // loaded, we need to detect the encoding if other conditions for
+ // autodetection is satisfied.
+ if (m_buffer.size() && shouldAutoDetect()
+ && ((!m_checkedForHeadCharset && (m_contentType == HTML || \
m_contentType == XML)) || (!m_checkedForCSSCharset && (m_contentType == \
CSS)))) { + TextEncoding detectedEncoding;
+ if (detectTextEncoding(m_buffer.data(), m_buffer.size(),
+ m_hintEncoding, &detectedEncoding))
+ setEncoding(detectedEncoding, AutoDetectedEncoding);
+ }
+
</ins><span class="cx"> if (!m_codec)
</span><span class="cx"> m_codec.set(newTextCodec(m_encoding).release());
</span><span class="cx">
</span></span></pre></div>
<a id="trunkWebCoreloaderTextResourceDecoderh"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/loader/TextResourceDecoder.h (42021 \
=> 42022)</h4> <pre class="diff"><span>
<span class="info">--- trunk/WebCore/loader/TextResourceDecoder.h 2009-03-26 23:50:00 \
UTC (rev 42021)
+++ trunk/WebCore/loader/TextResourceDecoder.h 2009-03-27 00:01:58 UTC (rev 42022)
</span><span class="lines">@@ -36,12 +36,13 @@
</span><span class="cx"> EncodingFromMetaTag,
</span><span class="cx"> EncodingFromCSSCharset,
</span><span class="cx"> EncodingFromHTTPHeader,
</span><del>- UserChosenEncoding
</del><ins>+ UserChosenEncoding,
+ EncodingFromParentFrame
</ins><span class="cx"> };
</span><span class="cx">
</span><del>- static PassRefPtr<TextResourceDecoder> create(const \
String& mimeType, const TextEncoding& defaultEncoding = TextEncoding()) \
</del><ins>+ static PassRefPtr<TextResourceDecoder> create(const String& \
mimeType, const TextEncoding& defaultEncoding = TextEncoding(), bool \
usesEncodingDetector = false) </ins><span class="cx"> {
</span><del>- return adoptRef(new TextResourceDecoder(mimeType, \
defaultEncoding)); </del><ins>+ return adoptRef(new \
TextResourceDecoder(mimeType, defaultEncoding, usesEncodingDetector)); </ins><span \
class="cx"> } </span><span class="cx"> ~TextResourceDecoder();
</span><span class="cx">
</span><span class="lines">@@ -51,11 +52,20 @@
</span><span class="cx"> String decode(const char* data, size_t length);
</span><span class="cx"> String flush();
</span><span class="cx">
</span><ins>+ void setHintEncoding(const TextResourceDecoder* hintDecoder)
+ {
+ // hintEncoding is for use with autodetection, which should be
+ // only invoked when hintEncoding comes from auto-detection.
+ if (hintDecoder->m_source == AutoDetectedEncoding)
+ m_hintEncoding = hintDecoder->encoding().name();
+ }
+
</ins><span class="cx"> void useLenientXMLDecoding() { m_useLenientXMLDecoding = \
true; } </span><span class="cx"> bool sawError() const { return m_sawError; }
</span><span class="cx">
</span><span class="cx"> private:
</span><del>- TextResourceDecoder(const String& mimeType, const \
TextEncoding& defaultEncoding); </del><ins>+ TextResourceDecoder(const \
String& mimeType, const TextEncoding& defaultEncoding, + \
bool usesEncodingDetector); </ins><span class="cx">
</span><span class="cx"> enum ContentType { PlainText, HTML, XML, CSS }; // \
PlainText only checks for BOM. </span><span class="cx"> static ContentType \
determineContentType(const String& mimeType); </span><span class="lines">@@ \
-65,17 +75,20 @@ </span><span class="cx"> bool checkForCSSCharset(const char*, \
size_t, bool& movedDataToBuffer); </span><span class="cx"> bool \
checkForHeadCharset(const char*, size_t, bool& movedDataToBuffer); </span><span \
class="cx"> void detectJapaneseEncoding(const char*, size_t); </span><ins>+ \
bool shouldAutoDetect() const; </ins><span class="cx">
</span><span class="cx"> ContentType m_contentType;
</span><span class="cx"> TextEncoding m_encoding;
</span><span class="cx"> OwnPtr<TextCodec> m_codec;
</span><span class="cx"> EncodingSource m_source;
</span><ins>+ const char* m_hintEncoding;
</ins><span class="cx"> Vector<char> m_buffer;
</span><span class="cx"> bool m_checkedForBOM;
</span><span class="cx"> bool m_checkedForCSSCharset;
</span><span class="cx"> bool m_checkedForHeadCharset;
</span><span class="cx"> bool m_useLenientXMLDecoding; // Don't stop on XML \
decoding errors. </span><span class="cx"> bool m_sawError;
</span><ins>+ bool m_usesEncodingDetector;
</ins><span class="cx"> };
</span><span class="cx">
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkWebCorepageSettingscpp"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/page/Settings.cpp (42021 => \
42022)</h4> <pre class="diff"><span>
<span class="info">--- trunk/WebCore/page/Settings.cpp 2009-03-26 23:50:00 UTC (rev \
42021)
+++ trunk/WebCore/page/Settings.cpp 2009-03-27 00:01:58 UTC (rev 42022)
</span><span class="lines">@@ -87,6 +87,7 @@
</span><span class="cx"> , m_shouldPaintCustomScrollbars(false)
</span><span class="cx"> , m_zoomsTextOnly(false)
</span><span class="cx"> , m_enforceCSSMIMETypeInStrictMode(true)
</span><ins>+ , m_usesEncodingDetector(false)
</ins><span class="cx"> , \
m_maximumDecodedImageSize(std::numeric_limits<size_t>::max()) </span><span \
class="cx"> , m_allowScriptsToCloseWindows(false) </span><span class="cx"> {
</span><span class="lines">@@ -424,6 +425,11 @@
</span><span class="cx"> }
</span><span class="cx"> #endif
</span><span class="cx">
</span><ins>+void Settings::setUsesEncodingDetector(bool usesEncodingDetector)
+{
+ m_usesEncodingDetector = usesEncodingDetector;
+}
+
</ins><span class="cx"> void Settings::setAllowScriptsToCloseWindows(bool \
allowScriptsToCloseWindows) </span><span class="cx"> {
</span><span class="cx"> m_allowScriptsToCloseWindows = \
allowScriptsToCloseWindows; </span></span></pre></div>
<a id="trunkWebCorepageSettingsh"></a>
<div class="modfile"><h4>Modified: trunk/WebCore/page/Settings.h (42021 => \
42022)</h4> <pre class="diff"><span>
<span class="info">--- trunk/WebCore/page/Settings.h 2009-03-26 23:50:00 UTC (rev \
42021)
+++ trunk/WebCore/page/Settings.h 2009-03-27 00:01:58 UTC (rev 42022)
</span><span class="lines">@@ -115,6 +115,9 @@
</span><span class="cx">
</span><span class="cx"> void setDefaultTextEncodingName(const String&);
</span><span class="cx"> const String& defaultTextEncodingName() const { \
return m_defaultTextEncodingName; } </span><ins>+
+ void setUsesEncodingDetector(bool);
+ bool usesEncodingDetector() const { return m_usesEncodingDetector; }
</ins><span class="cx">
</span><span class="cx"> void setUserStyleSheetLocation(const KURL&);
</span><span class="cx"> const KURL& userStyleSheetLocation() const { \
return m_userStyleSheetLocation; } </span><span class="lines">@@ -264,6 +267,7 @@
</span><span class="cx"> bool m_shouldPaintCustomScrollbars : 1;
</span><span class="cx"> bool m_zoomsTextOnly : 1;
</span><span class="cx"> bool m_enforceCSSMIMETypeInStrictMode : 1;
</span><ins>+ bool m_usesEncodingDetector : 1;
</ins><span class="cx"> size_t m_maximumDecodedImageSize;
</span><span class="cx"> bool m_allowScriptsToCloseWindows : 1;
</span><span class="cx">
</span></span></pre></div>
<a id="trunkWebKitmacChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/WebKit/mac/ChangeLog (42021 => 42022)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/WebKit/mac/ChangeLog 2009-03-26 23:50:00 UTC (rev 42021)
+++ trunk/WebKit/mac/ChangeLog 2009-03-27 00:01:58 UTC (rev 42022)
</span><span class="lines">@@ -1,3 +1,20 @@
</span><ins>+2009-03-26 Jungshik Shin <jshin@chromium.org>
+
+ Reviewed by Alexey Proskuryakov.
+
+ Add WebPreferences for encoding autodetection on Mac.
+
+ http://bugs.webkit.org/show_bug.cgi?id=16482
+
+ * WebView/WebPreferenceKeysPrivate.h:
+ * WebView/WebPreferences.mm:
+ (+[WebPreferences initialize]):
+ (-[WebPreferences usesEncodingDetector]):
+ (-[WebPreferences setUsesEncodingDetector:]):
+ * WebView/WebPreferencesPrivate.h:
+ * WebView/WebView.mm:
+ (-[WebView _preferencesChangedNotification:]):
+
</ins><span class="cx"> 2009-03-26 Anders Carlsson <andersca@apple.com>
</span><span class="cx">
</span><span class="cx"> Reviewed by Dan Bernstein.
</span></span></pre></div>
<a id="trunkWebKitmacWebViewWebPreferenceKeysPrivateh"></a>
<div class="modfile"><h4>Modified: \
trunk/WebKit/mac/WebView/WebPreferenceKeysPrivate.h (42021 => 42022)</h4> <pre \
class="diff"><span> <span class="info">--- \
trunk/WebKit/mac/WebView/WebPreferenceKeysPrivate.h 2009-03-26 23:50:00 UTC (rev \
42021)
+++ trunk/WebKit/mac/WebView/WebPreferenceKeysPrivate.h 2009-03-27 00:01:58 UTC (rev \
42022) </span><span class="lines">@@ -41,6 +41,7 @@
</span><span class="cx"> #define WebKitDefaultFontSizePreferenceKey \
@"WebKitDefaultFontSize" </span><span class="cx"> #define \
WebKitDefaultFixedFontSizePreferenceKey @"WebKitDefaultFixedFontSize" \
</span><span class="cx"> #define WebKitDefaultTextEncodingNamePreferenceKey \
@"WebKitDefaultTextEncodingName" </span><ins>+#define \
WebKitUsesEncodingDetectorPreferenceKey @"WebKitUsesEncodingDetector" \
</ins><span class="cx"> #define WebKitUserStyleSheetEnabledPreferenceKey \
@"WebKitUserStyleSheetEnabledPreferenceKey" </span><span class="cx"> \
#define WebKitUserStyleSheetLocationPreferenceKey \
@"WebKitUserStyleSheetLocationPreferenceKey" </span><span class="cx"> \
#define WebKitShouldPrintBackgroundsPreferenceKey \
@"WebKitShouldPrintBackgroundsPreferenceKey" </span></span></pre></div>
<a id="trunkWebKitmacWebViewWebPreferencesmm"></a>
<div class="modfile"><h4>Modified: trunk/WebKit/mac/WebView/WebPreferences.mm (42021 \
=> 42022)</h4> <pre class="diff"><span>
<span class="info">--- trunk/WebKit/mac/WebView/WebPreferences.mm 2009-03-26 23:50:00 \
UTC (rev 42021)
+++ trunk/WebKit/mac/WebView/WebPreferences.mm 2009-03-27 00:01:58 UTC (rev 42022)
</span><span class="lines">@@ -306,6 +306,7 @@
</span><span class="cx"> @"16", \
WebKitDefaultFontSizePreferenceKey, </span><span class="cx"> @"13", \
WebKitDefaultFixedFontSizePreferenceKey, </span><span class="cx"> \
@"ISO-8859-1", WebKitDefaultTextEncodingNamePreferenceKey, \
</span><ins>+ [NSNumber numberWithBool:NO], \
WebKitUsesEncodingDetectorPreferenceKey, </ins><span class="cx"> [NSNumber \
numberWithBool:NO], WebKitUserStyleSheetEnabledPreferenceKey, </span><span \
class="cx"> @"", \
WebKitUserStyleSheetLocationPreferenceKey, </span><span class="cx"> [NSNumber \
numberWithBool:NO], WebKitShouldPrintBackgroundsPreferenceKey, </span><span \
class="lines">@@ -864,6 +865,16 @@ </span><span class="cx"> \
_private->automaticallyDetectsCacheModel = automaticallyDetectsCacheModel; \
</span><span class="cx"> } </span><span class="cx">
</span><ins>+- (BOOL)usesEncodingDetector
+{
+ return [self _boolValueForKey: WebKitUsesEncodingDetectorPreferenceKey];
+}
+
+- (void)setUsesEncodingDetector:(BOOL)flag
+{
+ [self _setBoolValue: flag forKey: WebKitUsesEncodingDetectorPreferenceKey];
+}
+
</ins><span class="cx"> - (BOOL)isWebSecurityEnabled
</span><span class="cx"> {
</span><span class="cx"> return [self _boolValueForKey: \
WebKitWebSecurityEnabledPreferenceKey]; </span></span></pre></div>
<a id="trunkWebKitmacWebViewWebPreferencesPrivateh"></a>
<div class="modfile"><h4>Modified: trunk/WebKit/mac/WebView/WebPreferencesPrivate.h \
(42021 => 42022)</h4> <pre class="diff"><span>
<span class="info">--- trunk/WebKit/mac/WebView/WebPreferencesPrivate.h 2009-03-26 \
23:50:00 UTC (rev 42021)
+++ trunk/WebKit/mac/WebView/WebPreferencesPrivate.h 2009-03-27 00:01:58 UTC (rev \
42022) </span><span class="lines">@@ -59,6 +59,9 @@
</span><span class="cx"> - (BOOL)applicationChromeModeEnabled;
</span><span class="cx"> - (void)setApplicationChromeModeEnabled:(BOOL)flag;
</span><span class="cx">
</span><ins>+- (BOOL)usesEncodingDetector;
+- (void)setUsesEncodingDetector:(BOOL)flag;
+
</ins><span class="cx"> - (BOOL)respectStandardStyleKeyEquivalents;
</span><span class="cx"> - (void)setRespectStandardStyleKeyEquivalents:(BOOL)flag;
</span><span class="cx">
</span></span></pre></div>
<a id="trunkWebKitmacWebViewWebViewmm"></a>
<div class="modfile"><h4>Modified: trunk/WebKit/mac/WebView/WebView.mm (42021 => \
42022)</h4> <pre class="diff"><span>
<span class="info">--- trunk/WebKit/mac/WebView/WebView.mm 2009-03-26 23:50:00 UTC \
(rev 42021)
+++ trunk/WebKit/mac/WebView/WebView.mm 2009-03-27 00:01:58 UTC (rev 42022)
</span><span class="lines">@@ -1332,6 +1332,7 @@
</span><span class="cx"> settings->setDefaultFixedFontSize([preferences \
defaultFixedFontSize]); </span><span class="cx"> \
settings->setDefaultFontSize([preferences defaultFontSize]); </span><span \
class="cx"> settings->setDefaultTextEncodingName([preferences \
defaultTextEncodingName]); </span><ins>+ \
settings->setUsesEncodingDetector([preferences usesEncodingDetector]); </ins><span \
class="cx"> settings->setFantasyFontFamily([preferences fantasyFontFamily]); \
</span><span class="cx"> settings->setFixedFontFamily([preferences \
fixedFontFamily]); </span><span class="cx"> \
settings->setForceFTPDirectoryListings([preferences _forceFTPDirectoryListings]); \
</span></span></pre> </div>
</div>
</body>
</html>
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic