diff options
author | jeremya@chromium.org <jeremya@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-06-26 00:29:28 +0000 |
---|---|---|
committer | jeremya@chromium.org <jeremya@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-06-26 00:29:28 +0000 |
commit | 50b6601e6fbe1862226c072952d52eae1556a6ae (patch) | |
tree | ca498a3a4cf302947283673b3f65d4fa466667ac /chrome/renderer | |
parent | 5eff57ede25d7fe51c3bb964aaba2745e3fb1896 (diff) | |
download | chromium_src-50b6601e6fbe1862226c072952d52eae1556a6ae.zip chromium_src-50b6601e6fbe1862226c072952d52eae1556a6ae.tar.gz chromium_src-50b6601e6fbe1862226c072952d52eae1556a6ae.tar.bz2 |
Make chrome.appWindow.create() provide access to the child window at a predictable time.
When you first create a window with chrome.appWindow.create(), it won't have
loaded any resources. So, at create time, you are guaranteed that:
child_window.location.href == 'about:blank'
child_window.document.documentElement.outerHTML ==
'<html><head></head><body></body></html>'
This is in line with the behaviour of window.open().
BUG=131735
TEST=browser_tests:PlatformAppBrowserTest.WindowsApi
Review URL: https://chromiumcodereview.appspot.com/10644006
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@144072 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/renderer')
-rw-r--r-- | chrome/renderer/extensions/app_window_custom_bindings.cc | 9 | ||||
-rw-r--r-- | chrome/renderer/resources/extensions/app_window_custom_bindings.js | 6 |
2 files changed, 9 insertions, 6 deletions
diff --git a/chrome/renderer/extensions/app_window_custom_bindings.cc b/chrome/renderer/extensions/app_window_custom_bindings.cc index 48027a1..4a93595 100644 --- a/chrome/renderer/extensions/app_window_custom_bindings.cc +++ b/chrome/renderer/extensions/app_window_custom_bindings.cc @@ -12,15 +12,16 @@ #include "chrome/common/url_constants.h" #include "chrome/renderer/extensions/extension_dispatcher.h" #include "chrome/renderer/extensions/extension_helper.h" +#include "content/public/renderer/render_thread.h" #include "content/public/renderer/render_view.h" #include "grit/renderer_resources.h" #include "third_party/WebKit/Source/WebKit/chromium/public/WebFrame.h" +#include "third_party/WebKit/Source/WebKit/chromium/public/WebNavigationPolicy.h" #include "third_party/WebKit/Source/WebKit/chromium/public/WebView.h" -#include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebURLRequest.h" #include "third_party/WebKit/Source/WebKit/chromium/public/WebWindowFeatures.h" -#include "third_party/WebKit/Source/WebKit/chromium/public/WebNavigationPolicy.h" -#include "webkit/glue/webkit_glue.h" +#include "third_party/WebKit/Source/WebKit/chromium/public/platform/WebURLRequest.h" #include "v8/include/v8.h" +#include "webkit/glue/webkit_glue.h" #include "content/public/renderer/render_view.h" #include "content/public/renderer/render_view_visitor.h" @@ -92,6 +93,8 @@ v8::Handle<v8::Value> AppWindowCustomBindings::GetView( WebKit::WebFrame* opener = render_view->GetWebView()->mainFrame(); WebKit::WebFrame* frame = view->GetWebView()->mainFrame(); frame->setOpener(opener); + content::RenderThread::Get()->Send( + new ExtensionHostMsg_ResumeRequests(view->GetRoutingID())); v8::Local<v8::Value> window = frame->mainWorldScriptContext()->Global(); return window; diff --git a/chrome/renderer/resources/extensions/app_window_custom_bindings.js b/chrome/renderer/resources/extensions/app_window_custom_bindings.js index e3d71c1..23e7073 100644 --- a/chrome/renderer/resources/extensions/app_window_custom_bindings.js +++ b/chrome/renderer/resources/extensions/app_window_custom_bindings.js @@ -11,10 +11,10 @@ var GetView = appWindowNatives.GetView; chromeHidden.registerCustomHook('appWindow', function(bindingsAPI) { var apiFunctions = bindingsAPI.apiFunctions; - apiFunctions.setCustomCallback('create', function(name, request, view_id) { + apiFunctions.setCustomCallback('create', function(name, request, viewId) { var view = null; - if (view_id) - view = GetView(view_id); + if (viewId) + view = GetView(viewId); if (request.callback) { request.callback(view); delete request.callback; |