diff options
-rw-r--r-- | webkit/build/V8Bindings/V8Bindings.vcproj | 4 | ||||
-rw-r--r-- | webkit/port/bindings/v8/V8DocumentLocationCustom.cpp | 56 | ||||
-rw-r--r-- | webkit/port/bindings/v8/v8_custom.cpp | 25 | ||||
-rw-r--r-- | webkit/webkit.gyp | 1 |
4 files changed, 63 insertions, 23 deletions
diff --git a/webkit/build/V8Bindings/V8Bindings.vcproj b/webkit/build/V8Bindings/V8Bindings.vcproj index f6b87d7..bd00359 100644 --- a/webkit/build/V8Bindings/V8Bindings.vcproj +++ b/webkit/build/V8Bindings/V8Bindings.vcproj @@ -3053,6 +3053,10 @@ > </File> <File + RelativePath="..\..\port\bindings\v8\V8DocumentLocationCustom.cpp" + > + </File> + <File RelativePath="..\..\..\third_party\WebKit\WebCore\bindings\v8\V8DOMMap.cpp" > </File> diff --git a/webkit/port/bindings/v8/V8DocumentLocationCustom.cpp b/webkit/port/bindings/v8/V8DocumentLocationCustom.cpp new file mode 100644 index 0000000..dfcacef --- /dev/null +++ b/webkit/port/bindings/v8/V8DocumentLocationCustom.cpp @@ -0,0 +1,56 @@ +/* + * Copyright (C) 2000 Harri Porten (porten@kde.org) + * Copyright (C) 2001 Peter Kelly (pmk@post.com) + * Copyright (C) 2004, 2005, 2006 Apple Computer, Inc. + * Copyright (C) 2006 James G. Speth (speth@end.com) + * Copyright (C) 2006 Samuel Weinig (sam@webkit.org) + * Copyright (C) 2007, 2008, 2009 Google Inc. All Rights Reserved. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#include "config.h" +#include "V8CustomBinding.h" + +#include "DOMWindow.h" +#include "Frame.h" +#include "V8Binding.h" +#include "V8Document.h" +#include "V8Proxy.h" + +namespace WebCore { + +ACCESSOR_GETTER(DocumentLocation) +{ + Document* document = V8Proxy::DOMWrapperToNative<Document>(info.Holder()); + if (!document->frame()) + return v8::Null(); + + DOMWindow* window = document->frame()->domWindow(); + return V8Proxy::ToV8Object(V8ClassIndex::LOCATION, window->location()); +} + +ACCESSOR_SETTER(DocumentLocation) +{ + Document* document = V8Proxy::DOMWrapperToNative<Document>(info.Holder()); + if (!document->frame()) + return; + + DOMWindow* window = document->frame()->domWindow(); + // WindowSetLocation does security checks. // XXXMB- verify! + WindowSetLocation(window, toWebCoreString(value)); +} + +} // namespace WebCore diff --git a/webkit/port/bindings/v8/v8_custom.cpp b/webkit/port/bindings/v8/v8_custom.cpp index b930d47..f3a1c4a 100644 --- a/webkit/port/bindings/v8/v8_custom.cpp +++ b/webkit/port/bindings/v8/v8_custom.cpp @@ -1,10 +1,10 @@ /* * Copyright (C) 2000 Harri Porten (porten@kde.org) * Copyright (C) 2001 Peter Kelly (pmk@post.com) - * Copyright (C) 2004-2006 Apple Computer, Inc. + * Copyright (C) 2004, 2005, 2006 Apple Computer, Inc. * Copyright (C) 2006 James G. Speth (speth@end.com) * Copyright (C) 2006 Samuel Weinig (sam@webkit.org) - * Copyright 2007, 2008 Google Inc. All Rights Reserved. + * Copyright (C) 2007, 2008 Google Inc. All Rights Reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -157,27 +157,6 @@ ACCESSOR_GETTER(DocumentImplementation) { } -ACCESSOR_GETTER(DocumentLocation) { - Document* imp = V8Proxy::DOMWrapperToNative<Document>(info.Holder()); - if (!imp->frame()) - return v8::Null(); - - DOMWindow* window = imp->frame()->domWindow(); - return V8Proxy::ToV8Object(V8ClassIndex::LOCATION, window->location()); -} - - -ACCESSOR_SETTER(DocumentLocation) { - Document* imp = V8Proxy::DOMWrapperToNative<Document>(info.Holder()); - if (!imp->frame()) - return; - - DOMWindow* window = imp->frame()->domWindow(); - // WindowSetLocation does security checks. // XXXMB- verify! - WindowSetLocation(window, ToWebCoreString(value)); -} - - INDEXED_PROPERTY_GETTER(HTMLFormElement) { INC_STATS("DOM.HTMLFormElement.IndexedPropertyGetter"); HTMLFormElement* form = diff --git a/webkit/webkit.gyp b/webkit/webkit.gyp index 026f6b8..a093e86 100644 --- a/webkit/webkit.gyp +++ b/webkit/webkit.gyp @@ -1115,6 +1115,7 @@ 'port/bindings/v8/ScriptController.cpp', 'port/bindings/v8/ScriptController.h', 'port/bindings/v8/V8CanvasPixelArrayCustom.cpp', + 'port/bindings/v8/V8DocumentLocationCustom.cpp', 'port/bindings/v8/V8MessagePortCustom.cpp', 'port/bindings/v8/V8SVGPODTypeWrapper.h', 'port/bindings/v8/dom_wrapper_map.h', |