I have a Master Page that is a child of another master page. The child master page has a RadTabStrip and RadMultiPage with a RadAjaxPanel to load tabs dynamically. The parent master page has an AddThis widget. For some reason, in Firefox (and only in Firefox), when I click on a tab for the first time, it loads fine, but with the following error:
Error: uncaught exception: [Exception... "Security error" code: "1000" nsresult: "0x805303e8 (NS_ERROR_DOM_SECURITY_ERR)" location: "http://devweb.tmforum.org/community/ScriptResource.axd?d=k49SRXxqYWiQi1h5ak56cz6yVdfy-wma__9J5UH8u6pGwBj_haSG64G2I9bxGyRx0&t=633767702680000000 Line: 498"]
When I then click on a different tab nothing happens. If I remove the AddThis widget it works fine.
Also, on a simple aspx page, no master page with the same setup and the AddThis widget directly after the close of the RadAjaxPanel, there are no problems.
Can anyone shine any light on this?
Thanks,
Boris Zakharin
Error: uncaught exception: [Exception... "Security error" code: "1000" nsresult: "0x805303e8 (NS_ERROR_DOM_SECURITY_ERR)" location: "http://devweb.tmforum.org/community/ScriptResource.axd?d=k49SRXxqYWiQi1h5ak56cz6yVdfy-wma__9J5UH8u6pGwBj_haSG64G2I9bxGyRx0&t=633767702680000000 Line: 498"]
When I then click on a different tab nothing happens. If I remove the AddThis widget it works fine.
Also, on a simple aspx page, no master page with the same setup and the AddThis widget directly after the close of the RadAjaxPanel, there are no problems.
Can anyone shine any light on this?
Thanks,
Boris Zakharin
3 Answers, 1 is accepted
0
Hi Boris,
From the provided explanation I;m not able to isolate the cause oft he error you are facing. Could you please post some code from the problematic page so we could further research on it. Also if it is convenient for you please open a regular support ticket and send us sample runnable application which demonstrates the problem. This will give us the option to debug it locally and advise you further.
Regards,
Maria Ilieva
the Telerik team
From the provided explanation I;m not able to isolate the cause oft he error you are facing. Could you please post some code from the problematic page so we could further research on it. Also if it is convenient for you please open a regular support ticket and send us sample runnable application which demonstrates the problem. This will give us the option to debug it locally and advise you further.
Regards,
Maria Ilieva
the Telerik team
Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Public Issue Tracking system and vote to affect the priority of the items
0

Boris
Top achievements
Rank 1
answered on 06 Aug 2010, 02:46 PM
master.Master the main master page:
The master page with the tabstrip (homepage.Master):
The child page (home.aspx):
<%@ Master Language="C#" AutoEventWireup="true" %>
...
<%@ Import Namespace="CommunityServer" %>
<%@ Import Namespace="CommunityServer.Components" %>
<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.SqlClient" %>
<%@ Import Namespace="System.Web.UI" %>
<
script
runat
=
"server"
language
=
"C#"
>
...
private static readonly Regex REGEX_BETWEEN_TAGS = new Regex(@">\s+<", RegexOptions.Compiled);
private static readonly Regex REGEX_LINE_BREAKS = new Regex(@"\n\s+", RegexOptions.Compiled);
/// <
summary
>
/// Initializes the <
see
cref
=
"T:System.Web.UI.HtmlTextWriter"
></
see
> object and calls on the child
/// controls of the <
see
cref
=
"T:System.Web.UI.Page"
></
see
> to render.
/// </
summary
>
/// <
param
name
=
"writer"
>The <
see
cref
=
"T:System.Web.UI.HtmlTextWriter"
></
see
> that receives the page content.</
param
>
protected override void Render(HtmlTextWriter writer)
{
using (HtmlTextWriter htmlwriter = new HtmlTextWriter(new System.IO.StringWriter()))
{
base.Render(htmlwriter);
string html = htmlwriter.InnerWriter.ToString();
html = REGEX_BETWEEN_TAGS.Replace(html, "> <");
html = REGEX_LINE_BREAKS.Replace(html, "\n");
writer.Write(html.Trim());
}
}
...
</
script
>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<
html
xmlns
=
"http://www.w3.org/1999/xhtml"
xml:lang
=
"en"
lang
=
"en"
>
<
head
runat
=
"server"
>
<
meta
http-equiv
=
"X-UA-Compatible"
content
=
"IE=7"
/>
<
CSControl:Head
runat
=
"Server"
>
<
meta
http-equiv
=
"Content-Type"
content
=
"text/html; charset=UTF-8"
/>
...
<
asp:ContentPlaceHolder
runat
=
"server"
id
=
"HeaderRegion"
/>
</
CSControl:Head
>
<
CSControl:Script
ID
=
"script2"
runat
=
"server"
Visible
=
"true"
Src
=
"~/themes/tmforum/jquery/jquery.js"
/>
...
</
head
>
<
body
id
=
"b"
runat
=
"server"
>
<
form
runat
=
"server"
>
<
asp:ScriptManager
id
=
"oSM"
runat
=
"server"
/>
<
table
style
=
"width:100%;"
cellpadding
=
"0"
cellspacing
=
"0"
><
tr
><
td
align
=
"center"
>
<
table
style
=
"width:1000px;"
cellpadding
=
"0"
cellspacing
=
"0"
><
tr
><
td
>
<
table
style
=
"text-align:left;"
cellpadding
=
"0"
cellspacing
=
"0"
><
tr
><
td
>
...
<
div
id
=
"CommonSidebarRight"
>
<
asp:ContentPlaceHolder
id
=
"rcr"
runat
=
"server"
/>
</
div
>
<
div
>
...
<
div
style
=
"clear:both"
></
div
>
<
table
cellspacing
=
"0"
cellpadding
=
"0"
width
=
"100%"
>
<
tr
>
<
td
align
=
"center"
class
=
"menusmall"
style
=
"height: 20px;"
nowrap>
<!-- AddThis Button BEGIN -->
<
script
type
=
"text/javascript"
>
addthis_pub = 'jphillips_tmforum';
addthis_logo_background = 'EFEFFF';
addthis_logo_color = '666699';
addthis_brand = 'TMForum.org';
addthis_options = 'favorites, digg, delicious, myspace, facebook, google, live, more';
</
script
>
<
p
><
a
href
=
"http://www.addthis.com/bookmark.php"
onmouseover
=
"return addthis_open(this, '', '[URL]', '[TITLE]')"
onmouseout
=
"addthis_close()"
onclick
=
"return addthis_sendto()"
>
<
img
src
=
"http://s7.addthis.com/button1-share.gif"
width
=
"125"
height
=
"16"
border
=
"0"
alt
=
""
/></
a
><
script
type
=
"text/javascript"
src
=
"http://s7.addthis.com/js/152/addthis_widget.js"
></
script
></
p
>
<!-- AddThis Button END -->
</
td
>
</
tr
>
...
</
table
>
...
</
td
>
</
tr
></
table
>
</
form
>
...
</
body
>
</
html
>
<%@ Master Language="C#" AutoEventWireup="true" MasterPageFile="master.Master" %>
<%@ Register TagPrefix="telerik" Namespace="Telerik.Web.UI" Assembly="Telerik.Web.UI" %>
...
<
script
runat
=
"server"
type
=
"text/C#"
>
...
public RadTabStrip RtsHome {
get
{
return rtsHome;
}
}
void Page_Load()
{
int userID = CommunityServer.Components.CSContext.Current.User.UserID;
loginDate = GetPrevLoginDate(userID);
for (int ctr = 0; ctr <
rtsHome.Tabs.Count
; ++ctr)
rtsHome.Tabs[ctr]
.NavigateUrl
=
ConfigurationManager
.AppSettings["CSBaseHref"] + "default.aspx?tab=" + ctr.ToString();
rtsHome.DataBind();
if (!IsPostBack)
{
int
selectedIndex
=
0
;
if (Request["tab"] != null)
selectedIndex
=
int
.Parse(Request["tab"]);
SelectTab(rtsHome.Tabs[selectedIndex]);
}
}
...
private void rmpHome_PageViewCreated(object sender, RadMultiPageEventArgs e)
{
switch (e.PageView.ID)
{
case "rpvGroups":
wucGroupActivity
groups
=
new
wucGroupActivity();
groups.ID
=
"groups"
;
groups.FirstPageView
=
firstPageView
;
e.PageView.Controls.Add(groups);
break;
case "rpvInbox":
wucInbox
inbox
=
new
wucInbox();
inbox.ID
=
"inbox"
;
inbox.FirstPageView
=
firstPageView
;
e.PageView.Controls.Add(inbox);
break;
case "rpvConnections":
wucConnections
conn
=
new
wucConnections();
conn.ID
=
"conn"
;
conn.FirstPageView
=
firstPageView
;
e.PageView.Controls.Add(conn);
break;
case "rpvBlogs":
wucCombinedBlogControl
cbc
=
new
wucCombinedBlogControl();
cbc.ID
=
"CBC"
;
cbc.FirstPageView
=
firstPageView
;
e.PageView.Controls.Add(cbc);
cbc.ShowSort
=
false
;
cbc.BlogControlStyle
=
wucCombinedBlogControl
.ControlStyle.HomePage;
cbc.SubscriptionOnly
=
true
;
cbc.EnableViewState
=
true
;
break;
default:
e.PageView.Controls.Add(new LiteralControl("Error"));
break;
}
}
protected void rtsHome_TabClick(object sender, RadTabStripEventArgs e)
{
SelectTab(e.Tab);
}
private void SelectTab(RadTab tab)
{
if (tab.NavigateUrl == "")
{
firstPageView
=
true
;
RadPageView
view
=
new
RadPageView();
view.ID
=
tab
.PageViewID;
rmpHome.PageViews.Add(view);
tab.PageView.Selected
=
true
;
}
rtsHome.SelectedIndex
=
tab
.Index;
}
</script>
<
asp:Content
ContentPlaceHolderID
=
"HeaderRegion"
runat
=
"server"
>
<
link
rel
=
"stylesheet"
type
=
"text/css"
href
=
"/include/subModal/subModal.css"
/>
<
script
type
=
"text/javascript"
src
=
"/include/subModal/common.js"
></
script
>
<
script
type
=
"text/javascript"
src
=
"/include/subModal/subModal.js"
></
script
>
<
script
type
=
"text/javascript"
>
...
//Cookie name
var tabCookieName = "currentTab";
//Variable to hold reference to tabstrip
var tabstrip;
function onClientTabLoad(sender) {
//Get reference to tabstrip
tabstrip = sender;
}
function onTabSelecting(sender, args)
{
if (args.get_tab().get_pageViewID())
{
args.get_tab().set_postBack(false);
}
}
function saveTabIndex(tabText) {
//Call JS function to save cookie name, tab text,
//and days before cookie should expire
setCookie(tabCookieName, tabText, 1);
}
//Cookie operation helper function
//Save the value to a cookie and set expiration date
function setCookie(c_name, value, expiredays) {
var exdate = new Date();
exdate.setDate(exdate.getDate() + expiredays);
document.cookie = c_name + "=" + escape(value) +
((expiredays == null) ? "" : ";expires=" + exdate.toGMTString());
}
function loadTabIndex(tabstrip) {
//If tabstrip reference isn't null
if (tabstrip != null) {
//Get cookie value
var tabText = getCookie(tabCookieName);
var historyLength = getCookie("historyLength");
//If text from the cookie exists
if (tabText != "" && tabText != null) {
//Set tabstrip selected index
var tab = tabstrip.findTabByText(tabText);
//Get tab object
if (tab != null) {
tab.select(); //Select tab
}
}
}
}
//pageLoad automatically called by ASPNET AJAX when page ready
function pageLoad() {
//Must do tab strip select here so that
//multipage is initialized and updated
<%if (IsPostBack) { %>
loadTabIndex(tabstrip);
<%} %>
setCookie("historyLength", window.history.length, 1);
}
//Cookie helper function
//Gets a cookie based on supplied name and returns value
//as a string
function getCookie(c_name) {
try {
if (document.cookie.length > 0) {
c_start = document.cookie.indexOf(c_name + "=");
if (c_start != -1) {
c_start = c_start + c_name.length + 1;
c_end = document.cookie.indexOf(";", c_start);
if (c_end == -1) c_end = document.cookie.length;
return unescape(document.cookie.substring(c_start, c_end));
}
}
} catch (err) { }
//If there is an error or no cookie
//return an empty string
return "";
}
function onClientTabSelected(sender, args) {
//Persist selected tab text
var tabText = args.get_tab().get_text();
//Save text to a cookie using JavaScript
saveTabIndex(tabText);
}
function onClientTabUnselected(sender, args) {
//Persist selected tab text
var tabText = args.get_tab().get_text();
//Save text to a cookie using JavaScript
setCookie(tabText, new Date(), 7);
saveTabIndex(tabText);
}
</
script
>
<
CSControl:SelectedNavigation
Selected
=
"home"
runat
=
"Server"
/>
</
asp:Content
>
...
<
asp:Content
ContentPlaceHolderID
=
"bcr"
runat
=
"server"
><
div
class
=
"grey_border"
>
<
telerik:RadAjaxLoadingPanel
ID
=
"loadPnlTabs"
runat
=
"server"
EnableAjaxSkinRendering
=
"true"
Transparency
=
"20"
BackColor
=
"#E0E0E0"
>
<
img
alt
=
"Loading..."
src='<%=ConfigurationManager.AppSettings["CSBaseHRef"] %>themes/tmforum/images/theme/ajax-loader.gif'
style="padding-top:100px"/>
</
telerik:RadAjaxLoadingPanel
>
<
telerik:RadAjaxPanel
ID
=
"pnlTabs"
runat
=
"server"
EnableAJAX
=
"true"
LoadingPanelID
=
"loadPnlTabs"
>
<
telerik:RadTabStrip
ID
=
"rtsHome"
runat
=
"server"
MultiPageID
=
"rmpHome"
Width
=
"100%"
OnClientTabSelected
=
"onClientTabSelected"
OnClientLoad
=
"onClientTabLoad"
Align
=
"Justify"
OnTabClick
=
"rtsHome_TabClick"
OnClientTabSelecting
=
"onTabSelecting"
OnClientTabUnSelected
=
"onClientTabUnselected"
CssClass
=
"HomeTabStrip"
Skin
=
""
EnableEmbeddedSkins
=
"false"
>
<
Tabs
>
<
telerik:RadTab
runat
=
"server"
PageViewID
=
"rpvGroups"
Text
=
"Group Activity"
CssClass
=
"HomeTabWithFlag"
SelectedCssClass
=
"HomeTabWithFlagSelected"
/>
<
telerik:RadTab
runat
=
"server"
PageViewID
=
"rpvInbox"
Text
=
"Inbox"
CssClass
=
"HomeTabWithFlag"
SelectedCssClass
=
"HomeTabWithFlagSelected"
/>
<
telerik:RadTab
runat
=
"server"
PageViewID
=
"rpvConnections"
Text
=
"Connections' Activity"
CssClass
=
"HomeTabWithFlag"
SelectedCssClass
=
"HomeTabWithFlagSelected"
/>
<
telerik:RadTab
runat
=
"server"
PageViewID
=
"rpvBlogs"
Text
=
"Latest Blogs"
CssClass
=
"HomeTabWithFlag"
SelectedCssClass
=
"HomeTabWithFlagSelected"
/>
</
Tabs
>
<
TabTemplate
>
<
TMFUserControls:FN
runat
=
"server"
ID
=
"fnInbox"
FlagType='<%# DataBinder.Eval(Container, "Index") %>' TabText='<%# DataBinder.Eval(Container, "Text") %>' HyperLink='<%# DataBinder.Eval(Container, "NavigateUrl") %>' StartDate='<%# loginDate %>' />
</
TabTemplate
>
</
telerik:RadTabStrip
>
<
telerik:RadMultiPage
ID
=
"rmpHome"
runat
=
"server"
SelectedIndex
=
"0"
Width
=
"100%"
OnPageViewCreated
=
"rmpHome_PageViewCreated"
>
</
telerik:RadMultiPage
>
</
telerik:RadAjaxPanel
>
<
div
style
=
"float:left;"
>
<
asp:ContentPlaceHolder
id
=
"bcr"
runat
=
"server"
/>
</
div
>
<
div
style
=
"float:right;"
>
<
asp:ContentPlaceHolder
id
=
"rcr"
runat
=
"server"
/>
</
div
>
<
div
style
=
"clear:both;"
></
div
>
</
div
>
</
asp:Content
>
...
<%@ Page EnableViewState="true" Language="C#" AutoEventWireup="true" Inherits="CommunityServer.Controls.CSThemePage"
MasterPageFile="homepage.Master" SmartNavigation="true" %>
<%@ Import Namespace="CommunityServer.Components" %>
<%@ Import Namespace="CommunityServer.Controls" %>
<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="System.IO.Compression" %>
<%@ Register TagPrefix="telerik" Namespace="Telerik.Web.UI" Assembly="Telerik.Web.UI" %>
<
script
runat
=
"server"
language
=
"C#"
>
public static class Compressor
{
public static byte[] Compress(byte[] data)
{
MemoryStream output = new MemoryStream();
GZipStream gzip = new GZipStream(output,
CompressionMode.Compress, true);
gzip.Write(data, 0, data.Length);
gzip.Close();
return output.ToArray();
}
public static byte[] Decompress(byte[] data)
{
MemoryStream input = new MemoryStream();
input.Write(data, 0, data.Length);
input.Position = 0;
GZipStream gzip = new GZipStream(input,
CompressionMode.Decompress, true);
MemoryStream output = new MemoryStream();
byte[] buff = new byte[64];
int read = -1;
read = gzip.Read(buff, 0, buff.Length);
while (read > 0)
{
output.Write(buff, 0, read);
read = gzip.Read(buff, 0, buff.Length);
}
gzip.Close();
return output.ToArray();
}
}
User user = CSContext.Current.User;
protected override object LoadPageStateFromPersistenceMedium()
{
String alteredViewState;
byte[] bytes;
Object rawViewState;
LosFormatter fomatter = new LosFormatter();
this.PageStatePersister.Load();
alteredViewState = this.PageStatePersister.ViewState.ToString();
bytes = Convert.FromBase64String(alteredViewState);
bytes = Compressor.Decompress(bytes);
rawViewState = fomatter.Deserialize(Convert.ToBase64String(bytes));
return new Pair(this.PageStatePersister.ControlState, rawViewState);
}
protected override void SavePageStateToPersistenceMedium(object viewStateIn)
{
LosFormatter fomatter = new LosFormatter();
StringWriter writer = new StringWriter();
Pair rawPair;
Object rawViewState;
String rawViewStateStr;
String alteredViewState;
byte[] bytes;
if (viewStateIn is Pair)
{
rawPair = ((Pair)viewStateIn);
this.PageStatePersister.ControlState = rawPair.First;
rawViewState = rawPair.Second;
}
else
{
rawViewState = viewStateIn;
}
fomatter.Serialize(writer, rawViewState);
rawViewStateStr = writer.ToString();
bytes = Convert.FromBase64String(rawViewStateStr);
bytes = Compressor.Compress(bytes);
alteredViewState = Convert.ToBase64String(bytes);
this.PageStatePersister.ViewState = alteredViewState;
this.PageStatePersister.Save();
}
...
void Page_Init()
{
RadTabStrip rtsHome = (RadTabStrip)((ASP.themes_tmforum_common_homepage_master)Master).RtsHome;
rtsHome.DataBinding += rtsHome_Load;
}
protected void rtsHome_Load(object sender, EventArgs e)
{
RadTabStrip rtsHome = (RadTabStrip)sender;
foreach (RadTab tab in rtsHome.Tabs)
tab.NavigateUrl = "";
}
</
script
>
<
asp:Content
ContentPlaceHolderID
=
"tr"
runat
=
"server"
>
</
asp:Content
>
0
Hello Boris,
Best wishes,
Maria Ilieva
the Telerik team
I researched on the provided code, however was not able to found anything obvious that may cause the described error. It will be best to open a regular support ticket and send us sample runnable application so we could debug it locally and further investigate on the root cause of the issue.
Best wishes,
Maria Ilieva
the Telerik team
Do you want to have your say when we set our development plans? Do you want to know when a feature you care about is added or when a bug fixed? Explore the Telerik Public Issue Tracking system and vote to affect the priority of the items