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

Side by Side Diff: extensions/renderer/resources/guest_view/web_view_events.js

Issue 643903005: Swapped the variable names "WebView" and "WebViewInternal" in web_view.js and other files that impo… (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressed comments. Created 6 years, 2 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // Event management for WebViewInternal. 5 // Event management for WebView.
6 6
7 var DeclarativeWebRequestSchema = 7 var DeclarativeWebRequestSchema =
8 requireNative('schema_registry').GetSchema('declarativeWebRequest'); 8 requireNative('schema_registry').GetSchema('declarativeWebRequest');
9 var EventBindings = require('event_bindings'); 9 var EventBindings = require('event_bindings');
10 var IdGenerator = requireNative('id_generator'); 10 var IdGenerator = requireNative('id_generator');
11 var MessagingNatives = requireNative('messaging_natives'); 11 var MessagingNatives = requireNative('messaging_natives');
12 var WebRequestEvent = require('webRequestInternal').WebRequestEvent; 12 var WebRequestEvent = require('webRequestInternal').WebRequestEvent;
13 var WebRequestSchema = 13 var WebRequestSchema =
14 requireNative('schema_registry').GetSchema('webRequest'); 14 requireNative('schema_registry').GetSchema('webRequest');
15 var WebView = require('webViewInternal').WebView; 15 var WebViewInternal = require('webViewInternal').WebViewInternal;
16 16
17 var CreateEvent = function(name) { 17 var CreateEvent = function(name) {
18 var eventOpts = {supportsListeners: true, supportsFilters: true}; 18 var eventOpts = {supportsListeners: true, supportsFilters: true};
19 return new EventBindings.Event(name, undefined, eventOpts); 19 return new EventBindings.Event(name, undefined, eventOpts);
20 }; 20 };
21 21
22 var FrameNameChangedEvent = CreateEvent('webViewInternal.onFrameNameChanged'); 22 var FrameNameChangedEvent = CreateEvent('webViewInternal.onFrameNameChanged');
23 var PluginDestroyedEvent = CreateEvent('webViewInternal.onPluginDestroyed'); 23 var PluginDestroyedEvent = CreateEvent('webViewInternal.onPluginDestroyed');
24 var WebRequestMessageEvent = CreateEvent('webViewInternal.onMessage'); 24 var WebRequestMessageEvent = CreateEvent('webViewInternal.onMessage');
25 25
(...skipping 301 matching lines...) Expand 10 before | Expand all | Expand 10 after
327 }; 327 };
328 328
329 var getGuestInstanceId = function() { 329 var getGuestInstanceId = function() {
330 return this.webViewInternal.getGuestInstanceId(); 330 return this.webViewInternal.getGuestInstanceId();
331 }.bind(this); 331 }.bind(this);
332 332
333 var dialog = { 333 var dialog = {
334 ok: function(user_input) { 334 ok: function(user_input) {
335 validateCall(); 335 validateCall();
336 user_input = user_input || ''; 336 user_input = user_input || '';
337 WebView.setPermission(getGuestInstanceId(), requestId, 'allow', 337 WebViewInternal.setPermission(getGuestInstanceId(), requestId, 'allow',
338 user_input); 338 user_input);
339 }, 339 },
340 cancel: function() { 340 cancel: function() {
341 validateCall(); 341 validateCall();
342 WebView.setPermission(getGuestInstanceId(), requestId, 'deny'); 342 WebViewInternal.setPermission(getGuestInstanceId(), requestId, 'deny');
343 } 343 }
344 }; 344 };
345 webViewEvent.dialog = dialog; 345 webViewEvent.dialog = dialog;
346 346
347 var defaultPrevented = !this.webViewInternal.dispatchEvent(webViewEvent); 347 var defaultPrevented = !this.webViewInternal.dispatchEvent(webViewEvent);
348 if (actionTaken) { 348 if (actionTaken) {
349 return; 349 return;
350 } 350 }
351 351
352 if (defaultPrevented) { 352 if (defaultPrevented) {
353 // Tell the JavaScript garbage collector to track lifetime of |dialog| and 353 // Tell the JavaScript garbage collector to track lifetime of |dialog| and
354 // call back when the dialog object has been collected. 354 // call back when the dialog object has been collected.
355 MessagingNatives.BindToGC(dialog, function() { 355 MessagingNatives.BindToGC(dialog, function() {
356 // Avoid showing a warning message if the decision has already been made. 356 // Avoid showing a warning message if the decision has already been made.
357 if (actionTaken) { 357 if (actionTaken) {
358 return; 358 return;
359 } 359 }
360 WebView.setPermission( 360 WebViewInternal.setPermission(
361 getGuestInstanceId(), requestId, 'default', '', function(allowed) { 361 getGuestInstanceId(), requestId, 'default', '', function(allowed) {
362 if (allowed) { 362 if (allowed) {
363 return; 363 return;
364 } 364 }
365 showWarningMessage(event.messageType); 365 showWarningMessage(event.messageType);
366 }); 366 });
367 }); 367 });
368 } else { 368 } else {
369 actionTaken = true; 369 actionTaken = true;
370 // The default action is equivalent to canceling the dialog. 370 // The default action is equivalent to canceling the dialog.
371 WebView.setPermission( 371 WebViewInternal.setPermission(
372 getGuestInstanceId(), requestId, 'default', '', function(allowed) { 372 getGuestInstanceId(), requestId, 'default', '', function(allowed) {
373 if (allowed) { 373 if (allowed) {
374 return; 374 return;
375 } 375 }
376 showWarningMessage(event.messageType); 376 showWarningMessage(event.messageType);
377 }); 377 });
378 } 378 }
379 }; 379 };
380 380
381 WebViewEvents.prototype.handleLoadAbortEvent = function(event, webViewEvent) { 381 WebViewEvents.prototype.handleLoadAbortEvent = function(event, webViewEvent) {
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
451 if (!guestInstanceId) { 451 if (!guestInstanceId) {
452 // If the opener is already gone, then we won't have its 452 // If the opener is already gone, then we won't have its
453 // guestInstanceId. 453 // guestInstanceId.
454 return; 454 return;
455 } 455 }
456 456
457 // If the object being passed into attach is not a valid <webview> 457 // If the object being passed into attach is not a valid <webview>
458 // then we will fail and it will be treated as if the new window 458 // then we will fail and it will be treated as if the new window
459 // was rejected. The permission API plumbing is used here to clean 459 // was rejected. The permission API plumbing is used here to clean
460 // up the state created for the new window if attaching fails. 460 // up the state created for the new window if attaching fails.
461 WebView.setPermission( 461 WebViewInternal.setPermission(
462 guestInstanceId, requestId, attached ? 'allow' : 'deny'); 462 guestInstanceId, requestId, attached ? 'allow' : 'deny');
463 }, 0); 463 }, 0);
464 }, 464 },
465 discard: function() { 465 discard: function() {
466 validateCall(); 466 validateCall();
467 var guestInstanceId = getGuestInstanceId(); 467 var guestInstanceId = getGuestInstanceId();
468 if (!guestInstanceId) { 468 if (!guestInstanceId) {
469 // If the opener is already gone, then we won't have its 469 // If the opener is already gone, then we won't have its
470 // guestInstanceId. 470 // guestInstanceId.
471 return; 471 return;
472 } 472 }
473 WebView.setPermission(guestInstanceId, requestId, 'deny'); 473 WebViewInternal.setPermission(guestInstanceId, requestId, 'deny');
474 } 474 }
475 }; 475 };
476 webViewEvent.window = windowObj; 476 webViewEvent.window = windowObj;
477 477
478 var defaultPrevented = !this.webViewInternal.dispatchEvent(webViewEvent); 478 var defaultPrevented = !this.webViewInternal.dispatchEvent(webViewEvent);
479 if (actionTaken) { 479 if (actionTaken) {
480 return; 480 return;
481 } 481 }
482 482
483 if (defaultPrevented) { 483 if (defaultPrevented) {
484 // Make browser plugin track lifetime of |windowObj|. 484 // Make browser plugin track lifetime of |windowObj|.
485 MessagingNatives.BindToGC(windowObj, function() { 485 MessagingNatives.BindToGC(windowObj, function() {
486 // Avoid showing a warning message if the decision has already been made. 486 // Avoid showing a warning message if the decision has already been made.
487 if (actionTaken) { 487 if (actionTaken) {
488 return; 488 return;
489 } 489 }
490 490
491 var guestInstanceId = getGuestInstanceId(); 491 var guestInstanceId = getGuestInstanceId();
492 if (!guestInstanceId) { 492 if (!guestInstanceId) {
493 // If the opener is already gone, then we won't have its 493 // If the opener is already gone, then we won't have its
494 // guestInstanceId. 494 // guestInstanceId.
495 return; 495 return;
496 } 496 }
497 497
498 WebView.setPermission( 498 WebViewInternal.setPermission(
499 guestInstanceId, requestId, 'default', '', function(allowed) { 499 guestInstanceId, requestId, 'default', '', function(allowed) {
500 if (allowed) { 500 if (allowed) {
501 return; 501 return;
502 } 502 }
503 showWarningMessage(); 503 showWarningMessage();
504 }); 504 });
505 }); 505 });
506 } else { 506 } else {
507 actionTaken = true; 507 actionTaken = true;
508 // The default action is to discard the window. 508 // The default action is to discard the window.
509 WebView.setPermission( 509 WebViewInternal.setPermission(
510 getGuestInstanceId(), requestId, 'default', '', function(allowed) { 510 getGuestInstanceId(), requestId, 'default', '', function(allowed) {
511 if (allowed) { 511 if (allowed) {
512 return; 512 return;
513 } 513 }
514 showWarningMessage(); 514 showWarningMessage();
515 }); 515 });
516 } 516 }
517 }; 517 };
518 518
519 WebViewEvents.prototype.handlePermissionEvent = 519 WebViewEvents.prototype.handlePermissionEvent =
520 function(event, webViewEvent) { 520 function(event, webViewEvent) {
521 var ERROR_MSG_PERMISSION_ALREADY_DECIDED = '<webview>: ' + 521 var ERROR_MSG_PERMISSION_ALREADY_DECIDED = '<webview>: ' +
522 'Permission has already been decided for this "permissionrequest" event.'; 522 'Permission has already been decided for this "permissionrequest" event.';
523 523
524 var showWarningMessage = function(permission) { 524 var showWarningMessage = function(permission) {
525 var WARNING_MSG_PERMISSION_DENIED = '<webview>: ' + 525 var WARNING_MSG_PERMISSION_DENIED = '<webview>: ' +
526 'The permission request for "%1" has been denied.'; 526 'The permission request for "%1" has been denied.';
527 window.console.warn( 527 window.console.warn(
528 WARNING_MSG_PERMISSION_DENIED.replace('%1', permission)); 528 WARNING_MSG_PERMISSION_DENIED.replace('%1', permission));
529 }; 529 };
530 530
531 var requestId = event.requestId; 531 var requestId = event.requestId;
532 var getGuestInstanceId = function() { 532 var getGuestInstanceId = function() {
533 return this.webViewInternal.getGuestInstanceId(); 533 return this.webViewInternal.getGuestInstanceId();
534 }.bind(this); 534 }.bind(this);
535 535
536 if (this.permissionTypes.indexOf(event.permission) < 0) { 536 if (this.permissionTypes.indexOf(event.permission) < 0) {
537 // The permission type is not allowed. Trigger the default response. 537 // The permission type is not allowed. Trigger the default response.
538 WebView.setPermission( 538 WebViewInternal.setPermission(
539 getGuestInstanceId(), requestId, 'default', '', function(allowed) { 539 getGuestInstanceId(), requestId, 'default', '', function(allowed) {
540 if (!allowed) 540 if (!allowed)
541 showWarningMessage(event.permission); 541 showWarningMessage(event.permission);
542 }); 542 });
543 return; 543 return;
544 } 544 }
545 545
546 var decisionMade = false; 546 var decisionMade = false;
547 var validateCall = function() { 547 var validateCall = function() {
548 if (decisionMade) { 548 if (decisionMade) {
549 throw new Error(ERROR_MSG_PERMISSION_ALREADY_DECIDED); 549 throw new Error(ERROR_MSG_PERMISSION_ALREADY_DECIDED);
550 } 550 }
551 decisionMade = true; 551 decisionMade = true;
552 }; 552 };
553 553
554 // Construct the event.request object. 554 // Construct the event.request object.
555 var request = { 555 var request = {
556 allow: function() { 556 allow: function() {
557 validateCall(); 557 validateCall();
558 WebView.setPermission(getGuestInstanceId(), requestId, 'allow'); 558 WebViewInternal.setPermission(getGuestInstanceId(), requestId, 'allow');
559 }, 559 },
560 deny: function() { 560 deny: function() {
561 validateCall(); 561 validateCall();
562 WebView.setPermission(getGuestInstanceId(), requestId, 'deny'); 562 WebViewInternal.setPermission(getGuestInstanceId(), requestId, 'deny');
563 } 563 }
564 }; 564 };
565 webViewEvent.request = request; 565 webViewEvent.request = request;
566 566
567 var defaultPrevented = !this.webViewInternal.dispatchEvent(webViewEvent); 567 var defaultPrevented = !this.webViewInternal.dispatchEvent(webViewEvent);
568 if (decisionMade) { 568 if (decisionMade) {
569 return; 569 return;
570 } 570 }
571 571
572 if (defaultPrevented) { 572 if (defaultPrevented) {
573 // Make browser plugin track lifetime of |request|. 573 // Make browser plugin track lifetime of |request|.
574 MessagingNatives.BindToGC(request, function() { 574 MessagingNatives.BindToGC(request, function() {
575 // Avoid showing a warning message if the decision has already been made. 575 // Avoid showing a warning message if the decision has already been made.
576 if (decisionMade) { 576 if (decisionMade) {
577 return; 577 return;
578 } 578 }
579 WebView.setPermission( 579 WebViewInternal.setPermission(
580 getGuestInstanceId(), requestId, 'default', '', function(allowed) { 580 getGuestInstanceId(), requestId, 'default', '', function(allowed) {
581 if (allowed) { 581 if (allowed) {
582 return; 582 return;
583 } 583 }
584 showWarningMessage(event.permission); 584 showWarningMessage(event.permission);
585 }); 585 });
586 }); 586 });
587 } else { 587 } else {
588 decisionMade = true; 588 decisionMade = true;
589 WebView.setPermission( 589 WebViewInternal.setPermission(
590 getGuestInstanceId(), requestId, 'default', '', 590 getGuestInstanceId(), requestId, 'default', '',
591 function(allowed) { 591 function(allowed) {
592 if (allowed) { 592 if (allowed) {
593 return; 593 return;
594 } 594 }
595 showWarningMessage(event.permission); 595 showWarningMessage(event.permission);
596 }); 596 });
597 } 597 }
598 }; 598 };
599 599
600 WebViewEvents.prototype.handleSizeChangedEvent = function( 600 WebViewEvents.prototype.handleSizeChangedEvent = function(
601 event, webViewEvent) { 601 event, webViewEvent) {
602 this.webViewInternal.onSizeChanged(webViewEvent); 602 this.webViewInternal.onSizeChanged(webViewEvent);
603 }; 603 };
604 604
605 exports.WebViewEvents = WebViewEvents; 605 exports.WebViewEvents = WebViewEvents;
606 exports.CreateEvent = CreateEvent; 606 exports.CreateEvent = CreateEvent;
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698