summaryrefslogtreecommitdiffstats
path: root/content/common/browser_plugin/browser_plugin_constants.h
diff options
context:
space:
mode:
authorfsamuel@chromium.org <fsamuel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-03-18 02:17:55 +0000
committerfsamuel@chromium.org <fsamuel@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-03-18 02:17:55 +0000
commitc453807747fc1dfb6d6829fa431fbf7a913ad5bd (patch)
treeb4fd69a7c13427f50cd8f93d02160f0151803103 /content/common/browser_plugin/browser_plugin_constants.h
parentfc9e7f5981d3b4a87a9657c041dd09d8cbd086bf (diff)
downloadchromium_src-c453807747fc1dfb6d6829fa431fbf7a913ad5bd.zip
chromium_src-c453807747fc1dfb6d6829fa431fbf7a913ad5bd.tar.gz
chromium_src-c453807747fc1dfb6d6829fa431fbf7a913ad5bd.tar.bz2
Browser Plugin: Implement window.open in guests
Sample API: function handleNewWindow(event) { // The default behavior is to discard the new window. If we don't prevent // default or event.window is no longer reachable the garbage collector will // automagically discard the window for us. event.preventDefault(); chrome.app.window.create('newwindow.html', { top: 0, left: 0, width: 640, height: 480, }, function(newwindow) { newwindow.contentWindow.onload = function(e) { var newwebview = newwindow.contentWindow.document.querySelector("webview"); event.window.attach(newwebview); } }); } webview.addEventListener('newwindow', handleNewWindow); This is implemented by reusing a lot of the existing code for the permission API. The event.window object is managed by the v8 garbage collector. The new BrowserPluginGuest's lifetime is managed by its opener as long as it's not attached. Once a BrowserPluginGuest is attached, it has an embedder WebContents, and loading of resources begins. BUG=140316 Test=WebViewTest.Shim { webViewNewWindow, webViewNewWindowTwListeners, webViewNewWindowNoPreventDefault, webViewNoReferrerLink } Review URL: https://chromiumcodereview.appspot.com/11280291 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@188665 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/common/browser_plugin/browser_plugin_constants.h')
-rw-r--r--content/common/browser_plugin/browser_plugin_constants.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/content/common/browser_plugin/browser_plugin_constants.h b/content/common/browser_plugin/browser_plugin_constants.h
index 09a2781..3dc489d 100644
--- a/content/common/browser_plugin/browser_plugin_constants.h
+++ b/content/common/browser_plugin/browser_plugin_constants.h
@@ -22,6 +22,7 @@ extern const char kMethodStop[];
extern const char kMethodTerminate[];
// Internal method bindings.
+extern const char kMethodInternalAttachWindowTo[];
extern const char kMethodInternalPersistObject[];
extern const char kMethodInternalSetPermission[];
@@ -43,14 +44,18 @@ extern const char kEventLoadCommit[];
extern const char kEventLoadRedirect[];
extern const char kEventLoadStart[];
extern const char kEventLoadStop[];
+extern const char kEventNewWindow[];
extern const char kEventRequestPermission[];
extern const char kEventResponsive[];
extern const char kEventSizeChanged[];
extern const char kEventUnresponsive[];
// Parameters/properties on events.
+extern const char kInitialHeight[];
+extern const char kInitialWidth[];
extern const char kIsTopLevel[];
extern const char kLastUnlockedBySelf[];
+extern const char kName[];
extern const char kNewURL[];
extern const char kNewHeight[];
extern const char kNewWidth[];
@@ -60,13 +65,17 @@ extern const char kOldWidth[];
extern const char kPermission[];
extern const char kPermissionTypeGeolocation[];
extern const char kPermissionTypeMedia[];
+extern const char kPermissionTypeNewWindow[];
extern const char kPermissionTypePointerLock[];
extern const char kPersistPrefix[];
extern const char kProcessId[];
extern const char kReason[];
extern const char kRequestId[];
+extern const char kTargetURL[];
extern const char kURL[];
extern const char kUserGesture[];
+extern const char kWindowID[];
+extern const char kWindowOpenDisposition[];
// Error messages.
extern const char kErrorAlreadyNavigated[];