summaryrefslogtreecommitdiffstats
path: root/chrome/renderer
diff options
context:
space:
mode:
authorjeremya@chromium.org <jeremya@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-06-26 00:29:28 +0000
committerjeremya@chromium.org <jeremya@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2012-06-26 00:29:28 +0000
commit50b6601e6fbe1862226c072952d52eae1556a6ae (patch)
treeca498a3a4cf302947283673b3f65d4fa466667ac /chrome/renderer
parent5eff57ede25d7fe51c3bb964aaba2745e3fb1896 (diff)
downloadchromium_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.cc9
-rw-r--r--chrome/renderer/resources/extensions/app_window_custom_bindings.js6
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;