Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

base2 breaks Safari 2.x getComputedStyle #25

Closed
GoogleCodeExporter opened this issue Apr 27, 2015 · 6 comments
Closed

base2 breaks Safari 2.x getComputedStyle #25

GoogleCodeExporter opened this issue Apr 27, 2015 · 6 comments

Comments

@GoogleCodeExporter
Copy link

On Safari 2.x run followng js

base2.DOM.bind(document);
base2.DOM.bind(window);

alert(document.defaultView);

it will return "undefined" if those two base2 binds would be omitted it
will return expected object.

Working example at following link:
http://mariuszn3.com/base2/csTest.html 
(click get style link)

and exactly same page but without base2:
http://www.snook.ca/technical/safaridisplaystyle/


Latest version of Base2: Fri, 13 Jul 2007 13:13:32


Original issue reported on code.google.com by marius...@gmail.com on 17 Jul 2007 at 11:43

@GoogleCodeExporter
Copy link
Author

For starters: you don't need to call "base2.DOM.bind(window)". In fact, window 
is not a DOM object, and I 
don't know what happens.

Dean: should we introduce a test in Binding.bind? 
Something like if(!object.nodeType) throw Error("DOM Node expected")

Bug is confirmed for Safari 2, but is doesn't appear in WebKit. 
The difference in execution happens in BOM.detect. The statement (the try/catch 
part):
    eval("r=!!(getComputedStyle)")

throws the error "ReferenceError - Can't find variable: getComputedStyle" in 
Safari 2, but not in WebKit. 

Safari 2 *does* support getComputedStyle though.  

Code path:
-Document.bind
-AbstractView+ViewCSS.bind(document.defaultView)
-ViewCSS[@!(getComputedStyle)]

Original comment by doek...@gmail.com on 17 Jul 2007 at 8:16

  • Changed state: Accepted
  • Added labels: Browser-Safari, Module-base2.DOM

@GoogleCodeExporter
Copy link
Author

As it appears, Safari2 is defining document.defaultView.getComputedStyle, but 
not window.getComputedStyle. 
That explains why the test fails.

Firefox2, Opera9 and IE6 all do define document.defaultView.getComputedStyle, 
so change the test in ViewCSS 
to that.

Solved in /trunk/src, not yet in /trunk/lib.

Original comment by doek...@gmail.com on 17 Jul 2007 at 8:47

  • Changed state: Fixed

@GoogleCodeExporter
Copy link
Author

> Dean: should we introduce a test in Binding.bind? 
Something like if(!object.nodeType) throw Error("DOM Node expected")

Later. ;-) At the moment, binding is encouraged through the DOM.bind() method 
not
through the Binding's individual bind() methods. But we can put some captures 
there
for when we are in strict mode.

Incidentally, there is a feature of packer that treats lines that start with 
";;;" as
single line comments:

e.g.
;;; console.log("this will show up in the source code but not in packed code");

I'm re-opening this bug because I quite like a global getComputedStyle() 
function. It
won't do any harm to add it to the window object.

Original comment by dean.edw...@gmail.com on 17 Jul 2007 at 9:30

  • Changed state: Re-open

@GoogleCodeExporter
Copy link
Author

Original comment by dean.edw...@gmail.com on 17 Jul 2007 at 9:31

@GoogleCodeExporter
Copy link
Author

Sorry, I didn't check in until just now. trunk/lib still has to be generated 
(I'm working on that).

DOM.bind(window) actually doesn't to anything. There's already a switch for 
that in DOM.bind (I missed that 
one).

window.getComputedStyle sounds good. Your call?

Original comment by doek...@gmail.com on 17 Jul 2007 at 10:07

@GoogleCodeExporter
Copy link
Author

This bug is fixed with the change you made. As to the window.getComputedStyle()
issue, that is covered in another bug.

Original comment by dean.edw...@gmail.com on 23 Jul 2007 at 9:06

  • Changed state: Fixed

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant