Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(78)

Unified Diff: extensions/renderer/resources/guest_view/guest_view_container.js

Issue 987473002: Added the onResize and onContentResize events to GuestViewEvents. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Small fix. Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: extensions/renderer/resources/guest_view/guest_view_container.js
diff --git a/extensions/renderer/resources/guest_view/guest_view_container.js b/extensions/renderer/resources/guest_view/guest_view_container.js
index 95bb1deeaedf472f779f40aa8ccda3c838a79357..bf012226008535476388a653de5e3bd52fe0920f 100644
--- a/extensions/renderer/resources/guest_view/guest_view_container.js
+++ b/extensions/renderer/resources/guest_view/guest_view_container.js
@@ -14,10 +14,12 @@ function GuestViewContainer(element, viewType) {
privates(element).internal = this;
this.element = element;
this.elementAttached = false;
- this.guest = new GuestView(viewType);
this.viewInstanceId = IdGenerator.GetNextId();
this.viewType = viewType;
+ this.setupGuestProperty();
+ this.guest = new GuestView(viewType);
+
privates(this).browserPluginElement = this.createBrowserPluginElement();
this.setupFocusPropagation();
@@ -53,6 +55,32 @@ GuestViewContainer.registerElement =
registerGuestViewElement(guestViewContainerType);
window.removeEventListener(event.type, listener, useCapture);
}, useCapture);
+ };
+
+// Create the 'guest' property to track new GuestViews and always listen for
+// their resizes.
+GuestViewContainer.prototype.setupGuestProperty = function() {
+ Object.defineProperty(this, 'guest', {
+ get: function() {
+ return privates(this).guest;
+ }.bind(this),
+ set: function(value) {
+ privates(this).guest = value;
+ if (!value) {
+ return;
+ }
+ privates(this).guest.onresize = function(e) {
+ // Dispatch the 'contentresize' event.
+ var contentResizeEvent = new Event('contentresize', { bubbles: true });
+ contentResizeEvent.oldWidth = e.oldWidth;
+ contentResizeEvent.oldHeight = e.oldHeight;
+ contentResizeEvent.newWidth = e.newWidth;
+ contentResizeEvent.newHeight = e.newHeight;
+ this.dispatchEvent(contentResizeEvent);
+ }.bind(this);
+ }.bind(this),
+ enumerable: true
+ });
};
GuestViewContainer.prototype.createBrowserPluginElement = function() {
@@ -114,10 +142,17 @@ GuestViewContainer.prototype.handleBrowserPluginAttributeMutation =
GuestViewContainer.prototype.onElementResize = function(oldWidth, oldHeight,
newWidth, newHeight) {
+ // Dispatch the 'resize' event.
+ var resizeEvent = new Event('resize', { bubbles: true });
+ resizeEvent.oldWidth = oldWidth;
+ resizeEvent.oldHeight = oldHeight;
+ resizeEvent.newWidth = newWidth;
+ resizeEvent.newHeight = newHeight;
+ this.dispatchEvent(resizeEvent);
+
if (!this.guest.getId())
return;
- this.guest.setSize(
- {normal: {width: newWidth, height: newHeight}});
+ this.guest.setSize({normal: {width: newWidth, height: newHeight}});
};
GuestViewContainer.prototype.buildParams = function() {
« no previous file with comments | « extensions/renderer/resources/guest_view/guest_view.js ('k') | extensions/renderer/resources/guest_view/guest_view_events.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698