diff options
author | Marek Habersack <grendel@twistedcode.net> | 2010-04-12 23:38:28 +0400 |
---|---|---|
committer | Marek Habersack <grendel@twistedcode.net> | 2010-04-12 23:38:28 +0400 |
commit | 78849b6501e175091a9320c011c3c1c79d1c2a69 (patch) | |
tree | f2f97b4f50b28d1b04460b32cb5b112f5e513caf /mcs | |
parent | 36d58d231a5cb91317cfbc3a74eb565cec8c4acd (diff) |
Backport of r155262
svn path=/branches/mono-2-6/mcs/; revision=155263
Diffstat (limited to 'mcs')
5 files changed, 34 insertions, 5 deletions
diff --git a/mcs/class/System.Web/System.Web.Compilation/ChangeLog b/mcs/class/System.Web/System.Web.Compilation/ChangeLog index eb590e08b61..cc0aad400f7 100644 --- a/mcs/class/System.Web/System.Web.Compilation/ChangeLog +++ b/mcs/class/System.Web/System.Web.Compilation/ChangeLog @@ -1,3 +1,8 @@ +2010-04-12 Marek Habersack <mhabersack@novell.com> + + * PageCompiler.cs: if EnableViewStateMac is set in the page + source, generate relevant code. + 2010-03-06 Marek Habersack <mhabersack@novell.com> * TemplateControlCompiler.cs: AssignPropertyForResources localizes diff --git a/mcs/class/System.Web/System.Web.Compilation/PageCompiler.cs b/mcs/class/System.Web/System.Web.Compilation/PageCompiler.cs index 5c3fdc24c56..aa5ce1aeb36 100644 --- a/mcs/class/System.Web/System.Web.Compilation/PageCompiler.cs +++ b/mcs/class/System.Web/System.Web.Compilation/PageCompiler.cs @@ -339,11 +339,13 @@ namespace System.Web.Compilation protected override void AddStatementsToInitMethod (CodeMemberMethod method) { -#if NET_2_0 - AddStatementsFromDirective (method); ILocation directiveLocation = pageParser.DirectiveLocation; - CodeArgumentReferenceExpression ctrlVar = new CodeArgumentReferenceExpression("__ctrl"); + + if (pageParser.EnableViewStateMacSet) + method.Statements.Add (AddLinePragma (CreatePropertyAssign (ctrlVar, "EnableViewStateMac", pageParser.EnableViewStateMac), directiveLocation)); +#if NET_2_0 + AddStatementsFromDirective (method); if (pageParser.Title != null) method.Statements.Add (AddLinePragma (CreatePropertyAssign (ctrlVar, "Title", pageParser.Title), directiveLocation)); diff --git a/mcs/class/System.Web/System.Web.UI/ChangeLog b/mcs/class/System.Web/System.Web.UI/ChangeLog index ec528b7081c..97b4cacb7d3 100644 --- a/mcs/class/System.Web/System.Web.UI/ChangeLog +++ b/mcs/class/System.Web/System.Web.UI/ChangeLog @@ -1,3 +1,11 @@ +2010-04-12 Marek Habersack <mhabersack@novell.com> + + * PageParser.cs: if EnableViewStateMac option is present in the + directive, remember it for later use by the compiler. + + * Page.cs: initialize EnableViewStateMac with the default read + from the config. + 2010-04-07 Marek Habersack <mhabersack@novell.com> * Control.cs: control cache must be filled using the local diff --git a/mcs/class/System.Web/System.Web.UI/Page.cs b/mcs/class/System.Web/System.Web.UI/Page.cs index 2148abd64db..ad13eaff3bd 100644 --- a/mcs/class/System.Web/System.Web.UI/Page.cs +++ b/mcs/class/System.Web/System.Web.UI/Page.cs @@ -194,11 +194,16 @@ public partial class Page : TemplateControl, IHttpHandler asyncTimeout = ps.AsyncTimeout; viewStateEncryptionMode = ps.ViewStateEncryptionMode; _viewState = ps.EnableViewState; + _viewStateMac = ps.EnableViewStateMac; } else { asyncTimeout = TimeSpan.FromSeconds (DefaultAsyncTimeout); viewStateEncryptionMode = ViewStateEncryptionMode.Auto; _viewState = true; } +#else + PagesConfiguration ps = PagesConfiguration.GetInstance (HttpContext.Current); + if (ps != null) + _viewStateMac = ps.EnableViewStateMac; #endif } diff --git a/mcs/class/System.Web/System.Web.UI/PageParser.cs b/mcs/class/System.Web/System.Web.UI/PageParser.cs index ea6b10ed24f..b6f557dbb14 100644 --- a/mcs/class/System.Web/System.Web.UI/PageParser.cs +++ b/mcs/class/System.Web/System.Web.UI/PageParser.cs @@ -45,7 +45,8 @@ namespace System.Web.UI public sealed class PageParser : TemplateControlParser { PagesEnableSessionState enableSessionState = PagesEnableSessionState.True; - bool enableViewStateMac = true; + bool enableViewStateMac; + bool enableViewStateMacSet; bool smartNavigation; bool haveTrace; bool trace; @@ -383,8 +384,12 @@ namespace System.Web.UI enable_event_validation = GetBool (atts, "EnableEventValidation", enable_event_validation); maintainScrollPositionOnPostBack = GetBool (atts, "MaintainScrollPositionOnPostBack", maintainScrollPositionOnPostBack); #endif + if (atts.ContainsKey ("EnableViewStateMac")) { + enableViewStateMac = GetBool (atts, "EnableViewStateMac", enableViewStateMac); + enableViewStateMacSet = true; + } + // Ignored by now - GetString (atts, "EnableViewStateMac", null); GetString (atts, "SmartNavigation", null); base.ProcessMainAttributes (atts); @@ -475,6 +480,10 @@ namespace System.Web.UI internal bool EnableViewStateMac { get { return enableViewStateMac; } } + + internal bool EnableViewStateMacSet { + get { return enableViewStateMacSet; } + } internal bool SmartNavigation { get { return smartNavigation; } |