Closed
Bug 95487
Opened 23 years ago
Closed 22 years ago
JavaScript-generated table never completes
Categories
(Core :: DOM: HTML Parser, defect, P3)
Core
DOM: HTML Parser
Tracking
()
VERIFIED
FIXED
mozilla0.9.8
People
(Reporter: osavill, Assigned: harishd)
References
()
Details
(Keywords: dataloss, Whiteboard: [fixed on the trunk & branch])
Attachments
(3 files)
128.83 KB,
image/jpeg
|
Details | |
74.39 KB,
text/html
|
Details | |
2.34 KB,
patch
|
kmcclusk
:
review+
jst
:
superreview+
|
Details | Diff | Splinter Review |
While trying to shop at http://www.tesco.co.uk I tried to list my favourite items. The following appears to be sent from the server to be rendered inside a frame : <HTML> <HEAD> </HEAD> <body bgcolor=#ffffff topmargin="0" leftmargin="0" > <script LANGUAGE='JavaScript1.1'> p=top.frames['htmbar']; p.clearItems(); p.SetSearch(""); p.StartGroup("","Cooking Ingredients");p.addItem(50203116,"Tesco Tomato Puree 142g",0.24,"£0.17",1,1,"","PUREE/PARMESAN/PIZZERIA",0,"",1,"100G",1,"",0);p.addItem(51338491,"Tesco Chocolate Sponge Pudding 115g",0.44,"£0.38",1,1,"","HOT PUDDINGS & DESSERTS",0,"",1,"100G",1,"",0);p.addItem(54352664,"Heinz Spotted Dick Sponge Pudding 300g",0.96,"£0.32",1,1,"","HOT PUDDINGS & DESSERTS",0,"",1,"100G",1,"",0);p.addItem(50043351,"Bisto Rich Gravy Granules 170g",0.63,"£0.37",1,1,"","GRAVY BROWNING",0,"",1,"100G",2,"",0);p.addItem(50043685,"Oxo Beef Cubes 24`s",1.33,"£0.94",1,0,"","STOCK CUBES/MEAT EXTRACT",0,"",1,"100G",1,"",0);p.StartGroup("","Breakfast");p.addItem(51565653,"Nestle Cheerios 375g",1.48,"£0.40",1,0,"","CHILDRENS CEREALS",0,"",1,"100G",1,"",1);p.addItem(50438178,"Kelloggs Bran Flakes 750g",1.64,"£0.22",1,0,"","HEALTHY CEREALS",0,"",1,"100G",1,"",1);p.addItem(55433135,"Jordans Special Muesli 750g",2.49,"£0.33",1,0,"","MUESLI TYPE CEREALS",0,"",1,"100G",1,"",1);p.StartGroup("","Bakery & Cakes");p.addItem(50297044,"Tesco Medium Sliced White Loaf 800g",0.35,"£0.04",1,1,"","STANDARD WHITE BREAD",0,"",1,"100G",1,"",0);p.addItem(51309566,"Hovis Granary Malted Brown Medium Sliced Bread 800g",0.89,"£0.11",1,1,"","BROWN BREAD WITH BITS",0,"",1,"100G",1,"",0);p.addItem(51329185,"Tesco Multigrain Wholemeal Sliced Bread 800g",0.79,"£0.10",1,1,"","BROWN BREAD WITH BITS",0,"",1,"100G",1,"",1);p.addItem(50572191,"Crusty White Farmhouse 400g",0.39,"£0.10",1,0,"","CRUSTY WHITE BREADS",0,"",1,"100G",1,"",1);p.StartGroup("","Fruit & Vegetables");p.addItem(50852666,"Braeburn Apples Class 1 Loose",1.39,"£0.63",6,1,"","OTHER APPLES",0,"",1,"LB",4,"",0); p.addFood(50852666,0.188,0,0,0,1,0);p.addItem(50507235,"Limes Each",0.19,"£0.19",1,1,"","LEMONS & LIMES",0,"",1,"EACH",1,"",0);p.addItem(50501472,"Clementines Class 1 Loose",1.74,"£0.79",6,1,"","SATSUMAS/CLEMENTINES",0,"",1,"LB",1,"",0); p.addFood(50501472,0.125,0,0,0,1,2);p.addItem(51681549,"Rocha Pears Class 1 Loose",1.08,"£0.49",6,1,"","OTHER PEARS",0,"",1,"LB",4,"",1); p.addFood(51681549,0.148,0,0,0,1,3);p.addItem(50502131,"Prepack Plums Class 1",0.99,"£1.32",1,0,"","APRICOT/GREENGAGE/PLUMS",1,"",1,"KG",1,"",0);p.addItem(50507120,"Kiwi Fruit Class 1 Each",0.19,"£0.19",1,0,"","KIWI FRUIT",0,"",1,"EACH",3,"",0);p.addItem(50501869,"A Bag of White Seedless Grapes Class 1 Loose (approx. 500g - 650g per bag)",1.74,"£0.79",6,1,"","GRAPES",0,"",1,"LB",0,"",1); p.addFood(50501869,0,0,0.65,0,2,6);p.addItem(53522183,"Tesco Eat Me Keep Me Bananas Pack",1.39,"£0.14",1,0,"","BANANAS",0,"",1,"EACH",1,"",1);p.addItem(51165199,"(pawpaw) Large Papaya Each",1.39,"£1.39",1,0,"","OTHER EXOTIC FRUIT",0,"",1,"EACH",1,"",0);p.addItem(50656207,"Tomatoes Loose Class 1",0.97,"£0.44",6,0,"","STANDARD TOMATOES",0,"",1,"LB",6,"",0); p.addFood(50656207,0.06,0,0,0,1,9);p.addItem(50686436,"Cherry Tomatoes 250g Pack P.M",0.88,"£2.94",1,1,"","CHERRY TOMATOES",0,"",1,"KG",1,"",0);p.addItem(51622776,"Green Peppers Loose Class 1 Each",0.46,"£0.46",1,0,"","PEPPERS",0,"",1,"EACH",1,"",1);p.addItem(51658215,"Red Peppers Loose Class 1 Each",0.46,"£0.46",1,0,"","PEPPERS",0,"",1,"EACH",1,"",1);p.addItem(51531549,"Tesco Ready To Eat Avocados",1.49,"£1.49",1,1,"","AVOCADOS",1,"",1,"EACH",1,"",0);p.addItem(50502459,"Celery Each",0.34,"£0.34",1,1,"","CELERY",1,"",1,"EACH",1,"",0);p.addItem(50550228,"Cauliflower Medium Each Class 2",0.49,"£0.49",1,0,"","CAULIFLOWERS",0,"",1,"EACH",1,"",0);p.addItem(51439976,"Broccoli Loose",0.97,"£0.44",6,1,"","BROCCOLI",0,"",1,"LB",0,"",1);p.addItem(50502799,"Leeks Loose Class 2",1.98,"£0.90",6,1,"","LEEKS",0,"",1,"LB",1,"",1); p.addFood(50502799,0.25,0,0,0,1,17);p.addItem(50503147,"Closed Cup Mushrooms - Loose",2.38,"£1.08",6,1,"","MUSHROOMS",0,"",1,"LB",0,"",1);p.addItem(50503314,"Parsnips Loose Class 1",1.85,"£0.84",6,1,"","PARSNIPS",0,"",1,"LB",250,"",0); p.addFood(50503314,0.2,0,0,0,1,19);p.addItem(50962213,"Carrots Loose Class 1",0.49,"£0.22",6,1,"","CARROTS",0,"",1,"LB",500,"",0); p.addFood(50962213,0.1,0,0,0,1,20);p.addItem(50503429,"White Potatoes 5kg Pack",1.72,"£0.34",1,1,"","POTATOES OLD",0,"",1,"KG",1,"",0);p.addItem(54681654,"T Leafy Salad With Tatsoi",0.99,"£0.86",1,1,"","READY WASHED SALADS",0,"",1,"100G",2,"",0);p.addItem(50220769,"Tesco Coleslaw 250g",0.44,"£0.18",1,1,"","COLESLAW, DRESSED SALADS",0,"",1,"100G",1,"",1);p.addItem(50855559,"Tesco Potato Salad 250g",0.48,"£0.19",1,1,"","COLESLAW, DRESSED SALADS",0,"",1,"100G",1,"",1);p.StartGroup("","Meat, Fish & Poultry");p.addItem(52251648,"Beef Healthy Eating Steak Mince 500g",2.49,"£4.98",1,1,"","FRESH BEEF MINCE",1,"",1,"KG",2,"",0);p.addItem(51330977,"Beef Lean Braising Steak Medium 300g - 500g",5.89,"£2.67",3,0,"","BEEF CASSEROLE & STEWING",0,"",1,"LB",1,"",0); p.addFood(51330977,0,0.3,0.5,0.05,3,1);p.addItem(51335943,"Pork Chops x4 600g - 1000g",3.75,"£1.70",3,1,"","FRESH PORK STEAKS/CHOPS",1,"",1,"LB",1,"",1); p.addFood(51335943,0,0.6,1,0.1,3,2);p.addItem(51329663,"Lamb 4 Loin Chops",11.59,"£5.26",3,0,"","FRESH LAMB CHOPS/STEAKS",0,"",1,"LB",1,"",1); p.addFood(51329663,0,0.4,0.64,0.1,3,3);p.addItem(51571392,"Fresh Sliced Lambs Liver Small 200g - 285g",1.8,"£0.82",3,0,"","FRESH OFFAL",0,"",1,"LB",1,"",0);p.addItem(54216930,"Finest Free Range Whole Chicken 1.1-2.0kg",3.85,"£1.75",3,1,"","FRESH FREE RANGE CHICKEN",0,"",1,"LB",1,"",0); p.addFood(54216930,0,1.1,2,0.2,3,5);p.addItem(52983588,"Fresh Diced Chicken Breast 400g",3.29,"£8.23",1,0,"","CHICKEN DICED & STIR FRY",0,"",1,"KG",2,"",1);p.addItem(52631084,"Tesco Roast Part Boned Breast 200g",1.63,"£8.15",1,1,"","COOKED CHICKEN",0,"",1,"KG",1,"",1);p.addItem(52631176,"Tesco 2 Pack Roast Chicken Boneless Breast Fillets 225g",3.28,"£1.46",1,0,"","COOKED CHICKEN",0,"",1,"100G",1,"",0);p.addItem(51666188,"Tesco Unsmoked 8 Extra Trimmed Rindless Back 250g",1.79,"£7.16",1,1,"","BACON RASHERS",1,"",1,"KG",1,"",0);p.addItem(52540519,"Tesco Finest Maple Cure Rindless Back Bacon 225g",2.49,"£9.77",1,1,"","BACON RASHERS",0,"",1,"KG",1,"",0);p.addItem(53606539,"Tesco Pork Lunch Tongue 125g",1.49,"£1.20",1,1,"","PREM /FINEST COOKED MEAT",0,"",1,"100G",1,"",0);p.addItem(52860181,"Matthews Golden Roasted Chicken Breast 150g",1.84,"£1.23",1,1,"","STANDARD COOKED MEAT",0,"",0,"100G",1,"",0);p.StartGroup("","Tins,Packets and Jars");p.addItem(54270196,"Tesco Value Chopped Tomatoes 400g",0.15,"£0.04",1,1,"","TOMATOES",0,"",1,"100G",1,"",0);p.addItem(54478550,"Tesco Italian Chopped Tomatoes 227g",0.24,"£0.11",1,1,"","TOMATOES",0,"",1,"100G",1,"",0);p.addItem(55205210,"Organic Heinz Baked Beans 415g",0.49,"£0.12",1,0,"","ORGANIC BAKED BEANS",0,"",1,"100G",1,"",0);p.addItem(50683704,"Tesco Indian Basmati Rice 1kg",2.25,"£0.23",1,1,"","COOKING RICE",0,"",1,"100G",1,"",0);p.addItem(50360165,"Amoy Sliced Bamboo Shoots 225g",0.75,"£0.33",1,0,"","CHINESE/INDIAN ACMPMNT",0,"",1,"100G",2,"",0);p.addItem(50362065,"Amoy Whole Water Chestnuts 220g",0.65,"£0.00",1,0,"","CHINESE/INDIAN ACMPMNT",0,"",1,"",1,"",0);p.addItem(52017748,"Blue Dragon Fish Sauce 190ml",0.79,"£0.42",1,1,"","CHINESE/INDIAN ACMPMNT",0,"",1,"100ML",1,"",0);p.addItem(52956598,"Blue Dragon Crispy Seaweed 55g",1.69,"£0.31",1,1,"","CHINESE/INDIAN ACMPMNT",0,"",1,"10G",1,"",0);p.addItem(54225078,"Blue Dragon Coconut Milk 400ml",0.85,"£0.21",1,1,"","CHINESE/INDIAN ACMPMNT",0,"",1,"100ML",1,"",0);p.addItem(53844994,"Tesco Red Split Lentils 500g",0.75,"£0.15",1,1,"","PULSE CEREALS",0,"",1,"100G",1,"",0);p.addItem(50869952,"Tesco Fusilli Pasta Twists 1kg",0.56,"£0.06",1,1,"","DRY PASTA",0,"",1,"100G",1,"",0);p.addItem(50454020,"Hellmanns Light Mayonnaise 200g",0.84,"£0.42",1,0,"","MAYONNAISE",0,"",1,"100G",1,"",0);p.addItem(54423771,"More Than A Dressing Lime & Coriander 350ml",1.78,"£0.51",1,1,"","SALAD DRESSINGS",0,"",1,"100ML",1,"",0);p.addItem(51466125,"Tesco Hot & Spicy Pickled Onions In Vinegar 440g",1.32,"£0.59",1,1,"","PICKLED ONIONS",0,"",1,"100G",1,"",0);p.StartGroup("","Frozen Foods");p.addItem(50142101,"Birds Eye Garden Peas 907g",1.25,"£0.63",1,1,"","FROZEN PEAS",0,"",1,"LB",1,"",1);p.addItem(54957686,"Tesco Organic Sweetcorn 907g",1.29,"£0.65",1,1,"","FROZEN SWEETCORN",0,"",1,"LB",1,"",0);p.addItem(54584873,"Tesco 15 Mini Donuts Price Marked 99p",0.99,"£0.07",1,1,"","FZN ECLAIRS/SNACK/DANISH",0,"",0,"EACH",1,"",0);p.addItem(53283551,"Ben & Jerrys Choc Fudge Brownie Ice Cream 500ml",3.79,"£0.76",1,1,"","ICE CREAM (LUXURY)",1,"",0,"100ML",1,"",0);p.StartGroup("","Household");p.addItem(52627101,"Fairy A/Matic Non Bio Powder 2.43kg Bag",4.19,"£0.17",1,1,"","WASHING POWDERS",0,"",1,"100G",1,"",1);p.addItem(55204303,"Fairy Non Biological Powder 3.645kg",5.84,"£0.16",1,1,"","WASHING POWDERS",0,"",1,"100G",1,"",0);p.addItem(50769696,"Kleenex For Men Mansize Tissues 100 2ply Twinpk",2.91,"£1.46",1,1,"","FACIAL TISSUES",0,"",1,"100SHEET",1,"",1);p.StartGroup("","Dairy, Eggs & Milk");p.addItem(50668556,"Tesco Pasteurised Skimmed Milk 2.272ltr/4 Pints",0.93,"£0.41",1,1,"","FRESH MILK",0,"",1,"LITRE",1,"",0);p.addItem(54169392,"Tesco Pasteurised Semi-Skimmed Milk 1.136lt/2pt",0.54,"£0.48",1,1,"","FRESH MILK",0,"",1,"LITRE",1,"",1);p.addItem(51325195,"Full Cream Whole Organic Milk 568ml",0.41,"£0.72",1,1,"","ORGANIC MILK",0,"",1,"LITRE",2,"",1);p.addItem(54615141,"Tesco Organic Semi Skimmed Milk 4 Pint 2.272 Ltr",1.29,"£0.57",1,1,"","ORGANIC MILK",0,"",0,"LITRE",1,"",0);p.addItem(51512209,"Olivio Reduced Fat Spread 500g",1.08,"£2.16",1,1,"","OLIVE SPREADS",0,"",1,"KG",1,"",0);p.addItem(54148964,"Tesco Farmhouse Mature Cheddar Small",6.76,"£3.07",3,1,"","PRE-PACK CHEDDAR-MATURE",0,"",1,"LB",1,"",1); p.addFood(54148964,0,0,0.26,0,2,5);p.addItem(51377242,"Tesco Fresh Grated Parmesan Cheese 50g",0.79,"£15.80",1,1,"","CONTINENTAL CHEESE",0,"",1,"KG",1,"",0);p.addItem(51432557,"Boursin Light 125g",1.39,"£11.12",1,1,"","CONTINENTAL CHEESE",0,"",1,"KG",1,"",0);p.addItem(52703155,"Tesco Value Singles 170g",0.44,"£2.59",1,1,"","PROCESSED CHEESE",0,"",1,"KG",1,"",0);p.addItem(50996829,"Muller Fruit Corner Yoghurt With Blueberries 175g",0.38,"£0.22",1,1,"","LUXURY YOGURT",1,"",1,"100G",2,"",0);p.addItem(52860590,"Onken Florida Orange Summer Yogurt 500g",0.89,"£0.18",1,1,"","LUXURY YOGURT",0,"",0,"100G",1,"",0);p.addItem(54891117,"Saint Ivel Tweenies Wholemilk Yogurt 4 Pack 360g",1.13,"£0.31",1,1,"","CHILDRENS YOGURT",0,"",1,"100G",1,"",0);p.addItem(54628765,"Tesco Low Fat Toffee Yogurt 4 Pack 500g",0.85,"£0.17",1,1,"","LOW FAT YOGURT",1,"",1,"100G",1,"",0);p.addItem(51515016,"Tesco Healthy Eating Bio Yogurt 12 Pack 1500g",2.55,"£0.17",1,1,"","LIGHT/DIET YOGHURT",0,"",1,"100G",1,"",1);p.addItem(53055706,"Tesco Healthy Eating Morello Cherry & Apricot Yogurt 4 Pack 500g",0.89,"£0.18",1,1,"","LIGHT/DIET YOGHURT",0,"",1,"100G",1,"",0);p.addItem(54045360,"Organic Yeo Valley Childs Fruit Yoghurt 4 Pack",1.19,"£0.30",1,0,"","ORG YOGURTS & DESSERTS",0,"",1,"100G",2,"",1);p.addItem(54319273,"Harmonie Organic Fromage Frais For Kids 300g",1.29,"£0.43",1,1,"","ORG YOGURTS & DESSERTS",0,"",1,"100G",1,"",0);p.addItem(52260948,"Tesco Free Range Eggs Large Box Of 6",0.99,"£0.17",1,1,"","EGGS",0,"",1,"EACH",1,"",0);p.StartGroup("","Toiletries");p.addItem(54213697,"Oral B Toothbrush Advantage Soft C.Compact 35",1.97,"£1.97",1,0,"","TOOTHBRUSHES",0,"",1,"EACH",1,"",0);p.addItem(52635707,"Dove Soap Extra Sensitive 2x100g",0.89,"£0.45",1,1,"","BAR SOAPS",0,"",1,"100G",1,"",1);p.addItem(51786420,"Organics Shampoo Normal 200ml",1.47,"£0.74",1,1,"","SHAMPOO",0,"",1,"100ML",1,"",1);p.StartGroup("","Newspapers & Magazines");p.addItem(51598182,"Personal Computer World",4.99,"£0.00",1,0,"","COMPUTING",0,"",1,"",1,"",0);p.addItem(52176812,"Computer Shopper C.D.",2.99,"£0.00",1,0,"","COMPUTING",0,"",1,"",1,"",0);p.StartGroup("","Soft Drinks");p.addItem(54007135,"Tesco Organic Apple Juice 1 Litre",1.49,"£1.49",1,1,"","CHILLED ORG JCE & DRINKS",0,"",1,"LITRE",1,"",1);p.addItem(50075249,"Lucozade Original Bottle 345ml",0.52,"£1.51",1,1,"","SPORTS/ENERGY DRINKS",0,"",1,"LITRE",1,"",0);p.addItem(50378369,"Tesco Pure Orange Juice Smooth 4x1 Litre",2.36,"£0.59",1,1,"","L/LIFE PURE ORANGE JUICE",0,"",1,"LITRE",1,"",1);p.addItem(53919532,"Libbys Organic Tomato Juice 1 Litre",0.95,"£0.95",1,1,"","L/L ORG JCE & JCE DRINKS",0,"",0,"LITRE",1,"",0);p.StartGroup("","Pet Care");p.addItem(50556049,"Felix Chunks In Jelly Beef 400g Can",0.47,"£0.12",1,1,"","PREMIUM CAN CAT FOOD",0,"",1,"100G",2,"",1);p.addItem(50556055,"Felix Chunks In Jelly Rabbit 400g Can",0.47,"£0.12",1,0,"","PREMIUM CAN CAT FOOD",0,"",1,"100G",2,"",1);p.addItem(50960549,"Felix Chunks In Jelly Duck & Heart 400g",0.47,"£0.12",1,1,"","PREMIUM CAN CAT FOOD",0,"",1,"100G",2,"",1);p.addItem(51441166,"Felix Chunks In Jelly Lamb & Turkey 400g",0.47,"£0.12",1,1,"","PREMIUM CAN CAT FOOD",0,"",1,"100G",2,"",1);p.addItem(51441172,"Felix Chunks In Jelly Duck & Rabbit 400g",0.47,"£0.12",1,0,"","PREMIUM CAN CAT FOOD",0,"",1,"100G",2,"",1);p.addItem(51573551,"Felix Chunks In Jelly Turkey 400g Can",0.47,"£0.12",1,1,"","PREMIUM CAN CAT FOOD",0,"",1,"100G",2,"",1);p.addItem(51904005,"Felix Chunks In Gravy Chicken & Kidney 400g",0.47,"£0.12",1,1,"","PREMIUM CAN CAT FOOD",0,"",1,"100G",1,"",0);p.addItem(52573722,"Whiskas In Gravy Rabbit & Game 400g",0.47,"£0.12",1,0,"","PREMIUM CAN CAT FOOD",0,"",1,"100G",2,"",1);p.StartGroup("","Ready Meals");p.addItem(50991593,"Tesco 6 Mini Melton Mowbray Pork Pies 294g",1.15,"£0.39",1,1,"","COLD PIES",0,"",1,"100G",1,"",0);p.addItem(51835887,"Tesco Deep Pan Meat Feast Pizza 530g",2.99,"£0.56",1,1,"","PIZZAS",0,"",1,"100G",1,"",0);p.addItem(54426981,"Tesco Thin & Crispy Cheese & Onion Pizza 314g",1.99,"£0.63",1,1,"","PIZZAS",0,"",0,"100G",1,"",0);p.addItem(52424583,"Tesco Scotch Egg 113g",0.35,"£0.31",1,1,"","SCOTCH & SAVOURY EGGS",0,"",1,"100G",1,"",0);p.addItem(54348854,"Tesco Tandoori Chicken Sizzler 350g",3.49,"£1.00",1,1,"","INDIAN MEALS",0,"",1,"100G",1,"",0);p.addItem(52607816,"Ncg Wild Mushroom Soup 568g",1.75,"£0.31",1,1,"","FRESH SOUP",0,"",1,"100G",1,"",0);p.StartGroup("","Baby");p.addItem(50085796,"Milton Napisan 500g Pack",1.75,"£0.00",1,0,"","BABY FEEDING ACCESSORIES",0,"",1,"",1,"",1);p.addAd(" <!--click here--><a href=\"/superstore/finest\"><img src=\"/superstore/ads/banners/ad088.gif\" border=0 width=140 height=90 alt=\"click here\"></a> ");p.addAd(" <!--click here--><a href=\"/superstore/feature/bbqdemo.htm\"><img src=\"/superstore/ads/banners/ad079.gif\" border=0 width=140 height=90 alt=\"click here\"></a> ");p.addAd(" <!--click here--><a href=\"/superstore/whatsnew.htm\"><img src=\"/superstore/ads/banners/ad019.gif\" border=0 width=140 height=90 alt=\"click here\"></a> ");p.addAd(" <!--click here--><a href=\"/superstore/wineoftheweek.htm\"><img src=\"/superstore/ads/banners/ad010.gif\" border=0 width=140 height=90 alt=\"click here\"></a> "); p.drawItems(1); </script> <script language="JavaScript1.1"> top.frames.topleft.ReturnFromSearch(); </script> </body> </HTML> Mozilla never renders this list in full. Typically it gets about as far as "Blue Dragon Crispy Seaweed" and then gives up. Usually the last row isn't rendered in its entirety either.
Comment 1•23 years ago
|
||
Reporter: are you sure this is the complete HTML of the page? The Javascript seems to call various functions that aren't defined here, and I don't think this can really be debugged without seeing them... Moving component to DOM Level 0 (more appropriate).
Comment 2•23 years ago
|
||
By the way, you can attach html files to the bug instead of dumping their content as comments by clicking "Create a new attachment".
Comment 3•23 years ago
|
||
101355.471@compuserve.com: Can you give an exact sequence of steps to follow? I am unclear how to reproduce this bug for myself. Do we need a userID and password? Also - do you see any errors in (Tasks | Tools | JavaScript Console)? Be sure to open this before using the site, and clear out any residual bugs from other sites. Thanks -
Comment 4•23 years ago
|
||
Adding qawanted keyword. Can anyone get the URL for top.frames['htmbar'] mentioned above? (p=top.frames['htmbar'];) Can anyone get the URL or in-line script containing the functions? (p.clearItems(); p.SetSearch(""); etc. etc.)
Keywords: qawanted
Updated•23 years ago
|
Summary: Java script generated list never completes → JavaScript-generated list never completes
Comment 5•23 years ago
|
||
> 101355.471@compuserve.com: > Can you give an exact sequence of steps to follow? I am unclear how > to reproduce this bug for myself. Do we need a userID and password? Without a way to reproduce this bug, I will have to close it - thanks.
Comment 6•23 years ago
|
||
101355.471@compuserve.com reports these steps to reproduce: 1. Enter http://www.tesco.com 2. Click on "register & sign in" tab 3. Enter a valid UserID and Password 4. Click on "sign-in" 5. Click on the "shopping" tab 6. Click on the "groceries from your local Tesco" link at the top of the frame 7. Click on the "My Favourites" link in the left hand frame 8. Click on the "Show all favourites" link in the left hand frame The following error is shown in the JavaScript console : Error: SplitString is not defined Source File: http://www.tesco.com/superstore/FavouriteList.asp Line: 133 101355.471@compuserve.com notes: However, this does not stop the first half of the list being rendered.
Comment 7•23 years ago
|
||
Confirming bug with Mozilla build 2001082208 WinNT. OS : Linux --> All. I will attach a screenshot showing how the dynamic table-rendering simply stops dead in its tracks. There is no problem in NN4.x, IE4.x. The error noted above in the JavaScript Console, Error: SplitString is not defined Source File: http://www.tesco.com/superstore/FavouriteList.asp Line: 133 seems to be irrelevant, as it occurs in NN4.x as well, yet the dynamic table always renders completely in NN4.x. Component : JS Engine ---> DOM Level 0.
Assignee: rogerl → jst
Status: UNCONFIRMED → NEW
Component: Javascript Engine → DOM Level 0
Ever confirmed: true
OS: Linux → All
QA Contact: pschwartau → desale
Hardware: PC → All
Comment 8•23 years ago
|
||
Comment 9•23 years ago
|
||
Look at the lower-right corner of the screenshot. You can see the
scrollbar pulled all the way down. But the HTML table quit rendering
in the "Pet Care" section, on a row called "...Lamb and Turkey".
The JavaScript for this row is given in the bug report above.
IMPORTANT: you never know where this table will quit rendering;
it is NOT always on this row. For example, the reporter states:
> Mozilla never renders this list in full. Typically it gets about
> as far as "BlueDragon Crispy Seaweed" and then gives up. Usually
> the last row isn't rendered in its entirety either.
Comment 10•23 years ago
|
||
The HTML pasted above comes from the "Show all my favourites" link: http://www.tesco.com/superstore/prodselector.asp?Type=Department&Search=All This does not resolve unless one has followed all the steps-to-reproduce given above. Of course, it relies on a proprietary query of the customer's shopping habits, linked to the UserID and password one used to log in. The query seems to pull back the proper abstract data in all three browsers: NN4.x, IE4.x, and Mozilla. It's just the document.write of the HTML table that stops mysteriously in Mozilla. Similar issues are raised in: bug 82521 "Javascript menu doesn't load up properly." bug 96324 "After patch for bug 93363, sometimes these pages don't finish downloading" bug 93363 "<td nowrap><table><tr><td>lots of text": text doesn't wrap" cc'ing alexsavulov@netscape.com for his experience on these. Wondering if this bug might be caused by a similar problem.
Summary: JavaScript-generated list never completes → JavaScript-generated table never completes
Comment 11•23 years ago
|
||
> The query seems to pull back the proper abstract data in all three
> browsers: NN4.x, IE4.x, and Mozilla.
Why do I claim this? Because at the top of the rendered frame, you see
this in all three browsers: "favourites: The aisle has 113 favourite(s).",
indicating the number of rows pulled back by the query.
This comes from the following line of HTML, where iC is a global
JavaScript counter variable:
strCopyTitle='favourites:</font><font class=\"smalltext\">
The aisle has '+ iC +' favourite(s).</font>';
Comment 12•23 years ago
|
||
The p=top.frames['htmbar'] given above turns out to be this URL: http://www.tesco.com/superstore/midhtm.htm This contains the JavaScript functions referenced in the HTML above: p.clearItems(); p.SetSearch(""); p.StartGroup("","Cooking Ingredients"); p.addItem( etc.) I will attach an HTML testcase below containing the HTML pasted above from the "Show all my favourites" link: http://www.tesco.com/superstore/prodselector.asp?Type=Department&Search=All plus the JavaScript functions from http://www.tesco.com/superstore/midhtm.htm placed in-line. This will render the HTML table we have been discussing, although NOT inside a frame; but rather in a standalone page. Therefore I have had to comment out anything in the JavaScript referring to sibling frames, e.g. lines like var p = parent.frames["main"].document got replaced with var p = document All the changes I made to the HTML and JavaScript are indicated by dual comment lines "BEGIN DEBUGGING" and "END DEBUGGING".
Comment 13•23 years ago
|
||
Comment 14•23 years ago
|
||
As a standalone, with the bits I've commented out, the HTML table renders completely in Mozilla, as it does in NN4.x and IE4.x ! So this will require further debugging to see what's going wrong in the original, frame-based setting. Perhaps a timing issue is involved, since the table stops rendering in unpredictable places. On the other hand, perhaps it's precisely what I've commented out that might be causing the bug.
Comment 15•23 years ago
|
||
Again, to see what I commented out or replaced, search for the strings "BEGIN DEBUGGING" in the source for the attachment...
Comment 16•23 years ago
|
||
does anyone have a valid UID / PASS to login on tesco.com? I want to debug this if possible.
Comment 17•23 years ago
|
||
Alexandru: any luck with this?
Comment 18•23 years ago
|
||
Unfortunately the page has changed and I do not have steps to reproduce. Is may fault that I didn't tried to reproduce before, but I had more urgent stuff to do. However, I know that the bug is arround (and hard to reproduce). I'm trying to find a reliable way to reproduce (not depending on real world sites).
Reporter | ||
Comment 19•23 years ago
|
||
This bug does not appear in Mozilla builds up to todays (31/Oct/2001) for Window$ nor in Netscape 6.2 for Window$. I haven't tried any other platforms.
Comment 20•23 years ago
|
||
WORKSFORME.
Status: NEW → RESOLVED
Closed: 23 years ago
Resolution: --- → WORKSFORME
Reporter | ||
Comment 21•23 years ago
|
||
It may "WORKSFORME", and if it's on the Windows platform that's not a surprise, but it definitely DOESN'TWORKFORME, so I'm re-opening this. JavaScript is one of the weakest parts of all Linux browsers. Try this one, I can still point people where the page is, or try www.insight.com and try to "Choose a country" using the JavaScript button at the top of page, or ....
Status: RESOLVED → REOPENED
Resolution: WORKSFORME → ---
Comment 22•23 years ago
|
||
101355.471@compuserve.com is correct: I still see the bug, using Mozilla trunk binaries 20011213xx on WinNT, Linux, and Mac9.1. STEPS TO REPRODUCE : as in Comment #6 above. On all three platforms, using the contributor's private id, Mozilla shows the same caption at the top that NN4.7 shows: favourites: The aisle has 115 favourite(s). However, in NN4.7 we see a table of these 115 items, whereas in Mozilla we only get thirty or so (and no scrollbar). On my Linux box, rendering actually quit in the middle of a row -
Comment 23•23 years ago
|
||
The key function call is HandleClick('all'). This function is from http://www.tesco.com/superstore/leftbar/favouritesTop.htm : function HandleClick(option) { var p=top.frames['htmbar']; var QStr = ''; switch (option) { case 'filter': QStr = '/superstore/prodselector.asp?Type=Department&Search=All&Filter=3'; break; case 'all': QStr = '/superstore/prodselector.asp?Type=Department&Search=All'; } p.FavRenderWindowOpen('load',QStr); } which calls this function from http://www.tesco.com/superstore/midhtm.htm. The first part of FavRenderWindowOpen() just brings up a new window that is a "splash screen", asking the user to wait. The main line for us seems to be the last one, that sets top.frames['midbar'].location : function FavRenderWindowOpen(MsgType,QStr) { var SourceURL=''; switch (MsgType) { case 'load': SourceURL = '/superstore/FavRetrieving.htm'; break; case 'sort': SourceURL = '/superstore/FavSorting.htm'; } RenderWindow = window.open(SourceURL,"Render_Window","height=150,width=375"); if(typeof(RenderWindow)!='undefined'){ RenderWindow.window.moveTo( 200, 200 ); RenderWindow.focus(); } if (typeof(QStr) != 'undefined'){top.frames['midbar'].location=QStr;} }
Comment 24•23 years ago
|
||
jst, I will help you to look at this in the JS debugger with the contributor's id. Without a real-life id, the favourites list is empty -
Reporter | ||
Comment 25•23 years ago
|
||
I am happy to re-supply the user name and password - just not publish it on a public list !!!
Comment 26•23 years ago
|
||
101355.471@compuserve.com: thank you again - I've still got it, and am keeping it confidential. Hope we can get this one soon.
Comment 27•23 years ago
|
||
With Phil's help I was able to see that the table that doesn't load correctly is document.write()'n in one single 250k long string, and for some reason, timer, something else, the parser stops processing the 250k string before it's done. We also verified in the DOM inspector in a release build that the content model is indeed not completely built in this case, and that the content model does look right, the part of it that we did get from the parser. And document.write() never fails, so it seems like it's a parser bug. It's weird though, the testcase that's attached to this bug writes out the same 250k string, and that always works, but the real page doesn't. Harish, Phil has an account that he can use on this site that shows this problem, he'll come down and show you how to reproduce it, set a breakpoint in nsHTMLDocument::WriteCommon() and you'll see that we're getting a 250k string, that's the document.write() call that "fails". I'm afraid I don't have much more info here, but something, most likely timer related, goes wrong, since the table is cut off at more or less random places... The page does use tons of non-HTML tags, like RT:TP, and similar tags, but it seems like the parser sometimes stops nowhere close to those tags so I'm not sure if that's related or not. Over to HTMLParser. Let me know if you need more info.
Assignee: jst → harishd
Status: REOPENED → NEW
Component: DOM Level 0 → Parser
QA Contact: desale → moied
Assignee | ||
Comment 28•23 years ago
|
||
FYI: I don't see the problem when I disable interrupt-parsing. Kevin?
Status: NEW → ASSIGNED
Priority: -- → P3
Target Milestone: --- → mozilla0.9.8
Comment 29•23 years ago
|
||
Harish and I determined that the problem is caused by the interruptible parsing logic. The parser should never be interrupted when processing a document.write. The current logic assumes it can look at the mPrevContext on the parser to tell if it is in a document.write but this is not sufficient. The nsParser::Parse method needs to be modified to pass a flag to ResumeParse to indicate that parsing can not be interrupted.(Note: nsParser::Parse is called when a document.write has occurred) In nsParser::ResumeParse it needs to use the flag avoid calling SetCanInterrupt(PR_TRUE) when called from nsParser::Parse. added edt0.9.4, dataloss keywords. EDT: I nominated this bug fix for the branch because the fix for this problem is very simple and safe and the bug can result in a large amount of missing content when document.write's are used.
Comment 30•23 years ago
|
||
Will plus for 094 once fix is checked into trunk and tested.
Comment 31•23 years ago
|
||
what's the status of the fix for this (on the trunk first)? Is this fixed on the trunk?
Reporter | ||
Comment 32•23 years ago
|
||
Not as of todays (2 Jan) "Latest" binary build. I only got 4 items when I tried this afternoon !
Assignee | ||
Comment 33•23 years ago
|
||
Comment 34•23 years ago
|
||
Comment on attachment 63296 [details] [diff] [review] patch v1.0 [ document.writes shouldn't be interrupted ] sr=jst, but it would be *really* interesting to know exactly why the interruption of parsing document.write()'n data causes data loss. This fix probabaly doesn't fix the case where we document.write() a huge string that starts out with loading an external file (css or JS), that will cause the parser to be blocked (and thus makes document.write() asynchronous in this case) and once the external file is loaded we'll continue parsing the data that came in through document.write(). In that case we *will* interrupt the parsing of that data, even if it did originally come in through document.write(), even with this patch, and in that case it's fine to interrupt the parsing as long as we don't loose any data in doing so. I'm fine with checking this patch in though to fix the data loss problem that has shown up so far, but either file a new bug on the other problem, or leave this open after the fix is checked in.
Attachment #63296 -
Flags: superreview+
Assignee | ||
Comment 35•23 years ago
|
||
jst: You're right. We need a good understanding on when to interrupt and when not to. However, without a good reduced test case it's extremely hard to comprehend the problem. Moied: Would it be possible to derive a reduced test case? ). Kevin: Do you know the real reason why we shouldn't interrupt when document.writing? Also, could you please r= the patch? Anyway, we should take this change for now and open up a new bug to understand the interrupt mechanism throughly.
Comment 36•23 years ago
|
||
Comment on attachment 63296 [details] [diff] [review] patch v1.0 [ document.writes shouldn't be interrupted ] r=kmcclusk@netscape.com
Attachment #63296 -
Flags: review+
Updated•23 years ago
|
Assignee | ||
Comment 37•23 years ago
|
||
Landed on the branch.
Whiteboard: [fixed on the trunk] → [fixed on the trunk & branch]
Comment 38•23 years ago
|
||
Moied, Please test and verify the changes.
Updated•23 years ago
|
Keywords: fixed0.9.4
Comment 39•23 years ago
|
||
My recollection is: The interruption code is not setup to handle the interrupting of the document.write because it was believed that if we were to interrupt during a document.write that might change the result for scripts that did a document.write followed by a DOM call which expected the result of the document.write to have affected the DOM tree. Code was put in to check for sub-parser contexts which was suppose to indicate that a document.write had occurred and prevent the interruption of the parser. There wasn't any effort to schedule a resume parse PL_event in this case because it should never occur. Since this check was faulty; if the parser was interrupted in a sub-parser context all of the remaining content in the document.write might be lost if the document completed loading and a resume parse event was not scheduled to continue the parsing. The resume parse event would not be scheduled for interruption of the document.write initiated parsing because it was assumed that this would never occur. The only condition that can result in data loss as the result of this interruption code is if the necko has sent the final chunk of data to the parser, the parser is interrupted part way through parsing this data and a resume parse PL_event is not scheduled. Also note that the parser can only be interrupted when parsing HTML documents because the NavDTD is the only DTD that actually will pass back the interrupt flag. I think the case that jst is outlined should not be issue. If we interrupt the parser and it's not in a sub-parser context and there is more data to parse then a resume parse PL_event will be scheduled and there will not be any data loss. In addition, blocking the parser is not equivalent to interrupting as referenced in this bug. Interrupting the parser is the result of the NavDTD passing back a specific flag to the parser to indicate that too much time has been spent parsing, while blocking is a separate flag. Only the interrupt flag will result in the potential need to schedule a resume parse event. The flag to indicate blocking will not. We should test this however. (Caveat: My comments are based on my memory of the issues from 7 months ago)
Comment 40•23 years ago
|
||
> I think the case that jst is outlined should not be issue. If we interrupt
> the parser and it's not in a sub-parser context and there is more data to
> parse then a resume parse PL_event will be scheduled and there will not be
> any data loss.
The second sentence of that is AFAICT what this bug is all about. The testcase
does a document.open() and then a document.write(<huge string>), there will not
be a sub-parser context in this case (since this is not an inline
document.write()), the parser is interrupted, and there is indeed more data to
parse. I don't know if the parse PL_event is scheduled or not, but we do indeed
loose data in this case, even if there is more data to be parsed when the parser
is interrupted.
Seems like this data loss problem is not yet fully understood, too bad it's so
hard to reproduce.
Comment 41•23 years ago
|
||
Fallowed the instructions in comment #6 with a valid UserID and Password, found the page rendered completely with user having 114 favourite(s)items selected. The whole list is seen till last category/Item, which is "Baby" in this list. Tested with Build ID 20020109(trunk) on Win2k and verified patch checked in CVS (Rev 3.290)
Comment 42•23 years ago
|
||
Just to continue on my comment. I do think that this problem is still not fully understood, but the patch in this bug does fix this bug, and IMO it's worth taking on the branch. It's a very lowrisk fix that fixes *most*, if not all, of these problems.
Comment 43•23 years ago
|
||
Tested with build ID 20020110(trunk) on Linux, Mac OS X, Win2k and win XP (home), table-rendered without any problem.
Assignee | ||
Comment 44•23 years ago
|
||
Marking FIXED.
Status: ASSIGNED → RESOLVED
Closed: 23 years ago → 23 years ago
Resolution: --- → FIXED
Comment 45•23 years ago
|
||
From Johnny's Comment #34 above: > I'm fine with checking this patch in though to fix the data loss problem > that has shown up so far, but either file a new bug on the other problem, > or leave this open after the fix is checked in. Should we leave this bug open until the final solution is found? Or open a new bug?
Assignee | ||
Comment 46•23 years ago
|
||
Phil: Please open up a new bug. However, I don't think that bug would get fixed any time soon.
Comment 47•23 years ago
|
||
I have opened bug 119533 on the larger issue, and cc'ed everyone involved in this bug. Please modify bug 119533 in case I stated anything incorrectly.
Comment 48•23 years ago
|
||
101355.471@compuserve.com: does the site work properly for you with recent builds? If so, you can mark this bug "Verified"; if not, you can reopen it -
Reporter | ||
Comment 49•23 years ago
|
||
Yes, this seems top work just fine here. I notice that the new bug report generated from this one already has a "don't hold your breath" type message against it !!!
Status: RESOLVED → VERIFIED
Reporter | ||
Comment 50•22 years ago
|
||
It's back ! Tried nightly build as of 25 June 2002. Now the list never even starts to render ! The "Loading list, please wait..." dialog never goes away.
Status: VERIFIED → REOPENED
Resolution: FIXED → ---
Assignee | ||
Comment 51•22 years ago
|
||
Well, not exactly the same bug...I belive. Now, I get the pop-up "Retrieving product information. Please wait..", when I click on "Show all favourites", that never quits and a javascript [ errorError: daAddBasketBut is not defined Source File: https://secure.tesco.com/superstore/ActionMenu/ActionMenu.htm Line: 25 ].
Comment 52•22 years ago
|
||
101355.471@compuserve.com: thank you again! Harish is right; this is a new problem that has a completely different cause. So allow me to re-close this report.I have filed bug 154508 on the new problem and cc'ed you on it. The story is a little different this time, however. The site is now using proprietary features that are only recognized in Netscape 4.7 or IE. Details are at bug 154508. This is assigned to the Evangelism component, which will try to contact the site and get them to write W3C-standard HTML and JavaScript -
Status: REOPENED → RESOLVED
Closed: 23 years ago → 22 years ago
Resolution: --- → FIXED
Comment 54•22 years ago
|
||
*** Bug 110618 has been marked as a duplicate of this bug. ***
You need to log in
before you can comment on or make changes to this bug.
Description
•