diff options
author | levin@chromium.org <levin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-05-06 16:00:14 +0000 |
---|---|---|
committer | levin@chromium.org <levin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-05-06 16:00:14 +0000 |
commit | 91c1719fd596d7381e359d294314b24abd02597c (patch) | |
tree | cf0f81dbe4ed8eddf65c749fce63297343fd76cb /webkit | |
parent | 114ed79bd30bcab7916d68ddcf3e585a3810d3ed (diff) | |
download | chromium_src-91c1719fd596d7381e359d294314b24abd02597c.zip chromium_src-91c1719fd596d7381e359d294314b24abd02597c.tar.gz chromium_src-91c1719fd596d7381e359d294314b24abd02597c.tar.bz2 |
Changes for upstreaming V8DocumentLocationCustom.cpp.
BUG=http://bugs.chromium.org/11467
TEST=Verify that Document.location works from javascript.
Review URL: http://codereview.chromium.org/108024
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@15411 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit')
-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', |